Bonjour à tous,
vu que j’ai passé un peu de temps cet après-midi à faire fonctionner l’intégration Tesla suite mise à jour 2025.1 de Home Assistant, je poste ici le résultat de mon expérience car on ne peut pas dire que Tesla nous facilite la tâche sur ce coup là . J’imagine que c’est pour limiter les abus.
Contexte
Depuis 01/2025 il est nécessaire de créer une application sur le site développeur de Tesla. Un crédit de 10€ mensuel est accordé pour l’utilisation personnelle. (Note : Il n’est pas nécessaire de rentrer une carte de crédit sur le compte développeur.)
Prérequis
Pour ce tuto, vous allez avoir besoin de
Comptes:
1 compte github https://github.com/
1 compte postman https://web.postman.co/
1 compte développeur Tesla https://developer.tesla.com/
Applications :
- Microsoft VSCode
- Machine virtuelle linux ou clé USB
Etape 1 : Création des clés open SSL publique et privée
Utiliser une clé USB Linux ou une machine virtuelle (VM) pour pouvoir générer les clés SSL.
Dans mon cas, j’ai utilisé une VM Debian sur ma freebox delta pour générer les clés Open SSL. Je me connecte en SSH depuis VSCODE pour utiliser cette VM.
On génère la clé privée:
openssl ecparam -name prime256v1 -genkey -noout -out private-key.pem
Puis la clé publique:
openssl ec -in private-key.pem -pubout -out public-key.pem
On peut faire un clic droit sur chaque fichier puis Download pour récupérer les deux fichiers.
Renommer le fichier public-key.pem en com.tesla.3p.public-key.pem
Note : si vous êtes bloqués pour récupérer la clé privée exécuter la commande suivante dans le terminal
sudo chmod 644 /home/dossier/private-key.pem
Etape 2 : Créer un repo GitHub et activer GitHub Pages
Créer un repo github nommé .well-known
A la racine créer un répertoire appspecific (note: pour créer un répertoire dans github il faut créer un nouveau fichier et ajouter un / à la fin du nom de fichier)
A la racine créér un fichier .nojekyll
Contenu du fichier .nojekyll
git add .nojekyll
git commit -m "Disable Jekyll for GitHub Pages"
git push
Dans le répertoire appspecific uploader votre fichier com.tesla.3p.public-key.pem
Dans les réglages du repo activer GitHub Pages pour exposer le contenu de votre repo.
Vérifiez que vous accédez bien à votre fichier PEM en tapant l’url lié à votre page
https://pseudo.github.io/.well-known/appspecific/com.tesla.3p.public-key.pem
Etape 3 : Création de l’application sur le compte développeur Tesla
Rendez-vous sur https://developer.tesla.com/
- Renseigner le nom, la description et l’utilisation de votre application
- URL origine autorisée => le nom de votre page github https://pseudo.github.com
URL redirection => https://my.home-assistant.io/redirect/oauth
- Sélectionner les autorisations nécessaires
sur la page facturation cliquer sur ignorer et soumettre
Voilà vous avez créé votre application.
Récupérez l’ID du client et le secret du client
Etape 4 : Enregistrement du endpoint
Ouvrir Postman https://web.postman.co/
1. Générer un token d’authentification
Créer une nouvelle collection.
Ouvrir l’onglet authorization
Choisir l’authentification de type OAUTH 2.0
Choisir la méthode client credentials
Renseigner l’URL https://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3/token
Choisir l’option send client credentials in body
Renseignez les client ID et client secret générés lors de la création de votre application Tesla
Cliquer sur le bouton Get New Access Token
Cliquer sur Proceed
Cliquer sur Use Token
2. Enregistrer votre endpoint chez Tesla
Créer une nouvelle requête dans la collection que vous venez de créer :
POST https://fleet-api.prd.eu.vn.cloud.tesla.com/api/1/partner_accounts?domain=pseudo.github.io
Vérifiez que le Auth Type est bien à inherit auth from parent
Appuyez sur Send
Si tout est ok, vous allez avoir un code 200 et dans la réponse les informations liées à votre application Tesla.
Etape 5 : Configuration de l’intégration Home assistant
Cliquer sur https://my.home-assistant.io/redirect/application_credentials/
et ajouter des nouvelles informations d’identification
Intégration Tesla Fleet
Nom => le nom de votre application Tesla
ID client et Secret client => les id et secret récupérés dans l’application Tesla.
Voilà normalement, tout doit rentrer dans l’ordre.