NEWS
[HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)
-
Edit: Modbus Adapter klappt nicht, node-red klappt. Anleitung siehe unten:
Hallo Zusammen,
ich habe zwar einen Threat zum Thema gefunden, aber daraus werde ich leider nicht schlau. Daher meine Frage:
Hat jemand den SUN2000 Wechselrichter von Huawei erfolgreich mit dem Modbus ioBroker Adpater laufen? Über den SDongle mit Modbus TCP.Wenn ja, kann derjenige hier einmal beschreiben, was man im Adapter und ggf. im WR einstellen muss?
Ich bekomme leider keine Verbindung, die Verbindung bricht immer wieder ab.Vielen Dank für die Hilfe!!
Update:
Okay, ich hab es mit dem Modbus Adapter nicht hinbekommen und habe mich dann doch mal an node-red gewagt. Siehe da, es geht ohne Probleme!
Ich schreibe hier einmal auf, wie es geht, dann muss sich der nächste das vielleicht nicht zusammensuchen.Vorraussetzung: 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: ChangemeIch habe den node-red Flow von @betacode aus folgendem Thread genommen:
Huawei SUN2000 mit node-red
Vielen Dank dafür!Update 2: Ich habe den Flow noch angepasst und z.B. um die Batterie-Daten erweitert. Außerdem frage ich die unwichtigen Sachen wie Seriennummer etc. nur 1x pro Minute ab, dafür aber die wichtigen Dinge wie Erzeugung und Verbrauch alle 3 Sekunden. Hier der neue Flow:
node-red-SUN2000.txt
Achtung: Mein Wechselrichter hat die Modbus Unit-ID: 2. Vermutlich hat euer die 1, meiner wurde getauscht. Daher darauf achten, in allen Modbus Nodes die richtige Unit ID einzutragen!Man muss bei 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-modbus
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 die ClientID (typischerweise 1) eintragen. (Port ist 502)
Edit: 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 (vermutlich 1) geändert werden damit Daten kommen!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. --> Das ist im aktualisierten Flow schon alles umgesetzt!
Zum Nachlesen gibt es hier noch die Huawei SUN2000 Modbus Register Übersicht:
Modbus Register Huawei SUN2000 Im Flow werden die wichtigsten Größen aber schon abgefragt.Vielen Dank an alle, die den Input geliefert haben! Ich hoffe es hilf, wenn ich es hier einmal zusammengefasst habe.
Modbus-Register schreiben:
Nach mehreren Tagen basteln habe ich es hinbekommen, man kann auch Register schreiben! Damit kann ich jetzt die Batterie-Entladung auf 0 setzen wenn das eAuto lädt. Weil Haus-Batterie zu Auto-Batterie macht ja irgendwie keinen Sinn.
Ich habe in diesem Post kurz zusammengefasst wie es geht, incl. Beispielflow.
https://forum.iobroker.net/topic/53005/huawei-sun2000-iobroker-via-js-script-funktioniert/11?_=1649357655798 -
@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
-
@ple
Hallo ple! Achtung: Du musst die SUN2000 App benutzen, NICHT die FusionSolar App. Das sind zwei verschiedene Apps!Mein Wechselrichter hat sich leider abgeschossen (Hardware Defekt), deshalb kann ich nicht so richtig darauf zugreifen... aber ich habe in paar Screenshots gemacht von den Einstellungen.
Bei mir gibt es, wenn ich vor dem Wechselrichter stehe zwei WLAN Netze, auf die ich mich verbinden kann. Einmal "SDongle..." und einmal "SUN2000".
Auf das "SDongle" komme ich gerade nicht drauf, aber ich meine, man muss ich mit beiden Netzen verbinden um a) den Dongle und b) den Wechselrichter selbst zu konfigurieren.Hier die Screenshots vom Wechselrichter (Netwerk SUN2000...):
Im Dongle muss man glaube ich noch "Modbus TCP" aktivieren und da kann man auch die Unit-ID festlegen. Guck mal nach, ob die wirklich 1 ist, so wie es in Deinem Log steht.
Achso: Das Verbinden mit dem Netzwerk und der App klappt manchmal nur so lala. Bei mir geht es am Besten wenn ich:
- Die App starte und auf "Manuell Verbinden" klicke
- Auf das Bildchen mit dem Wechselrichter klicke in der APP
- In die WLAN Einstellungen vom Handy wechsel und dann das WLAN vom Wechselrichter auswähle
- In der App dann unten auf "Verbinden" klicke.
Dann sollte er einem das Auswahlmenü anbieten, ob man Installateur oder Benutzer ist. Die Einstellungen kann man nur im Modus Installateur vornehmen.
-
@badsnoopy667
Also auf den Wechselrichter kommt ich als Installateur, ich guck mir das nachher noch mal an, was da genau steht.Gruß und Danke
-
Was mir gerade noch einfällt: Bei mir war Anfangs die Firmware des Dongles nicht aktuell. Mit der alten Firmware habe ich auch keine Verbindung bekommen. Der Installateur hat die Firmware dann über das FusionSolar Online Portal geupdatet und dann ging es!
-
@badsnoopy667 vielen Dank für diese tolle Anleitung! Ist es eigentlich auch möglich den PV-Überschuss im Flow auszugeben?
Grüße! -
@hase_92
Den Überschuss gibt der Wechselrichter selbst nicht mit aus soweit ich das bisher verstanden habe.
Ich berechne mir den aber selber. Ich habe mir dafür ein Blockly geschrieben.
Da die Werte vom Wechselrichter nicht genau synchron übermittelt werden schreibe ich die Werte 20 Sekunden lang in Listen und bilde dann alle 20 Sekunden den Mittelwert. Mit den Mittelwerten kann man dann weiterrechnen.
Ich packe das Skript mal hier rein, es benötigt aber eine ganze Menge Datenpunkte die man wohl erstmal alle anlegen muss.
Aber vielleicht hilft es ja zum Verständnis. Das im Detail zu erklären fällt mir schwer, bin teilweise selbst froh, dass es einfach funktioniert. Das warum ist dann manchmal zweitrangig.Blockly Export:
Blockly Export.txt -
@badsnoopy667 said in [Solved] Huawei SUN2000 Wechselrichter Modbus mit node-red:
@hase_92
Den Überschuss gibt der Wechselrichter selbst nicht mit aus soweit ich das bisher verstanden habe.
Ich berechne mir den aber selber. Ich habe mir dafür ein Blockly geschrieben.
Da die Werte vom Wechselrichter nicht genau synchron übermittelt werden schreibe ich die Werte 20 Sekunden lang in Listen und bilde dann alle 20 Sekunden den Mittelwert. Mit den Mittelwerten kann man dann weiterrechnen.
Ich packe das Skript mal hier rein, es benötigt aber eine ganze Menge Datenpunkte die man wohl erstmal alle anlegen muss.
Aber vielleicht hilft es ja zum Verständnis. Das im Detail zu erklären fällt mir schwer, bin teilweise selbst froh, dass es einfach funktioniert. Das warum ist dann manchmal zweitrangig.Blockly Export:
Blockly Export.txtHi badsnoopy667, vielen Dank für den Flow. Ich versuche schon seit Monaten den Wechselrichter auszulesen. Huawei macht es einem da nicht gerade einfach. Aber nun läuft es.
Zum Thema Überschuss, es gibt das Objekt "Active_Power" dort steht doch die Leistung die eingespeist oder bezogen wird. Wenn der Wert positiv ist speise ich ein und die Zahl ist doch dann auch mein Überschuss? Oder habe ich hier einen Denkfehler?
-
@biervoegelhasso
Ja, Du hast Recht. Der Datenpunkt Active_Power_METER (!) gibt an, ob gerade eingespeist oder bezogen wird aus dem Netz. Damit berechne ich mir auch meine Einspeisung und Bezugswerte. Diese dann einfach alle 10 Sekunden einmal aufaddieren und durch 360000 teilen, siehe Screenshot. Das reicht für mich von der Genauigkeit.Was ich meinte war "PV-Erzeugung". Damit stehe ich noch auf Kriegsfuß. Das ging solange gut, bis ich die Batterie bekommen habe. Es gibt ja den Datenpunkt "Daily Energy Yield" im Inverter. Aber wenn man eine Batterie hat, dann zählt der Inverter auch weiter hoch, wenn der Strom aus der Batterie und nicht mehr vom Dach kommt.
Dann gibt es noch "Input Power". Das ist das, was vom Dach kommt. Aber anscheinend ohne Berücksichtigung des Wirkungsgrades. Leider gibt mir der Inverter den Wirkungsgrad unter "Efficiency" nicht mehr korrekt aus. Da steht immer 41.35%.. Ist das bei Dir auch so, oder kommt der Wert nur bei mir nicht korrekt? Da der Wirkungsgrad gerade bei schwankender Erzeugung schonmal ziemlich mau ist, ist der Wert ohne Wirkungsgrad leider ziemlich optimistisch im Vergleich zu dem Ertrag den FusionSolar anzeigt am Handy. -
@badsnoopy667
Ich habe keinen Akku daher nutze ich "Input Power". Mit dem Wirkungsgrad habe ich noch keine Erfahrung. Bei mir werden Werte von 261-299 angezeigt.
Ich werte alles mit Grafana aus. Geht wirklich super. -
@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? -
@badsnoopy667 said in [Solved] Huawei SUN2000 Wechselrichter Modbus mit node-red:
@ple
Hallo ple! Achtung: Du musst die SUN2000 App benutzen, NICHT die FusionSolar App. Das sind zwei verschiedene Apps!Hallo,
diese Information ist nicht richtig. Das geht sehr wohl mit der FusionSolar App.
Starte sie ganz normal und tippe dann auf ich (unten rechts)
Tippe im folgenden Menü auf "Inbetriebnahme des Geräts" und du bist dort wo hin musst. Keine Angst, das Gerät wird nicht neu konfiguriert. Das Menü kommt dir von SUN2000 vertraut vor. -
@suvfepp said in [Solved] Huawei SUN2000 Wechselrichter Modbus mit node-red:
ppe im folgenden Menü auf "Inbetriebnahme des Geräts" und du bist dort wo hin musst. Keine Angst, das Gerät wird nicht neu konfi
Ach wie geil! Gut zu wissen! Danke!
-
Ich krieg den ollen Wechselrichter nicht verbunden, keine Ahnung warum.
Welche Firmwareversionen habt ihr auf den WR und Dongle?
Ich habe
WR = V100R001C20SPC112
Dongle= V100R001C00SPC127ich habe mich mal direkt mit den WR verbunden sowie auch Dongle und mal ein wenig nach den Einstellungen geguckt, sieht mir aber so aus, als ob alles soweit richtig wäre.
-
Ich hab folgende Firmware drauf:
WR: V100R001C00SPC141
Dongle: V100R001C00SPC126Deine Screenshots zeigen bei mir nix. Ist da was schiefgelaufen beim Upload?
-
Neuer Versuch, das war so alles was ich gefunden habe.
-
@ple
Im zweiten und vierten Screenshot steht "Modbus RTU". Da muss aber "Modbus TCP" stehen glaube ich. Sonst wird das nix! Stell das mal um, dann sollte es eigentlich gehen. -
@badsnoopy667
bin jetzt mal hier nach gegangen
https://forum.huawei.com/enterprise/en/modbus-tcp-guide/thread/789585-100027?page=3#comments-area
scheint so, als ob der dongle kein Modbus aktuell so kann.
ich spiele mal auf die 126 zurück.War der Dongle per Wlan oder Kabel angeschlossen? Hatte mal was gelesen, das Modbus nur per Wlan geht, finds aber gerade nicht wieder.
-
@ple
Bei mir ist der Dongle per WLan angeschlossen. -
@ple Hast Du auf Modbus TCP umgestellt?