NEWS
[HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)
-
Hallo zusammen, vielen Dank für die umfangreichen Infos zu Node-Red und dem Huawei sun WR. Leider ist Node-Red für mich noch relativ neu. Auf den ersten Blick sieht alles erfolgsversprechend aus. Leider bekomme ich auch den Fehler "Encrypted credentials not found" bzw. "Verschlüsselte Credentials nicht gefunden". Darüber hinaus sollten alle Einstellungen ok sein (ID auf "1") ....
Kann jemand einen Tipp geben?
Die Antwort von mickym habe ich noch nicht umgesetzt. (https://forum.iobroker.net/post/971530) kann es daran liegen?
Müssen die Datenpunke per Hand angelegt werden (Auto-Create in Node-Red)? Leider werden keine Objekte unter "0_userdata" angelegt.

(Dumme) Frage: über welchen Weg kann ich die setting.js editieren.
Vielen Dank schon einmal.
@tilo Wie gesagt sollte man an der settings.js nicht selbst rumfuhrwerken, sonst muss man es bei jedem Adapterupdate machen. Du kannst höchstens mal eine Anfrage auf github stellen.
Die settings.js wird in der Regel durch die Adapterkonfiguration verändert und sollte nicht manuell verändert werden. Muss man nur machen, wenn es keine entsprechenden Einträge gibt. Bei Dir scheint entweder die flow-credentials nicht lesbar zu sein, weil der Schlüssel verkehrt ist.
Auch wenn man den Schlüssel aus der settings js rauskopiert muss der irgendwo anders im iobroker abgespeichert sein. ICH WEISS ABER AUCH NICHT WO. :thinking_face: :confused:
Dieser Schlüssel ist aber fix (%%credentialSecret%%), weil er über eine variable aus dem iobroker gesetzt wird:

Diese template settings.js würde ich aber nicht editieren, wenn Du nicht weißt was Du tust und ist gerade für Anfänger nicht empfehlenswert.
Die template Datei settings.js, die bei jedem Start verwendet wird liegt unter: /opt/iobroker/node_modules/iobroker.node-red
Meine Empfehlung - gerade als Anfänger wäre aber. Exportiere Dir alle Flows oder sichere Dir die flows.json weg - lösche die Instanz des Adapters, erstelle sie neu - importiere oder kopiere die flows.json wieder in das data Verzeichnis und gib Deine Credentials neu ein. Gerade wenn Du Anfänger bist und noch nicht soviele Flows hast, ist das sicher sinnvoller.
-
Hallo zusammen,
ich habe das gleiche Problem. Frische iobroker Docker Installation.
Ich habe den node-red Adapter installiert, die Dongle-IP und die Unit-ID angepasst, jedoch bekomme ich keine Daten geliefert. Obwohl ich die Einstellung "Erstellung von Fremdobjekten zulassen" aktiviert habe, werden keine Objekte angelegt. Ich bin mir nicht sicher ob der Flow überhaupt läuft. Im Log sehe ich nur die folgenden Meldungen:
node-red.0 2023-05-04 22:26:05.053 warn 4 May 22:26:05 - [warn] Verschlüsselte Credentials nicht gefunden node-red.0 2023-05-04 22:26:04.998 warn 4 May 22:26:04 - [warn] Projekte deaktiviert: editorTheme.projects.enabled=falseTestweise habe ich auch ein Objekt manuell angelegt. Zudem habe ich den node-red Adapter schon mehrfach neu installiert. Hat leider nichts gebracht.
Was mache ich falsch? Was kann ich noch probieren?
Danke und Grüße
Florian -
Hallo zusammen,
ich habe das gleiche Problem. Frische iobroker Docker Installation.
Ich habe den node-red Adapter installiert, die Dongle-IP und die Unit-ID angepasst, jedoch bekomme ich keine Daten geliefert. Obwohl ich die Einstellung "Erstellung von Fremdobjekten zulassen" aktiviert habe, werden keine Objekte angelegt. Ich bin mir nicht sicher ob der Flow überhaupt läuft. Im Log sehe ich nur die folgenden Meldungen:
node-red.0 2023-05-04 22:26:05.053 warn 4 May 22:26:05 - [warn] Verschlüsselte Credentials nicht gefunden node-red.0 2023-05-04 22:26:04.998 warn 4 May 22:26:04 - [warn] Projekte deaktiviert: editorTheme.projects.enabled=falseTestweise habe ich auch ein Objekt manuell angelegt. Zudem habe ich den node-red Adapter schon mehrfach neu installiert. Hat leider nichts gebracht.
Was mache ich falsch? Was kann ich noch probieren?
Danke und Grüße
Florian@floriw2000 Der Fehler saß natürlich vor dem Bildschirm. Ich hatte nur in den "Globale-Konfigurations-Nodes" die Unit-Id auf 1 gesetzt und nicht, wie oben sehr schön beschrieben, in allen modbus Nodes. :upside_down_face:
Jetzt läuft alles und die Objekte wurden angelegt, obwohl die Warnung mit "Verschlüsselte Credentials nicht gefunden" weiterhin besteht.
-
@floriw2000 Der Fehler saß natürlich vor dem Bildschirm. Ich hatte nur in den "Globale-Konfigurations-Nodes" die Unit-Id auf 1 gesetzt und nicht, wie oben sehr schön beschrieben, in allen modbus Nodes. :upside_down_face:
Jetzt läuft alles und die Objekte wurden angelegt, obwohl die Warnung mit "Verschlüsselte Credentials nicht gefunden" weiterhin besteht.
@floriw2000 sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
Jetzt läuft alles und die Objekte wurden angelegt, obwohl die Warnung mit "Verschlüsselte Credentials nicht gefunden" weiterhin besteht.
Ihr müsst halt die ganzen Konfigurationen nochmal neu eintragen - dann könnt ihr die beiden Dateien löschen und Adapter neu starten.

befindet sich im persönlichen Node-Red Verzeichnis:
/opt/iobroker/iobroker-data/node-red -
Hab alles nach Anleitung konfiguriert, doch bekomme immer die Meldung:
7.5.2023, 11:58:08node: 30000 msg : error "Error: Port Not Open"Hab natürlich die IP Adresse des Wechselrichters in der globalen Konfig gesetzt, als auch die ID auf 1 (auch in den einzelnen Modbus-Gettern. Auch ein Port Test auf Port 502 ist erfolgreich.
Jemand noch zufällig eine Idee?Nutzen den WLAN Dongle mit einem 10 KTL-M1 und 10kW Speicher.
-
Hab alles nach Anleitung konfiguriert, doch bekomme immer die Meldung:
7.5.2023, 11:58:08node: 30000 msg : error "Error: Port Not Open"Hab natürlich die IP Adresse des Wechselrichters in der globalen Konfig gesetzt, als auch die ID auf 1 (auch in den einzelnen Modbus-Gettern. Auch ein Port Test auf Port 502 ist erfolgreich.
Jemand noch zufällig eine Idee?Nutzen den WLAN Dongle mit einem 10 KTL-M1 und 10kW Speicher.
Hallo zusammen,
Ich stehe kurz vor Unterzeichnung mit Solateur. Es wird dann wohl Huawei werden. Eine Frage ist jedoch noch offen....gibt es nun einen zuverlässigen Weg (Iobroker, API, widget, script)
alle wichtigen Werte zuverlässig in Iobroker zu bekommen und auch Einfluss auf das Ladeverhalten vom Speicher zu haben?
Dumm, wenn ich nachher hier was eingebaut bekomme und es andauernd rumzickt😉 -
Hab alles nach Anleitung konfiguriert, doch bekomme immer die Meldung:
7.5.2023, 11:58:08node: 30000 msg : error "Error: Port Not Open"Hab natürlich die IP Adresse des Wechselrichters in der globalen Konfig gesetzt, als auch die ID auf 1 (auch in den einzelnen Modbus-Gettern. Auch ein Port Test auf Port 502 ist erfolgreich.
Jemand noch zufällig eine Idee?Nutzen den WLAN Dongle mit einem 10 KTL-M1 und 10kW Speicher.
@christof-lewandowski said in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
Hab alles nach Anleitung konfiguriert, doch bekomme immer die Meldung:
7.5.2023, 11:58:08node: 30000 msg : error "Error: Port Not Open"Hab natürlich die IP Adresse des Wechselrichters in der globalen Konfig gesetzt, als auch die ID auf 1 (auch in den einzelnen Modbus-Gettern. Auch ein Port Test auf Port 502 ist erfolgreich.
Jemand noch zufällig eine Idee?Nutzen den WLAN Dongle mit einem 10 KTL-M1 und 10kW Speicher.
Komischerweise kommen diese Meldungen nicht mehr, funktionieren tut es trotzdem noch nicht :D
@christof-lewandowski said in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
Hab alles nach Anleitung konfiguriert, doch bekomme immer die Meldung:
7.5.2023, 11:58:08node: 30000 msg : error "Error: Port Not Open"Hab natürlich die IP Adresse des Wechselrichters in der globalen Konfig gesetzt, als auch die ID auf 1 (auch in den einzelnen Modbus-Gettern. Auch ein Port Test auf Port 502 ist erfolgreich.
Jemand noch zufällig eine Idee?Nutzen den WLAN Dongle mit einem 10 KTL-M1 und 10kW Speicher.
Die Meldungen sind zwar weg, funktionieren tut es trotzdem noch nicht :D.
Hab nun die Meldung:"Getter -> Inject while node is not ready for input."ModbusTCP im Dongle ist aktiviert. WEiß jemand, ob nur eine Verbindung möglich ist? Hab noch ein Mgmt System im EInsatz, was ebenfalls über ModbusTCP die Daten abgreift.
-
Hallo zusammen,
Ich stehe kurz vor Unterzeichnung mit Solateur. Es wird dann wohl Huawei werden. Eine Frage ist jedoch noch offen....gibt es nun einen zuverlässigen Weg (Iobroker, API, widget, script)
alle wichtigen Werte zuverlässig in Iobroker zu bekommen und auch Einfluss auf das Ladeverhalten vom Speicher zu haben?
Dumm, wenn ich nachher hier was eingebaut bekomme und es andauernd rumzickt😉@fragmike
Bei mir funktioniert es jetzt seit über einem Jahr zuverlässig mit der in Post 1 beschriebenen Methode.
Ab und zu (vll. einmal in zwei Wochen) kommen "komische" Werte vom WR, z.b. Akkustand = 244353455673 oder sowas. Aber dann nur für ein paar Minuten, gerne Nachts, wenn der Akku leer ist. Zur Not kann man so unplausible Daten ja rausfiltern.Die ganzen Monats- / Jahreswerte könnte man (nachdem man die unplausiblen Daten rausgefiltert hat) mit dem sourceanalytix Adapter aufsummieren. Das mache ich aktuell aber nicht, die gucke ich weiterhin in der App nach.
Akku-Entladeleistung begrenzen geht auch gut. Was ich noch nicht hinbekommen habe ist den Akku auf Befehl aus dem Netz zu laden. Das scheint relativ kompliziert über Modbus zu sein. Gehen sollte es eigentlich, denn das entsprechende Register gibt es. Aber Huawei ist da sehr zurückhaltend mit der Beschreibung, was man denn nun in das Register schreiben muss.
-
@fragmike
Bei mir funktioniert es jetzt seit über einem Jahr zuverlässig mit der in Post 1 beschriebenen Methode.
Ab und zu (vll. einmal in zwei Wochen) kommen "komische" Werte vom WR, z.b. Akkustand = 244353455673 oder sowas. Aber dann nur für ein paar Minuten, gerne Nachts, wenn der Akku leer ist. Zur Not kann man so unplausible Daten ja rausfiltern.Die ganzen Monats- / Jahreswerte könnte man (nachdem man die unplausiblen Daten rausgefiltert hat) mit dem sourceanalytix Adapter aufsummieren. Das mache ich aktuell aber nicht, die gucke ich weiterhin in der App nach.
Akku-Entladeleistung begrenzen geht auch gut. Was ich noch nicht hinbekommen habe ist den Akku auf Befehl aus dem Netz zu laden. Das scheint relativ kompliziert über Modbus zu sein. Gehen sollte es eigentlich, denn das entsprechende Register gibt es. Aber Huawei ist da sehr zurückhaltend mit der Beschreibung, was man denn nun in das Register schreiben muss.
@badsnoopy667 Super.. genau das wollte ich hören 😊👍
-
@badsnoopy667 Super.. genau das wollte ich hören 😊👍
-
Mal eine Frage, es gibt ja die Möglichkeit den Wechselrichter über RS485 und z.B. einen Rundsteuerempfänger in der Leistung zu drosseln bzw. komplett abzuschalten.

Hat schon jemand es hingekriegt dies über NodeRed zu machen?@joeysch
Über node-red hatte ich noch keinen Bedarf, aber ich habe einen RSE, ich hoffe mal, der wird aber nie aktiv und drossel meine PV.Was mich mehr interessieren würde, vielleicht hat es schon einer umgesetzt, wäre die Daten via Modbus RTU zu bekommen, also sich in den RS485 oder was es ist sich einzuklinken. Vielleicht läuft das stabiler und schneller als Modbus TCP. Dann könnte man vielleicht auch direkt den Modbusadapter nehmen oder auch vielleicht die Wallbox selber. Z.B. die Cfos, glaube die kann auch direkt RS485.
-
@ple
Das Drosseln hat bei mir einen anderen Hintergrund. Ich würde mein System gern Schwarzstartfähig und bei Stromausfall weiterbetreiben können.
Da ich ein dreiphasiges Victronsystem habe, ist das soweit kein Problem. Ich bekomme allerdings ein Problem mit der Faktor 1 Regel. Das heißt, wenn ich nicht am Netz bin, muß der erzeugte Strom irgendwo hin. Anfangs geht das noch in die Akkus (ca. 30 KWh) aber wenn die voll sind, muß ich den Wechselrichter drosseln bis hin zum abschalten.
Deshalb wäre die einfachste Methode, wenn ich über NodeRed auf 60% - 30% - 0% schalten könnte. Sonst muß ich mir irgendwas Hardwaremäßiges einfallen lassen und über den RS485 gehen. -
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 Hallo. Ich will mich heute an die Thematik herantrauen. Node-Red ist in meinem iOBroker schon installiert und läuft. Auch die drei zusätzlichen Dateien sind eingebunden:blush: .
Ich habe aber noch eine Frage zum Flow, da ich eine ANlage ohne Batterien habe: muss ich den Flow deshalb noch anpassen?
-
@ple
Das Drosseln hat bei mir einen anderen Hintergrund. Ich würde mein System gern Schwarzstartfähig und bei Stromausfall weiterbetreiben können.
Da ich ein dreiphasiges Victronsystem habe, ist das soweit kein Problem. Ich bekomme allerdings ein Problem mit der Faktor 1 Regel. Das heißt, wenn ich nicht am Netz bin, muß der erzeugte Strom irgendwo hin. Anfangs geht das noch in die Akkus (ca. 30 KWh) aber wenn die voll sind, muß ich den Wechselrichter drosseln bis hin zum abschalten.
Deshalb wäre die einfachste Methode, wenn ich über NodeRed auf 60% - 30% - 0% schalten könnte. Sonst muß ich mir irgendwas Hardwaremäßiges einfallen lassen und über den RS485 gehen.@joeysch sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@ple
Das Drosseln hat bei mir einen anderen Hintergrund. Ich würde mein System gern Schwarzstartfähig und bei Stromausfall weiterbetreiben können.
Da ich ein dreiphasiges Victronsystem habe, ist das soweit kein Problem. Ich bekomme allerdings ein Problem mit der Faktor 1 Regel. Das heißt, wenn ich nicht am Netz bin, muß der erzeugte Strom irgendwo hin. Anfangs geht das noch in die Akkus (ca. 30 KWh) aber wenn die voll sind, muß ich den Wechselrichter drosseln bis hin zum abschalten.
Deshalb wäre die einfachste Methode, wenn ich über NodeRed auf 60% - 30% - 0% schalten könnte. Sonst muß ich mir irgendwas Hardwaremäßiges einfallen lassen und über den RS485 gehen.SUN2000MA V100R001C20 Modbus Interface Definitions.pdf
Seite 57, da fangen die schreibbaren Register an, da gibt es ne Menge "Power max" gedönst. vielleicht ist da was passendes bei. -
@joeysch sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@ple
Das Drosseln hat bei mir einen anderen Hintergrund. Ich würde mein System gern Schwarzstartfähig und bei Stromausfall weiterbetreiben können.
Da ich ein dreiphasiges Victronsystem habe, ist das soweit kein Problem. Ich bekomme allerdings ein Problem mit der Faktor 1 Regel. Das heißt, wenn ich nicht am Netz bin, muß der erzeugte Strom irgendwo hin. Anfangs geht das noch in die Akkus (ca. 30 KWh) aber wenn die voll sind, muß ich den Wechselrichter drosseln bis hin zum abschalten.
Deshalb wäre die einfachste Methode, wenn ich über NodeRed auf 60% - 30% - 0% schalten könnte. Sonst muß ich mir irgendwas Hardwaremäßiges einfallen lassen und über den RS485 gehen.SUN2000MA V100R001C20 Modbus Interface Definitions.pdf
Seite 57, da fangen die schreibbaren Register an, da gibt es ne Menge "Power max" gedönst. vielleicht ist da was passendes bei. -
@christof-lewandowski said in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
Hab alles nach Anleitung konfiguriert, doch bekomme immer die Meldung:
7.5.2023, 11:58:08node: 30000 msg : error "Error: Port Not Open"Hab natürlich die IP Adresse des Wechselrichters in der globalen Konfig gesetzt, als auch die ID auf 1 (auch in den einzelnen Modbus-Gettern. Auch ein Port Test auf Port 502 ist erfolgreich.
Jemand noch zufällig eine Idee?Nutzen den WLAN Dongle mit einem 10 KTL-M1 und 10kW Speicher.
Komischerweise kommen diese Meldungen nicht mehr, funktionieren tut es trotzdem noch nicht :D
@christof-lewandowski said in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
Hab alles nach Anleitung konfiguriert, doch bekomme immer die Meldung:
7.5.2023, 11:58:08node: 30000 msg : error "Error: Port Not Open"Hab natürlich die IP Adresse des Wechselrichters in der globalen Konfig gesetzt, als auch die ID auf 1 (auch in den einzelnen Modbus-Gettern. Auch ein Port Test auf Port 502 ist erfolgreich.
Jemand noch zufällig eine Idee?Nutzen den WLAN Dongle mit einem 10 KTL-M1 und 10kW Speicher.
Die Meldungen sind zwar weg, funktionieren tut es trotzdem noch nicht :D.
Hab nun die Meldung:"Getter -> Inject while node is not ready for input."ModbusTCP im Dongle ist aktiviert. WEiß jemand, ob nur eine Verbindung möglich ist? Hab noch ein Mgmt System im EInsatz, was ebenfalls über ModbusTCP die Daten abgreift.
@christof-lewandowski sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
zwar weg, funktionieren tut es trotzdem noch nicht :D.
Hab nun die Meldung:der Port ist 6607 wenn du den Wechselrichter abrufst.
502 wenn du den Dongle abrufst. -
@atifan
Theoretisch geht das. Es gibt Modbus Register dafür. Praktisch ist das so kompliziert und schlecht dokumentiert, das wird nix befürchte ich. -
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 Moin, moin, sonnige Grüße von der Küste. Ich habe gestern umgesetzt was in der Anleitung steht - aber leider ohne den erhofften Erfolg.
Ich meine alles gemacht zu haben was hier steht:
- User ID auf 1 gesetzt .. so wie es in meinem WR eingestellt ist
- ich kann den WR anpingen
- MOD-TCP ist im WR auch entsprechend der Vorgaben gesetzt
Nach dem Stoppen und Starten von NodeRed werden die Objekte nicht angelegt, die Kommunikation startet nicht und folgendes lese ich im Protokoll. Was habe ich vergessen oder falsch gemacht?
