Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter pid (pid-Regler) V1.0.x

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter pid (pid-Regler) V1.0.x

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

      @lobomau mach doch mal ein Thread auf "PID-Adapter: Anwendungs-Ideen und -Möglichkeiten" oder so ähnlich.

      @lobomau sagte in Test neuer Adapter pid (pid-Regler) V0.0.x:

      Bisher habe ich immer die Ampere-Zahl geregelt. Wenn ich es richtig sehe nutzt du den unteren DP, der aus Watt die Ampere macht, richtig?

      ich kenne den Datenpunkt so nicht, ich nutze MQTT und verwende da amp.set und versorge den state mit ganzen (Ampere-) Zahlen. Die Stromstärke berechne ich aus der vom Regler ermittelten Leistung in kW und runde auf ganze Zahlen ab. Den Code vom Blockly findest du unten - einfach in Blockly importieren und versuchen nachzuvollziehen 😉
      Warum regle ich die Leistung und nicht die Stromstärke? Weil die Leistung von 1.4 bis 11 kW geht, bei ca. 4 kW aber der Sprung von 16 zurück auf 6 A kommt, während dann mit 3 und nicht mehr mit 1 Phase geladen wird. Wenn du mit max. 3.7 kW laden möchtest (=1-phasig) kannst du auch die Stromstärke von 6 - 16 A regeln.

      @lobomau sagte in Test neuer Adapter pid (pid-Regler) V0.0.x:

      Und wenn ich es richtig verstehe muss ich da irgendwie in der selben Einheit bleiben... also alles in kW?

      Istwert und Sollwert müssen die gleiche Einheit haben, sonst lässt sich ja die Regelabweichung nicht vernünftig berechnen. Der Reglerausgang muss dann zum Stellglied passen, kann 0-100 (%) sein, kann 0-11 (kW) sein, 0-10 (V), 6-16 (A), -1400 - 1400 (U/min) sein usw. (wird ja durch min und max definiert).

      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="comment" id="6Fzyi%iFMuz;[gx6U^ur" x="-162" y="-462">
          <field name="COMMENT">Objekte für Lademodi</field>
          <next>
            <block type="create" id="g=}k]T}C`/O@fN^KkL8,">
              <field name="NAME">Wallbox.Laden_mit_3_Phasen</field>
              <value name="VALUE">
                <block type="logic_boolean" id="Q#$fU7:LQ*wXH$Wmo?^;">
                  <field name="BOOL">FALSE</field>
                </block>
              </value>
              <value name="COMMON">
                <block type="text" id="()hhu.BXzd@3B9LR{M5L">
                  <field name="TEXT">{"type":"boolean"}</field>
                </block>
              </value>
              <next>
                <block type="create" id="V2UMyXKwCwkVRQ7Q|H7p">
                  <field name="NAME">Wallbox.Ladestrom</field>
                  <value name="VALUE">
                    <block type="math_number" id=")zxu/!0vjiL|6`/wTm?z">
                      <field name="NUM">6</field>
                    </block>
                  </value>
                  <value name="COMMON">
                    <block type="text" id="IBU`2L$!ri*P0acDm[hq">
                      <field name="TEXT">{"type":"number","unit":"A","min":6,"max":17}</field>
                    </block>
                  </value>
                  <next>
                    <block type="create" id="3ZF*2X8UqK5D2Yrg.=Ja">
                      <field name="NAME">Wallbox.Ladestrom_temp</field>
                      <value name="VALUE">
                        <block type="math_number" id="Os.Q{xlLrT9ukcU2.he:">
                          <field name="NUM">6</field>
                        </block>
                      </value>
                      <value name="COMMON">
                        <block type="text" id="h|$`wDEX7VK:.vb#?+9~">
                          <field name="TEXT">{"type":"number","unit":"A","min":6,"max":17}</field>
                        </block>
                      </value>
                      <next>
                        <block type="comment" id="9(;?A=^Gm:J{1/0kx?D*">
                          <field name="COMMENT">Ladefreigabe nur bei Anforderung &gt;1.4kW</field>
                          <next>
                            <block type="on" id="LI/DnJ,bhNV[GPDQd5x2" disabled="true">
                              <field name="OID">javascript.0.Wallbox.Ladeleistung</field>
                              <field name="CONDITION">ne</field>
                              <field name="ACK_CONDITION"></field>
                              <statement name="STATEMENT">
                                <block type="controls_if" id="]g-4ksVUc,L:R`,Sam{]">
                                  <mutation else="1"></mutation>
                                  <value name="IF0">
                                    <block type="logic_compare" id="LR(_Lypo4Eh;q?jxiyWG">
                                      <field name="OP">LT</field>
                                      <value name="A">
                                        <block type="on_source" id="5ICK=yd_RoC2xZ=2nuCd">
                                          <field name="ATTR">state.val</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <block type="math_number" id="z2XHw[s8?rAAc45}wfIg">
                                          <field name="NUM">1.4</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <statement name="DO0">
                                    <block type="comment" id="M%HTxJcO2Ix:=1Lvth^w">
                                      <field name="COMMENT">Flatterschutz</field>
                                      <next>
                                        <block type="control" id="7)CJi@2G~T@ov|Nw^8Bk">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">mqtt.0.go-eCharger.frc.set</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="math_number" id="u3r[TM0$.O8x/1i[y_L#">
                                              <field name="NUM">1</field>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                  <statement name="ELSE">
                                    <block type="control" id="}uF^S[.4}bpeEf|E.^/~">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">mqtt.0.go-eCharger.frc.set</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="math_number" id="4n~49KOkX/ZZAR)1wrfD">
                                          <field name="NUM">0</field>
                                        </block>
                                      </value>
                                    </block>
                                  </statement>
                                </block>
                              </statement>
                              <next>
                                <block type="comment" id="*(ykd$e~x?uw_M6bq9=5">
                                  <field name="COMMENT">Freigabe Regler nur bei aktiver Ladung</field>
                                  <next>
                                    <block type="on" id="(J,T/^Dj!W64nts%+Q~f">
                                      <field name="OID">javascript.0.PV.Netzleistung</field>
                                      <field name="CONDITION">ne</field>
                                      <field name="ACK_CONDITION"></field>
                                      <statement name="STATEMENT">
                                        <block type="control" id="L+s}}3JbkdP9ird(}dD?">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">pid.0.C-Wallbox_Ladeleistung.in.act</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="on_source" id="BW+GhDj$_HcO%0A5`Uig">
                                              <field name="ATTR">state.val</field>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="comment" id="lT_D;o/aq/KP3g[/6[=X">
                                              <field name="COMMENT">"- 0.5" = Grundlast</field>
                                              <next>
                                                <block type="control" id="ui]E)FYnxhAtqjDiio_)">
                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                  <field name="OID">pid.0.C-Wallbox_Ladeleistung.para.max</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE">
                                                    <block type="math_constrain" id="~1f,$OZYDw3ka]UGHbrB">
                                                      <value name="VALUE">
                                                        <shadow type="math_number" id="^`IA.,ld+d0I)(kPy`9N">
                                                          <field name="NUM">50</field>
                                                        </shadow>
                                                        <block type="math_arithmetic" id="rd@D|6a,_es.dd@R7Q.z">
                                                          <field name="OP">MINUS</field>
                                                          <value name="A">
                                                            <shadow type="math_number" id="5Tfd4pORy!tC@3lXPp+*">
                                                              <field name="NUM">1</field>
                                                            </shadow>
                                                            <block type="math_arithmetic" id="P=JTpM]BWMnggQ^0$;2o">
                                                              <field name="OP">ADD</field>
                                                              <value name="A">
                                                                <shadow type="math_number" id="jV=45_4GcvdMfevaias|">
                                                                  <field name="NUM">1</field>
                                                                </shadow>
                                                                <block type="get_value" id="asCeq)lqPS^](|ZJ=~er">
                                                                  <field name="ATTR">val</field>
                                                                  <field name="OID">pid.0.C-Wallbox_Ladeleistung.in.set</field>
                                                                </block>
                                                              </value>
                                                              <value name="B">
                                                                <shadow type="math_number" id="yQ?:r`qozcbv_*^/!;MJ">
                                                                  <field name="NUM">0.5</field>
                                                                </shadow>
                                                                <block type="get_value" id="cpWV!jBFH`w(r?EjIGi%">
                                                                  <field name="ATTR">val</field>
                                                                  <field name="OID">lg-ess-home.0.user.essinfo.home.statistics.pcs_pv_total_power</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <shadow type="math_number" id=")BI(2-KYpw={iuPJ2=!e">
                                                              <field name="NUM">0.5</field>
                                                            </shadow>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <value name="LOW">
                                                        <shadow type="math_number" id="Pz3azW*5Kd,gx3~tI8wM">
                                                          <field name="NUM">1.4</field>
                                                        </shadow>
                                                      </value>
                                                      <value name="HIGH">
                                                        <shadow type="math_number" id="?*r`h-cHu$XdQx+lY.*=">
                                                          <field name="NUM">11.4</field>
                                                        </shadow>
                                                      </value>
                                                    </block>
                                                  </value>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </statement>
                                      <next>
                                        <block type="comment" id="R$%zd0jUahW`PPIGw_lZ">
                                          <field name="COMMENT">PID-Adapter hat y (Ladeleistung) verändert</field>
                                          <next>
                                            <block type="comment" id="*|YXiB6@e=%~gJ-enB-{">
                                              <field name="COMMENT">Berechnung von Strom und Anzahl Phasen</field>
                                              <next>
                                                <block type="on" id="Lv1XVslI[XE21]$gixhv">
                                                  <field name="OID">pid.0.C-Wallbox_Ladeleistung.out.y</field>
                                                  <field name="CONDITION">ne</field>
                                                  <field name="ACK_CONDITION"></field>
                                                  <statement name="STATEMENT">
                                                    <block type="controls_if" id="-94`Y!nA+O~2fKFScjGq">
                                                      <mutation elseif="1"></mutation>
                                                      <value name="IF0">
                                                        <block type="logic_compare" id="knkQ5MNMDQSuAO%~TzWI">
                                                          <field name="OP">GTE</field>
                                                          <value name="A">
                                                            <block type="on_source" id="];-|1rg~FCQeqrFcFT0!">
                                                              <field name="ATTR">state.val</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="math_number" id="Ds%kkB$E0UIh6#9snq+c">
                                                              <field name="NUM">4.3</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <statement name="DO0">
                                                        <block type="update" id="/0}^g)!y4{][e:rG8)V5">
                                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                          <field name="OID">javascript.0.Wallbox.Laden_mit_3_Phasen</field>
                                                          <field name="WITH_DELAY">FALSE</field>
                                                          <value name="VALUE">
                                                            <block type="logic_boolean" id=".}pj*s316R_g{2~urmom">
                                                              <field name="BOOL">TRUE</field>
                                                            </block>
                                                          </value>
                                                          <next>
                                                            <block type="update" id="2P=}qq.`fQQ04OAb_Q7(">
                                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                              <field name="OID">javascript.0.Wallbox.Ladestrom_temp</field>
                                                              <field name="WITH_DELAY">FALSE</field>
                                                              <value name="VALUE">
                                                                <block type="math_arithmetic" id="]Fs)6Y24R=Id7@(Wc%Uv">
                                                                  <field name="OP">DIVIDE</field>
                                                                  <value name="A">
                                                                    <shadow type="math_number" id="}6c;IG09uA}ji#f*}/u0">
                                                                      <field name="NUM">1</field>
                                                                    </shadow>
                                                                    <block type="math_arithmetic" id="./*ky,qeu2Jly-#o:.NA">
                                                                      <field name="OP">MULTIPLY</field>
                                                                      <value name="A">
                                                                        <shadow type="math_number" id="P}tikR,7o8zbZTw,kyiW">
                                                                          <field name="NUM">400</field>
                                                                        </shadow>
                                                                        <block type="on_source" id="I^XZ^2Ny^jPI`*2O;c_X">
                                                                          <field name="ATTR">state.val</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <shadow type="math_number" id="HFR$IT_BfO1Fr=+W9n0y">
                                                                          <field name="NUM">1000</field>
                                                                        </shadow>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <shadow type="math_number" id="=D~E~Voyz4-[!}*TtHg%">
                                                                      <field name="NUM">1</field>
                                                                    </shadow>
                                                                    <block type="math_arithmetic" id="J5E4vPyUoz28Mv!Yxe=%">
                                                                      <field name="OP">MULTIPLY</field>
                                                                      <value name="A">
                                                                        <shadow type="math_number" id="{kwtU*UGl5T1w_*XAMm}">
                                                                          <field name="NUM">400</field>
                                                                        </shadow>
                                                                      </value>
                                                                      <value name="B">
                                                                        <shadow type="math_number" id="k=H55W)(6ME~]s52b6^y">
                                                                          <field name="NUM">1</field>
                                                                        </shadow>
                                                                        <block type="math_single" id="/|J#~[u|cI)$^~3|vQA3">
                                                                          <field name="OP">ROOT</field>
                                                                          <value name="NUM">
                                                                            <shadow type="math_number" id="]LN=L2`Z+4=uzwd}DKK*">
                                                                              <field name="NUM">3</field>
                                                                            </shadow>
                                                                          </value>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </statement>
                                                      <value name="IF1">
                                                        <block type="logic_compare" id="lhSTc~J%TR]tQnvBRk3J">
                                                          <field name="OP">LTE</field>
                                                          <value name="A">
                                                            <block type="on_source" id="NuPp_$3eTiKW[F8EcSZr">
                                                              <field name="ATTR">state.val</field>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <block type="math_number" id="WZeW!mvt_8|Ji)a]O,R?">
                                                              <field name="NUM">4.1</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <statement name="DO1">
                                                        <block type="update" id=".8`KTV|:H]f67+4KkwFY">
                                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                          <field name="OID">javascript.0.Wallbox.Laden_mit_3_Phasen</field>
                                                          <field name="WITH_DELAY">FALSE</field>
                                                          <value name="VALUE">
                                                            <block type="logic_boolean" id="7tpYqM!BDOjQrWoD@)m~">
                                                              <field name="BOOL">FALSE</field>
                                                            </block>
                                                          </value>
                                                          <next>
                                                            <block type="update" id="v-z)wQ!i}E3KPIoqnf;Q">
                                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                              <field name="OID">javascript.0.Wallbox.Ladestrom_temp</field>
                                                              <field name="WITH_DELAY">FALSE</field>
                                                              <value name="VALUE">
                                                                <block type="math_arithmetic" id="#P7..Vx8z^mk`w0/op7$">
                                                                  <field name="OP">DIVIDE</field>
                                                                  <value name="A">
                                                                    <shadow type="math_number" id="fEQ,#vO5*8c)z%KwM{a3">
                                                                      <field name="NUM">1</field>
                                                                    </shadow>
                                                                    <block type="math_arithmetic" id="q=M1`]}3*XB,Y77`ZNw(">
                                                                      <field name="OP">MULTIPLY</field>
                                                                      <value name="A">
                                                                        <shadow type="math_number" id="PCER@)4yE#7cF/]heqO]">
                                                                          <field name="NUM">400</field>
                                                                        </shadow>
                                                                        <block type="on_source" id="H%kxy#Tea`Lbcuk^*jm%">
                                                                          <field name="ATTR">state.val</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <shadow type="math_number" id="_I;!W[$Rn+m/O+m(GZn`">
                                                                          <field name="NUM">1000</field>
                                                                        </shadow>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <shadow type="math_number" id="b(U)LH@-Y#=Lxzy*G#5V">
                                                                      <field name="NUM">230</field>
                                                                    </shadow>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </statement>
                                                    </block>
                                                  </statement>
                                                  <next>
                                                    <block type="comment" id="#xW+.d|2.Vtia9K#2I9A">
                                                      <field name="COMMENT">Phasenumschaltung an Wallbox senden, Regler pausieren</field>
                                                      <next>
                                                        <block type="on" id="/q{y(D=]qK]yr0KwDQ*Q">
                                                          <field name="OID">javascript.0.Wallbox.Laden_mit_3_Phasen</field>
                                                          <field name="CONDITION">ne</field>
                                                          <field name="ACK_CONDITION"></field>
                                                          <statement name="STATEMENT">
                                                            <block type="control" id="j}5$_.R^ys2qr?]3?DFP">
                                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                              <field name="OID">pid.0.C-Wallbox_Ladeleistung.in.hold</field>
                                                              <field name="WITH_DELAY">FALSE</field>
                                                              <value name="VALUE">
                                                                <block type="logic_boolean" id="]1sVAD$]{P-;J2/=)GLt">
                                                                  <field name="BOOL">TRUE</field>
                                                                </block>
                                                              </value>
                                                              <next>
                                                                <block type="controls_if" id="sCKj4U,.=qqK^sT[j9-R">
                                                                  <mutation else="1"></mutation>
                                                                  <value name="IF0">
                                                                    <block type="on_source" id="JoZpjKCyF%VUV,gq~8*~">
                                                                      <field name="ATTR">state.val</field>
                                                                    </block>
                                                                  </value>
                                                                  <statement name="DO0">
                                                                    <block type="control" id="#idta+mDk7An|9R9FSxE">
                                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                                                      <field name="OID">mqtt.0.go-eCharger.psm.set</field>
                                                                      <field name="WITH_DELAY">TRUE</field>
                                                                      <field name="DELAY_MS">5</field>
                                                                      <field name="UNIT">sec</field>
                                                                      <field name="CLEAR_RUNNING">TRUE</field>
                                                                      <value name="VALUE">
                                                                        <block type="math_number" id="[KoA|W-q-~_IK-~]bT~Y">
                                                                          <field name="NUM">2</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </statement>
                                                                  <statement name="ELSE">
                                                                    <block type="control" id="^xyJKc0U/ntD/akG2fdi">
                                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                                                      <field name="OID">mqtt.0.go-eCharger.psm.set</field>
                                                                      <field name="WITH_DELAY">TRUE</field>
                                                                      <field name="DELAY_MS">5</field>
                                                                      <field name="UNIT">sec</field>
                                                                      <field name="CLEAR_RUNNING">TRUE</field>
                                                                      <value name="VALUE">
                                                                        <block type="math_number" id="1T`;KG`5.v+,cGi7U-gZ">
                                                                          <field name="NUM">1</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </statement>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </statement>
                                                          <next>
                                                            <block type="on" id="D=Z$+roFM-SNg72/,9b`">
                                                              <field name="OID">mqtt.0.go-eCharger.modelStatus</field>
                                                              <field name="CONDITION">ne</field>
                                                              <field name="ACK_CONDITION"></field>
                                                              <statement name="STATEMENT">
                                                                <block type="controls_if" id="~D;_*(4y7:7F95q|YE*v">
                                                                  <value name="IF0">
                                                                    <block type="logic_compare" id="ofUANLJu18F7)zOxwnKK">
                                                                      <field name="OP">NEQ</field>
                                                                      <value name="A">
                                                                        <block type="on_source" id="1qySnM7=m`b@4K]I^A8F">
                                                                          <field name="ATTR">state.val</field>
                                                                        </block>
                                                                      </value>
                                                                      <value name="B">
                                                                        <block type="math_number" id="X{om?Wpv,SD#?)Awr$72">
                                                                          <field name="NUM">23</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </value>
                                                                  <statement name="DO0">
                                                                    <block type="control" id="9o3x0+NZi9FOv$%Jn],I">
                                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                                                      <field name="OID">pid.0.C-Wallbox_Ladeleistung.in.hold</field>
                                                                      <field name="WITH_DELAY">TRUE</field>
                                                                      <field name="DELAY_MS">5</field>
                                                                      <field name="UNIT">sec</field>
                                                                      <field name="CLEAR_RUNNING">TRUE</field>
                                                                      <value name="VALUE">
                                                                        <block type="logic_boolean" id="]rfM^IuodA02kP75,*w0">
                                                                          <field name="BOOL">FALSE</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </statement>
                                                                </block>
                                                              </statement>
                                                              <next>
                                                                <block type="comment" id="4CFmsu+d62e8[O_1TJJ$">
                                                                  <field name="COMMENT">Ladestrom in ganzen Ampere verzögert an Wallbox senden (Flatterschutz)</field>
                                                                  <next>
                                                                    <block type="on" id="}ee8Ww@51lY/sJH48da=">
                                                                      <field name="OID">javascript.0.Wallbox.Ladestrom_temp</field>
                                                                      <field name="CONDITION">ne</field>
                                                                      <field name="ACK_CONDITION"></field>
                                                                      <statement name="STATEMENT">
                                                                        <block type="update" id="zshQaj)(D+w_TKTgRD:`">
                                                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                          <field name="OID">javascript.0.Wallbox.Ladestrom</field>
                                                                          <field name="WITH_DELAY">FALSE</field>
                                                                          <value name="VALUE">
                                                                            <block type="math_constrain" id="wFmf`{^upWMB2OJdAb|G">
                                                                              <value name="VALUE">
                                                                                <shadow type="math_number" id="OolIglBQ1NPR+!O4eGrf">
                                                                                  <field name="NUM">50</field>
                                                                                </shadow>
                                                                                <block type="math_round" id="$m0s.BG/!^X?k^Afni8@">
                                                                                  <field name="OP">ROUNDDOWN</field>
                                                                                  <value name="NUM">
                                                                                    <shadow type="math_number" id="`7oxcQI80-L-5|v6l{ZE">
                                                                                      <field name="NUM">3.1</field>
                                                                                    </shadow>
                                                                                    <block type="on_source" id="%v#Z0Z$`8}+tD/BK.cC|">
                                                                                      <field name="ATTR">state.val</field>
                                                                                    </block>
                                                                                  </value>
                                                                                </block>
                                                                              </value>
                                                                              <value name="LOW">
                                                                                <shadow type="math_number" id="*e`aXaysjQdx*v%uiLb9">
                                                                                  <field name="NUM">6</field>
                                                                                </shadow>
                                                                              </value>
                                                                              <value name="HIGH">
                                                                                <shadow type="math_number" id="YaWi@k@syv0)}OtI#DEe">
                                                                                  <field name="NUM">16</field>
                                                                                </shadow>
                                                                              </value>
                                                                            </block>
                                                                          </value>
                                                                        </block>
                                                                      </statement>
                                                                      <next>
                                                                        <block type="on" id="5fjJvXZz9=9xHMmXqipC">
                                                                          <field name="OID">javascript.0.Wallbox.Ladestrom</field>
                                                                          <field name="CONDITION">ne</field>
                                                                          <field name="ACK_CONDITION"></field>
                                                                          <statement name="STATEMENT">
                                                                            <block type="control" id="s$Nt!/B/Vr%PS,`~~{Dt">
                                                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                                                              <field name="OID">mqtt.0.go-eCharger.amp.set</field>
                                                                              <field name="WITH_DELAY">TRUE</field>
                                                                              <field name="DELAY_MS">5</field>
                                                                              <field name="UNIT">sec</field>
                                                                              <field name="CLEAR_RUNNING">TRUE</field>
                                                                              <value name="VALUE">
                                                                                <block type="on_source" id="G}rg6b4k{eWdw-W7?WZp">
                                                                                  <field name="ATTR">state.val</field>
                                                                                </block>
                                                                              </value>
                                                                            </block>
                                                                          </statement>
                                                                        </block>
                                                                      </next>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </next>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </next>
        </block>
      </xml>
      
      mcm1957 1 Reply Last reply Reply Quote 1
      • mcm1957
        mcm1957 @fu_zhou last edited by

        @fu_zhou

        Ich hab da mal ein Topic geöffnet.

        Bitte sobald passedn dorthin wechseln wenn es um Anwendung / Regelegungstechnikfragen geht.

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

          ich beobachte gerade die Überschussladung und stelle fest, dass mit der Zykluszeit noch etwas nicht ganz stimmt. Ich habe 500 ms parametriert, das ist auch der Wert, auf den immer wieder gesprungen wird, aber zwischendrin kommen sporadisch "Einbrüche" z.B. auf 41, 280, 340 ms, ich glaube, immer folgend auf die (dynamische) Veränderung von max. @mcm57 kannst du da noch mal reinschauen?

          Ergänzung: Es sieht so aus, als wenn das immer passiert, wenn man einen "para" ändert - auch bei Tn, Kp etc.

          mcm1957 1 Reply Last reply Reply Quote 0
          • mcm1957
            mcm1957 @fu_zhou last edited by

            @fu_zhou
            Das sollte so nicht sein ist aber denkbar. Ich schaus mir an. Bin nur nicht sicher ob ich heut noch an pc komme. Bin unterwegs.

            fu_zhou 1 Reply Last reply Reply Quote 0
            • fu_zhou
              fu_zhou @mcm1957 last edited by

              @mcm57 Ich habe noch einen weiteren Regler hinzugefügt, damit ist die Instanz neu gestartet worden, jetzt scheint last_delta stabil bei 500 ms +- 1ms zu bleiben.

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

                @mcm57 beim zweiten Regler aus der Adapter-Instanz ist die Zykluszeit stabil, beim ersten kommt als Reaktion auf eine para Veränderung kurzzeitig der Sprung im last_delta.

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

                  @fu_zhou
                  Danke
                  Fehler schon gefunden. An sich müßte der Fehler bei allen Reglern auftreten.

                  Ursache ist eine Sonderbehandling von Cycle Time == 0. In diesem Fall wird eine Neuberechnugn getriggert, wenn neue Daten (act, Parameter, ...) eingeleifert werden. Das stammt noch aus der 0.0.0 Version. Ich bin aber zwischenzeitlich überzeutgt, dass das niemand braucht. Bevor ich nun in 3 Itaérationen (:-)) den Bug versuche zu beheben werde ich diese Sonderbahndlung ganz entfernen. Macht das Verhalten klarer nachvollziehbar. Wenn mal wirklich ein Bedarf auftritt nicht zyklisch sondern immer beim SChreiben der Daten neu zu berechnen kann man das ja wieder einfügen. Allerdings glaub ich wär da dann ein eigener State "jetzt berechnen" sinnvoller als diese krude Autiomatik.

                  Neue Release sollte morgen kommen.

                  fu_zhou 1 Reply Last reply Reply Quote 0
                  • fu_zhou
                    fu_zhou @mcm1957 last edited by

                    @mcm57 Da kann ich voll mitgehen - wie kann's auch anders sein 😉! Ist da nicht eh ein Denkfehler drin? Den I-Anteil will ich doch zyklisch berechnen, um die Regelabweichung abzubauen. Wenn eine Berechnung nur stattfindet, wenn sich Soll oder Ist ändert, bekomme ich doch eigentlich einen reinen P-Regler, auch wenn eine Nachstellzeit paramteriert ist, oder?

                    paul53 mcm1957 2 Replies Last reply Reply Quote 0
                    • paul53
                      paul53 @fu_zhou last edited by

                      @fu_zhou sagte: Wenn eine Berechnung nur stattfindet, wenn sich Soll oder Ist ändert, bekomme ich doch eigentlich einen reinen P-Regler, auch wenn eine Nachstellzeit paramteriert ist, oder?

                      Nein, es kann aber lange dauern, bis sich die Regelabweichung ändert. Bis dahin ändert sich das Stellsignal nicht und macht dann plötzlich einen starken Sprung durch die Berechnung des I-Anteils. Deshalb sollte bei aktiviertem I-Anteil (Tn) auch immer eine nicht zu lange Zykluszeit aktiviert sein.

                      1 Reply Last reply Reply Quote 0
                      • mcm1957
                        mcm1957 @fu_zhou last edited by

                        @fu_zhou said in Test neuer Adapter pid (pid-Regler) V0.0.x:

                        @mcm57 Da kann ich voll mitgehen - wie kann's auch anders sein 😉! Ist da nicht eh ein Denkfehler drin? Den I-Anteil will ich doch zyklisch berechnen, um die Regelabweichung abzubauen. Wenn eine Berechnung nur stattfindet, wenn sich Soll oder Ist ändert, bekomme ich doch eigentlich einen reinen P-Regler, auch wenn eine Nachstellzeit paramteriert ist, oder?

                        Nein, dass stimmt so nicht.
                        Der I Fehleranteil würde dann nur über ein längere Zeit summiert und dementsprechende ausfallen.

                        Aber wie schon geschrieben - ich seh den Bedarf nicht und mit fliegt diese Sonderbehandlung die nun schon zum driten (?) Mal nicht wie geplant funtkioniert weill immer wieder ein anderer Sonderfall nichgt codiert ist.

                        Mit 0.0.7 wird ein neuer Wert (hoffentlich) nur mehr berechnet wenn eine Zyklusperiode abgelaufen ist (und der Regler nicht gestoppt ist). Extrawürste gibts nicht mehr.

                        McM

                        1 Reply Last reply Reply Quote 0
                        • mcm1957
                          mcm1957 @fu_zhou last edited by

                          @fu_zhou
                          Neue Version 0.0.7 released
                          Nun sollten Updates definitiv im Zyklusraster aktualisisert werden solange der Controller nicht gestoppet ist

                          fu_zhou 1 Reply Last reply Reply Quote 0
                          • fu_zhou
                            fu_zhou @mcm1957 last edited by

                            @mcm57 super, passt, vielen Dank!

                            mcm1957 1 Reply Last reply Reply Quote 0
                            • mcm1957
                              mcm1957 @fu_zhou last edited by

                              Die Beschreibung des Adapters gibts nun auch auf deutsch:

                              https://github.com/iobroker-community-adapters/ioBroker.pid/blob/master/docs/de/pid_de.md

                              paul53 1 Reply Last reply Reply Quote 1
                              • paul53
                                paul53 @mcm1957 last edited by paul53

                                @mcm57
                                In welcher Einheit werden Tn (Nachstellzeit) und Tv (Vorhaltezeit) angegeben?
                                Da mit Nachkommastellen vermute ich Sekunden.

                                mcm1957 1 Reply Last reply Reply Quote 0
                                • mcm1957
                                  mcm1957 @paul53 last edited by

                                  @paul53
                                  Sollten Sekunden sein.

                                  Die eingegebenen Werte werden in keiner Weise umgerechnet sondern 1:1 in die angegebenen Formeln eingesetzt.

                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @mcm1957 last edited by

                                    @mcm57 sagte: Sollten Sekunden sein.

                                    Bitte in der Beschreibung angeben.

                                    1 Reply Last reply Reply Quote 0
                                    • Q
                                      quorle last edited by

                                      Welche Werte würde man dem PI-Regler übergeben müssen, um einen Heizstab nach der vorhandenen PV-Leistung regeln lassen zu können?
                                      Ein 0-100% Regelausgang würde mir reichen. Abschaltung des Reglers über die Temperatur wäre kein Problem ( zusätzliches Blockly ). Aktuelle PV-Leistung und aufgenommene Leistung des Heizstabes sind im ioB vorhanden.

                                      mcm1957 paul53 2 Replies Last reply Reply Quote 0
                                      • mcm1957
                                        mcm1957 @quorle last edited by mcm1957

                                        @quorle said in Test neuer Adapter pid (pid-Regler) V0.0.x:

                                        Welche Werte würde man dem PI-Regler übergeben müssen, um einen Heizstab nach der vorhandenen PV-Leistung regeln lassen zu können?
                                        Ein 0-100% Regelausgang würde mir reichen. Abschaltung des Reglers über die Temperatur wäre kein Problem ( zusätzliches Blockly ). Aktuelle PV-Leistung und aufgenommene Leistung des Heizstabes sind im ioB vorhanden.

                                        @paul53
                                        @fu_zhou

                                        Schätze da seid ihr seid Könner 🙂

                                        1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @quorle last edited by

                                          @quorle sagte: Aktuelle PV-Leistung

                                          PV-Leistung (WR) oder PV-Überschuss (Einspeisung)?

                                          Q 1 Reply Last reply Reply Quote 0
                                          • Q
                                            quorle @paul53 last edited by

                                            @paul53

                                            Sorry, meinte natürlich PV-Überschuss (Einspeiseleistung). Dieser Wert ist aber sowohl negativ, als auch positiv. Negativ = Netzbezug, positiv = Überschusseinspeisung

                                            paul53 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            542
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            314
                                            38590
                                            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