Skip to content
  • Home
  • 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

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Huawei Sun2000 & ioBroker via JS script funktioniert

NEWS

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

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

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

Huawei Sun2000 & ioBroker via JS script funktioniert

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
481 Beiträge 62 Kommentatoren 121.3k Aufrufe 63 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.
  • bahnuhrB bahnuhr

    @chris_b
    @baerengraben

    So, habe nun folgendes eingestellt:
    Bekomme nun sehr viele DP gefüllt.

    var currentinverter = 2;
    Const ModBusIDs = [16,1];
    const PowerMeterID = 0;
    const BatteryUnits = [[3, 0], [0, 0]];
    

    Bei diesen DP:

    // These register spaces need to be read
    const RegToRead = 
    [ [32000, 116],   // inverter status -                            read fast
      [37000, 68],    // battery information -                        read fast
      [37100, 114],   // meter info -                                 read fast
      [37700, 100],   // battery information -                        read fast
      [38200, 100],   // additional battery information -             read fast
      [30000, 81],    // model info, SN, max Power (static info) -    read slow
      [37800, 100],   // additional battery information -             read slow
      [38300, 100],   // additional battery information -             read slow
      [38400, 100],   // additional battery information -             read slow
      [47081, 8]      // additional battery information -             read slow
    //[35300, 40]     // inverter power adjustments -                 do not read
    ]; 
    

    kommen Fehler im log:

    javascript.0
    2023-09-08 16:20:57.915	warn	script.js.Scripte.Geraete.Huawei_geändert: Error received reading address 37700 from id: 1 with error: undefined
    javascript.0
    2023-09-08 16:20:52.915	warn	script.js.Scripte.Geraete.Huawei_geändert: Error received reading address 37100 from id: 1 with error: undefined
    javascript.0
    2023-09-08 16:20:47.914	warn	script.js.Scripte.Geraete.Huawei_geändert: Error received reading address 37000 from id: 1 with error: undefined
    javascript.0
    2023-09-08 16:20:42.915	warn	script.js.Scripte.Geraete.Huawei_geändert: Error received reading address 32000 from id: 1 with error: undefined
    javascript.0
    2023-09-08 16:20:37.915	warn	script.js.Scripte.Geraete.Huawei_geändert: Error received reading address 47081 from id: 16 with error: undefined
    javascript.0
    2023-09-08 16:20:32.914	warn	script.js.Scripte.Geraete.Huawei_geändert: Error received reading address 38400 from id: 16 with error: undefined
    javascript.0
    2023-09-08 16:20:27.915	warn	script.js.Scripte.Geraete.Huawei_geändert: Error received reading address 38300 from id: 16 with error: undefined
    javascript.0
    2023-09-08 16:20:27.883	warn	script.js.Scripte.Geraete.Huawei_Original_V4: Error received reading address 37700 from id: 16 with error: Slave device busy (retry request again later)
    

    Soll/kann ich die einfach auskommentieren.

    mfg

    P Offline
    P Offline
    palantin
    schrieb am zuletzt editiert von
    #393

    @bahnuhr hast du Daten unter "Meter"

    668cd20d-5480-4359-9ae4-0e2d98881737-image.png

    bahnuhrB 1 Antwort Letzte Antwort
    0
    • P palantin

      @bahnuhr hast du Daten unter "Meter"

      668cd20d-5480-4359-9ae4-0e2d98881737-image.png

      bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #394

      @palantin sagte in Huawei Sun2000 & ioBroker via JS script funktioniert:

      hast du Daten unter "Meter"

      ja, hat aber gedauert.


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      P 1 Antwort Letzte Antwort
      0
      • bahnuhrB bahnuhr

        @palantin sagte in Huawei Sun2000 & ioBroker via JS script funktioniert:

        hast du Daten unter "Meter"

        ja, hat aber gedauert.

        P Offline
        P Offline
        palantin
        schrieb am zuletzt editiert von
        #395

        @bahnuhr
        welche Kommunikationsid steht bei dir in der SolarApp von Huawei vom SmartMeter?

        bahnuhrB 1 Antwort Letzte Antwort
        0
        • P palantin

          @bahnuhr
          welche Kommunikationsid steht bei dir in der SolarApp von Huawei vom SmartMeter?

          bahnuhrB Online
          bahnuhrB Online
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #396

          @palantin sagte in Huawei Sun2000 & ioBroker via JS script funktioniert:

          @bahnuhr
          welche Kommunikationsid steht bei dir in der SolarApp von Huawei vom SmartMeter?

          keine Ahnung was du meinst bzw. wo ich sowas finde


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          1 Antwort Letzte Antwort
          0
          • J jokerjo1000

            Hallo zusammen,
            ich hoffe ich darf das hier einmal schreiben?
            Ich habe laienhafte Kenntnisse von der ganzen Materie, jedoch nicht ausreichend um hier mitzukommen.
            Habe auch eine Huawei PV Anlage mit Wechselrichter Speicher und Power Meter. Auch ein Raspi mit Iobroker ist am laufen. Daten hole ich mir u.a. von Influx und evcc. Gerne würde ich die Modbus Daten in den Iobroker bekommen. Hier hört aber mein Wissenstand auf. Ihr schreibt hier viel was für Kenner etwas ist aber leider nicht für "Anfänger". Es wäre echt klasse wenn jemand vielleicht einmal Lust hat uns Laien etwas mitzunehmen. Habe versucht das Skript von Chris im Iobroker zu installieren, jedoch ohne Erfolg. Es haut lediglich nur Fehlermeldungen raus. Das liegt sicherlich an mir und ich würde mich freuen das auch einmal hin zu bekommen. Es wäre also schön wenn jemand uns Newbies etwas itnehmen könnte.

            DANKE !!!

            H Offline
            H Offline
            hussi
            schrieb am zuletzt editiert von
            #397

            @jokerjo1000 Ich habe auch von Null angefangen. Evtl. kann ich dir Helfen.

            Der erste Schritt ist, dass du unter Instanzen in den Einstellungen von Javascript das NPM Modul "modbus-serial" hinzufügst. Dazu vorher:

            https://www.npmjs.com/package/modbus-serial

            Anschließend gehst du zu den Scripten und legst dir ein neues Javascript mit dem Inhalt von Chris´ github:

            https://github.com/ChrisBCH/SunLuna2000_iobroker

            Dann müssen in dem Script die Daten deiner PV Anlage eingegeben werden. IP, etc.

            Nun solltest du die Daten in den Objekten unter javascript > 0 > Solarpower sehen.

            1 Antwort Letzte Antwort
            0
            • B badsnoopy667

              @pettyboo
              Ich hab es jetzt hinbekommen Register zu schreiben! Ich kann jetzt die maximale Entladeleistung der Batterie auf 0 setzen wenn das eAuto lädt.
              Ich hab es mit node-red gemacht. Hier der Flow für das eine Register:

              flows.json

              Den Wert den man einstellen will, z.B. 400 Watt schreibt man in den SET Datenpunkt (vorher anlegen!). Das Hauptproblem ist, dass der Wert in zwei Register geschrieben werden muss. Also muss er aufgeteilt werden. Das macht der Funktions-Node im Flow. Einfach mal ausprobieren, ich glaub man kann nicht viel kaputt machen, falsche Werte nimmt der WR nicht an. (Ohne Garantie!)
              Hier nochmal die Modbus Interface Definitions V3, ohne die geht's nicht:
              https://forum.iobroker.net/assets/uploads/files/1624831109365-solar-inverter-modbus-interface-definitions-v3.0.pdf

              Viel Erfolg!

              0 Offline
              0 Offline
              0815_Peter
              schrieb am zuletzt editiert von
              #398

              @badsnoopy667

              Hallo in die Runde,

              vielleicht hab ich was überlesen bei den 395 Antworten, wenn ja bitte entschuldigt.

              Das schreiben der U32 Zahl (Maximum Charge and Discharge Power) funktioniert mit den Flow vom badsnoopy667 hab vielen dank.

              Wenn ich die % Werte der SOC Charge Cutoff und Discharge Cutoff einstellen will muss ich eine U16 Zahl schicken zum WR.
              Ich werde aus der Beschreibung für die Funktion im Flow nicht so richtig schlau.

              https://stevesnoderedguide.com/modbus-writing-data

              Das mit den GAIN habe ich schon beachtet --> eine 100 sind 10% --> trotzdem will der WR meine Werte nicht :-( also sollte es auch der Funktion liegen die den String aufarbeitet.
              Kann mir bitte jemand helfen wie die Funktion im Flow aussehen muss, damit der WR die % Werte annimmt die geschickt werden.

              Screenshot 2023-09-12 155420.png

              B 1 Antwort Letzte Antwort
              0
              • 0 0815_Peter

                @badsnoopy667

                Hallo in die Runde,

                vielleicht hab ich was überlesen bei den 395 Antworten, wenn ja bitte entschuldigt.

                Das schreiben der U32 Zahl (Maximum Charge and Discharge Power) funktioniert mit den Flow vom badsnoopy667 hab vielen dank.

                Wenn ich die % Werte der SOC Charge Cutoff und Discharge Cutoff einstellen will muss ich eine U16 Zahl schicken zum WR.
                Ich werde aus der Beschreibung für die Funktion im Flow nicht so richtig schlau.

                https://stevesnoderedguide.com/modbus-writing-data

                Das mit den GAIN habe ich schon beachtet --> eine 100 sind 10% --> trotzdem will der WR meine Werte nicht :-( also sollte es auch der Funktion liegen die den String aufarbeitet.
                Kann mir bitte jemand helfen wie die Funktion im Flow aussehen muss, damit der WR die % Werte annimmt die geschickt werden.

                Screenshot 2023-09-12 155420.png

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

                @0815_peter
                Ich glaube Du hast in den falschen Thread gepostet.
                Aber versuch's mal hiermit:

                var fc = 16;
                var sa = 50;
                var addresses = 2;
                var buf = Buffer.alloc(2); // create a buffer with 2 bytes for UINT16
                buf.writeUInt16BE(msg.payload); // write UINT16 value to the buffer
                var value = buf.readUInt16BE(); // read the UINT16 value from the buffer
                msg.slave_ip = "192.168.1.76";
                msg.payload = value;
                return msg;
                
                1 Antwort Letzte Antwort
                0
                • 0 Offline
                  0 Offline
                  0815_Peter
                  schrieb am zuletzt editiert von
                  #400

                  @badsnoopy667

                  Danke für deine Antwort
                  okay ich hab hier geantwortet, da du am Anfang von diesen Thread gezeigt hast wie du auf die Register schreibst.

                  Leider klappt deine Funktion nicht...der WR nimmt die Werte nicht :-(

                  ich hab meinen Flow mal hier angehangen vielleicht sieht du ja gleich den Fehler.

                  flows.json

                  1 Antwort Letzte Antwort
                  0
                  • bahnuhrB Online
                    bahnuhrB Online
                    bahnuhr
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #401

                    bekomme immer mal wieder eine solche Meldung im log:

                    Error received reading address 37000 from id: 16 with error: Slave device busy (retry request again later)
                    

                    Kann man da irgendwo was einstellen ?


                    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                    Danke.
                    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                    ScreenToGif :https://www.screentogif.com/downloads.html

                    R 1 Antwort Letzte Antwort
                    0
                    • bahnuhrB bahnuhr

                      bekomme immer mal wieder eine solche Meldung im log:

                      Error received reading address 37000 from id: 16 with error: Slave device busy (retry request again later)
                      

                      Kann man da irgendwo was einstellen ?

                      R Offline
                      R Offline
                      R4
                      schrieb am zuletzt editiert von
                      #402

                      @bahnuhr
                      Die Zahl am Ende der Funktion setInterval() - also die Intervalldauer - erhöhen hilft die Anzahl dieser Meldungen zu verringern.

                      (Die Fehlermeldung kommt bei mir mit 4000ms auch immer wieder, macht aber nix, da wird dann halt mal ein Registerbereich nicht aktualisiert.)

                      bahnuhrB 1 Antwort Letzte Antwort
                      0
                      • R R4

                        @bahnuhr
                        Die Zahl am Ende der Funktion setInterval() - also die Intervalldauer - erhöhen hilft die Anzahl dieser Meldungen zu verringern.

                        (Die Fehlermeldung kommt bei mir mit 4000ms auch immer wieder, macht aber nix, da wird dann halt mal ein Registerbereich nicht aktualisiert.)

                        bahnuhrB Online
                        bahnuhrB Online
                        bahnuhr
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #403

                        @r4
                        Danke für die Info.
                        Stand bei mir schon auf 5000.
                        Habs jetzt mal auf 10000 gesetzt.
                        Mal schauen.


                        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                        Danke.
                        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                        ScreenToGif :https://www.screentogif.com/downloads.html

                        R 1 Antwort Letzte Antwort
                        0
                        • bahnuhrB bahnuhr

                          @r4
                          Danke für die Info.
                          Stand bei mir schon auf 5000.
                          Habs jetzt mal auf 10000 gesetzt.
                          Mal schauen.

                          R Offline
                          R Offline
                          R4
                          schrieb am zuletzt editiert von R4
                          #404

                          @bahnuhr
                          Außer einem "schöneren" Log hast du damit aber nichts gewonnen:
                          Die Daten (alle) werden dann nur noch alle 10*RegFast Sekunden, also 50s bei Standardwerten, statt alle 25s aktualisiert.
                          Die Fehlermeldung wird wohl dennoch hin und wieder auftauchen, und so musst du eben auf diesen Teil der Daten 100s warten, statt 50s bei der ursprünglichen Einstellung.
                          Huawei ist hier ein bisschen (arg) langsam, damit muss man offenbar leben *). Den Fehler kann man aber ignorieren, du hast dann lediglich kurzzeitig ein wenig veraltete Daten.

                          *) Mit Aufwand zu umgehen

                          1 Antwort Letzte Antwort
                          0
                          • P Offline
                            P Offline
                            palantin
                            schrieb am zuletzt editiert von
                            #405

                            @palantin said in Huawei Sun2000 & ioBroker via JS script funktioniert:

                            PowerMeter id auf 0

                            bin ich der Einzige, bei dem das Powermeter nichts liefert? Was habt ihr bei PowerMeterID eintetragen, wenn es bei 0 nicht funktioniert.

                            J 1 Antwort Letzte Antwort
                            0
                            • P palantin

                              @palantin said in Huawei Sun2000 & ioBroker via JS script funktioniert:

                              PowerMeter id auf 0

                              bin ich der Einzige, bei dem das Powermeter nichts liefert? Was habt ihr bei PowerMeterID eintetragen, wenn es bei 0 nicht funktioniert.

                              J Offline
                              J Offline
                              juggi1962
                              schrieb am zuletzt editiert von
                              #406

                              @palantin Ich habe 0 beim PowerMeter und ich bekomme Daten.

                              P A 2 Antworten Letzte Antwort
                              0
                              • J juggi1962

                                @palantin Ich habe 0 beim PowerMeter und ich bekomme Daten.

                                P Offline
                                P Offline
                                palantin
                                schrieb am zuletzt editiert von
                                #407

                                @juggi1962 bei mir ist leider noch immer nichts. Noch habe ich keine Lösung gefunden - die anderen Datenpunkte auf WR 1 und WR 2 in der Kaskade funktionieren problemlos.

                                R 1 Antwort Letzte Antwort
                                0
                                • P palantin

                                  @juggi1962 bei mir ist leider noch immer nichts. Noch habe ich keine Lösung gefunden - die anderen Datenpunkte auf WR 1 und WR 2 in der Kaskade funktionieren problemlos.

                                  R Offline
                                  R Offline
                                  R4
                                  schrieb am zuletzt editiert von
                                  #408

                                  @palantin
                                  An welchem WR ist denn der Powermeter angeschlossen?
                                  Schon mal "1" getestet?

                                  S P 2 Antworten Letzte Antwort
                                  0
                                  • R R4

                                    @palantin
                                    An welchem WR ist denn der Powermeter angeschlossen?
                                    Schon mal "1" getestet?

                                    S Offline
                                    S Offline
                                    Skydream
                                    schrieb am zuletzt editiert von
                                    #409

                                    Moin,

                                    ein ganz dolles Danke für diese Script, ich habe es heute installiert und nach anfänglichem totstellen des Modbus sind dann auch daten gekommen :blush:

                                    Inzwischen habe ich auch die auskommentierten Zeilen für den zweiten String gefunden....sehr schön. Man ist je etwas erschlagen von der fülle an daten, aber besser haben und nicht brauchen wie brauchen und nicht haben.

                                    Ist es normal das die Werte nicht 100% zu denen im Webportal passen?
                                    Sind die dort geglättet?

                                    SUN2000-8KTL-M1 mit zwei Strings, 5KW Batterie, Dongle per Wifi angebunden.

                                    A 1 Antwort Letzte Antwort
                                    0
                                    • R R4

                                      @palantin
                                      An welchem WR ist denn der Powermeter angeschlossen?
                                      Schon mal "1" getestet?

                                      P Offline
                                      P Offline
                                      palantin
                                      schrieb am zuletzt editiert von
                                      #410

                                      @r4 Ja, leider kein Effekt - hier erhalte ich die selben Fehler wie bei "11"

                                      1 Antwort Letzte Antwort
                                      0
                                      • S Skydream

                                        Moin,

                                        ein ganz dolles Danke für diese Script, ich habe es heute installiert und nach anfänglichem totstellen des Modbus sind dann auch daten gekommen :blush:

                                        Inzwischen habe ich auch die auskommentierten Zeilen für den zweiten String gefunden....sehr schön. Man ist je etwas erschlagen von der fülle an daten, aber besser haben und nicht brauchen wie brauchen und nicht haben.

                                        Ist es normal das die Werte nicht 100% zu denen im Webportal passen?
                                        Sind die dort geglättet?

                                        SUN2000-8KTL-M1 mit zwei Strings, 5KW Batterie, Dongle per Wifi angebunden.

                                        A Offline
                                        A Offline
                                        ATARI
                                        schrieb am zuletzt editiert von
                                        #411

                                        @skydream sagte in Huawei Sun2000 & ioBroker via JS script funktioniert:

                                        Ist es normal das die Werte nicht 100% zu denen im Webportal passen?
                                        Sind die dort geglättet?

                                        Soweit ich weiß werden die Daten fürs Webportal (Cloud) verzögert aktualisiert.

                                        Raspberry Pi 5B (ioB via pi OS_lite(64bit) | Synology NAS (ioB via Docker)

                                        1 Antwort Letzte Antwort
                                        0
                                        • J juggi1962

                                          @palantin Ich habe 0 beim PowerMeter und ich bekomme Daten.

                                          A Offline
                                          A Offline
                                          ATARI
                                          schrieb am zuletzt editiert von
                                          #412

                                          @juggi1962 sagte in Huawei Sun2000 & ioBroker via JS script funktioniert:

                                          Ich habe 0 beim PowerMeter und ich bekomme Daten.

                                          bei mir geht das auch mit ID 0

                                          Raspberry Pi 5B (ioB via pi OS_lite(64bit) | Synology NAS (ioB via Docker)

                                          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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          396

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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