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 @Bricoleur last edited by GombersIOB

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

      ich stelle mich mal vor als Betreiber eines Sungrow SH6.0RT, der sich von der isolar-cloud emanzipieren möchte und sich gerade mühsam in das Thema "modbus" einarbeitet.
      Bisher ist es mir gelungen, den iobroker auf einem ubuntu-System (Thinkpad) zu installieren und die Eingangsregister des Wechselrichters auszulesen.

      Ich habe eine SH8.0RT - und bin nicht sicher, ob diese "Emanzipation" sinnvoll ist. Ich finde die ModBus-Werte teilweise merkwürdig, während die iSolarCloud-Anzeige besonders bei niedrigen Werten, plausibler wirkt. Als gäbe es zwei verschiedene Quellen für die Daten.

      Zum Beispiel zeigt mir die iSolarCloud sogar Entladungen aus der Batterie in Richtung Netz aus. Das finde ich sowieso, nach Wegfall der Einspeisebegrenzung, völlig abwegig. Und ich kann auch in ModBus keinen Wert finden mit dem ich das nachhalten kann. Ich habe dazu im Photovoltaikforum einen Thread aufgemacht. Das Sungrow Team hat den gesehen (hat mich auf mögliche Offset-Fehler hingewiesen, die ich aber berücksichtigt habe. Darauf wurde in diesem Thread ja oft genug hingewiesen). Aber ansonsten habe ich nichts mehr gehört.

      Ein weiteres Beispiel ist die Summe des Netzverbrauchs. Für meine VIS-Anzeige errechne ich mir den aus den ModBus-Werten als Summe aus den Netz-Importen(13035), der direkten PV-Nutzung (13016) und der Batterie-Entladung (13025). Der Wert ist aber, verglichen mit iSolarCloud nur "fast" richtig. Denn die Batterie-Entladung geht auch wohl teilweise in den Export - die iSolarCloud zeigt immer niedrigere Werte für die Eigennutzung aus Batterie.

      So sieht gerade mein VIS aus:
      da8a2df3-c875-4f9c-a180-3658c1aab0b4-grafik.png
      (Die Werte von "Gestern" gibts noch nicht, habe ich gerade erst aufgesetzt, sehe ich morgen!)
      Besonders merkwürdig ist hier der Wert von 1,3kWh aus der Batterie. Die ist leer, wir kommen gerade aus der Nacht und haben insgesamt nur 0,5 kWh erzeugt. wie es dazu kommen kann ist mir ein völliges Rätsel. Es steht aber in den Registern, wie mir der VagaModBus-Analyzer zeigt:
      57c99d7e-f213-41ca-bb5d-6f5d79aa450a-grafik.png
      Register 13025 steht auf "000D", also 13. Mit dem Faktor 0,1 wird daraus 1,3kWh,

      Und so meine iSolarCloud-Anzeige:
      66479da1-2107-46fb-b35a-861640a6bc97-grafik.png

      G 1 Reply Last reply Reply Quote 0
      • M
        MRaioBroker last edited by MRaioBroker

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

        Eingangsregister_STAND2021_02_02.txt neuster Stand

        Zunächst herzlichen Dank für diese hervorragende Anleitung, die Tipps und alles was hier geliefert wurde!!
        Selten so easy nen Adapter integriert.

        Folgendes musste ich noch anpassen. Einiges haben Daniel und andere schon erwähnt
        Vielleicht kann man das nach Verifizierung einiger Mitglieder noch in Post 1 anpassen.

        1. Geräte ID des Wechselrichters gibt es nicht mehr in meinem Sungrow Account.
        Mit der 1 hat´s funktioniert.

        2. Aktuelle ioBroker und Modbus Adapterversionen - Spalte 1 Geräte ID weg, Spalte Formula dazu.

        @Daniel hat die Liste hier gefunden
        https://gist.githubusercontent.com/dnoegel/543c72ef722365a3934bbad0bb43e222/raw/17c23638b60035d7ee9201286c95576692a29b8b/sungrow_modbus_register.tsv

        3. Einige Eingangsregisterwerte scheinen auch hier noch nicht ganz korrekt zu sein.

        13002
        müsste meines Erachtens auch Faktor 0.1 haben, so wie 13001.
        An Tag 1 leicht zu erkennen, der Gesamtertrag liegt sonst um das 10fache zu hoch.

        13011 - müsste 0.1 sein wie bei 13012

        Holdingregister
        13055
        13056
        glaub nicht dass die Werte stimmen. 6553V und 65535 Ah, vermutlich auch Faktor 0.1 notwendig...

        Gruß
        Matthias

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

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

          1. Einige Eingangsregisterwerte scheinen auch hier noch nicht ganz korrekt zu sein.

          Sie haben recht (mit den Eingangsregistern, Holding-Register nutze ich (noch) nicht, darüber kann ich nichts sagen). So habe ich das bei mir auch eingestellt.
          Nur die Adresswerte sollten Sie in Ihrem Post noch anpassen (13002 statt 1302, z.B.)

          Auch die Adresse für 5003 muss man ändern. Die komplette Energie für den Eigenverbrauch ("Total Power Yields") muss, nach den Werten die ich sehe, mit dem Faktor 0.1 gewichtet werden.

          Korrektur am 27.2.2023:
          Falls die Register per WiNet-S Anbindung ausgelesen werden
          müssen die Faktoren für 5035 (Grid Frequency) und für 13038 (Batteriekapazität) auf 0.01 sitzen ansonsten wie in der Dokumentation beschrieben, auf 0.1.

          M 1 Reply Last reply Reply Quote 0
          • G
            gmt94 last edited by

            Hallo,

            erstmal vielen Dank für die Anleitung hier im Forum.
            Gestern wurde mein SH10RT Hybridwechselrichter installiert. Leider will die Verbindung zum Iobroker nicht so recht klappen.

            Er holt sich genau einmal die Daten und auch nur eine Handvoll. Das keine Batteriedaten geliefert sind ist klar, da ich keine habe. Aber der komplette Netzbezug fehlt zum Beispiel.

            Der Adapter geht auch immer nur ganz kurz auf grün um im Anschluss wieder auf gelb zu gehen.

            Anbei ein Screenshot aus dem Protokoll:

            513ce4f4-8808-4f4d-a53c-d24ca119f4a8-image.png

            Was mache ich falsch?

            Vielen Dank und viele Grüße Henning

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

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

              Was mache ich falsch?

              Ob da ein grundsätzlicher Fehler vorliegt kann ich nicht sagen. Aber diese Art Abbrüche hatte ich auch schon. Der Modbus Slave scheint recht sensibel zu sein und kommt nach einem "Fehler" von selbst nicht mehr in den Tritt. Welcher Art der Fehler sein kann weiß ich nicht sicher - aber ich hatte den Eindruck, dass er auftrat, wenn ich bei den Timeouts vom Vorschlag abwich.
              Geholfen hat am Ende nur das Ausschalten und Wiedereinschalten.
              Das geht natürlich physisch sowieso, aber auch theoretisch über die iSolarCloud (hat bei mir irgendwie nie funktioniert, die Funktion ist aber da) und über den Direktzugang WiNet-S.

              1 Reply Last reply Reply Quote 0
              • G
                gmt94 last edited by

                So habe die Beiträge alle durchgeackert und verschiedene Konfiguration getestet. Nun läuft es. Habe jetzt auch die passenden IDs für meinen wechselrichter gefunden. Und es werden alle notwendigen Infos übertragen.

                Vg Henning

                D 1 Reply Last reply Reply Quote 0
                • D
                  d.franz @gmt94 last edited by

                  Hallo,

                  ich habe alles nach der Anleitung istalliert und die neue Liste wie @MRaioBroker verwendet. Damit bekomme ich schon werte aus meinem Sungrow WR.

                  Leider erhallte ich ca. alle 5 sekunden einen Fehler im Protokoll angezeigt. Folgende Fehler werden ausgegeben:

                  modbus.0 2023-01-25 17:01:31.937	warn	Poll error count: 6 code: {"err":"timeout","timeout":5000}
                  modbus.0 2023-01-25 17:01:31.936	error	Client in error state.
                  modbus.0 2023-01-25 17:01:31.936	error	Request timed out.
                  modbus.0 2023-01-25 17:01:31.935	warn	Error: undefined
                  
                  

                  und

                  modbus.0 2023-01-25 17:01:07.909	warn	Poll error count: 3 code: {"err":"timeout","timeout":5000}
                  modbus.0 2023-01-25 17:01:07.908	error	Client in error state.
                  modbus.0 2023-01-25 17:01:07.907	error	Request timed out.
                  modbus.0 2023-01-25 17:01:07.905	warn	Error: undefined
                  modbus.0 2023-01-25 17:01:01.851	warn	Poll error count: 2 code: "App Timeout"
                  modbus.0 2023-01-25 17:00:56.663	warn	Error in handler for 4: RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to access memory outside buffer bounds
                  modbus.0 2023-01-25 17:00:55.597	warn	Poll error count: 1 code: "ReadInputRegisters: Invalid FC 132"
                  

                  Danach verbindet sich der Adapter jedes Mal neu.

                  Hat jemand eine Idee wie ich diesen Fehler beheben kann?

                  Vielen Dank!

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    sHG2022 @d.franz last edited by

                    @d-franz Ich würde behaupten du hast einen Fehler bei den Adressen vom Eingangsregister gemacht..

                    "warn Poll error count: 1 code: "ReadInputRegisters: Invalid FC 132" überprüf mal ob alle Adressen im gültigen Bereich liegen.

                    MFG

                    1 Reply Last reply Reply Quote 0
                    • S
                      sHG2022 last edited by sHG2022

                      Ich hab bis her noch keine Code für die Aufschlüsselung des Registers 12999 - System_State gefunden.
                      Daher möchte ich gerne meinen Code zu Verfügung stellen (wie immer gilt das Ein- und Ausgänge & Pfade entsprechend angepasst werden müssen). Bei Verbesserungsvorschlägen immer raus mit der Sprache 😊

                      const idVar = 'modbus.0.inputRegisters.12999_System_State';
                      var bez = 'javascript.0.scriptEnabled.Eigene_Skripte.Solar.G01_-_SH10RT.SystemState.SystemState';
                      var text = ""
                      
                      createState(bez,"", {name: 'SystemState', read: true, write: true, desc: "Automatisch erzeugt",type: "string", role: "state"});
                        
                      function dec2text(dp) {
                          switch (dp) {
                              case 2:
                                  text = "Stop"
                                  break;
                              case 8:
                                  text = "Standby"
                                  break;
                              case 16:
                                  text = "Initial Standby"
                                  break;
                              case 32:
                                  text = "Startup"
                                  break;
                              case 64:
                                  text = "Running"
                                  break;
                              case 256:
                                  text = "Fault"
                                  break;
                              case 1024:
                                  text = "Running in maintain mode"
                                  break;
                              case 2048:
                                  text = "Running in forced mode"
                                  break;
                              case 4096:
                                  text = "Running in off-grid mode"
                                  break;
                              case 9473:
                                  text = "Restarting"
                                  break;
                              case 16384:
                                  text = "Running in External EMS mode"
                                  break;
                              default:
                                  text = "Code =  " + dp + " not defined!"
                                  break;
                          }
                          setState(bez, text, true);
                      }
                      
                      dec2text(getState(idVar).val);  //Frage Zustand bei Skriptstart ab
                      
                      on(idVar, function(dp) { // Triggern bei Wertänderung in idVar 
                         dec2text(dp.state.val);
                      })
                      

                      Als Grundlage beziehe ich mich auf die Sungrow "Communication Protocol of Residential Hybrid Inverter"

                      71358ace-d664-4d24-9045-8ac5ed7ca5ef-image.png

                      Ihr werdet parallelen zum Script von @ostseeskipper für den Running_State feststellen, dieses hab ich hierfür umgeschrieben.

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

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

                        Zum Beispiel zeigt mir die iSolarCloud sogar Entladungen aus der Batterie in Richtung Netz aus.

                        Ich habe es als Problem an meine Installationsfirma gemeldet, dass:

                        • Strom exportiert wird, obwohl die Batterie noch nicht voll ist
                        • Die Batterie Strom exportiert (zumindest nach Aussage von iSolarCloud). Wie ich das mit den ModBus-Daten zeigen kann ist mir nicht klar. Woher weiß die iSolarCloud das also?
                        • Die Batterie importiert Strom aus dem Netz. Sie füllt sich, obwohl noch kein Strom überhaupt erzeugt wurde.

                        Gestern kam die Nachricht, dass dieses Verhalten bekannt sei und es inzwischen per Firmware-Upgrade behoben wurde.
                        Ich habe mir mit Blockly eine Überwachung geschrieben. Die hatte heute schon Alarm egschlagen. Es zeigt sich, dass heute 800 Wh exportiert, aber die Batterie nicht aufgeladen wurde. Der Installateur meint, diese Messtoleranz müsse einkalkuliert werden und solche Einspeisewerte seien unumgänglich.

                        M 1 Reply Last reply Reply Quote 0
                        • B
                          blacksheep587 last edited by

                          Hi, kann mir mal jemand sagen, welche Holdingregister ich beschreiben muss, um die Batterie zu einer bestimmten Zeit aus dem Netz zu laden oder um eine Zwangsladung sofort zu starten und zu beenden?

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

                            @blacksheep587
                            Kann ich zwar nicht sagen, es würde mich aber interessieren, warum man das tun wollte. Haben Sie irgendeinen Tarif in dem die Preise wechseln?

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

                              @gombersiob
                              Meine Idee ist, zu Tibber zu wechseln. Der Tarif ist Börsenabhängig und wechselt stündlich den Preis.
                              Das bedeutet, ich könnte im Winter, wenn der Ertrag schlecht ist, meinen Speicher Nachts, wenn der Strom vielleicht nur 20Cent kostet, voll machen, und dann tagsüber, wenn der Preis 40Cent beträgt, meinen Speicher leer machen.
                              Meine Idealvorstellung ist dann, das ganze mit einer Ertragsprognose für den Folgetag noch "smart" zu machen, um bei einem kommenden Sonnentag nicht schon den Speicher voll zu haben.

                              Gleiches funktioniert dann auch mit unserem E-Auto. Unsere Wallbox unterstützt Tibber hier schon ab Werk.

                              1 Reply Last reply Reply Quote 0
                              • M
                                manny4566 last edited by manny4566

                                Hallo.
                                Danke @Atlantis für deine super Anleitung.
                                Ich hätte eine Frage an dich und euch.

                                Besteht die Möglichkeit sich den DTS666 zu sparen und die Info über den aktuellen Stand des Netzes per Holding Register an den WR zu senden?
                                Ich habe die Information über den aktuellen Bezug/Einspeisung bereits im IObroker drin über das Auslesen des Zählers.
                                Somit wäre der DTS666 quasi doppelt, da er ja auch nur den aktuellen Stand ausliest.
                                Die Information, die mir ja bereits vorliegt, muss ich ja somit nur noch an den WR bekommen.
                                Ich habe es mit dem Holding Register 13085 bereits probiert, aber ohne Erfolg.
                                Oder seht ihr keine Möglichkeit außer tatsächlich den DTS666 einzubauen und darüber die Kommunikation zum WR aufzubauen?

                                Danke

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

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

                                  Wenn man z.B. mit 500 W Laden/ Entladen möchte muss man folgende Holdings beschreiben:
                                  EMS Mode = 2 (Quasi Handsteuerung)
                                  13084 Einmalig mit einem Startwert versehen
                                  EMS Charge/Discharge Comand13050 wie folgt setzen:
                                  170 (Dezimal) = AA (Hexadezimal) <=> Charge/ Laden;
                                  187 (Dezimal) = BB: <=> Discharge / Entladen;
                                  204 (Dezimal) 0xCC <=> Stop (Anhalten/ Default );

                                  Ich habe es mal so versucht:
                                  13049 EMS Mode 2
                                  13083 statt 13084 2000W
                                  13050 170 (Dezimal) = AA (Hexadezimal) <=> Charge/ Laden;

                                  Es tut sich aber leider nix. Müssen die Werte "bestätigt" sein?

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

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

                                    Nur die Adresswerte sollten Sie in Ihrem Post noch anpassen (13002 statt 1302, z.B.)

                                    Vielen Dank für den Hinweis, korrigiert

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

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

                                      Strom exportiert wird, obwohl die Batterie noch nicht voll ist

                                      Ebenfalls erlebt und an Solarteur gemeldet (Nachdem ich netzunabhängigen Modus mit 25% SOC (state of charge) und Zwangsladung SOC 25% einstellte). Akku ging nicht mehr über 25% und Energie ins Netz.

                                      Firmwareupdate hatte ich vorher schon gemacht (Anleitung im Netz zu finden).
                                      Irgendwann gings dann wieder einfach so...
                                      Mittlerweile SOC Sollwerte wieder auf 0 gesetzt, weil wohl auch im Januar an einem sonnigen Tag der Akku sonst "überläuft".

                                      M 1 Reply Last reply Reply Quote 0
                                      • M
                                        mr1burns @ostseeskipper last edited by

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

                                        Kurze Frage: Woran macht ihr es fest das der WR die Battarie lädt oder nicht?
                                        In #13021 wird ja leider kein Vorzeichen mitgeliefert woran man erkennt ob geladen oder entladen wird.
                                        Lt Kommunikationsprotokoll versteckt sich der Status "Laden" oder "Entladen" in #130000 Running State. Das ist zwar U16 aber die Interpretation muss auf Bit Ebene im Bit 1 und 2 stattfinden.
                                        Gibts dafür schon ne Lösung nur das Bit 1 und 2 als Status auszulesen ?

                                        Wurde das Problem hier schon aufgelöst? Ich kann in EVCC sonst nicht über den IO-Broker arbeiten...
                                        Ggf hat hier jemand schon was über ein Blockly gebastelt?
                                        Wenn ja gerne mal hier auflösen.
                                        #13000 Running State-> gibt es da schon eine Liste was die Angaben da bedeuten?

                                        S G 2 Replies Last reply Reply Quote 0
                                        • S
                                          StealthAngel last edited by

                                          Hallo

                                          und erstmal vielen Dank für Eure Arbeit 👍 .

                                          Ich bin erst neu hier, habe aber von Euch schon sehr profitiert.

                                          Deshalb möchte ich eine Kleinigkeit zurück geben.

                                          In der Registertabelle steht als Einheit "Kwh" müsste aber korrekterweise "kWh" heißen.

                                          Kann das jemand in der Tabelle ändern?

                                          Vielen Dank....

                                          G M 2 Replies Last reply Reply Quote 0
                                          • S
                                            StealthAngel @mr1burns last edited by

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

                                            #13000 Running State-> gibt es da schon eine Liste was die Angaben da bedeuten?

                                            In der Sungrow Dkou steht:

                                            RunningState.jpg

                                            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

                                            896
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            hardware sungrow sgh10rt modbu
                                            130
                                            860
                                            280132
                                            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