Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

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

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

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

Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
hardware sungrow sgh10rt modbu
895 Beiträge 132 Kommentatoren 363.9k 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.
  • D Daniel

    Hallo zusammen,
    starre seit Monaten immer mal wieder auf diesen Thread und versuche meinen WR via Modbus in Iobroker auszuwerten. Hatte auch immer wieder das Problem mit reconnects und Fehlern.
    Heute hat es endlich geklappt. Keine Ahnung, woran es am Ende lag… hier meine letzten Schritte:

    1. Modbus-Adapter komplett deinstalliert und neu installiert

    2. Geräte ID 1, IP, Master, kein Alias. Rest wie vorkonfiguriert 86fd6bbc-6ffb-4488-b9c9-e8d38d533b6a-image.png

    3. Ich habe nicht den WiNet-Dongle benutzt (weder Wifi noch den LAN Port des Dongles) sondern den fest verbauten separaten LAN-Port des WRs

    4. Die IP findet ihr bspw. in Fritzbox unter Heimnetz->Netzwerk. Wenn ihr oben rechts über den Button "+/-" die Spalte Mac-Adresse einblendet, sollte ihr die richtige IP recht fix finden, die dazugehörige Mac-Adresse beginnt mit "AC" (Achtung: das ist aber auch beim WiNet-Dongle der Fall)

    5. Um zu checken ob die Kommunikation grundsätzlich funktioniert kann man bspw. Tools wie modbus-cli nutzen:

      modbus 192.168.YYY.ZZ:502 -s 1 4999/H
      Parsed 0 registers definitions from 1 files
      4999: 2022 0x7e6

      Hier wird bspw. das aktuelle Jahr zurück gegeben. Wenn das schon nicht funktioniert, habt ihr vermutlich schon ein Problem mit der Verbindung (Client-ID falsch, IP falsch...). Aber Achtung: Verschwendet aber nicht zu viel Zeit darauf, damit "richtige" Werte wie aktuellen Ertrag auszulesen. Über das CLI-Tool habe ich bis heute keine oder unplausible Werte, man kann da mit Word Swap etc pp. viel falsch machen und denkt dann, es funktioniert irgendwas grundlegendes nicht, obwohl man nur die Datentypen falsch hat

    6. Den Fehler On error: {"errno":-104,"code":"ECONNRESET","syscall":"read"} habe ich anfänglich immer wieder gehabt - und jetzt innerhalb weniger Tage mehrfach. Einmal hat ein Firmware-Update des WR das Problem gelöst (vll. aber auch nur wg. des damit zusammenhängenden Neustarts); gerade eben habe ich in meinem Zyxel-Switch das vom WR kommende LAN-Kabel in einen anderen Port gesteckt - und direkt wieder eine funktionierende Verbindung gehabt. Arbeitshypothese wäre in dem Fall, dass der Switch auf dem Port dicht gemacht hat??

    7. Das TSV Format bzgl. der Register hat sich wohl verändert mittlerweile. Hier der Stand, der bei mir funktioniert hat: https://gist.github.com/dnoegel/543c72ef722365a3934bbad0bb43e222. Wenn ihr dort auf "Raw" klickt, kommt ihr direkt zur Datei.

    8. Versucht nicht zu lange von Hand drei handverlesene Register zum Laufen zu bringen, wenn ihr euch nicht sicher seit, dass ihr die Datentypen richtig getroffen habt: Die TSV funktioniert, bringt das Ding erstmal rein und schaut dann, welche Werte ihr bekommt.

    9. In der Sungrow App kann man wunderbar sehen, welche Ströme von wo nach wo fließen. In den Modbus-Daten sieht man eher, welche Ströme an welche Quelle anliegen. Möchte man sehen, ob die Batterie geladen oder entladen wird, muss man den "Running State" interpretieren (Register 13000). Die Information ist binary, d.h. das Checken á la "Wenn Wert = 25" kann man sich sparen. Hier mein Ansatz in Blockly:


      <xml xmlns="https://developers.google.com/blockly/xml">
      <variables>
      <variable id="Wu=u[10[PLwu)p_g$2ZM">number</variable>
      <variable id="u?6#BJh2Bp((1W3u)Vnf">bitPosition</variable>
      <variable id="Kl3S0K7)wS:E#~kmp_|">dec</variable> </variables> <block type="comment" id="dl.~:*si1DA:Ep6wYJ[%" x="-863" y="-137"> <field name="COMMENT">Run whenever state is changed</field> <next> <block type="on_ext" id="c;*|gCMP^+7VyIN]qj^">
      <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="jk{31$NENu@o]pNzRU">
      <field name="oid">modbus.0.inputRegisters.13000_Running_State</field>
      </shadow>
      </value>
      <statement name="STATEMENT">
      <block type="procedures_callnoreturn" id="~dii,d.PsDx8L!{#5e4G">
      <mutation name="run">
      <arg name="dec"></arg>
      </mutation>
      <value name="ARG0">
      <block type="on_source" id="NE|H~0.b4VGmM[GnS2~?">
      <field name="ATTR">state.val</field>
      </block>
      </value>
      </block>
      </statement>
      <next>
      <block type="comment" id="W}Mu1vp1F6~uBlmI|.C">
      <field name="COMMENT">Run once after script is started</field>
      <next>
      <block type="procedures_callnoreturn" id="/+j6gN2NZ:bV+X~x0ur"> <mutation name="run"> <arg name="dec"></arg> </mutation> <value name="ARG0"> <block type="get_value" id="?)Snd}*[?TT^E)h(x^I#"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.13000_Running_State</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defcustomreturn" id=")7@7$^bI?;9JiXb,CqbC" x="-437" y="-88"> <mutation statements="false"> <arg name="number" varid="Wu=u[10[PLwu)p_g$2ZM"></arg> <arg name="bitPosition" varid="u?6#BJh2Bp((1W3u)Vnf"></arg> </mutation> <field name="NAME">getBit</field> <field name="SCRIPT">ICByZXR1cm4gKG51bWJlciAmICgxIDw8IGJpdFBvc2l0aW9uKSkgPT09IDAgPyAwIDogMTsK</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="lz{Fy{/wE{2-%uVacZd0" x="-437" y="-37"> <mutation statements="false"> <arg name="dec" varid="Kl3S0K7)wS:E#~kmp_|"></arg>
      </mutation>
      <field name="NAME">extractRunningStates</field>
      <field name="SCRIPT">ZnVuY3Rpb24gZGVjVG9CaXQoZGVjLCBiaXRQb3NpdGlvbikgewogICAgcmV0dXJuIChkZWMgJiAoMSA8PCBiaXRQb3NpdGlvbikpID09PSAwID8gZmFsc2UgOiB0cnVlOwp9CgoKc2V0U3RhdGUoIjBfdXNlcmRhdGEuMC5QVi5Qb3dlckdlbmVyYXRlZEZyb21QViIsIGRlY1RvQml0KGRlYywgMCksIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkJhdHRlcnlDaGFyZ2luZyIsIGRlY1RvQml0KGRlYywgMSksIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkJhdHRlcnlEaXNjaGFyZ2luZyIsIGRlY1RvQml0KGRlYywgMiksIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkxvYWRBY3RpdmUiLCBkZWNUb0JpdChkZWMsIDMpLCB0cnVlKTsKc2V0U3RhdGUoIjBfdXNlcmRhdGEuMC5QVi5Qb3dlckZlZWRJbnRvR3JpZCIsIGRlY1RvQml0KGRlYywgNCksIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLlBvd2VySW1wb3J0RnJvbUdyaWQiLCBkZWNUb0JpdChkZWMsIDUpLCB0cnVlKTsKc2V0U3RhdGUoIjBfdXNlcmRhdGEuMC5QVi5Qb3dlckdlbmVyYXRlZEZyb21Mb2FkIiwgZGVjVG9CaXQoZGVjLCA3KSwgdHJ1ZSk7Cg==</field>
      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
      </block>
      <block type="procedures_defnoreturn" id="vv(U!g(@pnn)8_.{bCV|" x="-388" y="163">
      <mutation>
      <arg name="dec" varid="Kl3S0K7)wS:E#~kmp_|"></arg> </mutation> <field name="NAME">debug output</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="4Kc|yjIOj/d!+rX^eB8k"> <field name="COMMENT">create some debug messages so we can check state changes in the log after the fact</field> <next> <block type="debug" id="KOrPE~?_|7q-iX+hf9B7"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="qi6ijIzs)8YkGt3mXbyd"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="sQoBJpPXUR}I,yDnYLzU"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="@[Qr;#TN3?QNNtRdBFJb"> <field name="TEXT">Power generation</field> </block> </value> <value name="ADD1"> <block type="procedures_callcustomreturn" id="[di$veE=W)etZ1N1csD!"> <mutation name="getBit"> <arg name="number"></arg> <arg name="bitPosition"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="!.K$T:bqj+}ijHEBEu1O"> <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field>
      </block>
      </value>
      <value name="ARG1">
      <block type="math_number" id="[?#(KLA~d_4od@i%HKRE">
      <field name="NUM">0</field>
      </block>
      </value>
      </block>
      </value>
      </block>
      </value>
      <next>
      <block type="debug" id=".tDzA6hZ]hWm/Q1Ki+C}">
      <field name="Severity">log</field>
      <value name="TEXT">
      <shadow type="text">
      <field name="TEXT">test</field>
      </shadow>
      <block type="text_join" id="9_lIMrC@kQZHlIS.BX5"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="+0Y)usl;k0!LReL=@1TA"> <field name="TEXT">Battery charging</field> </block> </value> <value name="ADD1"> <block type="procedures_callcustomreturn" id="l-(+Hf/C:1.Pr$1TME!">
      <mutation name="getBit">
      <arg name="number"></arg>
      <arg name="bitPosition"></arg>
      </mutation>
      <value name="ARG0">
      <block type="variables_get" id="]k8{NSg3:qwE6y~~PPUG">
      <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field> </block> </value> <value name="ARG1"> <block type="math_number" id="f|p*H^X]~uRfJ4zwy{V]"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <next> <block type="debug" id="#o:4EZCjL=5M?Gw+0O.i"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="OIyVbASBmVYSEM=oZSMm"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="YkP-(f;KKjkroM[%{a;?"> <field name="TEXT">Battery discharging</field> </block> </value> <value name="ADD1"> <block type="procedures_callcustomreturn" id="pGmRj}_+$eQxsP,i1O@L"> <mutation name="getBit"> <arg name="number"></arg> <arg name="bitPosition"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="VZ2rjX0pe@PD-b0EK.@n"> <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field>
      </block>
      </value>
      <value name="ARG1">
      <block type="math_number" id="^/WwB;Scl3(cF8[3jylF">
      <field name="NUM">2</field>
      </block>
      </value>
      </block>
      </value>
      </block>
      </value>
      <next>
      <block type="debug" id="2=ESEy@?o=2!#~*4.[p"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="SrIP5yY+X.D22D[VrlP$"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="M5Sk=a6?/W8mc@|rtDHZ"> <field name="TEXT">Positive load</field> </block> </value> <value name="ADD1"> <block type="procedures_callcustomreturn" id="UCHG|NH^a829VlS_FOc["> <mutation name="getBit"> <arg name="number"></arg> <arg name="bitPosition"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="Mrs-RQx3Z0}OX1FVc!+c"> <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field>
      </block>
      </value>
      <value name="ARG1">
      <block type="math_number" id="3oaU:Voj|5J0Fn$KdP=^">
      <field name="NUM">3</field>
      </block>
      </value>
      </block>
      </value>
      </block>
      </value>
      <next>
      <block type="debug" id="8
      ~@Ywry?/piw*O}+,=]">
      <field name="Severity">log</field>
      <value name="TEXT">
      <shadow type="text">
      <field name="TEXT">test</field>
      </shadow>
      <block type="text_join" id="K,z(Z;tM4v-MVT)=sh"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="QsKlyP=k#wB.!q2W+XJ">
      <field name="TEXT">Power feed into the grid</field>
      </block>
      </value>
      <value name="ADD1">
      <block type="procedures_callcustomreturn" id="aknN
      P^vup+EdTLM6/yn">
      <mutation name="getBit">
      <arg name="number"></arg>
      <arg name="bitPosition"></arg>
      </mutation>
      <value name="ARG0">
      <block type="variables_get" id="0QUz2T3lebdal%Stjha^">
      <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field> </block> </value> <value name="ARG1"> <block type="math_number" id="d5~PH;7@M7kTud**ES.">
      <field name="NUM">4</field>
      </block>
      </value>
      </block>
      </value>
      </block>
      </value>
      <next>
      <block type="debug" id="s[=~4,hPHDd0]0YAO8|u">
      <field name="Severity">log</field>
      <value name="TEXT">
      <shadow type="text">
      <field name="TEXT">test</field>
      </shadow>
      <block type="text_join" id="X9{#rK3QZb$[550!GD$"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="Oe-,=fU/6IGKG3v,/t+0"> <field name="TEXT">Power from the grid</field> </block> </value> <value name="ADD1"> <block type="procedures_callcustomreturn" id="EGn+kHA^EQ1XRJhx!Vhb"> <mutation name="getBit"> <arg name="number"></arg> <arg name="bitPosition"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="}2agbC4wrjiK^REZrT={"> <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field>
      </block>
      </value>
      <value name="ARG1">
      <block type="math_number" id=":fd,9cSXwq[{cx76A-+}">
      <field name="NUM">5</field>
      </block>
      </value>
      </block>
      </value>
      </block>
      </value>
      <next>
      <block type="debug" id="hOK+$jW(m-QrUr#W|/n@">
      <field name="Severity">log</field>
      <value name="TEXT">
      <shadow type="text">
      <field name="TEXT">test</field>
      </shadow>
      <block type="text_join" id="QJDY}eje)+|3SUH(BZyM">
      <mutation items="2"></mutation>
      <value name="ADD0">
      <block type="text" id="hj9k)mHycGoRx9vHO]Q{">
      <field name="TEXT">Power from load</field>
      </block>
      </value>
      <value name="ADD1">
      <block type="procedures_callcustomreturn" id="Rk4r]0=rc#(qd]Nqjds$">
      <mutation name="getBit">
      <arg name="number"></arg>
      <arg name="bitPosition"></arg>
      </mutation>
      <value name="ARG0">
      <block type="variables_get" id="m,$d6J}Ic:=mV:|i0B58">
      <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field> </block> </value> <value name="ARG1"> <block type="math_number" id=":^V4s@UVYMGm/ada=3N">
      <field name="NUM">7</field>
      </block>
      </value>
      </block>
      </value>
      </block>
      </value>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </statement>
      </block>
      <block type="procedures_defnoreturn" id="ILxxz6e}u[fcDIeO6oXT" x="-812" y="212">
      <mutation>
      <arg name="dec" varid="Kl3S0K7)wS:E#~kmp_`|"></arg>
      </mutation>
      <field name="NAME">run</field>
      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
      <statement name="STACK">
      <block type="procedures_callcustomnoreturn" id="j|y@bpDyP5[;xE)~RRQ[">
      <mutation name="extractRunningStates">
      <arg name="dec"></arg>
      </mutation>
      <value name="ARG0">
      <block type="variables_get" id="Q=XjjZ?bay6J1^X4EO)2">
      <field name="VAR" id="Kl3S0K7)wS:E#~kmp_`|">dec</field>
      </block>
      </value>
      <next>
      <block type="procedures_callnoreturn" id="-0-R2zP[?Peo2o)AH{B0">
      <mutation name="debug output">
      <arg name="dec"></arg>
      </mutation>
      <value name="ARG0">
      <block type="variables_get" id=")ehVkoDs8KN([lz_?.j.">
      <field name="VAR" id="Kl3S0K7)wS:E#~kmp_`|">dec</field>
      </block>
      </value>
      </block>
      </next>
      </block>
      </statement>
      </block>
      </xml>

    Hoffe das hilft etwas weiter. Vielen Dank auch nochmal an @Atlantis fürs Zusammentragen der Infos + alle anderen die mitüberlegt und mitrecherchiert haben!

    Daniel

    F Offline
    F Offline
    Flieder
    schrieb am zuletzt editiert von Flieder
    #273

    @daniel Ich beabsichte mir auch einen WG SGH10RT mit Speicher zuzulegen.
    Eine generelle Frage ist für mich: kann der Zählerwert aus IOBroker per Modbus übergeben werden.
    Ich möchte ungern mein bestehendes Setup bezüglich des Netzzählers ändern.

    D 1 Antwort Letzte Antwort
    0
    • F Flieder

      @daniel Ich beabsichte mir auch einen WG SGH10RT mit Speicher zuzulegen.
      Eine generelle Frage ist für mich: kann der Zählerwert aus IOBroker per Modbus übergeben werden.
      Ich möchte ungern mein bestehendes Setup bezüglich des Netzzählers ändern.

      D Offline
      D Offline
      Daniel
      schrieb am zuletzt editiert von Daniel
      #274

      @flieder Verstehe ich das richtig: Du möchtest Daten, die in Iobroker sind, an andere Systeme übergeben via Modbus? Ich benutze es bisher nur lesend, zu der Richtung kann ich leider nichts sagen. Eigentlich bekommt man seine Daten aus Iobroker ja immer gut raus - will nur bzgl. Modbus nichts falsches sagen, das Protokoll scheint mir seine Tücken zu haben 😅
      Aber wenn das die Idee ist, könntest du die Daten ja auch direkt via Modbus aus dem WR auslesen, vll. habe ich dich noch missverstanden?

      1 Antwort Letzte Antwort
      0
      • D Daniel

        Hallo zusammen,
        starre seit Monaten immer mal wieder auf diesen Thread und versuche meinen WR via Modbus in Iobroker auszuwerten. Hatte auch immer wieder das Problem mit reconnects und Fehlern.
        Heute hat es endlich geklappt. Keine Ahnung, woran es am Ende lag… hier meine letzten Schritte:

        1. Modbus-Adapter komplett deinstalliert und neu installiert

        2. Geräte ID 1, IP, Master, kein Alias. Rest wie vorkonfiguriert 86fd6bbc-6ffb-4488-b9c9-e8d38d533b6a-image.png

        3. Ich habe nicht den WiNet-Dongle benutzt (weder Wifi noch den LAN Port des Dongles) sondern den fest verbauten separaten LAN-Port des WRs

        4. Die IP findet ihr bspw. in Fritzbox unter Heimnetz->Netzwerk. Wenn ihr oben rechts über den Button "+/-" die Spalte Mac-Adresse einblendet, sollte ihr die richtige IP recht fix finden, die dazugehörige Mac-Adresse beginnt mit "AC" (Achtung: das ist aber auch beim WiNet-Dongle der Fall)

        5. Um zu checken ob die Kommunikation grundsätzlich funktioniert kann man bspw. Tools wie modbus-cli nutzen:

          modbus 192.168.YYY.ZZ:502 -s 1 4999/H
          Parsed 0 registers definitions from 1 files
          4999: 2022 0x7e6

          Hier wird bspw. das aktuelle Jahr zurück gegeben. Wenn das schon nicht funktioniert, habt ihr vermutlich schon ein Problem mit der Verbindung (Client-ID falsch, IP falsch...). Aber Achtung: Verschwendet aber nicht zu viel Zeit darauf, damit "richtige" Werte wie aktuellen Ertrag auszulesen. Über das CLI-Tool habe ich bis heute keine oder unplausible Werte, man kann da mit Word Swap etc pp. viel falsch machen und denkt dann, es funktioniert irgendwas grundlegendes nicht, obwohl man nur die Datentypen falsch hat

        6. Den Fehler On error: {"errno":-104,"code":"ECONNRESET","syscall":"read"} habe ich anfänglich immer wieder gehabt - und jetzt innerhalb weniger Tage mehrfach. Einmal hat ein Firmware-Update des WR das Problem gelöst (vll. aber auch nur wg. des damit zusammenhängenden Neustarts); gerade eben habe ich in meinem Zyxel-Switch das vom WR kommende LAN-Kabel in einen anderen Port gesteckt - und direkt wieder eine funktionierende Verbindung gehabt. Arbeitshypothese wäre in dem Fall, dass der Switch auf dem Port dicht gemacht hat??

        7. Das TSV Format bzgl. der Register hat sich wohl verändert mittlerweile. Hier der Stand, der bei mir funktioniert hat: https://gist.github.com/dnoegel/543c72ef722365a3934bbad0bb43e222. Wenn ihr dort auf "Raw" klickt, kommt ihr direkt zur Datei.

        8. Versucht nicht zu lange von Hand drei handverlesene Register zum Laufen zu bringen, wenn ihr euch nicht sicher seit, dass ihr die Datentypen richtig getroffen habt: Die TSV funktioniert, bringt das Ding erstmal rein und schaut dann, welche Werte ihr bekommt.

        9. In der Sungrow App kann man wunderbar sehen, welche Ströme von wo nach wo fließen. In den Modbus-Daten sieht man eher, welche Ströme an welche Quelle anliegen. Möchte man sehen, ob die Batterie geladen oder entladen wird, muss man den "Running State" interpretieren (Register 13000). Die Information ist binary, d.h. das Checken á la "Wenn Wert = 25" kann man sich sparen. Hier mein Ansatz in Blockly:


          <xml xmlns="https://developers.google.com/blockly/xml">
          <variables>
          <variable id="Wu=u[10[PLwu)p_g$2ZM">number</variable>
          <variable id="u?6#BJh2Bp((1W3u)Vnf">bitPosition</variable>
          <variable id="Kl3S0K7)wS:E#~kmp_|">dec</variable> </variables> <block type="comment" id="dl.~:*si1DA:Ep6wYJ[%" x="-863" y="-137"> <field name="COMMENT">Run whenever state is changed</field> <next> <block type="on_ext" id="c;*|gCMP^+7VyIN]qj^">
          <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="jk{31$NENu@o]pNzRU">
          <field name="oid">modbus.0.inputRegisters.13000_Running_State</field>
          </shadow>
          </value>
          <statement name="STATEMENT">
          <block type="procedures_callnoreturn" id="~dii,d.PsDx8L!{#5e4G">
          <mutation name="run">
          <arg name="dec"></arg>
          </mutation>
          <value name="ARG0">
          <block type="on_source" id="NE|H~0.b4VGmM[GnS2~?">
          <field name="ATTR">state.val</field>
          </block>
          </value>
          </block>
          </statement>
          <next>
          <block type="comment" id="W}Mu1vp1F6~uBlmI|.C">
          <field name="COMMENT">Run once after script is started</field>
          <next>
          <block type="procedures_callnoreturn" id="/+j6gN2NZ:bV+X~x0ur"> <mutation name="run"> <arg name="dec"></arg> </mutation> <value name="ARG0"> <block type="get_value" id="?)Snd}*[?TT^E)h(x^I#"> <field name="ATTR">val</field> <field name="OID">modbus.0.inputRegisters.13000_Running_State</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defcustomreturn" id=")7@7$^bI?;9JiXb,CqbC" x="-437" y="-88"> <mutation statements="false"> <arg name="number" varid="Wu=u[10[PLwu)p_g$2ZM"></arg> <arg name="bitPosition" varid="u?6#BJh2Bp((1W3u)Vnf"></arg> </mutation> <field name="NAME">getBit</field> <field name="SCRIPT">ICByZXR1cm4gKG51bWJlciAmICgxIDw8IGJpdFBvc2l0aW9uKSkgPT09IDAgPyAwIDogMTsK</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="lz{Fy{/wE{2-%uVacZd0" x="-437" y="-37"> <mutation statements="false"> <arg name="dec" varid="Kl3S0K7)wS:E#~kmp_|"></arg>
          </mutation>
          <field name="NAME">extractRunningStates</field>
          <field name="SCRIPT">ZnVuY3Rpb24gZGVjVG9CaXQoZGVjLCBiaXRQb3NpdGlvbikgewogICAgcmV0dXJuIChkZWMgJiAoMSA8PCBiaXRQb3NpdGlvbikpID09PSAwID8gZmFsc2UgOiB0cnVlOwp9CgoKc2V0U3RhdGUoIjBfdXNlcmRhdGEuMC5QVi5Qb3dlckdlbmVyYXRlZEZyb21QViIsIGRlY1RvQml0KGRlYywgMCksIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkJhdHRlcnlDaGFyZ2luZyIsIGRlY1RvQml0KGRlYywgMSksIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkJhdHRlcnlEaXNjaGFyZ2luZyIsIGRlY1RvQml0KGRlYywgMiksIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLkxvYWRBY3RpdmUiLCBkZWNUb0JpdChkZWMsIDMpLCB0cnVlKTsKc2V0U3RhdGUoIjBfdXNlcmRhdGEuMC5QVi5Qb3dlckZlZWRJbnRvR3JpZCIsIGRlY1RvQml0KGRlYywgNCksIHRydWUpOwpzZXRTdGF0ZSgiMF91c2VyZGF0YS4wLlBWLlBvd2VySW1wb3J0RnJvbUdyaWQiLCBkZWNUb0JpdChkZWMsIDUpLCB0cnVlKTsKc2V0U3RhdGUoIjBfdXNlcmRhdGEuMC5QVi5Qb3dlckdlbmVyYXRlZEZyb21Mb2FkIiwgZGVjVG9CaXQoZGVjLCA3KSwgdHJ1ZSk7Cg==</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          </block>
          <block type="procedures_defnoreturn" id="vv(U!g(@pnn)8_.{bCV|" x="-388" y="163">
          <mutation>
          <arg name="dec" varid="Kl3S0K7)wS:E#~kmp_|"></arg> </mutation> <field name="NAME">debug output</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="comment" id="4Kc|yjIOj/d!+rX^eB8k"> <field name="COMMENT">create some debug messages so we can check state changes in the log after the fact</field> <next> <block type="debug" id="KOrPE~?_|7q-iX+hf9B7"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="qi6ijIzs)8YkGt3mXbyd"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="sQoBJpPXUR}I,yDnYLzU"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="@[Qr;#TN3?QNNtRdBFJb"> <field name="TEXT">Power generation</field> </block> </value> <value name="ADD1"> <block type="procedures_callcustomreturn" id="[di$veE=W)etZ1N1csD!"> <mutation name="getBit"> <arg name="number"></arg> <arg name="bitPosition"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="!.K$T:bqj+}ijHEBEu1O"> <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field>
          </block>
          </value>
          <value name="ARG1">
          <block type="math_number" id="[?#(KLA~d_4od@i%HKRE">
          <field name="NUM">0</field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </value>
          <next>
          <block type="debug" id=".tDzA6hZ]hWm/Q1Ki+C}">
          <field name="Severity">log</field>
          <value name="TEXT">
          <shadow type="text">
          <field name="TEXT">test</field>
          </shadow>
          <block type="text_join" id="9_lIMrC@kQZHlIS.BX5"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="+0Y)usl;k0!LReL=@1TA"> <field name="TEXT">Battery charging</field> </block> </value> <value name="ADD1"> <block type="procedures_callcustomreturn" id="l-(+Hf/C:1.Pr$1TME!">
          <mutation name="getBit">
          <arg name="number"></arg>
          <arg name="bitPosition"></arg>
          </mutation>
          <value name="ARG0">
          <block type="variables_get" id="]k8{NSg3:qwE6y~~PPUG">
          <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field> </block> </value> <value name="ARG1"> <block type="math_number" id="f|p*H^X]~uRfJ4zwy{V]"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> <next> <block type="debug" id="#o:4EZCjL=5M?Gw+0O.i"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="OIyVbASBmVYSEM=oZSMm"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="YkP-(f;KKjkroM[%{a;?"> <field name="TEXT">Battery discharging</field> </block> </value> <value name="ADD1"> <block type="procedures_callcustomreturn" id="pGmRj}_+$eQxsP,i1O@L"> <mutation name="getBit"> <arg name="number"></arg> <arg name="bitPosition"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="VZ2rjX0pe@PD-b0EK.@n"> <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field>
          </block>
          </value>
          <value name="ARG1">
          <block type="math_number" id="^/WwB;Scl3(cF8[3jylF">
          <field name="NUM">2</field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </value>
          <next>
          <block type="debug" id="2=ESEy@?o=2!#~*4.[p"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="SrIP5yY+X.D22D[VrlP$"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="M5Sk=a6?/W8mc@|rtDHZ"> <field name="TEXT">Positive load</field> </block> </value> <value name="ADD1"> <block type="procedures_callcustomreturn" id="UCHG|NH^a829VlS_FOc["> <mutation name="getBit"> <arg name="number"></arg> <arg name="bitPosition"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="Mrs-RQx3Z0}OX1FVc!+c"> <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field>
          </block>
          </value>
          <value name="ARG1">
          <block type="math_number" id="3oaU:Voj|5J0Fn$KdP=^">
          <field name="NUM">3</field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </value>
          <next>
          <block type="debug" id="8
          ~@Ywry?/piw*O}+,=]">
          <field name="Severity">log</field>
          <value name="TEXT">
          <shadow type="text">
          <field name="TEXT">test</field>
          </shadow>
          <block type="text_join" id="K,z(Z;tM4v-MVT)=sh"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="QsKlyP=k#wB.!q2W+XJ">
          <field name="TEXT">Power feed into the grid</field>
          </block>
          </value>
          <value name="ADD1">
          <block type="procedures_callcustomreturn" id="aknN
          P^vup+EdTLM6/yn">
          <mutation name="getBit">
          <arg name="number"></arg>
          <arg name="bitPosition"></arg>
          </mutation>
          <value name="ARG0">
          <block type="variables_get" id="0QUz2T3lebdal%Stjha^">
          <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field> </block> </value> <value name="ARG1"> <block type="math_number" id="d5~PH;7@M7kTud**ES.">
          <field name="NUM">4</field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </value>
          <next>
          <block type="debug" id="s[=~4,hPHDd0]0YAO8|u">
          <field name="Severity">log</field>
          <value name="TEXT">
          <shadow type="text">
          <field name="TEXT">test</field>
          </shadow>
          <block type="text_join" id="X9{#rK3QZb$[550!GD$"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="Oe-,=fU/6IGKG3v,/t+0"> <field name="TEXT">Power from the grid</field> </block> </value> <value name="ADD1"> <block type="procedures_callcustomreturn" id="EGn+kHA^EQ1XRJhx!Vhb"> <mutation name="getBit"> <arg name="number"></arg> <arg name="bitPosition"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="}2agbC4wrjiK^REZrT={"> <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field>
          </block>
          </value>
          <value name="ARG1">
          <block type="math_number" id=":fd,9cSXwq[{cx76A-+}">
          <field name="NUM">5</field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </value>
          <next>
          <block type="debug" id="hOK+$jW(m-QrUr#W|/n@">
          <field name="Severity">log</field>
          <value name="TEXT">
          <shadow type="text">
          <field name="TEXT">test</field>
          </shadow>
          <block type="text_join" id="QJDY}eje)+|3SUH(BZyM">
          <mutation items="2"></mutation>
          <value name="ADD0">
          <block type="text" id="hj9k)mHycGoRx9vHO]Q{">
          <field name="TEXT">Power from load</field>
          </block>
          </value>
          <value name="ADD1">
          <block type="procedures_callcustomreturn" id="Rk4r]0=rc#(qd]Nqjds$">
          <mutation name="getBit">
          <arg name="number"></arg>
          <arg name="bitPosition"></arg>
          </mutation>
          <value name="ARG0">
          <block type="variables_get" id="m,$d6J}Ic:=mV:|i0B58">
          <field name="VAR" id="Kl3S0K7)wS:E#~kmp_|">dec</field> </block> </value> <value name="ARG1"> <block type="math_number" id=":^V4s@UVYMGm/ada=3N">
          <field name="NUM">7</field>
          </block>
          </value>
          </block>
          </value>
          </block>
          </value>
          </block>
          </next>
          </block>
          </next>
          </block>
          </next>
          </block>
          </next>
          </block>
          </next>
          </block>
          </next>
          </block>
          </next>
          </block>
          </statement>
          </block>
          <block type="procedures_defnoreturn" id="ILxxz6e}u[fcDIeO6oXT" x="-812" y="212">
          <mutation>
          <arg name="dec" varid="Kl3S0K7)wS:E#~kmp_`|"></arg>
          </mutation>
          <field name="NAME">run</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          <statement name="STACK">
          <block type="procedures_callcustomnoreturn" id="j|y@bpDyP5[;xE)~RRQ[">
          <mutation name="extractRunningStates">
          <arg name="dec"></arg>
          </mutation>
          <value name="ARG0">
          <block type="variables_get" id="Q=XjjZ?bay6J1^X4EO)2">
          <field name="VAR" id="Kl3S0K7)wS:E#~kmp_`|">dec</field>
          </block>
          </value>
          <next>
          <block type="procedures_callnoreturn" id="-0-R2zP[?Peo2o)AH{B0">
          <mutation name="debug output">
          <arg name="dec"></arg>
          </mutation>
          <value name="ARG0">
          <block type="variables_get" id=")ehVkoDs8KN([lz_?.j.">
          <field name="VAR" id="Kl3S0K7)wS:E#~kmp_`|">dec</field>
          </block>
          </value>
          </block>
          </next>
          </block>
          </statement>
          </block>
          </xml>

        Hoffe das hilft etwas weiter. Vielen Dank auch nochmal an @Atlantis fürs Zusammentragen der Infos + alle anderen die mitüberlegt und mitrecherchiert haben!

        Daniel

        R Offline
        R Offline
        Red2Devil
        schrieb am zuletzt editiert von Red2Devil
        #275

        Hallo zusammen,
        erst mal
        @Atlantis Danke für die tolle Anleitung und das Zusammentragen der Registereinträge.
        @daniel Ebenfalls danke für weitere gute infos.

        Ich bin seit knapp 2 Wochen Besitzer eines WR SH10RT und schließlich seit 2 Tagen ist auch die Batterie angeschlossen.

        Via IoBroker werden die Daten des WRs per Modbus erfolgreich ausgelesen. Ich hatte die Hoffnung das der Running State die korrekten Werte nach Anschluss der Batterie liefern würde - leider nein!
        Dieser bleibt weiter 0.

        Meine Konfig und Daten:
        Modbus Instanz 1.png
        Modbus Instanz 2.png
        ioBroker Running State 0.png

        QModMaster zeigt ebenfalls 0:
        QModMaster_13000.png

        Laut diesem und dem Photovoltaik Forum ist dies wohl ein Problem an der Firmware des WLAN Dongles, das bei mir ebenfalls im Einsatz ist.

        Firmware-Versionen:
        WR Softwareversionen.png
        WiNet-S Version.png

        Meine Frage ist nun:
        Ist ein Wechsel vom Wifi(LAN) Dongle auf den alternativen LAN Port ohne Probleme möglich? Also bleiben die Einstellungen und die Verbinung zur Cloud ohne Eingriff erhalten?
        Hat jemand danach Probleme mit Verbindungsabbrüchen gehabt? In anderen Foren berichten Leute über Timing-Probleme in Kombi mit der Cloud.

        Außerdem zum Thema Firmware:
        Lohnt sich ein Update und ist es empfehlenswert diese regelmäßig einzuspielen oder sind diese eher mit Vorsicht zu genießen?
        Ich kann schlecht bewerten ob meine Firmware-Versionen vom Dongle und vom WR recht aktuell oder eher veraltet sind.

        Danke und Grüße,
        Marcel


        Ergänzung 31.10.2022

        Ich habe es gewagt den LAN Port anzuschließen - allerdings ohne Erfolg.
        Erwartung war: Cloud + Modbus und Running State funktionieren und liefern Ergebnisse.

        Ist-Zustand:
        LAN via Dongle
        IP im Netzwerk: Ja (IP: 10.55.0.1)
        Cloud: Ja
        Modbus: Ja
        Running State: Nein (= 0)

        Test-Zustand 1:
        LAN an separaten Port + Dongle angeschlossen aber ohne Verbindung
        IP im Netzwerk: Ja (IP: 10.55.0.2)
        Cloud: Nein
        Modbus: Keine Verbindung
        Running State: unbekannt

        Test-Zustand 2:
        LAN an separaten Port + Dongle angeschlossen mit WLAN verbunden
        IP im Netzwerk: (JA) nur Dongle (IP: 10.55.0.3)
        Cloud: Nein
        Modbus: Nein
        Running State: unbekannt

        Test-Zustand 3:
        LAN an separaten Port + Dongle angeschlossen mit LAN verbunden
        IP im Netzwerk: (JA) nur Dongle (IP: 10.55.0.1)
        Cloud: JA
        Modbus: JA (via Dongle)
        Running State: weiterhin 0, da Zugriff via Dongle

        Der separate LAN Port scheint bei mir nur eine IP Adresse im Netz zu bekommen, wenn der Dongle weder LAN noch WLAN Zugriff hat. Die Cloud bekommt dann aber keine Daten mehr. Zugriff via QModMaster auf LAN IP hat aber trotzdem nicht geklappt.

        Hat jemand eine Idee und kann mir helfen, wie ich evt. ohne Dongle am LAN Port Cloud Zugriff + Modbus eingerichtet bekomme und hoffentlich dann auch den Running_State auslesen kann?

        M 1 Antwort Letzte Antwort
        0
        • A Atlantis

          Nachdem ich sonst immer nur mit Fragen komme, möchte ich hiermit mal was zurück geben.

          Habe mit viel Try & Error den SUngrow WR Typ SGH10RT (10Kw Hybrid) mit Modbus eingebunden.

          Wenn ich Zeit habe werde ich ein komplettes How To dazu verfassen, sollte jemand schon vorher Bedarf haben einfach melden.

          Gruss

          Atlantis

          T Offline
          T Offline
          tuning
          schrieb am zuletzt editiert von
          #276

          @atlantis

          Hallo, ich habe den SMA Wechselrichter.
          Der ist von der Hardware Baugleich.

          Das Auslesen diverser Modbus daten funktioniert mit Iobroker
          Jetzt würde ich gerne die Batterie Lade und Entladeleistung begrenzen.
          Die sollte über die Register 44433 CmpBMS.BatChaMaxW und 44437 CmpBMS.BatDschMaxW funktionieren.
          Leider nimmt der Wechselrichter es nicht an wenn ich unter Objekte z.B. 2000W eintrage.
          Hast du ne Idee?

          T G 2 Antworten Letzte Antwort
          0
          • B Offline
            B Offline
            Bricoleur
            schrieb am zuletzt editiert von
            #277

            Hallo liebe Foristen,
            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.

            Hierzu gleich meine erste Frage:
            Ich habe beide Schnittstellen des WR (LAN bzw. WiNet-S) ausprobiert. LAN liefert plausible Daten, dis- bzw. reconnected aber im Sekundentakt. Ist das so normal?
            Beim Auslesen mit WiNet-S bleibt die Verbindung permanent, dafür sind die gelieferten Daten unsinnig.

            Im nächsten Schritt möchte ich die Daten (analog der Darstellung in der isolar-cloud) visualisieren.

            Vielleicht möchte mir ja der eine oder andere hier ein Tip geben, damit ich mich nicht zu tief in "trial-and-error" verstricke;).

            Besten Dank schon mal im Voraus!

            O G 2 Antworten Letzte Antwort
            0
            • B Bricoleur

              Hallo liebe Foristen,
              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.

              Hierzu gleich meine erste Frage:
              Ich habe beide Schnittstellen des WR (LAN bzw. WiNet-S) ausprobiert. LAN liefert plausible Daten, dis- bzw. reconnected aber im Sekundentakt. Ist das so normal?
              Beim Auslesen mit WiNet-S bleibt die Verbindung permanent, dafür sind die gelieferten Daten unsinnig.

              Im nächsten Schritt möchte ich die Daten (analog der Darstellung in der isolar-cloud) visualisieren.

              Vielleicht möchte mir ja der eine oder andere hier ein Tip geben, damit ich mich nicht zu tief in "trial-and-error" verstricke;).

              Besten Dank schon mal im Voraus!

              O Offline
              O Offline
              ostseeskipper
              schrieb am zuletzt editiert von
              #278

              @bricoleur

              Die Übertragung zur Cloud übers WiNet-S
              Den LAN Anschluss am SH10RT für Modbus. Nicht alle Daten abfragen die gehen sondern nur die die du wirklich brauchst und lass dem WR 5 - 10 sec Pause zwischen den Abfragen.

              Meine Vis über 3 WR sieht so aus
              35c672c1-175c-415c-b33b-d65f75cf7f55-grafik.png

              Die Strings selber so
              fba644e8-ee0c-44d3-8519-323c76981f65-grafik.png

              plus die des Energiemanagments
              a4c1ee52-69d1-4ec4-8e40-0c36f410afc2-grafik.png

              Nur mal so als Anregung. Modbus Adapter, SQL Adapter und widgets von @Scrounger

              1 Antwort Letzte Antwort
              0
              • B Offline
                B Offline
                Bricoleur
                schrieb am zuletzt editiert von
                #279

                @ostseeskipper
                danke für die Tips!

                Unterbricht denn der Modbusadapter auch bei dir alle paar Sekunden die Verbindung, wenn du den LAN-Port zur Abfrage verwendest?

                Mit dem SQL-Adapter und den Widgets von Scrounger werde ich mich jetzt mal befassen.

                Verwendest du für deine Visualisierung auch den VIS-Adapter?

                O 1 Antwort Letzte Antwort
                0
                • B Bricoleur

                  @ostseeskipper
                  danke für die Tips!

                  Unterbricht denn der Modbusadapter auch bei dir alle paar Sekunden die Verbindung, wenn du den LAN-Port zur Abfrage verwendest?

                  Mit dem SQL-Adapter und den Widgets von Scrounger werde ich mich jetzt mal befassen.

                  Verwendest du für deine Visualisierung auch den VIS-Adapter?

                  O Offline
                  O Offline
                  ostseeskipper
                  schrieb am zuletzt editiert von
                  #280

                  @bricoleur
                  Habe keine Modbus Unterbrechungm nicht im SH10(LAN Port) und auch nicht im SG10.
                  Nur der kleine SG3 mit einen EthernetStick steigt genau alle 5 Minuten aus wenn er versucht nach Hause zu funken.
                  SQL nehm ich für die Datenspeicherung. da gibts aber auch noch anderes.
                  Ja die Visualisierung ist mit VIS.

                  JollyJ 1 Antwort Letzte Antwort
                  0
                  • O ostseeskipper

                    @bricoleur
                    Habe keine Modbus Unterbrechungm nicht im SH10(LAN Port) und auch nicht im SG10.
                    Nur der kleine SG3 mit einen EthernetStick steigt genau alle 5 Minuten aus wenn er versucht nach Hause zu funken.
                    SQL nehm ich für die Datenspeicherung. da gibts aber auch noch anderes.
                    Ja die Visualisierung ist mit VIS.

                    JollyJ Offline
                    JollyJ Offline
                    Jolly
                    schrieb am zuletzt editiert von Jolly
                    #281

                    Servus Zusammen,

                    ich habe einen SH10RT schon länger erfolgreich über Modubus eingebunden.
                    Jetzt wollte ich einen SG10RT über den WiNet-S Stick ebenfalls einbinden.
                    Hab alles gleich gemacht, nur natürlich mit einer anderen IP und Modubus ID.
                    Verbindung wird im IO-Broker als "true" angezeigt. Aber leider sind alle Werte "0".
                    Kann man für den SG10RT die gleichen Eingangsregister verwenden wie für den SH10RT ?

                    Danke schon mal im Vorraus :)

                    O 1 Antwort Letzte Antwort
                    0
                    • JollyJ Jolly

                      Servus Zusammen,

                      ich habe einen SH10RT schon länger erfolgreich über Modubus eingebunden.
                      Jetzt wollte ich einen SG10RT über den WiNet-S Stick ebenfalls einbinden.
                      Hab alles gleich gemacht, nur natürlich mit einer anderen IP und Modubus ID.
                      Verbindung wird im IO-Broker als "true" angezeigt. Aber leider sind alle Werte "0".
                      Kann man für den SG10RT die gleichen Eingangsregister verwenden wie für den SH10RT ?

                      Danke schon mal im Vorraus :)

                      O Offline
                      O Offline
                      ostseeskipper
                      schrieb am zuletzt editiert von
                      #282

                      @jolly
                      Der SG10RT hat andere Register.
                      Hier z.B. meine Leseregister, schreibend macht da ja kein Sinn

                      _address	name	description	unit	type	len	factor	offset	formula	role	room	cw	isScale
                      5002	Daily_Output_Energy	Eigene Energienutzung heute (PV & Akku)	Kwh	uint16be	1	0.1	0		value		false	false
                      5003	Total_Output_Energy	Eigene Energienutzung gesamt (PV & Akku)	Kwh	uint32sw	2	1	0		value		false	false
                      5005	Total_running_time	Betriebstunden	h	uint16be	1	1	0		value		false	false
                      5007	Inside_Temperature	Innenlufttemperatur	°C	int16be	1	0.1	0		value		false	false
                      5010	MPPT_1_Voltage	MPPT1 Spannung	V	uint16be	1	0.1	0		value		false	false
                      5011	MPPT_1_Current	MPPT1 Strom	A	uint16be	1	0.1	0		value		false	false
                      5012	MPPT_2_Voltage	MPPT 2 Spannung	V	uint16be	1	0.1	0		value		false	false
                      5013	MPPT_2_Current	MPPT 2 Strom	A	uint16be	1	0.1	0		value		false	false
                      5016	Total_DC_Power	PV-Leistung aktuell	W	uint32sw	2	1	0		value		false	false
                      5030	Total_active_power	Total active power	W	uint32sw	2	1	0		value		false	false
                      

                      Als TSV Daten einfügen, dann sollte es so aussehen.
                      701c6ffd-0abe-4c6e-b4c4-5b8feb8276b7-grafik.png

                      JollyJ 1 Antwort Letzte Antwort
                      0
                      • O ostseeskipper

                        @jolly
                        Der SG10RT hat andere Register.
                        Hier z.B. meine Leseregister, schreibend macht da ja kein Sinn

                        _address	name	description	unit	type	len	factor	offset	formula	role	room	cw	isScale
                        5002	Daily_Output_Energy	Eigene Energienutzung heute (PV & Akku)	Kwh	uint16be	1	0.1	0		value		false	false
                        5003	Total_Output_Energy	Eigene Energienutzung gesamt (PV & Akku)	Kwh	uint32sw	2	1	0		value		false	false
                        5005	Total_running_time	Betriebstunden	h	uint16be	1	1	0		value		false	false
                        5007	Inside_Temperature	Innenlufttemperatur	°C	int16be	1	0.1	0		value		false	false
                        5010	MPPT_1_Voltage	MPPT1 Spannung	V	uint16be	1	0.1	0		value		false	false
                        5011	MPPT_1_Current	MPPT1 Strom	A	uint16be	1	0.1	0		value		false	false
                        5012	MPPT_2_Voltage	MPPT 2 Spannung	V	uint16be	1	0.1	0		value		false	false
                        5013	MPPT_2_Current	MPPT 2 Strom	A	uint16be	1	0.1	0		value		false	false
                        5016	Total_DC_Power	PV-Leistung aktuell	W	uint32sw	2	1	0		value		false	false
                        5030	Total_active_power	Total active power	W	uint32sw	2	1	0		value		false	false
                        

                        Als TSV Daten einfügen, dann sollte es so aussehen.
                        701c6ffd-0abe-4c6e-b4c4-5b8feb8276b7-grafik.png

                        JollyJ Offline
                        JollyJ Offline
                        Jolly
                        schrieb am zuletzt editiert von
                        #283

                        @ostseeskipper

                        Danke für die Antwort. Leider war das nicht das Problem. Bekomme weiterhin keine Werte.

                        Es werde auch keine Adressen für die einzelnen Register angelegt sondern nur NaN.
                        Hat jemand eine Idee was ich hier falsch mache ?
                        Screenshot 2022-11-15 084513.png

                        O 1 Antwort Letzte Antwort
                        0
                        • JollyJ Jolly

                          @ostseeskipper

                          Danke für die Antwort. Leider war das nicht das Problem. Bekomme weiterhin keine Werte.

                          Es werde auch keine Adressen für die einzelnen Register angelegt sondern nur NaN.
                          Hat jemand eine Idee was ich hier falsch mache ?
                          Screenshot 2022-11-15 084513.png

                          O Offline
                          O Offline
                          ostseeskipper
                          schrieb am zuletzt editiert von
                          #284

                          @jolly
                          Wie sehen denn deine Grundeinstellungen aus?
                          02c07559-debd-4681-8cdc-bbefd49eec8d-grafik.png
                          So hab ich keine Probleme.

                          Was sagt das Log im Debug Modus?

                          JollyJ 1 Antwort Letzte Antwort
                          0
                          • O ostseeskipper

                            @jolly
                            Wie sehen denn deine Grundeinstellungen aus?
                            02c07559-debd-4681-8cdc-bbefd49eec8d-grafik.png
                            So hab ich keine Probleme.

                            Was sagt das Log im Debug Modus?

                            JollyJ Offline
                            JollyJ Offline
                            Jolly
                            schrieb am zuletzt editiert von
                            #285

                            @ostseeskipper
                            Habe den "Fehler" gefunden :)
                            Ich bin davon ausgegangen wenn ich 2 Wechselrichter am Modbus habe muss ich auch 2 verschiedene Geräte ID´s vergeben. Deshalb hab ich dem Hybridwechselrichter die ID: 1 gegeben und dem 2. Wechselrichter die ID:2.
                            Jetzt habe ich dem 2. Wechselrichter auch die ID: 1 gegeben nun klappt es komischerweise.

                            O 1 Antwort Letzte Antwort
                            0
                            • JollyJ Jolly

                              @ostseeskipper
                              Habe den "Fehler" gefunden :)
                              Ich bin davon ausgegangen wenn ich 2 Wechselrichter am Modbus habe muss ich auch 2 verschiedene Geräte ID´s vergeben. Deshalb hab ich dem Hybridwechselrichter die ID: 1 gegeben und dem 2. Wechselrichter die ID:2.
                              Jetzt habe ich dem 2. Wechselrichter auch die ID: 1 gegeben nun klappt es komischerweise.

                              O Offline
                              O Offline
                              ostseeskipper
                              schrieb am zuletzt editiert von
                              #286

                              @jolly
                              Richtig. Jeder hat seine eigene ID.
                              Mehrere ID's gibts nur per RTU in einer DaisyChain.
                              Wohl aber musst die auch bei TCP die richtige ID einstellen. Die Sungrows haben meisst die 1.

                              1 Antwort Letzte Antwort
                              0
                              • T tuning

                                @atlantis

                                Hallo, ich habe den SMA Wechselrichter.
                                Der ist von der Hardware Baugleich.

                                Das Auslesen diverser Modbus daten funktioniert mit Iobroker
                                Jetzt würde ich gerne die Batterie Lade und Entladeleistung begrenzen.
                                Die sollte über die Register 44433 CmpBMS.BatChaMaxW und 44437 CmpBMS.BatDschMaxW funktionieren.
                                Leider nimmt der Wechselrichter es nicht an wenn ich unter Objekte z.B. 2000W eintrage.
                                Hast du ne Idee?

                                T Offline
                                T Offline
                                TimoS.
                                schrieb am zuletzt editiert von
                                #287

                                @tuning Sicher, dass du die richtige Adresse hast? Ich habe hier eine Beschreibung der Modbus-Schnittstelle und dort ist die Adresse:
                                40799 Maximale Batterieentladeleistung, in W

                                https://forum.iobroker.net/assets/uploads/files/721_sma_modbus-tb-de-13.pdf

                                1 Antwort Letzte Antwort
                                0
                                • R Offline
                                  R Offline
                                  roughestboy
                                  schrieb am zuletzt editiert von
                                  #288

                                  Weiß jemand, ob auch der Sungrow SG 6.0 RT (nicht SGH) mit modbus eingebunden werden kann ? Die SGH-Typen scheint es ja nicht mehr zu geben, finde ich auf der Website der Firma nicht mehr.

                                  O 1 Antwort Letzte Antwort
                                  0
                                  • R roughestboy

                                    Weiß jemand, ob auch der Sungrow SG 6.0 RT (nicht SGH) mit modbus eingebunden werden kann ? Die SGH-Typen scheint es ja nicht mehr zu geben, finde ich auf der Website der Firma nicht mehr.

                                    O Offline
                                    O Offline
                                    ostseeskipper
                                    schrieb am zuletzt editiert von
                                    #289

                                    @roughestboy
                                    einfach etwas weiter oben lesen:innocent:

                                    B 1 Antwort Letzte Antwort
                                    0
                                    • O ostseeskipper

                                      @roughestboy
                                      einfach etwas weiter oben lesen:innocent:

                                      B Offline
                                      B Offline
                                      Bricoleur
                                      schrieb am zuletzt editiert von
                                      #290

                                      Weiß jemand, ob es im Holding-Register der SHxxRT Adressen gibt, mit denen man die (statische und/oder) dynamische Wirkleistungsbegrenzung auslesen und den Wert ggf. überschreiben kann? Ich finde da bisher nur eine Adresse, die anzeigt, ob eine Wirkleistungsbegrenzung überhaupt aktiviert ist.

                                      1 Antwort Letzte Antwort
                                      0
                                      • Q quorle

                                        @ostseeskipper

                                        Ich denke du hast einen Fehler in der Registeradresse.
                                        Wenn ich der Anleitung zum Beispiel 13030 steht, musst du -1 machen. Das entspricht dann 13029.

                                        Hab leider nur gerade einen Handyscreenshot. Aber einsieht es bei mir aus:

                                        9A7BDF90-84AD-49BC-AD72-F15B951B723F.png

                                        J Offline
                                        J Offline
                                        Joachimm
                                        schrieb am zuletzt editiert von
                                        #291

                                        stimmt genau

                                        1 Antwort Letzte Antwort
                                        0
                                        • M Offline
                                          M Offline
                                          MRaioBroker
                                          schrieb am zuletzt editiert von
                                          #292

                                          Hi zusammen,

                                          mein SH10RT wird gerade montiert, bin schon gespannt auf die Einbindung, vielen Dank an alle die hier Input geliefert haben!

                                          Geil wäre es natürlich, wenn man das Ganze in einen eigenen Sungrow Modbus Adapter gießen könnte, wie das beim Schwoerer Ventcube Adapter getan wurde. Modbus Basis, IP Adresse rein, ggf. Modell auswählen und der Rest geschieht im backround. So klappt das bei meiner SchwörerHaus Heizung, alle
                                          Datenpunkte werden automatisch erstellt und gezogen.

                                          Macht auch Aktualisierungen leichter.
                                          Leider reicht mein Fachwissen nicht aus, um das bei Github anzufragen, evtl. sind ja hier Spezialisten zu finden, die Interesse an einem solchen Projekt hätten. Für mich sicher zu spät, aber evtl. für künftige Neulinge spannend.

                                          T 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

                                          611

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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