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

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      stoffel67 @A1uca2d last edited by

      Hallo,
      ich versuche aktuell meinen SUN2000 WR mit node-red auszulesen.
      beim Start von node-red bekommen ich folgende "warnings" im log:

      node-red.0
      2023-03-03 11:11:31.544	warn	3 Mar 11:11:31 - [warn] [modbus-getter:30000] Getter -> Inject while node is not ready for input.
      
      node-red.0
      2023-03-03 11:11:31.050	warn	3 Mar 11:11:31 - [warn] Verwende unverschlüsselte Credentials
      
      node-red.0
      2023-03-03 11:11:04.662	info	Starting node-red: --max-old-space-size=128 /opt/iobroker/node_modules/node-red/red.js -v --settings /opt/iobroker/iobroker-data/node-red/settings.js
      
      node-red.0
      2023-03-03 11:11:00.476	info	Requested NPM packages: ["node-red-contrib-calc","node-red-contrib-buffer-parser","node-red-contrib-modbus"]
      
      node-red.0
      2023-03-03 11:11:00.382	info	starting. Version 4.0.0 in /opt/iobroker/node_modules/iobroker.node-red, node: v16.17.1, js-controller: 4.0.23
      
      node-red.0
      2023-03-03 11:10:50.753	info	Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason
      
      node-red.0
      2023-03-03 11:10:50.365	info	starting. Version 4.0.0 in /opt/iobroker/node_modules/iobroker.node-red, node: v16.17.1, js-controller: 4.0.23
      

      was ist hier falsch? bin absoluter Neuling in "node-red"...

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

        @stoffel67
        Ich glaube du musst die drei NPM Packages noch in der Instanz hinzufügen. Habe ich im ersten Post beschrieben.

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

          @badsnoopy667
          Die müßte ich doch drin haben
          C152AF6C-D772-48F3-A94C-0B1496141E61.jpeg

          S 1 Reply Last reply Reply Quote 0
          • S
            stoffel67 @stoffel67 last edited by

            Ohh, im Dongle war ModBus-TCP nicht aktiviert…
            Und schon gehts…allerdings sehr wenig Werte, oder ist das OK?

            370EBD88-30EF-42B2-BFF1-7EA8DA1159CA.jpeg

            Kann man die Daten der zwei MPP getrennt ausgeben?

            S 1 Reply Last reply Reply Quote 0
            • S
              stoffel67 @stoffel67 last edited by

              Warum werden einige der Werte nicht angelegt/ausgegeben?
              5CB5D16E-5871-4048-A28E-64DEEDA089FF.jpeg

              M 1 Reply Last reply Reply Quote 0
              • M
                madmat17 @stoffel67 last edited by madmat17

                @stoffel67
                Es sieht so aus, als wären die Nodes bei dir inaktiv. Doppklick darauf -> Register "Setup" -> ganz links unten von Disabled auf Enabled umstellen und neu deployen.

                Frage in die Runde:
                Seit wenigen Tagen bekomme ich keinen Wert mehr aus den Registern 37015 (Battery - current day charge capacity) und 37017 (Battery - current day discharge capacity). Hat jeman ähnliches beobachtet? Früher bekam ich dort immer sauber die Werte...
                Alle anderen Register geben die Werte wie gewohnt aus.
                Dongle läuft auf FW Version V100R001C00SPC130
                Inverter (SUN2000-6KTL-M1) läuft auf FW Version V100R001C00SPC150

                Lösung gefunden: Die Register 37015 & 37017 sind jene, mit denen die Werte der einzelnen Akku-Module ("Engery Storage Unit") ausgelesen werden. Scheinbar sind diese plötzlich maskiert (wenngleich ich kürzlich kein FW-Update vorgenommen hatte - aber evtl. war das auch ein forced update) und werden über den TCP-MODBUS nicht mehr ausgegeben.
                In den JSONs weiter oben werden ebenfalls diese Register abgefragt (war dann OK, solange man nur einen Akku hatte - inzwischen wie gesagt nicht mehr zu gebrauchen).
                Lösung: Auf jene Register ausweichen, welche die Werte aller Akkumodule zusammenfassen. Auf der HUAWEI-Seite habe ich gerade die vollständige MODBUS Interface Definition nicht gefunden, kann man aber hier nachschlagen (Version 04 vom 29.03.2022 - direkter Link). Die Abfrage über die dort angegebenen Register 37784 und 37786 funktioniert klaglos.

                LG,
                Mat

                S 1 Reply Last reply Reply Quote 1
                • M
                  madmat17 @A1uca2d last edited by

                  @a1uca2d

                  Das Thema mit den Abfragen kannst du auch anders umschiffen.
                  Du kannst mehrere Register auf einmal abfragen (ich habe zB in 2 Abfragen alles drinnen - da ein recht großer Adressbereich für mich nicht so interessant ist):

                  • Register 32000-32116:
                    cf21b6ea-6e0d-422f-a361-79df4952364e-image.png
                    Die Abfrage triggert dann die zweite Abfrage
                    edd8206a-900b-4843-b7c4-87fec141bf81-image.png

                  • Register 37000-37125:
                    6fda4d92-475f-4c9c-b144-a09d33432e6c-image.png

                  Die Daten laufen dann durch einen edit puffer-parser node, werden in einem join-node zusammengefügt und (in meinem Fall) auf einmal in eine InfluxDB geschrieben:
                  2f3e0ad6-6c9f-458e-bc19-7af60b771b51-image.png

                  Nur als Anregung bzw. Idee, wenn man den Overhead der Register-Anfragen reduzieren möchte. 😉

                  Gruß,
                  Mat

                  B W Christof Lewandowski 3 Replies Last reply Reply Quote 0
                  • B
                    badsnoopy667 @madmat17 last edited by

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

                    M 1 Reply Last reply Reply Quote 0
                    • S
                      stoffel67 @madmat17 last edited by

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

                      Es sieht so aus, als wären die Nodes bei dir inaktiv. Doppklick darauf -> Register "Setup" -> ganz links unten von Disabled auf Enabled umstellen und neu deployen.

                      Danke für den Hinweis... das wars👍

                      S 1 Reply Last reply Reply Quote 0
                      • A
                        abrodeck last edited by

                        Hallo @badsnoopy667 und alle anderen welche folgende Frage beantworten können.

                        Dank der guten Vorarbeit hier habe ich jetzt auch Node Red soweit, dass ich sinnvolle Daten aus meinem SUN2000-6KTL-M1 und auch aus dem Dongle in den ioBroker bekomme. Ich stehe allerdings völlig auf dem Schlauch, wenn es darum geht, die Daten so zu verarbeiten und zu speichern, dass ich später eine Historie habe, also z.B eine Anzeige der Solarproduktion, des Verbrauchs oder der Einspeisung der letzen Tage, Wochen, Monate ... Ich habe auf verschiedenen Grafana-Screenshots hier so etwas schon gesehen, allerdings fehlt mir einfach der Ansatz, es umzusetzen. Ich schreibe momentan bestimmte Werte mit dem SQL-Adapter weg und versuche dann Grafen mit FLOT zu bauen, komme da aber nicht wirklich weiter. Ich hoffe, es einigermaßen verständlich ausgedrückt zu haben und würde mich über jeden Ansatz freuen. Vielen Dank.

                        Gruß Andreas

                        B 1 Reply Last reply Reply Quote 0
                        • S
                          stoffel67 @stoffel67 last edited by

                          Können die beiden Werte für Startup und Shutdown auch ausgelesen werden?
                          Ich hab es mit 32091 und 32093 versucht, ich bekomme aber z.B. permanent „512“ zuzrück?

                          1 Reply Last reply Reply Quote 0
                          • T
                            ts_482 @joschipp last edited by

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

                            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):
                            01.PNG

                            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:
                            02.PNG
                            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.

                            flows.json

                            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
                            03.PNG

                            mfg

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

                              @abrodeck
                              Ich speichere die Werte für Erzeugung, Verbrauch etc. mit dem History Adapter und nutze dann ebenfalls FLOT zur Darstellung. Den SQL-Adapter kenne ich nicht.
                              Die ganzen Werte wie Monatsertrag, Jahresertrag usw. habe ich nicht in iobroker umgesetzt, da gucke ich einfach in die FusionSolar App wenn ich das wissen will.
                              Das sollte sich aber auch irgendwie mit dem Sourcenanalytix Adapter umsetzen lassen. Aber mit dem stehe ich auf Kriegsfuß. Ich verstehe das Teil einfach nicht. 😉

                              1 Reply Last reply Reply Quote 0
                              • J
                                Joogibaer @warp-it last edited by

                                @warp-it

                                hast du hier den Grund gefunden? ich habe gerade das selbe "PRoblem" und noch keine Werte

                                1 Reply Last reply Reply Quote 0
                                • S
                                  stoffel67 @ts_482 last edited by

                                  @ts_482
                                  Hallo,
                                  kannst du mal schauen, ob du auch die Register 32091 und 32093 lesen kannst?

                                  1 Reply Last reply Reply Quote 0
                                  • J
                                    Joogibaer @badsnoopy667 last edited by

                                    @badsnoopy667

                                    was meinst du in jedem Notes? Man gibt die Id doch nur im Modbus Client an, oder?

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

                                      @joogibaer
                                      Nein, in jedem einzelnen modbus-node steht nochmal die ID drin. die muss überall passen, sonst läuft's nicht. Vielleicht erstmal einen Test-Flow machen der nur ein Register abfragt. Wenn der läuft, dann den ganzen Flow probieren.

                                      J 1 Reply Last reply Reply Quote 0
                                      • J
                                        Joogibaer @badsnoopy667 last edited by Joogibaer

                                        @badsnoopy667

                                        Guten Morgen, danke jetzt ist alles Grün 🙂

                                        H 1 Reply Last reply Reply Quote 0
                                        • H
                                          Hinkebein @Joogibaer last edited by Hinkebein

                                          Moin,
                                          Auf meiner Fuison Solar App habe ich heute ca. 4,9KW erzeugt.
                                          Im Modbusregister (32114) steht aber 3.9KW..
                                          Da ich aber heute meinen Akku (10KW) von ca. 30% auf 80% Prozent geladen habe, klingen für mich die 5 KW realistischer.
                                          Habe ich das falsche Modbusregister erwischt oder hat der 8KT andere Register?

                                          update: Lösung gefunden -- Der Wechselrichter hat wirklich nur 3,9 KW produziert .. jetzt frage ich woher die restlichen KWs hergekommen sind um auf 4,9 KW Tagesproduktion zu kommen -- Ich da die Batterie heute 5.5 KW geladen hat und bisher 4.5 KW enthält macht das eine Differenz von 1 KW - dann passt das.. heisst das wohl, das die Ladeleistung der Batterie nicht in der Tagesproduktion eingerechnet wird? -- verwirrendes Tool

                                          1 Reply Last reply Reply Quote 0
                                          • W
                                            warp-it @madmat17 last edited by

                                            @madmat17

                                            Hi Mat,

                                            das möchte ich auch versuchen, da auch bei mir mit dem ursprünglichen Flow reichlich Logeinträge entstehen:

                                            2023-03-16 16_32_14-logs - IoBroker.jpg

                                            Allerdings komme ich mit dem Parsing nicht klar, vielleicht kannst Du da noch mal ein Beispiel oder Screencopy beisteuern. Du schreibst 'edit puffer-parser'. Ist das etwas anderes als der normale 'buffer-parser' den ich in der linken Spalte finde?

                                            Viele Grüße
                                            Heinrich

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            982
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            110
                                            573
                                            176550
                                            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