Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      GombersIOB @jwerlsdf last edited by

      @jwerlsdf
      Ein LAN-Port reicht. Obwohl das jetzt das erste Mal ist, dass ich von jemanden höre, es gebe nur einen LAN-Port.
      Ansonsten ist die Einrichtung eigentlich schon mit dem ersten Beitrag dieses Threads gut beschrieben. Wenn Du mal ganz nach oben scrollst findest Du es.
      Die Registerbelegung findest Du auf GitHub (https://gist.github.com/dnoegel/543c72ef722365a3934bbad0bb43e222).

      Ich würde da aber sukzessive vorgehen. Immer mal 5 Register eintragen und schauen obs funktioniert und dann weiter.

      G J 2 Replies Last reply Reply Quote 0
      • G
        GombersIOB @GombersIOB last edited by

        @gombersiob

        Aktuell ist der LAN Port bereits belegt

        Die Aussage verstehe ich nicht. Was heißt denn belegt? Man braucht doch nicht für jede Port-Adresse an einem Server einen eigenen LAN-Port!

        Es soll wohl über den waveshare funktionieren.

        Den Begriff kenne ich nicht. Wenn ich es suche, ist es wohl einfach nur eine Implementation, Modbus-Daten bereitzustellen. Aber wie das gemacht wird, ist doch vermutlich egal. Du brauchst die IP-Adresse und den Port, fertig!

        1 Reply Last reply Reply Quote 0
        • J
          jwerlsdf @GombersIOB last edited by jwerlsdf

          @gombersiob
          Also ich habe jetzt keine weiter Hardware angeschlossen. Lan kabel steckt. Dementsprechend kein WLAN.
          Ich habe die Einstellungen wie geschrieben entsprechend vorgenommen, der Adapter geht auf grün, aber ich bekomme keine Werte rein. Anbei zwei Bilder.
          Screenshot_20250214-191527_Chrome.jpg
          Screenshot_20250214-191417_Chrome.jpg
          Wo liegt mein Fehler?

          Folgende Fehler kommen

          modbus.1
          2025-02-14 19:36:58.348	error	Invalid object: {"type":"state","common":{"name":"Geräte Typ-Code","role":"value","type":"number","read":true,"write":false,"def":0,"unit":""},"native":{"regType":"inputRegs","address":-25002,"deviceId":1,"type":"int8be","len":"1","offset":"0","factor":"1"}}
          
          modbus.1
          2025-02-14 19:36:58.348	error	Invalid data inputRegisters/0: {"_address":-25002,"name":"Device type code","description":"Geräte Typ-Code","unit":"","type":"int8be","len":"1","factor":"1","offset":"0","formula":"","role":"value","room":"","cw":false,"isScale":false,"deviceId":1,"address":-25002,"fullId":"modbus.1.0"}
          
          modbus.1
          2025-02-14 19:36:58.347	error	Invalid inputRegisters address: -25002
          
          modbus.1
          2025-02-14 19:36:58.347	error	Invalid inputRegisters address: -25001
          
          modbus.1
          2025-02-14 19:36:58.347	error	Invalid inputRegisters address: -24999
          
          modbus.1
          2025-02-14 19:36:58.346	error	Invalid inputRegisters address: -24998
          
          modbus.1
          2025-02-14 19:36:58.346	error	Invalid inputRegisters address: -24994
          

          Unter WiNet-S2 System Weiterleitung der Informationen ist als Modbus die IP vom iobroker bereits automatisch eingetragen. Passt also. Scheint wohl an den register Einträgen zu liegen oder?

          G 1 Reply Last reply Reply Quote 0
          • G
            GombersIOB @jwerlsdf last edited by

            @jwerlsdf said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:

            -25002

            Ein negatives Register "-25002" kann es nicht geben. Da sind Typo-Fehler in der Definition. Das sieht man auch in den in den Objekten gezeigten Namen. "NAN" bedeutet "Not A Number". Das heißt der Wert der an der Stelle, wo das Register erwartet wird, ausgelesen wird, ist eben keine Zahl.

            Nur um einen Eindruck zu geben, wie das Ergebnis der EIngabe etwa aussehen müsste, sei hier mal ein Screenshot meiner Eingangsregister:
            2929f7ed-1700-4bcf-ae2d-61d1db57008f-grafik.png

            Vielleicht kannst Du ja damit den Fehler finden.

            J 1 Reply Last reply Reply Quote 0
            • J
              jwerlsdf @GombersIOB last edited by

              @gombersiob
              Danke. Bei mir hat der slave gefehlt. Alias aus den Einstellungen rausgenommen und mehrere slaves hacken rein.
              Jetzt habe ich zwei erfolgreich drinnen und bekomme die Werte. Nehme ich die Liste von github funktioniert es nicht, da dort der slave fehlt. Füge ich den hinzu bekomme ich einen Fehler weil irgendwas an der falschen Position ist. Hast du vlt für mich eine fertige Liste als Txt die ich importieren kann oder wie kann ich die Liste richtig bearbeiten und dann importieren?

              B 1 Reply Last reply Reply Quote 0
              • B
                berlinerbolle @jwerlsdf last edited by

                @jwerlsdf

                https://github.com/c0ldtech/sungrow

                Da steht auch ein kurzer Text dazu. Aber @GombersIOB hat bestimmt auch eine einfachere Liste.

                G 1 Reply Last reply Reply Quote 0
                • G
                  GombersIOB @berlinerbolle last edited by

                  @berlinerbolle

                  Meine Liste habe ich schon mehrfach in diesem Thread gepostet. Den Slave muss man auch nur bei einer bestimmten Adapter-Einstellung eingeben. Was genau das war, fällt mir gerade nicht ein, ich komme auch nicht an die Einstellungen.
                  Den Slave kann man auch einfach in die Liste an die zweite Stelle hineineditieren und dann importieren.
                  Meine Liste zu nehmen ist vielleicht nicht sinnvoll. Sie ist von eine SH08RT, womöglich hat sich da mittlerweile waa geändert. Manches unterscheidet sich sowieso von WR zu WR. Wirklich sicher ist man nur mit der Beschreibung.

                  B 1 Reply Last reply Reply Quote 0
                  • B
                    berlinerbolle @GombersIOB last edited by

                    @gombersiob

                    Auch wieder wahr. Die die ich gepostet habe, ist von einem SH10RT.

                    1 Reply Last reply Reply Quote 0
                    • J
                      jwerlsdf last edited by jwerlsdf

                      Und woher bekomme ich die Liste vom WR SH20T?

                      G 1 Reply Last reply Reply Quote 0
                      • G
                        GombersIOB @jwerlsdf last edited by

                        @jwerlsdf
                        Ich glaube in der GitHub-Beschreibung ist ein Link. Und in der Beschreibung gibt es dann Fallunterscheidungen je nach WR.

                        J 1 Reply Last reply Reply Quote 0
                        • J
                          jwerlsdf @GombersIOB last edited by

                          @gombersiob
                          Finde ich leider nicht 😖

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            GombersIOB @jwerlsdf last edited by

                            @jwerlsdf

                            Finde ich leider nicht

                            Merkwürdig. Ich hatte es gleich. Es gibt aber ein paar GitHub Einträge, vielleicht ist die Quelle nicht überfall aufgeführt. ich füge mal ein Dokument von mir bei. Ob das aktuell ist, habe ich nicht geprüft.

                            f2a8971f-a3b9-4dc1-8608-a7d3d3001a9e-Communication.Protocol.of.Residential.Hybrid.Inverter_V1.1.2_EN.pdf

                            1 Reply Last reply Reply Quote 0
                            • M
                              Maddm @DRUROB last edited by

                              @drurob
                              ich würde mich gern mal an das Problem mit der Umstellung des Typs von 13021 dran hängen:
                              Hallo zusammen, ich hab an meiner PV seit fast 2 Jahren einen SH80RT Wechselrichter, dessen Daten ich via Modbus per IOBroker auslese und visualisiere die Daten in einem Stromflussdiagramm, dessen Logik ich komplett von hier übernommen habe.

                              Durch die Umstellung war der angezeigte Ladewert viel zu hoch, durch Suche habe ich gefunden, dass man den Type von 13021 selbst umstellen kann (unter Instanzen - modbus0 - Eingangsregister - den Typ von 13021 von unsigned 16 bit (Big Endian) umstellen auf signed 16 bit (Big Endian)".
                              Danach stehen in 13021 korrekte Werte, mit Vorzeichen drin (negative Werte = Ladung in die Batterie, positive Werte: Entladung der Batterie).

                              Welche Änderung muss ich jetzt im Blockly bzw. im Scriptblock, der auf der oben verlinken Seite drauf ist machen, damit die Berechnung der einzelnen Werte (Stromfluss in/von der Batterie, ins/vom Netz) wieder passen?

                              W G 2 Replies Last reply Reply Quote 0
                              • W
                                wolfi913 @Maddm last edited by

                                @maddm sagte in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:

                                Welche Änderung muss ich jetzt im Blockly bzw. im Scriptblock, der auf der oben verlinken Seite drauf ist machen, damit die Berechnung der einzelnen Werte (Stromfluss in/von der Batterie, ins/vom Netz) wieder passen?

                                schau mal hier…

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  Maddm @wolfi913 last edited by

                                  @wolfi913
                                  das scheint bei mir nicht zu gehen, der Stromfluss scheint zwar zu stimmen, aber die Werte gehen nicht auf.

                                  Hier der Code den ich verwende (da habe ich die Codezeile aus dem oben verlinkten Beitrag mit reingenommen):

                                  function decToBit(dec, bitPosition) {
                                      return (dec & (1 << bitPosition)) === 0 ? false : true;
                                  }
                                  
                                  // Creates a state if it does not exist yet
                                  function createStateIfNotExists(state, name)
                                  {
                                      // createState(state, 0, true, {name: name,  type: "number", role: 'value'}, function () {});    
                                      if ( !existsState(state )) {
                                          createState(state, 0, false, {name: name,  type: "number", role: 'value'}, function () {});    
                                      } 
                                  }
                                  
                                  // Create states
                                  createStateIfNotExists("0_userdata.0.PV.PvToLoad", "Power from PV to load");
                                  createStateIfNotExists("0_userdata.0.PV.PvToBat", "Power from PV to bat");
                                  createStateIfNotExists("0_userdata.0.PV.PvToGrid", "Power from PV to grid");
                                  
                                  createStateIfNotExists("0_userdata.0.PV.BatToLoad", "Power from Bat to load");
                                  createStateIfNotExists("0_userdata.0.PV.BatToGrid", "Power from Bat to grid");
                                  
                                  createStateIfNotExists("0_userdata.0.PV.GridToLoad", "Power from grid to load");
                                  createStateIfNotExists("0_userdata.0.PV.GridToBat", "Power from Gridto battery");
                                  
                                  createStateIfNotExists("0_userdata.0.PV.SignedBat", "Battery but with minus sign for charging");
                                  
                                  
                                  // Decode running state flags
                                  $powerGeneratedFromPV = decToBit(dec, 0);
                                  $batteryCharging = decToBit(dec, 1);
                                  $batteryDischarging = decToBit(dec, 2);
                                  $loadActive = decToBit(dec, 3);
                                  $powerFeedIntoGrid = decToBit(dec, 4);
                                  $powerImportFromGrid = decToBit(dec, 5);
                                  $powerGeneratedFromLoad = decToBit(dec, 7);
                                  
                                  // Save running state more speaking fields
                                  setState("0_userdata.0.PV.PowerGeneratedFromPV", $powerGeneratedFromPV, true);
                                  setState("0_userdata.0.PV.BatteryCharging", $batteryCharging, true);
                                  setState("0_userdata.0.PV.BatteryDischarging", $batteryDischarging, true);
                                  setState("0_userdata.0.PV.LoadActive", $loadActive, true);
                                  setState("0_userdata.0.PV.PowerFeedIntoGrid", $powerFeedIntoGrid, true);
                                  setState("0_userdata.0.PV.PowerImportFromGrid", $powerImportFromGrid, true);
                                  setState("0_userdata.0.PV.PowerGeneratedFromLoad", $powerGeneratedFromLoad, true);
                                  
                                  // Read current power levels of bat, pv, load and grid
                                  $load = getState("modbus.0.inputRegisters.13007_Load_power_").val;
                                  $grid = getState("modbus.0.inputRegisters.13009_Export_power").val;
                                  $pv = getState("modbus.0.inputRegisters.5016_Total_DC_Power").val;
                                  $battery = Math.abs(getState('modbus.0.inputRegisters.13021_Battery_power_').val);
                                  
                                  
                                  // Write signed bat
                                  
                                  setState("0_userdata.0.PV.SignedBat", $batteryCharging ? $battery * -1 : $battery, true);
                                  
                                  // Calculate PV
                                  $pvToBat = 0;
                                  $pvToLoad = 0;
                                  $pvToGrid = 0;
                                  $loadRemaining = $load;
                                  if ($powerGeneratedFromPV) {
                                      $remaining = $pv;
                                      if ($remaining > $loadRemaining) {
                                          $pvToLoad = $loadRemaining;
                                          $remaining -= $load;
                                          $loadRemaining = 0;
                                      } else {
                                          $pvToLoad = $remaining;
                                          $loadRemaining = $load - $remaining;
                                          $remaining = 0;
                                          
                                      }
                                      
                                      if ($batteryCharging) {
                                          if ($remaining > $battery) {            
                                              $pvToBat = $battery;
                                              $remaining -= $battery;
                                          } else {            
                                              $pvToBat = $remaining;
                                              $remaining = 0;
                                          }
                                      }
                                      
                                      if ($grid > 0) {
                                          $pvToGrid = Math.min($grid, $remaining);
                                      }
                                  }
                                  setState("0_userdata.0.PV.PvToLoad", $pvToLoad);
                                  setState("0_userdata.0.PV.PvToBat", $pvToBat);
                                  setState("0_userdata.0.PV.PvToGrid", $pvToGrid);
                                  
                                  // Calculate Bat
                                  $batToLoad = 0;
                                  $batToGrid = 0;
                                  if ($batteryDischarging) {
                                      $remaining = $battery;
                                      if ($remaining > $loadRemaining) {
                                          $batToLoad = $loadRemaining;
                                          $remaining -= $loadRemaining;
                                          $loadRemaining = 0;
                                      } else {
                                          $batToLoad = $remaining;
                                          $loadRemaining -= $remaining;
                                          $remaining = 0;        
                                      }
                                      
                                      if ($powerFeedIntoGrid) {
                                          $batToGrid = Math.min($grid, $remaining);
                                      }
                                  }
                                  
                                  setState("0_userdata.0.PV.BatToLoad", $batToLoad);
                                  setState("0_userdata.0.PV.BatToGrid", $batToGrid);
                                  
                                  // Calculate grid
                                  $gridToBat = 0;
                                  $gridToLoad = 0;
                                  if ($grid < 0) {
                                      $remaining = Math.abs($grid);
                                      if ($remaining > $loadRemaining) {
                                          $gridToLoad = $loadRemaining;
                                          $remaining -= $loadRemaining;
                                          $loadRemaining = 0;
                                      } else {
                                          $gridToLoad = $remaining;
                                          $loadRemaining -= $remaining;
                                          $remaining = 0;        
                                      }
                                      
                                      if ($batteryCharging) {
                                          $gridToBat = Math.min($battery, $remaining);;
                                      }
                                  }
                                  
                                  setState("0_userdata.0.PV.GridToLoad", $gridToLoad);
                                  setState("0_userdata.0.PV.GridToBat", $gridToBat);
                                  

                                  das führt zu folgenden Werten in den einzelnen Registern:
                                  Bildschirmfoto 2025-03-01 um 14.39.08.png

                                  Stromerzeugung PV = 3159 W
                                  Hausverbrauch = 413 W
                                  bleiben also 2746 W um die Batterie zu laden, da stehen aber nur 2462 W, wo sind die restlichen 284 W hin?

                                  Müssen bei noch weiteren Registern die "Typen" geändert werden oder ist meine Änderung einfach falsch?

                                  W 1 Reply Last reply Reply Quote 0
                                  • W
                                    wolfi913 @Maddm last edited by wolfi913

                                    @maddm

                                    Im Bereich modbus.0 ändert die Einstellung ja nichts. Es wird nur für die Weiterverarbeitung im Script der absolute Wert für $battery (ohne negative Kennzeichnung) verwendet. So wie es vor der Firmwareänderung war. Das Script arbeitet dann so wie vorher unsigned weiter. Die verarbeiteten Werte speichert das Script ja unter 0_userdata.0.PV.xxx. Dort sollten dann wieder die korrekte und sinnvolle Werte stehen. In der Beschreibung vom Scriptersteller steht ja auch, dass die Werte die über Modbus geliefert werden ohne Weiterverarbeitung (gerade in Verbindung mit einer Batterie) nur bedingt direkt nutzbar sind.

                                    Ergänzung:
                                    Was mir gerade noch bei Deinem obigen Script aufgefallen ist.
                                    Du hast das (Arbeits-)Script von der Homepage direkt verwendet. Ich meine das ist nicht ganz vollständig. Das enthält m.M.n. gar keinen Trigger der die Änderungen kontinuierlich einliest und weiterverarbeitet. Sinnvoll wäre das Script oder Blockly das dort im unteren Bereich unter Downloads verlinkt ist zu verwenden.

                                    1 Reply Last reply Reply Quote 0
                                    • G
                                      GombersIOB @Maddm last edited by

                                      @maddm

                                      Ich bin immer etwas im Zweifel, welches Register gemeint ist, da der Dokumentationsoffset immer um 1 höher ist als die Registeradresse. Ich gehe mal von Battery Power aus.
                                      Die Register 13020 bis 13022 sind wie folgt in der Dokumentation beschrieben:
                                      692c6572-3177-4661-9d83-e9d846ccc2ef-grafik.png
                                      Ich habe auch eine SH8.0RT und dort bei mir sind die Register auch genauso als UNSIGNED 16bit Integer im IOBroker eingetragen.
                                      59154380-3875-4e02-af3d-f205f87920e5-grafik.png
                                      Diese Eintragung hat gar nichts damit zu tun wie der Wechselrichter seine Daten speichert oder sie an den aufrufenden Master sendet. Das Datenformat ist nicht Bestandteil des MODBUS-Protokolls. In dem werden einfach Register abgefragt und die Inhalte geschickt - aber nicht interpretiert. Man kann damit kein Vorzeichenbit im Wechselrichter einschalten!

                                      Die Eintragung betrifft nur den IOBroker Modbus-Adapter selber, damit der weiß, wie er die Register interpretieren muss. Wenn die Zahl als signed verstanden werden soll, wird das erste Bit als Vorzeichen (0=="+"; 1=="-") interpretiert. Wird es als unsigned definiert werden alle 16 Bit als positiver Zahlwert gerechnet.
                                      In die Objekte wird dann der entsprechend umgerechnete Dezimalwert eingetragen.

                                      Woher das kommt, dass das Register 13021 jetzt vorzeichenbehaftet sein soll, würde mich doch interessieren. Mein letztes Dokument über die Beschreibung der Register ist vom August 2023 (V1.1.2), da ist es noch unsigned. Habt Ihr dazu neuere Dokumentation.

                                      Ich habe mir gerade mal aller Werte der BatteryPower (13021) aus dem letzten Jahr angesehen. Da war bei mir absolut nichts merkwürdig.

                                      W M 2 Replies Last reply Reply Quote 0
                                      • W
                                        wolfi913 @GombersIOB last edited by

                                        @gombersiob sagte in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:

                                        Woher das kommt, dass das Register 13021 jetzt vorzeichenbehaftet sein soll, würde mich doch interessieren. Mein letztes Dokument über die Beschreibung der Register ist vom August 2023 (V1.1.2), da ist es noch unsigned. Habt Ihr dazu neuere Dokumentation.

                                        Das hatte ich mal dazu gefunden. Die Änderung gibt's ab einer Firmware-Version 95.03 (Nov24). Die aktuellste Doku die es momentan gibt ist die 1.1.5 (Sep24). Dort ist die Anpassung noch nicht drin. Kommt drauf an, welche Firmware momentan läuft ob's mit oder ohne Vorzeichen ist.
                                        Beide Informationen hier entdeckt https://github.com/evcc-io/evcc/issues/17461
                                        Bei evcc ist die Änderung auch bereits ins Sungrow-Template mit int16 eingeflossen. Ebenso bei Homeassistant
                                        Mehr Infos hab ich dazu aber leider auch nicht

                                        JuMa1967 created this issue in evcc-io/evcc

                                        closed Sungrow SH6.ORT Update führt zu falscher Auswertung des Batteriespeichers #17461

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          Maddm @GombersIOB last edited by Maddm

                                          Ich bin jetzt leider komplett verwirrt.
                                          Ich habe auf 2 Systemen einen iobroker laufen, einer liest die "13021_Batterie_Power_" aus wie bisher, in der anderen Instanz habe ich die "Type" des Registers auf "Signed 16bit (Big Endian)" umgestellt.

                                          In beiden Instanzen logge ich mit dem exakt gleichen Script (max Load Power für die Batterie ist auf 4000W eingestellt):

                                          on({ id: "modbus.0.inputRegisters.5016_Total_DC_Power", change: 'ne'}, function(obj) {
                                              var $load = getState("modbus.0.inputRegisters.13007_Load_power_").val, // Hausverbrauch
                                                  $grid = getState("modbus.0.inputRegisters.13009_Export_power").val,  // Netzbezug/-einspeisung
                                                  $pv = getState("modbus.0.inputRegisters.5016_Total_DC_Power").val,  // Stromproduktion vom Dach
                                                  $battery = getState("modbus.0.inputRegisters.13021_Battery_power_").val; // Batterieladung
                                              console.log('Testwerte: vom Dach = '+$pv+', ins Haus: '+$load+', in Batterie: '+$battery+', ins Netz: '+$grid)
                                          });
                                          

                                          Dass der Wert für "$battery" unterschiedlich ist, ergibt sich aus dem Datentyp, aber warum die Werte $load+$grid+$battery in Summe NICHT $pv ergeben, kann ich mir nicht erklären.

                                          Log mit Type "unsigned 16bit" (13021 ist eine positive, viel zu große Zahl)

                                          2025-03-02 09:38:08.529	info	script.js.log_Werte: Testwerte: vom Dach = 4714, ins Haus: 2070, in Batterie: 63015, ins Netz: -80
                                          2025-03-02 09:37:46.474	info	script.js.log_Werte: Testwerte: vom Dach = 4795, ins Haus: 218, in Batterie: 61538, ins Netz: 281
                                          2025-03-02 09:37:24.444	info	script.js.log_Werte: Testwerte: vom Dach = 4822, ins Haus: 211, in Batterie: 61538, ins Netz: 305
                                          2025-03-02 09:37:02.337	info	script.js.log_Werte: Testwerte: vom Dach = 4830, ins Haus: 218, in Batterie: 61537, ins Netz: 288
                                          2025-03-02 09:36:40.291	info	script.js.log_Werte: Testwerte: vom Dach = 4839, ins Haus: 213, in Batterie: 61538, ins Netz: 305
                                          

                                          Log mit Type "signed 16bit" (13021 ist eine Zahl, positiv oder negativ)

                                          2025-03-02 09:38:41.605	info	script.js.Log_Werte: Testwerte: vom Dach = 4480, ins Haus: 214, in Batterie: -3998, ins Netz: 99
                                          2025-03-02 09:38:19.554	info	script.js.Log_Werte: Testwerte: vom Dach = 4640, ins Haus: 214, in Batterie: -3999, ins Netz: 225
                                          2025-03-02 09:37:57.488	info	script.js.Log_Werte: Testwerte: vom Dach = 4770, ins Haus: 216, in Batterie: -3998, ins Netz: 270
                                          2025-03-02 09:37:35.405	info	script.js.Log_Werte: Testwerte: vom Dach = 4808, ins Haus: 217, in Batterie: -3998, ins Netz: 297
                                          2025-03-02 09:37:13.347	info	script.js.Log_Werte: Testwerte: vom Dach = 4844, ins Haus: 216, in Batterie: -3999, ins Netz: 293
                                          2025-03-02 09:36:51.301	info	script.js.Log_Werte: Testwerte: vom Dach = 4849, ins Haus: 2089, in Batterie: -2491, ins Netz: -24
                                          2025-03-02 09:36:29.240	info	script.js.Log_Werte: Testwerte: vom Dach = 4853, ins Haus: 200, in Batterie: -3999, ins Netz: 309
                                          

                                          Ich hab das Gefühl, ich komm hier zu keiner Lösung 😞 - aber vielleicht hat jemand ein funktionierendes Script zur Hand, dass mir die Werte für:

                                          • PV in die Batterie
                                          • PV ins Haus
                                          • PV ins Netz
                                          • Batterie ins Haus
                                          • Netz ins Haus
                                            korrekt ausrechnet

                                          @wolfi913 : das Script steckt im Blockly drin, dass auf der Seite beschrieben ist. Damit wird auf die Änderung des Running State (13000) reagiert.

                                          W 1 Reply Last reply Reply Quote 0
                                          • W
                                            wolfi913 @Maddm last edited by

                                            @maddm sagte in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:

                                            Damit wird auf die Änderung des Running State (13000) reagiert.

                                            Ok. Dann ist mir klar warum da kein Trigger zu finden war. Wobei sich der RunningState ja nicht häufig ändert, bei mir zuletzt vor über einer Stunde. Da würde ich eher auf einen anderen Wert (z.B. 13007 LoadPower) oder angelehnt an deinen Einstellungen für die Aktualisierungen im Modbus-Adapter per cron-Job triggern um die Datenpunkte unter 0_userdata.0 zu aktualisieren. Ich hab das bei mir z.B. alle 10 Sekunden eingestellt */10 * * * * *.
                                            Hat jetzt aber nichts mit Deinen Werten in modbus.0 zu tun.

                                            Weshalb Du aber so große Abweichungen in der Gesamtsumme hast... keine Ahnung. Die werden ja direkt über Modbus geliefert und sind ja unabhängig von irgendwelchen Scripten. Bei mir sind die Werte zwar auch nie vollständig deckungsgleich, das weicht auch immer so ca. um Werte bis etwa 30W ab, warum bei Dir aber da regelmäßig Werte > 300W fehlen??? Sorry. Da kann ich Dir leider nicht weiterhelfen. Hoffentlich hat ja jemand anderes hierzu Ideen oder Erkenntnisse.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            592
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            hardware sungrow sgh10rt modbu
                                            130
                                            857
                                            258933
                                            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