Goodwe ET10 Wechselrichter in OpenEMS einbinden

Hallo zusammen,

heute wurde endlich meine neue PV Anlage mit einem Goodwe ET10 Hybridwechselrichter
angeschlossen. Allerdings konnte ich die bestellte Batterie (BYD HVM 19,3) noch nicht
mit installieren, weil diese noch auf sich warten lässt.

Ich habe in der Felix Web Console alle meine simulated Datasources rausgeschmissen und ein Goodwe GridMeter aufgenommen. Ein RS485/TCPIP Gateway hatte ich schon als Modbus0
konfiguriert, und so wurde das Goodwe Smartmeter, das direkt hinter dem Zähler hängt, zum Meter0, welches auf Modbus0 verweist (mit der Default ID 247 des WR).

Damit bekomme ich die Energiebilanz am Einspeisepunkt korrekt angezeigt (die Momentanwerte stimmen so la la mit den Werten auf der Tibber APP überein), also super.

Ich bemerke, dass ich nirgendwo Modbus Register des Goodwe spezifiziert habe, daher denke ich, dass die Komponente selbst weiß, welche Register sie von ID247 auslesen muss.

Nun zu meinem Problem / meiner Frage: das mit den ganzen Speicherdingen kann ja noch nicht funktionieren, weil noch kein Speicher da ist. Aber irgendwie kam auch keine PV Erzeugung (bzw. in der Box hatte er immer den Wert von Meter0 angezeigt als Erzeugung).
Auf dem Bild mit der Erzeugung (blaue PV Module) und dem Netz(Strommast) und
der Hauslast (Glühbirne) hat er jedoch nichts angezeigt.

Was mache ich falsch ? Bzw. was muss ich genau konfigurieren, um die PV Erzeugung auch angezeigt zu bekommen ?

viele Grüße
ThommyTheKid

Hallo,

für einen GoodWe ET10 mit BYD Battery Box, benötigst du folgende Kompnenten:

  • Bridge.Modbus.Serial (modbus0)
  • GoodWe.Charger-PV1 (charger0 via modbus0)
  • GoodWe.Charger-PV2 (charger1 via modbus0)
  • GoodWe.Ess (ess0 via modbus0)
  • GoodWe.Grid-Meter (meter0 via modbus0)

Damit sollte die Visualisierung schon einmal vollständig sein.

Gruß,
Stefan

Die wichtigste Frage gleich mal vorweg:

Den Modbus Adapter hast du schon am Wechselrichter dran, nicht am Meter selber, oder?

Hallo, vielen Dank für die Info !
Ich denke ESS ist ja die Batterie, die ich noch nicht habe (die auch im Goodwe
noch nicht konfiguriert ist - no Batterie)
Grid Meter ist denke ich das Goodwe Smartmeter, oder ? Das hat auch schon richtige Werte geliefert. Ist es so, dass die Komponente die Modbus Adresse im Bauch hat und diese über das
Gateway per Modbus TCP abfragt ?
Bridge Modbus habe ich und funktioniert auch - mit derm Waveshare Gateway.

Allerdings verstehe ich überhaupt nicht, was Charger PV1 und Charger PV2 sein sollen ?
Könntest du mir dazu ein paar Worte als Erklärung sagen ?

Aber natürlich habe ich diese auch eingebunden. Jetzt sieht die Anzeige so aus:

Der Einspeisewert von 6,5 KW stimmt. Die Charger1 und Charger2 tauchen bei Erzeugung auf !
Allerdings ohne Werte in der Tabelle
Es werden allerdings keine Werte angezeigt unter dem Solarpanel (Erzeugung)
Irgendwie scheint er zu denken, dass die 6,5KW aus dem Haus kommen ??
Das ist doch komisch, oder ?

Die wichtigste Frage gleich mal vorweg:

Den Modbus Adapter hast du schon am Wechselrichter dran, nicht am Meter selber, oder?

Mein Wavershare RS485/TCP Gateway ist im Zählerschrank verbaut.
Hier ist neben einigen EASTRON SDM630 auch der Goodwe Wechselrichter per RS485 angeschlossen. Damit kann ich so tun, als wäre das Gateway der Wechselrichter selbst,
der MODBUS TCP spricht.
Das Goodwe Smartmeter ist wie vorgesehen mit dem RJ45 Stecker fix am Wechselrichter
verkabelt. Ich lese die Smartmeter Werte über das Gateway aus dem Wechselrichter aus:

Total_Meter_Active_Power Adresse 36008

Gruß
ThommyTheKid

Deine 2 MPP-Tracker sind das

Nein, nicht komisch, da alles was nicht als Erzeugung gemessen wird ja irgendwo herkommen muss und OpenEMS das halt so behandelt wie in der Formel:

Stefan Feilmeier - Vorlesung Energiemanagement - Ausschnitte.pdf (1.1 MB)

Schick doch mal den Log hier rein..

Grüße !

aah !! Na darauf soll man kommen :slight_smile: Charger … alles klar, verstehe !

Dann kann ich den Charger_PV2 gleich rausschmeißen, weil ich nur einen String angeschlossen habe. Allerdings habe ich festgestellt, dass im Charger_PV1 ein batteryInverter0 referenziert wird, der in der Liste von Stefan oben nicht dabei war.

Ich hab noch etwas rumgespielt und wenn ich einen GoodweBatteryInverter hinzunehme,
gibt es den batteryInverter0 und es sieht für mich plausibler aus. Kann es sein, dass der fehlte ?

Es wäre sehr interessant für mich, wenn es diese Vorlesung vielleicht irgendwo bei youtube gäbe oder so ? Dein Einwurf, dass ja jede Erzeugung irgendwo herkommen muss, hat mich
dazu gebracht, das noch etwas kompliziertere Layout in meiner Installation mal zu erwähnen.

Ich habe am Goodwe vorerst nur einen String, da der andere noch an einem SMA Wechselrichter von 2008 hängt (Volleinspeisung mit separatem Zähler) der bis 2030 noch
Einspeisevergütung bekommt.
Daneben habe ich aber noch eine 4,4 KWP Anlage mit 3 Mikrowechselrichtern, die auch ins Haus einspeist. Der Goodwe Smartmeter misst also nicht nur seine eigene AC Erzeugung, sondern die Summe aus (Goodwe AC + Hoymiles AC - Hausverbrauch).
Habt ihr irgend eine Idee, wie man das sinnvoll abbilden könnte ?

Bezüglich des Logs: wie hole ich den nochmal ?

Gruß
ThommyTheKid

nein, du brauchst genau das was stefan geschrieben hat charger(xy) muss ess0 referenzieren

Shelly Zähler oder OpenDTU für die Hoymiles.

Einstellungen → Log

Grüße !

hm, irgendwie klappt es nicht ! Ich habe jetzt Goodwe ESS wieder dazugenommen (obwohl ich noch keine Batterie habe !!) - damit ich ein ess0 habe. Control Mode = INTERNAL ist ok ?

damit klappt es aber nicht, sieht so aus:

Shelly Zähler oder OpenDTU für die Hoymiles.
ich hab sogar eine OpenDTU und auch schon mal die Komponente getestet.
Dabei gab es Probleme mit dem Geamtertrag (Energy_Total) den ich parallel für andere
Auswertungen alle 5 sec aus der openDTU auslese. Diese war zwischenzeitlich immer auf 0
wenn die OPENDTU Komponente aktiv war.
siehe auch: openDTU Implementierung - #45 by thommythekid
Andere Frage: in dem Thread hattest du geschrieben, dass das Feature noch nicht im
Release ist, sondern noch als PR rumliegt. Ist es mittlerweile drin im Release ?

Das Einstellungen Menü sieht bei mir so aus - da gibt es kein Log:

Gruß
ThommyTheKid

aahh ich hab’s !!

Das Problem war, dass ich bei den Einstellungen immer nur bei Goodwe ESS or Battery Inverter das ess0 eingetragen habe, in der Erwartung, dass er es bei “Save”
in der nächsten Zeile am Ende ersetzt ((id=ess0)) - hat er aber nicht gemacht.

Wenn ich es dort auch eintrage, klappt es !

Gehe ich richtig in der Annahme, dass es kein Problem ist, die ess0 konfiguriert zu haben, obwohl noch keine Batterie da ist (der WR weiss das ja) ??

Die Antworten auf die Fragen nach der OpenDTU und dem Log wären trotzdem noch interessant …

Gruß
ThommyTheKid

Ja, korrekt, ist kein Problem (solange der Control Mode auf internal steht)

Du musst dich als admin anmelden - passwort “admin” :wink:

Bezüglich openDTU brauche ich auch wieder die Logs und die Detaildaten, die nicht stimmen als Bild in der UI

Wow - super ! Danke für die Info, jetzt sehe ich viel mehr…

Hier das Log:

15.5.2025, 13:49:05
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5048 W Grid:-8284 W Production:5013 W Consumption:-3236 W] charger0[L:5013 W] ess0[SoC:UNDEFINED|L:5048 W|On-Grid|Allowed:0;5039 W|State:INFO: Communication failure] meter0[L:-8284 W]
15.5.2025, 13:49:04
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5039 W Grid:-8280 W Production:5048 W Consumption:-3241 W] charger0[L:5048 W] ess0[SoC:UNDEFINED|L:5039 W|On-Grid|Allowed:0;5039 W|State:INFO: Communication failure] meter0[L:-8280 W]
15.5.2025, 13:49:03
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5039 W Grid:-8277 W Production:5039 W Consumption:-3238 W] charger0[L:5039 W] ess0[SoC:UNDEFINED|L:5039 W|On-Grid|Allowed:0;5058 W|State:INFO: Communication failure] meter0[L:-8277 W]
15.5.2025, 13:49:02
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5058 W Grid:-8277 W Production:5039 W Consumption:-3219 W] charger0[L:5039 W] ess0[SoC:UNDEFINED|L:5058 W|On-Grid|Allowed:0;5058 W|State:INFO: Communication failure] meter0[L:-8277 W]
15.5.2025, 13:49:01
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5058 W Grid:-8302 W Production:5058 W Consumption:-3244 W] charger0[L:5058 W] ess0[SoC:UNDEFINED|L:5058 W|On-Grid|Allowed:0;5063 W|State:INFO: Communication failure] meter0[L:-8302 W]
15.5.2025, 13:49:00
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5063 W Grid:-8302 W Production:5058 W Consumption:-3239 W] charger0[L:5058 W] ess0[SoC:UNDEFINED|L:5063 W|On-Grid|Allowed:0;5068 W|State:INFO: Communication failure] meter0[L:-8302 W]
15.5.2025, 13:48:59
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5068 W Grid:-8304 W Production:5063 W Consumption:-3236 W] charger0[L:5063 W] ess0[SoC:UNDEFINED|L:5068 W|On-Grid|Allowed:0;5068 W|State:INFO: Communication failure] meter0[L:-8304 W]
15.5.2025, 13:48:58
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5068 W Grid:-8311 W Production:5068 W Consumption:-3243 W] charger0[L:5068 W] ess0[SoC:UNDEFINED|L:5068 W|On-Grid|Allowed:0;5068 W|State:INFO: Communication failure] meter0[L:-8311 W]
15.5.2025, 13:48:57
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5068 W Grid:-8308 W Production:5068 W Consumption:-3240 W] charger0[L:5068 W] ess0[SoC:UNDEFINED|L:5068 W|On-Grid|Allowed:0;5067 W|State:INFO: Communication failure] meter0[L:-8308 W]
15.5.2025, 13:48:56
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5067 W Grid:-8308 W Production:5068 W Consumption:-3241 W] charger0[L:5068 W] ess0[SoC:UNDEFINED|L:5067 W|On-Grid|Allowed:0;5065 W|State:INFO: Communication failure] meter0[L:-8308 W]
15.5.2025, 13:48:55
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5065 W Grid:-8303 W Production:5067 W Consumption:-3238 W] charger0[L:5067 W] ess0[SoC:UNDEFINED|L:5065 W|On-Grid|Allowed:0;5065 W|State:INFO: Communication failure] meter0[L:-8303 W]
15.5.2025, 13:48:54
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5065 W Grid:-8304 W Production:5065 W Consumption:-3239 W] charger0[L:5065 W] ess0[SoC:UNDEFINED|L:5065 W|On-Grid|Allowed:0;5058 W|State:INFO: Communication failure] meter0[L:-8304 W]
15.5.2025, 13:48:53
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5058 W Grid:-8305 W Production:5065 W Consumption:-3247 W] charger0[L:5065 W] ess0[SoC:UNDEFINED|L:5058 W|On-Grid|Allowed:0;5058 W|State:INFO: Communication failure] meter0[L:-8305 W]
15.5.2025, 13:48:52
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5058 W Grid:-8285 W Production:5058 W Consumption:-3227 W] charger0[L:5058 W] ess0[SoC:UNDEFINED|L:5058 W|On-Grid|Allowed:0;5067 W|State:INFO: Communication failure] meter0[L:-8285 W]
15.5.2025, 13:48:51
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5067 W Grid:-8295 W Production:5058 W Consumption:-3228 W] charger0[L:5058 W] ess0[SoC:UNDEFINED|L:5067 W|On-Grid|Allowed:0;5049 W|State:INFO: Communication failure] meter0[L:-8295 W]
15.5.2025, 13:48:50
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _sum[State:Info Ess L:5049 W Grid:-8294 W Production:5067 W Consumption:-3245 W] charger0[L:5067 W] ess0[SoC:UNDEFINED|L:5049 W|On-Grid|Allowed:0;5037 W|State:INFO: Communication failure] meter0[L:-8294 W]

Langsam beginne ich zu verstehen…
Er sieht 8294W Einspeisung am Grid, sieht 5067W Production durch den Goodwe,
sonst hat er nichts, also errechnet er Consumption muss -3245W sein.
Eigentlich sind die 3245W die Erzeugung der Hoymiles (ca. 3710) - dem Hausverbrauch.
Das kommt so ungefähr hin.

Nochmal ein Detail zur OpenDTU Komponente. Diese ist in meiner Konfiguration noch drin, allerdings war sie disabled, obwohl ich von meinem selbst gebauten Build (mit dem ich die OpenDTU Komponente getestet habe und das Problem (siehe Link oben) festgestellt habe) wieder auf den 2025.4.0 gegangen bin.
Wenn ich die OpenDTU Komponente enable, sehe ich folgendes im Log:

15.5.2025, 13:54:43
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _componentManager[Defective:io0[Missing Bundle]|State:FAULT: A configured OpenEMS Component was not activated] _sum[State:Fault Ess L:5009 W Grid:-8276 W Production:4999 W Consumption:-3267 W] charger0[L:4999 W] ess0[SoC:UNDEFINED|L:5009 W|On-Grid|Allowed:0;5009 W|State:INFO: Communication failure] meter0[L:-8276 W]
15.5.2025, 13:54:42
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _componentManager[Defective:io0[Missing Bundle]|State:FAULT: A configured OpenEMS Component was not activated] _sum[State:Fault Ess L:5009 W Grid:-8289 W Production:5009 W Consumption:-3280 W] charger0[L:5009 W] ess0[SoC:UNDEFINED|L:5009 W|On-Grid|Allowed:0;5001 W|State:INFO: Communication failure] meter0[L:-8289 W]
15.5.2025, 13:54:41
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _componentManager[Defective:io0[Missing Bundle]|State:FAULT: A configured OpenEMS Component was not activated] _sum[State:Fault Ess L:5001 W Grid:-8289 W Production:5009 W Consumption:-3288 W] charger0[L:5009 W] ess0[SoC:UNDEFINED|L:5001 W|On-Grid|Allowed:0;5053 W|State:INFO: Communication failure] meter0[L:-8289 W]
15.5.2025, 13:54:40
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _componentManager[Defective:io0[Missing Bundle]|State:FAULT: A configured OpenEMS Component was not activated] _sum[State:Fault Ess L:5053 W Grid:-8295 W Production:5001 W Consumption:-3242 W] charger0[L:5001 W] ess0[SoC:UNDEFINED|L:5053 W|On-Grid|Allowed:0;5028 W|State:INFO: Communication failure] meter0[L:-8295 W]
15.5.2025, 13:54:39
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _componentManager[Defective:io0[Missing Bundle]|State:FAULT: A configured OpenEMS Component was not activated] _sum[State:Fault Ess L:5028 W Grid:-8302 W Production:5053 W Consumption:-3274 W] charger0[L:5053 W] ess0[SoC:UNDEFINED|L:5028 W|On-Grid|Allowed:0;5041 W|State:INFO: Communication failure] meter0[L:-8302 W]
15.5.2025, 13:54:38
INFO
io.openems.edge.controller.debuglog.ControllerDebugLogImpl
[ctrlDebugLog0] _componentManager[Defective:io0[Missing Bundle]|State:FAULT: A configured OpenEMS Component was not activated] _sum[State:Fault Ess L:5041 W Grid:-8307 W Production:5028 W Consumption:-3266 W] charger0[L:5028 W] ess0[SoC:UNDEFINED|L:5041 W|On-Grid|Allowed:0;5021 W|State:INFO: Communication failure] meter0[L:-8307 W]

Ich denke, das ist plausibel, denn die Komponente gibt es ja gar nicht im aktuellen Released Build, oder ? Ist mein Verständnis da richtig ?

Gruß
ThommyTheKid

Ja, das ist Korrekt !

Gibt es denn eine Chance, dass sie doch noch released wird ?

Gruß

Keine Ahnung, ich bin kein Maintainer von OpenEMS, dazu müsstest du @stefan.feilmeier fragen, ABER ich denke, dass die Implementierung noch ein bisschen zu “unsauber” ist.

Grüße !

Hallo,

nur um das Thema erstmal abzuschließen: ich habe ja einen EASTROM SDM630 über das Waveshare RS485/TCP Gateway als Wärmepumpenzähler mit Consumption_Metered in meinem
OpenEMS drin. Jetzt hab ich mal die WW Bereitung der WP eingeschaltet, dass sichtbarer Verbrauch da ist und dann die Komponente testweise mal auf Production umgestellt. Und siehe da, er hat den Verbrauch der WP als Solarerzeugung dargestellt ! Wie erwartet !

Ich gehe davon aus, dass er wenn ich nochmal so einen EASTRON SDM630 zwischen dem FI
der Hoymiles und dem Einspeisepunkt installiere, ich es damit hinbekommen kann, dass er die Production zur Messung des Goodwe Grid Meters hinzuzählt und bei den PV Panels dann die Summe anzeigt ? Ist meine Denke korrekt ?
Bei dem Goodwe Grid Meter gebe ich nämlich nicht Production oder so an sondern INTEGRATED METER…

Gruß
ThommyTheKid

Ja, auch das ist korrekt. Leichter ist es natürlich nach wie vor mit der OpenDTU