Seite 11 von 12

Re: Rückmeldungen 2.1.7 Alpha 1

Verfasst: Sa Jan 11, 2025 5:13 pm
von StrayCat
LutzB hat geschrieben: Do Jan 09, 2025 6:47 pm Danke für die Rückmeldung. Merge ich dann morgen mit der Textanpassung in den Master.
Danke, dass du dich darum gekümmert hast. Ich habe leider noch einen Punkt:
Ich vermute, dass Sungrow das Register, welches ihr die die aktuelle Leistung auslest, auch angepasst hat. Meine Vermutung (nicht bestätigt!) ist, dass Sungrow hier den kompletten Energiefluss in und aus den Wechselrichter heraus abbildet.

Wie komme ich darauf? Wenn die Anlage nichts produziert (Sonne ist untergegangen), dann zeigt OpenWB eine Solarleistung von ~ -50W an (Siehe Anhang)
2025-01-11 18_01_48-openWB.png
(5.43 KiB) Noch nie heruntergeladen
Man kann sehen, dass die Bilanz insgesamt passt. Wenn man die negative Solarleistung mit dem Hausverbrauch (auch negativ) summiert und dann dagegen die Leistung aus der Batterie sowie den Netzbezug positiv rechnet, dann kommt in Summe 0 aus.

Meiner Meinung nach sollte hier aber angepasst werden: Ich vermute, dass die negative Solarleistung den Ertragszähler "rückwärts drehen" lässt. Dies ist nur eine Vermutung, kann ich bisher nichts zu sagen.
M.E. nach gehört die negative Solarleistung mit in den Hausverbrauch eingerechnet.

Ich habe hier ein Log aus dem main.log hinterlegt. Ich vermute aber, dass die Werte irgendwo intern in OpenWB gebildet werden, denn im Main.log habe ich nur die "Ergebnisse" gesehen, die dann auch in der Oberfläche angezeigt werden.

https://paste.openwb.de/fFsiDYBuA2rvE4F

Re: Rückmeldungen 2.1.7 Alpha 1

Verfasst: Sa Jan 11, 2025 5:20 pm
von seaspotter
StrayCat hat geschrieben: Sa Jan 11, 2025 5:13 pm
Danke, dass du dich darum gekümmert hast. Ich habe leider noch einen Punkt:
Ich vermute, dass Sungrow das Register, welches ihr die die aktuelle Leistung auslest, auch angepasst hat. Meine Vermutung (nicht bestätigt!) ist, dass Sungrow hier den kompletten Energiefluss in und aus den Wechselrichter heraus abbildet.

Wie komme ich darauf? Wenn die Anlage nichts produziert (Sonne ist untergegangen), dann zeigt OpenWB eine Solarleistung von ~ -50W an (Siehe Anhang)
2025-01-11 18_01_48-openWB.png

Man kann sehen, dass die Bilanz insgesamt passt. Wenn man die negative Solarleistung mit dem Hausverbrauch (auch negativ) summiert und dann dagegen die Leistung aus der Batterie sowie den Netzbezug positiv rechnet, dann kommt in Summe 0 aus.

Meiner Meinung nach sollte hier aber angepasst werden: Ich vermute, dass die negative Solarleistung den Ertragszähler "rückwärts drehen" lässt. Dies ist nur eine Vermutung, kann ich bisher nichts zu sagen.
M.E. nach gehört die negative Solarleistung mit in den Hausverbrauch eingerechnet.

Ich habe hier ein Log aus dem main.log hinterlegt. Ich vermute aber, dass die Werte irgendwo intern in OpenWB gebildet werden, denn im Main.log habe ich nur die "Ergebnisse" gesehen, die dann auch in der Oberfläche angezeigt werden.

https://paste.openwb.de/fFsiDYBuA2rvE4F
Das ist aber korrekt so, der Sungrow WR gibt seinen Eigenverbrauch als Leistung aus, das ist kein Fehler, siehe u.A. auch hier: viewtopic.php?p=118702#p118702
Manche WR (meist die Hybriden) machen das, einige eben nicht.

Re: Rückmeldungen 2.1.7 Alpha 1

Verfasst: Sa Jan 11, 2025 5:32 pm
von seaspotter
Hier auch nochmal einen passenden Screenshot wo du das siehst, Status aus openWB und iSolarCloud mit Livedaten des SH10RT und der aktuellen Wirkleistung
sh10rt_Wirkleistung.png
(71.18 KiB) Noch nie heruntergeladen

Re: Rückmeldungen 2.1.7 Alpha 1

Verfasst: Sa Jan 11, 2025 6:59 pm
von StrayCat
seaspotter hat geschrieben: Sa Jan 11, 2025 5:20 pm Das ist aber korrekt so, der Sungrow WR gibt seinen Eigenverbrauch als Leistung aus, das ist kein Fehler, siehe u.A. auch hier: viewtopic.php?p=118702#p118702
Manche WR (meist die Hybriden) machen das, einige eben nicht.
Das was ich sagen möchte ist, dass die Anzeige m.E. nach in OpenWB falsch ist. So wie ich das UI verstehe zeigt das grüne Feld mit dem Solarmodul an, welche PV-Leistung bereitgestellt wird. Dies wird ja dann auch zur Überschussberechnung herangezogen.

Der WR hat einen Eigenverbrauch, das ist schon klar. Wenn Sungrow sich jetzt dazu entschlossen hat, den in dem Wirkleistungsregister auch anzuzeigen ist das auch fine. Aber der gehört meines Erachtens nach in den Hausverbrauch eingerechnet. Denn wenn der Wechselrichter Strom produziert und einspeist, dann bedient er sich an der selbst produzierten Energie. Entsprechend taucht der Eigenverbrauch des WR nirgends auf. Es resultiert nur darin, dass er entsprechend die ~50W weniger als PV-Produktion meldet.

Wenn er nichts produziert, dann muss er bedient werden. Wenn die Batterie leer ist sogar aus dem Netz. Entsprechend kommt meine Meinung zustande :)

Wenn das in OpenWB so bleiben soll, wie es jetzt ist, dann ist mir das auch recht. Dann würde ich nur den Fehler melden, dass der Wert als Absolutwert in die MQTT-Brücke kommt. Ich habe eine MQTT-Brücke zu Homeassistant. Dort kommt der Wert positiv an. Siehe Screenshot.

Re: Rückmeldungen 2.1.7 Alpha 1

Verfasst: Sa Jan 11, 2025 7:30 pm
von seaspotter
StrayCat hat geschrieben: Sa Jan 11, 2025 6:59 pm Der WR hat einen Eigenverbrauch, das ist schon klar. Wenn Sungrow sich jetzt dazu entschlossen hat, den in dem Wirkleistungsregister auch anzuzeigen ist das auch fine. Aber der gehört meines Erachtens nach in den Hausverbrauch eingerechnet. Denn wenn der Wechselrichter Strom produziert und einspeist, dann bedient er sich an der selbst produzierten Energie. Entsprechend taucht der Eigenverbrauch des WR nirgends auf. Es resultiert nur darin, dass er entsprechend die ~50W weniger als PV-Produktion meldet.

Wenn er nichts produziert, dann muss er bedient werden. Wenn die Batterie leer ist sogar aus dem Netz. Entsprechend kommt meine Meinung zustande :)
In meiner 2. Antwort mit dem Screenshot von openWB und aus der iSolarCloud siehst du das ja aber das das nicht von openWB kommt, sondern Sungrow das schon so schickt als negative Wirkleistung.
StrayCat hat geschrieben: Sa Jan 11, 2025 6:59 pm Wenn das in OpenWB so bleiben soll, wie es jetzt ist, dann ist mir das auch recht. Dann würde ich nur den Fehler melden, dass der Wert als Absolutwert in die MQTT-Brücke kommt. Ich habe eine MQTT-Brücke zu Homeassistant. Dort kommt der Wert positiv an. Siehe Screenshot.
Das ist aber auch korrekt, da eine PV Erzeugung als negativer Wert übermittelt wird, ich hab selbst eine MQTT Brücke, die Power ist bei Erzeugung negativ und bei Eigenverbrauch in der Nacht ist er positiv, ist m.E. also alles korrekt so :)

Re: Rückmeldungen 2.1.7 Alpha 1

Verfasst: Sa Jan 11, 2025 10:09 pm
von seaspotter
LutzB hat geschrieben: Do Jan 09, 2025 6:47 pm Danke für die Rückmeldung. Merge ich dann morgen mit der Textanpassung in den Master.
Hallo Lutz,

mir ist noch etwas aufgefallen als ich heute durch Zufall diesen Beitrag gefunden habe viewtopic.php?p=121271&hilit=sungrow#p121271)
Die eingepflegte Änderung von dir funktioniert bei mir, weil ich zum einen den LAN Port am Sungrow Hybrid nehme und die neue Firmware habe. Ich habe jetzt aber testweise mal auf den WinetS Modbus Abruf (also Version SH_winet_dongle) umgestellt und da funktioniert es nicht. Das liegt daran das das Firmware Update ausschließlich für den Hybrid zählt und nicht für den WinetS. Ich habe das durch Modbus Abfragen verifiziert, beim WinetS ist die Batterieleistung 13021 nachwievor auch Uint_16 ohne Vorzeichen.

Von daher gelten meines Erachtens folgende Bedingungen:
- IF Firmware.v2 AND Version.SH THEN

Code: Alles auswählen

bat_power = self.__tcp_client.read_input_registers(13021, ModbusDataType.INT_16, unit=unit) * -1
- ELSE "der alte Code", das gilt dann für
-- Firmware.v2 und Version.SH_winet_dongle
-- Firmware.v1 und Version.SH
-- Firmware.v1 und Version.SH_winet_dongle

Es gibt jetzt aber noch ein Punkt wo ich glaub das der restliche Code auch ein kleines "Problem" hat, was wieder mit dem Eingangs erwähnten anderen Post zu tun hat. Wenn ich auf WinetS umstelle, dann wird die Zwangsladung als Entladung angezeigt und PV Leistung wird auch angezeigt. Bei Auslesung über den SH Lan Port aber nicht. Das hängt glaube ich mit folgendem Code-Teil zusammen:

Code: Alles auswählen

# Beim WiNet S-Dongle fehlt das Register für das Vorzeichen der Speicherleistung
            if self.device_config.configuration.version == Version.SH_winet_dongle:
                total_power = self.__tcp_client.read_input_registers(13033, ModbusDataType.INT_32,
                                                                     wordorder=Endian.Little, unit=unit)
                pv_power = self.__tcp_client.read_input_registers(5016, ModbusDataType.UINT_32,
                                                                  wordorder=Endian.Little, unit=unit)

                # Ist die Gesamtleistung des WR größer als die PV-Erzeugung wird der Speicher entladen
                if total_power > pv_power:
                    bat_power = bat_power * -1
Habe mal zwangsgeladen, da wird 13033 also total_power negativ auf -550W (500W Zwangsladung) und 5016 also pv_power bleibt bei 0 (weil Nacht ist). Das heißt er dreht das Vorzeichen nicht um.
iob_Zwangsladung.png
(192.63 KiB) Noch nie heruntergeladen
Würde es nicht vielleicht besser funktionieren wenn der oben zitierte Code weg kommt und die Unterscheidung rein über das Register 13000 gemacht wird? Also den Code:
resp = self.__tcp_client._delegate.read_input_registers(13000, 1, unit=unit)
binary = bin(resp.registers[0])[2:].zfill(8)
if binary[5] == "1":
bat_power = bat_power * -1
Sungrow schreibt ja in das Register sowohl die Entladung als auch die Ladung. Bei Entladung ist Bit2 ==1 und bei Ladung ist Bit1 ==1. Damit könnte man die bat_power sauber steuern ob entladen oder geladen wird bei den anderen Versionen und Firmwares.

Auszug aus dem Sungrow Modbus Register:
sungrow_powerflow_status.png
(100.02 KiB) Noch nie heruntergeladen
Das habe ich auch mal verifiziert. Wenn Batterie weder geladen noch entladen wird gibt das Register als Decimal 40 aus, bei Ladung 42 und bei Entladung 44 (Nacht ohne weitere Erzeugung).

Stelle mich auch gerne zur Verfügung das zu testen :)

Re: Rückmeldungen 2.1.7 Alpha 1

Verfasst: So Jan 12, 2025 10:25 am
von StrayCat
seaspotter hat geschrieben: Sa Jan 11, 2025 7:30 pm Das ist aber auch korrekt, da eine PV Erzeugung als negativer Wert übermittelt wird, ich hab selbst eine MQTT Brücke, die Power ist bei Erzeugung negativ und bei Eigenverbrauch in der Nacht ist er positiv, ist m.E. also alles korrekt so :)
Ah ja, das habe ich übersehen. Dann bin ich fine damit, ich rechne mir das dann in HA so zurecht, wie ich es haben möchte.

Danke

Re: Rückmeldungen 2.1.7 Alpha 1

Verfasst: Mo Jan 13, 2025 11:28 am
von Frank-H
Master vom 10.1.25, 15:12 Uhr
Ladung startete mit Zielladen 3-phasig. Als ich dann auf PV-Überschuß umgeschaltet habe, wurde trotzdem mit ca. 13 A dreiphasig weitergeladen, obwohl nur ca. 3,5 kw PV-Überschuss verfügbar war. Der Rest kam aus dem Netz/Speicher.
Die Ladung konnte nur mit Stop beendet werden.

Weitere Auffälligkeit: Nachdem ich nach Stop wieder auf PV umgeschaltet hatte, startete die Ladung wieder dreiphasig, um nach kurzer Zeit zu stoppen und einphasig wieder zu starten. Ich dachte, das sei durch eine Vorversion schon behoben worden.

Hier das Log:

https://paste.openwb.de/VpdOF4zAY27Xvm3

Re: Rückmeldungen 2.1.7 Alpha 1

Verfasst: Mo Jan 13, 2025 11:49 am
von LutzB
seaspotter hat geschrieben: Sa Jan 11, 2025 10:09 pm Die eingepflegte Änderung von dir funktioniert bei mir, weil ich zum einen den LAN Port am Sungrow Hybrid nehme und die neue Firmware habe. Ich habe jetzt aber testweise mal auf den WinetS Modbus Abruf (also Version SH_winet_dongle) umgestellt und da funktioniert es nicht. Das liegt daran das das Firmware Update ausschließlich für den Hybrid zählt und nicht für den WinetS. Ich habe das durch Modbus Abfragen verifiziert, beim WinetS ist die Batterieleistung 13021 nachwievor auch Uint_16 ohne Vorzeichen.

Von daher gelten meines Erachtens folgende Bedingungen:
- IF Firmware.v2 AND Version.SH THEN

Code: Alles auswählen

bat_power = self.__tcp_client.read_input_registers(13021, ModbusDataType.INT_16, unit=unit) * -1
- ELSE "der alte Code", das gilt dann für
-- Firmware.v2 und Version.SH_winet_dongle
-- Firmware.v1 und Version.SH
-- Firmware.v1 und Version.SH_winet_dongle
Die Anpassung habe ich noch mit rein genommen.
seaspotter hat geschrieben: Sa Jan 11, 2025 10:09 pm Es gibt jetzt aber noch ein Punkt wo ich glaub das der restliche Code auch ein kleines "Problem" hat, was wieder mit dem Eingangs erwähnten anderen Post zu tun hat. Wenn ich auf WinetS umstelle, dann wird die Zwangsladung als Entladung angezeigt und PV Leistung wird auch angezeigt. Bei Auslesung über den SH Lan Port aber nicht. Das hängt glaube ich mit folgendem Code-Teil zusammen:

Code: Alles auswählen

# Beim WiNet S-Dongle fehlt das Register für das Vorzeichen der Speicherleistung
            if self.device_config.configuration.version == Version.SH_winet_dongle:
                total_power = self.__tcp_client.read_input_registers(13033, ModbusDataType.INT_32,
                                                                     wordorder=Endian.Little, unit=unit)
                pv_power = self.__tcp_client.read_input_registers(5016, ModbusDataType.UINT_32,
                                                                  wordorder=Endian.Little, unit=unit)

                # Ist die Gesamtleistung des WR größer als die PV-Erzeugung wird der Speicher entladen
                if total_power > pv_power:
                    bat_power = bat_power * -1
Habe mal zwangsgeladen, da wird 13033 also total_power negativ auf -550W (500W Zwangsladung) und 5016 also pv_power bleibt bei 0 (weil Nacht ist). Das heißt er dreht das Vorzeichen nicht um.
iob_Zwangsladung.png

Würde es nicht vielleicht besser funktionieren wenn der oben zitierte Code weg kommt und die Unterscheidung rein über das Register 13000 gemacht wird? Also den Code:
resp = self.__tcp_client._delegate.read_input_registers(13000, 1, unit=unit)
binary = bin(resp.registers[0])[2:].zfill(8)
if binary[5] == "1":
bat_power = bat_power * -1
Sungrow schreibt ja in das Register sowohl die Entladung als auch die Ladung. Bei Entladung ist Bit2 ==1 und bei Ladung ist Bit1 ==1. Damit könnte man die bat_power sauber steuern ob entladen oder geladen wird bei den anderen Versionen und Firmwares.

Auszug aus dem Sungrow Modbus Register:

sungrow_powerflow_status.png

Das habe ich auch mal verifiziert. Wenn Batterie weder geladen noch entladen wird gibt das Register als Decimal 40 aus, bei Ladung 42 und bei Entladung 44 (Nacht ohne weitere Erzeugung).

Stelle mich auch gerne zur Verfügung das zu testen :)
Dann stell doch bitte einen PR. Den merge ich gerne in einen eigenen Feature-Branch, der dann auch in den Systemeinstellungen ausgewählt werden kann. So blind programmieren ohne Testmöglichkeit mag ich nicht. :?

Re: Rückmeldungen 2.1.7 Alpha 1

Verfasst: Mo Jan 13, 2025 4:02 pm
von seaspotter
LutzB hat geschrieben: Mo Jan 13, 2025 11:49 am Die Anpassung habe ich noch mit rein genommen.
Vielen Dank
LutzB hat geschrieben: Mo Jan 13, 2025 11:49 am Dann stell doch bitte einen PR. Den merge ich gerne in einen eigenen Feature-Branch, der dann auch in den Systemeinstellungen ausgewählt werden kann. So blind programmieren ohne Testmöglichkeit mag ich nicht. :?
Okay, verstanden aber dazu bin ich leider nicht in der Lage. Ich kann grob nachvollziehen was im Code passiert und beschreiben wie es richtig gehört und gerne auch testen, aber selbst nen PR stellen und Code erzeugen der auch funktioniert und was damit zusammenhängt, das kann ich leider nicht :) Auch wenn ich es gerne könnte und auch für den Sungrow die Speichersteuerung etwas beisteuern, aber das schaff ich leider nur in Worten nicht in Codezeilen. :)