Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      badsnoopy667 last edited by badsnoopy667

      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: Changeme

      2. 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-modbus

      Hat 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:

      Flow mit Multi-Abfrage

      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 Firmware

      Vielen Dank an alle, die den Input geliefert haben!
      Ich hoffe es hilf, wenn ich es hier einmal zusammengefasst habe.

      H M W M S 17 Replies Last reply Reply Quote 3
      • P
        ple last edited by

        @badsnoopy667
        Moin Moin,
        ich hänge gerade dabei meinen ktl30-m3 und den Dongle in den iobroker zu bekommen.
        Anscheinend bekomme ich jedoch keine Verbindung, und ehrlich, ich bin mir nicht sicher, welche Einstellungen in Fusion solar gemacht werden müssen. Kannst du deine vielleicht mal posten?

        Gruß und Danke

        node-red.0
        2022-03-08 09:51:01.663	warn	8 Mar 08:51:01 - [warn] [modbus-client:WLAN-FE] Client -> fsm init in 2000 ms TCP@10.10.10.21:502 default Unit-Id: 1
        node-red.0
        2022-03-08 09:51:01.662	warn	8 Mar 08:51:01 - [warn] [modbus-client:WLAN-FE] Client -> fsm init state after reconnecting TCP@10.10.10.21:502 default Unit-Id: 1
        node-red.0
        2022-03-08 09:50:59.661	warn	8 Mar 08:50:59 - [warn] [modbus-client:WLAN-FE] Client -> fsm reconnect state after closed Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1
        node-red.0
        2022-03-08 09:50:59.660	warn	8 Mar 08:50:59 - [warn] [modbus-client:WLAN-FE] Client -> fsm failed state after sending Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1 8 Mar 08:50:59 - [warn] [modbus-client:WLAN-FE] Client -> fsm broken state after failed Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1
        node-red.0
        2022-03-08 09:50:58.666	warn	8 Mar 08:50:58 - [warn] [modbus-client:WLAN-FE] Client -> fsm broken state after init Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1
        node-red.0
        2022-03-08 09:50:56.663	warn	8 Mar 08:50:56 - [warn] [modbus-client:WLAN-FE] Client -> fsm init in 2000 ms TCP@10.10.10.21:502 default Unit-Id: 1
        node-red.0
        2022-03-08 09:50:56.662	warn	8 Mar 08:50:56 - [warn] [modbus-client:WLAN-FE] Client -> fsm init state after reconnecting TCP@10.10.10.21:502 default Unit-Id: 1
        node-red.0
        2022-03-08 09:50:54.660	warn	8 Mar 08:50:54 - [warn] [modbus-client:WLAN-FE] Client -> fsm broken state after failed Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1 8 Mar 08:50:54 - [warn] [modbus-client:WLAN-FE] Client -> fsm reconnect state after closed Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1
        node-red.0
        2022-03-08 09:50:54.659	warn	8 Mar 08:50:54 - [warn] [modbus-client:WLAN-FE] Client -> fsm failed state after sending Get More About It By Logging TCP@10.10.10.21:502 default Unit-Id: 1
        
        B R 2 Replies Last reply Reply Quote 0
        • B
          badsnoopy667 @ple last edited by badsnoopy667

          @ple
          Hallo ple! Achtung: Du musst die SUN2000 App benutzen, NICHT die FusionSolar App. Das sind zwei verschiedene Apps!

          Mein Wechselrichter hat sich leider abgeschossen (Hardware Defekt), deshalb kann ich nicht so richtig darauf zugreifen... aber ich habe in paar Screenshots gemacht von den Einstellungen.

          Bei mir gibt es, wenn ich vor dem Wechselrichter stehe zwei WLAN Netze, auf die ich mich verbinden kann. Einmal "SDongle..." und einmal "SUN2000".
          Auf das "SDongle" komme ich gerade nicht drauf, aber ich meine, man muss ich mit beiden Netzen verbinden um a) den Dongle und b) den Wechselrichter selbst zu konfigurieren.

          Hier die Screenshots vom Wechselrichter (Netwerk SUN2000...):

          01.PNG 02.PNG 03.PNG 04.PNG

          Im Dongle muss man glaube ich noch "Modbus TCP" aktivieren und da kann man auch die Unit-ID festlegen. Guck mal nach, ob die wirklich 1 ist, so wie es in Deinem Log steht.

          Achso: Das Verbinden mit dem Netzwerk und der App klappt manchmal nur so lala. Bei mir geht es am Besten wenn ich:

          1. Die App starte und auf "Manuell Verbinden" klicke
          2. Auf das Bildchen mit dem Wechselrichter klicke in der APP
          3. In die WLAN Einstellungen vom Handy wechsel und dann das WLAN vom Wechselrichter auswähle
          4. In der App dann unten auf "Verbinden" klicke.
            Dann sollte er einem das Auswahlmenü anbieten, ob man Installateur oder Benutzer ist. Die Einstellungen kann man nur im Modus Installateur vornehmen.
          P S 2 Replies Last reply Reply Quote 0
          • P
            ple @badsnoopy667 last edited by

            @badsnoopy667
            Also auf den Wechselrichter kommt ich als Installateur, ich guck mir das nachher noch mal an, was da genau steht.

            Gruß und Danke

            B 1 Reply Last reply Reply Quote 0
            • B
              badsnoopy667 @ple last edited by

              @ple

              Was mir gerade noch einfällt: Bei mir war Anfangs die Firmware des Dongles nicht aktuell. Mit der alten Firmware habe ich auch keine Verbindung bekommen. Der Installateur hat die Firmware dann über das FusionSolar Online Portal geupdatet und dann ging es!

              1 Reply Last reply Reply Quote 0
              • H
                hase_92 @badsnoopy667 last edited by

                @badsnoopy667 vielen Dank für diese tolle Anleitung! Ist es eigentlich auch möglich den PV-Überschuss im Flow auszugeben?
                Grüße!

                B 1 Reply Last reply Reply Quote 0
                • B
                  badsnoopy667 @hase_92 last edited by badsnoopy667

                  @hase_92
                  Den Überschuss gibt der Wechselrichter selbst nicht mit aus soweit ich das bisher verstanden habe.
                  Ich berechne mir den aber selber. Ich habe mir dafür ein Blockly geschrieben.
                  Da die Werte vom Wechselrichter nicht genau synchron übermittelt werden schreibe ich die Werte 20 Sekunden lang in Listen und bilde dann alle 20 Sekunden den Mittelwert. Mit den Mittelwerten kann man dann weiterrechnen.
                  Ich packe das Skript mal hier rein, es benötigt aber eine ganze Menge Datenpunkte die man wohl erstmal alle anlegen muss.
                  Aber vielleicht hilft es ja zum Verständnis. Das im Detail zu erklären fällt mir schwer, bin teilweise selbst froh, dass es einfach funktioniert. Das warum ist dann manchmal zweitrangig. 😉

                  Blockly Export:
                  Blockly Export.txt

                  B 1 Reply Last reply Reply Quote 0
                  • B
                    Biervoegelhasso @badsnoopy667 last edited by

                    @badsnoopy667 said in [Solved] Huawei SUN2000 Wechselrichter Modbus mit node-red:

                    @hase_92
                    Den Überschuss gibt der Wechselrichter selbst nicht mit aus soweit ich das bisher verstanden habe.
                    Ich berechne mir den aber selber. Ich habe mir dafür ein Blockly geschrieben.
                    Da die Werte vom Wechselrichter nicht genau synchron übermittelt werden schreibe ich die Werte 20 Sekunden lang in Listen und bilde dann alle 20 Sekunden den Mittelwert. Mit den Mittelwerten kann man dann weiterrechnen.
                    Ich packe das Skript mal hier rein, es benötigt aber eine ganze Menge Datenpunkte die man wohl erstmal alle anlegen muss.
                    Aber vielleicht hilft es ja zum Verständnis. Das im Detail zu erklären fällt mir schwer, bin teilweise selbst froh, dass es einfach funktioniert. Das warum ist dann manchmal zweitrangig. 😉

                    Blockly Export:
                    Blockly Export.txt

                    Hi badsnoopy667, vielen Dank für den Flow. Ich versuche schon seit Monaten den Wechselrichter auszulesen. Huawei macht es einem da nicht gerade einfach. Aber nun läuft es.

                    Zum Thema Überschuss, es gibt das Objekt "Active_Power" dort steht doch die Leistung die eingespeist oder bezogen wird. Wenn der Wert positiv ist speise ich ein und die Zahl ist doch dann auch mein Überschuss? Oder habe ich hier einen Denkfehler?

                    B 1 Reply Last reply Reply Quote 0
                    • B
                      badsnoopy667 @Biervoegelhasso last edited by

                      @biervoegelhasso
                      Ja, Du hast Recht. Der Datenpunkt Active_Power_METER (!) gibt an, ob gerade eingespeist oder bezogen wird aus dem Netz. Damit berechne ich mir auch meine Einspeisung und Bezugswerte. Diese dann einfach alle 10 Sekunden einmal aufaddieren und durch 360000 teilen, siehe Screenshot. Das reicht für mich von der Genauigkeit.

                      werte_berechnen.png

                      Was ich meinte war "PV-Erzeugung". Damit stehe ich noch auf Kriegsfuß. Das ging solange gut, bis ich die Batterie bekommen habe. Es gibt ja den Datenpunkt "Daily Energy Yield" im Inverter. Aber wenn man eine Batterie hat, dann zählt der Inverter auch weiter hoch, wenn der Strom aus der Batterie und nicht mehr vom Dach kommt.
                      Dann gibt es noch "Input Power". Das ist das, was vom Dach kommt. Aber anscheinend ohne Berücksichtigung des Wirkungsgrades. Leider gibt mir der Inverter den Wirkungsgrad unter "Efficiency" nicht mehr korrekt aus. Da steht immer 41.35%.. Ist das bei Dir auch so, oder kommt der Wert nur bei mir nicht korrekt? Da der Wirkungsgrad gerade bei schwankender Erzeugung schonmal ziemlich mau ist, ist der Wert ohne Wirkungsgrad leider ziemlich optimistisch im Vergleich zu dem Ertrag den FusionSolar anzeigt am Handy.

                      B 1 Reply Last reply Reply Quote 0
                      • B
                        Biervoegelhasso @badsnoopy667 last edited by

                        @badsnoopy667
                        Ich habe keinen Akku daher nutze ich "Input Power". Mit dem Wirkungsgrad habe ich noch keine Erfahrung. Bei mir werden Werte von 261-299 angezeigt.
                        Ich werte alles mit Grafana aus. Geht wirklich super.

                        a3a093e6-bfa1-47e1-8190-6d4324011be4-image.png

                        f9ba496d-3004-4216-9eeb-bcb60cfc1a48-image.png

                        B H 2 Replies Last reply Reply Quote 0
                        • B
                          badsnoopy667 @Biervoegelhasso last edited by badsnoopy667

                          @biervoegelhasso
                          Wenn Du keinen Akku hast, dann müsste der Wert "Active Power Inverter" Dein PV Ertrag incl. Wirkungsgrad sein. "Input Power" ist mMn der Wert ohne den Abzug vom Wirkungsgrad.
                          Mit Akku ist "Active Power Inverter" nur noch das, was der Inverter an den Stromkasten liefert, Batterieladung schon abgezogen, bzw. Batterieentladung schon addiert.

                          Dein Grafana ist sehr schön! An Grafana hab ich mich noch nicht rangetraut, nutze noch Flot. Steht aber auf der Liste. Muss aber erstmal rausfinden, wie man das installiert und einrichtet.
                          Kann man bei Grafana den View Exportieren? Dann könntest Du Deinen View hier als Vorlage vielleicht hochladen?

                          R 1 Reply Last reply Reply Quote 0
                          • S
                            Suvfepp @badsnoopy667 last edited by

                            @badsnoopy667 said in [Solved] Huawei SUN2000 Wechselrichter Modbus mit node-red:

                            @ple
                            Hallo ple! Achtung: Du musst die SUN2000 App benutzen, NICHT die FusionSolar App. Das sind zwei verschiedene Apps!

                            Hallo,

                            diese Information ist nicht richtig. Das geht sehr wohl mit der FusionSolar App.
                            Starte sie ganz normal und tippe dann auf ich (unten rechts)
                            Tippe im folgenden Menü auf "Inbetriebnahme des Geräts" und du bist dort wo hin musst. Keine Angst, das Gerät wird nicht neu konfiguriert. Das Menü kommt dir von SUN2000 vertraut vor.

                            B 1 Reply Last reply Reply Quote 1
                            • B
                              badsnoopy667 @Suvfepp last edited by

                              @suvfepp said in [Solved] Huawei SUN2000 Wechselrichter Modbus mit node-red:

                              ppe im folgenden Menü auf "Inbetriebnahme des Geräts" und du bist dort wo hin musst. Keine Angst, das Gerät wird nicht neu konfi

                              Ach wie geil! Gut zu wissen! Danke!

                              1 Reply Last reply Reply Quote 0
                              • P
                                ple last edited by

                                Ich krieg den ollen Wechselrichter nicht verbunden, keine Ahnung warum.
                                Welche Firmwareversionen habt ihr auf den WR und Dongle?
                                Ich habe
                                WR = V100R001C20SPC112
                                Dongle= V100R001C00SPC127

                                ich habe mich mal direkt mit den WR verbunden sowie auch Dongle und mal ein wenig nach den Einstellungen geguckt, sieht mir aber so aus, als ob alles soweit richtig wäre.
                                8b73563e-add0-41ff-855b-ea0e8f4b3a96-image.png
                                9dd07a2d-4777-4d23-a04b-f0febd0a3167-image.png
                                8f9321ae-de90-4124-b6ff-81c4bd1103c8-image.png
                                24bc1e47-0518-4e6d-817b-a441a5c22cba-image.png
                                fa02ec41-0f66-47f1-a452-41ee3bb13603-image.png
                                62a46dcd-a1ab-4acc-911c-7f775e992453-image.png

                                B 1 Reply Last reply Reply Quote 0
                                • B
                                  badsnoopy667 @ple last edited by

                                  @ple

                                  Ich hab folgende Firmware drauf:

                                  WR: V100R001C00SPC141
                                  Dongle: V100R001C00SPC126

                                  Deine Screenshots zeigen bei mir nix. Ist da was schiefgelaufen beim Upload?

                                  1 Reply Last reply Reply Quote 0
                                  • P
                                    ple last edited by

                                    Neuer Versuch, das war so alles was ich gefunden habe.
                                    D068DA63-13FF-4F91-982D-A9F7386E9A89.jpeg FEDF0429-DA0A-40C8-9BCE-AC2E3C8A486C.jpeg BCAD36EC-25BA-4873-8233-7ACA25C3CB27.jpeg E01AF44A-4848-448A-B594-DADF6CE80505.jpeg B6F01E8F-CC3A-4E2E-B513-BBB388DF4740.jpeg 0A322DCD-C468-428E-BE9B-E94FF678010B.jpeg

                                    B 1 Reply Last reply Reply Quote 0
                                    • B
                                      badsnoopy667 @ple last edited by badsnoopy667

                                      @ple
                                      Im zweiten und vierten Screenshot steht "Modbus RTU". Da muss aber "Modbus TCP" stehen glaube ich. Sonst wird das nix! Stell das mal um, dann sollte es eigentlich gehen.

                                      P 1 Reply Last reply Reply Quote 0
                                      • P
                                        ple @badsnoopy667 last edited by

                                        @badsnoopy667
                                        bin jetzt mal hier nach gegangen
                                        https://forum.huawei.com/enterprise/en/modbus-tcp-guide/thread/789585-100027?page=3#comments-area
                                        scheint so, als ob der dongle kein Modbus aktuell so kann.
                                        ich spiele mal auf die 126 zurück.

                                        War der Dongle per Wlan oder Kabel angeschlossen? Hatte mal was gelesen, das Modbus nur per Wlan geht, finds aber gerade nicht wieder.

                                        B 2 Replies Last reply Reply Quote 0
                                        • B
                                          badsnoopy667 @ple last edited by

                                          @ple
                                          Bei mir ist der Dongle per WLan angeschlossen.

                                          P 1 Reply Last reply Reply Quote 0
                                          • B
                                            badsnoopy667 @ple last edited by

                                            @ple Hast Du auf Modbus TCP umgestellt?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            671
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            110
                                            573
                                            162243
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo