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 @mcm1957 last edited by fu_zhou

      @mcm57 es scheint so zu sein, dass bei Tn >1 der Regler sich bei max festhängt und bei Tn < 1 sich der Regler bei min festhängt. Nur bei Tn = 1 funktioniert's. Wenn der Regler mal hängt, bekommt man ihn wieder in Gang, indem man Tn = 1 setzt.

      Und bei Tn < 1 läuft der Regler Richtung max, bleibt nicht stehen und fängt wieder bei min an (bei Regelabweichung mit entsprechendem Vorzeichen), habe als max diesmal 3, nicht 11 drin:

      pid.0
      2023-04-14 19:36:19.924	info	[C-TestRegler2] update() - {"ts":1681493779924,"act":-1,"set":-0.5,"diff":0.5,"off":0,"err":0.5,"y":1.6251,"lim":false,"dt":501,"differr":null,"sumerr":15.751,"supr":false}
      
      pid.0
      2023-04-14 19:36:19.423	info	[C-TestRegler2] update() - {"ts":1681493779423,"act":-1,"set":-0.5,"diff":0.5,"off":0,"err":0.5,"y":1.5750000000000002,"lim":false,"dt":500,"differr":null,"sumerr":15.25,"supr":false}
      
      pid.0
      2023-04-14 19:36:18.923	info	[C-TestRegler2] update() - {"ts":1681493778923,"act":-1,"set":-0.5,"diff":0.5,"off":0,"err":0.5,"y":3,"lim":true,"dt":501,"differr":null,"sumerr":14.75,"supr":false}
      
      pid.0
      2023-04-14 19:36:18.422	info	[C-TestRegler2] update() - {"ts":1681493778422,"act":-1,"set":-0.5,"diff":0.5,"off":0,"err":0.5,"y":2.977000000000001,"lim":false,"dt":501,"differr":null,"sumerr":29.270000000000014,"supr":false}
      
      pid.0
      2023-04-14 19:36:17.921	info	[C-TestRegler2] update() - {"ts":1681493777921,"act":-1,"set":-0.5,"diff":0.5,"off":0,"err":0.5,"y":2.926900000000001,"lim":false,"dt":501,"differr":null,"sumerr":28.769000000000013,"supr":false}
      
      mcm1957 1 Reply Last reply Reply Quote 0
      • mcm1957
        mcm1957 @fu_zhou last edited by mcm1957

        @fu_zhou
        Ja ich glaub ich hab den Fehler schon. Die Umstellung dass sumErr schon beim integrieren tn berücksichtigt dürfte nicht in die Limitierung eingeflossen sein,

        Kannst du mir bitte noch deine Parametereinstelliung (kp, tn, tv, max, min, gff off) schicken? Ich will das mal in Excel nachrechnen was ich codiere 🙂

        sumErr wird nämlich beim begrenzen auch limitiert. Nur muss das zurückgerechnet werden dass sumErr xxx ganu y == lime rgibt. Und dürfte der Wurm drinnen sein.

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

          @mcm57
          Kp = 0,1
          Tn = > 1 oder < 1 (10 im Produktivbetrieb, wird sich aber noch ändern, wenn der Regler min/max richtig verarbeitet 😉 ) oder = 1 um den Regler wieder in Gang zu setzen
          Tv = 0
          max = 3 (11 im Produktivbetrieb)
          min = 1
          off = 0
          sup = 0,2

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

            @fu_zhou
            Bitte teste mal die neueste Release (0.0.6).

            Lt. Excel sollt es nun passen. Der Sprung um 10 den du beobachtet hast passt auch zu tn=10

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

              @mcm57 Habe jetzt mit Tn > 1 und Tn < 1 getestet. Jetzt passt es, was ich so gesehen und probiert habe! Auf in's Wochenende - PV-Überschuss-Laden geregelt bekommen!

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

                Mal ein kurzes Fazit von der PV-Überschussladung: Echt super, mit dem Regler!

                Ich verwende folgende Parameter:

                • Istwert: aktuelle Netzleistung (- = Einspeisung, + = Bezug)
                • Sollwert: 0,1 kW Netzeinspeisung (= -0,1 kW), wobei ich den verschieben kann, z.B. auf +3,0 kW, um auf jeden Fall zu laden (dann halt nicht PV-Überschuss)
                • Kp=0,1, Tn=10s, Tv=0s (bisher nur PI-Regler)
                • sup: 0,2 kW: damit werden Schwankungen im Haus (hier ne Lampe an, da startet der Kühlschrank) gut weggefiltert, ebenso wird damit die Situation verhindert, dass der Regler die Wallbox als Sprungantwort ständig zwischen 2 Stromstärken hin- und herschaltet (z.B. 7A - 8A -7A, die Wallbox goE HomeFix arbeitet nur mit ganzen Ampere)
                • min: die Wallbox startet bei 230V, 6A (= ca.1,4 kW), d.h. mein min ist fix auf 1.3 kW eingestellt => der Regler braucht nicht die gesamte Totzone von 0 bis 1.4 kW hochreglen, bis die Ladung freigegeben wird
                • max: berechne ich dynamisch aus verfügbarer PV-Leistung minus 0,5 kW Grundlast plus Sollwert Netzbezug. Wenn eine Wolke drüber zieht und die PV-Leistung einbricht, muss der Regler nicht erst runterregeln, sondern reduziert die Ladeleistung sehr schnell. Ich nutze daher Kp, nicht Xp, weil die Veränderung von max keinen Einfluss auf y haben darf (außer y > neues max).
                • hold: setze ich auf true, wenn die Anzahl der Phasen (1 nach 3, 3 nach 1) aufgrund der angeforderten Ladeleistung umgeschaltet wird. Die Wallbox pausiert hier kurz den Ladevorgang, was dazu führt, dass die vorherige Ladeleistung schlagartig ins Netz gegeben wird und der Regler mit einem Sprung antworten würde, was dazu führt, dass die Phasen ständig hin- und herschalten und gar nicht mehr geladen wird (durch die Ladepause bei der Phasenumschaltung). hold setze ich wieder auf false, wenn die Phasenumschaltung abgeschlossen ist und die Wallbox mit der neuen Anzahl Phasen weiterlädt

                Ich muss mal sehen, ob ich noch eine Tv ermittle und in wie weit Kp, Tn und sup noch weiter optimiert werden können. Bisher bin ich aber schon sehr zufrieden!

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

                  @fu_zhou
                  Danke für das ausführliche Feedback incl Anwendungsbericht.

                  1 Reply Last reply Reply Quote 0
                  • O
                    oxident last edited by

                    Bitte steinigt mich nicht wegen der vielleicht blöden Frage, aber wäre dieser Adapter prinzipiell auch dafür geeignet, die Lade-/Entladeleistung eines PV-Akkus zu berechnen um eine "Nulleinspeisung" zu erreichen?

                    Derzeit steuere ich mein Victron-System mehr oder weniger "klassisch", d. h., ich regele jede Sekunde nach in der Hoffnung, am Zähler 0kW zu erreichen...

                    PID ist für mich Neuland ... klingt aber spannend 😄

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

                      @oxident sagte: geeignet ... um eine "Nulleinspeisung" zu erreichen?

                      Ja.

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

                        @oxident Du hast aus meiner Sicht genau so einen Anwendungsfall, für den der PID-Adapter gedacht ist.

                        Wie "regelst" du denn jetzt nach? Wie gibst du dem Victron-System die Lade-/ Entladeleistung vor?

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

                          @fu_zhou Ich prüfe jede Sekunde, wie die Bilanz am Stromzähler ist und addiere dieses Wert zum derzeitigen Setpoint des Victron Multiplus:

                          Setpoint-Neu += (Setpoint-Alt + Netzbezug)

                          Da dies aber schnell zu krassen Schwingungen geführt hat habe ich die Formel ein wenig verändert:

                          Setpoint-Neu += (Setpoint-Alt + Netzbezug) * 0.6

                          Außerdem führe ich die Änderung nur aus, wenn der Netzbezug < -100 oder > 100 ist da ich dummerweise noch einen weiteren, nicht steuerbaren Akku hab.

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

                            @oxident da hast du im Prinzip einen P-Regler gebaut mit Kp = 0,6, sup = 100 und Zykluszeit 1 Sekunde. Die Eigenschaft eines P-Reglers ist, dass es bei einer bleibenden Regelabweichung bleibt, diese wird erst durch einen I-Anteil abgebaut. Ist eine Nachstellzeit Tn parametriert, bekommst du einen PI-Regler, parametrierst du noch eine Vorhaltezeit Tv, bekommst du einen PID-Regler, der noch schneller reagiert, als ein PI-Regler.
                            Wenn du dein System zu gleichmäßigen Schwingungen bringen kannst, kannst du z.B. über Ziegler-Nichols oder Chien, Hrones und Reswick Kp, Tn und Tv ermitteln, siehe: https://de.wikipedia.org/wiki/Faustformelverfahren_(Automatisierungstechnik)
                            Du musst dabei aber immer bedenken, dass dein System die durch den Regler ausgegebenen Änderungen der Stellgröße = bei dir die Ansteuerung der Lade- und Entladeleistung des Akkus dauerhaft verkraften muss. Es nützt dir ja nichts, wenn du die Nulleinspeisung mit optimalen Reglerparametern hinbekommst, aber nach einem halben Jahr die Elektronik oder der ganze Akku kaputt ist, weil die Bauteile mechanisch/elektronisch nicht für eine stetige Regelung ausgelegt und geeignet sind.

                            O mcm1957 2 Replies Last reply Reply Quote 2
                            • O
                              oxident @fu_zhou last edited by oxident

                              @fu_zhou Wow, danke Dir. Dann hab ich genug Lesestoff für das Wochenende 😉

                              Über die Grenzen des Akkus muss ich mir zum Glück keine Gedanken machen. Da bremst mich das BMS notfalls. Ubd mehr als 400W/s wird eh nicht geändert. Diese Rampenzeit wird vom Ladegerät forciert.

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

                                @fu_zhou
                                DANKE für seinen Support in Regelungstechnik.
                                Bei Softwareproblemen kann ich ja helfen - in Regelungstechnik bin ich allerdings eher wenig informiert.

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

                                  @fu_zhou das ist ein interessanter Anwendungsfall, den sicher einige hier übernehmen können. Vielleicht würde sich hier anbieten einen eigenen thread hierzu anzulegen, oder?
                                  Also.. ich versuche es grad nachzubauen. Bisher war ich eigentlich ganz zufrieden mit meinem eigenen SCript dazu, aber besser geht immer 😉
                                  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?

                                  go-e.1.energy.adjustAmpLevelInWatts
                                  

                                  Und wenn ich es richtig verstehe muss ich da irgendwie in der selben Einheit bleiben... also alles in kW?
                                  Ich habe erstmal ganz plump angefangen. Ein Script setzt den actual value auf die aktuelle Netzleistung vom smartmeter, also wie bei dir (- = Einspeisung, + = Bezug). Der Wert kommt in Watt rein, deswegen teile ich den Wert durch 1000 um auf kW zu kommen:

                                  9db54a1a-86dc-47cb-bb46-52905a92d70e-image.png

                                  Den Teil von dir für die max Berechnung habe ich noch nicht implementiert. Ich habe hier erstmal nur die Zahl 3,7 für 3,7 kW eingesetzt und 1,4 kW für min.
                                  So lasse ich erstmal laufen ohne das dieses Script wirklich eingreift.... sprich der y-Wert wirkt noch nicht aktiv. Set habe ich auf 0 gesetzt.

                                  Das Ganze scheint schon mal so zu reagieren wie erwartet:
                                  y wird geregelt zwischen 1,4 und 3,7 kW. Bei Bezug wird es kleiner Richtung 1,4 und bei Einspeisung wird es größer Richtung 3,7.
                                  Ich werde das mal beobachten und dann mal scharf ausprobieren.

                                  Mein altes SCript hat bisher immer in 1 A-Schritten geregelt. Interessant wäre es ob das jetzt auch mit größeren Sprüngen funktionieren könnte.

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

                                    @fu_zhou
                                    @paul53

                                    Ein neuer Thread zum Support der regelungstechnischen Fragen (im Gegensatz zu Fragen die die Softwareimplemntierung, Abstürze, Features, ... betreffen, würde wahrscheinölich Sinn machen.
                                    ABER wie schon geschrieben, ich bin zu wenig Regelungstechniker um hier seriös unterstützen zu können.

                                    Falls also wer von euch hier bereit ist zu supporten, bitte gern einen Extra Thread aufmachen (oder mir sagen, dann mach ichs). Es kann auch gerne das Wiki (https://github.com/iobroker-community-adapters/ioBroker.pid/wiki) benutzt werden falls das sinnvoll erscheint und jemand z.B. Artikel zum Einsatz mit einer konkreten Aufgabenstellung ablegen will.

                                    Größter Nachteil diese Threads ist dass ich nicht weiß ob "nicht-tester" hier posten können. Ansonsten stört es mich auch nicht, wenn hier diskutiert wird solange es mit dem pid Adapter im Zusammenhang steht.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            899
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            15
                                            303
                                            35412
                                            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