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 @mickym last edited by

      @mickym
      Super, danke schonmal!
      Für die 2. Möglichkeit müsste das dann in etwa so aussehen:
      Wenn Datenpunkt "Battery_Discharge_Power_SET" geändert wurde, dann halte Flow "Modbus TCP" an.
      Sende dann den neuen Wert aus dem SET Datenpunkt an den WR (Diesen Teil habe ich ja schon), warte 30 Sekunden und Starte dann den "Modbus TCP" Flow wieder.

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

        @badsnoopy667

        c3f9c48a-9f76-4d98-a34f-7d0d0496ed48-image.png

        [
           {
               "id": "b392cab7e92fdcc5",
               "type": "comment",
               "z": "702aafcb19d928ac",
               "name": "Wenn ich den Befehl an den Wechselrichter sende, die Batterieentladung zu drosseln (beim Laden des eAutos),",
               "info": "",
               "x": 480,
               "y": 100,
               "wires": []
           },
           {
               "id": "a4b541ada4dbff5b",
               "type": "inject",
               "z": "702aafcb19d928ac",
               "name": "Drossele ;)",
               "props": [
                   {
                       "p": "payload"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "drosseln",
               "payloadType": "str",
               "x": 340,
               "y": 240,
               "wires": [
                   [
                       "7f67d6a08eb47568"
                   ]
               ]
           },
           {
               "id": "7f67d6a08eb47568",
               "type": "change",
               "z": "702aafcb19d928ac",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "pause",
                       "pt": "flow",
                       "to": "true",
                       "tot": "bool"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 530,
               "y": 240,
               "wires": [
                   [
                       "7782c00477972ce8",
                       "70cefd961ae5a1df"
                   ]
               ]
           },
           {
               "id": "7782c00477972ce8",
               "type": "debug",
               "z": "702aafcb19d928ac",
               "name": "wird gedrosselt",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 740,
               "y": 240,
               "wires": []
           },
           {
               "id": "70cefd961ae5a1df",
               "type": "trigger",
               "z": "702aafcb19d928ac",
               "name": "",
               "op1": "",
               "op2": "false",
               "op1type": "nul",
               "op2type": "bool",
               "duration": "30",
               "extend": false,
               "overrideDelay": false,
               "units": "s",
               "reset": "",
               "bytopic": "all",
               "topic": "topic",
               "outputs": 1,
               "x": 730,
               "y": 180,
               "wires": [
                   [
                       "df0ab2949c6f434e"
                   ]
               ]
           },
           {
               "id": "df0ab2949c6f434e",
               "type": "change",
               "z": "702aafcb19d928ac",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "pause",
                       "pt": "flow",
                       "to": "payload",
                       "tot": "msg"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 930,
               "y": 180,
               "wires": [
                   []
               ]
           },
           {
               "id": "fb55f931ec42672a",
               "type": "inject",
               "z": "702aafcb19d928ac",
               "name": "Abfrage",
               "props": [
                   {
                       "p": "payload"
                   }
               ],
               "repeat": "5",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "",
               "payloadType": "date",
               "x": 340,
               "y": 380,
               "wires": [
                   [
                       "adcd90f6a30cee7e"
                   ]
               ]
           },
           {
               "id": "ed5f7870769bdc0e",
               "type": "comment",
               "z": "702aafcb19d928ac",
               "name": "Halte ich den Datenabfrage Flow an, geht der Befehl sofort durch.",
               "info": "",
               "x": 330,
               "y": 300,
               "wires": []
           },
           {
               "id": "adcd90f6a30cee7e",
               "type": "switch",
               "z": "702aafcb19d928ac",
               "name": "Pause ?",
               "property": "pause",
               "propertyType": "flow",
               "rules": [
                   {
                       "t": "false"
                   }
               ],
               "checkall": "true",
               "repair": false,
               "outputs": 1,
               "x": 500,
               "y": 380,
               "wires": [
                   [
                       "7d524fe2d7ae45a8"
                   ]
               ]
           },
           {
               "id": "7d524fe2d7ae45a8",
               "type": "debug",
               "z": "702aafcb19d928ac",
               "name": "es wird abgefragt ....",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 720,
               "y": 380,
               "wires": []
           }
        ]
        

        Wenn Du den Flow über einen DP im iobroker steuern willst, dann so:

        cfc2e9fb-10a9-4d1a-96e6-ffd041151c26-image.png

        [
           {
               "id": "28b45bfa3f89e574",
               "type": "inject",
               "z": "2f30279e53882e25",
               "name": "",
               "props": [
                   {
                       "p": "payload"
                   }
               ],
               "repeat": "5",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "",
               "payloadType": "date",
               "x": 370,
               "y": 180,
               "wires": [
                   [
                       "8c2db9f4fba55e12"
                   ]
               ]
           },
           {
               "id": "d213a463ebfcb035",
               "type": "comment",
               "z": "2f30279e53882e25",
               "name": "Über iobroker Datenpunkt",
               "info": "",
               "x": 350,
               "y": 100,
               "wires": []
           },
           {
               "id": "8c2db9f4fba55e12",
               "type": "ioBroker get",
               "z": "2f30279e53882e25",
               "name": "block?",
               "topic": "0_userdata.0.Test.aktiv",
               "attrname": "block",
               "payloadType": "value",
               "errOnInvalidState": "nothing",
               "x": 530,
               "y": 180,
               "wires": [
                   [
                       "92c013e426392176"
                   ]
               ]
           },
           {
               "id": "92c013e426392176",
               "type": "switch",
               "z": "2f30279e53882e25",
               "name": "",
               "property": "block",
               "propertyType": "msg",
               "rules": [
                   {
                       "t": "false"
                   }
               ],
               "checkall": "true",
               "repair": false,
               "outputs": 1,
               "x": 670,
               "y": 180,
               "wires": [
                   [
                       "2687c381ceab8786"
                   ]
               ]
           },
           {
               "id": "2687c381ceab8786",
               "type": "debug",
               "z": "2f30279e53882e25",
               "name": "Abfrage",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 820,
               "y": 180,
               "wires": []
           }
        ]
        

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

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

          Battery_Discharge_Power_SET

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

          @mickym
          Super, danke schonmal!
          Für die 2. Möglichkeit müsste das dann in etwa so aussehen:
          Wenn Datenpunkt "Battery_Discharge_Power_SET" geändert wurde, dann halte Flow "Modbus TCP" an.
          Sende dann den neuen Wert aus dem SET Datenpunkt an den WR (Diesen Teil habe ich ja schon), warte 30 Sekunden und Starte dann den "Modbus TCP" Flow wieder.

          Nun dann ist eine einfache Delay Node auch ausreichend wenn der Flow eh durch SET getriggert wird.

          4787a107-5bc8-4f7b-bff3-130d22423ee3-image.png

          Man kann auch den Wert aus dem SET Datenpunkt zwischenspeichern und dann auslesen.

          75c6e32c-2815-40b8-b891-f4604b64299f-image.png

          [
             {
                 "id": "a55c82d5a44953b9",
                 "type": "ioBroker in",
                 "z": "2f30279e53882e25",
                 "name": "Battery_Discharge_Power_SET",
                 "topic": "0_userdata.0.Test.Zahl",
                 "payloadType": "value",
                 "onlyack": "",
                 "func": "all",
                 "gap": "",
                 "fireOnStart": "false",
                 "outFormat": "MQTT",
                 "x": 370,
                 "y": 180,
                 "wires": [
                     [
                         "e7da92a0b7653af9"
                     ]
                 ]
             },
             {
                 "id": "f3e7849bcb369d63",
                 "type": "debug",
                 "z": "2f30279e53882e25",
                 "name": "setze Wert",
                 "active": true,
                 "tosidebar": true,
                 "console": false,
                 "tostatus": false,
                 "complete": "payload",
                 "targetType": "msg",
                 "statusVal": "",
                 "statusType": "auto",
                 "x": 990,
                 "y": 320,
                 "wires": []
             },
             {
                 "id": "5e288d024c5be6ee",
                 "type": "comment",
                 "z": "2f30279e53882e25",
                 "name": "Wert zwischenspeichern",
                 "info": "",
                 "x": 330,
                 "y": 100,
                 "wires": []
             },
             {
                 "id": "e7da92a0b7653af9",
                 "type": "trigger",
                 "z": "2f30279e53882e25",
                 "name": "",
                 "op1": "false",
                 "op2": "",
                 "op1type": "bool",
                 "op2type": "pay",
                 "duration": "30",
                 "extend": false,
                 "overrideDelay": false,
                 "units": "s",
                 "reset": "",
                 "bytopic": "all",
                 "topic": "topic",
                 "outputs": 1,
                 "x": 630,
                 "y": 180,
                 "wires": [
                     [
                         "540bd249bf4be993"
                     ]
                 ]
             },
             {
                 "id": "540bd249bf4be993",
                 "type": "change",
                 "z": "2f30279e53882e25",
                 "name": "",
                 "rules": [
                     {
                         "t": "set",
                         "p": "Battery_Discharge_Power_SET",
                         "pt": "flow",
                         "to": "payload",
                         "tot": "msg"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 900,
                 "y": 180,
                 "wires": [
                     []
                 ]
             },
             {
                 "id": "3a3ef09b0e0b7874",
                 "type": "inject",
                 "z": "2f30279e53882e25",
                 "name": "Abfrage",
                 "props": [
                     {
                         "p": "payload"
                     },
                     {
                         "p": "topic",
                         "vt": "str"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "payload": "0",
                 "payloadType": "num",
                 "x": 270,
                 "y": 320,
                 "wires": [
                     [
                         "a6ddae275fa49953"
                     ]
                 ]
             },
             {
                 "id": "a6ddae275fa49953",
                 "type": "switch",
                 "z": "2f30279e53882e25",
                 "name": "Battery_Discharge_Power_SET = Zahl?",
                 "property": "Battery_Discharge_Power_SET",
                 "propertyType": "flow",
                 "rules": [
                     {
                         "t": "istype",
                         "v": "number",
                         "vt": "number"
                     }
                 ],
                 "checkall": "true",
                 "repair": false,
                 "outputs": 1,
                 "x": 540,
                 "y": 320,
                 "wires": [
                     [
                         "7e08d903d092ff11"
                     ]
                 ]
             },
             {
                 "id": "7e08d903d092ff11",
                 "type": "change",
                 "z": "2f30279e53882e25",
                 "name": "Hole Wert",
                 "rules": [
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "Battery_Discharge_Power_SET",
                         "tot": "flow"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 800,
                 "y": 320,
                 "wires": [
                     [
                         "f3e7849bcb369d63"
                     ]
                 ]
             },
             {
                 "id": "dd7987ebd180bc62",
                 "type": "comment",
                 "z": "2f30279e53882e25",
                 "name": "Wert abrufen, wenn Zahl",
                 "info": "",
                 "x": 350,
                 "y": 260,
                 "wires": []
             }
          ]
          

          So nun fällt mir glaube ich nichts mehr ein. 😉

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

            @mickym
            Ich habe jetzt Deinen Vorschlag aus dem ersten Screenshot genommen. Wo trage ich denn da den Namen des Flows ein, der gestoppt werden soll? Das muss doch irgendwo in diesem gelben Node sein, oder? Habe schon versucht das flow.pause durch flow.Modbus_TCP zu ersetzen, aber da passiert nix...

            @mickym Warte mal mit dem Antworten, ich glaube ich versteh gerade so langsam was hier passiert 😉

            Ich glaube ich habe es jetzt hinbekommen. Ich habe alles (Lesen und Schreiben) in einen Flow gepackt und dann diese Pausen Variable dazwischen gebastelt:

            modbus_pause.png

            Es scheint zu funktionieren! Vielen Dank schonmal für die schnelle Hilfe!!

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

              @badsnoopy667 Gut - dann denke ich, es ist verstanden. 🙂 - Weiterhin viel Spaß mit dem Flow. 😉 Im Prinzip gehts aber unten auch einfacher. Meine erste Change sollte quasi Deine Function Node sein. 😉 Ich kannte Deinen kompletten Flow nicht. 😉

              Du kannst deshalb die erste Change Node weglassen.

              93221346-d1c3-4050-8c62-7b988006e494-image.png

              Und mit dem Initialisieren der Kontextvariablen hast Du ja gecheckt.
              Du kannst Dir die Kontextvariablen über das Menü anschauen:

              46211867-2de6-4cc7-b88e-6756a4cb2011-image.png

              Die trigger Node kann true und false ja gleichzeitig setzen:

              197173e6-235f-4784-9074-b7207418423e-image.png

              Du solltest dann auch noch den Haken setzen - dass bei Eingang neuer Nachrichten verzögert wird. Damit wenn beide iobroker-In Nodes hintereinander triggern - immer die 15 s eingehalten werden.

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

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

                Die trigger Node kann true und false ja gleichzeitig setzen:

                Ahhh, jetzt weiß ich was Du meinst mit dem weglassen! Ja, das sollte gehen. Hatte nicht verstanden wo dann das true für die Pause herkommen soll. Aber das kommt dann aus dem Trigger.
                Ja, bestimmt sehr mächtig dieses node-red, aber ich komm damit noch nicht so ganz zu rande. Ich weiß ja, was ich will, ich kann's nur nicht zusammenklicken.

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

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

                  Ja, bestimmt sehr mächtig dieses node-red, aber ich komm damit noch nicht so ganz zu rande. Ich weiß ja, was ich will, ich kann's nur nicht zusammenklicken.

                  Wird schon. 😉

                  1 Reply Last reply Reply Quote 0
                  • T
                    tilo last edited by tilo

                    Hallo zusammen, vielen Dank für die umfangreichen Infos zu Node-Red und dem Huawei sun WR. Leider ist Node-Red für mich noch relativ neu. Auf den ersten Blick sieht alles erfolgsversprechend aus. Leider bekomme ich auch den Fehler "Encrypted credentials not found" bzw. "Verschlüsselte Credentials nicht gefunden". Darüber hinaus sollten alle Einstellungen ok sein (ID auf "1") ....

                    Kann jemand einen Tipp geben?

                    Die Antwort von mickym habe ich noch nicht umgesetzt. (https://forum.iobroker.net/post/971530) kann es daran liegen?

                    Müssen die Datenpunke per Hand angelegt werden (Auto-Create in Node-Red)? Leider werden keine Objekte unter "0_userdata" angelegt.

                    Screenshot 2023-04-28 at 08-17-23 Node-RED 192.168.101.242.png

                    (Dumme) Frage: über welchen Weg kann ich die setting.js editieren.

                    Vielen Dank schon einmal.

                    mickym 1 Reply Last reply Reply Quote 0
                    • T
                      tilo last edited by

                      @tilo Das Ändern unter /opt/iobroker-data/node-red/settings.js hat leider kein Erfolg gebracht. Gibt es da noch ein passendes GEgenstück zu?

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

                        @tilo Wie gesagt sollte man an der settings.js nicht selbst rumfuhrwerken, sonst muss man es bei jedem Adapterupdate machen. Du kannst höchstens mal eine Anfrage auf github stellen.

                        Die settings.js wird in der Regel durch die Adapterkonfiguration verändert und sollte nicht manuell verändert werden. Muss man nur machen, wenn es keine entsprechenden Einträge gibt. Bei Dir scheint entweder die flow-credentials nicht lesbar zu sein, weil der Schlüssel verkehrt ist.

                        Auch wenn man den Schlüssel aus der settings js rauskopiert muss der irgendwo anders im iobroker abgespeichert sein. ICH WEISS ABER AUCH NICHT WO. 🤔 😕

                        Dieser Schlüssel ist aber fix (%%credentialSecret%%), weil er über eine variable aus dem iobroker gesetzt wird:

                        6b69c48a-5b0c-4dfc-bb84-72aa79123a99-image.png

                        Diese template settings.js würde ich aber nicht editieren, wenn Du nicht weißt was Du tust und ist gerade für Anfänger nicht empfehlenswert.

                        Die template Datei settings.js, die bei jedem Start verwendet wird liegt unter: /opt/iobroker/node_modules/iobroker.node-red

                        Meine Empfehlung - gerade als Anfänger wäre aber. Exportiere Dir alle Flows oder sichere Dir die flows.json weg - lösche die Instanz des Adapters, erstelle sie neu - importiere oder kopiere die flows.json wieder in das data Verzeichnis und gib Deine Credentials neu ein. Gerade wenn Du Anfänger bist und noch nicht soviele Flows hast, ist das sicher sinnvoller.

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

                          Hallo zusammen,

                          ich habe das gleiche Problem. Frische iobroker Docker Installation.

                          Ich habe den node-red Adapter installiert, die Dongle-IP und die Unit-ID angepasst, jedoch bekomme ich keine Daten geliefert. Obwohl ich die Einstellung "Erstellung von Fremdobjekten zulassen" aktiviert habe, werden keine Objekte angelegt. Ich bin mir nicht sicher ob der Flow überhaupt läuft. Im Log sehe ich nur die folgenden Meldungen:

                          node-red.0
                          2023-05-04 22:26:05.053	warn	4 May 22:26:05 - [warn] Verschlüsselte Credentials nicht gefunden
                          
                          node-red.0
                          2023-05-04 22:26:04.998	warn	4 May 22:26:04 - [warn] Projekte deaktiviert: editorTheme.projects.enabled=false
                          

                          Testweise habe ich auch ein Objekt manuell angelegt. Zudem habe ich den node-red Adapter schon mehrfach neu installiert. Hat leider nichts gebracht.

                          Was mache ich falsch? Was kann ich noch probieren?

                          Danke und Grüße
                          Florian

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

                            @floriw2000 Der Fehler saß natürlich vor dem Bildschirm. Ich hatte nur in den "Globale-Konfigurations-Nodes" die Unit-Id auf 1 gesetzt und nicht, wie oben sehr schön beschrieben, in allen modbus Nodes. 🙃

                            Jetzt läuft alles und die Objekte wurden angelegt, obwohl die Warnung mit "Verschlüsselte Credentials nicht gefunden" weiterhin besteht.

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

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

                              Jetzt läuft alles und die Objekte wurden angelegt, obwohl die Warnung mit "Verschlüsselte Credentials nicht gefunden" weiterhin besteht.

                              Ihr müsst halt die ganzen Konfigurationen nochmal neu eintragen - dann könnt ihr die beiden Dateien löschen und Adapter neu starten.

                              07c432bf-4505-4553-b1bf-93d1396a53b1-image.png

                              befindet sich im persönlichen Node-Red Verzeichnis:

                              /opt/iobroker/iobroker-data/node-red
                              
                              1 Reply Last reply Reply Quote 0
                              • Christof Lewandowski
                                Christof Lewandowski last edited by

                                Hab alles nach Anleitung konfiguriert, doch bekomme immer die Meldung:

                                7.5.2023, 11:58:08node: 30000
                                msg : error
                                "Error: Port Not Open"
                                

                                Hab natürlich die IP Adresse des Wechselrichters in der globalen Konfig gesetzt, als auch die ID auf 1 (auch in den einzelnen Modbus-Gettern. Auch ein Port Test auf Port 502 ist erfolgreich.
                                Jemand noch zufällig eine Idee?

                                Nutzen den WLAN Dongle mit einem 10 KTL-M1 und 10kW Speicher.

                                FragMike Christof Lewandowski 2 Replies Last reply Reply Quote 0
                                • FragMike
                                  FragMike @Christof Lewandowski last edited by FragMike

                                  Hallo zusammen,
                                  Ich stehe kurz vor Unterzeichnung mit Solateur. Es wird dann wohl Huawei werden. Eine Frage ist jedoch noch offen....gibt es nun einen zuverlässigen Weg (Iobroker, API, widget, script)
                                  alle wichtigen Werte zuverlässig in Iobroker zu bekommen und auch Einfluss auf das Ladeverhalten vom Speicher zu haben?
                                  Dumm, wenn ich nachher hier was eingebaut bekomme und es andauernd rumzickt😉

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

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

                                    Hab alles nach Anleitung konfiguriert, doch bekomme immer die Meldung:

                                    7.5.2023, 11:58:08node: 30000
                                    msg : error
                                    "Error: Port Not Open"
                                    

                                    Hab natürlich die IP Adresse des Wechselrichters in der globalen Konfig gesetzt, als auch die ID auf 1 (auch in den einzelnen Modbus-Gettern. Auch ein Port Test auf Port 502 ist erfolgreich.
                                    Jemand noch zufällig eine Idee?

                                    Nutzen den WLAN Dongle mit einem 10 KTL-M1 und 10kW Speicher.

                                    Komischerweise kommen diese Meldungen nicht mehr, funktionieren tut es trotzdem noch nicht 😄

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

                                    Hab alles nach Anleitung konfiguriert, doch bekomme immer die Meldung:

                                    7.5.2023, 11:58:08node: 30000
                                    msg : error
                                    "Error: Port Not Open"
                                    

                                    Hab natürlich die IP Adresse des Wechselrichters in der globalen Konfig gesetzt, als auch die ID auf 1 (auch in den einzelnen Modbus-Gettern. Auch ein Port Test auf Port 502 ist erfolgreich.
                                    Jemand noch zufällig eine Idee?

                                    Nutzen den WLAN Dongle mit einem 10 KTL-M1 und 10kW Speicher.

                                    Die Meldungen sind zwar weg, funktionieren tut es trotzdem noch nicht :D.
                                    Hab nun die Meldung:

                                    "Getter -> Inject while node is not ready for input."
                                    

                                    ModbusTCP im Dongle ist aktiviert. WEiß jemand, ob nur eine Verbindung möglich ist? Hab noch ein Mgmt System im EInsatz, was ebenfalls über ModbusTCP die Daten abgreift.

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

                                      @fragmike
                                      Bei mir funktioniert es jetzt seit über einem Jahr zuverlässig mit der in Post 1 beschriebenen Methode.
                                      Ab und zu (vll. einmal in zwei Wochen) kommen "komische" Werte vom WR, z.b. Akkustand = 244353455673 oder sowas. Aber dann nur für ein paar Minuten, gerne Nachts, wenn der Akku leer ist. Zur Not kann man so unplausible Daten ja rausfiltern.

                                      Die ganzen Monats- / Jahreswerte könnte man (nachdem man die unplausiblen Daten rausgefiltert hat) mit dem sourceanalytix Adapter aufsummieren. Das mache ich aktuell aber nicht, die gucke ich weiterhin in der App nach.

                                      Akku-Entladeleistung begrenzen geht auch gut. Was ich noch nicht hinbekommen habe ist den Akku auf Befehl aus dem Netz zu laden. Das scheint relativ kompliziert über Modbus zu sein. Gehen sollte es eigentlich, denn das entsprechende Register gibt es. Aber Huawei ist da sehr zurückhaltend mit der Beschreibung, was man denn nun in das Register schreiben muss.

                                      FragMike 1 Reply Last reply Reply Quote 1
                                      • FragMike
                                        FragMike @badsnoopy667 last edited by

                                        @badsnoopy667 Super.. genau das wollte ich hören 😊👍

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

                                          Mal eine Frage, es gibt ja die Möglichkeit den Wechselrichter über RS485 und z.B. einen Rundsteuerempfänger in der Leistung zu drosseln bzw. komplett abzuschalten.
                                          1d469303-18c0-4689-ab88-858de467ee71-image.png a662ee50-f86f-497e-ba50-aaffb4803a28-image.png
                                          Hat schon jemand es hingekriegt dies über NodeRed zu machen?

                                          P 1 Reply Last reply Reply Quote 0
                                          • P
                                            ple @joeysch last edited by

                                            @joeysch
                                            Über node-red hatte ich noch keinen Bedarf, aber ich habe einen RSE, ich hoffe mal, der wird aber nie aktiv und drossel meine PV.

                                            Was mich mehr interessieren würde, vielleicht hat es schon einer umgesetzt, wäre die Daten via Modbus RTU zu bekommen, also sich in den RS485 oder was es ist sich einzuklinken. Vielleicht läuft das stabiler und schneller als Modbus TCP. Dann könnte man vielleicht auch direkt den Modbusadapter nehmen oder auch vielleicht die Wallbox selber. Z.B. die Cfos, glaube die kann auch direkt RS485.

                                            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
                                            176280
                                            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