[Modul] Goodwe

Modul für Goodwe für IP-Symcon

Dieses Modul ermöglicht, Daten von einem Goodwe Wechselricher mit/ohne Batterie und/oder einer Goodwe Wallbox abzufragen.

Unterstützt sind folgende Komponenten: Goodwe Wechselrichter (ET Plus+ 10kW). Andere Goodwe-Wechselrichter (insbesondere alle der Serie ET, EH, BH, BT) dürften ebenfalls kompatibel sein, da diese gemäss Doku über dieselben Register angesprochen werden. Goodwe Batterie (Lynx Home F Plus). Andere mit dem Wechslerichter kompatible Batterien dürften ebenfalls kompatibel sein, da diese über den Wechslerichter abgefragt werden. Goodwe Wallbox der 1. Generation (HCA-Serie) wird über die SEMS-API unterstützt, da diese kein Modbus beherrscht. Die Wallbox der 2. Generation (HCA-Serie G2)ist angekündigt ca. Mai 2025 und beherrscht dann Modbus und Phasenumschaltung. Falls ich diese anschaffe wird diese dann ebenfalls unterstützt sein.

Wichtig zu wissen zur Konfiguration des Moduls

Die Verbindung mit dem Goode Wechselrichter der ET-, EH-, BH-, oder BT-Serie wird über Modbus hergestellt. Die Register können nach Wunsch aus einer Liste via Konfigurationsformular ausgewählt werden. Es sind nicht alle möglichen Register in der Auswahl vorhanden. Gerne erweitere ich aber die Auswahl bei Bedarf. Die Verbindung mit der Goodwe Wallbox GW11K-HCA (1. Generation) wird über die SEMS-API hergestellt. Dazu werden die Zugangsdaten des SEMS-Portal und die Seriennummer der Goodwe Wallbox benötigt. Diese kann in der SEMS-APP in der Wallboxsteuerung nachgesehen werden. Während der Installation des Moduls wird automatisch ein Modbus-Gateway erstellt, sofern noch keines vorhanden ist. Besteht bereteits ein Gateway, kann dieses ausgewählt werden. Die Geräte-ID des Wechselrichters ist 247. Danach kann die IP-Adresse des Wechselrichters in den Client Socket eingetragen werden. Der Port ist standardmässig 502, sofern der Wechselrichter über das LAN-Modul direkt abgefragt wird. Ansonsten den Port des Modbus-Adapters verwenden, welcher dann über RS485 mit dem Wechselrichter verbunden ist.

Inhaltsverzeichnis

  1. Funktionsumfang
  2. Voraussetzungen
  3. Software-Installation
  4. Einrichten der Instanzen in IP-Symcon
  5. Statusvariablen und Profile
  6. WebFront
  7. PHP-Befehlsreferenz
  8. Versionen

1. Funktionsumfang

  • Abfrage und Ansteuerung ausgewählter Register des Wechselrichters, gruppiert nach Smartmeter (SM), Batterie (BAT) und Wechselrichter (WR). Die Steuerung von SOC online/offline und EMS Power Mode ist möglich.
  • Abfrage und Steuerung der Wallbox. Die Steuerung der Ladeleistung (für Schnellladung), des Modus (Schnell, PV-Priorität oder PV&Batterie) ist möglich.

2. Voraussetzungen

  • IP-Symcon ab Version 7.0
  • Goodwe Wechselrichter der ET-, EH-, BH-, oder BT-Serie mit/ohne Batterie und/oder eine Goodwe Wallbox GW11K-HCA.

3. Software-Installation

  • Das Modul kann über den Modul-Store installiert werden.

4. Einrichten der Instanzen in IP-Symcon

  • Unter ‚Instanz hinzufügen‘ kann das ‚Goodwe‘-Modul mithilfe des Schnellfilters gefunden werden.
  • Weitere Informationen zum Hinzufügen von Instanzen in der Dokumentation der Instanzen

Konfigurationsseite:

Name Beschreibung
Selected Registers Hier können die Register für die Modbus-Abfrage ausgewählt werden. Diese sind nach WR (Wechselrichter), BAT (Batterie) und SM (Smartmeter) gruppiert. Die Variablen werden automatisch erstellt oder gelöscht.
Intervall Intervall für die Abfrage der Modbus-Register. Standard ist 5 sek.
SEMS-API-Konfiguration Die Konfiguration ist nur bei vorhandener Goodwe-Wallbox erforderlich, da sich diese nicht über Modbus abfragen lässt. Der Timer ist hier Standardmässig auf 15 sec eingestellt. Die Wallbox Variablen (WB) werden automatisch nach der Eingabe der Zugangsdaten erstellt bzw. gelöscht. Vorsicht, nicht zu häufig abfragen, sonst blockiert die API.
Werte lesen Hiermit können alle aktvierten Datenpunkte abgefragt werden

5. Statusvariablen und Profile

Die Statusvariablen/Kategorien werden automatisch angelegt bzw. gelöscht, je nach Auswahl der Register im Konfigurationsformulars.

Steuervariablen

Aktuell sind folgende Ansteuerung möglich:

Wallbox:

  • WB - Ladevorgang (Starten oder Stoppen des Ladevorganges)
  • WB - Leistung Soll (Soll Leistung der Wallbox (4.2-11kW), nur relevant im Modus ‚Schnell‘)
  • WB - Modus Soll (Soll Modus der Wallbox (Schnell, PV-Rriorität, PV&Batterie))

Batterie/Wechselrichter:

  • BAT - Min SOC online (Minimaler SOC der Batterie bei vorhandener Stromnetz-Verbindung)
  • BAT - Min SOC offline (Minimaler SOC der Batterie bei nicht vorhandener Stromnetz-Verbindung)
  • BAT - EMSPowerMode (Modus des EnergieManagentSystems in Zusammenhang mit der Batterie (wenn du weist was du tust, der Modus ‚Auto‘ ist zu bevorzugen))
  • BAT - EMSPowerSet (zugehörige Leistung bei Auswahl eines anderen EMSPowerMode als ‚Auto‘ (max. 10000 Watt)).

Statusvariablen

Es werden Variablen je nach Wahl der Register erstellt. Bei Abwahl dieses Registers wird die Variable gelöscht. Die Variablen der Wallbox werden nach der Eingabe der Zugangsdaten zur SEMS-API automatisch erstellt. Beim löschen eines der Felder für die Zugangsdaten werden die die Variablen wieder gelöscht.

Profile

Name Typ
Goodwe.EMSPowerMode Integer
Goodwe.WB_State Integer
Goodwe.WB_Mode Integer
Goodwe.WB_Power_W Integer
Goodwe.Mode Integer
Goodwe.WB_Workstate Integer
Goodwe.Watt Integer
Goodwe.Percent Integer
Goodwe.WattEMS Integer

6. WebFront

Alle Variablen mit Aktion können aus der Visualisierung heraus gesteuert werden.

7. PHP-Befehlsreferenz

Befehl Beschreibung
Goodwe_FetchAll(12345); Alle Datenpunkte aktualisieren
Goodwe_FetchWallboxData(12345); Datenpunkte der Wallbox aktualisieren (Über SEMS-API)
Goodwe_FetchInverterData(12345); Datenpunkte des Wechselrichters akualisieren (Über Modbus)

8. Versionen

Version 2.3 (4.05.2025)

  • Ein Problem wurde behoben, welches die Ansteuerung durch den Energiemanager verhinderte.
  • Ein Problem mit dem doppelten setzen des Timers nach einem Modulupdate wurde behoben.
  • Wenn der Sollwert der Ladeleistung verändert wird, wird der Modus direkt auf ‚Schnell‘ gesetzt.

Version 2.2 (29.04.2025)

  • Die maximal freigegeben Leistung für Laden und Entladen des Speichers kann nun Variable ausgegeben werden. Dies wird vom Modul berechnet, da Goodwe keinen Datenpunkt dazu zur Verfügung stellt. Eventuell kann dieser Datenpunkt in Zukunft als Info für den Energiemanger genutzt werden.
  • Ein Fehler wurde behoben, dass nach einer Aktualisierung des Moduls die neuen Register nicht zur Auswahl standen.

Version 2.1 (25.03.2025)

  • Wallbox Soll- und Ist-Leistung wird nun in Watt angezeigt statt kW. Allenfalls müssen die beiden Variablen ‚WB - Leistung Soll‘ und ‚WB - Leistung ist‘ manuell gelöscht werden, sie werden dann automatisch wieder erstellt.

Version 2.0 (15.02.2025)

  • Neues Variablenprofil für die Regelung von EMSPowerSet (Leistungsvorgabe) auf 10000 Watt beschränkt.
  • EMSPowermode (Priorität der Energiequelle) auf alle möglichen Modis erweitert.
  • Version um die Store-Kompatibilität zu erlangen.
  • Doku angepasst
  • Einige interne Anpassungen

Version 1.3 (25.01.2025)

  • Register 35105 und 35109 war falsch konfiguriert und lieferte keinen Wert.

Version 1.2 (19.01.2025)

  • Eigenes Variablenprofil für Prozent auf 1% abgestuft
  • Interne Umbenennung einiger Funktionen und Timer
  • Doku angepasst

Version 1.1 (14.01.2025)

  • Steuerung von EMS-Power Mode (Netzladen der Batterie)
  • Steuerung von SOC online/offline (maximale Entladung der Batterie)
  • Fehlermeldung in Register Auswahlmenu behoben

Version 1.0 (12.01.2025)

  • Initiale Version

Hallo Stefan,

Vielen Dank für dein Modul, es hat sich bisher als sehr nützlich erwiesen.

Seit einige Wochen habe ich einen ET Plus+ 10kW auf Nord/West mit 14,5kWp und derzeit 5kWh Lynx-D.
Weiterhin eine Bestandsanlage mit 10kWp Süd/Ost und Danfoss Wechselrichter auf 70% hart limitiert, also max 7kW.

Ich habe jetzt den Effekt, dass das EMS vom Goodwe die PV Erzeugung drosselt wenn die Gesamtleistung ( Danfoss + Goodwe ) 10 kW erreicht und das System nicht im Auto Modus ist.

In SolarGo habe ich unter Erweiterte Einstellungen/Leistungsgrenze 16000 eingetragen ( 70% /7kW Danfoss + 60%/9kW GoodWe = 16kW).
Im Auto Modus funktionert das EMS dann einwandfrei und es wird erst bei Leistungsgrenze von 16kW die PV Erzeugung gedrossel, darüber spring die Batterie ein. bei dem Wetter heute konnte ich das mit mehren Werten nachvollziehen und gut testen.

Da ich morgens des Speicher gerne entladen möchte und um die Mittagszeit den leeren Speicher für die Spitzen nutzen möchte ( wenn der GoodWe über 10kW geht ) muss ich mehrfach am Tag den Betriebsmodus wechseln.

Meine Frage ?

Gibt es ModbusRegister welches hierfür zuständig ist ?

Grüße
Guido

Wenn ich richtig verstehe regelst du mit SolarGo, nicht nicht Symcon?
Relevant für die manuelle Steuerung des EMS sind Register 47511 (EMSPowerMode) und 47512 (EMSPowerSet)

Du findest hier alle Register gut beschrieben, wobei ich natürlich nur einen Bruchteil integriert habe, unter anderem eben diese oben erwähnten Register.
1703579717824-arm.745.esg2.et30.modbus.protocol.map.20221231…v1.pdf (848,3 KB)

Danke,
ich schaut in die Doku rein und Probieren ggf. ausserhalb deines Moduls welche Register in Frage kommen.

Ich habe nächste Woche Abnahme durch den Elektriker.
Für den wäre es mir lieb wenn der Wechserichter die Leistungsgrenzen regelt und ich mich später um die Optimierung und reduzierung dee Überschüsse kümmer. Für unseren Tesla und Panasonic WP läuft das seit einigen Jahren ganz gut.

Ich mag es allgemein wenn die Systeme auch ohne Symcon laufen.

Wie erwähnt dürften dass 47511 und 47512 sein, welche im Modul integriert sind.
Wenn du andere relevante Register findest kannst du mir dies auch gerne mitteilen, allenfalls integriere ich sie ins Modul.

Hi mb-stern, von der Modbus Beschreibung gibt es bereits die Version 1.2.

Nach 13 Jahren SMA STP10000TL, habe ich seit diesem WE einen GW29.9K-ET am Start.

20240424GoodWe ARM 745 Modbus protocol Map.pdf (2,3 MB)

Danke, das hatte ich noch nicht…
Grobes Teil, wie viele Panels hast du denn? 100?
Verwendest du mein Modul für den WR?

Gerne! Schön wäre es 100 Module auf der Hütte zu haben. Nein, das habe ich nicht, ich habe anderes vor. Mit dem WR habe ich mir auch einen Speicher mit 40 kWh zugelegt, aber den muss ich noch installieren. Die Konfiguration macht Sinn wenn man 2 E-Autos, eine Wärmepumpe, einen Dynamischen Stromtarif, EnWG 14a Modul 1 und 2 in Anspruch nimmt.

Nun, die PV ist 9,18 kWp groß und meine Einspeisevergütung liegt noch bei 18,36 ct/kWh. Die PV hat im Sommer immer dann ihren Peak, wenn der Strompreis im Keller ist und wir nicht Zuhause sind. Außerdem dauern die günstigen Preis-Konditionen nicht sehr lange. Die Lösung liegt darin, die eigene PV-Produktion möglichst weit mit zusätzlichem Strom aus dem Netz übertrumpfen zu können, so dass ich auch von den Preisen profitieren kann.

Unser VNB lässt bei Inanspruchnahme von EnWG 14a Modul 3 zwischen 00.00 und 06.00 Uhr 90% der Netzentgelte nach. Das ist immerhin ein Preisnachlaß von 7,5 ct/kWh oder um die 25%.

Wie man relativ einfach erkennen kann ist in dem Bezug vieles von der Ladegeschwindigkeit und somit von der WR-Größe abhängig.

Tja, und dann möchte ich mich auch auf den Stromhandel vorbereiten - wenn er denn tatsächlich in ein Gesetz gemeißelt wird.

Ob ich Dein Modul zum Einsatz bringen möchte weiß ich noch nicht, zumindest habe ich es mir mal angesehen, die Entscheidung fällt später. Allerdings, da ich im PV-Monitoring Geschäft stecke sind meine Anforderungen an die Messwerte relativ hoch. Unsere größte PV-Anlage hat rund 17,5 MWp, und da sind die Ansprüche eben etwas höher und diese Ansprüche übernimmt man auch ins Private.

Bei uns in der Schweiz kommen die dynamischen Stromtarife erst nächstes Jahr flächendeckend.
Auch ich erhalte18 Rp/kWh (was in etwa den 18 ct entspricht), jedoch hat aktuell eine anderweitige Steuerung noch keinen finanziellen Anreiz.
Aber wie gesagt, ab 2026 wird sich ziemlich viel ändern, was ist noch nicht ganz klar.

Interessant, probiere das Modul dann unbedingt mal aus. Bereits jetzt kannst du damit Einfluss auf EMS Power Mode und EMS Power Set nehmen, was eine Steuerung von Netzbezug und Abgabe möglich macht. Wie erwähnt, gebraucht habe ich es noch nicht da kein Anreiz. Aber wenn sich das dann mal ein Profi anschaut ist das sicher noch ausbaufähig.
Gerne auch bin ich offen für Vorschläge, welche Modbus-Register noch sinnvoll sein könnten, um das Modul zu erweitern. Für meine Ansprüche genügt es bislang.

Bei uns sollten die schon 2022 für die großen Stromversorger gelten. Die haben das Thema mit nicht vorhandenen IMSys (Intelligente Messsysteme ) abgewälzt. Der Gesetzgeber hat aber eine letzte Frist für alle auf den 01.01.2025 gesetzt. Ich hatte bereits schon 2021 aWATTar in der dynamischen Ausführung. Heute bin ich bei Tibber.

Habe es bereits am laufen.

Leider sind die Batterien weder aufgebaut noch angeschlossen.

Ich habe alle Auswahlmöglichkeiten aktiviert. Alles funktioniert, auch für den GW29.9K-ET. Ich habe insgesamt 3 Strings und benutze alle 3 MPP-Tracker, also fehlen mir Werte für String 3 und String 5, dann kannst Du aber auch gleich die Strings 1 - 6 programmieren. :man_shrugging: So ähnlich sieht es mit den Batterien aus. Ich werde 2 Türme haben, der GW29.9K-ET hat 2 Batteriestrings und BMS Eingänge. Die Verschaltung der Türme ist noch ein komische Sache bei der ich mich noch nicht festgelegt habe (siehe Screenshot).

Möglicherweise wähle ich die rechte umrandete Variante. Müsste aber zunächst mal die Vorteile und Nachteile kennen. Eine solche Variante war mir aber bislang unbekannt.
Und klar, diese Werte sollte ich wenn schon auch haben.

Was unbedingt erforderlich ist, ist der Isolationswiderstand. Der muss unbedingt in einem Monitoring drinnen sein weil der Wert die Hauptfehlerquelle einer PV-Anlage darstellt. Ist der Wert zu gering, schaltet sich das Ding aus.

Ansonsten sieht Dein Modul zunächst sehr gut aus, Danke Dir dafür. Weiteres werde ich aber erst sagen können wenn meine Anlage komplettiert ist und ich alles mit mehr Zeit angesehen habe.

Gruß Dietmar

Ps.: Eines ist mir noch auf die Schnelle ausgefallen. Bei der Speicher- und Wechselrichtergröße habe ich natürlich alles am Backup hängen, also Ersatzstrom für die ganze Hütte. Die Werte für das Backup kommen bei Dir auch nicht vor.

Also wenn Du zu viel Zeit hast, dann kannst Du an der Stelle gerne etwas nachlegen. Danke!

In der aktuellen beta ist nun das maximum von 4 Strings und 8 MPPT verfügbar

Ist ebenfalls integriert…

Hier musst du mir ein wenig unter die Arme greifen, da ich nicht weiss was du meinst. Hast du dazu Register-Nummern?

Auch hier wären Register-Nummern nötig wenn du dann einen Plan hast…

Guten Morgen mb-stern,

vielen herzlichen Dank für Deine Bemühungen!

Dass das Update verfügbar ist wurde in Symcon angezeigt. Das Update habe ich durchgeführt, die neuen Topics sind aber in der Auswahl nicht vorhanden. Im Code sind die aber drinnen. vermutlich fehlt hier einfach, dass die auch in der Auswahl erscheinen sollen.

Hier musst Du aufpassen, z.B. hat mein WR 3 MPP-Tracker mit je 2 Stringeingängen = 6 mögliche Strings. 4 Strings kannst Du nicht auf 8 MPP-Tracker aufteilen, das geht nicht. Aber man kann 2 oder mehr Strings auf einen MPP-Tracker loslassen, allerdings müssen die Strings dann die gleiche Anzahl von Modulen, Ausrichtung und Neigung haben. Deutlich wird das wenn Du Dir das Register 35327 anschaust - „PV16 Current“. Die normalen PV-Besitzer sollten max. mit 3 MPP-Trackern auskommen und somit mit 6 Strings.

Isolationswiderstand erscheint in der Auswahl ebenfalls nicht.

Backup bezeichnet die Not- bzw. Ersatzstromversorgung. Die Goodwe Hybriden sind ja bis zu Ihrer Leistungsgrenze Ersatzstromfähig. Da mein WR mit 29,9 kW nur minimal unter der „Normal Privaten“ Stromversorgung von 50A = 34,5 kW liegt, habe ich die komplette Stromversorgung unseres Hauses über das Backup angeklemmt. Das Backup wird somit nicht über den SmartMeter, sondern über den WR direkt gemessen - Register 35169. Die restlichen Register für das Backup-System findest Du unter 35145 - 35167.

Hiermit habe ich die 2 Batterietürme angesprochen. Ich habe mal nachgesehen welche Register Du benützt, Du benützt die allgemeinen Batterie Werte, also nicht nach Bat 1 und Bat 2 getrennt. Ich habe ich nun für die oben dargestellte Variante entschieden, also Bus durch beide Türme durchgeschleift und nur am Buseingang 1 des WR eingesteckt, aber die Steigleitungen als Ring durch beide Türme und an beiden Stringeingängen für die Batterie angestöpselt.
Hier muss ich dann wenn es in Betrieb ist sehen was die Werte in der Konstellation sagen.

Ich hoffe, dass Du mit meinen Erklärungen klar kommst und wünsche Dir noch einen schönen Tag.

Gruß Dietmar

Betreffs dem Verhalten gab es in der Stable Probleme. Allenfalls hast du erst diese installiert.
Bitte versuche, ein Register welches du bereits hast zu entfernen und wieder hinzuzufügen, dann sollte (auch in Zukunft) die neuen Register zur Auswahl stehen.

Funktioniert, war mein Fehler :see_no_evil:

Zu den Strings und MPP-Trackern nochmal. Da hat Goodwe in Ihrer Register Map ganz schönen Mist gebaut …

P = U x I, wenn I Null ist, ist P auch Null.

Elektrotechnisch gliedert sich das wie folgt.

Aufdem WR wird das dann so dargestellt.

Die Zahl im Kreis gibt den String an.

Elektrotechnisch sieht das Ganze so aus, dass serielle Schaltungen (Module) die Spannung erhöhen, während parallele Schaltungen (zusammenführung von 2 Strings im WR) den Strom erhöhen. aus diesem Grunde findest Du auch keinen Spannungswert für den MPPT. D.h. würde ich String 1 und String 3 auf dem MPPT 1 zusammenführen, dann wäre I MPPT1 = 13,9A.

BAT - Laden Leistung max und BAT - Entladen Leistung max kann man nicht ausblenden, diese Werte sind immer sichtbar, die sind aber auch nicht auswählbar. Ist das so gewollt?

Zum Isolationswiderstand, laut Default Wert des Registers 45245 sollte der WR bei Unterschreitung von 100kΩ abschalten, andere WR Hersteller schalten bereits bei 400kΩ den WR aus. Laut Goodwe Register Map hast Du den Faktor 0,1 für den Wert angegeben, der wird aber wie beim Register 45245 bei 1 liegen. Einen so geringen Isolationswiderstand von 400kΩ hatte ich noch nie und ich habe bevor ich den SMA abgeschraubt habe ein Auge darauf geworfen und derzeit ist es ja sehr trocken, so dass der Wert unmöglich sein kann. Das sollen vermutlich 4MΩ sein, das wäre ein realistischer Wert.
Ich weiß nicht was Du beruflich machst, deshalb möchte ich Dir diesen Wert versuchen zu erklären. Der Wert stellt die „Dichtheit“ der Isolierung der Stringleitung und Stecker dar. Sollte die Isolierung so undicht sein, dann kann es passieren, dass Strom aus der Stringleitung auf stromführende Materialen übertragen wird was dann bei Berührung dieser Materialien dazu führt, dass Du einen Stromschlag bekommen kannst. Da das nur im „Betrieb“ passieren kann, wird bei unterschreiten der „Dichtheit“ der Betrieb der PV-Anlage eingestellt. Sollten die Steigleitungen und die Stecker dem Regen ausgesetzt sein, so ist genau zu diesem Zeitpunkt die Gefahr am größten, dass ein sogenannter RISO Fehler auftritt.

Ich finde hierzu keine Register, daher berechne ich die Werte.
Einfach unter ‚Zusätzliche Werte berechnen deaktivieren‘

Ist in der neuen Version auf Faktor 1, einfach kurz die Variable löschen und wieder erstellen

Klar, aber bei mir funktioniert das