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.
    • Z
      zizu29 @badsnoopy667 last edited by

      @badsnoopy667 Ja ich bekomme daten vom Wechselrichter, was ich nicht hin bekomme, bzw. keine Werte erhalt ist im flow ganz unten bei Battery die Werte "Battery Power und Battery_SOC

      1 Reply Last reply Reply Quote 0
      • Z
        zizu29 @Atifan last edited by

        @atifan Ich habe das gleiche Problem, welchen 3 Sek. Interval hast du da aktiviert ?

        Atifan 1 Reply Last reply Reply Quote 0
        • Atifan
          Atifan @zizu29 last edited by Atifan

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

          @atifan Ich habe das gleiche Problem, welchen 3 Sek. Interval hast du da aktiviert ?

          ganz am Ende die

          83e49175-7274-4fa4-b8fc-083fbedf425a-image.png

          Z 1 Reply Last reply Reply Quote 0
          • Z
            zizu29 @Atifan last edited by

            @atifan Danke, hab meinen Fehler gefunden. Ich hatte noch bei einer Unit die 2 drin stehen. Jetzt funktioniert alles. Danke an alle für die Unterstützung

            1 Reply Last reply Reply Quote 0
            • H
              higginsd last edited by

              Vielen, vielen Dank für diesen Thread und den NodeRed Flow! Endlich bekomme ich Zugriff auf die aktuellen Daten meines sch... Huawei Sun Inverters!

              Da habe ich lange nach gesucht und rumprobiert. Der Modbus-TCP Adapter von ioBroker geht nicht. Die Verbindung vom SDongle zur Fusionsolar-Webseite bricht bei mir mehrmals täglich für 1-3 Stunden weg. Ausserdem erlaubt die API zu Fusionsolar nur alle paar Minuten ein Abholen der Daten, sonst macht Fusionsolar zu, weil man zu oft pollt.

              Jetzt habe ich eigentlich nur noch ein Problem: wie interpretiere ich die Werte? Ich habe bisher keine vernünftige Erklärung für so Begriffe wie "Inverter.Active_Power", "Inverter.Input_Power", "Meter.Active_Power", "Battery_Power" gefunden. Und nicht jeder ist ein Solaranlagen-Profi, denen diese Dinge wahrscheinlich geläufig sind.

              Ein paar Dinge kann ich mir anhand der Daten und dem Vergleich mit dem Überblick der Energieflüsse in der Fusionsolar-App ungefähr zusammenreimen. Aber ich wüsste es dennoch gerne einmal genau.

              Ich liste mal auf, was ich mir so denke:

              • Meter.Active_Power: Bezug oder Einspeisung vom/zum Versorger in Watt. Positive Werte = Bezug, negative Werte = Einspeisung

              • Inverter.Active_Power: aktuelle Einspeisung des Inverters in das Hausnetz (also die aktuelle "Leistung" des Hauses) in Watt, Addition aus PV Erzeugung und ggf. Batterie-Entladung (auch Meter.Active_Power positive Werte?)

              • Inverter.Input_Power: aktuelle Leistung vom "Dach" in Watt

              • Battery_Power: aktuelle Leistung an der Batterie in Watt, negative Zahlen = Batterie wird entladen, positive Zahlen = Batterie wird geladen

              • Battery_SOC: ist klar, der Ladezustand in %

              • PV1_Voltage und PV1_Current: aktuelle Spannung und Strom von String 1, U * I = P, somit ergibt sich daraus, wieviel Leistung String 1 aktuell liefert in Watt

              • PV2_... wie PV1, nur für String 2

              Gerne Anmerkungen und Hilfe/Erläuterungen und Korrekturen! Und was es sonst noch für interessante Modbus-Register im Sun200 gibt.

              Viele Grüße
              Dirk

              Z 1 Reply Last reply Reply Quote 0
              • Z
                zizu29 @higginsd last edited by

                @higginsd Da hänge ich mich mal mit dran, auch der Übersetzter liefert mir nicht wirklich Klarheit über die Werte

                1 Reply Last reply Reply Quote 0
                • Z
                  zizu29 @badsnoopy667 last edited by

                  @badsnoopy667 Danke das du dein Blockly zur Verfügung stellst, Welche datenpunkte hast du zusätzlich erstellt, hast du da evtl. eine Liste oder screenshot?

                  Und Danke für die Unterstützung

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

                    @zizu29
                    Ich bin gerade im Urlaub. Ich suche das nächste Woche mal raus. Aber die Beschreibung der Datenpunkte oben passt schon ganz gut!

                    1 Reply Last reply Reply Quote 0
                    • H
                      Hansi1989 last edited by

                      Hallo ich habe den Node Red Adapter und das Flow wie die npms installiert laut dieser Anleitung aber leider bekomm ich einen Fehler und ich bin Neuling beim Node Red. Die Datenpunkte kommen alle nur dieser Error macht mir sorgen weil der Iobroker sich über die Nacht neu installiert alles von neu anfangt. Ich danke für jede Unterstützung.

                      2023-04-13 20:16:45.802 - error: node-red.0 (16278) 13 Apr 20:16:45 - [error] [modbus-getter:32016] Error: Modbus exception 6: Slave device busy (retry request again later)

                      Aber eins muss ich noch sagen tolle Arbeit wird da geleistet!

                      1 Reply Last reply Reply Quote 0
                      • F
                        firebowl last edited by

                        Bei mir läuft das ganze seit einigen Wochen absolut Top und viel besser als solaranzeige.
                        Ich hab nur ein kleines Problem im ioBroker Log:

                        4235b214-a7f7-47ea-ae05-2e2141d6353e-image.png

                        Das hatte ich auch bei anderen Objekten die geschrieben wurde aber da konnte ich es anpassen in dem ich im Flow oder im ioBroker Objekt den Typ des Objekts angepasst habe. Aber bei dem Objekt bekomm ich es nicht weg. Hat jemand ne Idee?

                        Atifan mickym 2 Replies Last reply Reply Quote 0
                        • Atifan
                          Atifan @firebowl last edited by Atifan

                          @firebowl im IoBroker die Datentypen in den Datenpunkten ändern von number auf object.

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            firebowl @Atifan last edited by

                            @atifan Hab ja geschrieben, dass ich das schon gefühlt x mal gemacht habe und es bei den anderen Datenpunkten auch funktioniert hat. Hab's jetzt noch mal geändert. 😉

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

                              @firebowl funzt nicht, jetzt kommt die Meldung:

                              ff1e0824-ebcf-41d8-bb08-e92c46dcaaab-image.png

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

                                @firebowl Wenn Du meinen Flow nicht nimmst - mache eine JSON Node vor die iobroker-Out Node - die stringifiziert Dein Objekt wieder zu einem String.

                                F Jens16 2 Replies Last reply Reply Quote 0
                                • F
                                  firebowl @mickym last edited by

                                  @mickym Ich benutze den Flow aus dem ersten Post hier, ist das deiner?
                                  Ansonsten hab ich leider absolut keine Ahnung von node-red, benutze ich nur für den WR und sonst für nix..😅

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

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

                                    @mickym Ich benutze den Flow aus dem ersten Post hier, ist das deiner?
                                    Ansonsten hab ich leider absolut keine Ahnung von node-red, benutze ich nur für den WR und sonst für nix..😅

                                    Nein, ist nicht von mir. Aber du solltest doch die iobroker-out Node finden, die dir diesen Datenpunkt schreibt. Das ist so eine blaue Node auf der rechten Seite und das Topic zeigt auf den Datenpunkt. Und vor diese Node klemmst du eine JSON Node.

                                    Ansonsten ist es natürlich schade, dass du dich nicht mit diesem tollen Tool beschäftigst. So mancher ehemalige Blockly Fan wird Dir das bestätigen. 😉

                                    F 1 Reply Last reply Reply Quote 0
                                    • F
                                      firebowl @mickym last edited by

                                      @mickym Glaub ich hab's:

                                      725121b6-4ac4-4144-ad31-d9f5307aff05-image.png

                                      Also noch sieht node-red einfach viel ui komplex für mich aus. 😉
                                      Kann mir aber gut vorstellen, dass ich viele meine Blocklys darüber schöner oder besser abbilden könnte.

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

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

                                        @mickym Glaub ich hab's:

                                        725121b6-4ac4-4144-ad31-d9f5307aff05-image.png

                                        Also noch sieht node-red einfach viel ui komplex für mich aus. 😉
                                        Kann mir aber gut vorstellen, dass ich viele meine Blocklys darüber schöner oder besser abbilden könnte.

                                        Sehr gut - damit sollte es gehen - wenn nicht immer Objekte rauskommen (die JSON node konvertiert standardmässig in beide Richtungen) - dann kannst Du ihr auch sagen, die soll grundsätzlich nur Zeichenfolgen erzeugen:

                                        2dd2cd3e-2acd-45e9-a4b7-5ee251860510-image.png

                                        Wenn Du den Datenpunkt nun als Typ String definierst, dann solllten die Logeinträge weg sein. So wie es aussieht ist das aber nur eine Zahl in einem Array. Also

                                        [41.35] - wenn das immer so ist dann ändere ggf. den buffer parser - wobei ich keine Ahnung habe was da rein kommt, sonst nimmst Du statt der JSON Node eine Change Node - dann musst du den Datenpunkt aber als Zahl definieren.

                                        Dann machst Du aus dem Array eine normale Zahl:

                                        e1fd3f84-70a9-48d1-81c6-dae8c94dc271-image.png

                                        ggf. kannst Du auch in dem Buffer-Parser nachschauen, dass Du nicht versehentlich values als Array ausgeben lässt:

                                        a2da45f8-14d3-4097-bda1-09456899f965-image.png

                                        dann lieber auf key/value umstellen,dann brauchst Du gar keine Konvertierung.

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

                                          @mickym Du kannst mir bestimmt helfen:

                                          Ich möchte gerne den Flow zu Datenabfrage kurzzeitig "anhalten" können. Hintergrund: Wenn ich den Befehl an den Wechselrichter sende, die Batterieentladung zu drosseln (beim Laden des eAutos), kommt dieser Befehl oft nur sehr verzögert durch weil die Kommunikation mit dem WR schon ausgelastet ist.
                                          Halte ich den Datenabfrage Flow an, geht der Befehl sofort durch.

                                          Meine Idee: Ich möchte hinter die "5 Sek. Intervall" - Node gerne eine Switch Node setzen, die prüft, ob ein ioBroker Datenpunkt, nennen wir ihn 0_userdata.0.Huawei.Battery.Abfrage_Sperre, auf false steht. Nur dann soll die Abfrage durchgeführt werden. Bei true soll einfach nichts passieren. Ich bin dafür leider zu doof. 😉
                                          Hast Du eine Idee, wie das am Besten geht? Danke schonmal!

                                          Alternativ: Wenn es eine einfache Möglichkeit gibt, aus einem anderen Flow herraus einen Flow zu deaktivieren und nach z.B. 30 Sekunden wieder zu aktivieren, gerne auch das!

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

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

                                            Ich möchte hinter die "5 Sek. Intervall" - Node gerne eine Switch Node setzen, die prüft, ob ein ioBroker Datenpunkt, nennen wir ihn 0_userdata.0.Huawei.Battery.Abfrage_Sperre, auf false steht. Nur dann soll die Abfrage durchgeführt werden. Bei true soll einfach nichts passieren. Ich bin dafür leider zu doof.
                                            Hast Du eine Idee, wie das am Besten geht? Danke schonmal!

                                            Du kannst einfach mit einer get-Node den Datenpunkt abfragen und in einer anschliessenden switch Node entscheiden, ob die Nachrichten weitergereicht werden oder nicht.

                                            Alternativ: Wenn es eine einfache Möglichkeit gibt, aus einem anderen Flow herraus einen Flow zu deaktivieren und nach z.B. 30 Sekunden wieder zu aktivieren, gerne auch das!

                                            Über Kontextvariablen kannst Du ebenfalls über eine Switch-Node einen Flow blockieren oder freigeben.

                                            Ich möchte gerne den Flow zu Datenabfrage kurzzeitig "anhalten" können. Hintergrund: Wenn ich den Befehl an den Wechselrichter sende, die Batterieentladung zu drosseln (beim Laden des eAutos), kommt dieser Befehl oft nur sehr verzögert durch weil die Kommunikation mit dem WR schon ausgelastet ist.

                                            Halte ich den Datenabfrage Flow an, geht der Befehl sofort durch.

                                            Du kannst auch einfach alle Nachrichten um eine Anzahl von Sekunden verzögern, in dem Du eine delay Node dazwischen klemmst.

                                            Ich denke ich würde die 2. Möglichkeit über Kontextvariablen bevorzugen. Ich mach Dir ein theoretisches Beispiel.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            976
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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