[ModBus Vorlage] Deye Sun xxK-SG04lp3

Die Dokumentation ist da etwas dünn, aber da steht was man anlegen muß (ModBus Gerät) und dann den Button Vorlage importieren.

Michael

ahh ok, schaue ich mir an. War mich jetzt nicht bewusst das man dort dann Vorlagen importieren kann.

Danke und Gruß …

Hallo
mit den modbus registern 664 665 666 kann man den gernerator/Micro wechselrichter wert auslesen, mit 667 auch die gesamtleistung.
Du kannst daraus ja mal eine V6 machen
Gruss Andreas


{
„Active“: true,
„ByteOrder“: -1,
„DataType“: 2,
„Factor“: 0,
„Ident“: „“,
„Length“: 0,
„Name“: "Gen Port A ",
„Profile“: „“,
„ReadAddress“: 664,
„ReadFunctionCode“: 3,
„Translation“: ,
„WriteAddress“: 0,
„WriteFunctionCode“: 0
},
{
„Active“: true,
„ByteOrder“: -1,
„DataType“: 2,
„Factor“: 0,
„Ident“: „“,
„Length“: 0,
„Name“: „Gen Port B“,
„Profile“: „“,
„ReadAddress“: 665,
„ReadFunctionCode“: 3,
„Translation“: ,
„WriteAddress“: 0,
„WriteFunctionCode“: 0
},
{
„Active“: true,
„ByteOrder“: -1,
„DataType“: 2,
„Factor“: 0,
„Ident“: „“,
„Length“: 0,
„Name“: „Gen Port C“,
„Profile“: „“,
„ReadAddress“: 666,
„ReadFunctionCode“: 3,
„Translation“: ,
„WriteAddress“: 0,
„WriteFunctionCode“: 0
},
{
„Active“: true,
„ByteOrder“: -1,
„DataType“: 2,
„Factor“: 0,
„Ident“: „“,
„Length“: 0,
„Name“: „Gen Port ABC“,
„Profile“: „“,
„ReadAddress“: 667,
„ReadFunctionCode“: 3,
„Translation“: ,
„WriteAddress“: 0,
„WriteFunctionCode“: 0
}

Bitte einmal testen. Da ich die Ports nicht nutze, kann ich nicht testen…

Deye Symcon Modbus Template v6.json (39,3 KB)

ja , funktioniert .
es gibt noch hunderte weitere werte die man noch auslesen könnte .

Grundsätzlich findet man für jeden eingang: Power , Volt , A , Hz ,
V6.1 Test.json (49,3 KB)
Hier , kannst ja mal schauen was ich da so getestet habe…
ist deine V6 + ein paar interesannte weiteren werten … muss noch feinschliff rein …
einiges zeigt bei mir auch nur 0 an weil ich da halt nix angeschlossen habe oder er gerdade im anderen modus lauft.

ich hab für mich mal noch den HP3 (Hochvolt) von DEYE hinzugefügt.
Auch ein paar Batteriewerte wie Lade-/Entladestrom sind noch mit drin.

Aber ist keine Erweiterung der V6 oder V6.1 => meine baut auf V5 auf

V6.2_Test.json (41,6 KB)

Auf wunsch in einen neuen Thread verschoben:

Vielleicht kannst du für deine Vorlage, bzgl. des Hochvoltspeichers/Wechselrichters, ein extra Beitrag erstellen, dann bleibt es übersichtlicher. :slight_smile:

1 „Gefällt mir“

Hallo,

woher bekomme ich denn die Doku für die ModBus Register ?

Hat da jemand einen Link für mich bitte ?

Danke und Gruß

Hallo mactoolz,

anbei 3 PDF’s mit den Registern:

Protokoll 29094-Deye-MODBUS-RTU-V104.pdf (526,9 KB)
Deye.MODBUS.RTU.V104.pdf (545,9 KB)
Deye Modbus protocol V118.pdf (1,3 MB)

1 „Gefällt mir“

Hallo

ich verwende das Modul von Thomas Westerhoff, welches auch super funktioniert. Jetzt wollte ich noch mehr Details aus dem Akku holen und habe in der ModbusBeschreibung …

folgendes auf PDF-Seite 36 gefunden:

Ich habe jetzt eine zusätzliche „Modbus-Register-Instanz“ angelegt und frage die entsprechenden Register ab. Das Ergebnis ist aber leider nicht das was ich erwartet hätte.

Hat diese Infos schon jemand auslesen können?

Stellt dein BMS denn die Daten dem Deye zur Verfügung? Könnte mir vorstellen das einige Daten nur zur Verfügung stehen, wenn man Deye Akkus einsetzt, die dann diese Daten per CAN übermitteln.
Ich selber lese meine BMS direkt aus, kann aber die Tage gerne Testen ob bei mir in den Registern was steht.

Ich habe mein Vorhaben jetzt mit Hilfe von andreashh1 aus diesem Thread lösen können:

modbus-vorlage-pace-gobel-power-bms

Ich habe jetzt alle 3 Geräte (DEYE, BMS1 und BMS2) an einem Wavshare RS485 - ETH Konverter hängen:

Beide BMS habe ich auf PACE_Modbus umgestellt und schon konnte ich mit der ModbusVorlage von andreashh1 die Daten abrufen.

Vielen Dank nochmal an dieser Stelle an Andreas!!!

Moin,
ich würde gerne auf dem Deye die Parameter "Batterie-Mindestladung Zeitraum x " via ModBus verändern.
Die Adresse zum Lesen und Schreiben ist 166 ( Laut Doku ). So ist es auch in meinem Template hinterlegt

{
            "Active": true,
            "ByteOrder": -1,
            "DataType": 2,
            "Factor": 0,
            "Ident": "",
            "Length": 0,
            "Name": "Batterie Mindestladung Zeitraum 1",
            "Profile": "~Battery.100",
            "ReadAddress": 166,
            "ReadFunctionCode": 3,
            "Translation": [],
            "WriteAddress": 166,
            "WriteFunctionCode": 16
        },

Setze ich nun einen Wert wird mit der nächsten Abfrage wieder der vorherige Wert ausgegeben.
Hat jemand Erfahrung damit, via ModBus Parameter im Deye zu ändern?

Mein Ziel ist es , die Mindest-Ladung sowie die Ladung aus dem Netz zu steuern.

„Grid-Charge“ und „Batt“

Grüße Detlev.

Hallo

das sollte genau so gehen .
kanst du andere werte schreiben ?

1 „Gefällt mir“

Moin,

nein leider nicht. Ich habe versucht den Deye in den Standby zu setzen. Auch da wird der vorherige Wert nach kurzer Zeit wieder angezeigt. Nun habe ich mal mit dem Debugger auf das Modul geschaut und kann keinerlei Aktivität finden, wenn ich Werte setze.

Kann das Modul irgendwoe auf readonly gesetzt werden?
Grüße

Und hast du es hinbekommen , sonst Mal schauen ob das Gateway richtig programmiert ist .

Leider bisher nicht, müsste ich denn nicht die „Write“ Aktivitäten im Debug Fenster sehen können?

Hmm, ich glaube das Debug-Fenster gibt auch nicht die komplette Kommunikation mit dem ModBus-Gateway aus. Ich sehe immer nur diese Werte

obwohl alle konfigurierten Variablen aktualisiert werden.

Bin momentan etwas ratlos.
Grüße

ich habe bei mir mal im debug fenster nachgesehen , scheinbar betrift das debug nur die virtuellen werte.
es gibt noch ein debug an der schnitstelle , aber dort laufen soviele daten durch das man daraus kaum schlau wird.

das war ein guter Hinweis. Das Debug der Schnittstelle wirft wirklich jede Menge Wert.

Mit dem Filter habe ich auf Transmit gefiltert und den Wert für „Batterie Mindestladung Zeitraum 1“ geändert. Um 6:23:46 wurde der Wert auf 90% gestellt.

Genau kann ich die Transmit-Zeile nicht dekodieren , dazu fehlt mir etwas Doku über das Protokoll, aber A6 ist der Hex-wert für 166 (Adresse für Batterie Mindestladung Zeitraum 1) , 5A der eingestellte Wert von 90%

Somit vermute ich, dass der Write-Befehl zum Modus-Gateway gesendet wird.
Dann kann es wahrscheinlich nur noch am Gateway oder Deye 12K liegen.

Als Gateway setze ich einen USR-TCP232-304 ein. Dort kann ich aber nirgends etwas finden, um das Gateway auf „readonly“ einzustellen.
Der Deye 12K läuft im Master-Modus:

Vielleicht hat ja noch jemand eine Idee.

Moin,
endlich mal wieder etwas Zeit fürs Smarthome.

Es funktioniert nun, aber über einen anderen Weg.
Ich greife bislang über einen USR-TCP232-304 auf den Mod-Bus des Deye 12K ( Klemme Meter_485 im Deye) zu. Über diesen Weg kann ich die Werte auslesen, aber nicht setzen.

Am Deye hängt aber noch das LAN-Modul LSE3-LAN um Daten an Solarman zu übertragen und Fernwartung zu ermöglichen.
Ein Portscan zeigte ein paar offene Ports

nmap 192.168.15.1
Starting Nmap 7.93 ( https://nmap.org ) at 2024-12-13 06:36 CET
Nmap scan report for 192.168.15.1
Host is up (0.0013s latency).
Not shown: 998 closed tcp ports (reset)
PORT     STATE SERVICE
80/tcp   open  http
8899/tcp open  ospf-lite

8899 ist ein Modus-Port, da hätte ich mir den USR-TCP232-304 auch sparen können :slight_smile:

Über diesen Modus-Zugang kann ich nun Werte lesen und auch schreiben.
Etappen-Sieg!

Nun suche ich nur noch nach den Parametern die gesetzt werden müssen um das Laden des Akkus aus dem Netz zu aktivieren:

Register 172-177 setzt das Laden für die Zeitpunkte 1-6
Register 130 setzt Gen Charge

Ich habe nun einen Zeitpunkt auf Grid charge (172-177) gesetzt und den Register Gen Charge ( 130 ) gesetzt. Aber leider wird die Batterie nicht aus dem Netz geladen.

Hier nochmal die Parameter zum Lesen und Schreiben der Register
Bei Grid Charge bin ich mit nicht ganz sicher, ob die Einstellungen passen, es handelt sich dort ja um einen binären Wert. Aber mit 0/1 bekomme ich das Register gesetzt .

Hat jemand eine Idee, warum die Batterie nicht geladen wird?
Grüße Detlev.