NEWS
[HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)
-
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-
-
@alexander85 danke. das wars.
-
@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.
-
@mickym Ok hätte ja sein können das das eine evtl. mit dem anderen zu tun hat.