Envoyer des commandes à sa Tesla via MQTT/BLE

désolé je ne trouve pas comment reprendre votre presentation.

Docker-compose.yml

volumes:
  tesla_ble_mqtt_model_3:
    external: true

services:
  tesla_ble_mqtt_model_3:
    container_name: tesla_ble_mqtt_model_3
    image: "iainbullock/tesla_ble_mqtt:latest"

    environment:
      - TZ='Europe/Paris'
      - TESLA_VIN1=xxxxxxxxxx
      - MQTT_IP=xxxxxxxxxx
      - MQTT_PORT=1883
      - MQTT_USER=xxxxxxxxxxxx
      - MQTT_PWD=xxxxxxxxxxxxx

    stdin_open: true
    tty: true

    entrypoint: "/app/run.sh"
    working_dir: /data

    volumes:
      - tesla_ble_mqtt_model_3:/data
      - /run/dbus:/run/dbus
      - /share/tesla_ble_mqtt:/share/tesla_ble_mqtt


    network_mode: host
    privileged: true

    restart: unless-stopped

comment je récupère les logs du docker ?

dans HA, j’ai bien l’integration mqtt que j’utilise deja pour le zigbee

merci

Si vous n’êtes pas à l’aise en cli, le mieux reste d’utiliser portainer. Ca prend 5 minutes à installer et l’interface graphique simplifie grandement les choses.

c’est fait !
container fonctionne. Je rtrouve bien mon docker en running

Les logs

BLE_MAC=

MQTT_IP=192.169.1.15

MQTT_PORT=1883

MQTT_USER=

MQTT_PWD=Not Shown

SEND_CMD_RETRY_DELAY=

Include subroutines

/share/tesla_ble_mqtt already exists, existing BLE keys can be reused

Setting up auto discovery for Home Assistant

Setting up HA auto discovery for x

DEV_ID=tesla_ble_mqtt_x

DEV_NAME=Tesla_BLE_MQTT_x

TOPIC_ROOT=tesla_ble_mqtt/x

------------------------------------------------------------------------------------------------------------------------------

tesla_ble_mqtt_docker by Iain Bullock 2024 https://github.com/iainbullock/tesla_ble_mqtt_docker

Inspiration by Raphael Murray https://github.com/raphmur

Instructions by Shankar Kumarasamy https://shankarkumarasamy.blog/2024/01/28/tesla-developer-api-guide-ble-key-pair-auth-and-vehicle-commands-part-3

Configuration Options are:

TESLA_VIN1=x

TESLA_VIN2=

TESLA_VIN3=

BLE_MAC=

MQTT_IP=192.169.1.15

MQTT_PORT=1883

MQTT_USER=x

MQTT_PWD=Not Shown

SEND_CMD_RETRY_DELAY=

Include subroutines

/share/tesla_ble_mqtt already exists, existing BLE keys can be reused

Setting up auto discovery for Home Assistant

Setting up HA auto discovery for x

DEV_ID=tesla_ble_mqtt_x

DEV_NAME=Tesla_BLE_MQTT_x

TOPIC_ROOT=tesla_ble_mqtt/x

Error: Operation timed out

------------------------------------------------------------------------------------------------------------------------------

tesla_ble_mqtt_docker by Iain Bullock 2024 https://github.com/iainbullock/tesla_ble_mqtt_docker

Inspiration by Raphael Murray https://github.com/raphmur

Instructions by Shankar Kumarasamy https://shankarkumarasamy.blog/2024/01/28/tesla-developer-api-guide-ble-key-pair-auth-and-vehicle-commands-part-3

Configuration Options are:

TESLA_VIN1=x

TESLA_VIN2=

TESLA_VIN3=

BLE_MAC=

MQTT_IP=192.169.1.15

MQTT_PORT=1883

MQTT_USER=x

MQTT_PWD=Not Shown

SEND_CMD_RETRY_DELAY=

Include subroutines

/share/tesla_ble_mqtt already exists, existing BLE keys can be reused

Setting up auto discovery for Home Assistant

Setting up HA auto discovery for x

DEV_ID=tesla_ble_mqtt_x

DEV_NAME=Tesla_BLE_MQTT_x

TOPIC_ROOT=tesla_ble_mqtt/x

Error: Operation timed out

------------------------------------------------------------------------------------------------------------------------------

tesla_ble_mqtt_docker by Iain Bullock 2024 https://github.com/iainbullock/tesla_ble_mqtt_docker

Inspiration by Raphael Murray https://github.com/raphmur

Instructions by Shankar Kumarasamy https://shankarkumarasamy.blog/2024/01/28/tesla-developer-api-guide-ble-key-pair-auth-and-vehicle-commands-part-3

Configuration Options are:

TESLA_VIN1=x

TESLA_VIN2=

TESLA_VIN3=

BLE_MAC=

MQTT_IP=192.169.1.15

MQTT_PORT=1883

MQTT_USER=x

MQTT_PWD=Not Shown

SEND_CMD_RETRY_DELAY=

Include subroutines

/share/tesla_ble_mqtt already exists, existing BLE keys can be reused

Setting up auto discovery for Home Assistant

Setting up HA auto discovery for x

DEV_ID=tesla_ble_mqtt_x

DEV_NAME=Tesla_BLE_MQTT_x

TOPIC_ROOT=tesla_ble_mqtt/x

Error: Operation timed out

------------------------------------------------------------------------------------------------------------------------------

tesla_ble_mqtt_docker by Iain Bullock 2024 https://github.com/iainbullock/tesla_ble_mqtt_docker

Inspiration by Raphael Murray https://github.com/raphmur

Instructions by Shankar Kumarasamy https://shankarkumarasamy.blog/2024/01/28/tesla-developer-api-guide-ble-key-pair-auth-and-vehicle-commands-part-3

Configuration Options are:

TESLA_VIN1=x

TESLA_VIN2=

TESLA_VIN3=

BLE_MAC=

MQTT_IP=192.169.1.15

MQTT_PORT=1883

MQTT_USER=x

MQTT_PWD=Not Shown

SEND_CMD_RETRY_DELAY=

Include subroutines

/share/tesla_ble_mqtt already exists, existing BLE keys can be reused

Setting up auto discovery for Home Assistant

Setting up HA auto discovery for x

DEV_ID=tesla_ble_mqtt_x

DEV_NAME=Tesla_BLE_MQTT_x

TOPIC_ROOT=tesla_ble_mqtt/x


Pour faire simple, selon les systèmes le dossier /share/ peut être accessible ou pas en écriture par docker ou portainer. J’ouvre une issue dessus #26 dans le repo github mkdir: can’t create directory ‹ /share/tesla_ble_mqtt ›: No such file or directory · Issue #26 · tesla-local-control/tesla_ble_mqtt_docker · GitHub

@patatoche comment veux tu utiliser ce package ? Aujourd’hui c’est possible de l’utiliser de deux manières. Dans les deux cas, cela génèrera un appareil Tesla_BLE_[VIN] et des entités correspondantes dans MQTT sur homeassistant.

Mode Addon: il faut ajouter le repo de l’addon dans la liste des dépots de home assistant, puis l’installation sera assez simple: GitHub - tesla-local-control/tesla-local-control-addon: Control your Tesla locally from HomeAssistant

Mode standalone docker (sur une autre machine): se référer à la documentation de la version standalone. GitHub - tesla-local-control/tesla_ble_mqtt_docker

Concernant ton erreur Error: Operation timed out je ne sais te dire. Dans ton log, il semble qu’il y ait des valeurs omises: MQTT_USER par exemple…

Bonjour a tous, désolé pour ma réponse tardive.
grâce a l’aide de Vladvonvidden en MP ca fonctionne !
j’ai utilisé le dernier compose mi a jour.
la liaison avec mqtt fonctionne parfaitement
distance entre RPI et tesla 5m
encore merci a tous !

Super
@patatoche @Vladvonvidden pouvez vous partager les explications et votre soluce? Qu’on intègre ça dans les READMEs… Thanks! :+1:

@raphmur j’ai ajouté la procédure de résolution dans le message initial (à la fin). Le contenu du coker-compose faisait encore référence à tesla_ble_mqtt:/share alors qu’il faut désormais utiliser tesla_ble_mqtt:/share/tesla_ble_mqtt.

Le tutoriel à été mis à jour, et j’ai suggéré un nettoyage docker (également expliqué dans le premier message), ce qui semble avoir réglé le problème.

Je suis passé sur la version addon, ça fonctionne bien ( le serveur HA n’est pas loin de la voiture ).
Par contre de là à pouvoir l’utiliser pour gérer la charge en fonction du surplus de production. Avec PVexcess c’est impossible, je pense que le manque de retour d’info empêche le BP de bien fonctionner.

Vous utilisez quoi comme automatisation qui fonctionne avec les commandes BT ? Merci :slight_smile:

On en parle ici.

J’utilise une automatisation perso… J’ai mis un peu de temps à la paramétrer, mais ça fonctionne très bien maintenant.
Mon usage type:

  • Recharge le jour jusqu’à une consigne de jour (typiquement 90%), avec une régulation solaire
  • Recharge la nuit jusqu’à une consigne de nuit (ex. 60%), en laissant la Tesla se débrouiller
    J’ai juste eu besoin d’un compteur d’énergie (incl. réinjection), comme celui ci

Pour ça j’ai du créer quelques variables, permettant notamment de donner la consigne réelle de charge, avec quelques paramètres pour éviter les perturbations par les autres usages et les pics. Donc utilisation de filtrage et seuils.
Quand elle est en charge, pas besoin d’utiliser l’API Tesla, je définis des variables d’état de charge et de courant de charge en supposant que mes commandes ont abouti. Quand j’ai 5 min, je poste ma configuration…
Je détecte simplement les changements d’état de branchement par l’API Tesla (avec son refresh rate nominal). J’arrive à une très bonne perf d’autoconsommation (les trous étaient quand la voiture était absente, et j’avais autorisé une consommation réseau de 1A):

Ok merci :slight_smile:

Ça ressemble un peu au fonctionnement de Pvexcess.

En fait je pense que le principal problème vient de l’intégration ble tesla ( ici addon ) en fait par rapport à celui qui utilise l’api tesla l’intégration autorise les intensités avec un pas de 0.1 et la voiture ne les accepte pas.

J’ai essayé de modifier le BP, à voir demain si ça fonctionne bien :slight_smile:

J’arrondis toutes les valeurs en entier pour que ça passe avec la voiture… Ça ne fait pas une grosse différence a la fin.

Bonjour,
J’ai, il me semble, un pb de communication avec ma tesla en BLE. La chaine HA → mosquitto->tesla-ble_mqtt est correcte (je vois les messages passer depuis mon PC linux avec mqttx sur les topic tesla_ble_mqtt/VIN_1/# mais au deploy dans les logs du docker :
received MQTT message tesla_ble_mqtt/VIN_1/config deploy_key VIN: VIN_1 COMMAND: config
2024-07-06T12:55:17.629459241Z Configuration deploy_key requested
2024-07-06T12:55:17.629512730Z Deploying public key to vehicle
2024-07-06T12:55:17.633852863Z Attempt 1/5
2024-07-06T12:55:37.660534096Z Error: failed to find BLE beacon for VIN_1 (Saa87d5f432252716C): can’t scan: context deadline exceeded
2024-07-06T12:55:37.664066108Z COULD NOT SEND THE KEY. Is the car awake and sufficiently close to the bluetooth device?
2024-07-06T12:55:42.668943215Z Attempt 2/5

le RPI est a coté du véhicule (-60 de RSSI).
En complément d’info : je suis passé de 00:00:00:00:00 dans le device adress donné dans le ficheir docker-compose.yml (j’avais pensé que peut être le code faisiat un scan sur les adresses tesla (VIN1, VIN2, VIN3 ,…) sans succès j’ai donc mis le device address découvert depuis ble scan

[details="Configuration et logs"]

## Docker-compose.yml
volumes:
  tesla_ble_mqtt:
    external: true

services:
  tesla_ble_mqtt:
    container_name: tesla_ble_mqtt
    image: "iainbullock/tesla_ble_mqtt:latest"
    environment:
      - TZ='Europe/Paris'
      - TESLA_VIN1=VIN_1
      - BLE_MAC=74:B8:39:*mon adresse BLE*
      - MQTT_IP=192.168.0.*xx*
      - MQTT_PORT=1883
      - MQTT_USER=*mon user*
      - MQTT_PWD=*mon pass*
      - SEND_CMD_RETRY_DELAY=5
    stdin_open: true
    tty: true

    entrypoint: "/app/run.sh"
    working_dir: /share/tesla_ble_mqtt

    volumes:
      - tesla_ble_mqtt:/share/tesla_ble_mqtt
      - /run/dbus:/run/dbus

    network_mode: host
    privileged: true

## Logs
2024-07-06T12:55:17.610727156Z Listening to MQTT
2024-07-06T12:55:17.629332002Z Received MQTT message tesla_ble_mqtt/VIN_1/config deploy_key VIN: VIN_1 COMMAND: config
2024-07-06T12:55:17.629459241Z Configuration deploy_key requested
2024-07-06T12:55:17.629512730Z Deploying public key to vehicle
2024-07-06T12:55:17.633852863Z Attempt 1/5
2024-07-06T12:55:37.660534096Z Error: failed to find BLE beacon for VIN_1 (Saa87d5f432252716C): can't scan: context deadline exceeded
2024-07-06T12:55:37.664066108Z COULD NOT SEND THE KEY. Is the car awake and sufficiently close to the bluetooth device?
2024-07-06T12:55:42.668943215Z Attempt 2/5
2024-07-06T12:56:02.708599466Z Error: failed to find BLE beacon for VIN_1 (Saa87d5f432252716C): can't scan: context deadline exceeded
2024-07-06T12:56:02.715131774Z COULD NOT SEND THE KEY. Is the car awake and sufficiently close to the bluetooth device?
2024-07-06T12:56:07.721334482Z Attempt 3/5

Une idée qui pourrait aider ?
Merci par avance

La voiture est elle bien éveillée (écran actif) au moment de l’appairage ?

Il me semble (doc tesla : Lorsque vous ouvrez une porte pour entrer dans le véhicule Model 3, l’écran tactile s’active et vous avez accès à toutes les commandes.) Ce qui est effectivement mon cas …

@fil22, est-ce que c’est toi qui a renommé ton vin effectif en VIN_1 dans la citation de log? Je pense que oui, vu que tu as le LNAME (Saa87d5f432252716C)
Sinon, il y a un problème.

L’adresse MAC dans le docker-compose est utile que pour la détection de proximité.

Le bluetooth fonctionne correctement?
Dans le doute, tu peux essayer de t’assoir dans la voiture, et passer ta carte Tesla, puis renvoie la commande. Si ça bug toujours, on cherchera plus. (Peux tu m’envoyer le log complet, sans remplacement de texte, en MP?)

@raphmur l’adresse mac dans le docker-compose est celle de la voiture ? Ou celle de la clef USB bluetooth ? Si c’est celle de la voiture, comment faire pour la trouver ?

Celle de la voiture
Normalement il y a de la doc visible directement depuis l’addon.

→ Adresse MAC BLE (aa:bb:cc:dd:ee:ff). Utiliser Android « BLE scanner » ou iOS « nRF Connect » pour trouver l’adresse MAC Tesla associée au nom BLE ressemblant à S___________C

Chez moi ça ressemble à ça, la tesla est identifiable pas un nom bluetooth en SxxxxxC