Aller au contenu
matesla3etaitsurleglovis

Site pour se connecter à sa voiture

Messages recommandés

Bonjour à tous. A la fois pour le fun mais aussi pour l'aspect pratique, je me suis lancé dans un site qui se connecte à la voiture via l'api web de tesla. Pour moi, ça a été l'occasion d'utiliser le langage python, de découvrir django (parfois dur d'entrer dedans d'ailleurs), l'api rest de tesla, de refaire de l'html et du css (ça faisait très très longtemps).

 

Et je peux un peu surveiller ce qui se passe en ces temps de confinement quand mon fils joue a stardew valley dans la voiture et lui signaler en klaxonnant que le repas est prêt ou que c'est l'heure du dodo. Et qu'il a oublié de verrouiller la voiture, je sais tout...

 

Les sources sont dans github: https://github.com/mehdirahbe/matesla

 

Toutes les améliorations sont les bienvenues, la première que je devrais faire est d'ailleurs un support français/anglais (habitude du travail, tout est en anglais, ne pas frapper svp).

 

Et pour aller sur le site, c'est https://afternoon-scrubland-61531.herokuapp.com/

 

J'utilise le token tesla pour me connecter au site tesla, mais pour avoir ce token (et un nouveau quand il expire, cad 45 jours ou changement de mot de passe tesla), je garde le login/PW tesla encrypté avec une clé que seul mon hébergeur heroku connaît. Une autre amélioration serait de ne garder que le token, j'en suis conscient.

 

PS: Je n'ai plus de smartphone, c'est beaucoup trop addictif pour les enfants (le mien en tout cas). Donc, l'app tesla, ben, je dois faire sans... Finalement, c'est plus stimulant intellectuellement.

 

Disclaimer: c'est mon tout premier projet django et je suis tout sauf un developper web. Donc, ne pas taper svp, je découvre.

 

PS: on peut aussi le faire tourner en local, il faut faire télécharger le machin de git, puis faire python3 manage.py runserver, et se connecter avec un browser sur http://127.0.0.1:8000/ Pour les paranos de la sécurité, ça évite d'envoyer ses infos sur internet.

Partager ce message


Lien à poster
Partager sur d’autres sites

En y repensant, je pense bien y ajouter quelques stats utiles:

1) suivi des mises à jour firmware (ce serait plus pratique que le fichier maj manuellement)

2) suivi du HW de l'autopilot

 

Je précise que ça laisse la voiture dormir sauf quand on fait un refresh de la page. J'ai vu assez d'histoires sur ce forum ou des gens absent pendant quelques semaines voyaient leur batterie fondre à vue d’œil suite à des sites comme teslafi ou autre qui empêchent la voiture de (bien) dormir.

 

On pourrait ensuite afficher les résultats sous forme de graphes ou de tableaux (bon exercice pour moi ou tout volontaire qui veut contribuer).

 

Question: est-ce que quelqu'un serait intéressé par l’affichage de son HW autopilot? Ou d'autres infos? C'est hyper facile à rajouter.

 

Autre idée: ajouter un petit lien qui envoie un mail avec l'info à une ou plusieurs adresses e-mail. Que ce soit pour dire à un ami/conjoint ou est la voiture. Ou à la police en cas de vol.

 

Dans l'état actuel, voila à quoi ça ressemble:

Screenshot from 2020-04-17 08-54-19.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Suggestion pour les propriétaires de Tesla sudistes voire plus au Sud de la France comme moi : pouvoir activer anti surchauffe de l'habitacle qui  est différent du maintien de la climatisation  qui ne dure que  4 heures.

Cette option, s'active  manuellement avec suppression de  l'anti soulèvement et intrusion  (page 152 du manuel). Ce paramètre est actif pour 12 heures.

Même en ce moment, pour une TM3 stationnée parfois au soleil et même avec une bâche plutôt réfléchissante, je dois l'activer systématiquement.

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est noté, je vais voir comment faire :-)

 

De mon côté, j'ai ajouté la version française, et sur conseils d'un ami, j'ai amélioré le look en utilisant des CSS standards. Plus je reprends des images de voiture à tesla pour ajouter le look de la voiture.

 

D'ailleurs, si des gens veulent jouer avec des belles images, on peut tester les paramètres de rendu de la model 3 sur le site suivant qui m'a bien aidé: https://observablehq.com/@slickplaid/model-3-configurator

 

Voila l’adresse française, sinon, le site suit les préférences mises dans le navigateur: https://afternoon-scrubland-61531.herokuapp.com/fr/

 

PS: si des possesseurs de modèle S, X pouvaient me fournir l'URL qui est utilisée dans le site tesla pour faire le rendu de leur voiture, ça pourrait me permettre d'améliorer mon site, car pour le moment, ce sera d'office l'image d'une model 3 dans mon site, faute d'informations. l'URL de tesla commence par: https://static-assets.tesla.com/configurator/compositor

 

Merci d'avance.

Partager ce message


Lien à poster
Partager sur d’autres sites
Posté(é) (modifié)
Le 17/04/2020 à 00:23, matesla3etaitsurleglovis a dit :

je garde le login/PW tesla encrypté

Hello,

Tout d'abord bravo pour l'initiative, c'est du boulot ce genre de projet, j'en sais quelque chose ;)

Concernant le point ci dessus, le fait que tu gardes le password, sache que ça n'est pas utile. 

Lorsque tu obtiens la première session à partir du login/password, dans la réponse tu as le fameux access_token qui permet d'appeler les API Tesla, mais tu as aussi un refresh_token !

Ce refresh_token permet d'obtenir une nouvelle session (donc un nouvel access_token ET un nouveau refresh_token).

L'access_token expire en effet après 45 jours, mais le refresh_token lui n'expire pas si vite. 

De ce fait tu peux utiliser le refresh_token à la fin de la période de 45 jours pour obtenir une nouvelle session, et hop c'est reparti pour 45 jours. Etc etc. Et tout ça sans avoir à donner à nouveau le login ou le mot de passe de l'utilisateur. 

Donc pas besoin de le stocker, utilise le refresh_token, c'est fait pour, c'est du standard OAuth2, et tes utilisateurs se sentiront plus en sécurité !

Bon courage pour la suite !

 

Modifié par denouche

Partager ce message


Lien à poster
Partager sur d’autres sites
Posté(é) (modifié)

Merci pour l'appréciation. En fait, j'avais d'abord utilisé une lib qui avait besoin de client+PW. Comme je n'aimais pas ça, après recherche de comment faire je l'ai virée et appelé l'api rest de tesla directement, avec token. Mais le user et PW sont restés dans mon site. Je vais améliorer ça (je sais, c'est un gros trou de sécurité car il n'y a aucune raison que des ,données privées trainent sur internet, même encryptées) en ne gardant que token,+ refresh. Et pourquoi pas permettre de directement entrer le token si on l'a. Avec pourquoi pas un how to sur "comment récupérer son token pour le non programmeurs"

 

C'est pour ce soir, la, teletravail  fini, je vais aller promener :-)

Modifié par matesla3etaitsurleglovis
parti incomplet

Partager ce message


Lien à poster
Partager sur d’autres sites
Posté(é) (modifié)

Bonjour, bonne initiative !

Je maîtrise django et tout ce qu'il faut pour faire du visuel, je prendrai le temps de contribuer.

N'hésite pas a lister stp tes idées ou tâches sur le projet comme ça je pourrai me mettre sur un sujet ! 

Modifié par Noromance38

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 20/04/2020 à 23:31, denouche a dit :

Donc pas besoin de le stocker, utilise le refresh_token, c'est fait pour, c'est du standard OAuth2, et tes utilisateurs se sentiront plus en sécurité !

Bon courage pour la suite !

 

Bonjour, voila, j'ai modifié tout ça et le site ne stocke plus que les token.

 

J'ai viré de https://github.com/mehdirahbe/matesla/blob/master/matesla/models.py le modèle qui gardait login/PW, ce qui a forcé l'effacement des données sur le site.

 

Résultat, la page d'ajout de compte tesla à complètement changé: soit on peut y entrer login+PW que mon site utilisera pour générer les token, sans sauver l'info du compte. Ou on peut directement lui donner les token et leur date de création.

 

Mon site gère le renouvellement du token une fois arrivé à moitié de sa vie.

 

Pour que les non programmeurs puissent utiliser cette méthode, j'y ai ajouté du code python qui fait le job. A condition d'en avoir un installé chez soi, car je ne ferais aucune confiance pour les interpréteurs qu'on trouve sur le web, n'ayant aucune garantie de ce qu'ils font avec le code qu'on leur soumet.

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 21/04/2020 à 16:53, Noromance38 a dit :

Bonjour, bonne initiative !

Je maîtrise django et tout ce qu'il faut pour faire du visuel, je prendrai le temps de contribuer.

N'hésite pas a lister stp tes idées ou tâches sur le projet comme ça je pourrai me mettre sur un sujet ! 

Merci beaucoup, quelqu'un de plus habitué que moi saura certainement faire mieux et plus vite. A mon job, je suis plutôt SQL/C++/C# au niveau très grosses données sans la moindre notion de site web ou d'interface...

 

J'ai mis dans https://github.com/mehdirahbe/matesla/blob/master/README.md un todo avec des choses à faire. Et à la fin, un how to pour démarrer le site en local. Comme éditeur/déboggueur, j'utilise PyCharm qui semble pas mal.

 

Un problème en particulier est les couleurs de voitures et pneus: l'info renvoyée par tesla dans les codes est foireuse, donc il faut tester les champs libellés de couleur, de pneus et passer le code ad hoc au renderer de Tesla. Mon ami a une model 3 std range blanche, tesla renvoyait le code PBSB cad noire. Et moi qui ai des roues 18, j'ai le code des 19. Tesla parfois... Qu'ils virent le champ s'il ne veulent plus le supporter plutôt que mettre des infos fausses.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir, je viens de terminer mon premier graphe avec https://matplotlib.org/ .

On peut désormais avoir, que l'on soit loggué ou pas, le suivi des mises à jour du firmware de nos voitures.

J'ai rajouté le lien se trouve sur toutes les pages du site https://afternoon-scrubland-61531.herokuapp.com

 

On peut y accéder directement à l'adresse suivante https://afternoon-scrubland-61531.herokuapp.com/anonymisedstats/firmwareupdates

 

Par contre, pour le moment il n'y a que ma voiture et celle d'un ami, d’où le 2 dans le graphe. Si d'autres personnes pouvaient ajouter leur voiture, l'info n'en sera que meilleure. A terme, ça pourrait fournir une alternative a teslafi, et à la feuille de calcul mise à jour à la main dans le site.

 

Voila ce que ça donne, je vais sûrement  ajouter d'autres vues par la suite:firmwareupdates

 

PS: Seul le token est sauvé et il n'y a aucun risque de se faire voler son mot de passe, ce qu'on peut vérifier dans mes sources dans https://github.com/mehdirahbe/matesla

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour

 

Visiblement beaucoup de boulot, bravo.

N'étant ni développeur ni webmaster ni administrateur réseau ni expert en python cryptage etc comme vous tous, je vais jouer le rôle du boulet de base qui comprend vite du moment qu'on lui explique longtemps, il en faut bien un...

J'ai ouvert un compte et généré un Token. Je ne comprends pas comment accéder aux datas avec le Token et sans mon identifiant TEsla : il y a une case  "token refresh", une case "createat", une case date...Kesako?

Merci pour les explications du type "le fil vert sur le bouton vert"...

Sinon le 11/5 je prévois de faire un périple de 15x100km autour de chez moi, et vous?...

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, Meaban a dit :

Je ne comprends pas comment accéder aux datas avec le Token et sans mon identifiant TEsla : il y a une case  "token refresh", une case "createat", une case date...Kesako?

Merci pour les explications du type "le fil vert sur le bouton vert"...

 

Bon, la méthode token est évidement la méthode avancée, mais si l'utilisateur qui est parvenu à obtenir un token n'y arrive pas, c'est que mon site n'est pas clair... Donc, d'abord, je vais vite rajouter des explications, que je met également ici.

 Token=la clé qui permet de ce connecter. Sauf qu'il expire au bout de 45 jours, et c'est là qu'interviennent les 2 autres champs.

 

La date de création (qui est de toute évidence un nombre de secondes ou un truc du genre depuis je ne sais quelle époque renvoyé par tesla) indique quand le token a été créé. Et donc en rajoutant les 45 jours, je sais quand il va passer l'arme à gauche.

 

Le token de refresh permet d'obtenir un nouveau token. Donc, quand le token s'apprête à être trop vieux, je demande  gentiment un nouveau token à tesla sur base du token refresh. Il y a un message plus haut dans ce fil qui suggérait de faire cela, c'est exactement ce que j'ai fait.

 

L’exemple de code python que j'ai mis sur la page permet d'obtenir les 3 infos, prêtes à copier/coller.

 

Mais donc, si on n'a que le token, je refuse l'info car alors, je serai incapable de faire le renouvellement automatique.

 

Ce que je peux améliorer, c'est dans ce cas de me mettre en situation du genre: OK, je l'accepte, mais au bout de 45 jours, on va se faire jeter par tesla et il faudra réintroduire les infos. Je vais essayer de faire ça ce soir, c'est évidement sensible, je dois tester à fond dans tous les cas. Je reposterai un message sur ce fil une fois que ça marche :-)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

J’ai créé le token depuis ton site Ad hoc. Je ne souhaite pas moi non plus mettre login et mp sur le site.

Les lignes de code en Pitron je ne sais pas quoi en faire, ou les coller...Ni tous ceux qui ne sont pas dans le métier ou pas loin.

Ok pour la date et je crois avoir pigé le principe du token, mais en fait j’ai pas compris comment, ni avec quoi  générer un “token refresh”.

Comme je te disais j’ai le fil rouge mais je n’ai pas trouvé le bouton rouge. C’est comme à L’Hepad, il faut m’assister jusqu’au bout désolé. 

Si mon cas est désespéré laisse tomber je ne t’en voudrai pas.

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, Meaban a dit :

Comme je te disais j’ai le fil rouge mais je n’ai pas trouvé le bouton rouge. C’est comme à L’Hepad, il faut m’assister jusqu’au bout désolé. 

Si mon cas est désespéré laisse tomber je ne t’en voudrai pas.

Non, je ne laisse surtout pas tomber, c'est super important que ce soit utilisable par un non informaticien.

 

Et donc voila, j'ai mis à jour le site. J'ai amélioré le texte (enfin, j'espère, si ce n'est pas clair, il faut me le dire). Et surtout: il suffit juste d'entrer le token et ça marche.

 

Maintenant, vite jeter un oeil sur l'earning call et puis dodo.

 

PS: quel site as-tu utilisé pour avoir ton token facilement? Je rajouterais bien un lien à la place du code python, qui, j'ai bien compris, n'aide pas le non informaticien.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut

Prends ton temps, mon intention n'est surtout pas de te mettre la pression.

J'ai généré le token avec le lien que tu indiques (ton site) ! Il a bien fallu que je mettre login et mp Tesla pour ce faire.

Pas vu de différence sur ton site.

 

Pour la date s'il s'agit d'un nombre façon excel je ne sais pas comment le restituer, J'ai la date de création du token C'est tout.

 

Pour générer un token 100% en local je comprends après recherche sur le net qu'il faut:

- Installer python sur python.org ==> fait

- lancer une fenêtre Python (qui ressemble à la ligne de commande windows)?

- copier coller le code ??

- et puis?

A+

Partager ce message


Lien à poster
Partager sur d’autres sites

Heu, la, c'est moi qui suis un peu perdu... Soit on entre utilisateur tesla (son mail) et son mot de passe tesla et rien d'autre et on fait sauver. Et ça marche.

 

Soit on introduit un token obtenu par un programme python et rien d'autre et ça marche. Le token de tesla est une série de 64 lettres et chiffres.

 

Voir mes 2 copies d'écran qui montrent les 2 approches. Et une fois OK (cad que tesla a reconnu les infos), on arrive sur un écran avec la voiture visible+des infos dessus. Ou parfois une page disant qu'elle est endormie et qui propose de la réveiller...

entree login et pw tesla.png

entree token.png

resultat attendu.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

J'ai essayé, c'est cool.

Que signifie la degradation de la batterie en % ?

Je suis un peu étonné car cela affiche 5.5% alors que la voiture est neuve (1400km)

 

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour la dégradation, je fais une règle de 3 entre l'autonomie restante, le range officiel et le % de charge.

Problème: quelle est le range officiel car pour ça, il faut être sur de son coup pour le modèle de voiture, et ça ce n'est pas gagné. Si il y a une méthode magique, je ne la connais pas... Tesla n'a pas la gentillesse de renvoyer l'info.

 

Sur base du modèle et du vin, je repère la model 3 AWD-->310 miles à 100%, la SR 250 miles à 100 % (cf https://en.wikipedia.org/wiki/Tesla_Model_3)

 

J'ai peut-être fait une erreur sur les ranges, je vais aller vérifier sur tesla US pour les vérifier plutôt que croire wiki.

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon, j'ai pigé et je n'aime pas: pour la mienne AWD, je dois mettre 310 miles=500 km, cad l'ancien EPA. Alors que le nouveau de 2020 est 322. He bien il faut faire la même chose pour les SR+: vendues comme 250 miles EPA 2020, mais elles font moins à 100 % car toujours calibrées selon l'EPA précédent.

Et j'ai trouvé la bonne valeur en allant voir les valeurs mesurées par le gens qui ont chargé leur SR+ à 100 % sur le fil ad hoc https://forums.automobile-propre.com/topic/kilométrage-max-qu-indique-votre-voiture-à-100-15552/?&page=78#comments

 

Pas facile de mesurer la dégradation de la batterie dans ces conditions,... mais pour le moment, ça marche

 

J'ai maj le site, la dégradation sur une tesla neuve devrait être à 1 % max

Partager ce message


Lien à poster
Partager sur d’autres sites

Suite à une agréable discussion par téléphone avec Meaban, j'ai amélioré le formulaire permettant d'entrer ses informations tesla (https://matesla.herokuapp.com/fr/matesla/AddTeslaAccount).

 

En effet, pour un non informaticien, il n'était pas clair de comment remplir tous ces champs... qui en fait peuvent être laissés vides, sauf si on a envie de jouer (ce que j'ai appelé utilisateur avancé, mais j'aurais aussi bien pu mettre geek).

 

J'ai amélioré les traductions (token signifie jeton, on l'oublie souvent, moi le premier).

 

Et pour la méthode geek, ayant constaté que mon code python ne marche par chez Meaban, j'ai trouvé pourquoi: il faut installer le package requests. J'ai donc rajouté le lien vers python, et celui vers requests.

 

Il n'y a plus qu'a améliorer le look car les contrôles sont un peu mis n'importe comment.

Partager ce message


Lien à poster
Partager sur d’autres sites

Et en bande annonce, car je n'ai pas encore fait une belle page pour naviguer la dedans, les stats fonctionnent :-)

 

Il faudrait vraiment que des propriétaires avec d'autre couleurs que le bleu, gris ou blanc s'inscrivent. Une belle rouge par exemple? :-)

https://matesla.herokuapp.com/anonymisedstats/exterior_color

 

Et ici, ça manque de modèle S et X :-)

https://matesla.herokuapp.com/anonymisedstats/car_type

 

J'ai déjà prévu une dizaine d'informations liées à la voiture.

 

PS: Il faut s’inscrire sur le site https://matesla.herokuapp.com, l'autre (afternoon-scrubland-61531) me sert pour tester le déploiement de chaque nouvelle version dans le cloud, donc je ne peux garantir qu'il est en permanence stable...

Partager ce message


Lien à poster
Partager sur d’autres sites
Posté(é) (modifié)

Super idée et superbe réalisation ! Ne comprenant rien aux token et autres termes informatiques (en plus je suis sur Mac), je suis passé sans difficulté par le compte Tesla et mdp : génial👏

Avec 6 000 km et 4 mois (dont 1,5 en confinement), perte de 0,6 % de capa batterie ce qui me parait cohérent.

Si l'info existe qque part, ce serait bien d'avoir les kW consommés sur la ligne Odomètre, les kW/100 km et la vitesse moyenne depuis le km 0.

Edit : Heu, une visu "mobile" serait sympa 😊

Re-Edit : Mettre en route l'alarme depuis le site, c'est faisable ? On ne peut pas le faire depuis l'appli.

Sinon, encore une fois c'est génial d'avoir fait ce site. MERCI !!!

Modifié par dpgrh

Partager ce message


Lien à poster
Partager sur d’autres sites

Encore moi ...

Quand je me connecte, j'ai bien la page qui m'indique que la voiture est endormie mais pas d'option pour la réveiller (je passe par l'appli Tesla). 

Je suis sous Chrome sur Mac.

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 17 heures, matesla3etaitsurleglovis a dit :

Et pour la méthode geek, ayant constaté que mon code python ne marche par chez Meaban, j'ai trouvé pourquoi: il faut installer le package requests. J'ai donc rajouté le lien vers python, et celui vers requests.

Merci à toi, pour le temps passe et le gros effort de vulgarisation. J’adore apprendre!

Partager ce message


Lien à poster
Partager sur d’autres sites



Automobile Propre

Automobile Propre est un site d'information communautaire qui est dédié à tout ce qui concerne l'automobile et l'environnement. Les thématiques les plus populaires de notre blog auto sont la voiture électrique et les hybrides, mais nous abordons également la voiture GNV / GPL, les auto à l'hydrogène, les apects politiques et environnementaux liés à l'automobile. Les internautes sont invités à réagir aux articles du blog dans les commentaires, mais également dans les différents forums qui sont mis à leur dispositon. Le plus populaire d'entre eux est certainement le forum voiture électrique qui centralise les discussions relatives à l'arrivée de ces nouveaux véhicules. Un lexique centralise les définitions des principaux mots techniques utilisés sur le blog, tandis qu'une base de données des voitures (commercialisées ou non) recense les voitures électriques et hybrides.

×
×
  • Créer...