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.
    • HomeWolf
      HomeWolf @Atifan last edited by

      Kann jemand mit der Fehlermeldung was anfangen? Egal was ich umstelle. nichts hilft

      State value to set for "0_userdata.0.Huawei.Inverter.Model" has to be stringified but received type "object"
      
      
      Atifan mickym 2 Replies Last reply Reply Quote 0
      • Atifan
        Atifan @HomeWolf last edited by

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

        Kann jemand mit der Fehlermeldung was anfangen? Egal was ich umstelle. nichts hilft

        State value to set for "0_userdata.0.Huawei.Inverter.Model" has to be stringified but received type "object"
        
        

        Dein Datenpunkt ist vom Typ String aber du empfängst Daten vom Typ Object.
        Du kannst den Datentyp im Datenpunkt manuell auf object ändern, dann sollte der Fehler weg sein.

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

          @atifan wo stell ich das ein ?

          im Objekt steht folgendes

          {
            "common": {
              "read": false,
              "write": true,
              "desc": "Created by Node-Red",
              "role": "Text",
              "name": "Huawei",
              "type": "object"
            },
            "native": {},
            "type": "state",
            "_id": "0_userdata.0.Huawei.Inverter.Model",
            "from": "system.adapter.admin.0",
            "user": "system.user.admin",
            "ts": 1691774042770
          
          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @HomeWolf last edited by mickym

            @homewolf Ja Du musst das Objekt stringifizieren. Schalte einfach eine JSON Node davor. Mach den Datenpunkt entweder als String oder als JSON.

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

              @mickym sorry aber ich bin ein absoluter Neuling auf dem Gebiet. Ich bekomm es leider nicht hin, kannst du mir ein Beispiel schicken ? So sieht es aktuell bei mir aus.

              Bildschirm­foto 2023-08-12 um 11.11.32.png Bildschirm­foto 2023-08-12 um 11.11.20.png

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

                @homewolf

                Momentan bekommst Du das als Ergebnis raus, also ein Array mit einem Element.

                122d781e-08df-4ddb-9723-326e744759c6-image.png

                Ein Array kommt deshalb raus, weil Du es so in Deiner Ausgabe spezifiziert hast.

                Also dem Element 0. Wenn Du aus dem Array nur den String als payload in die iobroker Out Node schreiben willst, dann extrahierst Du dieses Element mit einer Change NOde.

                So schreibst Du nur das 1. Element (Index 0) in Deine iobroker Out Node. Nun ist es KEIN Objekt mehr sondern nur der String.

                f2230749-82db-47d6-a8f8-8bb035284bf7-image.png

                Wenn Du mehrere Ausgaben hast, weil Du mehr parsed und Du willst das Array oder Objekt in einen Datenbunkt schreiben dann machst Du eine JSON Node davor - dann wird Dein Array stringifiziert - also ein JSON String erzeugt.

                dd825db9-9a4f-4e5f-8cd7-72828fb98d99-image.png

                So kannst Du Objekte in einen iobroker Datenpunkt schreiben, wenn Du ein komplexeres Objekt hast.

                ===========================================================================================

                DIE EINFACHSTE LÖSUNG ist, wenn Du Dir einfach mehrfache Ergebnisse ausgeben lässt. Da Du nur EINES hast, brauchst Du dann gar KEINE Node mehr dazwischen. So kannst Du das Ergebnis direkt in die iobroker-Out Node schreiben.

                43b881a5-826b-4b49-8c02-17cc3b92e6a0-image.png

                Wenn Du Dir also mehrfache Ergebnisse ausgeben lässt, dann macht die Buffer Node Dir einzelne Nachrichten und in diesem Fall direkt den String.

                Ich hoffe ich konnte nun KLARHEIT in die Funktionsweise der Parser Node und deren Ausgabe bringen.

                Nur zur Info, wenn Du einzelne Nachrichten haben willst - Du aber mehrfache hast kannst Du auch das topic setzen und in das Nachrichtenobjekt mit aufnehmen lassen.

                872bdb3b-8915-4887-abb6-fec286abbb0f-image.png

                Nun könntest Du auch mehrere Ausgaben haben und diese mit EINER iobroker-Out Node in mehrere Datenpunkte schreiben.

                3a426f91-cbf2-4451-824d-6ccc7efc8e82-image.png

                Statt das topic nun Model und Bezeichnung zu nennen, könntest Du nun als Topic den Pfad zum Datenpunkt angeben. Wenn Du also in der iobroker-Out Node das topic weglässt, kann es auch aus dem Nachrichtenobjekt genommen werden:
                9ee4ea87-8b62-41fb-b017-2f9755a355e9-image.png
                Ich würde auch ReadOnly nehmen und value - dann werden die Datenpunkte auch erstellt, wenn Du es in der Adapterkonfiguration zulässt. So kannst Du quasi direkt aus der Buffer Parser Node mehrere Datenpunkte gleichzeitig beschreiben:

                0730b88f-c2f6-4d0c-b293-50db1f334e57-image.png

                Wie Du siehst funktioniert das einwandfrei:

                044b87ac-205d-4b65-b6b8-f54035cb7459-image.png

                So ich glaube nun solltest Du genügend Anregung haben. 😉 Zur besseren Übersichtlichkeit könnte man aber auch die Namen Model und Bezeichnung lassen und den Pfad zum Datenpunkt mit einer Change Node ergänzen. Aber hier gibt es einfach mehrere Wege die zum Ziel führen und sind dann auch Geschmackssache.

                =========================================================================

                Ich will Dich aber nicht verwirren - für Dein Problem - einfach die Parser Node wie anfangs beschrieben einfach umstellen:

                2a008e74-6565-4334-b520-767675b22ca2-image.png

                Das topic brauchst Du dann nicht - da Du es ja in Deiner iobroker-Out Node eingegeben hast.

                1 Reply Last reply Reply Quote 0
                • HomeWolf
                  HomeWolf @jwedenig last edited by HomeWolf

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

                  Habe seit gestern Probleme, meine Daten auszulesen!
                  Kennt wer diese Fehlermeldung?:Bildschirmfoto 2023-07-28 um 08.44.29.png

                  Gibt es hierfür eine Lösung, ? habe gesehen, das bei mir auch einige Werte nicht mehr geschrieben werden seit längere Zeit....

                  Ab Register 32072 taucht das Problem auf? Wurde eventuell beim Update die Register geändert?

                  Bildschirm­foto 2023-08-12 um 21.13.32.png

                  1 Reply Last reply Reply Quote 0
                  • ChristianSr
                    ChristianSr last edited by ChristianSr

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

                    PV-Gesamtertrag: 32106 Accumulated energy yield

                    Der Wert passt bei mir nicht.
                    Ich habe jeweils die Differenz von einem Tag zum nächsten genommen und bekomme unplausible Werte.
                    Jetzt habe ich mal für ein paar Tage die Daten aus der Datenbank (oben) und aus der App (unten) verglichen. Ich verstehe nicht, was 32106 bei mir bedeutet. Hat jemand eine Idee?
                    962ee17d-2e6a-41e0-b3df-168824571ab0-grafik.png

                    #edit: ein Problem ist identifiziert. Nicht alle Wechselrichter schicken ihre Daten

                    1 Reply Last reply Reply Quote 0
                    • ChristianSr
                      ChristianSr last edited by ChristianSr

                      Um Klarheit zu schaffen habe ich nun auch noch die Tagesleistung hinzugefügt und die berechnete Leistung aus Arbeit * Zeit. Leider führt das nur zu noch mehr Verwirrung.

                      2cb17262-0629-435d-a62d-c7e50d3a1b48-grafik.png

                      Hat schon jemand das Rätsel gelöst und es tatsächlich geschafft die Daten mit der App in Deckung zu bringen?

                      #edit: ein Problem ist identifiziert. Nicht alle Wechselrichter schicken ihre Daten

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

                        Seit ein paar Tagen habe ich ein PV-Anlage des Anbieters EnPAL mit dem SUN2000. Ich bin seither auf der Suche nach einer Lösung um die wesentlichen Daten (Erzeugung, Einspeisung etc) auslesen zu können. Bin in dem Bereich aber noch sehr neu und habe bisher um Node-red einen großen Bogen gemacht und bin auf diesen Thread gekommen.
                        Funktioniert diese Lösung grundsätzlich auch mit EnPAL Installationen ? Die installieren ja auch ein Kommunikationsmodul und werten die WR Daten in ihrem RZ aus.
                        Kann ich den WLAN-FE-Dongle nach meinen Bedürfnissen verändern oder ist der schon von EnPal im Gebrauch ? Aktuell sendet der WLAN-FE auf 192.168.200.2 (nicht mein WLAN)
                        Kann jemand zu der Thematik was sagen ?

                        1 Reply Last reply Reply Quote 0
                        • ChristianSr
                          ChristianSr last edited by

                          also ein Problem habe ich identifiziert: Der Inverter 2 liefert keine Daten. (dann ist ganz logisch, dass der Gesamtertrag nicht passt)
                          Ich konnte allerdings noch nicht klären, warum ich von Inverter 2 keine Daten bekomme. Die Einstellungen im Modbus-Getter müssten identisch sein und nur die Unit-ID eins mehr - oder?
                          Unit-ID 0 oder 3 liefert auch nix - habe ich probiert.

                          Kann das noch ein Einstellungsproblem in Node-Red sein oder liegt der Fehler im Inverter?

                          A 1 Reply Last reply Reply Quote 0
                          • O
                            OpaMaik last edited by

                            Ich möchte mich rechtzeitig herzlich bei Euch allen, besonders beim Threadersteller, Spexx und mickym bedanken.
                            Dank diesem Thread war es ein Leichtes, die Daten in den ioBrocker zu bekommen.
                            Bisher habe ich mir die Daten der PV-Anlage zwecks Überschuss-Steuerung mehr oder weniger zuverlässig über das Projekt „Solaranzeige“ gezogen und mit Homematic weiterverarbeitet.

                            Mit dieser Lösung hier stehen aber viel einfacher viel mehr Daten zuverlässig zur Verfügung. TOP!!

                            Viele Grüße
                            Maik

                            1 Reply Last reply Reply Quote 0
                            • Hant0r
                              Hant0r last edited by

                              Moin zusammen,

                              erst einmal mega vielen Dank für diesen tollen Thread und die Infos, die ihr bereit gesetllt werden.
                              Habe soweit vieles für meinen Sun2000-KTL30-M3 übernhemen können und es lief auch erst ganz gut.
                              Nun wollte ich die Daten innerhalb vom ioBroker verarbeiten und da viel mir auf, dass sie überhaupt nicht mehr aktuell sind.
                              Nach vielen hin und her habe ich gemerkt, dass das Node-Red skript ca 7 mal Daten liefert und dann nicht mehr. Habt ihr eine Ahnung woran das liegen könnte?

                              Gruß

                              1 Reply Last reply Reply Quote 0
                              • Hant0r
                                Hant0r last edited by

                                Ich habe das "Problem" glaube ich gefunden - für alle die, die ein ähnliches Verhalten haben.
                                Mein Wechelrichter erlaubt wohl nur eine Modbus Verbindung. Da ich diese schon mit "Solaranzeige" abgreife, war das mit Node-Red wohl "zu viel". Heißt, die beiden haben sich immer um die Verbindung "gestritten". Bei Solaranzeige zeigte sich das mit 0-Werten.

                                Also wenn man mehrere Verbindungen benötigt, muss man sich mal Modbus-Proxy ansehen.

                                O 1 Reply Last reply Reply Quote 0
                                • O
                                  OpaMaik @Hant0r last edited by

                                  @hant0r Ja, Solaranzeige und iobroker gleichzeitig funktioniert nicht.
                                  Ich habe seit einiger Zeit das hier im Thread optimierte Programm laufen.
                                  Dabei werden alles Daten aus dem Wechselrichter minütlich ausgelesen.
                                  Mit 30 Sekunden Versatz werden dann alle Daten vom Akku/Smartmeter gelesen.
                                  Das Ganze funktioniert bisher völlig fehlerfrei und zuverlässig. Bei Solaranzeige hatte ich immer die Probleme, das nicht alle Daten zuverlässig gelesen wurden. Zudem konnten nur 10 Werte an Homematic übergeben werden.

                                  Diese Lösung hier ist deutlich besser !

                                  Hant0r 1 Reply Last reply Reply Quote 0
                                  • Hant0r
                                    Hant0r @OpaMaik last edited by

                                    @opamaik danke dir.
                                    Habe es nun mit MQTT gelöst. Solaranzeige sendet alle paar Sekunden alle Werte an den ioBroker.
                                    Brauche da die Daten, um den Hausverbrauch zu errechnen und wieder in die DB zu protokollieren. So kann ich in Grafana alles anzeigen.

                                    1 Reply Last reply Reply Quote 0
                                    • A
                                      alexander85 @ChristianSr last edited by

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

                                      also ein Problem habe ich identifiziert: Der Inverter 2 liefert keine Daten. (dann ist ganz logisch, dass der Gesamtertrag nicht passt)
                                      Ich konnte allerdings noch nicht klären, warum ich von Inverter 2 keine Daten bekomme. Die Einstellungen im Modbus-Getter müssten identisch sein und nur die Unit-ID eins mehr - oder?
                                      Unit-ID 0 oder 3 liefert auch nix - habe ich probiert.

                                      Kann das noch ein Einstellungsproblem in Node-Red sein oder liegt der Fehler im Inverter?

                                      Bei kaskadierten Wechselrichtern bekommt der Master-WR und der SmartMeter offenbar die UnitID 16.

                                      ChristianSr 1 Reply Last reply Reply Quote 0
                                      • T
                                        TorbenNW last edited by

                                        Erst einmal vielen Dank für das Teilen des Flows und den vielen Hilfestellungen.

                                        Wird es problematisch den Abfragezyklus zu verkürzen wenn man nur 3 Datensätze abruft? (L1-L3) da ich hiermit einen Victron Multiplus 2 steuern möchte und ja, es wäre kein Problem eine Minute mehr Strom aus dem Speicher ins Netz zu speisen oder eben ein bisschen zu wenig ins Hausnetz aber ich würde natürlich versuchen es so weit wie möglich optimieren zu wollen

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

                                          @torbennw
                                          Was meinst Du genau? Die "wichtigen" Daten (Erzeugung, Einspeisung, etc.) werden doch schon alle 5 Sekunden abgerufen. Oder meinst Du was anderes?

                                          5_sek.png

                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            TorbenNW @badsnoopy667 last edited by

                                            @badsnoopy667 ich habe aus dem ersten Thread noch das Script, das ist ja deutlich umfangreicher mit 2 WR + SmartMeter und Batterie. Das ganze bräuchte ich gar nicht, mir reicht die FusionSolar App zum gucken, beim abrufen der Daten geht es bei mir rein um die Überschussspeicherung.
                                            Dein Script sieht deutlich kleiner aus

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            969
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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