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

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

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

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

      Hallo zusammen, ich bekomme soweit alle Daten heraus die ich brauche. Ich versuche aber seit Tagen die Tageswerte herein zu bekommen: Netzbezug / Netzeinspeisung.
      Hat jemand eine Idee? Egal ob ich es über Node Red versuche oder über die Northbound Schnittstelle über das Fusion Solar Portal. Screenshot 2023-10-17 200321.png

      B 1 Reply Last reply Reply Quote 0
      • B
        Benutzer0815 @marcelinho last edited by

        @marcelinho

        Ich habe noch 53f84999-3dad-49f9-917c-a19aaacc1480-image.png

        Wenn ich das richtig sehe ist das die kumulierte Netzeinspeisung. Wenn du die jeden Morgen speicherst und abends den Wert abziehst hast du schonmal den Tageswert für die Einspeisung

        Und unter Inverter habe ich noch den Tagesertrag:

        b8a4ae3d-8b56-4a09-8e23-f5b70f151597-image.png

        Wenn du das gegenrechnest müsstet du doch den Netzbezug haben, oder?

        1 Reply Last reply Reply Quote 0
        • M
          Michael 9 @badsnoopy667 last edited by

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

          @bastian-rüggen
          Die Efficiency habe ich deaktiviert, weil bei mir auch nur Mist ausgelesen wird. MMn müsste das die Effizienz vom Wechselrichter sein. Also das Verhältnis von Input Power (Solarleistung DC) zu Active Power (Erzeugung/Abgabe auf der AC Seite).

          Du übersetzt Input Power mit Solarleistung DC, doch wie ist das mit den anderen englischen Angaben, wobei varc die Übersetzung von vara sein soll: varb sind die Register dazu. Ich frage diese Werte über ein Python script ab und habe so meine Zweifel ob ich die Herkunft der Daten richtig zuordne.

          Dongleabfrage:
          vara = ['total_input_power','grid_power','load_power','total_battery_power','total_active_power']
          varb = ['37498','37502','37500','37504','37516']
          varc = ['total_input_power','Input_Zaehler','load_power','total_battery_power','total_active_power']
          Inverterabfrage:
          vara = ['storage_current_day_discharge_capacity','storage_total_charge','storage_total_discharge','storage_current_day_charge_capacity',
          'wechselrichter_power','solar_power','storage_charge_discharge_power','storage_state_of_capacity',
          'phase_A_voltage','phase_B_voltage','phase_C_voltage',
          'phase_A_current','phase_B_current','phase_C_current','daily_yield_energy',
          'storage_unit_1_state_of_capacity','storage_unit_1_charge_discharge_power','storage_unit_2_state_of_capacity','storage_unit_2_charge_discharge_power']
          varb =['37786','37780','37782','32086',
          '32080','32064','37765','37760',
          '32069','32070','32071',
          '32072','32074','32076','32114',
          '37004','37001','37738','37743']
          varc = ['Batterie_Tag_entladen','Batterie_Total_in','Battereie_Total_aus','Batterie_Tageskapazitaet',
          'wechselrichter_power','Solarleistung','Batterie_ein_aus','Batterstorage_state_of_capacity',
          'Phase_A_Spannung','Phase_B_Spannung','Phase_C_Spannung',
          'Phase_A_Strom','Phase_B_Strom','Phase_C_Strom','Tag_bezogen',
          'Batterie_1_Kapazitaet','Batterie_1_Be-Entladung','Batterie_2_Kapazität','Batterie_2_Be-Entladung']
          Michael

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

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

            Hat es eigentlich schon jemand geschafft die start und Ende uhrzeit im time of use betriebsmodus über modbus einzustellen? Laut Dokumentation ist es das register 47255 mit type bytes und quantity 43.
            Ich beiße mir daran die Zähne aus und komme einfach nicht voran. Ich würde das gerne mit einem nodered flow machen.
            Hintergrund ist, durch den stromanbieter tibber möchte ich in den Wintermonaten gezielt den Speicher zu den günstigen Zeiten laden. Die günstigsten Zeiten habe ich schon in iobroker als datenpunkte und werden täglich berechnet. Auch schon umgerechnet in Minuten.

            Bei mir hackt es wirklich nur noch daran, wie ich diese mit über modbus schreiben kann.

            Hast du es mittlerweile geschafft? Wäre auch daran interessiert den Speicher zu günstigen Zeiten zu laden.

            F B 2 Replies Last reply Reply Quote 0
            • F
              firebowl @Christof Lewandowski last edited by

              @christof-lewandowski hab das auch geplant und wär interessiert an einer Lösung.

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

                @christof-lewandowski
                Das würde mich auch immer noch brennend interessieren.
                Ich bin mir gar nicht sicher, ob man wirklich Register 47255 schreiben muss. Das scheint das Register zu sein um dem Speicher konkrete Lade- und Entladezeiträume zu übertragen. Deshalb ist es auch 43 Zeichen lang.
                Es gibt noch mehrere andere Register die sich alle mit Forced Charge / Discharge beschäftigen. Diese sind teilweise deutlich kürzer und damit (vermutlich) einfacher zu schreiben. Aber bisher habe ich es noch nicht hinbekommen.

                Es gibt eine Home Assistant Integration für den Huawei Wechselrichter. Diese scheint von den Screenshots bei GitHub her auch das Forced Charging zu unterstützen.
                HA Integration

                Ich habe schon bei GitHub einen Adapter-Request für iobroker gestellt. Ich hätte die Hoffnung, dass sich Teile der HA Integration nutzen lassen dafür?

                F D 2 Replies Last reply Reply Quote 0
                • F
                  firebowl @badsnoopy667 last edited by

                  @badsnoopy667 das im HA sieht gut aus. Mal schauen ob ich zum Test mal im ioBroker den Modbus Zugriff deaktiviere und über HA Teste.

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

                    @firebowl
                    Falls Du das tust, bitte gibt hier mal Rückmeldung! Dann muss ich das nicht auch noch tun. Habe nämlich kein HA und müsste zum testen erst alles neu aufsetzen und mich reinarbeiten.

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

                      @badsnoopy667 ich bin gerade am reinarbeiten. 😉
                      Blöd das ich nicht gleichzeitig anfragen kann weil sonst zu viele Anfragen am Dongle ankommen.
                      Wenn ich es erfolgreich getestet habe werde ich natürlich berichten aber weiß nicht ob das noch diese Woche was wird.

                      1 Reply Last reply Reply Quote 1
                      • B
                        Bolli last edited by

                        Ist es möglich mit node-red , 3huawei wechselrichter in Kaskade mit 3 unterschiedlichen Modbus ID auszulesen ? Verstehe ich es so , dass die Unit ID die Modbus ID ist ?
                        Ich möchte von allen drei die aktuelle leistung abfragen, ist das möglich ?

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

                          @badsnoopy667 an forced Charge bin ich gerade dran. Ich hab es über das Tour Register geschafft, die Werte alle einzeln für die Perioden auszulesen, aber leider nicht geschafft zu schreiben. Seit heute habe ich ein Skript im Versuch laufen, ob das laden theoretisch funktionieren würde. Gibt es hier im forum: https://forum.iobroker.net/topic/69604/hausspeicher-laden-dynamisch-tibberlink-scripte

                          Wenn das funktioniert, mache ich mich weiter an das laden. Somit habe ich dann schon mal einen datenpunkt.

                          Mit dem force charging muss man so wie ich es gesehen habe, mindestens 3 Register schreiben. Das erste zum laden, das zweite der gewünschte SoC und als dritter, die ladeleistung.

                          Christof Lewandowski 1 Reply Last reply Reply Quote 0
                          • D
                            Doom.86 @Bolli last edited by Doom.86

                            @bolli ich habe bei mir zwei Wechselrichter in Kaskade. Der erste ist meine ich unit 0 und der zweite unit 1. Oder es ist unit 1 und unit 2. Auf jedenfall ist der zweite eine unit id höher als der erste. Sollte so dann auch mit 3 Wechselrichter funktionieren.

                            1 Reply Last reply Reply Quote 0
                            • B
                              Bolli @ChristianSr last edited by

                              @christiansr ich habe auch drei Wechselrichter in Kaskade. Muss ich bei Unit-ID bei allen drei die 16 eintragen ? image.jpg

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

                                @bolli ich nutze diesesn Flow: @spexx said in [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write):

                                @Christof-Lewandowski
                                Ich frage drei größere Adressbereiche ab, das wird dann über einen Buffer-Parser ausgewertet und alle Werte in einzelne Datenpunkte geschrieben. Ich denke im Prinzip das was du suchst, anbei der Flow.
                                Zwischen den Abfragen habe ich aktuell eine Minute Verzögerung, das Abfrageintervall kann man sicher auch noch runtersetzen, läuft so aber bereits seit Wochen problemlos.

                                2023-06-23_20h10_28.png
                                2023-06-23_20h20_26.png
                                flows.json

                                Vorteil, dort werden alle Register auf einmal abgefragt und nicht jedes Nacheinander.

                                Zu deiner Frage, bei mir ist bei dem 1. Wechselrichter die Unit-ID: 1 und bei dem 2. Wechselrichter die Unit-ID: 2 bei Batterie und Powersensor auch die Unit-ID: 1, da diese über den 1. Wechselrichter verwaltet werden und mein Speicher an dem 1. Wechselrichter angeschlossen ist.

                                262d9f09-2621-4f0c-b7a6-0d58c5ffa0ee-image.png

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

                                  @doom-86
                                  ich komm irgendwie nicht weiter:
                                  WR1 - hat Batterie - ID2
                                  WR2 - hat Smarmeter und Dongle - ID1
                                  WR3 - nur in Kaskade - ID3

                                  wenn ich den WR1 abfragen will muss überall die iD2 stehen? richtig ? Port 502. Da kommen aber leider bei allen drei ID die selben Werte. Ich versuche mal meine Daten anzuhängen, vielleicht sieht jemand einen Fehler ?
                                  flows.json

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

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

                                    @doom-86
                                    ich komm irgendwie nicht weiter:
                                    WR1 - hat Batterie - ID2
                                    WR2 - hat Smarmeter und Dongle - ID1
                                    WR3 - nur in Kaskade - ID3

                                    wenn ich den WR1 abfragen will muss überall die iD2 stehen? richtig ? Port 502. Da kommen aber leider bei allen drei ID die selben Werte. Ich versuche mal meine Daten anzuhängen, vielleicht sieht jemand einen Fehler ?
                                    flows.json

                                    Mir ist folgendes Aufgefallen: die ID´s kann ich einzeln abrufen das klappt, wenn ich aber alle drei nach einander abrufen möchte , ändert sich der "modbus Client" selbstständig und alle 3 WR abfragen sind wieder gleich. Kann man das irgendwie unterbinden oder verhindern ?

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

                                      @doom-86 ich scheiterte schon daran überhaupt was zu schreiben 🙂
                                      Selbst das kleine Script um die Entladeleistung zu setzen funktioniert nicht, es wird einfach kein Wert gesetzt, obwohl ich es mehrfach versucht habe.
                                      Ich hoffe trotzdem, dass wir hier Fortschritte machen können, wäre irgendwie schon spannend.

                                      D 2 Replies Last reply Reply Quote 0
                                      • E
                                        elsmarto last edited by

                                        Hi zusammen,

                                        ich nutze den Flow von @Spexx und es funktioniert einwandfrei - vielen Dank dafür.

                                        Gerne würde ich jedoch auch noch die Wirkleistung der einzelnen Phasen auslesen bzw. berechnen. Kann mir jemand kurz sagen, wie ich es berechnen muss? Normal ist ja die Formel: P = U * I * cos(phi). Phi ist nicht vorhanden, jedoch die Blind- und Wirkleistung. cos(phi) = Wirkleistung / Blindleistung. Muss ich über diesen Umweg gehen oder gibt es einen einfacheren Weg zum Ziel zu kommen?

                                        Danke euch

                                        1 Reply Last reply Reply Quote 0
                                        • A
                                          andreas.lattmann last edited by andreas.lattmann

                                          Hallo zusammen
                                          Ich habe die Integration wie hier beschrieben geschafft und es läuft. Was mich irritiert. Der Master WR liefert seine Daten alle ca. 15Sekunden. Der Slave WR 2 (ID 2) aber nur ca. alle 25 Minuten. Kennt jemand dieses Problem und hat eine Lösung? Ich spreche von der Adresse 32080.
                                          Vielen Dank für Eure Rückmeldung

                                          B 1 Reply Last reply Reply Quote 0
                                          • B
                                            badsnoopy667 @andreas.lattmann last edited by

                                            @andreas-lattmann
                                            Hast Du mal versucht das Abfrageintervall auf >20 Sekunden zu stellen? Hatte gerade in einem anderen Forum gelesen, dass der Dongle bei mehreren WR sonst nicht hinterher kommt.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            863
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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