Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

[HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)

Geplant Angeheftet Gesperrt Verschoben Node-Red
574 Beiträge 110 Kommentatoren 223.3k Aufrufe 108 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • F firebowl

    @badsnoopy667 Hab die HA Integration mal kurz getestet. Prinzipiell sollte damit genau das funktionieren was wir wollen. Allerdings habe ich das Problem, dass bei der Einrichtung nicht nach der Installer Kennung und dem PW gefragt wird und somit sind genau die gewünschten Einstellungen nicht änderbar. Das Problem gab es laut git schon mal und wurde irgendwie behoben. Denk ich mach mal ein neues Issue im git auf.

    B Offline
    B Offline
    badsnoopy667
    schrieb am zuletzt editiert von
    #458

    @firebowl
    Danke für's ausprobieren!
    Ich habe mittlerweile mit Hilfe von @Doom-86 rausbekommen wie man die Batterie per Modbus zum laden überreden kann. Das scheint erstmal ganz gut zu funktionieren! Von daher würde ich mir die HA Integration erstmal ersparen.
    Habe die Anleitung wie man das mit iobroker (und der FusionSolar App) hinbekommt im 1. Post unter Kapitel 4.1 hinzugefügt.

    F 1 Antwort Letzte Antwort
    0
    • B badsnoopy667

      @firebowl
      Danke für's ausprobieren!
      Ich habe mittlerweile mit Hilfe von @Doom-86 rausbekommen wie man die Batterie per Modbus zum laden überreden kann. Das scheint erstmal ganz gut zu funktionieren! Von daher würde ich mir die HA Integration erstmal ersparen.
      Habe die Anleitung wie man das mit iobroker (und der FusionSolar App) hinbekommt im 1. Post unter Kapitel 4.1 hinzugefügt.

      F Offline
      F Offline
      firebowl
      schrieb am zuletzt editiert von
      #459

      @badsnoopy667 Auch ne coole Option!
      Allerdings hab ich meinen Dongle durchs probieren vorhin glaub beleidigt. Aktuell bekomm ich per Node-RED keine Daten mehr.
      Die HA Integration ist deaktiviert aber beim starten der Flows im ioBroker kommt nur:

      
      node-red.0
      2023-11-06 14:41:04.264	warn	6 Nov 14:41:04 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input.
      
      node-red.0
      2023-11-06 14:41:04.260	warn	6 Nov 14:41:04 - [warn] [modbus-getter:30000] Getter -> Inject while node is not ready for input.
      
      node-red.0
      2023-11-06 14:41:04.061	warn	6 Nov 14:41:04 - [warn] Verschlüsselte Credentials nicht gefunden
      

      Damit werden einmalig Daten gelesen und dann macht er nix mehr.
      Mal schauen ob ziehen und stecken des Dongle was hilft.

      1 Antwort Letzte Antwort
      0
      • B badsnoopy667

        @madmat17
        Das klingt spannend. Kannst du deinen Flow Mal Posten? Danke Dir!

        M Offline
        M Offline
        madmat17
        schrieb am zuletzt editiert von
        #460

        @badsnoopy667
        Herrje - es tut mir unendlich leid. Ich war lange nicht im Forum aktiv (da ich selber IOBroker nicht eingesetzt hatte) und hatte nicht gesehen, dass Interesse am Flow besteht.
        Ich kann den Flow gerne teilen (ist allerdings eine reine Modbusabfrage aus node-red heraus gefolgt von einem eintrag in meiner InfluxDB).
        Da ich nun aber doch auf IOBroker umsteige (mit der Umstellung meines Servers von einem FreeBSD-Derivats auf Linux endlich vernünftig möglich!) würde ich den neuen Flow teilen sobald fertig. ;-)

        Lg,
        Mat

        M 1 Antwort Letzte Antwort
        0
        • M madmat17

          @badsnoopy667
          Herrje - es tut mir unendlich leid. Ich war lange nicht im Forum aktiv (da ich selber IOBroker nicht eingesetzt hatte) und hatte nicht gesehen, dass Interesse am Flow besteht.
          Ich kann den Flow gerne teilen (ist allerdings eine reine Modbusabfrage aus node-red heraus gefolgt von einem eintrag in meiner InfluxDB).
          Da ich nun aber doch auf IOBroker umsteige (mit der Umstellung meines Servers von einem FreeBSD-Derivats auf Linux endlich vernünftig möglich!) würde ich den neuen Flow teilen sobald fertig. ;-)

          Lg,
          Mat

          M Offline
          M Offline
          madmat17
          schrieb am zuletzt editiert von madmat17
          #461

          Nun habe ich meinen Flow fertig, den ich hier gerne teile.

          Abfrage der Werte des Huawei Sun2000 Wechselrichters
          Folgendes stand hier im Vordergrund:

          • Aufgrund der Trägheit des Huawei-Dongles die Anzahl der Abfragen so weit es geht reduzieren und damit die Geschwindigkeit erhöhen - daher werden die Register gesammelt abgefragt (aufgrund der Adressabstände mit insgesamt nur 3 Aufrufen je Abfrage)
          • Da die Werte auch in eine Datenbank (InfluxDB) geschrieben werden, sollten ebenfalls so viele Register wie möglich gleichzeitig abgefragt werden (um so weit wie möglich die Datenkonsistenz zu wahren)
          • Von einem 5-Sekunden-Heartbeat ausgehend werden im IOBroker alle 5 Sekunden die relevantesten Werte aktualisiert und in die IOBroker-Objekte geschrieben (so weit nicht neu) - die Objekte werden übrigens ordentlich von node-red angelegt. Nach jedem 12. Beat (also alle 60 Sekunden) werden statt nur(!) der relevantesten Werte alle benötigten Werte (inklusive der relevantesten) vom Modbus gelesen, in die IOBroker-Objekte geschrieben und in eine InfluxDB geschrieben.

          Mein Basis-Flow kommt mit denselben node-red Modulen (node-red-contrib-calc, node-red-contrib-buffer-parser, node-red-contrib-buffer-parser) wie von @badsnoopy667 im allerersten Post angeführt aus.
          Für das Schreiben in die InfluxDB (falls erwünscht) wird noch das Modul node-red-contrib-influxdb benötigt und für den PV-Forecast (siehe weiter unten) noch das Modul node-red-contrib-sun-position.

          Der Basis-Flow mit InfluxDB-Integration und den Elementen zum Schreiben der Register (aus dem ersten Post).
          Screenshot 2023-11-17 132947.png

          PV-Forecast
          Des weiteren werden auch Forecast-Daten von Solcast abgerufen und in die InfluxDB geschrieben, sowie die tatsächlichen Werte an Solcast zurückgeschrieben (Solcast lernt aus den zurückgelieferten Werten und die Freunde können so ihren Dienst verbessern.
          Leider kann ich mich beim besten Willen nicht mehr erinnern, wo ich den Flow her habe (er stammt NICHT aus meiner Feder). ABER ihr braucht dafür einen Solcast-Account, eine in eurem Account angelegte PV-Anlage und einen API-Key zum Abfragen der Werte.

          • Account und Anlage der PV-Anlage: https://toolkit.solcast.com.au/
          • API-Key kann dann hier erstellt werden: https://toolkit.solcast.com.au/account/api-key

          Nach dem Anlegen der PV-Anlage (Position, Dimensionierung, Ausrichtung, ...) bekommt die Anlage eine ID, über welche die auf die Anlage bezogenen Forecast-Werte abgerufen werden können. Diese URL ist im Flow in den nodes "Solcast API - get Live+Forecast JSON", "Solcast API - get Past + Estimated Actuals" und "Solcast API - post measurements" abzulegen. Ebenfalls in diesen Nodes ist unter "Token" euer API-Key (nicht zu verwechseln mit der Anlagen-ID!) zu hinterlegen.

          Änderung der Namen der Datenpunkte:
          Wird in diesem Post erläutert: https://forum.iobroker.net/post/1084664

          Viel Spaß damit. ;-)
          Huawei_Sun2000_InfluxDB_Solcast.txt

          LG,
          Mat

          EDIT:
          Es gibt noch ein Problem mit dem Timing. Die Abfragen über meine alte node-red Instanz (lief auf einem x86 FreeBSD-Derivat) war in dieser Konfiguration problemlos; im aktuellen Setup (node-red im ioBroker auf einem RasPi) wirft extrem viele Time-Outs und Warning (Inject Node not ready). Wenn ich auf die Lösung gekommen bin, gibt es ein Update zu meinem Flow...
          Das Problem mit den Timeouts hat sich in Wohlgefallen aufgelöst. Mehr dazu hier: https://forum.iobroker.net/topic/51639/howto-huawei-sun2000-wr-modbus-mit-node-red-read-write/485

          D M 2 Antworten Letzte Antwort
          0
          • M madmat17

            Nun habe ich meinen Flow fertig, den ich hier gerne teile.

            Abfrage der Werte des Huawei Sun2000 Wechselrichters
            Folgendes stand hier im Vordergrund:

            • Aufgrund der Trägheit des Huawei-Dongles die Anzahl der Abfragen so weit es geht reduzieren und damit die Geschwindigkeit erhöhen - daher werden die Register gesammelt abgefragt (aufgrund der Adressabstände mit insgesamt nur 3 Aufrufen je Abfrage)
            • Da die Werte auch in eine Datenbank (InfluxDB) geschrieben werden, sollten ebenfalls so viele Register wie möglich gleichzeitig abgefragt werden (um so weit wie möglich die Datenkonsistenz zu wahren)
            • Von einem 5-Sekunden-Heartbeat ausgehend werden im IOBroker alle 5 Sekunden die relevantesten Werte aktualisiert und in die IOBroker-Objekte geschrieben (so weit nicht neu) - die Objekte werden übrigens ordentlich von node-red angelegt. Nach jedem 12. Beat (also alle 60 Sekunden) werden statt nur(!) der relevantesten Werte alle benötigten Werte (inklusive der relevantesten) vom Modbus gelesen, in die IOBroker-Objekte geschrieben und in eine InfluxDB geschrieben.

            Mein Basis-Flow kommt mit denselben node-red Modulen (node-red-contrib-calc, node-red-contrib-buffer-parser, node-red-contrib-buffer-parser) wie von @badsnoopy667 im allerersten Post angeführt aus.
            Für das Schreiben in die InfluxDB (falls erwünscht) wird noch das Modul node-red-contrib-influxdb benötigt und für den PV-Forecast (siehe weiter unten) noch das Modul node-red-contrib-sun-position.

            Der Basis-Flow mit InfluxDB-Integration und den Elementen zum Schreiben der Register (aus dem ersten Post).
            Screenshot 2023-11-17 132947.png

            PV-Forecast
            Des weiteren werden auch Forecast-Daten von Solcast abgerufen und in die InfluxDB geschrieben, sowie die tatsächlichen Werte an Solcast zurückgeschrieben (Solcast lernt aus den zurückgelieferten Werten und die Freunde können so ihren Dienst verbessern.
            Leider kann ich mich beim besten Willen nicht mehr erinnern, wo ich den Flow her habe (er stammt NICHT aus meiner Feder). ABER ihr braucht dafür einen Solcast-Account, eine in eurem Account angelegte PV-Anlage und einen API-Key zum Abfragen der Werte.

            • Account und Anlage der PV-Anlage: https://toolkit.solcast.com.au/
            • API-Key kann dann hier erstellt werden: https://toolkit.solcast.com.au/account/api-key

            Nach dem Anlegen der PV-Anlage (Position, Dimensionierung, Ausrichtung, ...) bekommt die Anlage eine ID, über welche die auf die Anlage bezogenen Forecast-Werte abgerufen werden können. Diese URL ist im Flow in den nodes "Solcast API - get Live+Forecast JSON", "Solcast API - get Past + Estimated Actuals" und "Solcast API - post measurements" abzulegen. Ebenfalls in diesen Nodes ist unter "Token" euer API-Key (nicht zu verwechseln mit der Anlagen-ID!) zu hinterlegen.

            Änderung der Namen der Datenpunkte:
            Wird in diesem Post erläutert: https://forum.iobroker.net/post/1084664

            Viel Spaß damit. ;-)
            Huawei_Sun2000_InfluxDB_Solcast.txt

            LG,
            Mat

            EDIT:
            Es gibt noch ein Problem mit dem Timing. Die Abfragen über meine alte node-red Instanz (lief auf einem x86 FreeBSD-Derivat) war in dieser Konfiguration problemlos; im aktuellen Setup (node-red im ioBroker auf einem RasPi) wirft extrem viele Time-Outs und Warning (Inject Node not ready). Wenn ich auf die Lösung gekommen bin, gibt es ein Update zu meinem Flow...
            Das Problem mit den Timeouts hat sich in Wohlgefallen aufgelöst. Mehr dazu hier: https://forum.iobroker.net/topic/51639/howto-huawei-sun2000-wr-modbus-mit-node-red-read-write/485

            D Offline
            D Offline
            Doom.86
            schrieb am zuletzt editiert von Doom.86
            #462

            @madmat17 sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):

            node-red-contrib-sun-position.

            Hallo Madmat. Erstmal vielen Dank für deinen Flow. Wie muss der Flow denn aussehen, wenn ich zwei Wechselrichter abfragen möchte?

            Mir ist noch aufgefallen, unter den Registern zum schreiben, das Register 47078 hast du mit Bat Max Discharge Power beschrieben. von meinem aktuellen flow sollte das Register aber nur sein, um AC Ladung mit 1 aktiviert und 0 deaktiviert sein.

            Lässt sich der Flow auch so schreiben, dass bei dem Long Intervall auch die schreibbaren Werte abgefragt werde? also Max Charge Power, Discharge Power, AC-Laden und Workingmode. So hat man eine Rückmeldung auf einem Datenpunkt, was aktuell eingestellt ist.

            Leider bekomme ich auch diese Meldungen. Einmal gleich einen Error

            node-red.0
            2023-11-18 11:01:18.833	error	18 Nov 11:01:18 - [error] [modbus-getter:Inverter Data 32000-32116 Inverter 1] Error: Timed out at /opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-modbus/modbus/maps/core/core/modbus-client-core.js:79:156
            
            node-red.0
            2023-11-18 11:01:18.832	warn	18 Nov 11:01:18 - [warn] [modbus-getter:Battery Charging Power 37001] Modbus Failure On State sending Get More About It By Logging
            
            node-red.0
            2023-11-18 11:01:18.831	warn	18 Nov 11:01:18 - [warn] [modbus-getter:Input Power & Inverter Active Power Inverter 1] Modbus Failure On State sending Get More About It By Logging
            
            node-red.0
            2023-11-18 11:00:07.336	warn	18 Nov 11:00:07 - [warn] [modbus-getter:Input Power & Inverter Active Power Inverter 1] Getter -> Inject while node is not ready for input.
            
            M 1 Antwort Letzte Antwort
            0
            • F Offline
              F Offline
              Franzosenfranz
              schrieb am zuletzt editiert von
              #463

              Hallo zusammen,

              ich habe den Flow bei mir nun auch am Laufen und kann alle für mich erforderlichen Werte Lesen und Schreiben.
              Danke an alle und vor allem an badsnoopy667 für die super Arbeit hier.

              Ich hätte jedoch noch eine lästige Sache. Im LOG laufen nachfolgende drei Meldungen laufend auf:

              2023-11-20 11:39:44.793 info State value to set for "0_userdata.0.Huawei.Battery.ChargeFromGridFunction" has to be one of type "string", "number", "boolean" but received type "object"
              2023-11-20 11:39:41.335 info State value to set for "0_userdata.0.Huawei.Battery.Battery_TOU_mode" has to be stringified but received type "object"
              2023-11-20 11:39:39.491 info State value to set for "0_userdata.0.Huawei.Battery.Battery_Max_Discharge_Power_TEST" has to be stringified but received type "object"

              Ich hatte diese Meldungen noch bei mehr Objekten und habe das dann per Einstellungen in den Objekten die meisten Meldungen wegbekommen. Nur bei diesen 3 schaffe ich es nicht, das es Ruhe im Log gibt. Merkwürdig ist aber auch, das die Werte dieser 3 Objekten in eckicken Klammern (z.B. [2]) dargestellt werden. Keine Ahnung wo die herkommen. Kann jemand helfen?

              Gruß
              Franz

              B 1 Antwort Letzte Antwort
              0
              • D Doom.86

                @madmat17 sagte in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):

                node-red-contrib-sun-position.

                Hallo Madmat. Erstmal vielen Dank für deinen Flow. Wie muss der Flow denn aussehen, wenn ich zwei Wechselrichter abfragen möchte?

                Mir ist noch aufgefallen, unter den Registern zum schreiben, das Register 47078 hast du mit Bat Max Discharge Power beschrieben. von meinem aktuellen flow sollte das Register aber nur sein, um AC Ladung mit 1 aktiviert und 0 deaktiviert sein.

                Lässt sich der Flow auch so schreiben, dass bei dem Long Intervall auch die schreibbaren Werte abgefragt werde? also Max Charge Power, Discharge Power, AC-Laden und Workingmode. So hat man eine Rückmeldung auf einem Datenpunkt, was aktuell eingestellt ist.

                Leider bekomme ich auch diese Meldungen. Einmal gleich einen Error

                node-red.0
                2023-11-18 11:01:18.833	error	18 Nov 11:01:18 - [error] [modbus-getter:Inverter Data 32000-32116 Inverter 1] Error: Timed out at /opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-modbus/modbus/maps/core/core/modbus-client-core.js:79:156
                
                node-red.0
                2023-11-18 11:01:18.832	warn	18 Nov 11:01:18 - [warn] [modbus-getter:Battery Charging Power 37001] Modbus Failure On State sending Get More About It By Logging
                
                node-red.0
                2023-11-18 11:01:18.831	warn	18 Nov 11:01:18 - [warn] [modbus-getter:Input Power & Inverter Active Power Inverter 1] Modbus Failure On State sending Get More About It By Logging
                
                node-red.0
                2023-11-18 11:00:07.336	warn	18 Nov 11:00:07 - [warn] [modbus-getter:Input Power & Inverter Active Power Inverter 1] Getter -> Inject while node is not ready for input.
                
                M Offline
                M Offline
                madmat17
                schrieb am zuletzt editiert von madmat17
                #464

                @doom-86
                Das Schreiben ins Register 47078 nutze ich nicht - das ist einfach 1:1 aus dem Flow des allerersten Posts von @badsnoopy667 übernommen. ;-)
                Irgendwo im Verlauf steht auch, wie man mehrere Inverter abfrägt, wenn ich mich nicht irre. Wenn ich nicht ganz falsch liege, brauchst du für jeden Wechselrichter jeweils einen eigenen Modbus-node (da sich die Unit-IDs der Wechselrichter unterscheiden müssen) und auch eine Server-Konfiguration je Wechselrichter (da dort auch die Unit-ID hinterlegt ist).

                Warum dein node-red den Inverter gar nicht erreicht kann viele Ursachen haben. Als erstes würde ich einmal folgendes checken:

                • Modbus TCP ist auf dem Dongle aktiv (und fall im eingeschränkten Modus die korrekte Client-IP hinterlegt)?
                • Der Dongle wird im LAN erkannt
                • Server-Konfiguration für die Modbus-Abfrage in node-red ist korrekt? (IP, Port, Device-ID)
                • Device-ID in den Modbus-nodes des Flows ist korrekt?

                LG,
                Mat

                B D 2 Antworten Letzte Antwort
                0
                • F Franzosenfranz

                  Hallo zusammen,

                  ich habe den Flow bei mir nun auch am Laufen und kann alle für mich erforderlichen Werte Lesen und Schreiben.
                  Danke an alle und vor allem an badsnoopy667 für die super Arbeit hier.

                  Ich hätte jedoch noch eine lästige Sache. Im LOG laufen nachfolgende drei Meldungen laufend auf:

                  2023-11-20 11:39:44.793 info State value to set for "0_userdata.0.Huawei.Battery.ChargeFromGridFunction" has to be one of type "string", "number", "boolean" but received type "object"
                  2023-11-20 11:39:41.335 info State value to set for "0_userdata.0.Huawei.Battery.Battery_TOU_mode" has to be stringified but received type "object"
                  2023-11-20 11:39:39.491 info State value to set for "0_userdata.0.Huawei.Battery.Battery_Max_Discharge_Power_TEST" has to be stringified but received type "object"

                  Ich hatte diese Meldungen noch bei mehr Objekten und habe das dann per Einstellungen in den Objekten die meisten Meldungen wegbekommen. Nur bei diesen 3 schaffe ich es nicht, das es Ruhe im Log gibt. Merkwürdig ist aber auch, das die Werte dieser 3 Objekten in eckicken Klammern (z.B. [2]) dargestellt werden. Keine Ahnung wo die herkommen. Kann jemand helfen?

                  Gruß
                  Franz

                  B Offline
                  B Offline
                  badsnoopy667
                  schrieb am zuletzt editiert von
                  #465

                  @franzosenfranz said in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):

                  2023-11-20 11:39:44.793 info State value to set for "0_userdata.0.Huawei.Battery.ChargeFromGridFunction" has to be one of type "string", "number", "boolean" but received type "object"
                  2023-11-20 11:39:41.335 info State value to set for "0_userdata.0.Huawei.Battery.Battery_TOU_mode" has to be stringified but received type "object"
                  2023-11-20 11:39:39.491 info State value to set for "0_userdata.0.Huawei.Battery.Battery_Max_Discharge_Power_TEST" has to be stringified but received type "object"

                  Stell "0_userdata.0.Huawei.Battery.Battery_Max_Discharge_Power_TEST" mal auf "type": "number", damit geht es bei mir.
                  Die anderen beiden Objekte habe ich gar nicht. Kommen die überhaupt aus meinem Flow? Sonst ggf. mal löschen?

                  1 Antwort Letzte Antwort
                  0
                  • M madmat17

                    @doom-86
                    Das Schreiben ins Register 47078 nutze ich nicht - das ist einfach 1:1 aus dem Flow des allerersten Posts von @badsnoopy667 übernommen. ;-)
                    Irgendwo im Verlauf steht auch, wie man mehrere Inverter abfrägt, wenn ich mich nicht irre. Wenn ich nicht ganz falsch liege, brauchst du für jeden Wechselrichter jeweils einen eigenen Modbus-node (da sich die Unit-IDs der Wechselrichter unterscheiden müssen) und auch eine Server-Konfiguration je Wechselrichter (da dort auch die Unit-ID hinterlegt ist).

                    Warum dein node-red den Inverter gar nicht erreicht kann viele Ursachen haben. Als erstes würde ich einmal folgendes checken:

                    • Modbus TCP ist auf dem Dongle aktiv (und fall im eingeschränkten Modus die korrekte Client-IP hinterlegt)?
                    • Der Dongle wird im LAN erkannt
                    • Server-Konfiguration für die Modbus-Abfrage in node-red ist korrekt? (IP, Port, Device-ID)
                    • Device-ID in den Modbus-nodes des Flows ist korrekt?

                    LG,
                    Mat

                    B Offline
                    B Offline
                    badsnoopy667
                    schrieb am zuletzt editiert von
                    #466

                    @doom-86 @madmat17 said in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):

                    Server-Konfiguration je Wechselrichter (da dort auch die Unit-ID hinterlegt ist).

                    Ist nach meiner Erfahrung nicht nötig. Eine Server Konfiguration reicht (mit der IP-Adresse des Dongles und der ID des Wechselrichters an dem der Dongle hängt.)
                    Dann aber wie Du gesagt hast jeweils eigene nodes mit den korrekten IDs pro WR für die einzelnen Register.
                    Und nicht zu viel und schnell auf einmal abfragen, dann kommt nix!
                    Erstmal mit 1-2 nodes testen bis es läuft, dann erweitern.

                    1 Antwort Letzte Antwort
                    1
                    • M madmat17

                      @doom-86
                      Das Schreiben ins Register 47078 nutze ich nicht - das ist einfach 1:1 aus dem Flow des allerersten Posts von @badsnoopy667 übernommen. ;-)
                      Irgendwo im Verlauf steht auch, wie man mehrere Inverter abfrägt, wenn ich mich nicht irre. Wenn ich nicht ganz falsch liege, brauchst du für jeden Wechselrichter jeweils einen eigenen Modbus-node (da sich die Unit-IDs der Wechselrichter unterscheiden müssen) und auch eine Server-Konfiguration je Wechselrichter (da dort auch die Unit-ID hinterlegt ist).

                      Warum dein node-red den Inverter gar nicht erreicht kann viele Ursachen haben. Als erstes würde ich einmal folgendes checken:

                      • Modbus TCP ist auf dem Dongle aktiv (und fall im eingeschränkten Modus die korrekte Client-IP hinterlegt)?
                      • Der Dongle wird im LAN erkannt
                      • Server-Konfiguration für die Modbus-Abfrage in node-red ist korrekt? (IP, Port, Device-ID)
                      • Device-ID in den Modbus-nodes des Flows ist korrekt?

                      LG,
                      Mat

                      D Offline
                      D Offline
                      Doom.86
                      schrieb am zuletzt editiert von
                      #467

                      @madmat17 ich habe aktuell einen flow laufen, der auch schon mal hier stand. Allerdings kommt da auch ab und an, dass die node nicht bereit ist.

                      Mit der IP des dongels braucht es in meinem Fall die unit ID 2 für den zweiten wechselrichter.

                      Ich wollte eigentlich auf deinen flow umsteigen, aber verstehe nicht ganz, wie ich den flow für den zweiten wechselrichter hinzufügen kann. Auch nicht, wie ich diese in separate datenpunkte schreiben kann.

                      B 1 Antwort Letzte Antwort
                      0
                      • D Doom.86

                        @madmat17 ich habe aktuell einen flow laufen, der auch schon mal hier stand. Allerdings kommt da auch ab und an, dass die node nicht bereit ist.

                        Mit der IP des dongels braucht es in meinem Fall die unit ID 2 für den zweiten wechselrichter.

                        Ich wollte eigentlich auf deinen flow umsteigen, aber verstehe nicht ganz, wie ich den flow für den zweiten wechselrichter hinzufügen kann. Auch nicht, wie ich diese in separate datenpunkte schreiben kann.

                        B Offline
                        B Offline
                        badsnoopy667
                        schrieb am zuletzt editiert von
                        #468

                        @doom-86
                        Du kopierst einfach die nodes die du beim 2. WR abfragen willst. Da trägst du die korrekte ID vom 2. WR ein.
                        Und bezüglich des schreibens in Datenpunkte: Du musst neue Objekte anlegen (oder durch node-red anlegen lassen). Die nennst du dann halt z.B. "Active_Power_Interter_2". Da lässt du dann die Daten reinschreiben.
                        Aber wie gesagt: Wenn Du jetzt schon ab und zu die Nachricht bekommst, dass die node nicht bereit ist, dann vermute ich, dass du zu viele Daten abfragst, oder zu schnell. Gerade bei mehreren WR scheint Modbus bei Huawei sehr schnell an seine Grenzen zu kommen. Ich würde empfehlen wirklich nur die nötigsten Daten abzufragen.

                        D 1 Antwort Letzte Antwort
                        0
                        • kmxakK Offline
                          kmxakK Offline
                          kmxak
                          Most Active
                          schrieb am zuletzt editiert von
                          #469

                          ist das bekannt das in den logs immer has to be stringified but received type "number" kommt?

                          Gruß Alex

                          B 1 Antwort Letzte Antwort
                          0
                          • kmxakK kmxak

                            ist das bekannt das in den logs immer has to be stringified but received type "number" kommt?

                            B Offline
                            B Offline
                            badsnoopy667
                            schrieb am zuletzt editiert von
                            #470

                            @kmxak
                            Bei einigen Leuten passiert das wohl. Bei mir nicht. Um welches Objekt geht es?

                            1 Antwort Letzte Antwort
                            0
                            • B badsnoopy667

                              @doom-86
                              Du kopierst einfach die nodes die du beim 2. WR abfragen willst. Da trägst du die korrekte ID vom 2. WR ein.
                              Und bezüglich des schreibens in Datenpunkte: Du musst neue Objekte anlegen (oder durch node-red anlegen lassen). Die nennst du dann halt z.B. "Active_Power_Interter_2". Da lässt du dann die Daten reinschreiben.
                              Aber wie gesagt: Wenn Du jetzt schon ab und zu die Nachricht bekommst, dass die node nicht bereit ist, dann vermute ich, dass du zu viele Daten abfragst, oder zu schnell. Gerade bei mehreren WR scheint Modbus bei Huawei sehr schnell an seine Grenzen zu kommen. Ich würde empfehlen wirklich nur die nötigsten Daten abzufragen.

                              D Offline
                              D Offline
                              Doom.86
                              schrieb am zuletzt editiert von
                              #471

                              @badsnoopy667 Das mit den Node kopieren ist mir noch klar. aber mir ist in deinem Flow nicht klar, wo ich die Datenpunkte angebe? Ich habe die einzelnen Nodes schon angeschaut, aber nichts gefunden oder übersehen.

                              Bei dem Flow des Eingangstrades, ist es mir klar, da steht in der iobroker out der Datenpunkt. Aber bei deinem Flow verstehe ich das noch nicht so richtig.

                              Ich hatte meinen aktuellen Flow schon mit 8 Sekunden Abfrageintervall ohne Probleme laufen. dann habe ich noch mit anderen Registern rum gespielt und bin zu dem fehler mit node is not ready gekommen. Daraufhin habe ich alles wieder in der vorherigen zustand versetzt, aber die 8 Sekunden wollte er nicht mehr.

                              B 1 Antwort Letzte Antwort
                              0
                              • D Doom.86

                                @badsnoopy667 Das mit den Node kopieren ist mir noch klar. aber mir ist in deinem Flow nicht klar, wo ich die Datenpunkte angebe? Ich habe die einzelnen Nodes schon angeschaut, aber nichts gefunden oder übersehen.

                                Bei dem Flow des Eingangstrades, ist es mir klar, da steht in der iobroker out der Datenpunkt. Aber bei deinem Flow verstehe ich das noch nicht so richtig.

                                Ich hatte meinen aktuellen Flow schon mit 8 Sekunden Abfrageintervall ohne Probleme laufen. dann habe ich noch mit anderen Registern rum gespielt und bin zu dem fehler mit node is not ready gekommen. Daraufhin habe ich alles wieder in der vorherigen zustand versetzt, aber die 8 Sekunden wollte er nicht mehr.

                                B Offline
                                B Offline
                                badsnoopy667
                                schrieb am zuletzt editiert von badsnoopy667
                                #472

                                @doom-86

                                datenpunkte.png

                                Edit: Mein Flow ist der aus Thema 1. Und zwar der erste, nicht der untere mit den mehreren WR. Den habe ich nicht getestet.
                                Nimm den 1., der funktioniert.

                                D 1 Antwort Letzte Antwort
                                0
                                • B badsnoopy667

                                  @doom-86

                                  datenpunkte.png

                                  Edit: Mein Flow ist der aus Thema 1. Und zwar der erste, nicht der untere mit den mehreren WR. Den habe ich nicht getestet.
                                  Nimm den 1., der funktioniert.

                                  D Offline
                                  D Offline
                                  Doom.86
                                  schrieb am zuletzt editiert von
                                  #473

                                  @badsnoopy667 sollte eigentlich an @madmat17. Mit seinem flow. Ich hatte mich da echt verschaut. :grin:

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • D Doom.86

                                    @badsnoopy667 sollte eigentlich an @madmat17. Mit seinem flow. Ich hatte mich da echt verschaut. :grin:

                                    M Offline
                                    M Offline
                                    madmat17
                                    schrieb am zuletzt editiert von madmat17
                                    #474

                                    @doom-86 said in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):

                                    @badsnoopy667 sollte eigentlich an @madmat17. Mit seinem flow. Ich hatte mich da echt verschaut.

                                    OK - das ist bei mir etwas anders gelöst.
                                    Screenshot 2023-11-22 172602.png

                                    Bei mir werden ja mehrere Register gleichzeitig abgefragt und von den Parsern (die blauen nodes) wird dann je Register ein Objekt erstellt. Da ich 3 Abfragen habe, ich deren Resultate aber alle auf einmal in eine Datenbank schreiben will, werden die noch mit einem join-node in einer Message gesammelt. Sobald die 43 Objekte beisammen sind, übergibt der join-node diese an den Sub-Flow "JSON or Obj to IOBroker" (der baut die Message so um, dass sie direkt in ein ioBroker-Objekt geschrieben werden kann) und in diesem Node wird auch definiert, wo der nachgelagerte ioBroker Out-Node "IoB write value" hinschreiben soll.
                                    Ich habe in meinem Flow das Top Huawei0 angegeben:
                                    Screenshot 2023-11-22 174341.png

                                    Und da das Stammverzeichnis für die ioBroker Out Nodes immer 0_userdata.0 ist, legt der Node daher die Objekte im Verzeichnis 0_userdata.0.Huawei0 an:
                                    Screenshot 2023-11-22 174102.png

                                    Wenn du die Namen der Datenpunkte ändern möchstes, musst du das direkt in den Parsern machen:
                                    Screenshot 2023-11-22 174623.png

                                    LG,
                                    Mat

                                    1 Antwort Letzte Antwort
                                    0
                                    • kmxakK Offline
                                      kmxakK Offline
                                      kmxak
                                      Most Active
                                      schrieb am zuletzt editiert von
                                      #475

                                      @badsnoopy667 hier die logs:

                                      node-red.0
                                      2023-11-22 18:40:01.019	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-11-22 18:40:00.550	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-11-22 18:39:56.640	info	State value to set for "0_userdata.0.Huawei.Inverter.Input_Power" has to be stringified but received type "number"
                                      

                                      An sich sind es ja auch nur Zahlen die kommen

                                      Gruß Alex

                                      B 1 Antwort Letzte Antwort
                                      0
                                      • kmxakK kmxak

                                        @badsnoopy667 hier die logs:

                                        node-red.0
                                        2023-11-22 18:40:01.019	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-11-22 18:40:00.550	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-11-22 18:39:56.640	info	State value to set for "0_userdata.0.Huawei.Inverter.Input_Power" has to be stringified but received type "number"
                                        

                                        An sich sind es ja auch nur Zahlen die kommen

                                        B Offline
                                        B Offline
                                        badsnoopy667
                                        schrieb am zuletzt editiert von
                                        #476

                                        @kmxak

                                        active_power.png

                                        Sind Deine Objekte korrekt konfiguriert?

                                        kmxakK M 2 Antworten Letzte Antwort
                                        0
                                        • B badsnoopy667

                                          @kmxak

                                          active_power.png

                                          Sind Deine Objekte korrekt konfiguriert?

                                          kmxakK Offline
                                          kmxakK Offline
                                          kmxak
                                          Most Active
                                          schrieb am zuletzt editiert von
                                          #477

                                          @badsnoopy667
                                          das ist so wie es der flow erzeugt hat. Manuell kann ich es natürlich ändern.

                                          Gruß Alex

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          422

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe