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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden

NEWS

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

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

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

Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
hardware sungrow sgh10rt modbu
895 Beiträge 132 Kommentatoren 366.4k Aufrufe 126 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.
  • J jwerlsdf

    @gombersiob
    Finde ich leider nicht :confounded:

    G Offline
    G Offline
    GombersIOB
    schrieb am zuletzt editiert von
    #805

    @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 Antwort Letzte Antwort
    0
    • D DRUROB

      @wolfi913 Klasse Erklärung! Danke dir. Genau das hatte ich heute bei meiner Recherche auch vermutet und mit den int / uint Werten rumgespielt. Zack war es wieder korrekt. Das ist echt ne doofe Umstellung, ich werde mal eine Änderung bei github beim Ersteller der Liste anmerken, dann tappt der nächste nicht auch in diese "Falle".
      Klasse Forumsleute hier! Riesen Dank an alle!

      M Offline
      M Offline
      Maddm
      schrieb am zuletzt editiert von
      #806

      @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 Antworten Letzte Antwort
      0
      • M Maddm

        @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 Online
        W Online
        wolfi913
        schrieb am zuletzt editiert von
        #807

        @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 Antwort Letzte Antwort
        0
        • W wolfi913

          @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 Offline
          M Offline
          Maddm
          schrieb am zuletzt editiert von
          #808

          @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 Antwort Letzte Antwort
          0
          • M Maddm

            @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 Online
            W Online
            wolfi913
            schrieb am zuletzt editiert von wolfi913
            #809

            @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 Antwort Letzte Antwort
            0
            • M Maddm

              @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?

              G Offline
              G Offline
              GombersIOB
              schrieb am zuletzt editiert von
              #810

              @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 Antworten Letzte Antwort
              0
              • G GombersIOB

                @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 Online
                W Online
                wolfi913
                schrieb am zuletzt editiert von
                #811

                @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

                1 Antwort Letzte Antwort
                0
                • G GombersIOB

                  @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.

                  M Offline
                  M Offline
                  Maddm
                  schrieb am zuletzt editiert von Maddm
                  #812

                  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 :disappointed: - 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 Antwort Letzte Antwort
                  0
                  • M 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 :disappointed: - 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 Online
                    W Online
                    wolfi913
                    schrieb am zuletzt editiert von
                    #813

                    @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 Antwort Letzte Antwort
                    0
                    • G Offline
                      G Offline
                      GombersIOB
                      schrieb am zuletzt editiert von
                      #814

                      @wolfi913
                      Danke für die neueste Dokumentation. Dass man die immer nur als "Geheimtipp" kriegen kann, ärgert mich schon maßlos. Wieso stellt Sungrow sie nicht einfach auf Ihrer Dokumentendownloadseit allseits zur Verfügung?

                      Die Problembeschreibung auf GitHub finde ich verworren. Dieser JROEGNER, der behauptet, das Register 13021 sei jetzt vorzeichenbehaftet, begründet es nicht. Er schreibt nur aus dem Nichts dem Register irgendwelche Attribute zu (z.B. int16), sagt aber nicht woher er das weiß. Mir scheint das einfach nur die eigene Interpretation des Ganzen zu sein. Die Dokumentation, wie gesagt gibt das nicht her.
                      Wenn ich aber in die verlinkte Modbus-Präsentation von Sungrow schaue, finde ich über die Besonderheiten der Hybrid-Wechselrichter (auf Seite 117) den Satz:

                      WiNet-S liefert nicht alle Register. z.B. das Register für das Vorzeichen der Batterieladung.

                      Welches Register hier gemeint ist, ist leider nicht gesagt.

                      Für mich ist dieses Thema in dem Link sehr unbefriedigend abgehandelt worden. Wenn es einen Änderung bei Sungrow im Register 13021 gegeben hat, sollte es doch mittlerweile eine passende Dokumentation dazu geben. Ich glaube fast eher, dass einfach irgendwas falsch läuft. Für die Batterie sei es sowieso angeraten, sie ab und zu mal zu 100% voll zu laden, damit das BMS die tatsächliche Kapazität der Batterie wieder lernt. Das habe ich auf einem YouTube-Video von Tom Bötticher gelernt (umgesetzt habe ich es selber noch nicht).

                      Was mich wundert ist, dass ich, wie gesagt im ganzen letzten Jahr keine merkwürdigen Zahlen gesehen. Wenn das High-Order-Bit in einem 16-Bit-Register an ist, heißt das, die Zahl ist größer als 32768 (W) - das hätte ich gesehen.

                      W 1 Antwort Letzte Antwort
                      0
                      • G GombersIOB

                        @wolfi913
                        Danke für die neueste Dokumentation. Dass man die immer nur als "Geheimtipp" kriegen kann, ärgert mich schon maßlos. Wieso stellt Sungrow sie nicht einfach auf Ihrer Dokumentendownloadseit allseits zur Verfügung?

                        Die Problembeschreibung auf GitHub finde ich verworren. Dieser JROEGNER, der behauptet, das Register 13021 sei jetzt vorzeichenbehaftet, begründet es nicht. Er schreibt nur aus dem Nichts dem Register irgendwelche Attribute zu (z.B. int16), sagt aber nicht woher er das weiß. Mir scheint das einfach nur die eigene Interpretation des Ganzen zu sein. Die Dokumentation, wie gesagt gibt das nicht her.
                        Wenn ich aber in die verlinkte Modbus-Präsentation von Sungrow schaue, finde ich über die Besonderheiten der Hybrid-Wechselrichter (auf Seite 117) den Satz:

                        WiNet-S liefert nicht alle Register. z.B. das Register für das Vorzeichen der Batterieladung.

                        Welches Register hier gemeint ist, ist leider nicht gesagt.

                        Für mich ist dieses Thema in dem Link sehr unbefriedigend abgehandelt worden. Wenn es einen Änderung bei Sungrow im Register 13021 gegeben hat, sollte es doch mittlerweile eine passende Dokumentation dazu geben. Ich glaube fast eher, dass einfach irgendwas falsch läuft. Für die Batterie sei es sowieso angeraten, sie ab und zu mal zu 100% voll zu laden, damit das BMS die tatsächliche Kapazität der Batterie wieder lernt. Das habe ich auf einem YouTube-Video von Tom Bötticher gelernt (umgesetzt habe ich es selber noch nicht).

                        Was mich wundert ist, dass ich, wie gesagt im ganzen letzten Jahr keine merkwürdigen Zahlen gesehen. Wenn das High-Order-Bit in einem 16-Bit-Register an ist, heißt das, die Zahl ist größer als 32768 (W) - das hätte ich gesehen.

                        W Online
                        W Online
                        wolfi913
                        schrieb am zuletzt editiert von
                        #815

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

                        Wieso stellt Sungrow sie nicht einfach auf Ihrer Dokumentendownloadseit allseits zur Verfügung?

                        Da haben wir absolut eine Meinung :+1:
                        Wäre gut wenn's da bessere (und vor allem offizielle) Infos geben würde.
                        So bleibt leider vieles bei Try&Error

                        Was mich wundert ist, dass ich, wie gesagt im ganzen letzten Jahr keine merkwürdigen Zahlen gesehen.

                        Vermutlich läuft Deine Anlage noch mit einem Firmwarestand < November 2024
                        Da geben die bisherigen Register ja passende Werte raus.

                        G 1 Antwort Letzte Antwort
                        0
                        • W wolfi913

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

                          Wieso stellt Sungrow sie nicht einfach auf Ihrer Dokumentendownloadseit allseits zur Verfügung?

                          Da haben wir absolut eine Meinung :+1:
                          Wäre gut wenn's da bessere (und vor allem offizielle) Infos geben würde.
                          So bleibt leider vieles bei Try&Error

                          Was mich wundert ist, dass ich, wie gesagt im ganzen letzten Jahr keine merkwürdigen Zahlen gesehen.

                          Vermutlich läuft Deine Anlage noch mit einem Firmwarestand < November 2024
                          Da geben die bisherigen Register ja passende Werte raus.

                          G Offline
                          G Offline
                          GombersIOB
                          schrieb am zuletzt editiert von
                          #816

                          @wolfi913

                          Die Firmwarestände aus dem GitHub stimmen tatsächlich nicht mit dem überein, was ich aus den ModBus-Registern auslese:

                          ARM-Softwareversion SAPPHIRE-H_01011.71.21
                          MDSP-Softwareversion SAPPHIRE-H_03011.71.18
                          SDSP Softwareversion SUBCTL-S_04011.01.01
                          Communication Module: M_WiNet-S_V01_V01_A
                          Battery: SBRBCU-S_22011.01.16

                          Laut Report tritt der Fehler mit

                          Energy Storage System
                          MDSP auf Version SAPPHIRE-H_03011.95.03
                          LCD auf Version SAPPHIRE-H_01011.95.03
                          Communication Module auf Version WINET-SV200.001.00.P026
                          Battery auf Version SBRBCU-S_22011.01.24

                          aus.

                          Also, ich bin tatsächlich softwaremäßig auf einem älteren Stand. Und außerdem weiß ich auch noch nicht mal, wer den Upgrade anstößt. Der letzte Upgrade von dem ich weiß, kam von Sungrow, Anfang 2023.

                          1 Antwort Letzte Antwort
                          0
                          • J Offline
                            J Offline
                            jwerlsdf
                            schrieb am zuletzt editiert von
                            #817

                            Hat jemand eine VIS gebaut, bei der ich alle Werte so wie in der APP angezeigt bekomme? Da ich nicht alle Werte habe, muss ich wohl mit Zusatzskripten arbeiten?! Wie sähen diese Skripte aus?

                            Zweite Frage. Hat jemand die monatlichen Ergebnisse eingebunden? Das funktioniert leider nicht. Ich habe den sungrow sh20T wechselrichter. Die Dat3n lese ich sowohl über den WiNet-S2 als auch über den loggen Port aus.

                            EisbaeeerE 1 Antwort Letzte Antwort
                            0
                            • J jwerlsdf

                              Hat jemand eine VIS gebaut, bei der ich alle Werte so wie in der APP angezeigt bekomme? Da ich nicht alle Werte habe, muss ich wohl mit Zusatzskripten arbeiten?! Wie sähen diese Skripte aus?

                              Zweite Frage. Hat jemand die monatlichen Ergebnisse eingebunden? Das funktioniert leider nicht. Ich habe den sungrow sh20T wechselrichter. Die Dat3n lese ich sowohl über den WiNet-S2 als auch über den loggen Port aus.

                              EisbaeeerE Offline
                              EisbaeeerE Offline
                              Eisbaeeer
                              Developer
                              schrieb am zuletzt editiert von
                              #818

                              @jwerlsdf Ist nicht genau wie die isolarcloud. Hab mir nur die für mich wichtigen Sachen visualisiert.
                              c2758c61-dd38-4546-9864-ea8359abea5f-image.png
                              4cc3ab94-5637-46f8-b890-142c860bb04d-image.png
                              35b6e54d-7fc5-4aa7-a46b-9c06d7d08543-image.png

                              Kein support per PM. Bitte im Forum Fragen stellen!

                              J 1 Antwort Letzte Antwort
                              0
                              • EisbaeeerE Eisbaeeer

                                @jwerlsdf Ist nicht genau wie die isolarcloud. Hab mir nur die für mich wichtigen Sachen visualisiert.
                                c2758c61-dd38-4546-9864-ea8359abea5f-image.png
                                4cc3ab94-5637-46f8-b890-142c860bb04d-image.png
                                35b6e54d-7fc5-4aa7-a46b-9c06d7d08543-image.png

                                J Offline
                                J Offline
                                jwerlsdf
                                schrieb am zuletzt editiert von jwerlsdf
                                #819

                                @eisbaeeer
                                ist das mit dem Energiefluss Adapter erstellt worden?
                                Könntest du mir bitte diese View zur Verfügung stellen? Danke!

                                Monatliche Einträge bekomme ich wohl nicht mit dem SH20T...

                                R EisbaeeerE 2 Antworten Letzte Antwort
                                0
                                • J jwerlsdf

                                  @eisbaeeer
                                  ist das mit dem Energiefluss Adapter erstellt worden?
                                  Könntest du mir bitte diese View zur Verfügung stellen? Danke!

                                  Monatliche Einträge bekomme ich wohl nicht mit dem SH20T...

                                  R Offline
                                  R Offline
                                  Regalo
                                  schrieb am zuletzt editiert von
                                  #820

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

                                  Monatliche Einträge bekomme ich wohl nicht mit dem SH20T...

                                  Die monatlichen Erträge (bzw. auch andere Zeitintervalle) bekommst du mit dem Adapter SourceAnalytix einfach aufgearbeitet.

                                  1 Antwort Letzte Antwort
                                  1
                                  • D Offline
                                    D Offline
                                    Doppellhelix
                                    schrieb am zuletzt editiert von
                                    #821

                                    Guten Morgen,

                                    ich habe meinen Sungrow SH10RT-20 erfolgreich mit Modbus in ioBroker eingebunden.
                                    Jetzt habe ich mich an mein erstes Script gewagt.
                                    In diesem Script möchte ich die max. Ladeleistung setzen.

                                    setState('modbus.0.holdingRegisters.33046_Max_Charging_Power'/*Max Ladeleistung*/, 100);
                                    

                                    Leider funktioniert das nicht.
                                    Wenn ich den Wert (10600) direkt im Holding Regisger auf 100 ändere, wird die 100 kurz rot und dann steht wieder der alte Wert 10600 drin.

                                    Muss ich noch irgendwo eine Einstellung machen, damit ich in den Sungrow schreiben darf?

                                    In dem Script was ich benutze, setze ich nicht nur die o.g. Ladeleistung sondern setze auch über den evcc Adapter den prioritySOC

                                    setState('evcc.0.control.prioritySoc'/*prioritySoc*/, 0);
                                    

                                    Das funktioniert ohne Probleme.

                                    Danke für die Hilfe.

                                    Gruß Helix

                                    D 1 Antwort Letzte Antwort
                                    0
                                    • D Doppellhelix

                                      Guten Morgen,

                                      ich habe meinen Sungrow SH10RT-20 erfolgreich mit Modbus in ioBroker eingebunden.
                                      Jetzt habe ich mich an mein erstes Script gewagt.
                                      In diesem Script möchte ich die max. Ladeleistung setzen.

                                      setState('modbus.0.holdingRegisters.33046_Max_Charging_Power'/*Max Ladeleistung*/, 100);
                                      

                                      Leider funktioniert das nicht.
                                      Wenn ich den Wert (10600) direkt im Holding Regisger auf 100 ändere, wird die 100 kurz rot und dann steht wieder der alte Wert 10600 drin.

                                      Muss ich noch irgendwo eine Einstellung machen, damit ich in den Sungrow schreiben darf?

                                      In dem Script was ich benutze, setze ich nicht nur die o.g. Ladeleistung sondern setze auch über den evcc Adapter den prioritySOC

                                      setState('evcc.0.control.prioritySoc'/*prioritySoc*/, 0);
                                      

                                      Das funktioniert ohne Probleme.

                                      Danke für die Hilfe.

                                      Gruß Helix

                                      D Offline
                                      D Offline
                                      Doppellhelix
                                      schrieb am zuletzt editiert von
                                      #822

                                      Hat sich erleddigt. Geht doch

                                      1 Antwort Letzte Antwort
                                      0
                                      • J jwerlsdf

                                        @eisbaeeer
                                        ist das mit dem Energiefluss Adapter erstellt worden?
                                        Könntest du mir bitte diese View zur Verfügung stellen? Danke!

                                        Monatliche Einträge bekomme ich wohl nicht mit dem SH20T...

                                        EisbaeeerE Offline
                                        EisbaeeerE Offline
                                        Eisbaeeer
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #823

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

                                        @eisbaeeer
                                        ist das mit dem Energiefluss Adapter erstellt worden?
                                        Könntest du mir bitte diese View zur Verfügung stellen? Danke!

                                        Ja, ist der Energiefluss Adapter. Eine View gibt es da nicht. Wird einfach in VIS eingebunden. Deshalb kann ich dir das auch nicht exportieren. Lediglich der Balken bei Erzeugung ist ein Overlay.

                                        Kein support per PM. Bitte im Forum Fragen stellen!

                                        J 1 Antwort Letzte Antwort
                                        0
                                        • EisbaeeerE Eisbaeeer

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

                                          @eisbaeeer
                                          ist das mit dem Energiefluss Adapter erstellt worden?
                                          Könntest du mir bitte diese View zur Verfügung stellen? Danke!

                                          Ja, ist der Energiefluss Adapter. Eine View gibt es da nicht. Wird einfach in VIS eingebunden. Deshalb kann ich dir das auch nicht exportieren. Lediglich der Balken bei Erzeugung ist ein Overlay.

                                          J Offline
                                          J Offline
                                          jwerlsdf
                                          schrieb am zuletzt editiert von
                                          #824

                                          @eisbaeeer
                                          Danke für die Rückmeldung. Ich habe mir den Energiefluss Adapter angeschaut gehabt. Habe es aber dann doch anders gelöst. Jemand anderes hatte es sehr ansprechend mit CSS direkt in VIS gemacht und ich habe das für meinen Teil übernommen. So brauchte ich nicht mehr den Adapter und auch weitere Skripte entfallen dadurch. SourceAnalytix mache ich jetzt die wöchentlichen/ monatlichen Ergebnisse. Mal schauen wie es dann aussieht.

                                          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

                                          481

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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