OBD CAN BUS / BYD e-Autos (SoC,... ) > IPS

Ich habe mich nun dazu entschlossen unseren deutschen Verbrenner gegen einen Chinesen-Stromer einzutauschen.

BYD bietet für unter 40.000,- € das, was eine e-Tron für 80.000,- hat.
Die Frage ist nun aber wie kommen gewisse Fahrzeugdaten in IPS?
Im speziellen ist de Ladestand wichtig um gezielt und Akkuschonend laden zu können.

Hier eine aktuell gut erklärte Studie zu den Akkutypen und wie man laden sollte:

Möchte somit 1 x pro Woche auf 100% und den Rest auf 80% laden.

Und hier ein OBD Wifi Dongle der MQTT kann:

Damit sollte es „kein“ Problem geben, wenn man irgendwie die Daten via MQTT auslesen kann!?

Und so sollte das aussehen:

Habe das Auto noch nicht, deswegen ist das alles theoretisch.
Falls sich Jemand beteiligen will bitte melden…

lg

Hier noch Doku für HA:

der Hersteller vom Wican hat jetzt auch verraten, wie sein Weg ist die richtigen Phrasen herauszubekommen.
Wican ins Auto stecken, die App Carscanner aufs Handy laden, Carscanner per Wifi mit dem Wican verbinden (der hat ja ne eigene IP, Port ist 23).
Dann in der Carscanner-App das eigene Auto auswählen, Sensoren auswählen, und dann den einen Sensor dauerhaft abfragen lassen, den man haben möchte.
Dann sieht man im MQTT-Channel „CAN“ TX und RX die Abfrage-Phrase und die Antwort-Phrase und kann damit weiter arbeiten. Kann man z.b. bequem über den MQTT-Explorer vom Home-Assistant loggen.

Auto: BYD Atto 3 (Baujahr 2024, Linkslenker)
SoC Auslesemöglichkeiten:
1. Ablesbar in der App des Herstellers (kann nicht über eine API angezapft werden und wurde bis dato auch noch nicht reverse engineered, sodass man die Daten dort rausbekommt)
2. Mittels OBD Stecker

Setup:
1. Wican wie auf der Github Seite beschrieben aufgesetzt, inkl. MQTT Kommunikatrion zu einem Mosquitto Broker den ich schon hatte.
2. Folgenden Wican Filter:
Bild
3. HomeAssistant, wiederum wie auf der Github Seite von Wican beschrieben.
- HA lauscht für das Wican Topic, welches sagt, dass er online ist
- und ab dann wird alle 5 Sekunden folgendes MQTT Topic geplublished, woraufhin der Wican wie im Filter konfiguriert antwortet. Sieht im MQTT Explorer etwa so aus: Bild
- geht der Wican Status auf offline, stoppt die regelmäßige Abfrage des SoC

Infos:
Während die Zündung aktiv ist und während dem Laden bleibt der Wican eingeschaltet. Wenn die Zündung aus ist, und auch nicht geladen wird, erkennt der Wican das an der Spannung der 12V Batterie und geht nach 3 Minuten in den deep sleep. Umgekehrt, wacht er bei Zündung und/oder Laden wieder auf.

Details zum CAN Protokoll:
Folgende CAN Message triggert die SoC Response im Atto 3: (diese wird auch in meiner HomeAssistant Automation regelmäßig geschickt)
{"bus":"0","type":"tx","ts":51109,"frame":[{"id":2023,"dlc":8,"rtr":false,"extd":false,"data":[3,34,0,5,170,170,170,170]}]}

Als Antwort kommen immer zwei Frames:
{"bus":"0","type":"rx","ts":37872,"frame":[{"id":2031,"dlc":8,"rtr":false,"extd":false,"data":[7,98,31,254,44,26,152,58]}]}
{"bus":"0","type":"rx","ts":38043,"frame":[{"id":2031,"dlc":8,"rtr":false,"extd":false,"data":[4,98,0,5,57,170,170,170]}]}

Interessant für den SoC ist dabei nur der Frame, in dem data mit 4 beginnt. Darin ist der 5. Wert der SoC als Dezimalzahl in % (konkret ist es das 4. byte mit 1 byte Länge, daher Start Bit 32, Bit length 8, Expression bloß V (weil der Wert direkt drin steht), die CAN ID steht mit 2031 fest und bei PID wird 4 angegeben, weil das der Filter auf das erste byte von data ist (damit wählen wir also den relevanten Framne der zwei))

Ich hoffe das hilft dem ein oder anderen BYD Atto 3 Besitzer bei den eigenen Versuchen mit MeatPi Wican OBD den SoC des Atto ins Smart Home zu bekommen (und von dort aus dann noch wer weiß wohin...)

Du könntest bei evcc schauen, ob dein Auto, Wallbox, Hausbatterie und Smartmeter unterstützt werden. Zu evcc ist die Symcon Integration einfach.

Hi Burkhard,
habe ich schon :slight_smile:
Leider unterstützen die zwar Fronius und Keba aber kein einziges BYD Auto.

Inwiefern einfach? Gibts da schon etwas?

Kannst ja mal nachfragen.

Ja ein Testmodul von mir.

Dir ist mal wieder langweilig, hurra :wink: Darf man testen?
Machst du auch eine Ladeplanung. Das wäre ja der Hammer:

Hab gerade eine Email von MeatPi electronics (Hersteller des OBD) bekommen, dass sie den BYD Atto 3 supporten.

Ich habe jetzt mal bei mouser 2 WICAN-OBD-C3 bestellt. Würde dann einen abgeben falls wer einen braucht.

Kann das alles leider noch nicht testen, da weder OBD noch Auto da sind :slight_smile:

Ich hätte da Interesse, da unser e-Golf auch nicht abgefragt werden kann, aber unsere OpenWB gut das Zielladen bis 80% machen könnte.

Wo finde ich denn die Beschreibung, welche Autos unterstützt werden?

Danke u. viele Grüße,
Doc

Es macht jedenfalls Sinn hier in „Gruppen“ zu bestellen. Einer kostet inkl. Versand/Fracht 59€, zwei von den Teilen zusammen 79€, weil keine Versandkosten/Fracht drauf kommen.
Bin auch am Überlegen für unseren 208e.
Gruß,
Peter

Gerne. Wenn ich ihn habe melde ich mich bei dir. Ansonsten bitte in 2 Wochen mal PN.
Wären dann 39 € + Versand Germanien.

Immer gerne.
Das Modul holt und schreibt über MQTT die Daten, die evcc zur Verfügung stellt. Was versteht du unter Ladeplanung? Eine eigene Verarbeitungslogik hat das Modul nicht.

Prima, der e-Golf scheint auch unterstützt zu werden.
Bin mal gespannt …

Ich habe gerade mal den meatPi OBD Adapter ausprobiert.

Also den ganzen Kram mit andere Sw auf die Pids lauschen usw. braucht man nicht mehr.
Mit der neuen Firmware (muss man erst updaten) gibt es jetzt die Option, direkt Profile für Fahrzeuge zu laden, die dann in einstellbarer Zeit ihre Daten von selber per MQTT senden, also auch ohne einen Init-String.

Der BYD Atto3 ist übrigens auch als Profile zu laden … :wink:

VG,
Doc

1 „Gefällt mir“

Vielen Dank für die Info!
Ich bekomme meinen Seal U in den nächsten Wochen. Kann es leider noch nicht ausprobieren.
Wie hast du denn das Update gemacht? An den Bus im Auto stecken und verbinden?
Müsste ja auch mit einem anderen Auto gehen?

Ja einfach ans Auto und dann die neue *.bin von git per OTA update.
Ich denke da kannst du jedem Auto Informationen mit entlocken, wenn du die PID kennst.

1 „Gefällt mir“

Guten Morgen,
was ich mich noch frage ist: Wie erhält man Daten wenn der Adapter in den Schlafmodus geht?
Ich habe gelesen, dass er sich nach ein paar Minuten abschaltet um die Batterie zu schonen.
Damit würde man den SOC nicht erhalten?

Kannst du da schon etwas sagen?

Ob er schlafen geht oder nicht kannst du im Menu selber bestimmen.
Ich hatte das erst aus bei meinen Tests und jetzt eingeschaltet.
Er wird aufgeweckt, wenn du die Zündung einschaltest oder die WB mit dem Laden beginnt.
Ich sende den SoC so jetzt zur WB, die dann bei 80% automatisch aufhört zu laden.

Ich denke den Schlafmodus zu unterdrücken ist auf Dauer keine gute Idee, da so der Can-Bus im Auto auch wach bleibt und alle Steuergeräte dann weiter die Batterie belasten.

Aktuell versuche ich den SoH aus dem Fahrzeug zu bekommen.
Da muss ich vermutlich wirklich mal mit dem CarScanner mitlauschen.

VG,
Doc

1 „Gefällt mir“

Toll, Danke!
SoH wäre cool. Hast du die Reichweite auch aus deinem Fahrzeug kitzeln können?

Nee, aktuell nur den SoC der mit dem fertigen Fahrzeugprofil abgefragt wird.
Ich habe den Syntax noch nicht ganz raus, die anderen Parameter zu holen.
Ich weiss auch noch nicht, welche PIDs die verwenden.
Wollte nachher mal mit dem CarScanner schauen …

{
  "car_model": "VW: e-Golf",
  "init": "ATSP6;ATST96;ATSH7E5;",
  "pids": [
    {
      "pid": "22028C1",
      "parameters": [
        {
          "name": "SOC",
          "expression": "((B4-20)*10)/22",
          "unit": "%",
          "class": "battery"
        }
      ]
    }
  ]
}

so hab ihn (den meatpi) in IPS. Aber leider bekomme ich nur den status (online).
bei Atto 3 ausgewählt kommt leider nichts an :frowning:
auch meatpi hat gemeint das es mit dem atto 3 beim BYD Seal U funktionieren soll. aber leider…

lg

MQTT Server und Port stimmen bei dir?
Eigentlich müsstest du auch jede Menge RX Daten bekommen.

Typ ist bei mir JSON und nicht Float.