Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. [HowTo] Huawei SUN2000 WR Modbus mit node-red (read + write)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

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

Geplant Angeheftet Gesperrt Verschoben Node-Red
574 Beiträge 110 Kommentatoren 223.0k Aufrufe 108 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B badsnoopy667

    Achtung: Verbindung mit Modbus Adapter klappt nicht, node-red klappt.

    Hier eine Anleitung um den SUN2000 Wechselrichter incl. Batterie und Power Meter per node-red auszulesen und Werte zu schreiben:

    1. Wechselrichter korrekt konfigurieren:
    Im Wechselrichter muss die Konfiguration per Modbus (TCP) aktiviert sein. Das kann der Installateur direkt erledigen. Alternativ lädt man sich die SUN2000 App auf's Handy und verbindet sich damit über das WLAN des Wechselrichters (also davorstehend im Keller) mit dem WR und stellt das ein. (Unter Kommunikationseinstellungen glaube ich, die Menüs sind ziemlich unübersichtlich mMn.)
    Zum Login in die App als Installateur braucht man ein Passwort: 00000a
    Eventuell braucht man zum Verbinden auf das WLAN des Wechselrichters auch ein Passwort: Changeme

    2. Node-Red installieren und Flow importieren:
    Man muss im ioBroker node-red installieren. Außerdem muss man in node-red noch drei zusätzliche NPM Module installieren (geht bei den Instanzeinstellungen):
    • node-red-contrib-calc
    • node-red-contrib-buffer-parser
    • node-red-contrib-modbus

    Hat man das erledigt, kann man diesen Flow importieren:

    Huawei_SUN2000_node_red_flow_read_write_2023-11.txt

    Achtung, weil das hier schon ein paar Mal zu Problemen geführt hat: Man muss die Client-ID in allen Modbus-Nodes korrekt eintragen. Bei mir steht da 2, weil mein Wechselrichter schonmal getauscht wurde. Das muss überall auf den richtigen Wert (meistens 1) geändert werden damit Daten kommen!
    Nachdem man den Flow importiert hat muss man ganz rechts im Menü unter "Globale-Konfigurations-Nodes" beim modbus-client noch die IP Adresse vom Wechselrichter und wieder die richtige Client-ID (typischerweise 1) eintragen. (Port ist 502)

    3. Hinweise:
    Dann sollte die Verbindung eigentlich schon funktionieren. Bei mir war dann noch das Problem, das node-red gemeckert hat, dass die Objekte in iobroker nicht existieren in die er schreiben will.
    Um das zu fixen habe ich im Flow alle Output-Nodes (die graublauen Boxen rechts) einmal doppeltgeklickt und dort bei "Auto-create --> Create states if not exist" ausgewählt. Dann kann man noch die Einheit und den Typ festlegen und dann werden die States automatisch beim ersten Lesen angelegt. Hierfür ist es erforderlich, dass in den node-red Instanzeinstellungen noch der Hacken bei "Erstellung von Fremd-Objekten zulassen" aktiviert wird.
    Zusätzlich habe ich noch den Wert "Readonly --> Object is writeable" gesetzt. K.a. ob das nötig ist, aber ich hatte den Eindruck, dass die Werte sonst nicht korrekt aktualisiert werden.

    Zum Nachlesen gibt es hier noch die Huawei SUN2000 Modbus Register Übersicht:
    Solar Inverter Modbus Interface Definitions V5.pdf (Stand 2023)
    Im Flow werden die wichtigsten Größen aber schon abgefragt.

    4. Modbus-Register schreiben:
    Man kann auch Register schreiben! Damit kann man z.B. die Batterie-Entladung auf 0W setzen wenn das eAuto lädt. Damit entlädt sich die Batterie dann nicht unnötig, wenn man das Auto mit Netzstrom lädt im Winter oder Nachts.
    Man kann auch TOU (Zeitgesteuertes Laden) aktivieren. Damit kann man wenn man Tibber oder Awattar nutzt zu den günstigen Stunden den Akku aufladen. Um die günstigsten Stunden auszulesen gibt es hier im Forum entsprechende Skripte.

    4.1 Zeitgesteuertes Laden korrekt konfigurieren und schreiben:
    • AC-Laden muss auf 1 stehen (Register 47087). Kann auch mMn permanent auf 1 bleiben.
    • Battery Working Mode (Register 47086) kann zwischen 2 (Maximaler Eigenverbrauch) und 5 (TOU, zeitgesteuert Laden) umgestellt werden.
    • Man definiert dann in der Huawei FusionSolar App unter Geräte - Dongle - Parametereinstellungen (die 4 Punkte oben rechts) einfach eine Zeit von 0:00 bis 23:59 jeden Tag "laden" (also den ganzen Tag). Dafür muss die Batterie auf TOU (5) gestellt sein.
    • Sobald man jetzt per Modbus das Register 47086 von 2 auf 5 umschaltet, fängt die Batterie aus dem Netz an zu laden.
    • Maximaler Ladestrom kann über Register 47075 eingestellt werden.
    • Stellt man den Working Mode wieder zurück auf 2, hört das Netzladen auf und die Batterie verhält sich wieder "normal".

    Die nötigen ioBroker Datenpunkte muss man noch anlegen. Also zB. Battery_Max_Charge_Power_SET oder Workingmode_Change.

    5. Weiteres
    5.1 Mehrere Wechselrichter abfragen

    Es gibt noch weitere Möglichkeiten den Flow aufzubauen. Man kann mehrere Adressbereiche auf einmal abfragen, das ist ggf. etwas effizienter. Den Flow dazu habe ich aber nicht getestet:

    Flow mit Multi-Abfrage

    Außerdem enthält der Flow ein Beispiel für die Abfrage mehrerer Wechselrichter in Kaskade. Im Prinzip muss man nur die korrekten IDs pro Wechselrichter eintragen und nicht zu viele Register abfragen, sonst kommen keine Daten mehr. Damit lassen sich auch 3 Wechselrichter (oder ggf. sogar mehr) in einem Flow abfragen.

    5.2 Aktuelle Firmware / Modbus Interface Definitions
    Hier noch ein Link zu den aktuellen Firmware Versionen:
    SUN2000 Firmware

    Vielen Dank an alle, die den Input geliefert haben!
    Ich hoffe es hilf, wenn ich es hier einmal zusammengefasst habe.

    S Offline
    S Offline
    seppele
    schrieb am zuletzt editiert von
    #546

    @badsnoopy667
    Danke für die Anleitung, ich hab das alles so umgesetzt, jetzt wollte ich fragen ob es noch einen passenden Grafana Flow mit Fluxquery dazu gibt? Hab bisher nur einen Flow auf Basis von InfluxQL gefunden.
    Wenn jamend einen hat den er mir zur verfügung stellen würde wäre ich sehr dankbar.

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      marcelinho
      schrieb am zuletzt editiert von
      #547

      Hallo zusammen,

      weiß jemand wieso ich folgenden Fehler bekomme seit heute?
      Node-RED: 23 Apr 18:02:22 - [warn] [modbus-getter:37113] Getter -> Inject while node is not ready for input.
      habe nichts geändert.

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        seppele
        schrieb am zuletzt editiert von
        #548

        Hallo Zusammen,
        ich wollte nochmal fragn ob jemand inzwischen einen Grafana Flow mit FluxQuery für dies Node Red erstellt hat. Wäre klasse, bin selbst nicht in der Lage und hab leider InfluxDB 2 installiert und mit FluxQuery laufen.

        L 1 Antwort Letzte Antwort
        0
        • S seppele

          Hallo Zusammen,
          ich wollte nochmal fragn ob jemand inzwischen einen Grafana Flow mit FluxQuery für dies Node Red erstellt hat. Wäre klasse, bin selbst nicht in der Lage und hab leider InfluxDB 2 installiert und mit FluxQuery laufen.

          L Offline
          L Offline
          leonundjulie
          schrieb am zuletzt editiert von
          #549

          Kurzes Update nach sechs Monaten. Ich habe die EnPal Box aus unserer. HUAWEI Konfirmation demontiert und bekomme alle Daten meines WR SUN2000 jetzt mittels MODBUS via dem Adapter https://www.iobroker.net/#en/adapters/adapterref/iobroker.sun2000/README.md … funktioniert super

          10x JA-Solar (380Wp) unter 15° gen Süden und 12x JA-Solar (385Wp) unter 10° gen Westen auf Carport, HUAWEI SUN2000 WR

          Daran HUAWEI LUNA2000, 10kWh

          Und via Kaskade 8x JA-Solar (385Wp) unter 45° gen Osten und 14x JA-Solar (385Wp) unter 23° gen Westen am 2. HUAWEI SUN2000 WR.

          SMARTFOX PRO als EMS, KEBA P30-X Wallbox

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            marcelinho
            schrieb am zuletzt editiert von
            #550

            weiß jemand welche Datenpunkte ich für "Netzbezug aktuell" benötige?
            errechnen via Blockly (falls nicht direkt ausgelesen werden kann) kein Problem, aber da die App zeitverzögert und nicht wie in Nodered alle paar Sekunden aktualisiert ist es schwierig welche Datenpunkte ich benötige.
            Ist es evtl. Load_power ?
            Screenshot 2024-07-05 094134.png

            Danke vorab.

            B 1 Antwort Letzte Antwort
            0
            • M marcelinho

              weiß jemand welche Datenpunkte ich für "Netzbezug aktuell" benötige?
              errechnen via Blockly (falls nicht direkt ausgelesen werden kann) kein Problem, aber da die App zeitverzögert und nicht wie in Nodered alle paar Sekunden aktualisiert ist es schwierig welche Datenpunkte ich benötige.
              Ist es evtl. Load_power ?
              Screenshot 2024-07-05 094134.png

              Danke vorab.

              B Offline
              B Offline
              bolliy
              Developer
              schrieb am zuletzt editiert von bolliy
              #551

              @marcelinho es müsste Grid Power sein (>0 : Netzbezug, <0 : Netzeinspeisung). Du findest die notwendigen Informationen in den Interface definitions https://github.com/bolliy/ioBroker.sun2000/blob/main/docs/definitions.md

              Stephan

              1 Antwort Letzte Antwort
              1
              • geo-ioanG Offline
                geo-ioanG Offline
                geo-ioan
                schrieb am zuletzt editiert von
                #552

                Hallo Zusammen,
                hat jemand schon geschafft die Wallbox zu steuern ?
                Danke.

                1 Antwort Letzte Antwort
                0
                • H Offline
                  H Offline
                  Hilfsbedürftiger
                  schrieb am zuletzt editiert von Hilfsbedürftiger
                  #553

                  Hallo, nachdem ich geschätzt 2000 Kommentare gelesen habe, konnte ich keine Lösung für mein Problem finden. Ich habe mir einen zweiten Wechselrichter zugelegt und kaskadiert. Als Master dient ein 4 KTL und als Slave ein 5 KTL. In den Einstellung hat der 4 KTL als Master bei bei RS485 die Komm-Adresse 1 und der 5 KTL hat die 2. In der FusionSolar App wird dies auch alles richtig angezeigt und zusammengerechnet. Im Node Red konnte ich vorher die Daten aus dem 4 KTL auch entsprechend auslesen. Jetzt habe ich natürlich den 5 KTL in Node Red hinzugfügt und die Units sind auch entsprechend mit 1 und 2 gesetzt. Server ist der 4 KTL mit der Unit 1. Wenn ich alles richtig verstanden habe, sollten jetzt alle Werte, auch die vom zweiten WR über den Master abgefragt werden. Jedoch wurden mir bei beiden Units unter beiden 32080 immer nur die Werte vom Master angezeigt. Ich habe auch mit den Abfrageintervallen sehr großzügig ausprobiert, jedoch ohne erfolg. Wenn ich jedoch bei dem 5 KTL einen zweiten Server mit der Unit 2 hinzufüge, und dann dort die Unit 2 vom WR auslese dann klappt es. Ist das so richtig oder sollte das nur mit einem Server klappen? Jetzt bekomme ich nämlich jede Minute ca. 10 Warnmeldungen, wo ich leider völlig überfordert bin.

                  Falls mir jemand helfen kann, würde ich mich sehr freuen. Danke

                  Bild 2.png Bild 1.jpgBild 3.png

                  Samson71S B 2 Antworten Letzte Antwort
                  0
                  • H Hilfsbedürftiger

                    Hallo, nachdem ich geschätzt 2000 Kommentare gelesen habe, konnte ich keine Lösung für mein Problem finden. Ich habe mir einen zweiten Wechselrichter zugelegt und kaskadiert. Als Master dient ein 4 KTL und als Slave ein 5 KTL. In den Einstellung hat der 4 KTL als Master bei bei RS485 die Komm-Adresse 1 und der 5 KTL hat die 2. In der FusionSolar App wird dies auch alles richtig angezeigt und zusammengerechnet. Im Node Red konnte ich vorher die Daten aus dem 4 KTL auch entsprechend auslesen. Jetzt habe ich natürlich den 5 KTL in Node Red hinzugfügt und die Units sind auch entsprechend mit 1 und 2 gesetzt. Server ist der 4 KTL mit der Unit 1. Wenn ich alles richtig verstanden habe, sollten jetzt alle Werte, auch die vom zweiten WR über den Master abgefragt werden. Jedoch wurden mir bei beiden Units unter beiden 32080 immer nur die Werte vom Master angezeigt. Ich habe auch mit den Abfrageintervallen sehr großzügig ausprobiert, jedoch ohne erfolg. Wenn ich jedoch bei dem 5 KTL einen zweiten Server mit der Unit 2 hinzufüge, und dann dort die Unit 2 vom WR auslese dann klappt es. Ist das so richtig oder sollte das nur mit einem Server klappen? Jetzt bekomme ich nämlich jede Minute ca. 10 Warnmeldungen, wo ich leider völlig überfordert bin.

                    Falls mir jemand helfen kann, würde ich mich sehr freuen. Danke

                    Bild 2.png Bild 1.jpgBild 3.png

                    Samson71S Offline
                    Samson71S Offline
                    Samson71
                    Global Moderator
                    schrieb am zuletzt editiert von
                    #554

                    @hilfsbedürftiger
                    Logs bitte als Text in Code-Tags </> einbetten und nicht als Screenshot. Diese Mäusekino Screenshots kann man auch nicht vernünftig lesen, wenn man nicht gerade vor einem fetten 4K Monitor sitzt, sondern nur mobil unterwegs ist.

                    1 Antwort Letzte Antwort
                    0
                    • H Offline
                      H Offline
                      Hilfsbedürftiger
                      schrieb am zuletzt editiert von Hilfsbedürftiger
                      #555
                      node-red.0
                      	2024-08-28 23:46:45.275	warn	Node-RED: 28 Aug 23:46:45 - [warn] [modbus-client:2er WR] Client -> fsm connected after state init Get More About It By Logging TCP@192.168.178.80:502 default Unit-Id: 2
                      node-red.0
                      	2024-08-28 23:46:43.271	warn	Node-RED: 28 Aug 23:46:43 - [warn] [modbus-client:2er WR] Client -> fsm init in 2000 ms TCP@192.168.178.80:502 default Unit-Id: 2
                      node-red.0
                      	2024-08-28 23:46:43.269	warn	Node-RED: 28 Aug 23:46:43 - [warn] [modbus-client:2er WR] Client -> fsm init state after reconnecting TCP@192.168.178.80:502 default Unit-Id: 2
                      node-red.0
                      	2024-08-28 23:46:41.266	warn	Node-RED: 28 Aug 23:46:41 - [warn] [modbus-client:2er WR] Client -> fsm broken state after failed Get More About It By Logging TCP@192.168.178.80:502 default Unit-Id: 228 Aug 23:46:41 - [warn] [modbus-client:2er WR] Client -> fsm reconnect state after broken Get More About It By Logging TCP@192.168.178.80:502 default Unit-Id: 2
                      node-red.0
                      	2024-08-28 23:46:41.265	warn	Node-RED: 28 Aug 23:46:41 - [warn] [modbus-client:2er WR] Client -> fsm failed state after sending Get More About It By Logging TCP@192.168.178.80:502 default Unit-Id: 2
                      node-red.0
                      	2024-08-28 23:46:15.678	warn	Node-RED: 28 Aug 23:46:15 - [warn] [modbus-client:2er WR] Client -> fsm connected after state init Get More About It By Logging TCP@192.168.178.80:502 default Unit-Id: 2
                      
                      node-red.0
                      	2024-08-28 23:46:13.668	warn	Node-RED: 28 Aug 23:46:13 - [warn] [modbus-client:2er WR] Client -> fsm init state after reconnecting TCP@192.168.178.80:502 default Unit-Id: 228 Aug 23:46:13 - [warn] [modbus-client:2er WR] Client -> fsm init in 2000 ms TCP@192.168.178.80:502 default Unit-Id: 2
                      node-red.0
                      	2024-08-28 23:46:11.667	warn	Node-RED: 28 Aug 23:46:11 - [warn] [modbus-client:2er WR] Client -> fsm failed state after sending Get More About It By Logging TCP@192.168.178.80:502 default Unit-Id: 228 Aug 23:46:11 - [warn] [modbus-client:2er WR] Client -> fsm broken state after failed Get More About It By Logging TCP@192.168.178.80:502 default Unit-Id: 228 Aug 23:46:11 - [warn] [modbus-client:2er WR] Client -> fsm reconnect state after broken Get More About It By Logging TCP@192.168.178.80:502 default Unit-Id: 2
                      node-red.0
                      	2024-08-28 23:46:00.729	warn	Node-RED: 28 Aug 23:46:00 - [warn] [modbus-client:2er WR] Client -> fsm connected after state init Get More About It By Logging TCP@192.168.178.80:502 default Unit-Id: 2
                      
                      1 Antwort Letzte Antwort
                      0
                      • H Hilfsbedürftiger

                        Hallo, nachdem ich geschätzt 2000 Kommentare gelesen habe, konnte ich keine Lösung für mein Problem finden. Ich habe mir einen zweiten Wechselrichter zugelegt und kaskadiert. Als Master dient ein 4 KTL und als Slave ein 5 KTL. In den Einstellung hat der 4 KTL als Master bei bei RS485 die Komm-Adresse 1 und der 5 KTL hat die 2. In der FusionSolar App wird dies auch alles richtig angezeigt und zusammengerechnet. Im Node Red konnte ich vorher die Daten aus dem 4 KTL auch entsprechend auslesen. Jetzt habe ich natürlich den 5 KTL in Node Red hinzugfügt und die Units sind auch entsprechend mit 1 und 2 gesetzt. Server ist der 4 KTL mit der Unit 1. Wenn ich alles richtig verstanden habe, sollten jetzt alle Werte, auch die vom zweiten WR über den Master abgefragt werden. Jedoch wurden mir bei beiden Units unter beiden 32080 immer nur die Werte vom Master angezeigt. Ich habe auch mit den Abfrageintervallen sehr großzügig ausprobiert, jedoch ohne erfolg. Wenn ich jedoch bei dem 5 KTL einen zweiten Server mit der Unit 2 hinzufüge, und dann dort die Unit 2 vom WR auslese dann klappt es. Ist das so richtig oder sollte das nur mit einem Server klappen? Jetzt bekomme ich nämlich jede Minute ca. 10 Warnmeldungen, wo ich leider völlig überfordert bin.

                        Falls mir jemand helfen kann, würde ich mich sehr freuen. Danke

                        Bild 2.png Bild 1.jpgBild 3.png

                        B Offline
                        B Offline
                        badsnoopy667
                        schrieb am zuletzt editiert von badsnoopy667
                        #556

                        @hilfsbedürftiger

                        Hast Du mal den "Flow mit Multi-Abfrage" aus meinem 1. Post probiert? Das mit dem 2. WR kann ich leider immer nicht selber testen, habe nur einen. Aber da müsste ein Beispiel drin sein.

                        Und wenn ich mich richtig erinnere, bedeutet die Warnmeldung erstmal nur, dass zu viele Daten abgefragt wurden und das System am Limit ist. Die Daten kommen aber alle, oder?

                        H 1 Antwort Letzte Antwort
                        0
                        • B badsnoopy667

                          @hilfsbedürftiger

                          Hast Du mal den "Flow mit Multi-Abfrage" aus meinem 1. Post probiert? Das mit dem 2. WR kann ich leider immer nicht selber testen, habe nur einen. Aber da müsste ein Beispiel drin sein.

                          Und wenn ich mich richtig erinnere, bedeutet die Warnmeldung erstmal nur, dass zu viele Daten abgefragt wurden und das System am Limit ist. Die Daten kommen aber alle, oder?

                          H Offline
                          H Offline
                          Hilfsbedürftiger
                          schrieb am zuletzt editiert von
                          #557

                          @badsnoopy667

                          Hallo, den Multiflow habe ich probiert, da habe ich das gleiche Problem, das beim zweiten WR die gleichen Werte wie beim ersten WR angezeigt werden. Die Warnmeldung von zu vielen Abfragen kann doch nicht sein, ich frage ja nur drei Werte ab pro WR ab. Diese werden auch richtig angezeigt.

                          1 Antwort Letzte Antwort
                          0
                          • JohGreJ Offline
                            JohGreJ Offline
                            JohGre
                            schrieb am zuletzt editiert von
                            #558

                            Hallo @badsnoopy667,
                            bin gerade dabei den Punkt 4.1 Zeitgesteuertes Laden .. zu implementieren, alle Punkte nach Anleitung durchgeführt, btw. Danke dafür den Flow der läuft nun seit 2 Jahren problemlos bei mir.
                            Das aktivieren von TOU in der APP funktioniert und die LUNA beginnt das Laden aus dem Netz.
                            Das schreiben auf das Register 47086 funktioniert bei mir leider nicht nicht. Wert wird nicht auf 5 geändert.
                            ff7d8539-e6a3-4693-b12b-55af763cf02e-image.png

                            Würde das gerne aus einem Script triggern da ich aWattar-Kunde bin und zum günstigsten Zeitpunkt die Batterlie laden möchten.

                            nuc i5: RaspberryMatic, ioBroker, pi-hole, SQL-Server, OMV-NAS, Influx-DB & Grafana, OpenHab, tasmoadmin

                            B 1 Antwort Letzte Antwort
                            0
                            • JohGreJ JohGre

                              Hallo @badsnoopy667,
                              bin gerade dabei den Punkt 4.1 Zeitgesteuertes Laden .. zu implementieren, alle Punkte nach Anleitung durchgeführt, btw. Danke dafür den Flow der läuft nun seit 2 Jahren problemlos bei mir.
                              Das aktivieren von TOU in der APP funktioniert und die LUNA beginnt das Laden aus dem Netz.
                              Das schreiben auf das Register 47086 funktioniert bei mir leider nicht nicht. Wert wird nicht auf 5 geändert.
                              ff7d8539-e6a3-4693-b12b-55af763cf02e-image.png

                              Würde das gerne aus einem Script triggern da ich aWattar-Kunde bin und zum günstigsten Zeitpunkt die Batterlie laden möchten.

                              B Offline
                              B Offline
                              badsnoopy667
                              schrieb am zuletzt editiert von badsnoopy667
                              #559

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

                              steuertes Laden .. zu implementieren, alle Punkte nach Anleitung durchgeführt, btw. Danke dafür den Flow der läuft nun seit 2 Jahren problemlos bei mir.

                              Was steht denn in Deiner function-Node? Bei mir steht da:

                              var sa = 50; // Startadresse des Registers
                              var address = 1; // Adressen des Registers
                              var value = msg.payload; // Wert, den du schreiben möchtest (16-Bit)
                              
                              var buf = Buffer.alloc(2);
                              buf.writeUInt16BE(value); // Schreibe den 16-Bit Wert in den Buffer
                              
                              msg.payload = {
                                  'fc': 6, // Funktion 6 für das Schreiben eines einzelnen Registers
                                  'unitid': 2, // Modbus-Geräte-ID
                                  'value': buf.readUInt16BE(0) // Lese den Wert aus dem Buffer
                              };
                              
                              return msg;
                              
                              

                              Die Orange-Node ist vom Typ "FC6: Preset Single Register"


                              Was mir sonst noch einfällt wenn alles korrekt ist: Das Schreiben funktioniert bei mir nur, wenn ich während des Schreibens für ein paar Sekunden das Lesen beende. Anscheinend reicht die Bandbreite für beides nicht aus. Weiß gerade nicht, ob diese "setze flow.pause" funktion schon implementiert ist bei dir.

                              PS: Korrekte Unit-ID eingetragen?

                              JohGreJ 1 Antwort Letzte Antwort
                              0
                              • B badsnoopy667

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

                                steuertes Laden .. zu implementieren, alle Punkte nach Anleitung durchgeführt, btw. Danke dafür den Flow der läuft nun seit 2 Jahren problemlos bei mir.

                                Was steht denn in Deiner function-Node? Bei mir steht da:

                                var sa = 50; // Startadresse des Registers
                                var address = 1; // Adressen des Registers
                                var value = msg.payload; // Wert, den du schreiben möchtest (16-Bit)
                                
                                var buf = Buffer.alloc(2);
                                buf.writeUInt16BE(value); // Schreibe den 16-Bit Wert in den Buffer
                                
                                msg.payload = {
                                    'fc': 6, // Funktion 6 für das Schreiben eines einzelnen Registers
                                    'unitid': 2, // Modbus-Geräte-ID
                                    'value': buf.readUInt16BE(0) // Lese den Wert aus dem Buffer
                                };
                                
                                return msg;
                                
                                

                                Die Orange-Node ist vom Typ "FC6: Preset Single Register"


                                Was mir sonst noch einfällt wenn alles korrekt ist: Das Schreiben funktioniert bei mir nur, wenn ich während des Schreibens für ein paar Sekunden das Lesen beende. Anscheinend reicht die Bandbreite für beides nicht aus. Weiß gerade nicht, ob diese "setze flow.pause" funktion schon implementiert ist bei dir.

                                PS: Korrekte Unit-ID eingetragen?

                                JohGreJ Offline
                                JohGreJ Offline
                                JohGre
                                schrieb am zuletzt editiert von
                                #560

                                @badsnoopy667
                                Hi, danke für die schnelle Antwort.
                                function-Node Code sieht exact gleich aus, wobei mir jetzt einfällt ich habe ja Unit-ID 1. dh. ich muss die da jetzt im function-Node auch ändern?

                                nuc i5: RaspberryMatic, ioBroker, pi-hole, SQL-Server, OMV-NAS, Influx-DB & Grafana, OpenHab, tasmoadmin

                                B 1 Antwort Letzte Antwort
                                0
                                • JohGreJ JohGre

                                  @badsnoopy667
                                  Hi, danke für die schnelle Antwort.
                                  function-Node Code sieht exact gleich aus, wobei mir jetzt einfällt ich habe ja Unit-ID 1. dh. ich muss die da jetzt im function-Node auch ändern?

                                  B Offline
                                  B Offline
                                  badsnoopy667
                                  schrieb am zuletzt editiert von
                                  #561

                                  @johgre
                                  Ich würde erwarten: Ja

                                  JohGreJ 1 Antwort Letzte Antwort
                                  0
                                  • B badsnoopy667

                                    @johgre
                                    Ich würde erwarten: Ja

                                    JohGreJ Offline
                                    JohGreJ Offline
                                    JohGre
                                    schrieb am zuletzt editiert von
                                    #562

                                    @badsnoopy667 Das wars, danke

                                    nuc i5: RaspberryMatic, ioBroker, pi-hole, SQL-Server, OMV-NAS, Influx-DB & Grafana, OpenHab, tasmoadmin

                                    1 Antwort Letzte Antwort
                                    0
                                    • Chris MC Offline
                                      Chris MC Offline
                                      Chris M
                                      schrieb am zuletzt editiert von Chris M
                                      #563

                                      Ich hätte auch nochmal eine Frage zum Schreiben..
                                      Ich hab ebenfalls einen Node-Red Flow bei dem ich alle Sachen meiner Kaskade auslese. Ich nutze dazu aber als Verbindung die Wechselrichter direkt und nicht den SDongle auf Grund der Geschwindigkeit.
                                      Nun wollte ich AC-Laden (Register 47087) bei der Batterie bei Bedarf schreiben. Mit dem Beispiel aus dem Initial Post funktioniert das nur wenn ich als "Server" den SDongle auswähle nicht aber wenn ich auch hier den Wechselrichter als Modbus Server angebe. Muss in der Node "function" irgendwas am Code geändert werden? Unterschied beim Lesen ist ja nur, dass ich da z.b. keine Unit-ID brauche,

                                      1 Antwort Letzte Antwort
                                      0
                                      • M Offline
                                        M Offline
                                        marcelinho
                                        schrieb am zuletzt editiert von
                                        #564

                                        Hallo zusammen, habe im Fusion Portal folgende Meldung bekommen...
                                        Ist das evtl. ausschlaggebend zu den Nodered Flows ?

                                        Wichtiges Update zur IP-Verbindung von FusionSolar
                                        Sehr geehrter Benutzer/Sehr geehrte Benutzerin, bitte beachten Sie, dass die von Ihrem Unternehmen verwalteten Geräte über einen bestimmten Domainnamen mit FusionSolar verbunden sind. Der Zugriff auf das System über den Domainnamen bleibt unverändert, wodurch sichergestellt wird, dass Ihre Geräte eine kontinuierliche Verbindung zu FusionSolar aufrechterhalten. Es ist jedoch möglich, dass einige Geräte über eine IP-Adresse mit FusionSolar verbunden sind. Aufgrund von Systemaktualisierungen wird die IP-Adresse von FusionSolar bis Ende 2024 geändert. Wenn Ihre Geräte derzeit über eine IP-Adresse verbunden sind, werden sie offline geschaltet, sobald die IP-Adresse geändert wird. Daher empfehlen wir Ihnen zu überprüfen, ob Ihre Geräte über eine IP-Adresse mit FusionSolar verbunden sind. Wenn sie über eine IP-Adresse verbunden sind, aktualisieren Sie bitte die Konfiguration, um den folgenden Domainnamen zu verwenden: region04eu5.fusionsolar.huawei.com Weitere Informationen zu dieser Änderung finden Sie unter: https://support.huawei.com/enterprise/en/doc/EDOC1100414730 Bei Fragen wenden Sie sich bitte an: eu_inverter_support@huawei.com. Vielen Dank für Ihre Unterstützung und Ihr Verständnis.

                                        1 Antwort Letzte Antwort
                                        0
                                        • B badsnoopy667

                                          Achtung: Verbindung mit Modbus Adapter klappt nicht, node-red klappt.

                                          Hier eine Anleitung um den SUN2000 Wechselrichter incl. Batterie und Power Meter per node-red auszulesen und Werte zu schreiben:

                                          1. Wechselrichter korrekt konfigurieren:
                                          Im Wechselrichter muss die Konfiguration per Modbus (TCP) aktiviert sein. Das kann der Installateur direkt erledigen. Alternativ lädt man sich die SUN2000 App auf's Handy und verbindet sich damit über das WLAN des Wechselrichters (also davorstehend im Keller) mit dem WR und stellt das ein. (Unter Kommunikationseinstellungen glaube ich, die Menüs sind ziemlich unübersichtlich mMn.)
                                          Zum Login in die App als Installateur braucht man ein Passwort: 00000a
                                          Eventuell braucht man zum Verbinden auf das WLAN des Wechselrichters auch ein Passwort: Changeme

                                          2. Node-Red installieren und Flow importieren:
                                          Man muss im ioBroker node-red installieren. Außerdem muss man in node-red noch drei zusätzliche NPM Module installieren (geht bei den Instanzeinstellungen):
                                          • node-red-contrib-calc
                                          • node-red-contrib-buffer-parser
                                          • node-red-contrib-modbus

                                          Hat man das erledigt, kann man diesen Flow importieren:

                                          Huawei_SUN2000_node_red_flow_read_write_2023-11.txt

                                          Achtung, weil das hier schon ein paar Mal zu Problemen geführt hat: Man muss die Client-ID in allen Modbus-Nodes korrekt eintragen. Bei mir steht da 2, weil mein Wechselrichter schonmal getauscht wurde. Das muss überall auf den richtigen Wert (meistens 1) geändert werden damit Daten kommen!
                                          Nachdem man den Flow importiert hat muss man ganz rechts im Menü unter "Globale-Konfigurations-Nodes" beim modbus-client noch die IP Adresse vom Wechselrichter und wieder die richtige Client-ID (typischerweise 1) eintragen. (Port ist 502)

                                          3. Hinweise:
                                          Dann sollte die Verbindung eigentlich schon funktionieren. Bei mir war dann noch das Problem, das node-red gemeckert hat, dass die Objekte in iobroker nicht existieren in die er schreiben will.
                                          Um das zu fixen habe ich im Flow alle Output-Nodes (die graublauen Boxen rechts) einmal doppeltgeklickt und dort bei "Auto-create --> Create states if not exist" ausgewählt. Dann kann man noch die Einheit und den Typ festlegen und dann werden die States automatisch beim ersten Lesen angelegt. Hierfür ist es erforderlich, dass in den node-red Instanzeinstellungen noch der Hacken bei "Erstellung von Fremd-Objekten zulassen" aktiviert wird.
                                          Zusätzlich habe ich noch den Wert "Readonly --> Object is writeable" gesetzt. K.a. ob das nötig ist, aber ich hatte den Eindruck, dass die Werte sonst nicht korrekt aktualisiert werden.

                                          Zum Nachlesen gibt es hier noch die Huawei SUN2000 Modbus Register Übersicht:
                                          Solar Inverter Modbus Interface Definitions V5.pdf (Stand 2023)
                                          Im Flow werden die wichtigsten Größen aber schon abgefragt.

                                          4. Modbus-Register schreiben:
                                          Man kann auch Register schreiben! Damit kann man z.B. die Batterie-Entladung auf 0W setzen wenn das eAuto lädt. Damit entlädt sich die Batterie dann nicht unnötig, wenn man das Auto mit Netzstrom lädt im Winter oder Nachts.
                                          Man kann auch TOU (Zeitgesteuertes Laden) aktivieren. Damit kann man wenn man Tibber oder Awattar nutzt zu den günstigen Stunden den Akku aufladen. Um die günstigsten Stunden auszulesen gibt es hier im Forum entsprechende Skripte.

                                          4.1 Zeitgesteuertes Laden korrekt konfigurieren und schreiben:
                                          • AC-Laden muss auf 1 stehen (Register 47087). Kann auch mMn permanent auf 1 bleiben.
                                          • Battery Working Mode (Register 47086) kann zwischen 2 (Maximaler Eigenverbrauch) und 5 (TOU, zeitgesteuert Laden) umgestellt werden.
                                          • Man definiert dann in der Huawei FusionSolar App unter Geräte - Dongle - Parametereinstellungen (die 4 Punkte oben rechts) einfach eine Zeit von 0:00 bis 23:59 jeden Tag "laden" (also den ganzen Tag). Dafür muss die Batterie auf TOU (5) gestellt sein.
                                          • Sobald man jetzt per Modbus das Register 47086 von 2 auf 5 umschaltet, fängt die Batterie aus dem Netz an zu laden.
                                          • Maximaler Ladestrom kann über Register 47075 eingestellt werden.
                                          • Stellt man den Working Mode wieder zurück auf 2, hört das Netzladen auf und die Batterie verhält sich wieder "normal".

                                          Die nötigen ioBroker Datenpunkte muss man noch anlegen. Also zB. Battery_Max_Charge_Power_SET oder Workingmode_Change.

                                          5. Weiteres
                                          5.1 Mehrere Wechselrichter abfragen

                                          Es gibt noch weitere Möglichkeiten den Flow aufzubauen. Man kann mehrere Adressbereiche auf einmal abfragen, das ist ggf. etwas effizienter. Den Flow dazu habe ich aber nicht getestet:

                                          Flow mit Multi-Abfrage

                                          Außerdem enthält der Flow ein Beispiel für die Abfrage mehrerer Wechselrichter in Kaskade. Im Prinzip muss man nur die korrekten IDs pro Wechselrichter eintragen und nicht zu viele Register abfragen, sonst kommen keine Daten mehr. Damit lassen sich auch 3 Wechselrichter (oder ggf. sogar mehr) in einem Flow abfragen.

                                          5.2 Aktuelle Firmware / Modbus Interface Definitions
                                          Hier noch ein Link zu den aktuellen Firmware Versionen:
                                          SUN2000 Firmware

                                          Vielen Dank an alle, die den Input geliefert haben!
                                          Ich hoffe es hilf, wenn ich es hier einmal zusammengefasst habe.

                                          geo-ioanG Offline
                                          geo-ioanG Offline
                                          geo-ioan
                                          schrieb am zuletzt editiert von
                                          #565

                                          Bin ich der einzige der Fehler hat ?
                                          Seit mehrere Wochen habe ich Probleme mit haufenweise Fehler in den Logs:

                                          Copy to Clipboard
                                          node-red.0 2024-11-17 21:13:59.751 warn Node-RED: 17 Nov 21:13:59 - [warn] [modbus-client:WLAN-FE] Client -> fsm broken state after failed Get More About It By Logging TCP@192.168.0.73:502 default Unit-Id: 1
                                          node-red.0 2024-11-17 21:13:59.750 warn Node-RED: 17 Nov 21:13:59 - [warn] [modbus-client:WLAN-FE] Client -> fsm failed state after sending Get More About It By Logging TCP@192.168.0.73:502 default Unit-Id: 1
                                          node-red.0 2024-11-17 21:13:28.040 warn Node-RED: 17 Nov 21:13:28 - [warn] [modbus-client:WLAN-FE] Client -> fsm broken state after failed Get More About It By Logging TCP@192.168.0.73:502 default Unit-Id: 1
                                          node-red.0 2024-11-17 21:13:28.039 warn Node-RED: 17 Nov 21:13:28 - [warn] [modbus-client:WLAN-FE] Client -> fsm failed state after sending Get More About It By Logging TCP@192.168.0.73:502 default Unit-Id: 1
                                          node-red.0 2024-11-17 21:13:11.526 warn Node-RED: 17 Nov 21:13:11 - [warn] [modbus-client:WLAN-FE] Client -> fsm broken state after failed Get More About It By Logging TCP@192.168.0.73:502 default Unit-Id: 1
                                          node-red.0 2024-11-17 21:13:11.525 warn Node-RED: 17 Nov 21:13:11 - [warn] [modbus-client:WLAN-FE] Client -> fsm failed state after sending Get More About It By Logging TCP@192.168.0.73:502 default Unit-Id: 1
                                          ich kriege zwar die Daten gelesen aber kann nichts senden ... oder sehr selten.
                                          Auch in einer Linux Umgebung das gleiche Problem ...

                                          PlatformBetriebssystem:win32
                                          Architektur:x64
                                          CPUs:4
                                          Geschwindigkeit:1498 MHz
                                          Modell:Intel(R) Pentium(R) Silver J5005 CPU @ 1.50GHz
                                          RAM:7.4 GB
                                          System-Betriebszeit:02:50:09
                                          Node.js:v20.18.0
                                          time:1731875819824
                                          timeOffset:-60
                                          NPM:10.8.2
                                          Adapter-Anzahl:546
                                          Datenträgergröße:445.8 GB
                                          Freier Festplattenspeicher:276.9 GB
                                          Aktive Instanzen:19
                                          Pfad:C:\iobroker\SmartHome\ioBroker
                                          Betriebszeit:02:49:42
                                          aktiv:true
                                          _nodeCurrent:20.18.0
                                          _nodeNewest:20.18.0
                                          _nodeNewestNext:20.18.0
                                          _npmCurrent:10.8.2
                                          _npmNewest:10.8.2
                                          _npmNewestNext:10.8.2

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          308

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe