NEWS
[HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)
-
@mickym
Wow vielen Dank, dass du dir extra so viel Mühe gemacht hast. Ich stimme dir zu, das ist bei dir nun wesentlich kompakter und man erspart sich das Anlegen jeder einzelner Datenpunkte. Mir ist damals nichts besseres eingefallen wie man auf die "fan out" verzichten kann, von daher habe ich wieder etwas dazugelernt :)
Es ist im Gegenzug dafür aber auch etwas schwieriger zu verstehen bzw. nachzuvollziehen, insbesondere für Node-Red Anfänger. Von daher bin ich mir noch nicht sicher, ob ich meinen Flow noch einmal überarbeiten werde, da er grundsätzlich ja auch problemlos funktioniert.Trotzdem danke noch einmal.
-
Ich wollte mich einfach nur bedanken. Habe mein Wechselrichter seit Anfang der Woche aktiv und habe mit der Anleitung wirklich von 0 auf alles Installiert und eingerichtet bekommen und habe nun die Werte im ioBroker!
DANKEHallo @virfortis,
freut mich, dass es funktioniert hat! Viel Spaß mit Deiner PV-Anlage! -
Hallo @virfortis,
freut mich, dass es funktioniert hat! Viel Spaß mit Deiner PV-Anlage!@badsnoopy667 Vielen Dank. Was mir noch fehlt sind die Statistik Informationen die man so schön in der App oder auch im Web sieht.

Leider scheint es ja weder über den Modbus noch über die API die Werte zu geben. Dazu habe ich hier im Forum das folgende Bild gefunden:

Gibt's eigentlich eine Möglichkeit in Node-red direkt zwei Knoten zu addieren?
Habe weiter oben gelesen, dass der aktuelle Hausverbrauch z.b. gemittelt über 20 Sekunden gebildet werden muss weil die Abfragezeitpunkte unterschiedlich sind. -> Vllt könnte man das umgehen in dem man in Node-Red den Calculator verwenden könnte um zu sagen Adresse A - Adresse B = Wert xyz?
-
@badsnoopy667 Vielen Dank. Was mir noch fehlt sind die Statistik Informationen die man so schön in der App oder auch im Web sieht.

Leider scheint es ja weder über den Modbus noch über die API die Werte zu geben. Dazu habe ich hier im Forum das folgende Bild gefunden:

Gibt's eigentlich eine Möglichkeit in Node-red direkt zwei Knoten zu addieren?
Habe weiter oben gelesen, dass der aktuelle Hausverbrauch z.b. gemittelt über 20 Sekunden gebildet werden muss weil die Abfragezeitpunkte unterschiedlich sind. -> Vllt könnte man das umgehen in dem man in Node-Red den Calculator verwenden könnte um zu sagen Adresse A - Adresse B = Wert xyz?
@virfortis Du kannst mit Node-Red alles rechnen - Du musst nur beides in einem Nachrichtenobjekt haben. Entweder speicherst Du eine Komponente im Kontext oder falls die Daten immer zusammen aktualisiert werden, dann über die JOIN Node in einem Objekt speichern. Ich hab das schon x Mal hier im NodeRed Forum gezeigt.
-
Hallo,
bin neu bei dem Thema, ich habe den am Anfang vorgestellten Flow importiert und angepasst, es funktioniert soweit (über den Modbus Adapter bekomme ich überhaupt keine Verbindung)Es tauchen laufend Fehlermeldungen auf:
node-red.0 2023-07-06 10:22:24.195 warn 6 Jul 10:22:24 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input. node-red.0 2023-07-06 10:22:19.192 warn 6 Jul 10:22:19 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input. node-red.0 2023-07-06 10:22:16.930 warn 6 Jul 10:22:16 - [warn] [modbus-getter:30000] Getter -> Inject while node is not ready for input. node-red.0 2023-07-06 10:22:14.192 warn 6 Jul 10:22:14 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input.Es gibt auch immer wieder stundenweise Aussetzer bei der Abfrage, dann kommen wieder Daten.
Weiters legt mir der Flow nicht alle Datenpunkte an.

Habe ich irgendwo was übersehen beim Anpassen?
Warum legt er mir ein paar Datenpunkte an und den Rest nicht?Noch eine Frage: ich habe mittlerweile 3 in Foren vorgeschlagen RS485/USB Adapter hier herumliegen, bekomme aber keine Daten über den Modbus Adapter. Am Inverter habe ich die Kabel an 2 u 4 angeschlossen da 1 u 3 schon belegt ist.
Soweit ich das herausgelesen habe, sollte das egal sein. -
@rascal Hallo,
ich bin neu in diesem Forum und wollte mal nachdem ich auch fast verzweifelt bin eine Lösung bringen.
Ich habe einen Modbus Rs485/Netzwerk Adapter benutzt.
Am Sun 2000 nicht den Dongle benutzen. Direkt in die Buchsen 1 und 3.
Im Iobroker den Modbus Adapter benutzen.
Bei Allgemein Tcp, IP Adresse, Port (502),Geräte ID 1
Holding Register eintragen. I rechten Feld Abfrage abhaken.
Fertig
Gruß Marcel -
Hallo,
bin neu bei dem Thema, ich habe den am Anfang vorgestellten Flow importiert und angepasst, es funktioniert soweit (über den Modbus Adapter bekomme ich überhaupt keine Verbindung)Es tauchen laufend Fehlermeldungen auf:
node-red.0 2023-07-06 10:22:24.195 warn 6 Jul 10:22:24 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input. node-red.0 2023-07-06 10:22:19.192 warn 6 Jul 10:22:19 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input. node-red.0 2023-07-06 10:22:16.930 warn 6 Jul 10:22:16 - [warn] [modbus-getter:30000] Getter -> Inject while node is not ready for input. node-red.0 2023-07-06 10:22:14.192 warn 6 Jul 10:22:14 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input.Es gibt auch immer wieder stundenweise Aussetzer bei der Abfrage, dann kommen wieder Daten.
Weiters legt mir der Flow nicht alle Datenpunkte an.

Habe ich irgendwo was übersehen beim Anpassen?
Warum legt er mir ein paar Datenpunkte an und den Rest nicht?Noch eine Frage: ich habe mittlerweile 3 in Foren vorgeschlagen RS485/USB Adapter hier herumliegen, bekomme aber keine Daten über den Modbus Adapter. Am Inverter habe ich die Kabel an 2 u 4 angeschlossen da 1 u 3 schon belegt ist.
Soweit ich das herausgelesen habe, sollte das egal sein.@rascal schau Mal ob einzelne Datenpunkte deaktiviert sind (grau). Ansonsten gibt's hier einen anderen flow, der auch ein paar mehre ausgibt und sogar berechnet. Allerdings ist da auch ein kleiner Fehler für das ein DP falsch eingestellt ist.
Ist hier zu finden:
Tts_482 13. Juni 2023, 14:28
@exel flows.json -
@rascal Hallo,
ich bin neu in diesem Forum und wollte mal nachdem ich auch fast verzweifelt bin eine Lösung bringen.
Ich habe einen Modbus Rs485/Netzwerk Adapter benutzt.
Am Sun 2000 nicht den Dongle benutzen. Direkt in die Buchsen 1 und 3.
Im Iobroker den Modbus Adapter benutzen.
Bei Allgemein Tcp, IP Adresse, Port (502),Geräte ID 1
Holding Register eintragen. I rechten Feld Abfrage abhaken.
Fertig
Gruß Marcel@marcel-4
Danke für die Info.
Dann muss ich 3 Kabel auf die Ports 1+3 legen...
Ich habe jetzt einmal das aktuelle Node-Red flow eingespielt und schaue mir das an, bevor ich es über die RS485 nochmals versuche.@virFortis auch dir Danke.
Flow funktioniert soweit gut -
Hallo Huawei Freunde,
ich habe seit Donnerstag endlich meine Anlage laufen, und gleich mit dem Flow aus dem 1. Beitrag genutzt. Sieht eigentlich gut aus, habe schöne Werte. Allerdings gibt es hier Nachts ein paar unplausible Werte die mir meine Statistik echt versauen.
Hat hier jemand evtl. ein ähnliches Problem, und evtl. eine Lösung oder zumindest einen Ansatz?
Grüße Praktiker

-
@rascal schau Mal ob einzelne Datenpunkte deaktiviert sind (grau). Ansonsten gibt's hier einen anderen flow, der auch ein paar mehre ausgibt und sogar berechnet. Allerdings ist da auch ein kleiner Fehler für das ein DP falsch eingestellt ist.
Ist hier zu finden:
Tts_482 13. Juni 2023, 14:28
@exel flows.json@virfortis
Hallo, ich habe noch eine Frage zum Flow:
der Dongle.Load_power wird ca. alle 9 Minuten abgefragt, kann man für diesen Datenpunkt die Abfragezeit verkürzen? -
@virfortis
Hallo, ich habe noch eine Frage zum Flow:
der Dongle.Load_power wird ca. alle 9 Minuten abgefragt, kann man für diesen Datenpunkt die Abfragezeit verkürzen?@rascal sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@virfortis
Hallo, ich habe noch eine Frage zum Flow:
der Dongle.Load_power wird ca. alle 9 Minuten abgefragt, kann man für diesen Datenpunkt die Abfragezeit verkürzen?Ich habe da einfach die Abfrage vom flow aus dem ersten Beitrag genommen da sind unten 5 Werte die alle 3 Sekunden abgefragt werden. Und dem flow hinzugefügt.
Andere Lösung habe ich noch nicht gefunden. -
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
@badsnoopy667
Danke für den flow! Leider funktioniert er nicht mit den modbus-getter. Tausche ich diese gegen modbus-read aus, bekomme ich die Register korrekt in den Objekten angezeigt. Jetzt will ich ungern alles ummodeln. Eine Idee woran das liegen könnte ?
Die modbus-getter sind niemals aktiv, obwohl ich alles richtig eingestellt habe.
Vorab, danke für die Hilfe. -
Hat es eigentlich schon jemand geschafft die start und Ende uhrzeit im time of use betriebsmodus über modbus einzustellen? Laut Dokumentation ist es das register 47255 mit type bytes und quantity 43.
Ich beiße mir daran die Zähne aus und komme einfach nicht voran. Ich würde das gerne mit einem nodered flow machen.
Hintergrund ist, durch den stromanbieter tibber möchte ich in den Wintermonaten gezielt den Speicher zu den günstigen Zeiten laden. Die günstigsten Zeiten habe ich schon in iobroker als datenpunkte und werden täglich berechnet. Auch schon umgerechnet in Minuten.Bei mir hackt es wirklich nur noch daran, wie ich diese mit über modbus schreiben kann.
-
@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 sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@firebowl Wenn Du meinen Flow nicht nimmst - mache eine JSON Node vor die iobroker-Out Node - die stringifiziert Dein Objekt wieder zu einem String.
Hallo mickym,
wo finde ich deinen Flowmfg Jens
-
@mickym sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@firebowl Wenn Du meinen Flow nicht nimmst - mache eine JSON Node vor die iobroker-Out Node - die stringifiziert Dein Objekt wieder zu einem String.
Hallo mickym,
wo finde ich deinen Flowmfg Jens
@jens16 sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@mickym sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@firebowl Wenn Du meinen Flow nicht nimmst - mache eine JSON Node vor die iobroker-Out Node - die stringifiziert Dein Objekt wieder zu einem String.
Hallo mickym,
wo finde ich deinen Flowmfg Jens
Wenn Du ein Objekt hast und in einzelne Datenpunkte schreiben möchtest, dann kannst Du diesen Flow hier nehmen:
https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen -
@jens16 sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@mickym sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):
@firebowl Wenn Du meinen Flow nicht nimmst - mache eine JSON Node vor die iobroker-Out Node - die stringifiziert Dein Objekt wieder zu einem String.
Hallo mickym,
wo finde ich deinen Flowmfg Jens
Wenn Du ein Objekt hast und in einzelne Datenpunkte schreiben möchtest, dann kannst Du diesen Flow hier nehmen:
https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen -
Ich hab für meine Anwendung eine schnelle Abfrage einiger Register benötigt, und die restlichen werden seltener benötigt. Das hab ich jetzt folgendermaßen realisiert (basierend auf Vorschlägen weiter oben - vielen Dank dafür):

Count 3 ist ein Zähler, der 3 Ausgänge durchtaktet, der 1. Ausgang triggert die Abfrage vom Meter.Active_Power, den Wert will ich häufig aktualisiert haben. Sobald die Daten empfangen wurden, geht die Meldung über den Link zurück an die Trigger - Funktion. Die triggert den Count 3, und der zählt weiter auf den 2. Ausgang und triggert die Abfrage vom Inverter.Active_Power (brauch ich auch häufig).
Der 3. Ausgang triggert dann einen Zähler mit 25 Ausgängen:

Hier wird die Abfrage der restlichen 25 Register, die ich nicht häufig brauche, getriggert.
Die Trigger Funktion hat auch noch eine Timeout - Überprüfung, wenn mal keine Antwort kommen sollte, dann wird nach 5 Sekunden getriggert.
Damit werden jetzt die beiden wichtigen Register alle 1-2 Sekunden aktualisiert und der Rest langsamer.
Mit dieser Lösung hab ich sicher gestellt, das eine Abfrage erst bzw. sofort nach dem Empfang der vorigen Abfrage erfolgt, somit hat man die max. Geschwindigkeit und keinen Datenverlust.PS: das Problem mit den fehlenden Datenpunkten und das manuelle Anlegen (siehe weiter oben) kann man sich sparen, wenn man in der Node-Red Instanz "Erstellung von Fremd-Objekten" zulässt

mfg
@joschipp Hallo.
Zuerst mal danke für deine Arbeit.
Kannst du mir sagen, ob bei deinem flows auch die Batterien abgefragt werden?
Bin in Node-red kompletter Anfänger.
Hab zwar dein flows.json erfolgreich installiert aber da mir noch mein 10kW Speicher fehlt, der erst nächste Woche kommt,. von den Batterien keine Datenpunkte gefunden.
kannst du mir da weiter helfen, wird das erst abgefragt wenn die Batterien angeschlossen sind?
Danke im Voraus, Gruß Jürgen -
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.Hallo zusammen.
Vielen Dank für den Flow. Klappt wunderbar, nachdem ich herausfand, dass die "0" bei mir dir richtige ID ist und ein ander Port zu nehmen ist.
Was ich aber leider noch nicht ganz gefunden haben ist der aktuelle Hausverbrauch in den ganzen Registern. Die Register von denen ich an nahm sie seien der Hausverbrauch, liefern mir teilweise die selben Werte wie die Aktuelle PV Leistung.
Konkret würde ich diese Werte haben:- Aktuelle Gesamt Erzeugungsleistung der PV Anlage
- Aktuelle Leistung in den Akku bzw. Aus dem Akku
- Aktueller Verbrauch des Hauses
- aktueller Bezug aus dem Netz bzw. Einspeisung in das Netz
Vielleicht könnt ihr mir helfen welche Register das wirklich sind?
Gruß -
@Christof-Lewandowski
Ich frage drei größere Adressbereiche ab, das wird dann über einen Buffer-Parser ausgewertet und alle Werte in einzelne Datenpunkte geschrieben. Ich denke im Prinzip das was du suchst, anbei der Flow.
Zwischen den Abfragen habe ich aktuell eine Minute Verzögerung, das Abfrageintervall kann man sicher auch noch runtersetzen, läuft so aber bereits seit Wochen problemlos.@spexx hallo. Ich habe Deinen Flow importiert, IP angepasst und schon lief alles - eine deutliche Optimierung zum Opener dieses Threads …. SUPER!
Generelle Frage: woher hast Du den Input, den Du in dem Buffer Parser verwendet hast? Ich frage um sicher zu gehen, dass die von Dir verwendete Definition zu meinem HUIWAI SUN2000-6KTL-M1 passt.
Gruß
Andreas S.

