NEWS
[How-To] Goodwe Wechselrichter und Modbus TCP
-
Hat schon jamend erfahrung mit dem Kombi Modul LAN / Wifi und der Modbus Integration?
Oder funktioniert wirklich nur das reine LAN Modul?EDIT:
Hab gerade noch das hier gefunden:

https://community.goodwe.com/resources/goodwe/2021-12-14558424.pdf
-
Hi zusammen,
irgendwie passen die Werte in den Objekten nicht zu denen, die ich im SEMS Portal sehe. Ich bekomme dort z.B. angezeigt, dass ich heute 26.33 kWh verkauft habe, das Objekt goodwe.0.RunningData.EnergyDaySell hat aber bspw. den Wert 34.2
Jemand eine Idee, wie das zustande kommt? Habe ich irgend eine Umrechnung nicht bedacht?
-
Gibt es für Goodwe ET auch ein Modbus-Protokoll "Read Write" also RW statt RO in der Tabelle ?
Ich würde gerne die maximale Batteriekapazität zeitweise reduzieren, den DOD zeitweise erhöhen, so dass die Batterie nicht so lange in den Extremzuständen verharrt und somit mehr Ladezyklen verträgt.
Gleiches würde ich gerne mit der Ladeleistung machen, also wenn guter Tagessolarertrag prognostiziert ist, würde ich die Ladeleistung reduzieren.
Hat so etwas schon Mal jemand mit Goodwe gemacht ?
-
Da ich mich nun schon länger mit der Einbindung der Goodwe Wechselrichter per Modbus TCP beschäftige, und ich ebenfalls von der IoBroker Community viel Hilfe, Scripte oder Adapter nutze, möchte ich meine Erfahrungen mit euch teilen.:hugging_face:
Grundlegen sind mir 3x Möglichkeiten bekannt um Daten der Goodwe Wechselrichter in IoBroker zu bringen.
-
Daten vom Sems Portal auslesen und in IoBroker Datenpunkte schreiben: Siehe Goodwe Wechselrichter und IoBroker
-
Daten per Modbus RTU und RS485 Konverter per Rasp einlesen und per MQTT an IoBroker senden (Keine Erfahrung).
-
Daten per Modbus TCP/IP (Modbus Adapter) auslesen und in Datenpunkte schreiben (Nachfolgend).
Welche der mit bekannten Metoden die richtige für euch ist, müsst ihr selbst entscheiden.
Einrichtung und Installation Modbus TCP/IP Adapter:
Vorweg soweit mir bekannt, funktioniert Modbus TCP nur mit der Goodwe LAN Box (5-Pin), solltet Ihr weitere Erfahrungen mit dem alten Wifi Dongle oder mit neuen Wifi+LAN Dongle haben, so könnt Ihr diese gerne hier teilen! Eine Hand wäscht die andere :handshake: .
Außerdem sollte dem LAN Dongle eine feste IP Adresse zugewissen sein, entweder per Heimnetzwerk oder in der Dongle Konfiguration selbst. Ansonsten kann es sporadisch zu Verbindungsabbrüchen kommen.
-
Installation Modbus Adapter
Adapter: LINK
Nach der Installation sollte der Modbus Adapter in den Debug Modus gesetzt werden, damit erleichtert Ihr euch selbst das Leben bei der Fehlersuche. -
Einstellungen Modbus Adapter
Goodwe_Modbus_Protocol_Hybrid_ET_EH_BH_BT__ARM205 HV__V1.7 _ Read Only_20200226 (1).pdf
-
Verbindung per TCP (nicht TCP/RTU !)
-
Eure fest vergebene IP Adresse des Wechselrichters
-
Port 502 (siehe Goodwe Modbus Protokoll)
-
Geräte ID 247 (Standardmäßig in der Konfiguration eingerichtet, kann per Wifi Dongle und PV Master App verändert werden.)
Sollten mehrere Wechselrichter ausgelesen werden sollen, so muss "Mehrere Geräte ID's" angehackt werden. Nachfolgend muss dann an jedem Wechselrichter eine andere Geräte ID angegeben werden. (Geräte ID == Slave ID) -
Typ Master
-
Alle weiter Einstellungen können bei erstmaligen Start so bleiben, sollten jedoch nachfolgend auf die persönlichen Bedürfnisse angepasst werden.

Unter Allgemeine Einstellungen werden die Checkboxen, so wie nachfolgend ersichtlich, gesetzt:
Mit Aliases sind die definierten Register Ranges gemeint wie z.B. coils, 1-10000, discrete inputs, 10001-30000 ,input register 30001-40000, holding register 40000-65535. Dieser müssen deaktivert werden, da wir nicht mit diesen Bereichen arbeiten können.
-
Anlegen der Register:
Die von Goodwe unterstützen und abfragbaren Register findet Ihr im Goodwe Modbus Protokoll.
Nun geht es an die eigentlichen Arbeit, das befüllen der Register. Da bei uns eigentlich alle Register Holding Register sind (Read Only), müssen wir unsere Register auch hier eintragen.
Dies sollten dann etwa so aussehen:
Tragt am besten mal nur 1-2 Register ein, und seht auch dann den Debug Log an, dann seht Ihr schon ob die Funktion gegeben ist.
Wenn alles klappt, alle für euch notwendigen Register eintragen und sich freuen :grin:
Solltet Ihr Probleme beim Verbindungsaufbau oder mit den auslesen der Register haben, so kann ich euch das Tool von Schneider Electric ans Herz legen. Modbus Tool
Damit könnt Ihr prüfen ob der Wechselrichter generell Ansprechbar ist und ihr Rückmeldung bekommt. Sollte das nicht der Fall sein, stimmt schon mal etwas mit euere Konfig bzw. eurer Netzwerksanbdinung nicht.
Viel Spaß damit!
Gruß
@xreactz Hallo,
da du dich ja schon eine weile mit dem Goodwe und Modbus beschäftigst, hast du evtl. eine Lösung:
Ich komme über RS485 und RTU an alle Werte die ich benötige.
Mit der Modbus Read Only Adress Liste ist das ja kein Problem.
Jetzt geht es mir aber darum auch Werte zu schreiben.
Gibt es auch eine Liste mit Adressen die man "schreiben" kann?
Ich will im Batteriemanagement den DOD (Depth of Discharge) im On-Grid Modus ändern.
Über die PV-Solar App geht das ja, ich will es nur über den IO Broker machen... -
-
Hallo zusammen, habe einen Adapter für die GoodWe Inverter der ET/EH/BH/BT Serie erstellt um die Register auszulesen. Funktioniert über das WiFi Modul und benötigt keinen Modbus Adapter. Wäre toll wenn ihr in testen und feedback geben könntet. Adapter liegt unter https://github.com/FossyTom/ioBroker.goodwe.
@fossytom Erstmal vielen Dank den Adapter und Arbeit die dahinter steckt. Ich konnte problemlos installieren und starten, danach hat er alle Daten Punkte erzeugt und steht auf Grün. Leider bekomme ich keine Daten geliefert, auch nicht nach mehreren Tagen. Gibt es irgendwelche Voraussetzung auf Wechselrichter Seite? Ich habe nur das standardmäßige WLAN Modul am Goodwe 3648-EM.
-
Verbindung via WiFi/LAN Adapter läuft bei mir nun via Modbus TCP. Habe aber eine Frage zu den Werten.
Welcher ist der aktuelle Wert der Leistung der PV?Wenn ich den folgenden Screenshot nehme, String 1 und 2 (35105 + 35109) zusammenrechne, komme ich auf 8856W, was in etwa dem Wert in der PVMaster App entspricht, aber nicht dem Wert von 35138 (8516W).

Was ist genau der Wert 35138?
Und welchen Wert soll ich als Gesamt nehmen? (oder muss ich mir den via Script selbst berechnen?) -
Verbindung via WiFi/LAN Adapter läuft bei mir nun via Modbus TCP. Habe aber eine Frage zu den Werten.
Welcher ist der aktuelle Wert der Leistung der PV?Wenn ich den folgenden Screenshot nehme, String 1 und 2 (35105 + 35109) zusammenrechne, komme ich auf 8856W, was in etwa dem Wert in der PVMaster App entspricht, aber nicht dem Wert von 35138 (8516W).

Was ist genau der Wert 35138?
Und welchen Wert soll ich als Gesamt nehmen? (oder muss ich mir den via Script selbst berechnen?)@endurance
Die gesamte PV Nettoleistung AC ist die 35138 (Total INV Power). Passt auch mit den Werten zusammen die über die API kommen (Homeassistant hat da ne Integration dafür, so dass ich sowohl die Werte per API als auch per Modbus bekomme).Die 35105 + 35109 sind wohl die DC-Bruttoleistungen, die 35140 ist dann die AC Nettoleistung nach Wandlung und Verlusten.
35140 ist die Einspeiseleistung und 35172 ist das was als Last dranhängt (also 35138 - 35140)
Cu
Frank -
@xreactz Hallo,
da du dich ja schon eine weile mit dem Goodwe und Modbus beschäftigst, hast du evtl. eine Lösung:
Ich komme über RS485 und RTU an alle Werte die ich benötige.
Mit der Modbus Read Only Adress Liste ist das ja kein Problem.
Jetzt geht es mir aber darum auch Werte zu schreiben.
Gibt es auch eine Liste mit Adressen die man "schreiben" kann?
Ich will im Batteriemanagement den DOD (Depth of Discharge) im On-Grid Modus ändern.
Über die PV-Solar App geht das ja, ich will es nur über den IO Broker machen... -
Hat schon jamend erfahrung mit dem Kombi Modul LAN / Wifi und der Modbus Integration?
Oder funktioniert wirklich nur das reine LAN Modul?EDIT:
Hab gerade noch das hier gefunden:

https://community.goodwe.com/resources/goodwe/2021-12-14558424.pdf
@endurance Hab ich. Das Kombimodul kann Modbus TCP sowohl auf LAN als auch auf WLAN ausgeben (im Unterschied zum serienmässigen WLAN Modul, das kann kein Modbus). Ist aber (zumindest bei mir) nicht sehr stabil gelaufen. Erst als ich auf LAN gewechselt habe (und das war ein Krampf, kann ich dir sagen) war das stabil.
-
Danke für die ausführliche Doku und Rückmeldungen. Ich ergänze mal mein Feedback.
Goodwe GW10KN-ET mit Wifi Dongle
Anforderung: Daten im Smarhome an openWB (ohne Internet / ohne SEMS)
Via Modbus Adapter (RTU, TCP; RTUoverTCP) komme ich nicht an die Daten.
Der Adapter von FossyTom [FossyTom /ioBroker.goodwe] läuft gut/ausreichend.
Allerdings starte ich den Adapter regelmäßig via node-red exec (iobroker restart goodwe.0) täglich neu.
Über den Expertenmodus > Dateien habe ich das Minium für den Poll Zyklus reduziert (1s).Habe derzeit keine bessere Alternative, um an die Daten zu kommen.
Weiß jemand, ob der 5-PIN Adapter bei diesem Wechselrichter verwendet werden kann? -
@endurance
Die gesamte PV Nettoleistung AC ist die 35138 (Total INV Power). Passt auch mit den Werten zusammen die über die API kommen (Homeassistant hat da ne Integration dafür, so dass ich sowohl die Werte per API als auch per Modbus bekomme).Die 35105 + 35109 sind wohl die DC-Bruttoleistungen, die 35140 ist dann die AC Nettoleistung nach Wandlung und Verlusten.
35140 ist die Einspeiseleistung und 35172 ist das was als Last dranhängt (also 35138 - 35140)
Cu
Frank -
Danke für die ausführliche Doku und Rückmeldungen. Ich ergänze mal mein Feedback.
Goodwe GW10KN-ET mit Wifi Dongle
Anforderung: Daten im Smarhome an openWB (ohne Internet / ohne SEMS)
Via Modbus Adapter (RTU, TCP; RTUoverTCP) komme ich nicht an die Daten.
Der Adapter von FossyTom [FossyTom /ioBroker.goodwe] läuft gut/ausreichend.
Allerdings starte ich den Adapter regelmäßig via node-red exec (iobroker restart goodwe.0) täglich neu.
Über den Expertenmodus > Dateien habe ich das Minium für den Poll Zyklus reduziert (1s).Habe derzeit keine bessere Alternative, um an die Daten zu kommen.
Weiß jemand, ob der 5-PIN Adapter bei diesem Wechselrichter verwendet werden kann?@2schaf Ich habe eher das Problem dass der Adapter mir das SEMS Portal durch scheinbar zu viele Anfragen lahm legt. Wie klappt das dann dass die Abfragezeit bei dir bei 1s ist? Selbst mit über 2 Minuten stürzt bei mir SEMS ab und der WR zeigt Offline an. Die COM LED am WR beginnt zu blinken.
-
Ich bin aktuell auch am testen des Adapters von @FossyTom.
In den Objekten tauchen die Daten für PV1 bis PV4 auf. Ich vermute dass PV1 und PV2 der MPPT1 und PV3 und PV4 der MPPT2 sind. Zumindest deute ich dies ab und zu so aus den Werten die dort ankommen. Wobei diese auch nicht immer wirklich plausibel sind.
Ich habe allerdings einen GW25K-ET. Dieser hat drei MPP Tracker und nach meinem Verständnis oben müsste ich dann noch PV5 und PV6 haben?Grundsätzlich verstehe ich was der Adapter macht und wie er funktioniert. Jedoch sitze ich gerade über der GoodWe.js des Adapters und frage mich gerade wie man auf die rcvbuf Adresse kommt?
Beispiel anhand Zeile 335:
this.#runningData.Pv1.Voltage = this.#GetUintFromByteArray(rcvbuf, 11, 2) / 10;Woher weiß ich warum gerade 11 und 2 abgefragt wird und dieser Wert der PV1 Voltage entspricht.
Ich hoffe ihr versteht was ich meine? Ich würde mir das nämlich gerne mal genauer anschauen.
LG
paeppi -
Ich bin aktuell auch am testen des Adapters von @FossyTom.
In den Objekten tauchen die Daten für PV1 bis PV4 auf. Ich vermute dass PV1 und PV2 der MPPT1 und PV3 und PV4 der MPPT2 sind. Zumindest deute ich dies ab und zu so aus den Werten die dort ankommen. Wobei diese auch nicht immer wirklich plausibel sind.
Ich habe allerdings einen GW25K-ET. Dieser hat drei MPP Tracker und nach meinem Verständnis oben müsste ich dann noch PV5 und PV6 haben?Grundsätzlich verstehe ich was der Adapter macht und wie er funktioniert. Jedoch sitze ich gerade über der GoodWe.js des Adapters und frage mich gerade wie man auf die rcvbuf Adresse kommt?
Beispiel anhand Zeile 335:
this.#runningData.Pv1.Voltage = this.#GetUintFromByteArray(rcvbuf, 11, 2) / 10;Woher weiß ich warum gerade 11 und 2 abgefragt wird und dieser Wert der PV1 Voltage entspricht.
Ich hoffe ihr versteht was ich meine? Ich würde mir das nämlich gerne mal genauer anschauen.
LG
paeppi -
@2schaf Ich habe eher das Problem dass der Adapter mir das SEMS Portal durch scheinbar zu viele Anfragen lahm legt. Wie klappt das dann dass die Abfragezeit bei dir bei 1s ist? Selbst mit über 2 Minuten stürzt bei mir SEMS ab und der WR zeigt Offline an. Die COM LED am WR beginnt zu blinken.
@paeppi sag wie hast du dein problem nun gelöst? Der Adapter von @FossyTom macht bei mir die gleichen Probleme. Ich hätte gerne beides - SEMS Portal (ist einfach schön anzusehen, wenn du bei den Schwiegereltern bist und die dich fragen wie es aussieht) und den Rest brauch ich ja für meine Steuerungen....
-
@jayjay-0 ich habe lediglich die IP im Adapter eingetragen. Das ganze läuft aktuell über den WiFi Stick.
Läuft es denn jetzt bei dir?Und zur anderen Frage.
Das Problem mit SEMS ist nicht gelöst. Hab mal den Adapter jetzt 2-3 Tage aus gehabt und ich habe trotzdem die Verbindung zum SEMS verloren. Ist also auch nicht so toll.So richtig entschieden habe ich mich noch nicht wie ich das mache. Aber ich denke es läuft auf ioBroker und/oder HASS hinaus. Die Daten lasse ich mir dann in Grafana anzeigen und wenn ich es unterwegs sehen will frag ich vermutlich über Telegram ab und lasse mir die Daten schicken.
Bin aber gerne für andere Ideen offen.
LG
paeppi -
@jayjay-0 ich habe lediglich die IP im Adapter eingetragen. Das ganze läuft aktuell über den WiFi Stick.
Läuft es denn jetzt bei dir?Und zur anderen Frage.
Das Problem mit SEMS ist nicht gelöst. Hab mal den Adapter jetzt 2-3 Tage aus gehabt und ich habe trotzdem die Verbindung zum SEMS verloren. Ist also auch nicht so toll.So richtig entschieden habe ich mich noch nicht wie ich das mache. Aber ich denke es läuft auf ioBroker und/oder HASS hinaus. Die Daten lasse ich mir dann in Grafana anzeigen und wenn ich es unterwegs sehen will frag ich vermutlich über Telegram ab und lasse mir die Daten schicken.
Bin aber gerne für andere Ideen offen.
LG
paeppi@paeppi
sorry für die späte antwort - ich komm erst jetzt dazu.also ich hab nun gestern abend den wlan/lan Stick in betrieb genommen.
Getestet sowohl mit DHCP ztuweisung und Statischer Zuweisung.Die Daten kommen ganz zuverlässlich in den iobroker mit dem Fossi Adapter.
Der Modbus TCP funktioniert bei meinem GWK29.9ET laut Support noch nicht - er soll ein FDirmware Update bekommen - wann das aber soweit ist, kann der Support aber nicht sagen. (ich war beim 3rd level support)
ich hab dann mit den Polling Zeiten gespielt. Also mit einer Polling Zeit von 180 Sekunden geht alles übern wifi stick. Die Daten kommen in den Iobroker (alle 180 Sek) und das SEMS Portal hängt sich nicht auf.
So dann mal den LAN Anschluß getestet. Nach dem Anruf beim Support weiß ich nun, dass der LAN Anschluß sich mit dem WIFI Anschluß den USB Anschluß teilt. Also keine dezitierte Hardware ist. Also kannst du nur LAN oder WIFI verwenden. Beides (was ja die Lösung wäre) geht einfach nicht.
OK LAN Anschluss mit einer Polling Zeit von 120 sek funktioniert. LAN Anschluß mit einer Polling Zeit von 60 Sek (hat funktioniert - hat deswegen - erklärung kommt.)
LAN Anschluß auf Zeit von 30 sek.. so da hats dann zum zicken angefangen. ging nicht, ging usw.. irgendwann hats sich der Adapter so aufgehängt, dass ich nicht mal mehr einen Reset machen konnte.
Mit blieb nur mehr die schlimmste Methode: Abdrehen des LS des Wechselrichters. Dann ging aber nichts mehr, weil es Abends war, keine String Spannung mehr vorhanden und der WR somit in einer Bootschleife hängen blieb - eine WR Inbetriebnahme ist a bisserl schwierig, wenn er keine Stringspannung hat - das geht bei Goodwe nicht (außer eine Batterie hängt drann.
Weitere Tests kommen dann am Wochenende, wenn ich wieder zu Hause bin, wenn die Sonne scheint. Batterie sollt ich bis dahin dann auch in Betrieb genommen haben....
Was mich interessieren würde: Funktionierts im Homeassistent eigentlich oder gibts da die selben abstürze ?
-
@paeppi
sorry für die späte antwort - ich komm erst jetzt dazu.also ich hab nun gestern abend den wlan/lan Stick in betrieb genommen.
Getestet sowohl mit DHCP ztuweisung und Statischer Zuweisung.Die Daten kommen ganz zuverlässlich in den iobroker mit dem Fossi Adapter.
Der Modbus TCP funktioniert bei meinem GWK29.9ET laut Support noch nicht - er soll ein FDirmware Update bekommen - wann das aber soweit ist, kann der Support aber nicht sagen. (ich war beim 3rd level support)
ich hab dann mit den Polling Zeiten gespielt. Also mit einer Polling Zeit von 180 Sekunden geht alles übern wifi stick. Die Daten kommen in den Iobroker (alle 180 Sek) und das SEMS Portal hängt sich nicht auf.
So dann mal den LAN Anschluß getestet. Nach dem Anruf beim Support weiß ich nun, dass der LAN Anschluß sich mit dem WIFI Anschluß den USB Anschluß teilt. Also keine dezitierte Hardware ist. Also kannst du nur LAN oder WIFI verwenden. Beides (was ja die Lösung wäre) geht einfach nicht.
OK LAN Anschluss mit einer Polling Zeit von 120 sek funktioniert. LAN Anschluß mit einer Polling Zeit von 60 Sek (hat funktioniert - hat deswegen - erklärung kommt.)
LAN Anschluß auf Zeit von 30 sek.. so da hats dann zum zicken angefangen. ging nicht, ging usw.. irgendwann hats sich der Adapter so aufgehängt, dass ich nicht mal mehr einen Reset machen konnte.
Mit blieb nur mehr die schlimmste Methode: Abdrehen des LS des Wechselrichters. Dann ging aber nichts mehr, weil es Abends war, keine String Spannung mehr vorhanden und der WR somit in einer Bootschleife hängen blieb - eine WR Inbetriebnahme ist a bisserl schwierig, wenn er keine Stringspannung hat - das geht bei Goodwe nicht (außer eine Batterie hängt drann.
Weitere Tests kommen dann am Wochenende, wenn ich wieder zu Hause bin, wenn die Sonne scheint. Batterie sollt ich bis dahin dann auch in Betrieb genommen haben....
Was mich interessieren würde: Funktionierts im Homeassistent eigentlich oder gibts da die selben abstürze ?
@jayjay-0
bei mir läuft mittlerweile auch alles über den LAN/WiFi Stick. Das ganze mit fester IP nur im LAN. Einrichten war ein bisschen schwierig aber läuft nun seit drei Tagen problemlos.Das mit der Polling Zeit ist ja interessant. Selbst bei 5 Minuten, also 300 Sekunden schmiert mir Sems irgendwann ab. Zumindest mit dem WiFi Stick.
Mit Homeassistant hab ich die gleichen abstürze.
Sollte man evtl. für den Adapter ein eigenes Topic aufmachen? Mit dem eigentlichen Thema hat der Adapter ja eigentlich wenig zu tun.
@alle
Was mir aber gerade noch einfällt. Wie errechnet man korrekt den Hausverbrauch?
Ich würde es so verstehen:
Bei Battery1 Mode 1 (Laden)
Hausverbrauch = TotalPowerPv - AcActivePower - Battery1.PowerBei Battery1 Mode 2 (Entladen)
Hausverbrauch = TotalPowerPv - AcActivePower + Battery1.PowerWarum ich frage. Ich habe den Adapter mittlerweile auf Github geforkt und errechne mir im Adapter die Werte ohne externes Javascript. Wenn das jemand mal probehalber testen kann ob die Werte stimmen können würde ich das ganze noch hübsch machen und einen Pullrequest stellen.