Deye SUN-12K-SG04LP3 mit Modbus auslesen

Begonnen von mfischer-ffb, 09 April 2023, 22:18:26

Vorheriges Thema - Nächstes Thema

mfischer-ffb

Hallo,

nachdem ich jetzt fast 2 Tage nach einer Lösung gesucht hatte den DEYE 12K via Modbus auszulesen und gescheitert bin hier die Lösung falls es jemanden ähnlich geht wie mir.

Mit der Modbus Adresse 00 die im Wechselrichter voreingestellt ist konnte ich mit FHEM keine Verbindung herstellen, erst als ich die Adresse auf 03 (Slave) geändert hatte und danach einen Power-reset durchgeführt habe funktionierte es.

Den RS485 USB adapter habe ich am BMS port angeschlossen Pin1 = B Pin2 = A Pin3 = GND

Ich hab noch nicht alle Register eingetragen weitere sind  hier zu finden. 

Gruß Markus

define Modbus_Deye Modbus /dev/ttyUSB0@9600
attr Modbus_Deye room DEYE

define Mod_Deye ModbusAttr 3 10
attr Mod_Deye IODev Modbus_Deye
attr Mod_Deye dev-h-combine 5
attr Mod_Deye dev-h-defPoll 1
attr Mod_Deye dev-h-defUnpack n
attr Mod_Deye obj-h514-expr $val * 0.1
attr Mod_Deye obj-h514-reading Akku_Laden_kWh_Tag
attr Mod_Deye obj-h515-expr $val * 0.1
attr Mod_Deye obj-h515-reading Akku_Entladen_kWh_Tag
attr Mod_Deye obj-h516-expr $val * 0.1
attr Mod_Deye obj-h516-len 2
attr Mod_Deye obj-h516-reading Akku_Laden_kWh
attr Mod_Deye obj-h518-expr $val * 0.1
attr Mod_Deye obj-h518-len 2
attr Mod_Deye obj-h518-reading Akku_Entaden_kWh
attr Mod_Deye obj-h519-reading Akku_W
attr Mod_Deye obj-h520-expr $val * 0.1
attr Mod_Deye obj-h520-reading Netzbezug_Kwh_Tag
attr Mod_Deye obj-h522-expr $val * 0.1
attr Mod_Deye obj-h522-len 2
attr Mod_Deye obj-h522-reading Netzbezug_Kwh
attr Mod_Deye obj-h529-expr $val * 0.1
attr Mod_Deye obj-h529-reading PV_kWh_Tag
attr Mod_Deye obj-h534-expr $val * 0.1
attr Mod_Deye obj-h534-len 2
attr Mod_Deye obj-h534-reading PV_kWh
attr Mod_Deye obj-h540-expr ($val -1000) * 0.1
attr Mod_Deye obj-h540-format %.1f
attr Mod_Deye obj-h540-reading Temp_DC
attr Mod_Deye obj-h541-expr ($val -1000) * 0.1
attr Mod_Deye obj-h541-format %.1f
attr Mod_Deye obj-h541-reading Temp_AC
attr Mod_Deye obj-h587-expr $val * 0.01
attr Mod_Deye obj-h587-format %.1f
attr Mod_Deye obj-h587-reading Akku_V
attr Mod_Deye obj-h588-reading Akku_SOC
attr Mod_Deye obj-h591-expr $val * 0.01
attr Mod_Deye obj-h591-reading Akku_A
attr Mod_Deye obj-h591-unpack s>
attr Mod_Deye obj-h598-expr $val * 0.1
attr Mod_Deye obj-h598-format %.1f
attr Mod_Deye obj-h598-reading L1
attr Mod_Deye obj-h599-expr $val * 0.1
attr Mod_Deye obj-h599-format %.1f
attr Mod_Deye obj-h599-reading L2
attr Mod_Deye obj-h600-expr $val * 0.1
attr Mod_Deye obj-h600-format %.1f
attr Mod_Deye obj-h600-reading L3
attr Mod_Deye obj-h609-expr $val * 0.01
attr Mod_Deye obj-h609-format %.2f
attr Mod_Deye obj-h609-reading Netzfrequenz
attr Mod_Deye obj-h625-reading Netzbezug_W
attr Mod_Deye obj-h630-expr $val * 0.01
attr Mod_Deye obj-h630-reading WR_L1_A
attr Mod_Deye obj-h631-expr $val * 0.01
attr Mod_Deye obj-h631-reading WR_L2_A
attr Mod_Deye obj-h632-expr $val * 0.01
attr Mod_Deye obj-h632-reading WR_L3_A
attr Mod_Deye obj-h633-reading WR_L1_W
attr Mod_Deye obj-h634-reading WR_L2_W
attr Mod_Deye obj-h635-reading WR_L3_W
attr Mod_Deye obj-h672-expr $val * 0.1
attr Mod_Deye obj-h672-reading PV1_W
attr Mod_Deye obj-h673-reading PV2_W
attr Mod_Deye obj-h676-expr $val * 0.1
attr Mod_Deye obj-h676-reading PV1_V
attr Mod_Deye obj-h677-expr $val * 0.1
attr Mod_Deye obj-h677-reading PV1_A
attr Mod_Deye obj-h678-expr $val * 0.1
attr Mod_Deye obj-h678-reading PV2_V
attr Mod_Deye obj-h679-expr $val * 0.1
attr Mod_Deye obj-h679-reading PV2_A
attr Mod_Deye room DEYE
attr Mod_Deye stateFormat L1 V<br>\
L2 V<br>\
L3 V<br>
attr Mod_Deye verbose 0

Gisbert

Hallo mfischer-ffb,

klingt interessant, vielen Dank für dein Engagement.

Vielleicht kann ich deine Lösung benutzen, wenn ich mir das gleiche Gerät zulege.

Kannst du etwas über die Gründe sagen, warum du dieses Gerät gekauft hast? Welche Erwartungen hast du an das Gerät und würden die erfüllt?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

mfischer-ffb

Hallo Gisbert,
der Deye 12K ist ein Multifunktions Hybridwechselrichter, nicht ganz billig aber bietet alle erdenklichen möglichkeiten bis hin zum Strom-Generatoranschluss.
Hab ihn aber noch nicht aktiv im Einsatz somit kann ich hier noch nicht viel sagen die PV Module müssen noch montiert werden.
Gruß
Markus

Zitat von: Gisbert am 09 April 2023, 22:26:37Hallo mfischer-ffb,

klingt interessant, vielen Dank für dein Engagement.

Vielleicht kann ich deine Lösung benutzen, wenn ich mir das gleiche Gerät zulege.

Kannst du etwas über die Gründe sagen, warum du dieses Gerät gekauft hast? Welche Erwartungen hast du an das Gerät und würden die erfüllt?

Viele Grüße Gisbert

Jojo11

Damit hast du mir den entscheidenden Hinweis gegeben, vielen Dank!
Im Anhang findest Du das Dokument mit allen Registern von Deye, falls noch nicht bekannt.

Schöne Grüße
Jojo

Jojo11

Hast Du es schon geschafft, Werte zu ändern/schreiben? Ein erster Versuch lieferte ein "Timeout in Readanswer". Im log findet sich
Mod_Deye: Timeout in Readanswer, read buffer empty,
request: id 3, write fc 6 h115, len 1, value 000b, tid 240, master device Mod_Deye, reading Battery_capacity_ShutDown (set Battery_capacity_ShutDown), queued 2.00 secs ago, sent 2.00 secs ago

schöne Grüße
Jojo

mfischer-ffb

Schreiben hab ich noch nicht getestet, mein Deye hängt zwar an der Wand aber Akku und Module fehlen noch somit kann ich hier aktuell nicht viel testen....

Hab gestern noch einen Fehler bei der Akkustrom Anzeige behoben...

Jojo11

#6
Damit hatte ich gestern auch noch Probleme und habe es dann so gelöst:
attr Mod_Deye dev-type-S16-unpack s>
...
attr Mod_Deye obj-h591-format %.1f
attr Mod_Deye obj-h591-reading Battery_output_current_A
attr Mod_Deye obj-h591-type S16

Müsste aufs Gleiche hinauslaufen. 
Als Nächstes ist das Seplos BMS an der Reihe :D

Jojo11

Ich habe das Modbus-Dokument mal durch einen online-Übersetzer geschickt - das vereinfacht ein wenig das Lesen.


Jojo11

Schreiben geht jetzt auch. Folgende Zeile ermöglicht es:

attr Deye dev-h-write 16 # 10H

Die 10H habe ich aus der Tabelle in Kapitel 3  :)

kptkip

Komme leider nicht weiter.

Ich hab den Deye über ein RS485-ETH Device angeschlossen und folgendes Device in FHEM angelegt:

defmod Mod_Deye ModbusAttr 20 30 192.168.33.24:502 TCP
attr Mod_Deye userattr obj-h514-expr obj-h514-reading obj-h522-len obj-h522-reading obj-h534-len obj-h534-reading obj-h588-reading obj-h625-reading obj-h672-reading obj-h673-reading
attr Mod_Deye alias deye
attr Mod_Deye obj-h514-expr $val * 0.1
attr Mod_Deye obj-h514-reading Akku_Laden_kWh_Tag
attr Mod_Deye obj-h522-len 2
attr Mod_Deye obj-h522-reading Netzbezug_Kwh
attr Mod_Deye obj-h534-len 2
attr Mod_Deye obj-h534-reading PV_kWh
attr Mod_Deye obj-h588-reading Akku_SOC
attr Mod_Deye obj-h625-reading Netzbezug_W
attr Mod_Deye obj-h672-reading PV1_W
attr Mod_Deye obj-h673-reading PV2_W
attr Mod_Deye room Infrastruktur->Serverschrank
attr Mod_Deye verbose 0

setstate Mod_Deye opened
setstate Mod_Deye 2023-04-20 23:10:47 state opened

Er connected zwar das Gerät, aber ich bekomme keine Readings.
FHEM Revision: 22312 auf RasPI3B+,1xNeumannCUL,HMLAN,1xRasPi3B+,2xRasPI ZERO W
CUL_HM:HM-Sec-SCo, HM-CC-RT-DN
Fritz: Fritz!Box 6590C,DECT301,DECT200
Shelly:Shelly1,Shelly2, ShellyBulb Xiaomi: Schalter, Fensterkontakte HUE: ConbeeII
Tasmota:SonoffBridge, Stecker

Jojo11

#10
Schau Dir mal den ersten Beitrag oben an. Bist Du Dir sicher, dass Deine ID derjenigen im Deye entspricht (20)?

kptkip

#11
Bin nun auch auf ein USB-Device gegangen. Dabei u.A. auch die ID angepasst (01).  8)

Klappt! ;-)

Mein Problem ist nun allerdings, dass ich nur alle ~20 Minuten Daten bekomme, manche sogar noch seltener.

Habe mit
screen /dev/ttyUSB0 9600auch mal auf der shell gehorcht. Da kommt auch nicht häufiger was durch das Kabel.

Kann man das im Deye einstellen?

Hänge aktuell am BMS-Port dran. ist das am Modbus-Port evtl. anders?


[Update:] Am Modbus-Port kommen die Werte im quasi-Sekundentakt rein :-)
FHEM Revision: 22312 auf RasPI3B+,1xNeumannCUL,HMLAN,1xRasPi3B+,2xRasPI ZERO W
CUL_HM:HM-Sec-SCo, HM-CC-RT-DN
Fritz: Fritz!Box 6590C,DECT301,DECT200
Shelly:Shelly1,Shelly2, ShellyBulb Xiaomi: Schalter, Fensterkontakte HUE: ConbeeII
Tasmota:SonoffBridge, Stecker

XBuschman

Hallo,
ich habe Deye SUN-10K-SG04LP3 im Einsatz und möchte auch die aktuellen Betriebsdaten per FHEM auslesen. Für mich scheint der hier beschriebene Ansatz direkt über ModBus am Deye die Daten auszulesen der beste Ansatz zu sein.
Ich habe dazu aber noch ein Paar Fragen, von denen ich hoffe dass sie mir hier beantwortet werden können.

@mfischer-ffb: Du schreibst, dass du die Adresse auf 03 (Slave) geändert hast. Meinst du damit die Einstellung im Deye Menü ,,Erweiterte Funktion" (siehe Bild "Deye ModBus Menue.png")?

@kptkip: Ist der ModBus Port der Anschluss links neben dem BMS Anschluss? Da steht ModeBus dran. Ein Schreibfehler? Oder welchen Anschluss hast du genutzt? (Siehe Bild "Deye Ports.png").
Wieso musstest du bei dir die ID 01 einstellen und nicht die 03 wie oben beschrieben? Ist das bei dir im Deye Menü (siehe Punkt oben) so eingestellt?
Danke und Grüße,
Rainer

Blowfly

Hi,
habe das jetzt auch ausprobiert, funktioniert prima, vielen Dank dafür! Werde das auch noch etwas ergänzen und hier posten.

Zu den Fragen:
Zitat von: XBuschman am 27 April 2023, 10:12:25@mfischer-ffb: Du schreibst, dass du die Adresse auf 03 (Slave) geändert hast. Meinst du damit die Einstellung im Deye Menü ,,Erweiterte Funktion" (siehe Bild "Deye ModBus Menue.png")?
Denke ja, aber das ist wohl irrelevant, jedenfalls funktioniert es bei mir nur mit Adresse 1, obwohl ich dort auch 3 eingestellt hatte.

Zitat@kptkip: Ist der ModBus Port der Anschluss links neben dem BMS Anschluss? Da steht ModeBus dran. Ein Schreibfehler? Oder welchen Anschluss hast du genutzt? (Siehe Bild "Deye Ports.png").
Genau der Modebus ist es.

ZitatWieso musstest du bei dir die ID 01 einstellen und nicht die 03 wie oben beschrieben? Ist das bei dir im Deye Menü (siehe Punkt oben) so eingestellt?
Nein, aber geht auch nur bei mir mit der 1 (siehe oben).

Viele Grüße
Hans
FHEM 6.2 auf RaspBerry Pi 2 B; SDuino für IT Steckdosen und Livolo-Schalter; Jeelink für LaCrosse T&H Sensoren; OWServer mit DS18B20 T-Sensoren; ZigBee mit deCONZ (RaspBee), Alexa, Homekit

Jojo11

Bei mir funktioniert es mit der 03. Angeschlossen habe ich den Adapter am BMS-Port (nicht am ModeBus-Port).