Bonjour,
Voici une procédure détaillée pour la configuration de l’addon Tesla Http Proxy. Cet addon est nécessaire pour continuer d’utiliser l’intégration Tesla après les changements d’API qui ont eu lieu en 2024.
Actuellement, et même avec le proxy, Tesla limite le nombre de commandes pouvant être envoyées au véhicule à 50 par jour. Orientez vous vers une solution alternative si vous avez besoin d’en envoyer d’avantage. Le nombre de requêtes pour obtenir les données du véhicule n’est en revanche pas limité.
Résumé des étapes
Pour ceux qui démarrent de zéro
- Créer un domaine DuckDNS.
- Installer l’addon DuckDNS.
- Installer l’addon NGINX Home Assistant SSL proxy.
- Installer l’addon tesla_http_proxy.
- Rediriger le port 443 sur son routeur.
- Démarrage des addons.
- Créer un compte développeur Tesla.
- Configuration de tesla_http_proxy.
- Configuration des véhicules.
- Configuration de l’intégration.
Pour ceux qui utilisent NGINX Home Assistant SSL proxy.
- Modifier les paramètres NGINX Home Assistant SSL proxy.
- Installer l’addon tesla_http_proxy.
- Rediriger le port 443 sur son routeur.
- Démarrage des addons.
- Créer un compte développeur Tesla.
- Configuration de tesla_http_proxy.
- Configuration des véhicules.
- Configuration de l’intégration.
Pour ceux qui utilisent NGINX Proxy Manager.
- Modifier les paramètres NGINX Proxy Manager.
- Installer l’addon tesla_http_proxy.
- Rediriger le port 443 sur son routeur.
- Démarrage des addons.
- Créer un compte développeur Tesla.
- Configuration de tesla_http_proxy.
- Configuration des véhicules.
- Configuration de l’intégration.
Créer un domaine DuckDNS
- Se rendre sur le site duckdns.org.
- Se connecter à l’aide de l’un des services proposés.
- Créer un nom de domaine via l’interface. Dans la suite, le nom de domaine sera
tesla.duckdns.org
. - Vérifier que l’IP assignée est bien la votre, mettre à jour manuellement sinon.
- Copier le nom de domaine et le token sur cette page.
Installer l’addon DuckDNS
La documentation complète se trouve ici. En résumé :
- Depuis l’interface home assistant, aller dans Réglages → Modules complémentaires → Boutique des modules complémentaires.
- Rechercher le module DuckDNS et cliquer dessus.
- Cliquer sur installer.
- Configuration de l’addon :
domains:
- tesla.duckdns.org
token: <votre_token>
aliases: []
lets_encrypt:
accept_terms: true
algo: secp384r1
certfile: fullchain.pem
keyfile: privkey.pem
seconds: 300
Installer l’addon NGINX Home Assistant SSL proxy
La documentation complète se trouve ici. En résumé :
- Installer l’addon NGINX Home Assistant SSL proxy en procédant de la même manière que pour DuckDNS.
- Ajouter le bloc suivant au fichier configuration.yaml de home assistant (dans le dossier /config) :
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.30.33.0/24
- Configuration de l’addon
# Laissez core-nginx-proxy en valeur par défaut sauf si vous prévoyez de faire usage de NGINX pour accéder à HA.
domain: core-nginx-proxy
hsts: max-age=31536000; includeSubDomains
certfile: fullchain.pem
keyfile: privkey.pem
cloudflare: false
customize:
active: true # ⚠ Attention à bien le laisser sur TRUE
default: nginx_proxy_default*.conf
servers: nginx_proxy/nginx_*.conf
Modifier les paramètres NGINX Home Assistant SSL proxy
Seulement pour ceux qui utilisent déjà NGINX Home Assistant SSL proxy.
# Votre domaine principal.
domain: "*.votreDomaine.fr"
hsts: max-age=31536000; includeSubDomains
certfile: fullchain.pem
keyfile: privkey.pem
cloudflare: false
customize:
active: true # ⚠ Attention à bien le laisser sur TRUE
default: nginx_proxy_default*.conf
servers: nginx_proxy/*.conf
Modifier les paramètres NGINX Proxy Manager
Seulement pour ceux qui utilisent déjà NGINX Proxy Manager
Configuration de l’addon :
Dans l’onglet advanced (adapter avec votre IP HA):
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
set $target 192.168.0.199;
# temporary Flask app for initial auth
location /callback {
proxy_pass http://$target:8099;
}
# static public key for Tesla
location = /.well-known/appspecific/com.tesla.3p.public-key.pem {
proxy_pass http://192.168.0.199:8123/local/tesla/com.tesla.3p.public-key.pem;
}
location = /favicon.ico {
log_not_found off;
}
location = /robots.txt {
log_not_found off;
}
Installer l’addon tesla_http_proxy
La documentation complète se trouve ici. En résumé :
- Ajouter le repo github au magasin des modules complémentaires :
- Naviguer jusqu’au magasin des modules complémentaires.
- Cliquer sur les trois points en haut à droite puis sur dépots.
- Dans la fenêtre Gérer les référentiels de modules complémentaires ajouter l’url du repo github :
https://github.com/llamafilm/tesla-http-proxy-addon
- Installer l’addon de la même manière que les deux autres.
- Configuration initiale :
client_id: ""
client_secret: ""
domain: tesla.duckdns.org
debug: true
regenerate_auth: false
region: Europe, Middle East, Africa
Rediriger le port 443 du routeur
Depuis l’interface de votre routeur, rediriger le trafic sur le port 443 vers votre instance HA ** sur le port 443 également** (IP du client ou de la VM qui fait tourner). La méthode sera différente pour chacun car elle dépend de l’interface de votre appareil.
Exemple : avec 192.168.1.2 qui fait tourner HA (accessible via le port 8123, rediriger le traffic WAN du port 443 vers 192.168.1.2:443.
Démarrage des addons
-
Lancer DuckDNS. Attendre quelques instants.
-
Puis lancer Nginx. Attendre quelques instants.
-
Lancer le proxy http. Attendre quelques instants.
- L’addon va planter, avec une erreur du type : FATAL: Fix public key before proceeding. C’est normal à ce stade ne cherchez pas à résoudre ce (non) problème.
- Si vous utilisez NGINX Proxy Manager, copiez les fichier
share/tesla/*.pem
danshomeassistant/www/tesla/
-
Redémarrer Nginx.
A ce stade, vérifier que votre clé publique est accessible a l’addresse https://tesla.duckdns.org/.well-known/appspecific/com.tesla.3p.public-key.pem
.
Ne cherchez pas à aller plus loin si vous n’arrivez pas à accéder à la clé à ce stade.
Créer un compte développeur Tesla pour obtenir le client ID et client secret.
Se rendre sur le site developer.tesla.com. Pour ceux qui seraient inquiet à l’idée de créer un compte la dessus, ca à l’air plutôt ok d’après ce qu’on peut lire sur le github officiel.
Dans la suite de cette section, faire varier les paramètres désignés par un symbole * en cas d’erreur « Unable to Onboard » lors de l’envoi du formulaire.
Remplir le formulaire avecs les paramètres suivants :
-
Business Details
- Business Name : Personal Use *
- Country/Regions : France
- TAX ID : FR00000000000 *
- Address Line 1 : My Home
- City : My City
- Zip Code : 00000
-
Application Access Request
- Application Name : Tesla-Endpoint-. *
- Purpose of usage : Personal use.
-
Application Access Request
- Authorization Code and Machine to Machine
- Allowed Origin URL(s) : https://tesla.duckdns.org
- Allowed Redirect URL(s) : https://tesla.duckdns.org/callback
-
Application Access Request
Cocher les cases :- Profile Information
- Vehicle Information
- Vehicle Commands
- Vehice Charging Management
A ce stade votre demande sera soumise à Tesla. pour ma part, elle a été immédiatement validée. Vous arrivez alors sur le dashboard developpeur, et pouvez accéder à votre application :
Copier le Client ID et Client Secret :
Configuration de tesla_http_proxy.
De retour dans HA, sur la page de configuration du proxy, renseigner le client ID et le client secret.
Redémarrer l’addon. A ce stade, vous devriez pouvoir accéder à l’UI :
Par la suite :
- Cliquez sur « Login to Tesla account ».
- Authentifiez-vous avec vos informations d’identification.
- Vous serez redirigé vers une URL qui générera une erreur 404.
- Copiez l’URL.et coller dans le champ prévu à cet effet dans l’interface de l’addon (en dessous de Login to Tesla account).
- Cliquez sur « Generate token from URL ».
- Le jeton de rafraîchissement sera affiché. Prenez soin de le copier.
Configuration des véhicules
Étapes à répéter sur chaque véhicules :
- S’installer dans le véhicule muni de son téléphone.
- Ouvrir l’application home assistant et se rendre sur l’interface de l’addon du proxy.
- Appuyer sur Enroll public key in your vehicle
Note: je n’ai pas réussi à prendre de screenshots pour la suite - Une confirmation vous sera demandée, pour autoriser l’accès à votre véhicule. Octroyez l’accès après avoir controlé le nom de domaine.
- Si tout se passe bien, après quelques instants, un message de validation sera affiché et vous devriez apercevoir une nouvelle clé dans la liste de celle autorisées pour votre voiture. La mention clé de la flotte devrait être présente (navré pour la photo de qualité inférieure):
Configuration de l’intégration
À vérifier au préalable
- L’unique intégration compatible avec le proxy est la suivante : alandtse/tesla: Tesla custom integration for Home Assistant
- Supprimer toute trace et configuration de l’intégration si utilisée avant la mise en place du proxy.
- Mette à jour l’intégration via HACS si besoin.
À faire ensuite
-
Depuis la page Intégrations de home assistant, ajouter l’intégration Tesla. Cocher sur la première fenêtre Use Fleet API Proxy
-
Renseigner vos identifiants et token, les autres champs devraient être pré-remplis :
-
À ce stade les véhicules devraient être disponibles dans HA.
Erreurs courantes, et solutions
Unable to Onboard lors de la création de l'application sur le site Tesla
Symptôme : Échec de la création de l’application avec le message d’erreur Unable to Onboard.
Solution :
- Modifier les informations du formulaire. En particulier :
- TAX ID dans l’onglet Business Details.
- Application Name dans l’onglet Application Access Request.
Partage du véhicule impossible, ce tiers n’est pas enregistré auprès de Tesla lors de l'ajout de la clé dans le véhicule
Symptôme : Un message d’erreur apparait sur le téléphone au moment de l’ajout de la clé générée avec le proxy : Partage du véhicule impossible, ce tiers n’est pas enregistré auprès de Tesla.
Solution :
- Cocher la case
regen auth
dans l’addon Tesla HTTP Proxy.
- Redémarrer l’addon