Précision importante : j’utilise mon url nabu-casa pour accéder à HA, je n’avais donc rien configuré en matière de domaine et autres réjouissances avant d’installer le proxy.
Résumé des étapes
- 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.
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. Notez que le domaine principal est bien différent du domaine
tesla.duckdns.org
. J’utilise volontairement un nom de domaine factice car je n’utilise pas NGinx pour accéder à mon instance HA depuis l’extérieur:
domain: core-nginx-proxy
hsts: max-age=31536000; includeSubDomains
certfile: fullchain.pem
keyfile: privkey.pem
cloudflare: false
customize:
active: true
default: nginx_proxy_default*.conf
servers: nginx_proxy/nginx_*.conf
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. Il va planter, avec une erreur du type : FATAL: Fix public key before proceeding. C’est normal à ce stade ne cherchez pas à résoudre ne (non) problème.
- 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.
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
-
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
A venir