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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Modbus Problem Labornetzteil

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

      @ralla66
      Die Frage ist jetzt für mich, wie werden die HoldingRegister im modbus Adapter angelegt?
      Welche Einstellungen sind nötig?

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

        @thorsten-jochem
        Servus sorry das ich mich jetzt erst melde mein Netzteil (E-Aton Server) hat den geist aufgegeben und heute is endlich das neue gekommen und das Projekt kann weiter gehen. Also die HoldinRegister habe ich gans einfach so angelegt siehe Foto bin da kein Profi aber es funkioniert 😄 Screenshot 2022-12-27 at 16-48-56 instances - raspberrypi.png

        Hoff du kannst mir sagen wie du es geschafft hast die Werte aus dem netzteil zu lesen wo hast du die eingetragen und was genau 🙂
        hab jetzt mal 4096-4105 ausprobiert da kommt leider nicht bei mir raus nur unschlüssige Zahlen 😄

        Thojo I 2 Replies Last reply Reply Quote 0
        • Thojo
          Thojo @Michael2142 last edited by

          @michael2142
          Ich habe das Ganze so in den HoldingRegister gelöst:iobroker_instance_HoldingRegister.JPG

          Unter Allgemein so:
          iobroker_instance_allgemein_1-3.JPG

          und so:
          iobroker_instance_allgemein_3-3.JPG

          Heimtückisch sind die Settings im DPM8624, hier muss folgendes eingestellt werden:
          5-CS _1
          6-bd 009.6
          7-Ad 01
          8-CH 01
          4110 (46.40 (dieser Wert ändert sich ständig)) keine Ahnung für was das ist oder ob man das braucht???

          ... und dann musst du das Ding ausschalten und wieder einschalten, erst dann greifen die Settings. Dafür habe ich Tage gebraucht.

          Unter den Objekten sieht das dann so bei mir aus:
          iobroker_objekte.JPG
          Hier kann man die Werte der Register 0,1 und 2 direkt ändern.

          Ich bin kein Programmierer, das fällt mir echt schwer aber das, was ich jetzt brauche ist ein blocklySkript das die Werte U und I entsprechend dem aktuellen Leistungsverbrauch aus dem Stromnetz (gemessen über ein Smartmeter) anpasst. Kann hier jemand unterstützen ? Ich hab kein Plan wie ich hier starte oder wo ich mit welcher Logik beginne.

          Vielen Dank schon mal vorab für Lösungsansätze.

          M D 2 Replies Last reply Reply Quote 3
          • M
            Michael2142 @Thojo last edited by

            @thorsten-jochem
            Super danke dir das Probiere ich gleich mal aus 🙂

            Wegen dem Blocky bin ich gerade am arbeiten. Wie bekommst du die Werte vom Aktuellen PV-überschuss?

            Gruß
            Michael

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

              @michael2142
              Hallo Michael,
              ein frohes neues Jahr wünsche ich. Ich versuche mal meinen Aufbau zu beschreiben, so fern das schon klappt.
              Ich habe drei 400W Panels, die sind in Reihe mit einem Laderegler verbunden. Der LR lädt einen 4,5kWh Akku (36V, 12x3V/125Ah, LiFePO4). Daran angeschlossen ist der DMP8624 und weiter ein 700 W Wechselrichter.
              Mein Vorhaben ist den DMP8624 so zu steuern, dass er soviel einspeist wie ich gerade aus dem Netz ziehe bis zu max. 700 W. Diesen Wert (oder etwas darunter) soll er nicht überschreiten. Den aktuellen Leistungsverbrauch bekomme ich über ein Smartmeter, der Wert ist ebenfalls im iob.
              Ich stelle mir ein Skript vor, dass diese Steuerung übernimmt und auf 0W regelt, oder besser noch auf einen einstellbaren Wert, den ich über einen weiteren Datenpunkt angebe. Die Obergrenze von 700W sollte auch über einen Datenpunkt einstellbar sein um hier mit den Einstellungen noch etwas testen zu können.

              Die Leistung, die ich aus der PV-Anlage einspeise, messe ich mit einer Fritz!DECT210, die ich über den FritzDECT-Adapter auslese.

              Ich hoffe mein Vorhaben habe ich verständlich ausgedrückt. Danke schon mal für die Mühen.

              Gruß

              1 Reply Last reply Reply Quote 0
              • I
                io-taster @Michael2142 last edited by

                @michael2142

                Hallo zusammen,

                ich bin gerade an der selben Aufgabenstellung dran. Seit ihr inzwischen weiter gekommen?

                M 1 Reply Last reply Reply Quote 0
                • M
                  Michael2142 @io-taster last edited by Michael2142

                  @io-taster

                  Servus bin aktuell noch am testen bin da nicht so ein Profi in Blockly 😄 und ist bei mir jetzt doch ein wenig aufweniger geworden als gedacht. Wie betreibt ihr das Dmp also mit welcher Spannungsquelle.

                  I Thojo 2 Replies Last reply Reply Quote 0
                  • I
                    io-taster @Michael2142 last edited by

                    @michael2142
                    Hallo, ich betreibe 3 Balkonkraftwerke, 2*1,5kW und eins mit 2kW.
                    Um die effektiver zu nutzen bin ich im Dezember auf den IO-Broker gekommen.
                    Z.Zt. speisen die noch direkt ins Netz ein, sobald mehr als 400Watt ins Netz gehen schalten sich Heizungen zu 400Watt ein.
                    Insgesammt 4 Stück, die über ein Blockly laufen.

                    Ziel soll sein:
                    Ein Stromspeicher von 10-15kW, der über 3 PowMr geladen wird.
                    Die Regelung soll über 3 DPM8624 erfolgen, die in vorhandenen 3 Wechselrichter einspeisen.
                    Die dafür benötigten Teile sind da, bis auf den/die Akkus.
                    Jetzt bin ich halt auch am gucken wie man das Ganze umsetzt.
                    Es wäre schön wenn wir uns da austauschen könnten.

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

                      @michael2142
                      Der DMP8624 wird direkt vom Akku versorgt und kann auch nur max. bis zur Spannung vom Akku regeln. In meinem Fall 36V, also kann der DMP8624 nur bis max. 36 V regeln (tatsächlich knapp darunter, etwas Leistung benötigt er auch für den Betrieb).

                      I 1 Reply Last reply Reply Quote 0
                      • I
                        io-taster @Thojo last edited by

                        @thorsten-jochem
                        Hallo,

                        hast du den DPM8624 direkt per usb am Rasperry pi angeschlossen?
                        Falls ja, was für einen usb - modbus Stecker verwendest du da?
                        Ich hatte bei beiden DPM8624 jeweils andere Stecker dabeiliegen aber keiner hat eine Verbindung mit der Joy-IT Sofware aufgebaut.
                        Von daher hab ich auch noch den nächsten Schritt mit dem iobroker gemacht.

                        M Thojo 2 Replies Last reply Reply Quote 0
                        • M
                          Michael2142 @io-taster last edited by

                          @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 : https://www.amazon.de/DSD-TECH-SH-U10-Konverter-Kompatibel/dp/B078X5H8H7/ref=sxin_15_pa_sp_search_thematic_sspa?content-id=amzn1.sym.433505b2-cb41-4afd-b8ac-996325a82a2b%3Aamzn1.sym.433505b2-cb41-4afd-b8ac-996325a82a2b&crid=1CGB7P29JZT9X&cv_ct_cx=usb+zu+rs485&keywords=usb+zu+rs485&pd_rd_i=B078X5H8H7&pd_rd_r=ec9c9788-6ac1-4b44-a296-e77dae4ab09c&pd_rd_w=rpz5P&pd_rd_wg=5vPOn&pf_rd_p=433505b2-cb41-4afd-b8ac-996325a82a2b&pf_rd_r=CEJRD6T4ABRRWC43YJYQ&qid=1673977467&sprefix=usb+zu+rs%2Caps%2C411&sr=1-2-6e6ea531-5af4-4866-af75-1ef299d1c279-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9zZWFyY2hfdGhlbWF0aWM&psc=1

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

                            @io-taster
                            Ich hab den genommen, der dabei war. Der hat auch auf einem WindowsPC mit der Software vom Hersteller funktioniert.
                            https://www.ebay.de/itm/255283310832?mkcid=16&mkevt=1&mkrid=707-127634-2357-0&ssspo=kSLcqpXwSAK&sssrc=2349624&ssuid=x3j_1EfySsS&var=&widget_ver=artemis&media=WHATS_APP

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

                              Hat denn jemand eine Idee oder einen Lösungsansatz für ein Script?
                              Ich brauche kein fertiges Script, die Feinheiten bekomme ich schon irgendwie hin. Wichtig wäre mir ein Grundgerüst.
                              Ich habe einen Leistungswert vom Stromzähler den ich an den DC/DC-Wandler weiterleite. Vor der Weiterleitung muss er in Spannung und Strom geteilt werden. Ich dachte, um es einfach zu halten, nimmt man die Spannung vom Akku, also 36V. Dann muss nur der Wert des Stromes durchgerechnet werden. Danke schon mal vorab für eine Idee!!!

                              I 1 Reply Last reply Reply Quote 0
                              • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            792
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

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