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.
    • A
      A1uca2d @badsnoopy667 last edited by

      @badsnoopy667
      Der dongle ist per LAN angeschlossen.
      Daher sind WLAN kein Thema sein

      F 1 Reply Last reply Reply Quote 0
      • F
        Fridolin01 @A1uca2d last edited by

        Leider schmeisst meine Node Red Instanz auch dann und wann komische Warnmeldungen die ich als Node Red Noob nicht verstehe.

        Kann mir jemand erklären was dieser broken state ist?
        Und wie ich das behebe?

        node-red.0
        	2023-02-27 19:45:41.128	warn	27 Feb 19:45:41 - [warn] [modbus-client:WLAN-FE] Client -> fsm broken state after failed Get More About It By Logging TCP@192.168.2.187:502 default Unit-Id: 1
        node-red.0
        	2023-02-27 19:45:41.127	warn	27 Feb 19:45:41 - [warn] [modbus-client:WLAN-FE] Client -> fsm failed state after sending Get More About It By Logging TCP@192.168.2.187:502 default Unit-Id: 1
        node-red.0
        	2023-02-27 19:45:18.552	warn	27 Feb 19:45:18 - [warn] [modbus-client:WLAN-FE] Client -> fsm failed state after sending Get More About It By Logging TCP@192.168.2.187:502 default Unit-Id: 1 27 Feb 19:45:18 - [warn] [modbus-client:WLAN-FE] Client -> fsm broken state after failed Get More About It By Logging TCP@192.168.2.187:502 default Unit-Id: 1 
        
        A 1 Reply Last reply Reply Quote 0
        • A
          A1uca2d @Fridolin01 last edited by

          @fridolin01 @badsnoopy667
          Ich glaube mittlerweile, dass es an der Anzahl der Abfragen lag.

          Habe bei meinen ModBus Getter mal in den Optionen "Show Errors" angeschaltet.
          dba00d7a-078c-49f6-aa8e-7c6091d528a2-image.png

          Da habe ich die Meldung erhalten, dass der Controller zu viele anfragen bearbeiten musste.
          Ich habe das Abfrageintervall nun auf 18Sek gesetzt.
          a3f62468-597b-422e-91a5-5ae44d484d83-image.png

          Und hier mein überarbeiteter kompletter Flow:


          flows.json

          Hat vielleicht jemand eine Idee, warum mein Dongle mit der "hohen" Abfragerate ein Problem hat und die anderen Teilnehmer im Forum wohl eher nicht?

          S M 2 Replies Last reply Reply Quote 0
          • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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