NEWS
[HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)
-
Was sind denn das für Adressen? Ich finde die gar nicht in den Modbus Register Auflistungen von Huawei.
Edit: okay, das sind Register vom Dongle, nicht vom Wechselrichter selbst. Vielleicht sendet der Dongle einfach seltener? Hast du die UnitID 100 eingetragen für diese Register? Das hat hier im Thread jemand geschrieben.
@badsnoopy667
Die beziehen sich wahrscheinlich auf den Dongle.
Die 4 Werte sind identisch mit FusionSolar und wären für mich perfekt, wenn sie nur öfters aktualisiert würden. -
Was sind denn das für Adressen? Ich finde die gar nicht in den Modbus Register Auflistungen von Huawei.
Edit: okay, das sind Register vom Dongle, nicht vom Wechselrichter selbst. Vielleicht sendet der Dongle einfach seltener? Hast du die UnitID 100 eingetragen für diese Register? Das hat hier im Thread jemand geschrieben.
@badsnoopy667
Ja das habe ich. Andere UnitID haben gar nicht funktioniert.
Wie bringe ich dem Dongle bei öfters zu senden ??Ein Beispiel:
- 37001 (Luna2000) sendet im Sekunden Takt
- 37504 (Dongle) sendet ca. alle 5 Min.
Beide beziehen identische Werte. ( Battery Power )
-
@badsnoopy667
Moin Moin,
ich hänge gerade dabei meinen ktl30-m3 und den Dongle in den iobroker zu bekommen.
Anscheinend bekomme ich jedoch keine Verbindung, und ehrlich, ich bin mir nicht sicher, welche Einstellungen in Fusion solar gemacht werden müssen. Kannst du deine vielleicht mal posten?Gruß und Danke
node-red.0 2022-03-08 09:51:01.663 warn 8 Mar 08:51:01 - [warn] [modbus-client:WLAN-FE] Client -> fsm init in 2000 ms TCP@10.10.10.21:502 default Unit-Id: 1 node-red.0 2022-03-08 09:51:01.662 warn 8 Mar 08:51:01 - [warn] [modbus-client:WLAN-FE] Client -> fsm init state after reconnecting TCP@10.10.10.21:502 default Unit-Id: 1 node-red.0 2022-03-08 09:50:59.661 warn 8 Mar 08:50:59 - [warn] [modbus-client:WLAN-FE] Client -> fsm reconnect state after closed Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1 node-red.0 2022-03-08 09:50:59.660 warn 8 Mar 08:50:59 - [warn] [modbus-client:WLAN-FE] Client -> fsm failed state after sending Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1 8 Mar 08:50:59 - [warn] [modbus-client:WLAN-FE] Client -> fsm broken state after failed Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1 node-red.0 2022-03-08 09:50:58.666 warn 8 Mar 08:50:58 - [warn] [modbus-client:WLAN-FE] Client -> fsm broken state after init Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1 node-red.0 2022-03-08 09:50:56.663 warn 8 Mar 08:50:56 - [warn] [modbus-client:WLAN-FE] Client -> fsm init in 2000 ms TCP@10.10.10.21:502 default Unit-Id: 1 node-red.0 2022-03-08 09:50:56.662 warn 8 Mar 08:50:56 - [warn] [modbus-client:WLAN-FE] Client -> fsm init state after reconnecting TCP@10.10.10.21:502 default Unit-Id: 1 node-red.0 2022-03-08 09:50:54.660 warn 8 Mar 08:50:54 - [warn] [modbus-client:WLAN-FE] Client -> fsm broken state after failed Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1 8 Mar 08:50:54 - [warn] [modbus-client:WLAN-FE] Client -> fsm reconnect state after closed Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1 node-red.0 2022-03-08 09:50:54.659 warn 8 Mar 08:50:54 - [warn] [modbus-client:WLAN-FE] Client -> fsm failed state after sending Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1 -
@biervoegelhasso
Wenn Du keinen Akku hast, dann müsste der Wert "Active Power Inverter" Dein PV Ertrag incl. Wirkungsgrad sein. "Input Power" ist mMn der Wert ohne den Abzug vom Wirkungsgrad.
Mit Akku ist "Active Power Inverter" nur noch das, was der Inverter an den Stromkasten liefert, Batterieladung schon abgezogen, bzw. Batterieentladung schon addiert.Dein Grafana ist sehr schön! An Grafana hab ich mich noch nicht rangetraut, nutze noch Flot. Steht aber auf der Liste. Muss aber erstmal rausfinden, wie man das installiert und einrichtet.
Kann man bei Grafana den View Exportieren? Dann könntest Du Deinen View hier als Vorlage vielleicht hochladen?Hallo Zusammen,
vielen Dank ersteinmal für die vielen Informationen, aber ich bin erschlagen.
Ich habe einen folgenden Konfiguration:
8,4 kwp auf dem Dachen
Wechselrichter Huawei SUN2000-8KTL-M1
Akku Huawei Luna2000 10 kwhNode-red läuft bei mir, Modbus ist aktiv und ich bekomme im iobroker auch Daten.
Hat jemand die gleiche Konfig laufen und könnte mir das node-red script zur Verfügung stellen.Ich hätte eigentlich gar nicht so viele technische Daten.
Aktueller Stromverbrauch gesamt
Aktuell erzeugt
Aktuell vom Akku
Aktuell vom Netz
Aktuell von Anlage direkt
Akkustand in % + kwh (ist ja leicht umzurechnen)
Heutiger Ertrag
Heutiger Bezug aus Netzkann mir jemand helfen?
Vielen Dank
Thomas -
@badsnoopy667
Ja das habe ich. Andere UnitID haben gar nicht funktioniert.
Wie bringe ich dem Dongle bei öfters zu senden ??Ein Beispiel:
- 37001 (Luna2000) sendet im Sekunden Takt
- 37504 (Dongle) sendet ca. alle 5 Min.
Beide beziehen identische Werte. ( Battery Power )
@asmm
Das Einzige was mir noch einfällt: Hast Du mal versucht, die Register die so selten aktualisieren in einem komplett separaten Flow (Neue node-red "Datei") abzufragen? Ich meine mir wäre irgendwann mal aufgefallen, dass Werte nur sporadisch kommen, wenn man zu viel auf einmal "durcheinander" abfragt.
Vielleicht hilft es ja... -
Hallo Zusammen,
vielen Dank ersteinmal für die vielen Informationen, aber ich bin erschlagen.
Ich habe einen folgenden Konfiguration:
8,4 kwp auf dem Dachen
Wechselrichter Huawei SUN2000-8KTL-M1
Akku Huawei Luna2000 10 kwhNode-red läuft bei mir, Modbus ist aktiv und ich bekomme im iobroker auch Daten.
Hat jemand die gleiche Konfig laufen und könnte mir das node-red script zur Verfügung stellen.Ich hätte eigentlich gar nicht so viele technische Daten.
Aktueller Stromverbrauch gesamt
Aktuell erzeugt
Aktuell vom Akku
Aktuell vom Netz
Aktuell von Anlage direkt
Akkustand in % + kwh (ist ja leicht umzurechnen)
Heutiger Ertrag
Heutiger Bezug aus Netzkann mir jemand helfen?
Vielen Dank
Thomas@radi71
Ich habe eine Konstellation aus einem KTL30-M3, einem Lesekopf auf dem Stromzähler und einem 28,8KW DIY Akku mit Victron.
Zu den Punkten die du fragst:
Aktueller Stromverbrauch gesamt => Entweder "aktuell" oder "gesamt". Aktuell kann man am Zweirichtungszähler ablesen. Ggf. berechnen.
Aktuell erzeugt => Kommt vom Wechselrichter
Aktuell vom/zum Akku => Kann ich über Node Red aus dem Venus Os (Victron) auslesen. Müsstes du über die entsprechende Modbus Adresse auch vom Huawei bekommen.
Aktuell vom/zum Netz => Ich bekomme es über Tasmota und den Lesekopf am Zähler. Weiß nicht was du hast ggf. einen EM24 einbauen.
Aktuell von Anlage direkt => Kann man über Node Red aus dem Huawei auslesen
Heutiger Ertrag => Über InfuxDB loggen oder sourceanalytix
Heutiger Bezug aus Netz => Über InfuxDB loggen oder sourceanalytixIch berechne dann Anhand der Daten und schreibe das Ganze dann in Datenpunkte.

Das kannst du dann mit Grafana auswerten

-
Achtung: Verbindung mit Modbus Adapter klappt nicht, node-red klappt.
Hier eine Anleitung um den SUN2000 Wechselrichter incl. Batterie und Power Meter per node-red auszulesen und Werte zu schreiben:
1. Wechselrichter korrekt konfigurieren:
Im Wechselrichter muss die Konfiguration per Modbus (TCP) aktiviert sein. Das kann der Installateur direkt erledigen. Alternativ lädt man sich die SUN2000 App auf's Handy und verbindet sich damit über das WLAN des Wechselrichters (also davorstehend im Keller) mit dem WR und stellt das ein. (Unter Kommunikationseinstellungen glaube ich, die Menüs sind ziemlich unübersichtlich mMn.)
Zum Login in die App als Installateur braucht man ein Passwort: 00000a
Eventuell braucht man zum Verbinden auf das WLAN des Wechselrichters auch ein Passwort: Changeme2. Node-Red installieren und Flow importieren:
Man muss im ioBroker node-red installieren. Außerdem muss man in node-red noch drei zusätzliche NPM Module installieren (geht bei den Instanzeinstellungen):
• node-red-contrib-calc
• node-red-contrib-buffer-parser
• node-red-contrib-modbusHat man das erledigt, kann man diesen Flow importieren:
Huawei_SUN2000_node_red_flow_read_write_2023-11.txt
Achtung, weil das hier schon ein paar Mal zu Problemen geführt hat: Man muss die Client-ID in allen Modbus-Nodes korrekt eintragen. Bei mir steht da 2, weil mein Wechselrichter schonmal getauscht wurde. Das muss überall auf den richtigen Wert (meistens 1) geändert werden damit Daten kommen!
Nachdem man den Flow importiert hat muss man ganz rechts im Menü unter "Globale-Konfigurations-Nodes" beim modbus-client noch die IP Adresse vom Wechselrichter und wieder die richtige Client-ID (typischerweise 1) eintragen. (Port ist 502)3. Hinweise:
Dann sollte die Verbindung eigentlich schon funktionieren. Bei mir war dann noch das Problem, das node-red gemeckert hat, dass die Objekte in iobroker nicht existieren in die er schreiben will.
Um das zu fixen habe ich im Flow alle Output-Nodes (die graublauen Boxen rechts) einmal doppeltgeklickt und dort bei "Auto-create --> Create states if not exist" ausgewählt. Dann kann man noch die Einheit und den Typ festlegen und dann werden die States automatisch beim ersten Lesen angelegt. Hierfür ist es erforderlich, dass in den node-red Instanzeinstellungen noch der Hacken bei "Erstellung von Fremd-Objekten zulassen" aktiviert wird.
Zusätzlich habe ich noch den Wert "Readonly --> Object is writeable" gesetzt. K.a. ob das nötig ist, aber ich hatte den Eindruck, dass die Werte sonst nicht korrekt aktualisiert werden.Zum Nachlesen gibt es hier noch die Huawei SUN2000 Modbus Register Übersicht:
Solar Inverter Modbus Interface Definitions V5.pdf (Stand 2023)
Im Flow werden die wichtigsten Größen aber schon abgefragt.4. Modbus-Register schreiben:
Man kann auch Register schreiben! Damit kann man z.B. die Batterie-Entladung auf 0W setzen wenn das eAuto lädt. Damit entlädt sich die Batterie dann nicht unnötig, wenn man das Auto mit Netzstrom lädt im Winter oder Nachts.
Man kann auch TOU (Zeitgesteuertes Laden) aktivieren. Damit kann man wenn man Tibber oder Awattar nutzt zu den günstigen Stunden den Akku aufladen. Um die günstigsten Stunden auszulesen gibt es hier im Forum entsprechende Skripte.4.1 Zeitgesteuertes Laden korrekt konfigurieren und schreiben:
• AC-Laden muss auf 1 stehen (Register 47087). Kann auch mMn permanent auf 1 bleiben.
• Battery Working Mode (Register 47086) kann zwischen 2 (Maximaler Eigenverbrauch) und 5 (TOU, zeitgesteuert Laden) umgestellt werden.
• Man definiert dann in der Huawei FusionSolar App unter Geräte - Dongle - Parametereinstellungen (die 4 Punkte oben rechts) einfach eine Zeit von 0:00 bis 23:59 jeden Tag "laden" (also den ganzen Tag). Dafür muss die Batterie auf TOU (5) gestellt sein.
• Sobald man jetzt per Modbus das Register 47086 von 2 auf 5 umschaltet, fängt die Batterie aus dem Netz an zu laden.
• Maximaler Ladestrom kann über Register 47075 eingestellt werden.
• Stellt man den Working Mode wieder zurück auf 2, hört das Netzladen auf und die Batterie verhält sich wieder "normal".Die nötigen ioBroker Datenpunkte muss man noch anlegen. Also zB. Battery_Max_Charge_Power_SET oder Workingmode_Change.
5. Weiteres
5.1 Mehrere Wechselrichter abfragen
Es gibt noch weitere Möglichkeiten den Flow aufzubauen. Man kann mehrere Adressbereiche auf einmal abfragen, das ist ggf. etwas effizienter. Den Flow dazu habe ich aber nicht getestet:Außerdem enthält der Flow ein Beispiel für die Abfrage mehrerer Wechselrichter in Kaskade. Im Prinzip muss man nur die korrekten IDs pro Wechselrichter eintragen und nicht zu viele Register abfragen, sonst kommen keine Daten mehr. Damit lassen sich auch 3 Wechselrichter (oder ggf. sogar mehr) in einem Flow abfragen.
5.2 Aktuelle Firmware / Modbus Interface Definitions
Hier noch ein Link zu den aktuellen Firmware Versionen:
SUN2000 FirmwareVielen Dank an alle, die den Input geliefert haben!
Ich hoffe es hilf, wenn ich es hier einmal zusammengefasst habe.@badsnoopy667
Ich habe dein Programm so wie du es beschrieben hast umgesetzt. Die Werte werden zuverlässig ausgelesen:+1: großes Dankeschön!!!!Jedoch hast du die Efficiency deaktiviert. Kannst du mir sagen welche Effizienz dort ausgewertet wird? Ich bekomme nämlich bei dem Datenpunkt keine Werte zurückgespielt!
Evtl. sollte ich noch erwähnen, dass ich von Node-Red keine Ahnung habe, alles nur copy and paste :dizzy_face:
Gruß
-
@badsnoopy667
Ich habe dein Programm so wie du es beschrieben hast umgesetzt. Die Werte werden zuverlässig ausgelesen:+1: großes Dankeschön!!!!Jedoch hast du die Efficiency deaktiviert. Kannst du mir sagen welche Effizienz dort ausgewertet wird? Ich bekomme nämlich bei dem Datenpunkt keine Werte zurückgespielt!
Evtl. sollte ich noch erwähnen, dass ich von Node-Red keine Ahnung habe, alles nur copy and paste :dizzy_face:
Gruß
@bastian-rüggen
Freut mich das es klappt!
Die Efficiency habe ich deaktiviert, weil bei mir auch nur Mist ausgelesen wird. MMn müsste das die Effizienz vom Wechselrichter sein. Also das Verhältnis von Input Power (Solarleistung DC) zu Active Power (Erzeugung/Abgabe auf der AC Seite).
Ganz am Anfang kam da mal ein plausibler Wert, so um die 90-95%. Dann stand irgendwann nur noch [41.37] oder so da. -
@bastian-rüggen
Freut mich das es klappt!
Die Efficiency habe ich deaktiviert, weil bei mir auch nur Mist ausgelesen wird. MMn müsste das die Effizienz vom Wechselrichter sein. Also das Verhältnis von Input Power (Solarleistung DC) zu Active Power (Erzeugung/Abgabe auf der AC Seite).
Ganz am Anfang kam da mal ein plausibler Wert, so um die 90-95%. Dann stand irgendwann nur noch [41.37] oder so da.Hallo,
ich versuche mich gerade auch an dem Projekt, aber leider ohne erfolg. Es steht zwar Connected da, aber leider bekomme ich keine Werte. Was mache ich falsch ?
ich habe die aktuelle Firmware drauf und alles nach der Anleitung gemacht.
folgende Meldung bekommen ich angezeigt
Client -> stopped state without reconnecting TCP@http://192.168.170.121:502 default Unit-Id: 1!

-
Hallo,
ich versuche mich gerade auch an dem Projekt, aber leider ohne erfolg. Es steht zwar Connected da, aber leider bekomme ich keine Werte. Was mache ich falsch ?
ich habe die aktuelle Firmware drauf und alles nach der Anleitung gemacht.
folgende Meldung bekommen ich angezeigt
Client -> stopped state without reconnecting TCP@http://192.168.170.121:502 default Unit-Id: 1!

-
Hallo zusammen,
ich betreibe noch einen zweiten Wechselrichter als Kaskade mit der Unit-ID 2.
Habt ihr einen Tipp, wie ich an dessen Daten komme?
Danke und Viele Grüße,
MartyHallo Martyl,
ich habe die selbe Konstellation wie du das ich eine Kaskade aus 2 Wechselrichtern habe:
6KTL M1 -> Master Unit ID 1 (Verbindung funzt seit über einem Monat perfekt)
seit heute ist nun mit der Unit ID 2 ein 3KTL M1 hinzugekommen.wie/bzw. hast du es geschafft deinen 2ten Wechselrichter mit einzubinden?
MfG
-
Hallo zusammen, ich bin neu und bekomme heute mein Photovoltaikanlage mit Huawei verbaut.
Mit iobroker kenne ich mich aus.
Aber mit dem WR ist für mich neu!
Wenn der Installateur mir Modbus tcp direkt einrichtet,
brauche ich dann noch den Installateur Zugang oder geht das dann ohne? Vielen Dank für eure Mithilfe!! -
Hallo zusammen, ich bin neu und bekomme heute mein Photovoltaikanlage mit Huawei verbaut.
Mit iobroker kenne ich mich aus.
Aber mit dem WR ist für mich neu!
Wenn der Installateur mir Modbus tcp direkt einrichtet,
brauche ich dann noch den Installateur Zugang oder geht das dann ohne? Vielen Dank für eure Mithilfe!!@lub104
Ich würde vermuten, dass es dann ohne geht. Aber die Firmware vom Dongle sollte auch aktuell sein. -
@lub104
Ich würde vermuten, dass es dann ohne geht. Aber die Firmware vom Dongle sollte auch aktuell sein.@badsnoopy667 danke für die schnelle Antwort, okay FW kümmere ich mich drum. Dann hoffe ich das es klappt und ich es einrichten kann
-
Hallo Leute, im iobroker kenne ich mich schon recht gut aus.
Node red ist Neuland für mich.
Der Dongle hat die Software SPC130.
Ich bekomme das irgendwie nicht mit den Datenpunkten hin.
Ich hoffe ich bin nicht zu unklug.
Muss ich die Datenpunkte bei 0.User selbst anlegen.

-
Hallo Leute, im iobroker kenne ich mich schon recht gut aus.
Node red ist Neuland für mich.
Der Dongle hat die Software SPC130.
Ich bekomme das irgendwie nicht mit den Datenpunkten hin.
Ich hoffe ich bin nicht zu unklug.
Muss ich die Datenpunkte bei 0.User selbst anlegen.

-
@lub104 sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
Muss ich die Datenpunkte bei 0.User selbst anlegen.
Ich hab sie manuell angelegt.
-
Danke für die schnelle Antwort.
Kannst du bitte den Pfadbaum mal als Photo reinsetzen.
Danke@lub104 den siehts du eh in deinem Screenshot

Ich hab mir den Pfad aus Node-Red rauskopiert und im Objectbrowser ein Bestandattribut geöffnet (sind bei mir alle string) und dann auf clone gedrückt, noch den kopierten Pfad eingefügt auf OK, das wars.

-
@lub104 den siehts du eh in deinem Screenshot

Ich hab mir den Pfad aus Node-Red rauskopiert und im Objectbrowser ein Bestandattribut geöffnet (sind bei mir alle string) und dann auf clone gedrückt, noch den kopierten Pfad eingefügt auf OK, das wars.

