API Tesla qui va devenir payant

Hello,

Toujours le soucis avec la dernière beta

2025-02-19 09:00:02	tesla	Erreur sur la fonction cronHourly du plugin : [MySQL] Error code : 22001 (1406). Data too long for column 'value' at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, `datetime`=:datetime, value=:value	Log tesla	144
2025-02-19 09:00:02	tesla	Erreur exécution de la commande [Voiture][Tesla Y Perf][Rafraichir] : [MySQL] Error code : 22001 (1406). Data too long for column 'value' at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, `datetime`=:datetime, value=:value	Log tesla	144

Bonjour @vercors , pourrais tu m’expliquer ce que fait l’etape 5 verification STP ? de ton plugin, car je pense que le PB pourrais resider dans la base de données. malgres un enregistrement correct chez tesla et un https fonctionel, le plugin me dit que mon compte est décconnecté. en reactivant le démon manuellement j’ai bien une facturation subitement qui est apparue de 0.01€ car j’ai vu mon vehicule (il avait ete crée avant noel ). Je l’ai supprimé pensant qu’il se recréerait car aucune commande ne fonctionnait. depuis plus rien car « compte tesla deconnecté ». j’ai cherché sur le forum je n’ai pas trouvé de PB similaire.
En mode debug je vois pourtant bien que le plugin communique avec mon domaine. je pense qu’un enregistrement ulterieur de mes clef PEM est toujour present dans la base et met la pagaille:

[2025-02-19 22:54:35] INFO  : 'Kit' Http Proxy Server is not started
[2025-02-19 22:54:45] INFO  : 'Kit' L'équipement a été supprimé
[2025-02-19 22:54:45] INFO  : Le token qui expire le 20 Feb 2025 06h40 sera mis à jour le 35 06 20 02 *
[2025-02-19 22:54:57] DEBUG  : Arrêt du tracking
[2025-02-19 22:54:58] INFO  : Remove private and public keys if any. removed '/var/www/html/plugins/tesla/proxy/teslaKeys/com.tesla.3p.private-key.pem' removed '/var/www/html/plugins/tesla/proxy/teslaKeys/com.tesla.3p.public-key.pem' removed '/var/www/html/.well-known/appspecific/com.tesla.3p.public-key.pem'
[2025-02-19 22:54:58] INFO  : Generate private and public keys if missing. read EC key writing EC key 'com.tesla.3p.public-key.pem' -> '/var/www/html/.well-known/appspecific/com.tesla.3p.public-key.pem'
[2025-02-19 22:54:59] DEBUG  : Génération du PartnerToken (https://fleet-api.prd.eu.vn.cloud.tesla.com)
[2025-02-19 22:54:59] DEBUG  : Génération du PartnerToken (https://fleet-api.prd.eu.vn.cloud.tesla.com)
[2025-02-19 22:55:00] INFO  : Enregistrement de l'Application Fleet API (domain:cybxxxxxxxxxxx.duckdns.org)
[2025-02-19 22:55:00] DEBUG  : Génération du PartnerToken (https://fleet-api.prd.eu.vn.cloud.tesla.com)
[2025-02-19 22:55:12] INFO  : Le token qui expire le 20 Feb 2025 06h55 sera mis à jour le 50 06 20 02 *
[2025-02-19 22:55:12] DEBUG  : Génération du PartnerToken (https://fleet-api.prd.eu.vn.cloud.tesla.com)
[2025-02-19 22:55:13] INFO  : Enregistrement de l'Application Fleet API (domain:cybxxxxxxxxxxx.duckdns.org)
[2025-02-19 22:56:38] DEBUG  : Arrêt du tracking
[2025-02-19 22:56:39] INFO  : Remove private and public keys if any. removed '/var/www/html/plugins/tesla/proxy/teslaKeys/com.tesla.3p.private-key.pem' removed '/var/www/html/plugins/tesla/proxy/teslaKeys/com.tesla.3p.public-key.pem' removed '/var/www/html/.well-known/appspecific/com.tesla.3p.public-key.pem'
[2025-02-19 22:56:39] INFO  : Generate private and public keys if missing. read EC key writing EC key 'com.tesla.3p.public-key.pem' -> '/var/www/html/.well-known/appspecific/com.tesla.3p.public-key.pem'
[2025-02-19 22:56:39] DEBUG  : Génération du PartnerToken (https://fleet-api.prd.eu.vn.cloud.tesla.com)
[2025-02-19 22:56:40] DEBUG  : Génération du PartnerToken (https://fleet-api.prd.eu.vn.cloud.tesla.com)
[2025-02-19 22:56:40] INFO  : Enregistrement de l'Application Fleet API (domain:cybxxxxxxxxxxx.duckdns.org)
[2025-02-19 22:56:41] DEBUG  : Génération du PartnerToken (https://fleet-api.prd.eu.vn.cloud.tesla.com)
[2025-02-19 22:56:53] INFO  : Le token qui expire le 20 Feb 2025 06h56 sera mis à jour le 51 06 20 02 *
[2025-02-19 22:56:53] DEBUG  : Génération du PartnerToken (https://fleet-api.prd.eu.vn.cloud.tesla.com)
[2025-02-19 22:56:53] INFO  : Enregistrement de l'Application Fleet API (domain:cybxxxxxxxxxxx.duckdns.org)

Si tu as la moindre idee je suis preneur, j’aimerais bien utiliser ce plugin que je n’ai eu fonctionnel que 1 mois.sniiif
Merci pour ton aide
yann

Log donné en utilisant Texte préformaté, bouton </>, merci.

bonjour @Tonio16
pourrais tu nous expliquer comment tu as pu saisir une adresse synology.me sur le site tesla (api)?

Bonjour,
Suite à cette limitation d’appel API, j’ai cherché une autre solution pour piloter la recharge de ma tesla. Un peu plus haut j’ai vu quelqu’un qui faisait des tests sur GitHub - wimaha/TeslaBleHttpProxy: TeslaBleHttpProxy is a program written in Go that receives HTTP requests and forwards them via Bluetooth to a Tesla vehicle. The program can, for example, be easily used together with evcc.
Je me suis dit que c’était une bonne idée et j’ai également commencé à tester cela.
Au final, j’ai un rasperry pi zero w installé près de la voiture et jeedom envoie des appels sur ce raspberry pour récupérer les informations et piloter la charge en fonction de mon excédent solaire. Cette solution fonctionne depuis une semaine maintenant sans souci.

2 « J'aime »

Bonjour @Tonio16 merci !

bon j’ai trouvé en me reconnectant sur mon premier compte tesla tout fonctionne. Le probléme est bien que l’enregistrement de mon domaine avec mon premier compte tesla est toujour present dans la base de jeedom pour ce plugin. malgres la suppression du vehicule et du plugin, impossible de nettoyer la base. quelqu’un sait comment supprimer un plugin completement de la base jeedom. j’ai peur de faire une betise. je vois les tables tesla.

Salut @Manu.helf

Tu as trouvé des tutos ? Ou tu es parti de la doc GitHub ?

Salut @dact,

J’ai suivi ce qu’à fait @Manu.helf avec TeslaBleHttpProxy.
Avec mon vieux raspberry pi zero de première génération cela m’a pris 2h30 environ (il est très lent).

Je suis passé par Putty pour la plupart des commandes à partir de l’étape 3.
Il faut aussi prévoir une des cartes de démarrage du véhicule.

Voici les grandes lignes de ce que j’ai fait :

  1. Installer l’OS sur la carte sd via Rapsberry Pi Imager : https://www.raspberrypi.com/software/ (une dizaine de minutes). Bien penser a créer le fichier SSH sur la carte…
  2. Premier démarrage du Pi Zero (plusieurs longues minutes)
  3. Installation du docker via les 4 premières étapes de ce site : Installer Docker sur Raspberry Pi - Raspberry Pi France (prévoir 1 bonne heure, les mises à jours ont été très longues pour moi). Penser a faire l’étape 4 avec SUDO.
  4. Installer TeslaBleHttpProxy a partir de l’étape A-2 via ce site : TeslaBleHttpProxy/docs/installation.md at main · wimaha/TeslaBleHttpProxy · GitHub. Idem, j’ai tout fait avec SUDO. Puis attendre quelques minutes que le démarrage du container soit terminé.
  5. Installer le pi zero assez proche de la voiture et attendre son démarrage complet
  6. Accéder à l’adresse http://YOUR_IP:8080/dashboard et générer les clefs.
  7. Réveiller la voiture et ouvrir une portière (histoire de voir ce qu’il se passe sur son écran)
  8. Inscrire son VIN sur le dashboard et cliquer sur SEND. Au bout de quelques seconde, sur l’écran de la voiture, un message va indiquer qu’un nouveau périphérique demande a se connecter, c’est à ce moment qu’il faut utiliser la carte de démarrage et suivre les instructions sur l’écran du véhicule.
  9. INSTALLATION TERMINEE !

Pour vérifier que tout s’est bien passé, tu peux utiliser cette commande dans ton navigateur http://localhost:8080/api/1/vehicles/{VIN}/vehicle_data. Tu devrais voir apparaitre la liste des infos remontées par TeslaBleHttpProxy.

Pour ce qui est des commande Jeedom, j’ai modifier mon scénario pour passer par des commandes CODE :

Pour la limite de charge :

// Récupération des tags
$tags = $scenario->getTags();

// Préparation corect des données JSON
$data = json_encode(['charge_limit' => 100]);

// Correction de la requête cURL
$req = "curl -i -X POST 'http://192.168.0.xx:8080/api/1/vehicles/LRW3ETOTOTOTOT/command/set_charge_limit' -H 'Content-Type: application/json' -d '$data'";

$scenario->setLog('DEBUG REQUETE : ' . $req);
$output0 = shell_exec($req);
$scenario->setLog('DEBUG RETOUR : ' . $output0);

OU

Pour l’ampérage de charge :

// Récupération des tags
$tags = $scenario->getTags();

// Préparation corect des données JSON
$data = json_encode(['charging_amps' => $tags['#Amperage#']]);

// Correction de la requête cURL
$req = "curl -i -X POST 'http://192.168.0.xx:8080/api/1/vehicles/LRW3ETOTOTOTOT/command/set_charging_amps' -H 'Content-Type: application/json' -d '$data'";

$scenario->setLog('DEBUG REQUETE : ' . $req);
$output0 = shell_exec($req);
$scenario->setLog('DEBUG RETOUR : ' . $output0);

(Merci GROK pour le formatage du code :slight_smile: )

1 « J'aime »

Merci bcp @GGTF !

J’ai commandé mes deux Pi Zero 2 W (le 2 ira certainement plus vite :sweat_smile:) pour mes deux véhicules

Bonjour @vercors j’ai reussi a virer ce qui posait PB dans la base et j’ai pu connecter mon compte tesla. j’ai avec le bouton decouverte recuperer mon vehicule. cependant le serveur proxy refuse de demarrer (modele Y de 2024) j’ai vu sur qlq discutions que certains on fait sauvegarder plusieures fois , mais pour moi cela ne corrige pas le PB. si vous avez resolus le PB du serveur proxy qui ne demarre pas je suis preneur !
`
0038|[2025-02-22 15:36:16] INFO : ‹ Kit › La voiture est en veille. Tentative de réveil avant d’executer la commande ‹ Actionner le klaxon ›

0039|[2025-02-22 15:36:16] INFO  : 'Kit' Tentative de réveil 1/3 [#         ]
0040|[2025-02-22 15:36:19] INFO  : 'Kit' Tentative de réveil 1/3 [##        ]
0041|[2025-02-22 15:36:23] INFO  : 'Kit' Tentative de réveil 1/3 [###       ]
0042|[2025-02-22 15:36:26] INFO  : 'Kit' Tentative de réveil 1/3 [####      ]
0043|[2025-02-22 15:36:26] INFO  : 'Kit' La voiture est maintenant réveillée après 1 tentative
0044|[2025-02-22 15:36:26] DEBUG  : Set mode "NORMAL"
0045|[2025-02-22 15:36:26] INFO  : 'Kit' Suivi de l'autonomie en mode NORMAL
0046|[2025-02-22 15:36:26] INFO  : 'Kit' La voiture a été sortie de veille. La commande 'Actionner le klaxon' va être executée
0047|[2025-02-22 15:36:27] INFO  : Http Proxy Server is not started
0048|[2025-02-22 15:36:28] INFO  : Http Proxy Server is not started
0049|[2025-02-22 15:36:29] INFO  : Http Proxy Server is not started
0050|[2025-02-22 15:36:30] INFO  : Http Proxy Server is not started
0051|[2025-02-22 15:36:30] ERROR  : After 4 attempts, I am not able to start the Proxy Server. Check your configuration.
0052|[2025-02-22 15:36:30] ERROR  : 'Kit' Impossible d'actionner le klaxon`

bonjour,
j’ai tout bien lu et apres installation de la clé . il s affiche COMPTE TESLA CONNECTE . mais des que je referme ma tesla ne s affiche pas et lorsque je relance configuration il n y a plus rien ???

auriez vous une idée ??

merci

En effet le pi zero w est très lent, mais une fois installé on ne s’en préoccupe plus.
J’ai fait les choses différemment, à savoir un script sur mon jeedom qui va appeler les commandes de tesla ble.
Voici mon script:

#!/bin/bash 

VIN=xxxxxxxxxxx

function charge_state() {
RESPONSE=`curl -s http://192.168.0.105:8080/api/1/vehicles/{$VIN}/vehicle_data?endpoints=charge_state&wait=true`
CHARGING=`echo $RESPONSE|jq -r '.[] | .response.charge_state.charging_state'`
INTENSITE=`echo $RESPONSE|jq -r '.[] | .response.charge_state.charge_amps'`
BATTERY_LEVEL=`echo $RESPONSE|jq -r '.[] | .response.charge_state.battery_level'`
CHARGE_LIMIT=`echo $RESPONSE|jq -r '.[] | .response.charge_state.charge_limit_soc'`
echo $CHARGING $INTENSITE $BATTERY_LEVEL $CHARGE_LIMIT
}

function start_charge() {
curl -s -X POST http://192.168.0.105:8080/api/1/vehicles/${VIN}/command/charge_start
}

function stop_charge() {
curl -s -X POST http://192.168.0.105:8080/api/1/vehicles/${VIN}/command/charge_stop
}

function set_amp() {
curl -s -X POST --header "Content-Type: application/json" --data '{"charging_amps": "'$1'"}' http://192.168.0.105:8080/api/1/vehicles/${VIN}/command/set_charging_amps
}

function is_charging() {
RESPONSE=`curl -s http://192.168.0.105:8080/api/1/vehicles/{$VIN}/vehicle_data?endpoints=charge_state&wait=true`
echo $RESPONSE|jq -r '.[] | .response.charge_state.charging_state'
}

function get_amp() {
RESPONSE=`curl -s http://192.168.0.105:8080/api/1/vehicles/{$VIN}/vehicle_data?endpoints=charge_state&wait=true`
echo $RESPONSE|jq -r '.[] | .response.charge_state.charge_amps'
}

opt=$1
case $opt
in
    charge_state) charge_state ;;
    start_charge) start_charge ;;
    stop_charge) stop_charge ;;
    set_amp) set_amp $2 ;;
    is_charging) is_charging ;;
    get_amp) get_amp ;;
    *) echo "Nothing to do"
       exit ;;
esac

L’idée pour moi est de lancer la commande charge_state au début de mon scenario afin d’avoir les informations de la voiture, alimenter des infos/commandes virtuelles, et ensuite en fonction de ma production solaire choisir de déclencher/moduler/arrêter la charge.

$charge_state=shell_exec("/var/www/html/plugins/script/data/tesla_bt.sh charge_state");
$states = explode(" ", $charge_state);
cmd::byString('#[Maison][Tesla][Charge]#')->event($states[0]);
cmd::byString('#[Maison][Tesla][Intensite]#')->event($states[1]);
cmd::byString('#[Maison][Tesla][Intensite_old]#')->event($states[1]);
cmd::byString('#[Maison][Tesla][Battery_Level]#')->event($states[2]);
cmd::byString('#[Maison][Tesla][Charge_Limit]#')->event($states[3]);

Voici les commandes que j’envoie par la suite

$intensite = cmd::byString('#[Maison][Tesla][Intensite]#')->execCmd();
shell_exec("/var/www/html/plugins/script/data/tesla_bt.sh set_amp $intensite");
shell_exec("/var/www/html/plugins/script/data/tesla_bt.sh stop_charge");
cmd::byString('#[Maison][Tesla][Charge]#')->event('Stopped');
shell_exec("/var/www/html/plugins/script/data/tesla_bt.sh start_charge");
cmd::byString('#[Maison][Tesla][Charge]#')->event('Started');

J’ai un peu galéré pour cette partie, d’ailleurs je n’ai pas compris comment fonctionnait les $tags du scenario: $tags = $scenario->getTags();
C’est pourquoi je suis passé par un script

1 « J'aime »

Hello,
La trace que tu me donnes, indique que le Serveur Proxy n’est pas démarré. Au moment d’envoyer une commande signée, il essaie de le démarrer.
Tu auras plus de log sur la raison pour laquelle ce servveur ne démarre pas en essayant de le démarrer depuis le panneau de config de la voiture (dans jeedom).
Il y a une case à cocher « Serveur Proxy ». Ensuite tu cliques sur « Démarrer le Serveur Proxy »
Qu’est ce que cela te donne ?
Merci
Nicolas

Bonjour,

Toujours spammé avec la dernière beta (2025-02-23 20:54:31) :

Erreur sur la fonction cronHourly du plugin : [MySQL] Error code : 22001 (1406). Data too long for column 'value' at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, `datetime`=:datetime, value=:value	Log tesla	
Erreur exécution de la commande [Voiture][Tesla Y Perf][Rafraichir] : [MySQL] Error code : 22001 (1406). Data too long for column 'value' at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, `datetime`=:datetime, value=:value

idem quand je demarre le serveur proxy :

<span id="span_errorMessage">[MySQL] Error code : 22001 (1406). Data too long for column 'value' at row 1  : REPLACE INTO history
        SET cmd_id=:cmd_id,
        `datetime`=:datetime,
        value=:value</span>

:face_with_raised_eyebrow:
Je regarde ce soir après le taf

Une autre possibilité : pour ma part j’ai acheté un chargeur à 70€ sur Ali pour pouvoir charger à 16A.
Il se trouve qu’en plus il est compatible Tuya ! Du coup, j’ai fait un script pour le contrôler via Jeedom => SmartLife / Tuya to mqtt : récupérer ses objets sous Jeedom
et je me contente, suivant ma production solaire, de déclencher la charge soit à 6, 8, 10, 13 ou 16A (8A pour moi vu que je n’ai que 1,7kW de solaire).

Ca marche bien, c’est juste dommage de ne pas pouvoir descendre à 4A mais bon, dans l’absolu, tant que je ne prends pas plus de 80% de la puissance sur le réseau ça reste moins cher qu’en heures creuses (HC = HP-17% chez moi). :wink:

Hello, même chose que toi, j’utilisais le plugin pour ouvrir mon portail à l’approche de la Tesla, cela fonctionnait merveilleusement bien. Depuis la mise à jour, j’ai atteint le seuil des 9,50 € en 48h donc cela devient inutilisable pour moi. Je me demande si je pourrais pas trouver un détecteur de proximité bluetooth pour déclencher l’ouverture de mon portail car c’est terminé pour moi l’API tesla.

Pour ma part, j’ai toujours utilisé un design mis en favoris du navigateur de mes deux véhicules, et en trois cliques j’ouvre mon portail depuis l’écran :slight_smile:

Et ça évite que le portail s’ouvre quand je passe dans la rue sans m’arrêter pour aller à la ferme au bout de la rue… Ou quand je vois mes chiens dehors en attendant que je prévienne ma femme que j’arrive pour qu’elle les rentrent…

1 « J'aime »

Oui le badge du portail ouvre bien aussi, mais c’était quand même le pied de savoir que la maison savait que la voiture approche, ouvre le portail et annonce son arrivée.
C’est vraiment décevant de la part de Tesla.
Quand à la charge solaire, il faudrait que la voiture soit là, mais bêtement je travaille le jour, même effet pour les heures creuses de jours.

1 « J'aime »