Deye Sun 12K - Wie Batterien einzeln auslesen?

Hallo zusammen,

ich habe an meinem Deye Sun 12k 4 Akkumodule installiert. Per Modbus schaffe ich es nur die durchschnittlichen Daten der Akkus (SoC, Charge, Dischage, …) auslesen. Diese finde ich unter der Adresse 586 ff.

Laut dem Datasheet sollte man auch die Infos der einzelnen Modue auslesen können - aber wenn ich diese Holding Register (Adresse 2600 ff) auslese bekomme ich keine Werte.

Hat jemand schon Erfolg gehabt die Details pro Akku auszuelesen oder einen Tipp was ich falsch machen könnte? Danke!

Die Daten der einzelnen Racks sind ab der Adresse 10032 zu finden.

Über den WLAN-Dongle können die Register der einzelnen Racks ausgelesen werden, über RS485 ist dies leider nicht möglich.

Deye.MODBUS.RTU.V104.pdf (546 KB)

1 „Gefällt mir“

Hallo amiko und takkudoktor!

Ich möchte das Thema wieder aufgreifen. Ich habe DEYE SUN 10K und 4x DEYE SE G5.1pro Batterien. Da hatte ich letztens das Problem, dass der SOC schlagartig von 18 auf 3% gefallen ist.

Ich lese den Modbus RTU erfolgreich vom Inverter aus (habe mich am BMS Port dazwischen gehangen - lesen über eine Loxone Haussteuerung mit Modbus RTU extension).

Jetzt möchte ich die Werte der einzelnen Batterien auslesen - mit dem gleichen Problem wie oben beschrieben - dass die Register Adressen im Deye Modbus PDF ja doppelt belegt sind.

Nach amikos Kommentar habe ich jetzt versucht den WLAN logger über TCP einzubinden. Dazu gibt es eine gute Erklärung hier DEYE Sun 12K SG04LP3 in Loxone einbinden - loxforum.com

Aber später in dem Thread steht auch, dass diese TCP Option wohl irgendwann deaktiviert wurde. Ich komme da zumindest nicht weiter.

Also Frage an amiko: Woher hast Du die Info mit TCP? Soweit ich das verstehe, bekommt der Logger die Daten vom Inverter doch auch über Modbus RTU? Dann hat der doch das gleiche Problem?! Ich verstehe nicht wie hier gleiche Adressen verwendet werden können. Kann doch nur gehen wenn die Batterie eine eigene Geräteadresse hätte.

In einer neueren Version des PDFs stehen dann Adressen wie “100054” etc drin. Das funktioniert aber auch nicht.

Frage an takkudoktor: Hast Du das Problem bei Dir gelöst?

Danke Euch!

Ich habe kein Wort über TCP geschrieben. Du benutzt den BMS-Port, das ist RS485. Der WLAN-Logger ist über eine RS232-Schnittstelle mit dem WR verbunden. Ob die Signale an den HA weiter über Netzwerkkabel oder USB geleitet werden, spielt aus meiner Sicht keine Rolle. Wir haben darüber hier im Forum schon einmal diskutiert. Schau dir die Beiträge dazu einmal an.

In einem anderen Forum hat jemand geschrieben, dass er die Batterien auch über RS485 einzeln auslesen kann. Jetzt bin ich der Meinung, dass es an der Software (Integration für HA) liegen könnte. Irgendwo ist die Begrenzung für die zu lesenden Register vorhanden.

Ja, die Batterien haben im Bus jeweils eine eigene Adresse. In der Regel werden diese über die DIP-Schalter eingestellt. Ich habe das Modell Deye RW-M6.1, dessen Batterien keine Dip-Schalter haben. Ich habe versucht, direkt auf die Batterien zuzugreifen, leider ohne Erfolg.

Ich poste mal das PACE-BMS-Protokoll, probiere doch mal aus, ob du die Adressen von BMS auslesen kannst.

72651=11624-PACE-BMS-Modbus-Protocol-for-RS485-V1.32017-06-27.pdf|attachment (389,2 KB)

Ich habe jetzt die Deye-Doku für die RW-M6.1-Version 1.4 heruntergeladen. Auf den Seiten 21–22 geht es um Monitoring. Es gibt ein Tool für Windows, mit dem sich die Batterien auslesen lassen. Dafür wird jedoch ein CAN-zu-USB-Adapter benötigt, z. B. Canalyst.

RW-M6.1-B User Manual.pdf (2,4 MB)

Ich habe das Tool auch gefunden, Leider kann ich die ZIP-Datei hier nicht hochladen, da ich eine Fehlermeldung erhalte, dass die Datei zu groß ist. Es sind 50 MB erlaubt, die Datei ist nur 35 MB groß und lässt sich trotzdem nicht hochladen.

Wenn es mit Windows funktioniert, dann muss es auch mit Home Assistant möglich sein. Ich habe allerdings das BMS-Protokoll für Deye-Batterien nicht gefunden.