Elektro Auto Ladestand der Batterie in HA ohne APP

Hallo zusammen

Ich habe einen Hyundai Kona EV 2018. Er hat kein App, kein Bluelink.
Eines Abends habe ich die KI gefragt, ob man bei diesem Auto den Ladestand der Batterie ins Smarthome kriegt. Die Antwort war positiv und ich habe mich ans Werk gemacht.

Ich habe einen OBD II Dongle bestellt, der WLAN hat. Ich habe gelesen, dass man die teilweise umkonfigurieren kann von WLAN AP auf Client. Dann noch ein ESP32, das die Daten in Homeassistant überträgt.
Der Erste Fail: Mein Dongle konnte nicht umkonfiguriert werden. So musste dann hier ein weiteres ESP32 her.

Der erste ESP32 verbindet sich mit dem Dongle am Auto. Der schickt die Daten mittels UART an den zweiten ESP32, der dann die Daten mit MQTT an Homeassistant sendet.
Ein Bild davon (KI generiert):

Der KI (claude.ai) habe ich dann gesagt, was ich habe und was ich damit machen will, und so hat die KI die ganzen yaml Dateien geschrieben.
Was beachtet werden musste: Wenn der Dongle ständig anfragen macht am Auto, dann schlafen die Steuergeräte nicht ein und am Morgen wäre dann die 12V Batterie leer. Und ein EV mit leerer 12V Batterie startet nicht mehr.
Somit gilt als Bedingung für die erlaubten Abfragen: Wenn ich nach Hause komme (getriggert durch das Garagentor) dann werden 5min lang Abfragen gemacht. Oder wenn das Auto aktiv lädt (Wird mit der Wallbox Entität via MQTT an den ESP32 gesendet), dann werden auch Abfragen gemacht.
Wenn aber keine Abfragen laufen, dann schläft auch der OBD Dongle nach einiger Zeit ein, und dann kommen keine Daten mehr, wenn geladen wird sobald die Sonne da ist. Somit hat die KI programmiert, dass alle 2 min ein Keepalive Ping an den OBD Dongle gesendet wird, dass er denkt, er werde noch gebraucht. So schläft er nicht ein. Was ich nun selbst muss wenn ich nach Hause komme: Den Einschaltknopf am OBD Dongle drücken.

Das Setup funktioniert inzwischen gut und es gibt vermutlich keine Fehler mehr. Höchstens Die Ladezyklen und der SOH (State of Health) könnten nicht stimmen, sind aber doch plausibel. Ich kann es aber nicht gegenprüfen und deshalb weiss ich nicht, ob die Zahlen stimmen.

Für die ESPhome yaml habe ich mit einer secrets.yaml Datei gearbeitet.

Wie ich secrets.yaml benutzt habe:
die secrets.yaml sieht im Aufbau so aus:

wifi_ssid: “MeinWLAN”
wifi_password: “MeinPasswort123”

mqtt_username: “homeassistant”
mqtt_password: “MeinMqttPasswort”

ha_api_key: “xxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
ota_password: “MeinOtaPasswort”

wifi_ap_password: “FallbackPasswort”

In der yaml des ESP32 muss man das dann so machen:

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

ESPHome ersetzt !secret wifi_ssid beim Kompilieren automatisch durch den Wert aus secrets.yaml.

Ich hoffe, dass jemand das als Hilfestellung benutzen kann.

Hier noch die ganzen Dateien:
ESP32 #1:
kona-obd-reader-s42.yaml (4,3 KB)
obd_client_h-s42.txt (7,5 KB)

ESP32 #2:
kona-mqtt-sender-s42.yaml (11,0 KB)

Die Dump logs im ESP32#1 sind so gewollt, die werden via serielle Schnittstelle gesendet, welche nur zu Programmierzwecken oder trouble shooting eingesteckt wird. Diese logs haben es der KI ermöglicht, zu erkennen, wo was nicht gestimmt hat mit den codes aus dem Auto und Werten, die sich nicht verändert haben, obwohl sie hätten sollen.

Jetzt habe ich diese Entitäten:

  • Batteriespannung
  • SOH
  • SOC
  • Batteriestrom
  • Ladezyklen
  • Ladeleistung

Mit dem SOC kann ich nun vieles anstellen:

  • Ladeverluste berechnen
  • Entscheiden, ob ich in der Nacht noch nachladen muss
  • Ladeleistung im Fahrzeug anzeigen
  • Berechnen, von wo nach wo ich wieviel % Akku gebraucht habe (Regelmässige Strecken)
2 „Gefällt mir“