NEWS
[HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)
-
Seit ein paar Tagen habe ich ein PV-Anlage des Anbieters EnPAL mit dem SUN2000. Ich bin seither auf der Suche nach einer Lösung um die wesentlichen Daten (Erzeugung, Einspeisung etc) auslesen zu können. Bin in dem Bereich aber noch sehr neu und habe bisher um Node-red einen großen Bogen gemacht und bin auf diesen Thread gekommen.
Funktioniert diese Lösung grundsätzlich auch mit EnPAL Installationen ? Die installieren ja auch ein Kommunikationsmodul und werten die WR Daten in ihrem RZ aus.
Kann ich den WLAN-FE-Dongle nach meinen Bedürfnissen verändern oder ist der schon von EnPal im Gebrauch ? Aktuell sendet der WLAN-FE auf 192.168.200.2 (nicht mein WLAN)
Kann jemand zu der Thematik was sagen ? -
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?
-
Ich möchte mich rechtzeitig herzlich bei Euch allen, besonders beim Threadersteller, Spexx und mickym bedanken.
Dank diesem Thread war es ein Leichtes, die Daten in den ioBrocker zu bekommen.
Bisher habe ich mir die Daten der PV-Anlage zwecks Überschuss-Steuerung mehr oder weniger zuverlässig über das Projekt „Solaranzeige“ gezogen und mit Homematic weiterverarbeitet.Mit dieser Lösung hier stehen aber viel einfacher viel mehr Daten zuverlässig zur Verfügung. TOP!!
Viele Grüße
Maik -
Moin zusammen,
erst einmal mega vielen Dank für diesen tollen Thread und die Infos, die ihr bereit gesetllt werden.
Habe soweit vieles für meinen Sun2000-KTL30-M3 übernhemen können und es lief auch erst ganz gut.
Nun wollte ich die Daten innerhalb vom ioBroker verarbeiten und da viel mir auf, dass sie überhaupt nicht mehr aktuell sind.
Nach vielen hin und her habe ich gemerkt, dass das Node-Red skript ca 7 mal Daten liefert und dann nicht mehr. Habt ihr eine Ahnung woran das liegen könnte?Gruß
-
Ich habe das "Problem" glaube ich gefunden - für alle die, die ein ähnliches Verhalten haben.
Mein Wechelrichter erlaubt wohl nur eine Modbus Verbindung. Da ich diese schon mit "Solaranzeige" abgreife, war das mit Node-Red wohl "zu viel". Heißt, die beiden haben sich immer um die Verbindung "gestritten". Bei Solaranzeige zeigte sich das mit 0-Werten.Also wenn man mehrere Verbindungen benötigt, muss man sich mal Modbus-Proxy ansehen.
-
@hant0r Ja, Solaranzeige und iobroker gleichzeitig funktioniert nicht.
Ich habe seit einiger Zeit das hier im Thread optimierte Programm laufen.
Dabei werden alles Daten aus dem Wechselrichter minütlich ausgelesen.
Mit 30 Sekunden Versatz werden dann alle Daten vom Akku/Smartmeter gelesen.
Das Ganze funktioniert bisher völlig fehlerfrei und zuverlässig. Bei Solaranzeige hatte ich immer die Probleme, das nicht alle Daten zuverlässig gelesen wurden. Zudem konnten nur 10 Werte an Homematic übergeben werden.Diese Lösung hier ist deutlich besser !
-
@opamaik danke dir.
Habe es nun mit MQTT gelöst. Solaranzeige sendet alle paar Sekunden alle Werte an den ioBroker.
Brauche da die Daten, um den Hausverbrauch zu errechnen und wieder in die DB zu protokollieren. So kann ich in Grafana alles anzeigen. -
@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.
-
Erst einmal vielen Dank für das Teilen des Flows und den vielen Hilfestellungen.
Wird es problematisch den Abfragezyklus zu verkürzen wenn man nur 3 Datensätze abruft? (L1-L3) da ich hiermit einen Victron Multiplus 2 steuern möchte und ja, es wäre kein Problem eine Minute mehr Strom aus dem Speicher ins Netz zu speisen oder eben ein bisschen zu wenig ins Hausnetz aber ich würde natürlich versuchen es so weit wie möglich optimieren zu wollen
-
@torbennw
Was meinst Du genau? Die "wichtigen" Daten (Erzeugung, Einspeisung, etc.) werden doch schon alle 5 Sekunden abgerufen. Oder meinst Du was anderes? -
@badsnoopy667 ich habe aus dem ersten Thread noch das Script, das ist ja deutlich umfangreicher mit 2 WR + SmartMeter und Batterie. Das ganze bräuchte ich gar nicht, mir reicht die FusionSolar App zum gucken, beim abrufen der Daten geht es bei mir rein um die Überschussspeicherung.
Dein Script sieht deutlich kleiner aus -
@torbennw
Versuch mal den Flow aus Post 1 Update 2: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
-
Brauche kurz eure Hilfe
Mein Nodered spamt mir den Log voll mit folgenden Meldungen.node-red.0 2023-09-01 21:21:03.115 info State value to set for "0_userdata.0.Huawei.Dongle.Load_power" has to be type "string" but received type "number" node-red.0 2023-09-01 21:21:03.063 info State value to set for "0_userdata.0.Huawei.Dongle.Total_input_power" has to be type "string" but received type "number" node-red.0 2023-09-01 21:21:00.569 info State value to set for "0_userdata.0.Huawei.Meter.Active_Power" has to be stringified but received type "number" node-red.0 2023-09-01 21:20:55.675 info State value to set for "0_userdata.0.Huawei.Inverter.Peak_Active_Power_of_current_Day" has to be stringified but received type "number" node-red.0 2023-09-01 21:20:53.798 info State value to set for "0_userdata.0.Huawei.Inverter.Power_Grid_Current" has to be stringified but received type "number" node-red.0 2023-09-01 21:20:53.181 info State value to set for "0_userdata.0.Huawei.Inverter.Power_Grid_Voltage" has to be stringified but received type "number" node-red.0 2023-09-01 21:20:52.511 info State value to set for "0_userdata.0.Huawei.Dongle.Total_active_power" has to be type "string" but received type "number" node-red.0 2023-09-01 21:20:52.493 info State value to set for "0_userdata.0.Huawei.Dongle.Grid_power" has to be type "string" but received type "number" node-red.0 2023-09-01 21:20:52.439 info State value to set for "0_userdata.0.Huawei.Dongle.Load_power" has to be type "string" but received type "number" node-red.0 2023-09-01 21:20:52.396 info State value to set for "0_userdata.0.Huawei.Dongle.Total_input_power" has to be type "string" but received type "number" node-red.0 2023-09-01 21:20:46.342 info State value to set for "0_userdata.0.Huawei.Inverter.Input_Power" has to be stringified but received type "number" node-red.0 2023-09-01 21:20:42.775 info State value to set for "0_userdata.0.Huawei.Dongle.Total_active_power" has to be type "string" but received type "number" node-red.0 2023-09-01 21:20:42.714 info State value to set for "0_userdata.0.Huawei.Dongle.Grid_power" has to be type "string" but received type "number" node-red.0 2023-09-01 21:20:42.614 info State value to set for "0_userdata.0.Huawei.Dongle.Load_power" has to be type "string" but received type "number" node-red.0 2023-09-01 21:20:42.574 info State value to set for "0_userdata.0.Huawei.Dongle.Total_input_power" has to be type "string" but received type "number" node-red.0 2023-09-01 21:20:35.957 info State value to set for "0_userdata.0.Huawei.Inverter.Peak_Active_Power_of_current_Day" has to be stringified but received type "number" node-red.0 2023-09-01 21:20:34.209 info State value to set for "0_userdata.0.Huawei.Inverter.Power_Grid_Current" has to be stringified but received type "number" node-red.0 2023-09-01 21:20:33.203 info State value to set for "0_userdata.0.Huawei.Inverter.Power_Grid_Voltage" has to be stringified but received type "number"
Was genau muss ich ändern damit die Werte passend empfangen werden?
Danke -
@fridolin01 Du hast die ganzen Datenpunkte als Strings deklariert, schreibst aber Zahlen da rein. Also den Typ ändern.
-
Hallo,
ich bin noch neu bei iobroker und neuer als neu bei node red. Ich habe eines der Skripte nun bei Node Red importiert, die IP-Adresse des WR angepasst und auch Übernahme (deploy) geklickt.
Es passiert allerdings nichts. Unter 0_userdata.0 wird nichts angelegt. Im Protokoll sieht es folgendemaßen aus:"Verschlüsselte Credentials nicht gefunden" klingt so als müsste ich noch Logindaten angeben?
-
Nein hat damit nichts zu tun. Du musst das Erstellen von Fremdobjekten im Adapter zulassen
-
@mickym In den Instanzeinstellungen von Node Red, richtig?
Das hatte ich schon gelesen und auch gemacht. Hat aber nicht geholfen. -
@benutzer0815 Diese Fehlermeldung hat zwar damit zu tun, dass die Datei mit den credentials nicht gefunden wurde, aber das sollte mit dem Erstellen von Datenpunkten nichts zu tun haben. Zeig halt mal Deine iobroker-out node.
-
@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-