NEWS
[HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)
-
@mickym Bin nicht ganz sicher. Meinst du das?

@benutzer0815 Also wenn Du die Fremdobjekte angeklickt hast, muss in den iobroker out Objekten halt stehen, dass die Datenpunkte angelegt werden dürfen, wenn sie nicht vorhanden sind:

Die Fehlermeldung mit den credentials kommt wenn die Datei mit den credentials fehlt. Die wird aber automatisch angelegt, wenn man irgendwelche Credentials zum Beispiel in mqtt etc. einträgt-

-
@christiansr said in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
also ein Problem habe ich identifiziert: Der Inverter 2 liefert keine Daten. (dann ist ganz logisch, dass der Gesamtertrag nicht passt)
Ich konnte allerdings noch nicht klären, warum ich von Inverter 2 keine Daten bekomme. Die Einstellungen im Modbus-Getter müssten identisch sein und nur die Unit-ID eins mehr - oder?
Unit-ID 0 oder 3 liefert auch nix - habe ich probiert.Kann das noch ein Einstellungsproblem in Node-Red sein oder liegt der Fehler im Inverter?
Bei kaskadierten Wechselrichtern bekommt der Master-WR und der SmartMeter offenbar die UnitID 16.
@alexander85 danke. das wars.
-
@benutzer0815 Also wenn Du die Fremdobjekte angeklickt hast, muss in den iobroker out Objekten halt stehen, dass die Datenpunkte angelegt werden dürfen, wenn sie nicht vorhanden sind:

Die Fehlermeldung mit den credentials kommt wenn die Datei mit den credentials fehlt. Die wird aber automatisch angelegt, wenn man irgendwelche Credentials zum Beispiel in mqtt etc. einträgt-

@mickym gnauso sieht es bei mir auch aus

Aber das zweite Bild sagt mir nichts. Wie komme ich zu den Werkzeugen?
Mal so nebenbei habe ich neuerdings auch Fehler bei der Anbindung meiner Wärmepumpe:

Falls das vllt. auch etwas damit zu tun haben könnte. -
@mickym gnauso sieht es bei mir auch aus

Aber das zweite Bild sagt mir nichts. Wie komme ich zu den Werkzeugen?
Mal so nebenbei habe ich neuerdings auch Fehler bei der Anbindung meiner Wärmepumpe:

Falls das vllt. auch etwas damit zu tun haben könnte.@benutzer0815 Nun bei dem 2. Fehler sagt dieser einfach, dass das Gerät nicht geantwortet hat. Dann kann natürlich auch nichts geschrieben werden. Warum dieser Timeout kommt, kann ich Dir nicht beantworten.
-
@benutzer0815 Nun bei dem 2. Fehler sagt dieser einfach, dass das Gerät nicht geantwortet hat. Dann kann natürlich auch nichts geschrieben werden. Warum dieser Timeout kommt, kann ich Dir nicht beantworten.
@mickym Ok hätte ja sein können das das eine evtl. mit dem anderen zu tun hat.
-
@mickym Ok hätte ja sein können das das eine evtl. mit dem anderen zu tun hat.
Hi,
kurze Frage, ich stehe gerade vor dem Kauf eines Huawei Sun2000-20KTL-M2. Dass ich den Lan/Wlan Dongle brauche ist klar, aber brauche ich dafür auch den Huawei Smart Power Sensor DTSU666-H 3P ?
Mein Elektriker meinte, wenn ich die Daten vom Hausverbrauch auch dazu haben möchste sollte ich den installieren.Danke und Grüße
-
Hi,
kurze Frage, ich stehe gerade vor dem Kauf eines Huawei Sun2000-20KTL-M2. Dass ich den Lan/Wlan Dongle brauche ist klar, aber brauche ich dafür auch den Huawei Smart Power Sensor DTSU666-H 3P ?
Mein Elektriker meinte, wenn ich die Daten vom Hausverbrauch auch dazu haben möchste sollte ich den installieren.Danke und Grüße
@memme
Soweit ich das sehe, brauchst Du den Power Sensor damit der Wechselrichter weiß, wie viel Strom gerade eingespeist oder aus dem Netz gezogen wird. Darüber wird dann ja auch die Batterie gesteuert wenn man eine hat. Ob das System auch ohne Power Sensor läuft hab ich mich bisher noch nie gefragt. Ich würde ihn schon aus Neugier installieren, damit ich weiß, was ich so verbrauche. -
@memme
Soweit ich das sehe, brauchst Du den Power Sensor damit der Wechselrichter weiß, wie viel Strom gerade eingespeist oder aus dem Netz gezogen wird. Darüber wird dann ja auch die Batterie gesteuert wenn man eine hat. Ob das System auch ohne Power Sensor läuft hab ich mich bisher noch nie gefragt. Ich würde ihn schon aus Neugier installieren, damit ich weiß, was ich so verbrauche.@badsnoopy667
ok, dann habe ich das ja richtig verstanden. Wenn ich den Smart power sensor installiere kann ich die Werte im IoBroker verarbeiten, richtig?
Batterie habe ich nicht. Wird wohl dann auf eine Darstellung alla was verbrauche ich gerade, was wird von der pv bezogen und was vom netzt und was wird eingespeist. -
@badsnoopy667
ok, dann habe ich das ja richtig verstanden. Wenn ich den Smart power sensor installiere kann ich die Werte im IoBroker verarbeiten, richtig?
Batterie habe ich nicht. Wird wohl dann auf eine Darstellung alla was verbrauche ich gerade, was wird von der pv bezogen und was vom netzt und was wird eingespeist.@memme
Ja, das sollte dann gehen! -
@badsnoopy667
ok, dann habe ich das ja richtig verstanden. Wenn ich den Smart power sensor installiere kann ich die Werte im IoBroker verarbeiten, richtig?
Batterie habe ich nicht. Wird wohl dann auf eine Darstellung alla was verbrauche ich gerade, was wird von der pv bezogen und was vom netzt und was wird eingespeist.@memme brauchen tust du ihn aber nicht. Habe den SUN2000-30KTL-M3 auch ohne. Ja, der WR weiß nicht, was du verbrauchst und was du einspeist, aber das muss er auch gar nicht wissen. Ich weiß das ja, weil ich die Daten per infrarot am Stromzähler abgreife. 😎
Sammel alle Daten, speicher sie in influx und greife diese mit Grafana ab.
Die Huawei App brauche ich dafür nicht.
Anders wäre es wohl, wenn du einen Akku hast. -
Hallo in die Runde,
erstmal Mega großen Dank für eure Mühen das ihr die Huawei Sun Geräte per Modbus im iobroker abbildet.
Ich hab noch gar keine Erfahrungen mit den Node-Red sammeln können hab den Flow dann doch zu laufen bekommen. Fürn Anfänger ist das schon nicht so einfach :-)Nach einer Weile wo der Flow seine Arbeit macht kommen langsam neue Ideen oder Wünsche hoch.
Laut Beschreibung der Register können auch die Optimierer ausgelesen werden. Könnte mir jemand Unterstützung leisten oder mir ein Grundmodel eines Flows bauen wie man die Optimierer Solar Inverter Modbus Interface Definitions.pdf ausliest?
Und noch eine Frage...wie schreibt man auf bestimmte Register? Wie z.B. aufs Register 47075 --> [Energy storage]Maximum charging power RW UINT32 ?
Habt vielen Dank.
Sonnige Grüße aus Sachsen
Peter -
Hallo in die Runde,
erstmal Mega großen Dank für eure Mühen das ihr die Huawei Sun Geräte per Modbus im iobroker abbildet.
Ich hab noch gar keine Erfahrungen mit den Node-Red sammeln können hab den Flow dann doch zu laufen bekommen. Fürn Anfänger ist das schon nicht so einfach :-)Nach einer Weile wo der Flow seine Arbeit macht kommen langsam neue Ideen oder Wünsche hoch.
Laut Beschreibung der Register können auch die Optimierer ausgelesen werden. Könnte mir jemand Unterstützung leisten oder mir ein Grundmodel eines Flows bauen wie man die Optimierer Solar Inverter Modbus Interface Definitions.pdf ausliest?
Und noch eine Frage...wie schreibt man auf bestimmte Register? Wie z.B. aufs Register 47075 --> [Energy storage]Maximum charging power RW UINT32 ?
Habt vielen Dank.
Sonnige Grüße aus Sachsen
Peter@0815_peter
Hallo Peter,
das mit den Optimizern vermute ich wird nix. Die Dokumentation von Huawei zu dem Thema ist (aus meiner Sicht) so unvollständig, das kriegt man nicht ans laufen.
Zum Thema schreiben: Guck mal im 1. Post, da habe ich einen Link zu einer Anleitung, wie man bestimmte Register schreiben kann. Das funktioniert. -
Hey badsnoopy,
cool danke für deine schnelle Antwort.
mh schade...der Adapter für die API ins Fusion Portal liest da auch nix richtiges aus und die App ist mir echt zu langsam... da wäre es echt cool die Optimierer gleich mit dem Modbus auszulesen...Okay ich schau mal in dein Post...das habe ich bestimmt übersehen :-) --> Danke dir...
-
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 möchte gerne meinem Sun2000 WR einen Shelly Pro3EM als Smartmeter anschliessen, statt dem Huawei Smart Sensor DTSU666. Der Shelly ist bei mir schon montiert. Die Daten kann ich wunderbar per Node RED über Modbus an den WR schicken.
Gibt es da Erfahrungen?
-
@badsnoopy667 Ich möchte gerne meinem Sun2000 WR einen Shelly Pro3EM als Smartmeter anschliessen, statt dem Huawei Smart Sensor DTSU666. Der Shelly ist bei mir schon montiert. Die Daten kann ich wunderbar per Node RED über Modbus an den WR schicken.
Gibt es da Erfahrungen?
ich würde den Original Huawei DTSU nehmen oder lassen. Da dieser direkt mit dem WR per RS485 verbunden ist und schnell die Änderungen von Strombezüge dem WR mitteilt, damit dieser dann Strom aus der Batterie liefern kann.
-
ich würde den Original Huawei DTSU nehmen oder lassen. Da dieser direkt mit dem WR per RS485 verbunden ist und schnell die Änderungen von Strombezüge dem WR mitteilt, damit dieser dann Strom aus der Batterie liefern kann.
@0815_peter aber genau das wäre ja der Shelly auch...
-
@0815_peter aber genau das wäre ja der Shelly auch...
ja stimmt das schon
Aber der Shelly funkt per WLAN zum iobroker--> iobroker dann per WLAN oder LAN zum WR und das sollte alles im Sekunden Bereich laufen damit der WR immer den aktuellen Stand hat.
Ich sag immer nix geht über ein KabelIch würde es nicht machen, da mir die Fehlerquellen zu hoch werden wenn man noch eine Middleware dazwischen schaltet.
Die Frage ist ja auch hat der WR die Register im Mod-Bus wo du ihn sagst wieviel gerade eingespeist oder bezogen wird?Aber Versuch macht Klug.
Hast du schon versucht Register zuschreiben? Da musst du die Datenformate usw. einhalten. Ich habe es noch nicht mal geschafft die Batterie Cut OFF Werte dem WR zusenden, da man die Datenwerte richtig aufarbeiten muss.
-
Wenn man dem WR sagen kann, wie hoch die Einspeisung ist, wofür braucht man den Shelly? Ich weiß doch auch über den IR Lesekopf am Smartmeter, wie viel ich verbrauche oder einspeise.
Würde mich sehr interessieren, wie ich die Werte zum WR bekommen. -
Wenn man dem WR sagen kann, wie hoch die Einspeisung ist, wofür braucht man den Shelly? Ich weiß doch auch über den IR Lesekopf am Smartmeter, wie viel ich verbrauche oder einspeise.
Würde mich sehr interessieren, wie ich die Werte zum WR bekommen.@hant0r der WR empfängt die Werte über Modbus. Entweder Modus TCP (Dongle) oder über Modbus RTU 2 Draht Anschluss.
-
@approx3145 Dann muss ich mir das mal genauer ansehen. Wäre ja cool, wenn ich dem WR die Daten zur Verfügung stellen könnte. Hast du das schon gemacht?
Edit: Bzw. weiß du, welche Adresse das beim Modbus ist?