Intégration Tesla dans HA

Au travers de son API (non officielle) Tesla permet de contrôler non seulement ses voitures, mais aussi ses chargeurs muraux et Powerwall. Cet article couvrira les étapes de bases pour ajouter sa voiture ainsi qu'une revue des nombreuses entités disponibles.
Intégration Tesla dans HA
Photo by Paul Steuber / Unsplash

Sommaire

Introduction et généralités

⚠️
AVERTISSEMENT

Home assistant ne fournit plus une intégration Tesla en standard, celle-ci nécessitant un outil tiers pour extraire le token de sécurité nécessaire à la connexion à l'API, ce qui ne rentre pas dans les bonnes pratiques acceptées par Nabu Casa.

Il est donc important d'avoir conscience qu'il faudra utiliser un outil tiers fourni par un inconnu sur internet pour récupérer la clé d'accès au contrôle de votre voiture... et sa position.

Pour cet exemple, je vais utiliser une extension chrome qui n'a pas accès à internet... donc personne ne pourra récupérer votre token).

Ceci étant clarifié, cet article va couvrir les éléments suivants :

  • Installation et connexion de la voiture.
  • Les entités disponibles.
  • Une méthode de suivi de la puissance de charge en Watts.
  • Trucs et astuces variés.
👷‍♂️
Des changements importants d'API sont en cours, et pour les véhicules les plus récents (fin 2023) de base il n'est plus possible d'interagir avec le véhicule, juste lire les infos. Une fois la nouvelle façon de gérer l'intégration est stabilisée et facilitée, je ferai une mise à jour de l'article.

Installation et configuration

Le pré-requis principal est HACS, car l'add-on que nous allons utiliser y est stocké.

Il s'agit de Tesla Custom Integration par Alan Tse. Pour l'installer, il suffit de suivre une procédure standard comme pour n'importe quelle intégration HACS. Ensuite, redémarrez votre HA.

Second élément nécessaire : extraire le token de reconnexion. Ceci peut se faire le plus simplement par l'extension Chrome : "Access Token Generator for Tesla". Cela s'installe depuis Chrome ou autre navigateur à base de Chrome (paramètres>extension).

Une fois installé, on peut cliquer sur l'extension qui ouvrira la page auth.tesla.com, utilisez votre login et mot de passe Tesla. Une fois connecté, l'écran affiche votre "Refresh token", copiez le et gardez-le dans le bloc-notes. (Attention, il est long.).

Page de connexion auth.tesla.com
Résultat.

Une fois le token récupéré, vous pourrez ajouter votre voiture (ou Wall-charger ou Powerwall). Pour cela rendez-vous dans les intégrations de HA et cliquez sur (+) puis cherchez "Tesla" dans la liste ou utilisez directement le lien ci-dessous :

Open your Home Assistant instance and start setting up a new integration of a specific brand.

La boite suivante s'affichera : il suffit d'y renseigner votre adresse e-mail utilisée comme login et le "Refresh Token" récupéré plus haut.

Une fois les informations correctes validées, l'appareil sera ajouté et dans la page des intégrations. Une nouvelle tuile Tesla Custom Intégration sera présente.

Les entités disponibles

Par défaut, pas moins de 55 entités sont disponibles pour une voiture (modèle 3). Je ne sais pas ce qui est disponible pour les Chargeurs ou les Powerwall, la suite sera donc principalement sur les voitures.

Toutes les entités disponibles.

Avec une telle quantité d'infos, et plus encore si on s'aventure dans les attributs de certaines entités, il est possible de faire énormément de choses.

Les entités disponibles vont des basiques comme l'état du véhicule (climatisation, batterie, odomètres), la charge (activation, désactivation, puissance, vitesse), les ouvertures (toutes les portes, coffres, trappes), GPS (Position, destination, trajet), sécurité (vidéosurveillance, pression des pneus, serrures)... et j'en oublie.

Dans les sections suivantes, je vais couvrir celles que j'utilise le plus souvent ces trois dernières années.

Suivi de la charge à domicile.

Chose assez intéressante, il est possible de suivre et d'ajouter dans son dashboard énergie la consommation de la voiture, et ce, sans aucun appareil extérieur : pas de pince, pas de compteur, simplement HA.

Est-ce précis ? Plutôt oui. En comparant avec une pince de mesure, c'est à quelques Watts près en plus ou en moins.

C'est assez simple, en visitant les outils de développement, on peut trouver le capteur "sensor.voiture_charger_power" qui donne la puissance de charge instantanée en kW... ce qui pour le coup n'est pas super précis.
MAIS on voit aussi qu'il y a 2 attributs qui sont l'intensité et le voltage instantanés, avec ceux-ci, il est possible de retrouver la puissance de charge en Watts !

Bon ici , c'est à Zéro... car ça ne charge pas...

Un simple capteur template dans les "entrées" suffit pour calculer cette valeur.
Une comparaison avec une pince ampèremétrique sur la phase du chargeur me permet de dire que les résultats sont assez bons, quelques watts de différence.

Et pour être encore plus précis, si on veut ajouter sur le dashboard énergie de la maison, un filtre pour n'enregistrer que si la voiture est à la maison aide aussi pour éviter d'enregistrer des charges sur d'autres bornes AC !

Ce qui donne ceci :

{% if states.device_tracker.voiture_location_tracker.state == "home" %}
 {{ (state_attr('sensor.voiture_charger_power', 'charger_amps_actual') | int(default=0)) * (state_attr('sensor.voiture_charger_power', 'charger_volts') | int(default=0))}}
{% endif %}

De là pour calculer le cumul des W en kWh, un somme de Riemann s'impose, et toujours dans les entrées, il suffit de créer une entité "sensor.energie_voiture" avec les bonnes configurations pour être ajoutée au dashboard énergie.

Exemple :

Autres trucs et astuces variés

Voici quelques retours d'expérience ou utilisations.

Réveil de la voiture

La voiture se met d'elle-même en veille profonde au bout d'un moment, ce qui a pour incidence dans certains cas de ne pas remontrer des mises à jour d'informations quand rien ne se passe. Il peut donc arriver que quand on branche le câble de charge l'info ne remonte pas à HA.

Pour pallier ce souci, dans mes automatisations sensibles (lancement de charge ou arrêt) j'appelle au préalable le service "button.press" sur une des 2 entités : "button.voiture_force_data_update" ou "button.voiture_wake_up"

Alerte pression des pneus

Pour se simplifier la vie et les automatisations, les cartes ou autres utilisations, on peut créer une entité "warning" qui est active dès qu'un des pneus est sous la pression minimale.

Il suffit d'aller dans les entrées ; créer une nouvelle entrée Template - Capteur Binaire.

Classe d'appareil : "Sécurité".

{% if ((states.sensor.voiture_tpms_front_left.state | float < 2.70) 
   or (states.sensor.voiture_tpms_front_right.state | float < 2.70) 
   or (states.sensor.voiture_tpms_rear_left.state | float < 2.70) 
   or (states.sensor.voiture_tpms_rear_right.state | float < 2.70)) %}
on
{%- else -%}
off
{%- endif -%}

Vitesse de la voiture

Il est possible d'afficher la vitesse de la voiture ou d'en faire une entité en récupérant l'attribut "Speed" de l'entité "device_tracker.voiture_location_tracker"

Charge Solaire Adaptative

Je ne vais pas m'étendre sur le sujet, mais avec toutes les entités fournies, il est assez facile de faire des automatisations de charge adaptative sur surplus solaire.

Cela se fait en faisant varier le "number.voiture_charging_amps" suivi éventuellement d'un appel à "button.voiture_force_data_update".

EV Charger Card

Pour ceux qui utilisent un chargeur non connecté et qui veulent avoir sur leur tableau de bord une carte qui représente leur chargeur. HACS propose la carte "EV Charger Card" qui prend en charge les voitures Tesla.

Test d'émissions

Le bouton test d'émission est un favori de mon fils qui a un widget de l'app sur son téléphone...

Conclusion

Voilà, vous avez pu intégrer votre produit Tesla dans Home Assistant. Vous constatez que le nombre d'informations remontées est très important, et donc également les possibilités d'affichage et automatisations.

N'hésitez pas à poser vos questions, faire vos retours d'expérience et partager vos découvertes dans les commentaires.