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. Huawei Wechselrichter und Wallbox abfrage über Modus?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Huawei Wechselrichter und Wallbox abfrage über Modus?

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

      @homewolf ja, du musst relativ nahe an den Wechselrichter. Der Accesspoint im Wechselrichter und der SDongle sind aber 2 unterschiedliche Geräte. Der Accesspoint im Wechselrichter lässt sich NICHT in den Client Mode versetzen. Somit kannst du dich nur mit einem Gerät im "Client" Mode auf den Wechselrichter direkt verbinden. Der Sdongle hingegen ist mit einer einzelnen Session schon überfordert, egal ob du jetzt per Wlan oder Lan damit verbunden bist.

      Du könntest irgendeinen billigen Accesspoint oder Wlan Router kaufen und diesen als Bridge zum Wechselrichter nutzen => https://skyboo.net/2021/07/how-to-connect-to-sun2000-from-dd-wrt/

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

        Gibt es den eine Möglichkeit, einen Virtuellen Zähler zu erstellen? Also ich habe die Daten ja im Node red drin. Die werde ja über Modus im Wechselrichter abgefragt. Jetzt könne ich die Daten ja zur Verfügung stellen und bei der Wallbox in den Modbus Einstellungen die vom IO Broker angeben `??? gibt es hier für eventuell ne Lösung?

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

          So ich bin einen Punkt weiter. Einen Virtuellen Zähler habe ich jetzt. Aber ich bekomme die Daten nicht dort rein. Ich habe die Daten im IoBroker drin, leider kenne ich mich mit node red nicht aus.

          Ich habe diesen Ablauf in einem anderen Beitrag gefunden. Wie gesagt der Zähler wird erstellt, leider werden die Daten vom Shelly nicht abgefragt.

          30fb05e8-37e0-4e6e-aed4-e7d8919bb85e-image.png

          Der Shelly wurde hier so eingebunden 284aa7d8-e28a-4b9e-a8a5-b052dd5d88c4-image.png

          Leider ohne Erfolg. Aber da ich die Daten ja eh schon im IOBroker habe, habe ich mir gedacht, dass ich diese doch direkt übergeben kann. Leider weiß ich nicht wie. Kann mir jemand sagen was für einen Baustein ich brauche und wie ich diesen Konfiguriere, dass er z.B
          09587bea-bdab-44db-9456-3d8b79e61a95-image.png

          vielen Dank schon mal

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

            @homewolf Ich habe KEINE Ahnung was Du machen willst - aber Du hast doch die iobroker Nodes mit dem Du auf Datenpunkte zugreifen kannst oder in diese schreiben kannst.

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

              @mickym
              ich habe halt keine Ahnung wie es geht 😄
              Ichhabe jetzt IO Broker get geholt. Vorne dran die aktualisierung alle 5 Sekunden und dann von dem IO Broker gehe ich auf eine Funktion und von da aus auf Modbus-Write. Dort habe ich auch die Richtige Adresse ausgewählt, aber leider kommt keine Werte bei Gesamtleistung an. Die einzelnen Leistungen L1-L3 funktionieren.

              Ich habe mir das ganze aus einem anderen Ablauf herauskopiert. Bei den einzelnen Leistungen habe ich folgendes in der Funktion stehen.

              // Para usarlo en el calculo del sumatorio
              flow.set('watts1',msg.payload);
              
              var watts=new Int32Array(2);
              watts[0]=msg.payload.toFixed(0) * 10;
              if (watts[0] < 0 ) {
                  watts[0] = 65535 + watts[0];
                  watts[1] = 65535;
              }
              msg={};
              msg.payload=watts;
              return msg;```
              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @HomeWolf last edited by mickym

                @homewolf ich kann leider nur vom Handy aus schreiben. So wie ich sehe übergibst du ein Array aber nicht den Wert. Häng einfach debug Nodes dran, dann siehst ggf einen Unterschied

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

                  @mickym habe es jetzt hinbekommen. Also lese die Werte mit dem Programm Carlo Gavazzi UCS 7 - Universal Configuration Software aus. Hier bekomme ich die Werte auch angezeigt. Aber irgend wie will die Huawei Wallbox das ganze nicht fressen. Die erkennt den Zähler, aber irgend wie anscheine die Werte nicht, sie schaltet sich ein und dann direkt wieder aus und schreib Pc Leistung niedrig dann schaltet Sie sich direkt wieder ein und dann wieder aus und so geht das immer weiter. Habe das Gefühl, dass die Werte gesetzt werden und beim überschreiben vorher auf 0 gesetzt werden und dann neu beschrieben werden und wenn die Wallbox in dem Moment abfragt, denkt Sie das kein PV Leistung da ist. Kann sich das jemand erklären?

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

                    Ich habe nun folgende Idee gehabt, wenn ich die Werte mit Node Red auslese und diese dann in einem Modbus Server von Node Red zur verfügung stelle, dann könnte die Wallbox hier zugreifen und Node Red weiter auf die Wallbox. Sollte doch klappen oder?

                    Kann mir hier jemand helfen, wie ich das am einfachsten umsetze? Also alle Datenpunkte abfragen und dann einen neuen Modbusserver übergeben. Sozusagen eine Virtuelle PV Anlage.

                    Hier mal ein Schema mit meiner Anlage, wie ich mir das Vorgestellt habe und wie aktuell der Aufbau ist.

                    cd283d14-8671-41ec-bf37-4708e3f2d74a-image.png

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

                      ich glaube ich habe es fast hin bekommen, ein Problem gibt es noch.. W und KW ....

                      folgern Ablauf habe ich mir zusammen gebaut und gesucht:
                      Bildschirm­foto 2023-08-13 um 19.47.21.png

                      in der Funktion steht folgendes:

                      W L1

                      flow.set('watts1',msg.payload);
                      
                      var watts=new Int32Array(2);
                      watts[0]=msg.payload.toFixed(0) * 10;
                      if (watts[0] < 0 ) {
                          watts[0] = 65535 + watts[0];
                          watts[1] = 65535;
                      }
                      msg={};
                      msg.payload=watts;
                      return msg;
                      

                      Total W L 1

                      var twatts=new Int32Array(2);
                      var valor = (parseInt(msg.payload / 100)).toString(2).padStart(32, '0');
                      
                      var twatts = new Int32Array(2);
                      twatts[0] = parseInt(valor.substring(16, 32), 2);
                      twatts[1] = parseInt(valor.substring(0, 16), 2);
                      
                      msg = { payload: twatts};
                      return msg;```
                      
                      
                      Problem ist, dass meine IO Broker Objekte die Werte in W angeben, die Wallbox aber KW empfangen tut. Somit habe ich natürlich falsche werte an der Wallbox. Wie kann ich jetzt auf 100 W 0,1 kw machen ? mir ist klar, dass man die zahl durch 1000 Teilen muss. Aber wie mach ich das in der Funktion?
                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @HomeWolf last edited by mickym

                        @homewolf Deswegen habe ich Dir den Thread gepostet. Die Nodes machen alles für Dich - da musst Du nichts codieren.

                        https://forum.iobroker.net/post/991216

                        [
                          {
                              "id": "b2a1f09de6d12e90",
                              "type": "inject",
                              "z": "385f4b8d434f6005",
                              "name": "",
                              "props": [
                                  {
                                      "p": "payload"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "100.00",
                              "payloadType": "num",
                              "x": 170,
                              "y": 2620,
                              "wires": [
                                  [
                                      "1c12b45aa6c4adca"
                                  ]
                              ]
                          },
                          {
                              "id": "9bc9a74d1f455065",
                              "type": "buffer-maker",
                              "z": "385f4b8d434f6005",
                              "name": "",
                              "specification": "spec",
                              "specificationType": "ui",
                              "items": [
                                  {
                                      "name": "item1",
                                      "type": "floatbe",
                                      "length": 1,
                                      "dataType": "msg",
                                      "data": "payload"
                                  }
                              ],
                              "swap1": "",
                              "swap2": "",
                              "swap3": "",
                              "swap1Type": "swap",
                              "swap2Type": "swap",
                              "swap3Type": "swap",
                              "msgProperty": "payload",
                              "msgPropertyType": "str",
                              "x": 390,
                              "y": 2600,
                              "wires": [
                                  [
                                      "faea83afe6fa1bba",
                                      "c39e4fa3f88efaed"
                                  ]
                              ]
                          },
                          {
                              "id": "c5411af36dbc6206",
                              "type": "debug",
                              "z": "385f4b8d434f6005",
                              "name": "Neues Array",
                              "active": true,
                              "tosidebar": true,
                              "console": false,
                              "tostatus": true,
                              "complete": "payload",
                              "targetType": "msg",
                              "statusVal": "payload",
                              "statusType": "auto",
                              "x": 770,
                              "y": 2600,
                              "wires": []
                          },
                          {
                              "id": "7d49268d76c118b3",
                              "type": "inject",
                              "z": "385f4b8d434f6005",
                              "name": "",
                              "props": [
                                  {
                                      "p": "payload"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "-100.00",
                              "payloadType": "num",
                              "x": 170,
                              "y": 2580,
                              "wires": [
                                  [
                                      "1c12b45aa6c4adca"
                                  ]
                              ]
                          },
                          {
                              "id": "faea83afe6fa1bba",
                              "type": "buffer-parser",
                              "z": "385f4b8d434f6005",
                              "name": "",
                              "data": "payload",
                              "dataType": "msg",
                              "specification": "spec",
                              "specificationType": "ui",
                              "items": [
                                  {
                                      "type": "uint16be",
                                      "name": "item1",
                                      "offset": 0,
                                      "length": 1,
                                      "offsetbit": 0,
                                      "scale": "1",
                                      "mask": ""
                                  },
                                  {
                                      "type": "uint16be",
                                      "name": "item2",
                                      "offset": 2,
                                      "length": 1,
                                      "offsetbit": 0,
                                      "scale": "1",
                                      "mask": ""
                                  }
                              ],
                              "swap1": "",
                              "swap2": "",
                              "swap3": "",
                              "swap1Type": "swap",
                              "swap2Type": "swap",
                              "swap3Type": "swap",
                              "msgProperty": "payload",
                              "msgPropertyType": "str",
                              "resultType": "value",
                              "resultTypeType": "return",
                              "multipleResult": false,
                              "fanOutMultipleResult": false,
                              "setTopic": true,
                              "outputs": 1,
                              "x": 570,
                              "y": 2600,
                              "wires": [
                                  [
                                      "c5411af36dbc6206",
                                      "28e7d3b028dcf2ba"
                                  ]
                              ]
                          },
                          {
                              "id": "c310b522d6b2bc18",
                              "type": "inject",
                              "z": "385f4b8d434f6005",
                              "name": "",
                              "props": [
                                  {
                                      "p": "payload"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "-1234.00",
                              "payloadType": "num",
                              "x": 160,
                              "y": 2700,
                              "wires": [
                                  [
                                      "1c12b45aa6c4adca"
                                  ]
                              ]
                          },
                          {
                              "id": "c39e4fa3f88efaed",
                              "type": "debug",
                              "z": "385f4b8d434f6005",
                              "name": "buffer",
                              "active": true,
                              "tosidebar": true,
                              "console": false,
                              "tostatus": false,
                              "complete": "payload",
                              "targetType": "msg",
                              "statusVal": "",
                              "statusType": "auto",
                              "x": 550,
                              "y": 2540,
                              "wires": []
                          },
                          {
                              "id": "31e68b28d89b17db",
                              "type": "inject",
                              "z": "385f4b8d434f6005",
                              "name": "",
                              "props": [
                                  {
                                      "p": "payload"
                                  }
                              ],
                              "repeat": "",
                              "crontab": "",
                              "once": false,
                              "onceDelay": 0.1,
                              "topic": "",
                              "payload": "68001",
                              "payloadType": "num",
                              "x": 170,
                              "y": 2660,
                              "wires": [
                                  [
                                      "1c12b45aa6c4adca"
                                  ]
                              ]
                          },
                          {
                              "id": "28e7d3b028dcf2ba",
                              "type": "buffer-maker",
                              "z": "385f4b8d434f6005",
                              "name": "",
                              "specification": "spec",
                              "specificationType": "ui",
                              "items": [
                                  {
                                      "name": "item1",
                                      "type": "uint16be",
                                      "length": 2,
                                      "dataType": "msg",
                                      "data": "payload"
                                  }
                              ],
                              "swap1": "",
                              "swap2": "",
                              "swap3": "",
                              "swap1Type": "swap",
                              "swap2Type": "swap",
                              "swap3Type": "swap",
                              "msgProperty": "payload",
                              "msgPropertyType": "str",
                              "x": 770,
                              "y": 2680,
                              "wires": [
                                  [
                                      "423d2ba998b44648"
                                  ]
                              ]
                          },
                          {
                              "id": "d23882e23c0fe50c",
                              "type": "debug",
                              "z": "385f4b8d434f6005",
                              "name": "Rückkonvertierung",
                              "active": true,
                              "tosidebar": true,
                              "console": false,
                              "tostatus": false,
                              "complete": "payload",
                              "targetType": "msg",
                              "statusVal": "",
                              "statusType": "auto",
                              "x": 1150,
                              "y": 2680,
                              "wires": []
                          },
                          {
                              "id": "423d2ba998b44648",
                              "type": "buffer-parser",
                              "z": "385f4b8d434f6005",
                              "name": "",
                              "data": "payload",
                              "dataType": "msg",
                              "specification": "spec",
                              "specificationType": "ui",
                              "items": [
                                  {
                                      "type": "floatbe",
                                      "name": "item1",
                                      "offset": 0,
                                      "length": 1,
                                      "offsetbit": 0,
                                      "scale": "1",
                                      "mask": ""
                                  }
                              ],
                              "swap1": "",
                              "swap2": "",
                              "swap3": "",
                              "swap1Type": "swap",
                              "swap2Type": "swap",
                              "swap3Type": "swap",
                              "msgProperty": "payload",
                              "msgPropertyType": "str",
                              "resultType": "value",
                              "resultTypeType": "return",
                              "multipleResult": true,
                              "fanOutMultipleResult": false,
                              "setTopic": false,
                              "outputs": 1,
                              "x": 950,
                              "y": 2680,
                              "wires": [
                                  [
                                      "d23882e23c0fe50c"
                                  ]
                              ]
                          },
                          {
                              "id": "9c99b46399646127",
                              "type": "debug",
                              "z": "385f4b8d434f6005",
                              "name": "Float- Eingabe",
                              "active": true,
                              "tosidebar": true,
                              "console": false,
                              "tostatus": false,
                              "complete": "payload",
                              "targetType": "msg",
                              "statusVal": "",
                              "statusType": "auto",
                              "x": 400,
                              "y": 2660,
                              "wires": []
                          },
                          {
                              "id": "1c12b45aa6c4adca",
                              "type": "junction",
                              "z": "385f4b8d434f6005",
                              "x": 280,
                              "y": 2620,
                              "wires": [
                                  [
                                      "9bc9a74d1f455065",
                                      "9c99b46399646127"
                                  ]
                              ]
                          }
                        ]
                        
                        

                        Du rechnest also mit einer ChangeNode einfach die Watt in kW um und machst dann einen Buffer daraus, der dann in 2 unsigned Integer aufgelöst wird.

                        Also wenn Du aus der L2_Leistung -48,21 Watt rausbekommst, dann teile es durch 1000 und dann mach einen Buffer drauf und anschließend das Array aus den beiden unsigned Integer - die Du dann in die Modbus Node schickst.

                        6985657f-ad07-4dfd-b25d-b35541bd4d64-image.png

                        Die deaktivierten Nodes dienen nur der Kontrolle - es gibt einen kleinen Rundungsfehler.

                        Einfach diese 3 Nodes dazwischenklemmen, dann sollte es funktionieren. Hier zum Import:

                        [
                           {
                               "id": "48e7ed7b6861dcd8",
                               "type": "change",
                               "z": "0662713ffc076361",
                               "name": "Watt => Kilowatt",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "payload / 1000",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 480,
                               "y": 2180,
                               "wires": [
                                   [
                                       "cb471d291687f412",
                                       "ef90c94a09aa51df"
                                   ]
                               ]
                           },
                           {
                               "id": "ef90c94a09aa51df",
                               "type": "buffer-maker",
                               "z": "0662713ffc076361",
                               "name": "",
                               "specification": "spec",
                               "specificationType": "ui",
                               "items": [
                                   {
                                       "name": "item1",
                                       "type": "floatbe",
                                       "length": 1,
                                       "dataType": "msg",
                                       "data": "payload"
                                   }
                               ],
                               "swap1": "",
                               "swap2": "",
                               "swap3": "",
                               "swap1Type": "swap",
                               "swap2Type": "swap",
                               "swap3Type": "swap",
                               "msgProperty": "payload",
                               "msgPropertyType": "str",
                               "x": 670,
                               "y": 2180,
                               "wires": [
                                   [
                                       "6ed476ca922ac210",
                                       "64099d52a0a6f579"
                                   ]
                               ]
                           },
                           {
                               "id": "64099d52a0a6f579",
                               "type": "buffer-parser",
                               "z": "0662713ffc076361",
                               "name": "",
                               "data": "payload",
                               "dataType": "msg",
                               "specification": "spec",
                               "specificationType": "ui",
                               "items": [
                                   {
                                       "type": "uint16be",
                                       "name": "item1",
                                       "offset": 0,
                                       "length": 1,
                                       "offsetbit": 0,
                                       "scale": "1",
                                       "mask": ""
                                   },
                                   {
                                       "type": "uint16be",
                                       "name": "item2",
                                       "offset": 2,
                                       "length": 1,
                                       "offsetbit": 0,
                                       "scale": "1",
                                       "mask": ""
                                   }
                               ],
                               "swap1": "",
                               "swap2": "",
                               "swap3": "",
                               "swap1Type": "swap",
                               "swap2Type": "swap",
                               "swap3Type": "swap",
                               "msgProperty": "payload",
                               "msgPropertyType": "str",
                               "resultType": "value",
                               "resultTypeType": "return",
                               "multipleResult": false,
                               "fanOutMultipleResult": false,
                               "setTopic": true,
                               "outputs": 1,
                               "x": 870,
                               "y": 2180,
                               "wires": [
                                   [
                                       "e1f61afa44453204",
                                       "f228761e9c6c3f7c"
                                   ]
                               ]
                           }
                        ]
                        

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

                          @mickym vielen dank dir schon mal, vor allem für die Geduld 😄

                          So hast du das gemeint?

                          Bildschirm­foto 2023-08-13 um 22.09.50.png

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

                            @homewolf genau Wobei Du je den gleichen Wert in 2 Register schreibst - also brauchst Du ihn ja nur einmal berechnen.

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

                              @mickym

                              Jetzt kommt warum auch immer wieder diese Meldung.

                              3 Aug 22:12:31 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input.
                              
                              1 Reply Last reply Reply Quote 0
                              • HomeWolf
                                HomeWolf last edited by

                                @mickym

                                Jetzt kommt warum auch immer wieder diese Meldung.

                                3 Aug 22:12:31 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input.
                                
                                mickym 2 Replies Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @HomeWolf last edited by

                                  @homewolf

                                  984eb0aa-904d-4ccf-954d-fef71d9f83ea-image.png

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

                                    @homewolf Eventuell ist da zu schnell für das Schreiben. Schau mal ob der Fehler kommt wenn Du nur in EINE Modbus-Node schreibst. Wenn kein Fehler kommt, dann verzögere das Schreiben mit einer delay Node.

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

                                      @mickym habe gesehen, dass die Fehlermeldung von dem andern Ablauf kommt..

                                      das umwandeln auf kW hat leider nicht geklappt.. der Zähler gibt jetzt N/A an.
                                      Bildschirm­foto 2023-08-13 um 22.19.18.png

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

                                        @homewolf Nun wenn das mit Watt vorher geklappt hat - dann liegt es aber an den Werten die Konvertierung müsste aber stimmten. Sprich wenn Du die Change Node weglässt, schau mal ob Du das gleiche Ergebnis bekommst, dass Du vorher mit der function Node bekommen hast.

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

                                          @mickym Das sind die Fehlermeldungen, die kommen...
                                          Bildschirm­foto 2023-08-13 um 22.23.22.png

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

                                            @homewolf Ja aber diese Fehlermeldung kommt doch von einer function Node - nicht von dem Flow den wir gerade gemacht haben. Irgendwo gibts eine function Node mit dem Namen Sum

                                            Am Besten Du deaktivierst diese function Node erst mal.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            65
                                            3637
                                            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