NEWS
[HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)
-
@chris-m said in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@all gibt es irgend ein Register was mir diesen Wert zurück liefert?
Nein, das Register gibt es nicht. Aber Du kannst den Eigenverbrauch einfach berechnen indem Du "Active Power Inverter" Minus "Active Power Meter" rechnest. Also Eigenverbrauch = Erzeugung - Einspeisung. Bei Netzbezug ist die Einspeisung negativ, daher gilt dieselbe Formel auch für Netzbezug.

Das geht aber nicht so ohne weiteres, da die beiden Werte vom Wechselrichter/Dongle nicht genau gleichzeitig gesendet werden. Daher gibt es zwischen den Werten einen Zeitverzug von 1-2 Sekunden. Das macht dummerweise einen riesen Unterschied für den Fall, das sich die Sonneneinstrahlung stark ändert.
Lösung: Man summiert die Erzeugung und die Einspeisung ein paar Sekunden lang auf (z.B. 20 Sekunden lang) und bildet dann den Mittelwert. Das geht mit Listen. Die beiden Mittelwerte kann man dann voneinander abziehen.
Ich hänge mal meinen Blockly-Export dafür hier rein, aber Achtung, das ist ziemlich unübersichtlich weil es "gewachsen" ist. Heute würde ich das bestimmt sauberer aufschreiben.Ich habe mir dein Script mal angesehen.
Wie kommst du an den Wert 03_Gesamtverbrauch_gepuffert!?!?
Ich hab alles durchgesehen, finde aber nichts wo du diesen Wert berechnest und in einen Datenpunkt schreibst.
-
Ich habe mir dein Script mal angesehen.
Wie kommst du an den Wert 03_Gesamtverbrauch_gepuffert!?!?
Ich hab alles durchgesehen, finde aber nichts wo du diesen Wert berechnest und in einen Datenpunkt schreibst.
@oliwit82 Ich musste auch recht lange suchen :)
Aber hier ist der Screenshot:
Das läuft in einem 20 Sekunden Timer:
Hier nochmal das ganze Blockly:
blockly_strom.txt -
@badsnoopy667 So hab jetzt einiges am laufen verstehe aber nicht warum ich hier keine Daten bekomme
Vielleicht kannst du mir dabei helfen, und im Vorfeld schonmal ein dickes Dankeschön
@zizu29 Ich verstehe leider Deine Frage nicht komplett. Was funktioniert denn genau nicht? Und was heißt "einiges am laufen"? Bekommst Du überhaupt irgendwelche Daten vom Wechselrichter, oder gar keine?
-
Hi, ich hab nen SUN2000-10-KTL M1 HC (13,5A).
Was mir fehlt ist vom LUNA2000 Speicher die Anzeige wieviel % er aktuell noch geladen ist, kann man sich den Wert auch irgendwie ziehen?Edit: Hat sich erledigt, hatte das 3sek Interval aus dem Script nicht aktiviert :)
-
@zizu29 Ich verstehe leider Deine Frage nicht komplett. Was funktioniert denn genau nicht? Und was heißt "einiges am laufen"? Bekommst Du überhaupt irgendwelche Daten vom Wechselrichter, oder gar keine?
@badsnoopy667 Ja ich bekomme daten vom Wechselrichter, was ich nicht hin bekomme, bzw. keine Werte erhalt ist im flow ganz unten bei Battery die Werte "Battery Power und Battery_SOC
-
Hi, ich hab nen SUN2000-10-KTL M1 HC (13,5A).
Was mir fehlt ist vom LUNA2000 Speicher die Anzeige wieviel % er aktuell noch geladen ist, kann man sich den Wert auch irgendwie ziehen?Edit: Hat sich erledigt, hatte das 3sek Interval aus dem Script nicht aktiviert :)
-
@zizu29 sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@atifan Ich habe das gleiche Problem, welchen 3 Sek. Interval hast du da aktiviert ?
ganz am Ende die

-
Vielen, vielen Dank für diesen Thread und den NodeRed Flow! Endlich bekomme ich Zugriff auf die aktuellen Daten meines sch... Huawei Sun Inverters!
Da habe ich lange nach gesucht und rumprobiert. Der Modbus-TCP Adapter von ioBroker geht nicht. Die Verbindung vom SDongle zur Fusionsolar-Webseite bricht bei mir mehrmals täglich für 1-3 Stunden weg. Ausserdem erlaubt die API zu Fusionsolar nur alle paar Minuten ein Abholen der Daten, sonst macht Fusionsolar zu, weil man zu oft pollt.
Jetzt habe ich eigentlich nur noch ein Problem: wie interpretiere ich die Werte? Ich habe bisher keine vernünftige Erklärung für so Begriffe wie "Inverter.Active_Power", "Inverter.Input_Power", "Meter.Active_Power", "Battery_Power" gefunden. Und nicht jeder ist ein Solaranlagen-Profi, denen diese Dinge wahrscheinlich geläufig sind.
Ein paar Dinge kann ich mir anhand der Daten und dem Vergleich mit dem Überblick der Energieflüsse in der Fusionsolar-App ungefähr zusammenreimen. Aber ich wüsste es dennoch gerne einmal genau.
Ich liste mal auf, was ich mir so denke:
-
Meter.Active_Power: Bezug oder Einspeisung vom/zum Versorger in Watt. Positive Werte = Bezug, negative Werte = Einspeisung
-
Inverter.Active_Power: aktuelle Einspeisung des Inverters in das Hausnetz (also die aktuelle "Leistung" des Hauses) in Watt, Addition aus PV Erzeugung und ggf. Batterie-Entladung (auch Meter.Active_Power positive Werte?)
-
Inverter.Input_Power: aktuelle Leistung vom "Dach" in Watt
-
Battery_Power: aktuelle Leistung an der Batterie in Watt, negative Zahlen = Batterie wird entladen, positive Zahlen = Batterie wird geladen
-
Battery_SOC: ist klar, der Ladezustand in %
-
PV1_Voltage und PV1_Current: aktuelle Spannung und Strom von String 1, U * I = P, somit ergibt sich daraus, wieviel Leistung String 1 aktuell liefert in Watt
-
PV2_... wie PV1, nur für String 2
Gerne Anmerkungen und Hilfe/Erläuterungen und Korrekturen! Und was es sonst noch für interessante Modbus-Register im Sun200 gibt.
Viele Grüße
Dirk -
-
Vielen, vielen Dank für diesen Thread und den NodeRed Flow! Endlich bekomme ich Zugriff auf die aktuellen Daten meines sch... Huawei Sun Inverters!
Da habe ich lange nach gesucht und rumprobiert. Der Modbus-TCP Adapter von ioBroker geht nicht. Die Verbindung vom SDongle zur Fusionsolar-Webseite bricht bei mir mehrmals täglich für 1-3 Stunden weg. Ausserdem erlaubt die API zu Fusionsolar nur alle paar Minuten ein Abholen der Daten, sonst macht Fusionsolar zu, weil man zu oft pollt.
Jetzt habe ich eigentlich nur noch ein Problem: wie interpretiere ich die Werte? Ich habe bisher keine vernünftige Erklärung für so Begriffe wie "Inverter.Active_Power", "Inverter.Input_Power", "Meter.Active_Power", "Battery_Power" gefunden. Und nicht jeder ist ein Solaranlagen-Profi, denen diese Dinge wahrscheinlich geläufig sind.
Ein paar Dinge kann ich mir anhand der Daten und dem Vergleich mit dem Überblick der Energieflüsse in der Fusionsolar-App ungefähr zusammenreimen. Aber ich wüsste es dennoch gerne einmal genau.
Ich liste mal auf, was ich mir so denke:
-
Meter.Active_Power: Bezug oder Einspeisung vom/zum Versorger in Watt. Positive Werte = Bezug, negative Werte = Einspeisung
-
Inverter.Active_Power: aktuelle Einspeisung des Inverters in das Hausnetz (also die aktuelle "Leistung" des Hauses) in Watt, Addition aus PV Erzeugung und ggf. Batterie-Entladung (auch Meter.Active_Power positive Werte?)
-
Inverter.Input_Power: aktuelle Leistung vom "Dach" in Watt
-
Battery_Power: aktuelle Leistung an der Batterie in Watt, negative Zahlen = Batterie wird entladen, positive Zahlen = Batterie wird geladen
-
Battery_SOC: ist klar, der Ladezustand in %
-
PV1_Voltage und PV1_Current: aktuelle Spannung und Strom von String 1, U * I = P, somit ergibt sich daraus, wieviel Leistung String 1 aktuell liefert in Watt
-
PV2_... wie PV1, nur für String 2
Gerne Anmerkungen und Hilfe/Erläuterungen und Korrekturen! Und was es sonst noch für interessante Modbus-Register im Sun200 gibt.
Viele Grüße
Dirk -
-
@chris-m said in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@all gibt es irgend ein Register was mir diesen Wert zurück liefert?
Nein, das Register gibt es nicht. Aber Du kannst den Eigenverbrauch einfach berechnen indem Du "Active Power Inverter" Minus "Active Power Meter" rechnest. Also Eigenverbrauch = Erzeugung - Einspeisung. Bei Netzbezug ist die Einspeisung negativ, daher gilt dieselbe Formel auch für Netzbezug.

Das geht aber nicht so ohne weiteres, da die beiden Werte vom Wechselrichter/Dongle nicht genau gleichzeitig gesendet werden. Daher gibt es zwischen den Werten einen Zeitverzug von 1-2 Sekunden. Das macht dummerweise einen riesen Unterschied für den Fall, das sich die Sonneneinstrahlung stark ändert.
Lösung: Man summiert die Erzeugung und die Einspeisung ein paar Sekunden lang auf (z.B. 20 Sekunden lang) und bildet dann den Mittelwert. Das geht mit Listen. Die beiden Mittelwerte kann man dann voneinander abziehen.
Ich hänge mal meinen Blockly-Export dafür hier rein, aber Achtung, das ist ziemlich unübersichtlich weil es "gewachsen" ist. Heute würde ich das bestimmt sauberer aufschreiben.@badsnoopy667 Danke das du dein Blockly zur Verfügung stellst, Welche datenpunkte hast du zusätzlich erstellt, hast du da evtl. eine Liste oder screenshot?
Und Danke für die Unterstützung
-
@badsnoopy667 Danke das du dein Blockly zur Verfügung stellst, Welche datenpunkte hast du zusätzlich erstellt, hast du da evtl. eine Liste oder screenshot?
Und Danke für die Unterstützung
@zizu29
Ich bin gerade im Urlaub. Ich suche das nächste Woche mal raus. Aber die Beschreibung der Datenpunkte oben passt schon ganz gut! -
Hallo ich habe den Node Red Adapter und das Flow wie die npms installiert laut dieser Anleitung aber leider bekomm ich einen Fehler und ich bin Neuling beim Node Red. Die Datenpunkte kommen alle nur dieser Error macht mir sorgen weil der Iobroker sich über die Nacht neu installiert alles von neu anfangt. Ich danke für jede Unterstützung.
2023-04-13 20:16:45.802 - error: node-red.0 (16278) 13 Apr 20:16:45 - [error] [modbus-getter:32016] Error: Modbus exception 6: Slave device busy (retry request again later)
Aber eins muss ich noch sagen tolle Arbeit wird da geleistet!
-
Bei mir läuft das ganze seit einigen Wochen absolut Top und viel besser als solaranzeige.
Ich hab nur ein kleines Problem im ioBroker Log:
Das hatte ich auch bei anderen Objekten die geschrieben wurde aber da konnte ich es anpassen in dem ich im Flow oder im ioBroker Objekt den Typ des Objekts angepasst habe. Aber bei dem Objekt bekomm ich es nicht weg. Hat jemand ne Idee?
-
Bei mir läuft das ganze seit einigen Wochen absolut Top und viel besser als solaranzeige.
Ich hab nur ein kleines Problem im ioBroker Log:
Das hatte ich auch bei anderen Objekten die geschrieben wurde aber da konnte ich es anpassen in dem ich im Flow oder im ioBroker Objekt den Typ des Objekts angepasst habe. Aber bei dem Objekt bekomm ich es nicht weg. Hat jemand ne Idee?
-
@atifan Hab ja geschrieben, dass ich das schon gefühlt x mal gemacht habe und es bei den anderen Datenpunkten auch funktioniert hat. Hab's jetzt noch mal geändert. ;)
-
Bei mir läuft das ganze seit einigen Wochen absolut Top und viel besser als solaranzeige.
Ich hab nur ein kleines Problem im ioBroker Log:
Das hatte ich auch bei anderen Objekten die geschrieben wurde aber da konnte ich es anpassen in dem ich im Flow oder im ioBroker Objekt den Typ des Objekts angepasst habe. Aber bei dem Objekt bekomm ich es nicht weg. Hat jemand ne Idee?
-
@firebowl Wenn Du meinen Flow nicht nimmst - mache eine JSON Node vor die iobroker-Out Node - die stringifiziert Dein Objekt wieder zu einem String.
-
@mickym Ich benutze den Flow aus dem ersten Post hier, ist das deiner?
Ansonsten hab ich leider absolut keine Ahnung von node-red, benutze ich nur für den WR und sonst für nix..:sweat_smile:@firebowl sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@mickym Ich benutze den Flow aus dem ersten Post hier, ist das deiner?
Ansonsten hab ich leider absolut keine Ahnung von node-red, benutze ich nur für den WR und sonst für nix..:sweat_smile:Nein, ist nicht von mir. Aber du solltest doch die iobroker-out Node finden, die dir diesen Datenpunkt schreibt. Das ist so eine blaue Node auf der rechten Seite und das Topic zeigt auf den Datenpunkt. Und vor diese Node klemmst du eine JSON Node.
Ansonsten ist es natürlich schade, dass du dich nicht mit diesem tollen Tool beschäftigst. So mancher ehemalige Blockly Fan wird Dir das bestätigen. ;)
