Abfrage von Fahrzeugwerten beim Ora Funky Cat über MeatPi WiCan-OBD-C3 und MQTT

Begonnen von tupol, 14 April 2024, 19:12:06

Vorheriges Thema - Nächstes Thema

tupol

Hallo,

ich habe seit ein paar Monaten einen Ora Funky Cat von GWM im Hof stehen. Da ich auch Solar habe, habe ich mir einen MeatPi WICAN-OBD-C3 Dongle zugelegt, um Werte wie den Batterie-Ladezustand und die Kilometer auszulesen und in meinem HEMS zu nutzen. Der Dongle greift über WLAN auf einen MQTT Server zu und fragt die Fahrzeugdaten über die OBD2-Schnittstelle des Fahrzeuges ab. Bei Interesse könnte ich die Konfiguration auch in einem Wiki Beitrag archivieren.

Meine Frage an die Community:
1. Hat das schon irgendjemand anderes am Laufen?
2. Wie trigger ich am besten das Auslesen über den MQTT Server? D.h. wie setze ich am besten regelmäßig das Publish ab? Gibt es dafür eine eingebaute Funktion oder muss ich einen Timer (at) setzen?

Gruß
Tupol

Otto123

Hallo Tupol,

  • ich nicht. Ich habe aber mal die Anleitung für HAS gelesen.
  • der MQTT Server ist ja erstmal die Drehscheibe. Du baust auf FHEM Seite noch ein MQTT2_Device (hast Du schon?), das bildet die Daten ab. Dort baust Du dir get Befehle (publish zum Auto) ein, je nach dem wie granular Du Werte abfragen kannst und willst. Die get Befehle triggerst Du dann mit einem Timer Deiner Wahl.

Ich denke das wird ein MQTT Thema, Du solltest das verschieben ;) und Deine MQTT Konfiguration bisher beschreiben.
Die MQTT Schnittstelle ist ja auf dem github halbwegs dokumentiert.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

tupol

Hallo Otto123,

vielen Dank für den Hinweis mt dem Thema. Ich hatte es übersehen bzw. mich nach einem bereits existierenden Beitrag gerichtet. Ich kann leider den Beitrag nicht umziehen, habe aber die Administratoren informiert.

Was ist den ein HAS?

Ich habe das MQTT2-Device schon am laufen. Allerdings hatte ich mich gefragt, ob es eine automatische Abfrage ohne Timer gibt.

Gruß
Tupol

Otto123

Guten Morgen,

doch Du kannst das: unten Links gibt es den Knopf Thema verschieben...

HAS - Home Assistant Server, der quasi MQTT als Kern hat - dein Text war voll mit mir unbekannten Kürzeln, den konnte ich mir nicht verkneifen. :)

Automatische Abfragen gibt es beim MQTT2_Device nicht (im HA übrigens auch nicht). Üblicherweise liefern die Geräte bei Änderungen oder zeitgesteuert ihre Werte beim MQTT Server ab. Meistens mehr als einem lieb ist.
Hier ist das ganze mal andersrum (wegen Energieersparnis?) hat für Dich den Vorteil Du kannst bestimmen, welche Werte Du wann haben willst.
Aber Timer sind ja genügend da, bzw. kannst Du ja auch situationsbedingt Abfragen starten: Solarüberschuss -> steht das Auto da und verträgt die Batterie noch etwas Ladung?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

tupol

Der WiCan von MeatPi ist ein recht clevere Möglichkeit, um über OBD2/CAN-Bus an Fahrzeugdaten ranzukommen. Bei den meisten E-Autos gibt es ja keine API, um auf die Batteriedaten oder die Laufleistung zugreifen zu können.
Natürlich kann man ihn auch bei Verbrenner-Autos nutzen, um z.B. die monatlichen Fahrstrecken zu tracken oder rechtzeitig mitzubekommen, wenn die Starter-Batterie leer ist.
Wundert mich, dass bisher außer einem Eintrag weder im Forum noch in der Wiki was dazu zu finden ist.

beaune

Hallo,

ja ich nutze den WiCan seit geraumer Zeit, um meinem Zoe damit auszulesen. Das Problem ist, dass man nicht immer an die Daten heran kommt und damit eine rein zyklische Abfrage nicht funktioniert. Man kann während des Ladens Requests stellen; das ist kein Problem, wenn man die Info von der Wallbox hat. Oder wenn man gerade nach Hause gekommen ist. Dafür muß man sich benachrichtigen lassen, wenn sich der Adapter gerade wieder mit dem Heim-Wifi verbunden hat, und hat dann ein paar Sekunden Zeit. Es geht auch manches, wenn das Auto zwar an der Wallbox hängt, ohne zu laden. Das ist dann so eien Art "Dämmerzustand", wo man einige Informationen, aber nicht alle, abrufen kann, nachdem man eine Art Wakeup-Telegramm geschickt hat. Der Zoe sendet einige Dinge auch automatisch, wenn man ihn startet oder abstellt. Das ist aber alles individuell, sowohl was das Verhalten des Autos angeht, aber auch was man wirklich wissen möchte.

Es ist übrigens eine neue Version der WiCan Firmware angekündigt, mit der man den Spannungspegel der 12V-Versorgung direkt ermitteln kann, ohne dass das Auto wach sein muß. Könnte auch ne interessante Information sein.

Guß
Beaune

tupol

Hallo Beaune,

ich bin bisher recht zufrieden mit der Auswertung (SoC, SoH, True SoC, Mileage, TotalCharge, TotalDischarge, BatteryVoltage, OperationalVoltage), aber immer noch am Forschen.
Was mich etwas irritiert, ist der Status (online/offline) des WiCAN auf dem MQTT-Server (Mosquitto). Ich dachte anfänglich, dass der vom WiCAN gesetzt wird, aber er setzt sich auf "offline", wenn ich wegfahre und der WiCAN somit nicht mehr im WLAN ist. Ist das eventuell ein Reading vom Server, das anzeigt, dass der WiCAN eingeloggt ist? Dann kann man ja die Abfrage minütlich laufen lassen, solange er online ist.

Hast Du auch Werte, die über zwei gestaffelte Publishes (tx-rx-Handshake + tx-rx zum Auslesen) abgefragt werden müssen? Bei den Reifendrucksensoren ist das anscheinend nötig aber ich weiß nicht so richtig, wie man das in das MQTT-Device integrieren kann.

Gruß
Tupol

beaune

Das mit dem status Reading ist mir noch gar nicht so aufgefallen. Du hast recht, das kann nur vom MQTT-Server gesendet werden (bei mir fhem), nicht vom Adapter. Wie genau hier der Informationsfluß vom Adapter zum Server ist, weiß ich auch nicht. Aber Tatsache ist, dass dieses Reading zuverlässig anzeigt, ob das Auto da ist oder nicht, und wenn Du da ein notify dran bindest, das ein at aktiviert/deaktiviert, dann geht das erstmal. Du mußt aber trotzdem davon ausgehen, dass das Auto irgendwann in sleep geht und dann keine Telegramme mehr kommen. Ich mache die zyklische Abfrage deshalb eben auch vom Verbindungsstatus der Wallbox abhängig, und frage ansonsten nur einmal. SoC, SoH etc. ändert sich ja auch nicht so schnell, wenn das Auto nur steht.

Was für mich anfangs etwas schwierig war, war die Bestimmung des Protokolls auf Layer 7. CAN ist ja nur Layer 2. Beim Zoe wird Unified Diagnostic Service UDS (29-Bit-Identifier) verwendet. Ich weiß nicht, ob das bei Deinem Fahrzeug auch so ist. Beim UDS gibt es einfache Parameteranfragen anhand einer Parameternummer. Es kann dann sein, dass als Antwort mehrere Telegramme kommen. Das hab ich zwar strukturell vorgesehen, aber auch noch nicht implementiert. Alles, was mich inhaltlich interessierte, war als Einzeltelegramm zugreifbar. Der Zoe schickt zwar manchmal von selbst solche Telegrammblöcke, die habe ich bislang aber einfach ignoriert. Der Blockdatentransfer ist sicher auch dann sinnvoll, wenn man sehr viele Daten lesen möchte. Ich brauchte bislang nur wenige Daten, daher hab ich mir die Mühe noch nicht gemacht. Aber das scheint eh nicht das zu sein, was Du oben mit tx/rx/handshake meinst.