NEWS
Growatt Wechselrichter über Modbus auslesen - gelöst -
-
@andibacke Hallo, hier meine Einstellungen:
Eingangsregister:_address name description unit type len factor offset formula role room cw isScale 30109 RemoteCtrlEn uint16be 2 1 0 level false false 30110 RemoteCtrlPow uint16be 2 1 0 level false false 30120 Battery Type 0 Lead acid 1 Lithium battery uint16be 2 1 0 level false false 33001 Inverter Status 0:warten; 1:normal; 3:Fehler " " uint16be 1 1 0 level false false 33002 Ppv Eingangsleistung PV W uint32be 2 0.1 0 level false false 33004 Upv1 Spannung PV1 V uint16be 1 0.1 0 level false false 33005 Ipv1 Strom PV1 A uint16be 1 0.1 0 level false false 33006 Ppv1 Eingangsleistung PV1 W uint32be 2 0.1 0 level false false 33008 Upv2 Spannung PV2 V uint16be 1 0.1 0 level false false 33009 Ipv2 Strom PV2 A uint16be 1 0.1 0 level false false 33010 Ppv2 Eingangsleistung W uint32be 2 0.1 0 level false false 33024 Pac Ausgangsleistung AC W int32be 2 0.1 0 level false false 33026 Fac Ausgangsfrequenz Hz uint16be 2 0.01 0 level false false 33027 Vac1 Spannung L1 V uint16be 1 0.1 0 level false false 33028 Iac1 Strom L1 A uint16be 1 0.1 0 level false false 33029 Pac1 Leistung L1 VA uint32be 2 0.1 0 level false false 33031 Vac2 Spannung L2 V uint16be 1 0.1 0 level false false 33032 Iac2 Strom L2 A uint16be 1 0.1 0 level false false 33033 Pac2 Leistung L2 VA uint32be 2 0.1 0 level false false 33035 Vac3 Spannung L3 V uint16be 1 0.1 0 level false false 33036 Iac3 Strom L3 A uint16be 1 0.1 0 level false false 33037 Pac3 Leistung L3 VA uint32be 2 0.1 0 level false false 33039 Vac12 Spannung L1-L2 V uint16be 1 0.1 0 level false false 33040 Vac23 Spannung L2-L3 V uint16be 1 0.1 0 level false false 33041 Vac31 Spannung L3-L1 V uint16be 1 0.1 0 level false false 33042 Ptouser Ausgangsleistung Verbrauch AC W uint32be 2 0.1 0 level false false 33044 Ptogrid Ausgangsleistung Netz AC W uint32be 2 0.1 0 level false false 33046 Ptoload Ausgangsleistung Laden AC W uint32be 2 0.1 0 level false false 33048 Time_total Betriebszeit s uint32be 2 0.5 0 level false false 33050 Eac_today Wirklarbeit Heute kWh uint32be 2 0.1 0 level false false 33053 Eac_total Wirkarbeit gesamt kWh uint16be 2 0.1 0 level false false 33055 Epv_total Wirkarbeit PV gesamt kWh uint16be 2 0.1 0 level false false 33057 Epv1_today Wirkarbeit Heute PV1 kWh uint16be 2 0.1 0 level false false 33059 Epv1_total Wirkarbeit gesamt PV1 kWh uint16be 2 0.1 0 level false false 33061 Epv2_today Wirkarbeit Heute PV2 kWh uint16be 2 0.1 0 level false false 33063 Epv2_total Wirkarbeit gesamt PV2 kWh uint16be 2 0.1 0 level false false 33087 DeratingMode uint16be 1 1 0 level false false 33088 PVISO PVISOValue kOhm uint16be 1 1 0 level false false 33089 L1 DCI L1 DCI mA uint16be 1 0.1 0 level false false 33090 L3 DCI L2 DCI mA uint16be 1 0.1 0 level false false 33091 L3 DCI L3 DCI mA uint16be 1 0.1 0 level false false 33094 Temp1 Inverter IPM Temperatur °C uint16be 1 0.1 0 level false false 33095 Temp2 Inverter Temperatur °C uint16be 1 0.1 0 level false false 33096 Temp3 Boost Temperatur °C uint16be 1 0.1 0 level false false 33097 Temp4 Reserve Temperatur °C uint16be 1 0.1 0 level false false 33098 Temp5 Commmunication broad Temperatur °C uint16be 1 0.1 0 level false false 33099 P Bus Voltage P Bus interne Spannung V uint16be 1 0.1 0 level false false 33100 N Bus Voltage N Bus interne Spannung V uint16be 1 0.1 0 level false false 33101 IPF Inverter Ausgang PF uint16be 1 1 0 level false false 33102 RealOPPercent Ausgangsleistung % % uint16be 1 1 0 level false false 33104 OPFullwatt Ausgansleistung Limit max W uint16be 2 0.1 0 level false false 33106 Fault code Fehlercode uint16be 1 1 0 level false false 33107 Warn code Warnungscode uint16be 1 1 0 level false false
Holding Register:
_address name description unit type len factor offset formula role room poll wp cw isScale 40001 FernEinAus Ein aus über Fernsteuerung uint16be 1 1 0 level true false false false 40004 Active P Rate Inverter Max output active power percent % uint16be 1 1 0 level true false false false 40005 Reactve P Rate Inverter Max output reactive power percent % uint16be 1 1 0 level true false false false 40006 Power factor Inverter output power factor's 10000 times s uint16be 1 1 0 level true false false false 40008 Pmax Normal Power VA uint16be 2 0.1 0 level true false false false 40009 Vnormal Normal work PV voltage V uint16be 1 0.1 0 level true false false false 40049 Sys Std System Zeit Stunden std uint16be 1 1 0 level true false false false 40050 Sys Min System Zeit Sekunden min uint16be 1 1 0 level true false false false 40051 Sys Sec System Zeit Sekunden sec uint16be 1 1 0 level true false false false 40089 ModbusVersion ModbusVersion uint16be 1 1 0 level true false false false 40123 ExportLimit ExportLimit enabled uint16be 1 1 0 switch true false false false 40124 ExportLimitPowerrate ExportLimitPowerRate % uint16be 1 0.1 0 level true false false false 43001 ExportLimitFailedPowerRate Export Limit Failed PowerRate % uint16be 1 0.1 0 level true false false false
Ich hoffe du kannst damit was anfangen.
-
@mane444 Moin! Vielen Dank!
Ich habe es mal ausprobiert aber auch leider kein Erfolg gehabt. Holding Register mag er gar nicht. Bei den Eingangsregistern funktioniert immer nur das erste Register und der Adapter wird grün aber die Werte auf dem Register sind nicht plausibel, z.B.: 0...2740...0...512...0 usw. Kennst du das Phänomen?
Hast du bei dir diesen außergewöhnlichen Port (4196) auch so im Waveshare hinterlegt? Ich nutze zwar kein Waveshare aber die Oberfläche und Einstellungen sehen ziemlich identisch aus.
Hast du auf der anderen Seite der Modbus Strecke auch noch den SDM dran oder laufen die WR Daten ausschließlich in den IOBroker rein? Bei habe ich es bisher nur parallel versucht.
Gruß, AnDiBaCkE -
@andibacke Du kannst an einem Modbus keine zwei Master haben. An dem Anschluss beim WR an dem der SDM dranhängt kannst du nicht den WR auslesen, hier liest der WR den Zähler aus. Bei mir hängt das IP-Interface beim WR an den Klemmen 3 und 4.
-
@mane444 Ja das mit dem Master ist mir schon bewusst aber als TCP Slave hat es auch nicht funktioniert. Als TCP Master hat er wenigstens Daten abgefragt auch wenn die Daten nicht plausibel waren.
Meine Konstellation sieht folgend aus:
Das linke Gateway am SDM habe ich erfolgreich angezapft aber beim rechten Gateway welches am Growatt dran ist, hat es bisher nicht funktioniert.
Grundsätzlich funktioniert die Kommunikation zwischen Zähler und WR über die Gateways auch.
Gruß, AnDiBaCkE -
@andibacke Wenn ich das richtig verstehe benutzt du diese Gateways damit der WR seine Daten vom >Zähler beziehen kann und du schaltest dich mit IOB auf und möchtest diese Daten abgreifen.
Die Growatt Mod...TL3-XH haben 3 Modbus Anschlüsse, siehe mein Bild vom vorherigen Post.- Pin 3 und 4 Hier kannst du wie Ich die Daten abrufen und auch beschreiben.
- Pin 5 und 6 hiermit holt der WR seine Messdaten vom Zähler. (Ich denke hier ist dein Gateway angeschlossen)
- Pin 7 und 9 ist für die Kommunikation mit dem Batteriespeicher
-
@mane444 Ah, jetzt kommen wir der Sache näher
Du nutzt den Kommunikationsanschluss für den Shinebus. Das hat natürlich ein paar Vorteile für die Kommunikation. Ich wollte ja für meine nicht gut funktionierende Nulleinspeisung die Werte des SDM manipulieren und das brauch man dann ja nicht mehr und sendet auf dem Shinebus Port einfach die eigenen Leistungs- Solldaten.
Hast du damit auch so etwas realisiert?
Mein MIN hat auch diesen Anschluss (Pin 3+4):
Sehr schön, dann habe ich einen neuen Ansatz.
Vielen Dank!
Gruß, AnDiBaCkE -
@andibacke mit dem MIN habe ich keine Erfahrung. Ich regle meinen WR auch nicht, da ich Überschuss wenns mal vor kommt einspeise. Ich hoffe du hast Erfolg, viel Glück.
-
@mane444 Kurze Erfolgsmeldung von meiner Seite. Ich habe mir einen Waveshare bei Amazon geholt und auf Pin 3+4 angeschlossen.
Nach ein wenig Fummelei mit dem Gateway Einstellungen läuft nun die Nulleinspeisung
Vielen Dank noch einmal für die Register! Da hätte ich mich ja tot gesucht. Bei meinem MIN funktionieren jedoch nicht alle aber das ist nicht schlimm.
Bei Bedarf sende ich gerne noch ein paar Details.
Gruß,AnDiBaCkE -
@andibacke Hi, die Lösung würde mich interssieren. Welche Modbus Einstellungen hast du verwendet und hast du den Eingang des Zählers am Growatt genutzt für die Nulleinspeisung?
Danke und Gruß -
@jopo Moin! Ja ich nutze die Verbrauchsdaten vom SDM630.
Anbei die Einstellungen des Waveshare:
Gruß, AnDiBaCkE -
nochmal eine frage zu den Eingangsregister wie bist du auf die Idee gekommen die Adresse 00 +1, +30000 so das du im Adapter die 30001 einträgst gekommen.
ich verstehe das nicht und stehe grade bei einem Eltako Modbus Zähler vor einen ähnlichen Problem.Wieso also die Start-Adresse auf 30000 xD
Viele Grüße
-
Hallo,
Welche Einstellungen in modbus Adapter habt ihr vorgenommen. Ich schaffe es nicht mein growatt mod umrichter über modbus auszulesen an geklemmt hab ich ihm auf pin 3 und 4 und dann über einen USB Adapter an meinen pi angeschlossen.
?Muss ich in meinen growatt irgendwas da zu aktivieren?
-
Mit welchem Adapter habt Ihr bitte Zugriff auf den waveshare? (er ist bei mir über die IP erreichbar)
Danke
-
@pingo Moin! Für ioBroker nutzte ich den Modbus Adapter.
Gruß, AnDiBaCkE -
@andibacke Perfekt. DANKE. Ich habe ihn sogar zum Laufen gebracht. Bei meinem SPH 10000TL3 BH-UP musste man 40001 zu jedem Registerwert hinzuzählen (nicht 30001! das Register 01 dann mit 40002,...). Jetzt muss ich nur noch die richtigen Register finden und sie verstehen. Probleme machen mir noch die Minutenangaben:
3328 kann natürlich nicht die Minuten sein. Wahrscheinlich übersetze bzw. lese ich da falsch aus. Die Information ist im gleichen Register, nur eben im "low eight bit":
Welche Option muss ich bitte wählen, um die Minuten zu bekommen?
Danke
-
@pingo sagte in Growatt Wechselrichter über Modbus auslesen - gelöst -:
Bei meinem SPH 10000TL3 BH-UP musste man 40001 zu jedem Registerwert hinzuzählen (nicht 30001!
dann bist du in den Holdingregistern.
und du hast wahrscheinlich Aliase benutzen aktivsind das Hex-Werte in der Anleitung? ?
-
@homoran genau.
Nein. Es sind Stunden und Minutenwerte laut Anleitung
-
@pingo sagte in Growatt Wechselrichter über Modbus auslesen - gelöst -:
genau
dann ist alles korrekt.
aber warum Holdingregister und nicht Inputregister? -
@pingo sagte in Growatt Wechselrichter über Modbus auslesen - gelöst -:
Nein. Es sind Stunden und Minutenwerte laut Anleitung
hatten wir nicht schonmal das nachträgliche Editieren besprochen?
Das kommt, wenn Infos in vier Threads verteilt werden!ich meine die 1100 und 1101
-
@homoran Nochmal auf die Frage nach den Hex-Werten:
Das steht in der Anleitung:
The format for each byte in RTU mode is:
Coding System: 8–bit binary, hexadecimal 0–9, A–F
Two hexadecimal characters contained in each
8–bit field of the messageWie auch immer müsste ich beim Minutenwert die Zahl 30 bekommen, nicht 3328.
Das sind die Register 1100 und 1101 (hier 41101 und 41102)Ich hatte hier gelesen, dass man Holding register nehmen soll. Ich kenne den Unterschied zu Eingangsregistern nicht.
Ziel ist die Register auszulesen und dann natürlich die Objekte in IoBroker per JavaScript zu verändern und sie dann wieder so ins Register reinzuschreiben (dann muss ich wohl die Option CW aktivieren). Geht das auch mit Eingangsregistern?Ja. Ich hatte aber innerhalb von wenigen Minuten editiert. Sorry.