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.
    • B
      badsnoopy667 @geo-ioan last edited by

      @geo-ioan
      Läuft bei dir noch irgendwas anderes, was per Modbus auf den WR zugreift? Das kann immer nur eine Verbindung gleichzeitig.

      geo-ioan 1 Reply Last reply Reply Quote 0
      • geo-ioan
        geo-ioan @badsnoopy667 last edited by

        @badsnoopy667
        Da ist nichts anderes verbunden ...

        B 1 Reply Last reply Reply Quote 0
        • B
          badsnoopy667 @geo-ioan last edited by badsnoopy667

          @geo-ioan Hast Du mal die ID 0 versucht? Oder 2 oder 16?
          Ich würde wieder nur einen Teil des Flows testen, dann musst du weniger Nodes ändern.
          Bzw. mal im WR nachsehen, welche ID eingetragen ist?
          Modbus TCP ist aktiviert im WR?

          geo-ioan 1 Reply Last reply Reply Quote 0
          • geo-ioan
            geo-ioan @badsnoopy667 last edited by

            @badsnoopy667
            Bleibt Port 502 ?

            B 1 Reply Last reply Reply Quote 0
            • B
              badsnoopy667 @geo-ioan last edited by

              @geo-ioan Ja, der sollte passen

              geo-ioan 1 Reply Last reply Reply Quote 0
              • geo-ioan
                geo-ioan @badsnoopy667 last edited by

                @badsnoopy667 - leidet auch nichts gebracht ... ich muss mich nochmal absichern dass im WR das Protokoll aktiviert wurde

                geo-ioan 1 Reply Last reply Reply Quote 0
                • geo-ioan
                  geo-ioan @geo-ioan last edited by

                  Es lag am Solateur !!! Seit 1 Woche hatte er es nicht geschafft den ModbusTCP einzuschalten ... jetzt geht das !
                  Danke für eure Arbeit !!!

                  1 Reply Last reply Reply Quote 0
                  • B
                    booleeny last edited by booleeny

                    Hallo,
                    ich habe die Vorschläge hier benutzt aber wollte bei den Abfageintervallen etwas flexibler sein da ich zunächst gar nich wusste was ich alles abfragen möchte.
                    Mir hat die NodeRed Info gesagt ich solle bei mehrern Abfragen den flex getter nutzen. Das habe ich gemacht und das läuft seit ein paar Wochen problemlos. Ist jetzt nichts neues nur ein paar Ideen aus diversen Beiträgen hier vermischt damit es für mich passt.

                    flex_getter.png
                    flex_getter2.png

                    Hier der Flow zum importieren:
                    flow_FlexGetter_Olli_v1.json

                    Anbei auch nochmal die Modbus Register Definitions
                    Solar Inverter Modbus Interface Definitions.pdf

                    Mosel 1992 1 Reply Last reply Reply Quote 1
                    • Mosel 1992
                      Mosel 1992 @booleeny last edited by

                      Hallo, ich versuche gerade meinem Akku beizubringen, dass er Laden soll. Das klappt auch soweit, jedoch habe ich noch nicht herausgefunden, wie ich es schaffe, dass ich ihm die maximale Ladeleistung sagen kann.
                      [Energ y storag e]Max imum chargi ng power
                      RW
                      UIN T32
                      W
                      1
                      47075
                      2
                      [0, Upper thres hold]
                      Defau lt value: 3500;
                      √

                      Kann mit jemand erklären, wie ich das Register 47075 mit der Zahl 3000 schreiben kann im Format UINT32?

                      ich habe ein inject als string mit dem Wert 3000. Wie bekomme ich nun am ende das richtige ins register?

                      Das wird mir angezeigt, wenn ich das register auslese.

                      08d78b3f162110b7 : msg.payload : Object
                      object
                      data: array[2]
                      0: 0
                      1: 5000
                      buffer: buffer[4]
                      0: 0x0
                      1: 0x0
                      2: 0x13
                      3: 0x88
                      

                      Vielen Dank schon mal

                      1 Reply Last reply Reply Quote 0
                      • C
                        cksoft last edited by

                        Hi,
                        ich nutze auch den Flow für die Auswertung meines Huawei. Danke dafür, klappt soweit erst mal einwandfrei.

                        Leider ist immer mal wieder so, dass der Flow seine Arbeit einstellt. D.h. die Werte werden dauerhaft nicht mehr aktualisiert. "Flow neu starten" löst das Problem sofort, allerdings ist dies ja keine produktive Lösung. Fehlermeldungen sehe ich keine.

                        Gibt es einen Tipp, was dies verursachen könnte oder noch besser Lösungen?

                        J 1 Reply Last reply Reply Quote 0
                        • FragMike
                          FragMike last edited by FragMike

                          Hallo zusammen
                          ich habe es tatsächlich geschafft, mich mit mit der Huawei PV zu verbinden. Das Modell vom Inverter wird schon einmal ausgegeben. Insofern müssen ja IP und ID ( in meinem Fall 1) stimmen. Ich habe 2 WR.
                          Die DTU liefert mir allerdings bei dem Register 37113 nur eine 0
                          auch die anderen Werte wie Frequenz oder Grid Voltage der Phasen liefert eine 0
                          Jemand ne Idee, woran es liegen könnte?
                          Oder Stimmen die Register nicht mehr.....oder liegt es evtl daran, dass ich 2 WR habe?
                          P.s. wenn ich in dem flow oben beim Node Model eine 2 als ID eintrage, spuckt er mir das selbe WR Modell aus....obwohl ich einen 8ktl und einen 6 ktl habe

                          9173b80b-2551-4249-9261-157bb8545fb1-image.png

                          D 1 Reply Last reply Reply Quote 0
                          • J
                            joeysch @cksoft last edited by

                            @cksoft
                            Hast du einen Intervall laufen?
                            659e41ad-7e72-48b3-8996-5bf517d3c5b0-image.png
                            Am Anfang ein Input Node das alle x Sekunden sendet.

                            FragMike C 2 Replies Last reply Reply Quote 0
                            • FragMike
                              FragMike @joeysch last edited by FragMike

                              Vom WR habe ich heute als Sonne schien noch ein paar mehr Daten bekommen, aber die dtu schreibt nur Nullen.

                              1 Reply Last reply Reply Quote 0
                              • C
                                cksoft @joeysch last edited by

                                @joeysch

                                Danke für die Antwort.
                                Ja schon. Irgendwann hatte ich das Problem wieder hingefummelt. Keine Ahnung, für mich hat sich nichts geändert, ich hatte auch nichts geändert, als es nicht mehr ging.

                                1 Reply Last reply Reply Quote 0
                                • D
                                  Doom.86 @FragMike last edited by

                                  @fragmike Hallo Mike,
                                  Ich habe auch zwei Wechselrichter. Bei mir muss ich für den Wechselrichter eins, die ID:1 eintragen. Auf dem Wechselrichter hängt auch mein dtu und meine Luna, also bei denen auch die ID:1
                                  Bei dem 2. Wechselrichter lese ich nur den WEchselrichter selber aus. sind die selben register und die selbe IP-Adresse, allerdings mit der Unit ID:2.

                                  Schau mal bei deinen Nodes durch ob die daten richtig hinterlegt sind. Evtl. sind es bei dir auch andere ID Nummern. Bei dem tread ersteller ist es, wenn ich es noch richtig im Kopf habe, durch einen Wechselrichtertausch die ID:2 und die ID:1 gibt es bei ihm gar nicht mehr.

                                  FragMike 1 Reply Last reply Reply Quote 0
                                  • FragMike
                                    FragMike @Doom.86 last edited by

                                    @doom-86 danke für deine Info. Die IP habe ich nicht geändert. Sollte ja immer die von dongle sein, soweit ich das verstanden habe. Bei den IDs habe ich schon mal alles von 0-4 in der node (und auch nur dort)probiert. Ansonsten habe ich nichts geändert.

                                    FragMike 1 Reply Last reply Reply Quote 0
                                    • M
                                      MaGe @mickym last edited by

                                      @mickym, den von dir aufgezeigten Ansatz finde ich sehr interessant und würde diesen gerne verwenden.

                                      Nur leider verstehe ich nicht wie du von den Modbus-Adressen auf die Bytes im Node inject kommst. 🤷‍♂️
                                      Könntest du dies bitte an den beiden ersten Werten im buffer-parser (PV1_voltage und PV1_current) mit den Adressen 32016 und 32017 erklären?

                                      Jetzt wünsche ich allen aber erstmal einen guten Rutsch ins neue Jahr.

                                      mickym 1 Reply Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @MaGe last edited by

                                        @mage Nun wenn Du Dir den buffer mal als String im debug Fenster anschaust, dann steht da nur Schmarrn drin. 😉

                                        Den Buffer muss Dir schon Deine getter-Node liefern. Mein Ansatz beginnt da, wie die buffer Node dieser Puffer interpretiert.

                                        Also vergiss den Inhalt der Inject Node selbst.

                                        Wie Du mehrere Register ausliest, und also die 3 großen Blöcke machst oder diese sogar in einen Buffer abfrägst hat @Spexx ja beschrieben. Dieser Puffer wird nur mit meinem Ansatz anders aufbereitet, als dann zig-Ausgänge zu haben und diese einzeln zu schreiben.

                                        Wie Du also x-Bytes aufeinmal in einen Puffer ausliest wurde hier beschrieben:
                                        https://forum.iobroker.net/post/1007480

                                        Für die Interpretation der Bytes hat ja mal 2 Tabellen mit angehängt, das musst Du ggf. in eigener Doku nachlesen.

                                        Für dieses Jahr mache ich aber auch erst mal Schluß hier und wünsche Dir und allen Lesern auch einen guten Rutsch. Antwort also bei Bedarf erst nächstes Jahr. 😉

                                        M 1 Reply Last reply Reply Quote 0
                                        • 6
                                          652145 last edited by 652145

                                          Hallo Zusammen,

                                          Gibt es die Möglichkeit, die Wirkleistung auf den einzelnen Phasen (Grid) auszulesen, wenn ja, auf welche Register?

                                          Die einzelnen Spannungen und die einzelnen Ströme bekommen ich auf den Register:

                                          37101 - Grid voltage Phase 1 [V]
                                          37103 - Grid voltage Phase 2 [V]
                                          37105 - Grid voltage Phase 3 [V]

                                          37107 - Grid current Phase 1 [A]
                                          37109 - Grid current Phase 2 [A]
                                          37111 - Grid current Phase 3 [A]

                                          Habe die Regiester inzwischen gefunden:

                                          37132 - Phase A ActivePower

                                          37134 - Phase B ActivePower

                                          37136 - Phase C ActivePower

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            MaGe @mickym last edited by MaGe

                                            @mickym, vielen lieben Dank. Da lag ich wohl komplett daneben. 🙂

                                            Ich habe die Abfrage mal für die Adressen vom Dongle erstellt.
                                            bsp.json

                                            Die Abfrage funktioniert auch.
                                            09d43645-bfbf-453f-86e5-b97221a84bca-grafik.png

                                            Nur verstehe ich nicht weshalb bei der Load_power und Total_Battery_power so große Werte ausgegeben werden.

                                            Laut der Doku ist der Faktor der Gleiche.
                                            674545f1-9a3d-4454-aa1e-f0402e452bf9-grafik.png

                                            Bei der einzelnen Abfrage bekomme ich die Werte richtig angezeigt.
                                            bsp2.json
                                            0553d1bc-bca8-40a3-a075-6af8c2b4c4c2-grafik.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.2k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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