Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Modbus Problem Labornetzteil

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Modbus Problem Labornetzteil

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      io-taster @Thojo last edited by

      @thorsten-jochem

      Hallo,

      gucke dir mal den link an:
      https://forum.iobroker.net/topic/46948/leistungssteuerung-pv-wechselrichter-0-einspeisung/9

      A 1 Reply Last reply Reply Quote 0
      • A
        aikonflo @io-taster last edited by

        Hallo Zusammen,

        das Thema klingt sehr interessant....,
        aber ganz blick ich da noch nicht durch. 🤔

        Welcher Adapter wird den da jetzt gebraucht ?

        @michael2142 sagte in Modbus Problem Labornetzteil:

        @io-taster

        Hab einfach einen günstigen Rs485 zu usb genkommen und den dirket angesteckt am pi4. hat eigendlich auf anhieb funktioniert. Nur mit den Werten hatte ich anfangs Probleme darum dieser Forumgsbeitrag.
        Converter habe ich diesen hier : shorturl.at/hlGR0

        Der hat 4 Klemmern

        @thorsten-jochem sagte in Modbus Problem Labornetzteil:

        @io-taster
        Ich hab den genommen, der dabei war. Der hat auch auf einem WindowsPC mit der Software vom Hersteller funktioniert.
        shorturl.at/fqyEJ

        Der hat nur 2 Klemmen.

        Ich möchte mir den DPM8620 holen und laut Beschreibung ist da kein Adapter dabei.

        Welchen Adapter habt ihr im ioBroker verwendet ?
        War das der:
        38ca1af7-2ea2-4b28-bfc7-3dfdfca2abb5-image.png

        Gibt es beim konfigurieren irgendetwas zu beachten oder kann ich mich da and die Bilder
        von @thorsten-jochem halten.

        Sorry für die fragen, aber mit "Modbus" hab ich hier zum ersten mal zu tun... da blick ich überhaut noch nicht durch.

        Zum Thema Skript hätte ich mir folgendes gedacht.
        2947a17c-83af-4dbf-95e7-73f873eab27a-image.png

        <xml xmlns="https://developers.google.com/blockly/xml">
         <variables>
           <variable id="#Y~|dVd0]wJ*Kg[b@+=+">Spannung Wechselrichter</variable>
           <variable id="]dTt{X.V]6@Bd,*?FtfR">max Einspeisung (Watt)</variable>
           <variable id="E.akL_3P2[PY7Dl=X6q_">max Ampere</variable>
           <variable id="o=ET6W5z6taM.gI!-CLo">Überschuss</variable>
           <variable id="62%O+/Q2o;:1DUb)~[DD">Bedarf</variable>
           <variable id="GuT#)C%8q`Vrq$y;ak_C">DC/DC Ampere</variable>
         </variables>
         <block type="variables_set" id="e|Aw]U5T5dFXtxLQMu-/" x="-313" y="38">
           <field name="VAR" id="#Y~|dVd0]wJ*Kg[b@+=+">Spannung Wechselrichter</field>
           <value name="VALUE">
             <block type="math_number" id="j/d;IXyt!UicW$_CgWo?">
               <field name="NUM">36</field>
             </block>
           </value>
           <next>
             <block type="variables_set" id="}0F1(ZVR9rQh2O:~Bv86">
               <field name="VAR" id="]dTt{X.V]6@Bd,*?FtfR">max Einspeisung (Watt)</field>
               <value name="VALUE">
                 <block type="math_number" id="C=Zx]Iy_?yP!f(!OuBwU">
                   <field name="NUM">432</field>
                 </block>
               </value>
               <next>
                 <block type="variables_set" id="%Z[H*:^NV-V?Je+mbL#I">
                   <field name="VAR" id="E.akL_3P2[PY7Dl=X6q_">max Ampere</field>
                   <value name="VALUE">
                     <block type="math_rndfixed" id="*qxiUuWMjGGH/jy2nm5A">
                       <field name="n">1</field>
                       <value name="x">
                         <shadow type="math_number" id="?*~QY#-zvtcfw0]Km(EU">
                           <field name="NUM">3.1234</field>
                         </shadow>
                         <block type="math_arithmetic" id="Q[*As#2r?$Iif;^]7?%#">
                           <field name="OP">DIVIDE</field>
                           <value name="A">
                             <shadow type="math_number" id="EBkUF=ZWzf5JK//,LIEJ">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="variables_get" id="_~x50k3AG!+LJRy?gE-(">
                               <field name="VAR" id="]dTt{X.V]6@Bd,*?FtfR">max Einspeisung (Watt)</field>
                             </block>
                           </value>
                           <value name="B">
                             <shadow type="math_number" id="Fzea;+WGzPE1)5PkQh,W">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="variables_get" id="mn]ffDU[o!@uL,/(Z|%q">
                               <field name="VAR" id="#Y~|dVd0]wJ*Kg[b@+=+">Spannung Wechselrichter</field>
                             </block>
                           </value>
                         </block>
                       </value>
                     </block>
                   </value>
                   <next>
                     <block type="on_ext" id="egBaJA9gWKR-tP$]z^PU">
                       <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="vhKdy*6|7UPYZ/;9x[4*">
                           <field name="oid">0_userdata.0.Strom.Shelly_3EM_gesamt</field>
                         </shadow>
                       </value>
                       <statement name="STATEMENT">
                         <block type="variables_set" id="l0X$[%9Vmt;F^AlH6zMn">
                           <field name="VAR" id="o=ET6W5z6taM.gI!-CLo">Überschuss</field>
                           <value name="VALUE">
                             <block type="get_value" id="7`RV}t;*OWu]{A=l=4@m">
                               <field name="ATTR">val</field>
                               <field name="OID">0_userdata.0.TEST.Netzeinspeisung</field>
                             </block>
                           </value>
                           <next>
                             <block type="controls_if" id="vqa-4aIg~Xe!n5|65Deq">
                               <mutation else="1"></mutation>
                               <value name="IF0">
                                 <block type="logic_compare" id="puD,ubbz}.US/+s*jXGH">
                                   <field name="OP">GT</field>
                                   <value name="A">
                                     <block type="get_value" id="[,J6d_;#l(Fb8MnssJil">
                                       <field name="ATTR">val</field>
                                       <field name="OID">0_userdata.0.Strom.Shelly_3EM_gesamt</field>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <block type="variables_get" id=",zeANbt(VJ,qx3/KO8M-">
                                       <field name="VAR" id="]dTt{X.V]6@Bd,*?FtfR">max Einspeisung (Watt)</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <statement name="DO0">
                                 <block type="variables_set" id=")t!DCN|?B]?Zh(Pxk1Aj">
                                   <field name="VAR" id="62%O+/Q2o;:1DUb)~[DD">Bedarf</field>
                                   <value name="VALUE">
                                     <block type="variables_get" id="c;3n4Hu(Tz+ak.!X?_F^">
                                       <field name="VAR" id="]dTt{X.V]6@Bd,*?FtfR">max Einspeisung (Watt)</field>
                                     </block>
                                   </value>
                                 </block>
                               </statement>
                               <statement name="ELSE">
                                 <block type="variables_set" id="}eD88PA|UsRx-R0MNwf/">
                                   <field name="VAR" id="62%O+/Q2o;:1DUb)~[DD">Bedarf</field>
                                   <value name="VALUE">
                                     <block type="get_value" id="b9sMELx!8dG3.y4)}aq!">
                                       <field name="ATTR">val</field>
                                       <field name="OID">0_userdata.0.Strom.Shelly_3EM_gesamt</field>
                                     </block>
                                   </value>
                                 </block>
                               </statement>
                               <next>
                                 <block type="controls_if" id="}#]j^7InM?+/KcTx`$tl">
                                   <mutation else="1"></mutation>
                                   <value name="IF0">
                                     <block type="logic_compare" id="+mw$6piz(._{}BU9ei2f">
                                       <field name="OP">LT</field>
                                       <value name="A">
                                         <block type="variables_get" id="W]HQ/Mj,uBOp{ac.r-9#">
                                           <field name="VAR" id="62%O+/Q2o;:1DUb)~[DD">Bedarf</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <block type="math_number" id="F09NvMlK8(EP0*00`3n,">
                                           <field name="NUM">1</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <statement name="DO0">
                                     <block type="update" id="Gw,l~lJi,ax.hT_YlKHg">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">0_userdata.0.TEST.DC_DC_Wandler_Ampere</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="math_number" id="x2MW~/gU~{HTv0l%G{w4">
                                           <field name="NUM">0</field>
                                         </block>
                                       </value>
                                     </block>
                                   </statement>
                                   <statement name="ELSE">
                                     <block type="controls_if" id="W;9f~HbV?;4pS}[_z_bo">
                                       <value name="IF0">
                                         <block type="logic_compare" id="r0jk%+?:waAASyIe2s)%">
                                           <field name="OP">GT</field>
                                           <value name="A">
                                             <block type="variables_get" id="T:Wv0Q6S/U9n;BQ/YIa@">
                                               <field name="VAR" id="62%O+/Q2o;:1DUb)~[DD">Bedarf</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <block type="math_number" id="Kpl,@r|lU-NH_G#wNEXI">
                                               <field name="NUM">1</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <statement name="DO0">
                                         <block type="variables_set" id="DC,lyE,me]DE}b6!53lC">
                                           <field name="VAR" id="GuT#)C%8q`Vrq$y;ak_C">DC/DC Ampere</field>
                                           <value name="VALUE">
                                             <block type="math_rndfixed" id="oOhYAElc:Y65sx~p?DIB">
                                               <field name="n">1</field>
                                               <value name="x">
                                                 <shadow type="math_number" id="pfLO;o)sTnr21{X+nm;D">
                                                   <field name="NUM">3.1234</field>
                                                 </shadow>
                                                 <block type="math_arithmetic" id=")(*+V$LI-HK759wE9;86">
                                                   <field name="OP">DIVIDE</field>
                                                   <value name="A">
                                                     <shadow type="math_number">
                                                       <field name="NUM">1</field>
                                                     </shadow>
                                                     <block type="variables_get" id="TzrT8mz0U@/RAncgIi|@">
                                                       <field name="VAR" id="62%O+/Q2o;:1DUb)~[DD">Bedarf</field>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <shadow type="math_number" id="X_nd$/8dl4f1YpcT7f|Z">
                                                       <field name="NUM">36</field>
                                                     </shadow>
                                                     <block type="variables_get" id="vn@`PWwaM5(m)mEH^e)$">
                                                       <field name="VAR" id="#Y~|dVd0]wJ*Kg[b@+=+">Spannung Wechselrichter</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="controls_if" id="6uC+6X0sSvhT~^yZ@)/8">
                                               <mutation else="1"></mutation>
                                               <value name="IF0">
                                                 <block type="logic_compare" id="enR{ayF1E-A0c*4b_{%M">
                                                   <field name="OP">LT</field>
                                                   <value name="A">
                                                     <block type="variables_get" id="vkiGa}w|Kt=;S2[D78RA">
                                                       <field name="VAR" id="GuT#)C%8q`Vrq$y;ak_C">DC/DC Ampere</field>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <block type="math_number" id="TZ6%kj?Md)SIYMFb@TO~">
                                                       <field name="NUM">1</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <statement name="DO0">
                                                 <block type="update" id=":lNGpqOL7y}!YaV7?5GW">
                                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                   <field name="OID">0_userdata.0.TEST.DC_DC_Wandler_Ampere</field>
                                                   <field name="WITH_DELAY">FALSE</field>
                                                   <value name="VALUE">
                                                     <block type="math_number" id="84z+9AvqEQ.bpyb9l6eb">
                                                       <field name="NUM">0</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </statement>
                                               <statement name="ELSE">
                                                 <block type="controls_if" id="Venyc/X#4]iBG%QIZ-+{">
                                                   <mutation else="1"></mutation>
                                                   <value name="IF0">
                                                     <block type="logic_compare" id="G)J|3_3B`-CVL$Y[!?~]">
                                                       <field name="OP">GT</field>
                                                       <value name="A">
                                                         <block type="variables_get" id="5|t]YMkxq+~cc}Ya?X~D">
                                                           <field name="VAR" id="GuT#)C%8q`Vrq$y;ak_C">DC/DC Ampere</field>
                                                         </block>
                                                       </value>
                                                       <value name="B">
                                                         <block type="variables_get" id="[k.I$Nz!pO|4;?L70}oT">
                                                           <field name="VAR" id="E.akL_3P2[PY7Dl=X6q_">max Ampere</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <statement name="DO0">
                                                     <block type="update" id=":7oI-tlAyHz5Jf3y*m1h">
                                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                       <field name="OID">0_userdata.0.TEST.DC_DC_Wandler_Ampere</field>
                                                       <field name="WITH_DELAY">FALSE</field>
                                                       <value name="VALUE">
                                                         <block type="variables_get" id="J}3d^fm0h1u7--ngl$?A">
                                                           <field name="VAR" id="E.akL_3P2[PY7Dl=X6q_">max Ampere</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </statement>
                                                   <statement name="ELSE">
                                                     <block type="update" id="ex/nnNCZbdFgK;JFC_~?">
                                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                       <field name="OID">0_userdata.0.TEST.DC_DC_Wandler_Ampere</field>
                                                       <field name="WITH_DELAY">FALSE</field>
                                                       <value name="VALUE">
                                                         <block type="variables_get" id="mm=0{T+w|*g5a[)$E_Je">
                                                           <field name="VAR" id="GuT#)C%8q`Vrq$y;ak_C">DC/DC Ampere</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </statement>
                                                 </block>
                                               </statement>
                                             </block>
                                           </next>
                                         </block>
                                       </statement>
                                     </block>
                                   </statement>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </statement>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </next>
         </block>
        </xml>
        


        Konnte es aber nur theoretisch mit selbst erstellten Datenpunkten testen; da ich noch keinen DPM habe.
        Gedanke ist das die Spannung im Bereich vom MPP liegt und die Ampere dann angepasst werden .
        Vielleicht hilft es ja trotzdem jemanden

        Gruß
        Flo

        1 Reply Last reply Reply Quote 0
        • Thorsten Jochem 0
          Thorsten Jochem 0 last edited by

          Hallo aikonflo,

          ja es ist der ModBus-Adapter, orientiere dich an meinen Bildern, dann wird es funktionieren. Als USB zu RS485-Konverter habe ich folgenden verwendet.
          https://www.ebay.de/itm/255283310832?hash=item3b701230f0:g:k~oAAOSw-HRb4LD7&amdata=enc%3AAQAHAAAA4CgLe%2BCVwna%2BWJnCPFUbIGQYhDWnaqQFAmazP97Poa1iUQc%2FGKo6t1kYTcN0XJZk9TJ647qmmZa6kQSX5ZenZgHTZ8rs2NgFxYLN314LFgILLT6A5r5jl7Qebq6XV1AAAgOMOKY7zOmQ15JgUio%2Fl2RDZ420wWrqaXY8x40%2BpJyuOfJQkER1%2FmJ4wIPOw6EO5lmyfRTAPNk5GV%2BGm7q1Fx8Nz56xaNdNt04o%2FXgZL44I4Wr%2BDNL7%2FpuoLMcqiA35JbtktH0QeFeA2KiPY9d18wyG6x15XTwoiRaE30EEaYLm|tkp%3ABFBMgOmV7Mth

          Der gleiche lag auch in der Verpackung von meinem "DPM8624".

          Danke für dein Skript, das ist für mich eine große Hilfe. Vielleicht kann du mir deine Datenpunkte noch etwas beschreiben. Ich weiß nicht genau welche Datenpunkte im Skript ich zu meinen DPM-Datenpunkten bzw. Smartmeter-Datenpunkt zuweisen soll.

          A 1 Reply Last reply Reply Quote 0
          • A
            aikonflo @Thorsten Jochem 0 last edited by

            @thorsten-jochem-0

            Hi,

            Ja stimmt die Datenpunkte wären auch hilfreich ....Sorry.

            Zur Strommessung verwende ich einen Shelly 3EM.
            Dieser zeigt positive und negative Wert an.

            Datenpunkte:

            "Shelly 3EM gesamt (Watt)"

            • ist größer 0 (positiv) -> Strom wird vom Netz bezogen
            • ist kleiner 0 (negativ) -> Strom wird in das Netz eingespeist (Überschuss)

            Das wäre quasi der Stromzahler (Smartmeter)

            "Netzeinspeisung" (wird nicht benötigt)

            • ist der negative Wert von "Shelly 3EM gesamt (Watt)" x (-1)

            Wobei ich grade selber nicht versteh warum das da drinnen steht, das ist eine Altlast vom debugen und kann gelöscht werden

            "DC DC Wandler Ampere"

            • ist die Ampere Zahl auf die der DPM eingestellt werden soll

            Variablen:

            "Spannung Wechselrichtet"

            • ist die Spannung mit der du den Wechselrichter betreiben willst.

            Sollte meiner Meinung nach im Bereich des MPP des Wechselrichter liegen. (Ausgangsspannung DPM)
            Achtung: Laut Betriebsanleitung des DPM´s muss diese um 0,5 V niedriger sein als die Eingangsspannung

            "max Einspeisung (Watt)"

            • max Watt Zahl des Wechselrichters Eingangs

            "max Ampere"

            • Ergibt sich durch die anderen 2 Variablen.

            Sollte aber kontrolliert werden ob das mit den "max Amper" des Wechselrichter Einganges zusammen passt.

            "Bedarf"

            • max Einspeisung damit nichts ins Netz geht.

            "DC/DC Ampere"

            • sind die Ampere auf die der DPM eingestellt werden soll.

            Ich hoffe ich konnte das einigermaßen verständlich zusammen fassen.
            Wie schon gesagt ist das bis jetzt nur Theorie, ich bekommen meinen DPM erst Mitte nächster Woche
            Dann kann ich erst selber testen.

            Grüße
            Flo

            1 Reply Last reply Reply Quote 0
            • Thojo
              Thojo last edited by

              Hallo,
              danke für die Erläuterungen, ich werde versuchen das auf mein System anzupassen.
              Ich melde mich dann wieder.
              👍 👍 👍 👍 👍 👍 👍

              1 Reply Last reply Reply Quote 0
              • A
                aikonflo last edited by aikonflo

                Hallöle,

                mein DPM ist gekommen und ich konnte endlich ein bisschen rumspielen.

                Das mit dem Adapter (2 oder 4 Anschlüsse) ist mir jetzt auch klar. 🙄
                Hab mir dann auch gleich einen Elfin-EW11 (RS485 -> Wlan) geholt damit ich ein bisschen flexibler bin.
                Funktioniert Einwand frei.
                shorturl.at/mnzHZ

                Skript mäßig bin ich nun bei folgenden Stand:
                Es ist noch nicht optimal aber es pendelt so bei +-20 W um 0 rum.

                Ich konnte auf jeden Fall den Überschuss von ca. 1,1kWh auf bis 0,02kWh reduzieren.
                Ich glaube damit kann man schon ganz gut leben.

                2ca18ffd-a22f-4617-8752-6640af2ab4e9-image.png

                <xml xmlns="https://developers.google.com/blockly/xml">
                 <variables>
                   <variable id="|*A4}thOM2fa2sK?_Sz6">max Spannung</variable>
                   <variable id="?OY0381F_glDLX+S*%7:">max Ampere</variable>
                   <variable id=":~zu]~UcP(Uvn~u*f]2?">Überschuss in Ampere</variable>
                 </variables>
                 <block type="variables_set" id="`jiWQIN#TOB;U*;$^rjh" x="-137" y="38">
                   <field name="VAR" id="|*A4}thOM2fa2sK?_Sz6">max Spannung</field>
                   <value name="VALUE">
                     <block type="math_number" id="S`4op%,O^|mPYK|)ea,[">
                       <field name="NUM">36</field>
                     </block>
                   </value>
                   <next>
                     <block type="variables_set" id="DbQo./sutOPnNZ9u-(f9">
                       <field name="VAR" id="?OY0381F_glDLX+S*%7:">max Ampere</field>
                       <value name="VALUE">
                         <block type="math_number" id="4s{t}q,M*(A*IeZcsP4o">
                           <field name="NUM">10</field>
                         </block>
                       </value>
                       <next>
                         <block type="on_ext" id="tYV0d~),pBkN|zgHn+@c">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                           <field name="CONDITION">any</field>
                           <field name="ACK_CONDITION"></field>
                           <value name="OID0">
                             <shadow type="field_oid" id="#SGp/Ybn9+V|jvRJLey{">
                               <field name="oid">0_userdata.0.Strom.PV_Netzeinspeisung</field>
                             </shadow>
                           </value>
                           <statement name="STATEMENT">
                             <block type="controls_if" id="HMrV2ZQ+^+7AbgnpGB9P">
                               <value name="IF0">
                                 <block type="time_compare" id="4cjab1C=RJ_bu77{@uGR">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
                                   <field name="OPTION">between</field>
                                   <field name="START_TIME">08:00</field>
                                   <field name="END_TIME">20:00</field>
                                 </block>
                               </value>
                               <statement name="DO0">
                                 <block type="controls_if" id="nCLsu(,X;S(,y8%9JFif">
                                   <mutation else="1"></mutation>
                                   <value name="IF0">
                                     <block type="logic_compare" id="kGzO7Nn4Eol(Z:5.J^Oa">
                                       <field name="OP">GT</field>
                                       <value name="A">
                                         <block type="get_value" id="R-MN6c};TMiD4y-;{r?%">
                                           <field name="ATTR">val</field>
                                           <field name="OID">0_userdata.0.Strom.PV_Netzeinspeisung</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <block type="math_number" id="19!B:dYRY+/)f4d3[$;:">
                                           <field name="NUM">0</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <statement name="DO0">
                                     <block type="variables_set" id="ML#U,.h%}8R*sXC+Hfh,">
                                       <field name="VAR" id=":~zu]~UcP(Uvn~u*f]2?">Überschuss in Ampere</field>
                                       <value name="VALUE">
                                         <block type="math_round" id="pL_9uEwy-RyhI2dVn}Mf">
                                           <field name="OP">ROUND</field>
                                           <value name="NUM">
                                             <shadow type="math_number" id="FJD[+u:,rQp4yMsO+ul~">
                                               <field name="NUM">3.1</field>
                                             </shadow>
                                             <block type="math_arithmetic" id="@`_CtOK~7xTMMO/,ct:S">
                                               <field name="OP">DIVIDE</field>
                                               <value name="A">
                                                 <shadow type="math_number" id="%a=7:-Q7d,kS0E.zUE=F">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="get_value" id="|oLOApbLNoJ~f~Sf*j4Q">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">0_userdata.0.Strom.PV_Netzeinspeisung</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <shadow type="math_number" id="rZ9qx^;VLaJrlXGEj4EP">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="variables_get" id="!M{t:_Jz;U2feqZA-o@D">
                                                   <field name="VAR" id="|*A4}thOM2fa2sK?_Sz6">max Spannung</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="controls_if" id="-e{iP_:0adwN/8X/qa/6">
                                           <mutation else="1"></mutation>
                                           <value name="IF0">
                                             <block type="logic_compare" id="{1ZEdN=!VOxRXF+RhLQ$">
                                               <field name="OP">GT</field>
                                               <value name="A">
                                                 <block type="get_value" id="6Bz?I}F=J[[SQNxntKh.">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">0_userdata.0.Strom.PV_Netzeinspeisung</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <block type="math_number" id="|kK2:oXZL{Fz^GTjVXaK">
                                                   <field name="NUM">10</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <statement name="DO0">
                                             <block type="control" id="~|Cd+#Lk+59YLwiHd}4I">
                                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                               <field name="OID">modbus.0.holdingRegisters.1_Set_I</field>
                                               <field name="WITH_DELAY">FALSE</field>
                                               <value name="VALUE">
                                                 <block type="math_arithmetic" id="elaamq@)8Zji~f$`qH:S">
                                                   <field name="OP">MINUS</field>
                                                   <value name="A">
                                                     <shadow type="math_number" id="{Il@^R~n[PehpB0OQ-p@">
                                                       <field name="NUM">1</field>
                                                     </shadow>
                                                     <block type="get_value" id="BuPi6!4ur-OyThE@U`Nb">
                                                       <field name="ATTR">val</field>
                                                       <field name="OID">modbus.0.holdingRegisters.1_Set_I</field>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <shadow type="math_number" id="T%6!O4Y=$Cl5$[vh+6Q}">
                                                       <field name="NUM">100</field>
                                                     </shadow>
                                                     <block type="math_arithmetic" id="ol!c|S6CFdYd=144/wme">
                                                       <field name="OP">MULTIPLY</field>
                                                       <value name="A">
                                                         <shadow type="math_number" id="(njtj^ce$s[[re#YTlM(">
                                                           <field name="NUM">1</field>
                                                         </shadow>
                                                         <block type="variables_get" id="FWogt[1[b8GM.Pb%_+V!">
                                                           <field name="VAR" id=":~zu]~UcP(Uvn~u*f]2?">Überschuss in Ampere</field>
                                                         </block>
                                                       </value>
                                                       <value name="B">
                                                         <shadow type="math_number" id="[xZjFPi;Z{1E(/6390OQ">
                                                           <field name="NUM">1000</field>
                                                         </shadow>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </statement>
                                           <statement name="ELSE">
                                             <block type="control" id="g}P#G2zQ`^wY;~ab6N75">
                                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                               <field name="OID">modbus.0.holdingRegisters.1_Set_I</field>
                                               <field name="WITH_DELAY">FALSE</field>
                                               <value name="VALUE">
                                                 <block type="math_arithmetic" id="vOTc;j`z2zlV`P6t)e=!">
                                                   <field name="OP">MINUS</field>
                                                   <value name="A">
                                                     <shadow type="math_number" id="dS~#`;Ye$cnbu|(uu9*L">
                                                       <field name="NUM">1</field>
                                                     </shadow>
                                                     <block type="get_value" id="7`AAc!w(:Pn$O0^At6#E">
                                                       <field name="ATTR">val</field>
                                                       <field name="OID">modbus.0.holdingRegisters.1_Set_I</field>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <shadow type="math_number" id="zK*4J/Zm/bo]U,pT5p=C">
                                                       <field name="NUM">100</field>
                                                     </shadow>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </statement>
                                         </block>
                                       </next>
                                     </block>
                                   </statement>
                                   <statement name="ELSE">
                                     <block type="controls_if" id="nc/o@I6|h@uwmL0CFu/|">
                                       <mutation else="1"></mutation>
                                       <value name="IF0">
                                         <block type="logic_compare" id="2@9FYmjAJUynr@:blc9n">
                                           <field name="OP">EQ</field>
                                           <value name="A">
                                             <block type="get_value" id=";q/:^uVv4bDLR-Ih6(*P">
                                               <field name="ATTR">val</field>
                                               <field name="OID">modbus.0.holdingRegisters.1_Set_I</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <block type="math_arithmetic" id="X(3-/5HZJ.S{snOw#/_I">
                                               <field name="OP">MULTIPLY</field>
                                               <value name="A">
                                                 <shadow type="math_number" id="+Bd[V(KOKxM*qDk8F;j8">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="variables_get" id="J.STqkqQ3N+5VQY~^*~7">
                                                   <field name="VAR" id="?OY0381F_glDLX+S*%7:">max Ampere</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <shadow type="math_number" id="=B,={9iy2itBmK^(,1L`">
                                                   <field name="NUM">1000</field>
                                                 </shadow>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <statement name="ELSE">
                                         <block type="control" id="]c0-*VV_$]a`5^w_s#oY">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                           <field name="OID">modbus.0.holdingRegisters.1_Set_I</field>
                                           <field name="WITH_DELAY">FALSE</field>
                                           <value name="VALUE">
                                             <block type="math_arithmetic" id="nKfRCV$zpjndMXX|/?x7">
                                               <field name="OP">ADD</field>
                                               <value name="A">
                                                 <shadow type="math_number">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                                 <block type="get_value" id="?E(5?$Ei:CO,@stfmI(m">
                                                   <field name="ATTR">val</field>
                                                   <field name="OID">modbus.0.holdingRegisters.1_Set_I</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <shadow type="math_number" id="e[P#1ju4484H%!EA*Hnx">
                                                   <field name="NUM">100</field>
                                                 </shadow>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </statement>
                                     </block>
                                   </statement>
                                 </block>
                               </statement>
                             </block>
                           </statement>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
                </xml>
                

                Erklärung:
                max Spannung und max Ampere = sind die max. Wert auf die der DPM eingestellt ist.
                Aktuelle Zeit.. = Programm soll nur zwischen 08:00-20:00 Uhr laufen.
                PV_Netzeinspeisung = ist mein Datenpunkt für den Überschuss
                Überschuss in Ampere = ist der Überschuss in Ampere bei 36V
                Objekt ID I = ist der Datenpunkt des DPM (Set_I) für die Ampere (ist in mA)

                Der Datenpunkt PV_Netzeispeisung ist bei mir ein positiver Wert des wegen die Prüfung ob größer 0
                Die Prüfung auf "größer 10" ist damit es bei großen Änderungen schneller wieder auf 0 geht.
                Ansonsten regle ich in 100er (0,1A) Schritten, da es sonst ein zu großes hin und her wird.
                Mit 1000 wird multipliziert da im DPM die Werte im mA eingegeben werden muss.

                Wie gesagt es ist noch nicht ganz optimal, und bei großen Änderungen kommt es nicht ganz mit.
                Wahrscheinlich ist das System aber auch zu träge um es genauer zumachen.

                Das ganze schaut dann so aus.
                Grün ist mein Stromverbrauch
                Rot was ich aus dem Netzt beziehe bzw. was ins Netzt eingespeist wird (unter 0)

                935c276c-f134-4b21-8031-4f80d2f6ca6d-image.png
                Ab 14:30 war mein PC eingeschaltet und man sieht das sich die Steuerung mit dem unregelmäßigen Strombedarf etwas schwer tut.

                Wenn der Strombedarf konstant ist, schaut es gar nicht so schlecht aus.

                2794e61f-523f-44c4-8e3e-145999861e3f-image.png

                Grüße Flo

                1 Reply Last reply Reply Quote 0
                • Thojo
                  Thojo last edited by

                  Hallo Flo,
                  irgendwie läuft das Skript bei mir nicht, vermutlich hab ich Datenpunkte vertauscht.

                  @aikonflo said in Modbus Problem Labornetzteil:

                  Objekt ID I = ist der Datenpunkt des DPM für die Spannung (ist in mA)

                  Ist das hier so korrekt oder ist das doch der Datenpunkt um den Strom am DPM zu setzten ? Die Spannung ist doch in der Variablen auf 36V eingestellt, oder ?

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    aikonflo @Thojo last edited by

                    @thorsten-jochem

                    Hallöle,
                    absolut richtig, da hab ich mich verschrieben.
                    Ich bitte um Entschuldigung.😖

                    Objekt ID I ist natürlich der Strom.
                    Datenpunkt 1_Set_I
                    (ich hab es oben auch korigiert)

                    CFD9B704-31D9-474E-A299-968B3C5EBDCC.jpeg

                    Die Spannung wird über das Skript nicht gesteuert,
                    die habe ich am DPM (bzw. über die Objekte im ioBroker) fix eingestellt.
                    Sie dient im Skript nur zu Berechnung der Ampere.

                    Falls du eine andere Spannung verwendest must du sie im Skript und auf dem DPM ändern.

                    Bitte nicht von meinem Bild irritieren lassen.
                    Bei der Spannung sind es keine mV.
                    Set_U = 36V = 36x100 = 3600
                    Set_I = 10 A = 10x1000 = 10000

                    Das ist ein bisschen verwirrend.

                    Grüße Flo

                    Thojo 1 Reply Last reply Reply Quote 0
                    • Carverandi
                      Carverandi last edited by Carverandi

                      Hallo,

                      ich bin auf der Suche nach einer Lösung mein Labornetzteil von Riden RD6012, wie es auch von Reichelt z.B. unter dem Namen JOY-IT RD6006 verkauft wird, über den ioBroker anzusteuern, genau für den Zweck des Überschussladens. Funktioiniert die hier gezeigte Lösung über USB auch mit diesem Netzeil oder ist bekannt wie ich dieses Ansteuern kann?
                      Über die App per WLAN oder der bereitgestellten Herstellersoftware per USB auf einen PC ist es generell möglich dies zu steuern, brauche es aber im ioBroker.

                      Gruß Andi

                      1 Reply Last reply Reply Quote 0
                      • Thojo
                        Thojo @aikonflo last edited by

                        @aikonflo
                        Hallo, irgendwie regelt das Script bei mir nicht richtig. Nach einer gewissen Zeit regelt es in 100er Schritten auf 0. Scheinbar mache ich etwas falsch.

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

                          @thorsten-jochem
                          Habe jetzt mein DPM8600 und den Modbusadapter bekommen. Am PC mit der NT-Software kann ich verstellen. Gehe davon aus, daß der Adapter funktioniert. Im NT auf Modbus umgestellt. Die Werte "Allgemein" wie auf Deiner Darstellung. Der Adapter wird für etwa 1 Sekunde grün (Verbunden mit Gerät oder Dienst) dann wieder rot. Den Adapter habe ich über einen USB- Switch angeschlossen. Bei Direktanschluss passiert das Gleiche. Wird ja auch erkannt. (übernächste Frage- Kann man den auch mit ID ansprechen?) Wo kann der Fehler liegen?

                          EDIT: vermutlich war es ein Problem, daß ich testweise ein Eingangsregister angelegt habe. Wollte damit nur einen Spannungswert anzeigen. Dieses gelöscht, und die Kommunikation steht!

                          A 1 Reply Last reply Reply Quote 0
                          • A
                            aikonflo @Laser last edited by

                            @laser
                            Was maeinst du mit "ID ansprechen" ?

                            @Thorsten-Jochem
                            Wenn er runterregelt bis auf 0 klingt es für mich so als würde im Script die aktuelle Netzeinspeisung nicht richtig aktualisiert werden.

                            Du kannst dir einen "debug Output" einbauen damit du den Wert sehen kannst mit dem er rechnet.

                            Weist du wie das geht ?

                            LG Flo

                            L Thojo 2 Replies Last reply Reply Quote 0
                            • L
                              Laser @aikonflo last edited by

                              @aikonflo
                              Mit ID ansprechen, soll heißen, nicht im Adapter die DEV/TTY/USB1 angeben, sondern die mit "ls -l /dev/serial/by-id" ausgelesene ID des angeschlossenen USB-Wandlers. Damit beim Umstecken (falls das getan wird) das Gerät immer wieder erkannt wird.

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

                                praktisch so:
                                /dev/serial/by-id/usb-1a86_USB2.0-Ser_-if00-port0

                                im Adapter des Victron- Ladegerätes wird das so eingestellt:
                                /dev/serial/by-id/usb-VictronEnergy_BV_VE_Direct_cable_VE675ZLF-if00-port0

                                das im VE-direkt-Adapter des Victron funktioniert, beim Modbus Adapter nicht. Mein Problem ist, daß die Verbindung immer mal gestört ist, spätestens, wenn ich das Ladenetzteil ausschalte.

                                A 1 Reply Last reply Reply Quote 0
                                • Thojo
                                  Thojo @aikonflo last edited by Thojo

                                  @Thorsten-Jochem
                                  Wenn er runterregelt bis auf 0 klingt es für mich so als würde im Script die aktuelle Netzeinspeisung nicht richtig aktualisiert werden.

                                  Du kannst dir einen "debug Output" einbauen damit du den Wert sehen kannst mit dem er rechnet.

                                  Weist du wie das geht ?
                                  @aikonflo
                                  Nein leider nicht. Und wo würde ich den Wert sehen ? Im Protokoll ?

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    aikonflo @Laser last edited by

                                    @laser
                                    ahh Ok, versteh was du meinst, aber da bin ich leider raus.
                                    Ich hab dieses Thema Thema mit einem einen Elfin-EW11 (RS485 -> Wlan) gelöst.
                                    Somit brauch ich keinen USB mehr sondern kann das über die IP ansprechen.

                                    @Thorsten-Jochem
                                    Sobald ich es schaffe mach ich dir einen Screenshoot wie das gehen würde.

                                    Grüße Flo

                                    A 1 Reply Last reply Reply Quote 0
                                    • A
                                      aikonflo @aikonflo last edited by

                                      @Thorsten-Jochem

                                      So, hab ein bisschen Zeit gefunden und ein paar Screenshots gemacht.

                                      Ich gehe jetzt mal davon aus, dass das Skript so wie bei mir aussieht.

                                      So schaut mein Skript ohne Debug aus.
                                      b29a6d93-fd27-47f9-bd98-6a120b793d67-image.png

                                      Dann hab ich bei jedem Steuerbefehl einen "debug output" + "erstelle Text aus" gesetzt
                                      Damit man nach vollziehen kann wann welcher Wert gesetzt wir hab ich das dann einfach mal Wert 1- 3 genannt.
                                      an der Stelle wo nix passieren soll hab ich einen "debug output" mit dem Text "mach nix" eingefügt.
                                      fb3b23ba-2272-4064-94be-2ee45e903ebd-image.png

                                      Als nächster einfach die jeweiligen Wert kopieren und unter bei einfügen.
                                      7879c180-eda8-4ad2-8ea7-5194cf2cba30-image.png

                                      Auf Speichern klicken und falls notwendig das Skript starten.
                                      Im Feld unterhalb wird dann der Wert angezeigt mit dem der DPM gesteuert wird.
                                      73135828-4e57-477b-a84e-534c124ca682-image.png

                                      Und du würdest es auch im Protokoll sehen.
                                      35dcf625-f6a6-4aa2-91b4-78a7ee8d6b1b-image.png

                                      Wenn man dann weis wann welcher Wert ausgegeben wird kann man dann natürlich nachvollziehen wo der Fehler liegt.
                                      Ich hoffe ich konnte das einigermaßen verständlich zusammen fassen.

                                      Du kannst aber auch gerne mal deinen Skript posten vielleicht kann ich etwas entdecken.

                                      Was mir auch gerade einfällt:
                                      Du schreibst

                                      Nach einer gewissen Zeit regelt es in 100er Schritten auf 0...

                                      Das würde bei meinen Skript bedeuten das er mit einer Netzeispeisung von kleiner 10W rechnet
                                      c1357bc6-27de-45f1-a060-802f3069bc95-image.png

                                      Wenn das passiert schau mal nach was der Datenpunkt PV_Netzeinspeisung anzeigt.
                                      Wenn der nicht 0 ist regelt das Skript so lange runter bis der DPM auf 0 steht.

                                      Grüße Flo

                                      Thojo 1 Reply Last reply Reply Quote 0
                                      • Thojo
                                        Thojo @aikonflo last edited by

                                        @aikonflo
                                        Hi Flo,
                                        danke für die ausführliche Anleitung und die Mühe, die du dir damit gemacht hast.
                                        Ich denke am WE komme ich dazu das zu testen.
                                        Ich werde dann wieder hier berichten.

                                        Vielen Dank !!!!!

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          duddsig @Thojo last edited by duddsig

                                          Hier kann man die Werte der Register 0,1 und 2 direkt ändern.

                                          Vielen Dank erst mal für die Mühe, das hat mir sicher viel Arbeit gespart. Habe es praktisch direkt übernommen (nur andere Texte), und es hat mit Zweidraht und dem beigelegten Modul sofort funktioniert. Habe später dann ein Ethernet>485/Modbus-Converter gekauft, da hat es einige Zeit gedauert.
                                          Modbus1.jpg Modbus2.jpg Modbus3.jpg

                                          Momentan schreibe ich die Werte manuell in die Register, dabei ist mir aufgefallen, daß sich das Modul häufig nicht ausschalten läßt, während sich die Werte I+U aber immer schreiben lassen, wenn die Schnittstelle nicht gerade stehengeblieben ist.

                                          Des Weiteren ist mir aufgefallen, daß bei den Holding-Registern bei Dir eine ID auftaucht. Wie hat Du denn das geschafft? Die würde ich mit Sicherheit benötigen, wenn ich einen 2. Regler an den Modbus anschließen möchte.

                                          Was ich machen möchte:
                                          Meine Balkonkraftwerke stehen in einiger Entfernung auf der Wiese, und an unterschiedlichen Stellen. Ich möchte natürlich auch den Strom einsammeln wenn das Smartmeter beginnt einzuspeisen. Dazu benutze ich abgelegte Bleiakkus 4x2x65Ah, die so ein 2.Leben bekommen. Momentan Lade ich die händisch über den Regler abends klemme ich um und entlade über den Regler an einem Wechselrichter. Alles noch Testphase und manuell.

                                          Bisher habe ich den überschüssigen Strom abhängig von der Menge an einem 500W-Heizkörper in der Übergangsphase, und Teilweise mit einem 500W-Campingkocher verheizt. Habe dazu mit 8 Relais eine Phasenanschnittsteuerung gesteuert. Funktionierte schon mal recht gut. Jetzt sollen die Batterien halt geladen werden. Dazu brauche ich natürlich eine entsprechende Steuerung (Blockly), die "einfach nur" Werte in die Register schreibt und somit die Einspeisung bei 0 hält. Leider bin auch ich Anfänger und habe bisher nichts passendes gefunden und benötige Hilfe.

                                          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

                                          923
                                          Online

                                          31.7k
                                          Users

                                          79.6k
                                          Topics

                                          1.3m
                                          Posts

                                          10
                                          38
                                          5006
                                          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