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

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden

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

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

      Wie gesagt musst du dafür an den Winet gehen und nicht direkt an den WR. Dann auf die Geräte ID 2

      Mit dem Gerät selber habe ich mich im Detail noch nicht auseinandergesetzt. Es wurde installiert und das LAN-Kabel vom Elektriker auf den WiNet-Adapter gesteckt und fertig. Der hat auch noch die iSolarCloud-Verbindung gemacht (finde ich im Nachhinenein etwas übergriffig).
      Ich weiß, dass er das LAN-Kabel vorher an einer anderen Stelle eingesteckt hatte, da hatte er wohl Probleme. Ich vermute, dass die Anbindung an iSolarCloud von da nicht funktionierte, kann es aber nicht genau sagen.

      Das wars.

      Mit den ModBus-Abfragen bekam ich, so interpretiere ich die Vorkommnisse, aus folgenden beiden Gründen:

      • Der Timeout war zu kurz. Das ist mir bei meinem eigenen Programm aufgefallen. Ich rufe da nicht ein Register nach dem anderen ab sondern alle auf einmal und drösel die Ergebnisse dann hinterher auf. (Das mache ich, weil ich die Registerstände zeitlich nicht zu weit auseinanderlaufen lassen will. Sonst gehen oft die Kalkulationen nicht auf. Wenn zwischen auslesen "Load Power" und "Export Power" eine gewisse Zeit liegt, passt es manchmal nicht zusammen. Ich weiß aber noch nicht, ob es jetzt besser ist, intern wir das wahrscheinlich auch sequentiell abgefragt). Da reicht mir aber eine Sekunde nicht mehr, ich musste auf 3 Sekunden (3000ms) gehen.
        Das Problem mit den Timeouts hatte ich auch unter ioBroker verstärkt, als ich den Zugriff noch über WLAN machte.

      • Wenn ich ständig Register abfragte die nicht abfragbar sind. So gibt es den Zugriff auf die Statistiken (Register 6xxx) bei meiner SH8 nicht. Vielleicht finden die sich ja an anderer Stelle? Aber, dass es die nicht gibt, habe ich erst nicht gewusst und ich habe mir einen Wolf gesucht.

      Die Anlage reagiert meines Erachtens auf Fehler merkwürdig nachtragend. Irgendwie erholt sie sich dann nicht mehr und ich musste sie schon dreimal durchstarten - einmal sogar physisch. Ich könnte mir vorstellen, dass der ModBus-Slave die Connections, die der Master ja durch den Timeout nicht mehr abbauen kann, nicht mehr entfernt. Wenn es dann ein Maximum an unterstützten Connections gibt, dann ist irgendwann Ende und es gibt gar keine Antwort mehr. Und man muss den Slave restarten.

      Sehr hilfreich sind die ModBus-Clients, die es als Freeware gibt. Ich habe mich für den "VagaModBus Analyzer" entschieden. Der ist sehr simpel zu bedienen, sehr übersichtlich und zeigt, wenn man mit der Maus auf das Ergebnis klickt, auch den Dezimalwert schön an.

      (Zuletzt geändert: 15.2.2023 um 19:50)

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

        @gombersiob

        Bei meinen Tests konnte ich auch feststellen, dass die iSloarCloud nur mit dem Winet funktioniert. Lese ich auch so raus, wenn man sich das Handbuch oder andere Infos zum Winet anguckt.
        Der Lan port vom WR ist wohl nur eine "dumme" Modbus Schnittstelle.

        Als Tipp. Wenn du mal wieder ein nicht reagieren hast.
        Zieh einfach den Winet raus und steck ihn 2-3 Sekunden später wieder rein, damit er neu startet.
        Beim mir reicht das auch aus, wenn der Winet mal wieder Amok läuft. Daher empfinde ich ihn nicht für wirklich stabil, wenn er dauerhaft mit Modbus beschossen wird. Aufgefallen ist mir das verstärkt, wenn der Modbus Adapter Fehler schmeißt. Sowas wie Register außerhalb des Speicherbereichs oder wie die Meldung auch heißt. Also, wenn der Winet mit der Anfrage nichts anfangen kann. Das reißt ihn wohl ab und zu runter, wenn es zuviel wird.

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

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

          Beim mir reicht das auch aus, wenn der Winet mal wieder Amok läuft.

          Danke, für den Hinweis. Mir fehlt im Augenblick die Vorstellung, wie die Registerdaten gebildet werden. Wenn es zwei LAN-Schnittstellen dafür gibt, kann das Sammeln der Daten ja eigentlich nicht im WiNet-Adapter gemacht werden - zumindest stelle ich mir vor, dass es wenig sinnvoll ist, das an zwei verschiedenen Stellen zu machen. Es müsste dann doch einen Service im Wechselrichter geben der nur Anfragen von verschiedenen Stellen bedient.

          So stelle ich mir den Ablauf derzeit vor. Das habe ich jetzt "frei erfunden" - also nicht aus irgendeinem Dokument entnommen. Wenn es irgendwo einen hinterlegten Datenflussplan von Sungrow gäbe, wäre ich dankbar.
          a65e9efa-a34e-4466-8ea0-043e1ab85b1f-grafik.png

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

            @gombersiob

            Wie es genau intern programmiert ist weiß ich nicht.
            Aber wenn man sich die Geräteliste im Winet ansieht, dann sieht das so bei mir aus:

            a9328389-d0b6-4429-ad7a-5432eeeb36fe-grafik.png

            Der Winet selbst stellt quasi die Schnittstelle über Modbus ID 1 und 2 zur Verfügung.
            Intern spricht er die Geräte per 1 oder 200 an.

            Der WR selbst hört ja auch auf die ID 1 auf seinem LAN Port.
            Der Winit wird nichts anderes sein, als eine Web-und Cloudschnittstelle für die Otto Normaluser und bietet gleichzeitig eine 2. Modbus Schnittstelle, indem er die Infos durchschleift. Dabei macht er das wohl nicht sauber mit allen Registern.

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

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

              Ich habe gerade festgestellt, dass Register 5003 "Total Output Energy" und der unter der iSolarCloud angezeigte Wert für den kompletten weit auseinderliegen:

              Ich denke, ich habs jetzt gefunden. Das Register 5003 summiert nicht nur den Energieverbrauch sondern auch den exportierten Strom. Wenn ich den berücksichtige gehts auf:
              3dd74acd-cfd3-4378-956a-8725ca3fad54-grafik.png

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

                @gombersiob

                Guck dir mal live die Register 13016, 13025, 13044 und 5002 an für täglich. Da kann man live die Veränderung sehen.
                Die Gegenstücke dazu sind 13017, 13026, 13045 und 5003 für gesamt.

                Ich glaube 5002 bzw. 5003 sind die Summe der grünen Energie. Sprich die Summe von PV direkter Eigenverbrauch, Batterie Entladung und Verkauf. Die Zahlen gehen auf oder ?

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

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

                  Ich glaube 5002 bzw. 5003 sind die Summe der grünen Energie

                  Der Auffassung bin ich, wie gesagt, jetzt auch. Danke für den Hinweis, aber ich nutze schon alle Register, die die Leistung und verbrauchte Energie beschreiben, nur bei 5002/5003 hatte ich nicht im Blick, dass sie die Export-Daten beinhalten würden.

                  1 Reply Last reply Reply Quote 0
                  • L
                    LJSven last edited by

                    Bildschirmfoto 2023-02-16 um 19.09.56.png

                    Der Wert 5003 wird mir angezeigt - wie bekomme ich Nachkommastellen?

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

                      @ljsven
                      Der Faktor ist 0.1. Wenn der angegeben wäre, würde der Adapter das entsprechend rechnen und in den Datenpunkt einstellen.

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

                        @gombersiob Habe ich auch gedacht - daraus macht er aber 595.7 - richtig wäre aber 5956.6

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

                          @ljsven
                          Schau doch mal mit einem ModBus Client, was im Register steht (ich verwende, wie oben beschrieben den VagaModBus Analyzer unter Windows10). Sollte E8AE sein.
                          Das sieht für mich dann nach ein Adapter-Fehler aus.

                          Kann ich nicht nachstellen, habe meine Anlage gerade mal zwei Monate - da sind die Zahlen noch kleiner.

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

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

                            Der WR selbst hört ja auch auf die ID 1 auf seinem LAN Port.

                            Habe das jetzt so angeschlossen. Beide Ethernet-Anschlüsse angeschlossen. Mein Programm fragt über den einen Ethernet-Adapter ab, ioBroker über den WiNet-S-Adapter. Vielleicht vermeidet das ja auch Kollisionen.
                            In meinem Programm fällt mir auf, dass die Abfrage aller Register insgesamt 8 Sekunden dauert - egal ob WiNet oder der normale Ethernet-Anschluss benutzt wird.
                            Das heißt aber auch, dass im ioBroker die Daten zeitlich weit auseinanderliegen können und deshalb die Summen, für die augenblicklichen (Leistungs)-Daten, vermutlich meist nicht wirklich aufgehen.

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

                              Hallo,

                              inzwischen habe ich die Input-Register für meinen SGH10RT richtig gesetzt. Wobei ich diesen per WiNET ansteueere (falls dies einen Unterschied macht). ich habe folgende Werte: Sungrow ModBus InputRegister - SH10RT.tsv

                              Ein Problem habe ich mit der Batterie-Leistung. Diese wird mir nur ohne Vorzeichen ausgegeben. Ich kann also nicht zwischen Laden und Entladen unterscheiden. Gerade für eine grafische Darstellung wäre dies aber hilfreich.

                              Hat jemand einen Tipp für mich, wie ich erkennen kann ob die Batterie geladen der entladen wird?

                              Vielen Dank!

                              M G 2 Replies Last reply Reply Quote 0
                              • M
                                manny4566 @d.franz last edited by manny4566

                                @d-franz

                                Hi, ja macht einen Unterschied. Nicht alle Register können 100%ig ausgelesen werden.
                                z.b. die Monatsstände oder der WR Running und System Status.

                                Was die Batterie-Leistung angeht habe ich mir so geholfen, sprich selber berechnet:
                                #337

                                M 1 Reply Last reply Reply Quote 0
                                • G
                                  GombersIOB @d.franz last edited by GombersIOB

                                  @d-franz said in Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden:

                                  Hat jemand einen Tipp für mich, wie ich erkennen kann ob die Batterie geladen der entladen wird?

                                  Ich denke, man muss die Felder untersuchen und dann entscheiden. Ich habe mir das, wie ich denke, dass es funktionieren müsste, mal als Blockly zusammengetragen

                                  c827e331-46a3-410b-804b-ae5c4de94e69-grafik.png
                                  (Korrigiert: Stand: 22.2.2023 - 19:30)

                                  Korrekturen:

                                  • In der Function "isBatteryChargingFromGrid" war der Vergleich von loadPower und exportPower verkehrt.
                                  • In der Function "isBatteryDischarging" fehlte der untere Logikteil "falls IsBatteryCharging == falsch".

                                  Insgesamt habe ich jetzt diese Anzeige:
                                  cfea26d6-d129-4168-9250-3ed716586f87-grafik.png

                                  • Für importierten Strom wird die Zahl rot unterlegt.
                                  • Entladen der Batterie wird, wie hier, mit einem roten "D", laden würde mit einem gelben "C" angezeigt. Ausserdem habe ich mir mit dieser letzten Korrektur noch die Möglichkeit geschaffen anzuzeigen, ob die Batterie aus dem Netz oder von PV geladen wird.

                                  Damit man das Programm nicht eintippen muss, füge ich den XML-Export davon bei. Dann kann jeder, der Verbesserungspotential oder Notwendigkeit von Korrekturen sieht, das anfügen (und hoffentlich hier posten).
                                  Einfach unter Blockly importieren.
                                  BatteryChargingDischarging.xml

                                  Gegenüber gestern habe ich die Parameterübergabe korrigiert. Außerdem das Laden aus der PV getestet. Das Skript funktioniert zumindest dafür.
                                  Das Laden der Batterie aus dem Netz konnte ich nicht testen. Und Entladen auch nicht.

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

                                    @manny4566
                                    Hier noch mein Code aus Beitrag #337 wie von @manny4566 erwähnt.
                                    Ergebnis ist ein der Datenpunkt 0_userdata.0.PV_Datenpunkte.Berechnung_Batterieentladung_negativ
                                    unter userdata

                                    <xml xmlns="https://developers.google.com/blockly/xml">
                                      <variables>
                                        <variable id="(ocA``hXb:ASln87_[5i">PV Akku Be- oder Entladung</variable>
                                      </variables>
                                      <block type="on_ext" id="ehBZF8`0,PKLSMKg__PB" x="-2012" y="-487">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                        <field name="CONDITION">ne</field>
                                        <field name="ACK_CONDITION"></field>
                                        <value name="OID0">
                                          <shadow type="field_oid" id="0m^saRA]WjVCQ`9A%2n8">
                                            <field name="oid">modbus.0.inputRegisters.13007_Load_power_</field>
                                          </shadow>
                                        </value>
                                        <statement name="STATEMENT">
                                          <block type="variables_set" id="F`@4}oyq-b-2|/kYbR$U">
                                            <field name="VAR" id="(ocA``hXb:ASln87_[5i">PV Akku Be- oder Entladung</field>
                                            <value name="VALUE">
                                              <block type="math_arithmetic" id="1Zv4~dL0,_aGpt}7[_kP">
                                                <field name="OP">MINUS</field>
                                                <value name="A">
                                                  <shadow type="math_number" id="d[QgpJU-{V|[)Y8g,,:@">
                                                    <field name="NUM">1</field>
                                                  </shadow>
                                                  <block type="math_arithmetic" id="5||kb1lHC-qwY!85c3KH">
                                                    <field name="OP">MINUS</field>
                                                    <value name="A">
                                                      <shadow type="math_number" id="lWjzQ^1^A)~nyY4K}k/%">
                                                        <field name="NUM">1</field>
                                                      </shadow>
                                                      <block type="get_value" id="v|oqCDrxh=7lS_fPh~*[">
                                                        <field name="ATTR">val</field>
                                                        <field name="OID">modbus.0.inputRegisters.5016_Total_DC_Power</field>
                                                      </block>
                                                    </value>
                                                    <value name="B">
                                                      <shadow type="math_number" id="hMTHE%-|Fip{Z1M$2d7y">
                                                        <field name="NUM">1</field>
                                                      </shadow>
                                                      <block type="get_value" id="pQL:D)uc#*C|yW94;;1U">
                                                        <field name="ATTR">val</field>
                                                        <field name="OID">modbus.0.inputRegisters.13007_Load_power_</field>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <shadow type="math_number" id="LWB:(CTORxv:`-#$RF=q">
                                                    <field name="NUM">1</field>
                                                  </shadow>
                                                  <block type="get_value" id="E}0?u4:S)mn)6}@G9fd]">
                                                    <field name="ATTR">val</field>
                                                    <field name="OID">modbus.0.inputRegisters.13009_Export_power</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="update" id="(TMX3NmoY?k,I8B2]p?C">
                                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                <field name="OID">0_userdata.0.PV_Datenpunkte.Berechnung_Batterieentladung_negativ</field>
                                                <field name="WITH_DELAY">FALSE</field>
                                                <value name="VALUE">
                                                  <block type="variables_get" id="p$a.=$hGsH%AenyyxPI!">
                                                    <field name="VAR" id="(ocA``hXb:ASln87_[5i">PV Akku Be- oder Entladung</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </next>
                                          </block>
                                        </statement>
                                      </block>
                                    </xml>
                                    

                                    Mir freundlichen Grüßen aus Bad Friedrichshall wo ich heute um 0,1 kW an 100%-Autarkie über Nacht vorbeigeschrammt bin ;-). Eine Minute früher Sonne und es hätte gereicht

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

                                      Hallo zusammen,

                                      ich habe mir erlaubt für Skripte ein neues (Folge) Thema aufzumachen.

                                      Findet ihr hier.

                                      https://forum.iobroker.net/topic/63226/sungrow-wr-sgh10rt-modbus-ioskripte

                                      Hoffe das passt für euch und es wird angenommen. Hier gehen evtl. interessante Skripte unter, bei aktuell über 300 Einträgen

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

                                        @mraiobroker

                                        ich habe mir erlaubt für Skripte ein neues (Folge) Thema aufzumachen.

                                        Die Idee ist gut, danke dafür. Aber Du solltest vielleicht eher das Blockly als Bild zeigen und den Export als File.

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

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

                                          @mraiobroker

                                          ich habe mir erlaubt für Skripte ein neues (Folge) Thema aufzumachen.

                                          Die Idee ist gut, danke dafür. Aber Du solltest vielleicht eher das Blockly als Bild zeigen und den Export als File.

                                          Das sorgt sicher für mehr Übersichtlichkeit. Schaue dass ich es morgen umsetze

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

                                            @mraiobroker : Vielen Dank! Diese Lösung gefällt mir sehr gut.

                                            G 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

                                            908
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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