- Home
- Deutsch
- Skripten / Logik
- Blockly
- PV Überschuss -> Wetter -> Mindestlaufzeit
PV Überschuss -> Wetter -> Mindestlaufzeit
-
@paul53 Sorry, hatte das falsche Bild in der Zwischenablage. Hab die PV Statistik oben angehangen.
-
@hennerich sagte: Hab die PV Statistik oben angehangen.
Die Lücken in der PV-Leistung sind zu kurz zum Ausschalten.
-
@paul53
Ich sehe gerade, dass ich doch um 13:08 Uhr den Trigger Wärmepumpe EIN im Pushover bekommen hab.
Nur wo ist der Unterschied zu 11:xx Uhr? -
@paul53
Hallo Paul,heute sieht es soweit ganz gut aus. Folgende Trigger wurden gemeldet:
Und dazu passend die PV Auswertung:
Siehst du eine Möglichkeit, wie ich am besten (zum möglichen debuggen) die aktuelle Laufzeit der Timer abgreifen kann?
-
@hennerich sagte: die aktuelle Laufzeit der Timer abgreifen kann?
Man kann nur parallel ein Intervall laufen lassen.
Oder man verwendet gleich ein Intervall und stoppt es, wenn es runter gezählt hat. Beispiel mit 1/10 Minuten:
-
@paul53
Hallo Paul,ich habe das jetzt mal so umgebaut wie du geschrieben hast.
Was mir auffällt ist folgendes:
Eben hatten wir einen starken Abfall der PV Leistung
hier würde ich erwarten, dass der Intervall zum Ausschalten (25min) losläuft.
Jedoch sehe ich, dass im Log zwischen 15:34 und 15:42 Uhr folgendes steht:
...
Hier wollte ich dir eingentlich die Info ausgabe zeigen und darauf hinweisen, dass der Counter für Wärmepumpe EIN runterzählt und nicht der für Wärmepumpe AUS. Aber das Log hat die letzten EInträge schon rausrotiert und wenn ich das current Log runterlade bekomme ich alles auf einer separaten Webseite angezeigt und kann da nichts filtern. Ich hab keine Ahnung, wie ich dir das kompakt zeigen kann -
@hennerich
Du zählst GrenzWertAUS runter!
Die Intervalle müssen gestoppt werden, wenn das entsprechende delay abgelaufen ist. -
@paul53
Ohh, das hatte ich übersehen. Jetzt besser?
-
@hennerich sagte: Jetzt besser?
Ja, aber das Stoppen der Intervalle fehlt noch.
-
@paul53 sagte in PV Überschuss -> Wetter -> Mindestlaufzeit:
@hennerich sagte: Jetzt besser?
Ja, aber das Stoppen der Intervalle fehlt noch.
Ich bin zu doof für diese Logik und weiß nicht wo ...
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="~k`8kJ:sPF|Vk#_ad%P.">GrenzWertEIN</variable> <variable id="w$Za%uJf{mZj9ORgsqfC">GrenzWertAUS</variable> <variable type="timeout" id="delayON">delayON</variable> <variable id="jD:V$.])KxCes_FflMoE">RestMinEIN</variable> <variable type="timeout" id="delayOFF">delayOFF</variable> <variable type="interval" id="IntervallEIN">IntervallEIN</variable> <variable id="amaP_B3+(hN0#V{xCDq{">RestMinAus</variable> <variable type="interval" id="IntervallAUS">IntervallAUS</variable> </variables> <block type="control" id="9.)4r%kZ1%Uf;Uil4tNE" x="88" y="-737"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.WP-EIN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_compare" id="#i9TTXCwv:!|r4Z!GG|C"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="|5$u^Ob!6lxj%^zdLtP3"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field> </block> </value> <value name="B"> <block type="get_value" id="e{qbXHORf)Ry)koGvIAz"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Test</field> </block> </value> </block> </value> <next> <block type="on_ext" id="}3~1BrwJhZsTt4(%VB$m"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="-MQX`Qtp(z`+JHao5xfU"> <field name="oid">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="Md.!Zw!m:cAcvJ8WWfbK"> <field name="VAR" id="~k`8kJ:sPF|Vk#_ad%P.">GrenzWertEIN</field> <comment pinned="false" h="80" w="160">Setze Wert von PV-Grenzwert EIN auf Variable GrenzWertEIN Beispiel: 4.000W</comment> <value name="VALUE"> <block type="get_value" id="*_~$A8Ja.]@}FP_DxW.Q"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Test</field> </block> </value> <next> <block type="variables_set" id="DH5y,u|E}^JG]$AxF_0?"> <field name="VAR" id="w$Za%uJf{mZj9ORgsqfC">GrenzWertAUS</field> <comment pinned="false" h="80" w="160">Variable GrenzWertAUS entspricht dem Wert von GrenzWertEIN minus 1000 Beispiel: 3.000W</comment> <value name="VALUE"> <block type="math_arithmetic" id="Z:.{deRr:BeGa!O.8l|~"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="!gdbsx5^mYvq;Q:l7wq@"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="RgtOXkV@;:87B?hUY*QR"> <field name="VAR" id="~k`8kJ:sPF|Vk#_ad%P.">GrenzWertEIN</field> </block> </value> <value name="B"> <shadow type="math_number" id="Vz!O1@CFR#ehods.od[("> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="n!=jZJE^6mHBKDpXo.~H"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="F,$^e-N/uEfaAGnUH!X)"> <field name="OP">LTE</field> <comment pinned="false" h="80" w="160">Wenn Wert von PVLeistungAktuell kleiner/gleich GrenzWertEIN ist Beispiel: Wert=5.000W Grenzwert=4.000W</comment> <value name="A"> <block type="on_source" id=")CaD4fVQ_}/GB[^hJUPS"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="ep2Vxwy;n/9,oj@j-*(e"> <field name="VAR" id="~k`8kJ:sPF|Vk#_ad%P.">GrenzWertEIN</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="Jou2^[9@NXb05W+8,!cA"> <field name="NAME">delayON</field> <comment pinned="false" h="80" w="160">delayON wird angehalten</comment> </block> </statement> <value name="IF1"> <block type="logic_compare" id="$HL3+5/toZG]vvR5!xBb"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="Db-m`vymJ+K:XZ`UzM(-"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="variables_get" id="{[UO_?.lT2(Z`F}t9Pcr"> <field name="VAR" id="~k`8kJ:sPF|Vk#_ad%P.">GrenzWertEIN</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="U|4oJ2qg;rWY^j%.*/ab"> <field name="NAME">delayON</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="W7P9H}{Vzd#7x;;z:$tZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.WP-EIN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=":S^|DZu!LD-Ow%3ZtW{#"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_clearinterval" id="OcD6YI+XBS7Y:V/aw/e{"> <field name="NAME">IntervallEIN</field> <next> <block type="telegram" id="ev!(EAJRtv]p)o7VsK`P"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="lO=Ipl$lGa$1f7oy@s3n"> <field name="TEXT">Wärmepumpe EIN</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id="$?/xu6+$``%_J`Sn/J10"> <field name="VAR" id="jD:V$.])KxCes_FflMoE">RestMinEIN</field> <value name="VALUE"> <block type="math_number" id="j@O(2`{X!qMH%62G~i(2"> <field name="NUM">10</field> </block> </value> <next> <block type="timeouts_setinterval" id="6OdsXm0TT-}6oXEf:Tq@"> <field name="NAME">IntervallEIN</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="8vEQ.(5M+*D]Ix$BgU}T"> <field name="VAR" id="jD:V$.])KxCes_FflMoE">RestMinEIN</field> <value name="DELTA"> <shadow type="math_number" id="UY0dE7Un99ec|*AF_jdS"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="debug" id="@Q6u.OxwxjO@ibshZ]zr"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="[sg,%`/EWxk~IVDZ5P/e"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="nj@#1:iuQJ6WqSf`rhUs"> <field name="VAR" id="jD:V$.])KxCes_FflMoE">RestMinEIN</field> </block> </value> <value name="ADD1"> <block type="text" id="7G}tu]=T:^/O1S8OcN:J"> <field name="TEXT">Min bis EIN</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="JFN3wEK/Xvz4ybZHw{my"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="XesGtKK2gp;RsCJ_mHH$"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="pf^c?y.aH:xz+p5{4O68"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="L*nZas:`}G[90Bwa*K^e"> <field name="VAR" id="w$Za%uJf{mZj9ORgsqfC">GrenzWertAUS</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="-8DbsnCmf)j-=Oj^:]Rg"> <field name="NAME">delayOFF</field> </block> </statement> <value name="IF1"> <block type="logic_compare" id="2lv;nFUd}r-SgTS#v_L*"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="91}fz=s636Ti:.cl~Ni@"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="variables_get" id="wsSKB;8]gL%$/b6P-mOB"> <field name="VAR" id="w$Za%uJf{mZj9ORgsqfC">GrenzWertAUS</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="WT/T-l8!$DEtY$S|Zm6w"> <field name="NAME">delayOFF</field> <field name="DELAY">25</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="t|s4f6HoY9$j2j)l.{cg"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.WP-EIN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]E?N5uh`{KcG;mry8y*p"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_clearinterval" id="-}xX_,-$8~O;#j1Vtwia"> <field name="NAME">IntervallAUS</field> <next> <block type="telegram" id="3p@)nLs/8f`8pp]!{or7"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="$.^J0P}^mH4v]}GiV6XX"> <field name="TEXT">Wärmepumpe AUS</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id="%H*TfRWa)GZS:,iSPG:4"> <field name="VAR" id="amaP_B3+(hN0#V{xCDq{">RestMinAus</field> <value name="VALUE"> <block type="math_number" id="exPm748C31FAvA^Qt/hw"> <field name="NUM">25</field> </block> </value> <next> <block type="timeouts_setinterval" id="Ht7o2jnKLT877}x=|Z|m"> <field name="NAME">IntervallAUS</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="@`5N(frN2x6F@0|C/ciE"> <field name="VAR" id="amaP_B3+(hN0#V{xCDq{">RestMinAus</field> <value name="DELTA"> <shadow type="math_number" id=",+*FYp+HyhOAyb(WCK?]"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="debug" id="-;OQ]YTA^qzPA:M]]`W)"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="MPIvK@;Fu2s})Ru}el}u"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="txt^1ilNKmJl+pZBW/(O"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="0h7!L${!94v;Zt9v,In|"> <field name="VAR" id="amaP_B3+(hN0#V{xCDq{">RestMinAus</field> </block> </value> <value name="ADD1"> <block type="text" id="IWR)h8^!qbv4}9e6kb9~"> <field name="TEXT">Min bis AUS</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>
-
@hennerich sagte: weiß nicht wo ...
Das passt doch schon. Außerdem zusammen mit dem Stopp der Verzögerung:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</variable> <variable id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</variable> <variable type="timeout" id="delayON">delayON</variable> <variable id="jD:V$.])KxCes_FflMoE">RestMinEIN</variable> <variable type="timeout" id="delayOFF">delayOFF</variable> <variable type="interval" id="IntervallEIN">IntervallEIN</variable> <variable id="amaP_B3+(hN0#V{xCDq{">RestMinAus</variable> <variable type="interval" id="IntervallAUS">IntervallAUS</variable> </variables> <block type="control" id="9.)4r%kZ1%Uf;Uil4tNE" x="88" y="-737"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.WP-EIN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_compare" id="#i9TTXCwv:!|r4Z!GG|C"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="|5$u^Ob!6lxj%^zdLtP3"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field> </block> </value> <value name="B"> <block type="get_value" id="e{qbXHORf)Ry)koGvIAz"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Test</field> </block> </value> </block> </value> <next> <block type="on_ext" id="}3~1BrwJhZsTt4(%VB$m"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="-MQX`Qtp(z`+JHao5xfU"> <field name="oid">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="Md.!Zw!m:cAcvJ8WWfbK"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> <comment pinned="false" h="80" w="160">Setze Wert von PV-Grenzwert EIN auf Variable GrenzWertEIN Beispiel: 4.000W</comment> <value name="VALUE"> <block type="get_value" id="*_~$A8Ja.]@}FP_DxW.Q"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Test</field> </block> </value> <next> <block type="variables_set" id="DH5y,u|E}^JG]$AxF_0?"> <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field> <comment pinned="false" h="80" w="160">Variable GrenzWertAUS entspricht dem Wert von GrenzWertEIN minus 1000 Beispiel: 3.000W</comment> <value name="VALUE"> <block type="math_arithmetic" id="Z:.{deRr:BeGa!O.8l|~"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="!gdbsx5^mYvq;Q:l7wq@"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="RgtOXkV@;:87B?hUY*QR"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> </block> </value> <value name="B"> <shadow type="math_number" id="Vz!O1@CFR#ehods.od[("> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="n!=jZJE^6mHBKDpXo.~H"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="F,$^e-N/uEfaAGnUH!X)"> <field name="OP">LTE</field> <comment pinned="false" h="80" w="160">Wenn Wert von PVLeistungAktuell kleiner/gleich GrenzWertEIN ist Beispiel: Wert=5.000W Grenzwert=4.000W</comment> <value name="A"> <block type="on_source" id=")CaD4fVQ_}/GB[^hJUPS"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="ep2Vxwy;n/9,oj@j-*(e"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="Jou2^[9@NXb05W+8,!cA"> <field name="NAME">delayON</field> <comment pinned="false" h="80" w="160">delayON wird angehalten</comment> <next> <block type="timeouts_clearinterval" id="V)x0n#Y%Np{UpZf3SvKi"> <field name="NAME">IntervallEIN</field> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="$HL3+5/toZG]vvR5!xBb"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="Db-m`vymJ+K:XZ`UzM(-"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="variables_get" id="{[UO_?.lT2(Z`F}t9Pcr"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="U|4oJ2qg;rWY^j%.*/ab"> <field name="NAME">delayON</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="W7P9H}{Vzd#7x;;z:$tZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.WP-EIN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=":S^|DZu!LD-Ow%3ZtW{#"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_clearinterval" id="OcD6YI+XBS7Y:V/aw/e{"> <field name="NAME">IntervallEIN</field> <next> <block type="telegram" id="ev!(EAJRtv]p)o7VsK`P" collapsed="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="lO=Ipl$lGa$1f7oy@s3n"> <field name="TEXT">Wärmepumpe EIN</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id="$?/xu6+$``%_J`Sn/J10"> <field name="VAR" id="jD:V$.])KxCes_FflMoE">RestMinEIN</field> <value name="VALUE"> <block type="math_number" id="j@O(2`{X!qMH%62G~i(2"> <field name="NUM">10</field> </block> </value> <next> <block type="timeouts_setinterval" id="6OdsXm0TT-}6oXEf:Tq@"> <field name="NAME">IntervallEIN</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="8vEQ.(5M+*D]Ix$BgU}T"> <field name="VAR" id="jD:V$.])KxCes_FflMoE">RestMinEIN</field> <value name="DELTA"> <shadow type="math_number" id="UY0dE7Un99ec|*AF_jdS"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="debug" id="@Q6u.OxwxjO@ibshZ]zr"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="[sg,%`/EWxk~IVDZ5P/e" inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="nj@#1:iuQJ6WqSf`rhUs"> <field name="VAR" id="jD:V$.])KxCes_FflMoE">RestMinEIN</field> </block> </value> <value name="ADD1"> <block type="text" id="7G}tu]=T:^/O1S8OcN:J"> <field name="TEXT"> Min bis EIN</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="JFN3wEK/Xvz4ybZHw{my"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="XesGtKK2gp;RsCJ_mHH$"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="pf^c?y.aH:xz+p5{4O68"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="L*nZas:`}G[90Bwa*K^e"> <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="-8DbsnCmf)j-=Oj^:]Rg"> <field name="NAME">delayOFF</field> <next> <block type="timeouts_clearinterval" id="]b7WtT?+ZL|9^~Q-J0Sr"> <field name="NAME">IntervallAUS</field> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="2lv;nFUd}r-SgTS#v_L*"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="91}fz=s636Ti:.cl~Ni@"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="variables_get" id="wsSKB;8]gL%$/b6P-mOB"> <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="WT/T-l8!$DEtY$S|Zm6w"> <field name="NAME">delayOFF</field> <field name="DELAY">25</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="t|s4f6HoY9$j2j)l.{cg"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.WP-EIN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]E?N5uh`{KcG;mry8y*p"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_clearinterval" id="-}xX_,-$8~O;#j1Vtwia"> <field name="NAME">IntervallAUS</field> <next> <block type="telegram" id="3p@)nLs/8f`8pp]!{or7" collapsed="true"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="$.^J0P}^mH4v]}GiV6XX"> <field name="TEXT">Wärmepumpe AUS</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="variables_set" id="%H*TfRWa)GZS:,iSPG:4"> <field name="VAR" id="amaP_B3+(hN0#V{xCDq{">RestMinAus</field> <value name="VALUE"> <block type="math_number" id="exPm748C31FAvA^Qt/hw"> <field name="NUM">25</field> </block> </value> <next> <block type="timeouts_setinterval" id="Ht7o2jnKLT877}x=|Z|m"> <field name="NAME">IntervallAUS</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="@`5N(frN2x6F@0|C/ciE"> <field name="VAR" id="amaP_B3+(hN0#V{xCDq{">RestMinAus</field> <value name="DELTA"> <shadow type="math_number" id=",+*FYp+HyhOAyb(WCK?]"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="debug" id="-;OQ]YTA^qzPA:M]]`W)"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="MPIvK@;Fu2s})Ru}el}u"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="txt^1ilNKmJl+pZBW/(O" inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="0h7!L${!94v;Zt9v,In|"> <field name="VAR" id="amaP_B3+(hN0#V{xCDq{">RestMinAus</field> </block> </value> <value name="ADD1"> <block type="text" id="IWR)h8^!qbv4}9e6kb9~"> <field name="TEXT"> Min bis AUS</field> </block> </value> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>
-
...hattest du jetzt noch was geändert?
Denn zwischenzeitlich sah das Script so aus:30.9.2022, 16:45:38.640 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 24 Min bis AUS 30.9.2022, 16:46:38.639 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 23 Min bis AUS 30.9.2022, 16:47:32.262 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 4 Min bis EIN 30.9.2022, 16:47:38.639 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 22 Min bis AUS 30.9.2022, 16:48:32.261 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 4 Min bis EIN 30.9.2022, 16:48:38.639 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 21 Min bis AUS 30.9.2022, 16:49:21.067 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 3 Min bis EIN 30.9.2022, 16:49:32.262 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 2 Min bis EIN 30.9.2022, 16:49:38.641 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 20 Min bis AUS 30.9.2022, 16:50:21.066 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 1 Min bis EIN 30.9.2022, 16:50:32.262 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 0 Min bis EIN 30.9.2022, 16:50:38.641 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 19 Min bis AUS 30.9.2022, 16:51:21.067 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: -1 Min bis EIN 30.9.2022, 16:51:32.262 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: -2 Min bis EIN 30.9.2022, 16:51:38.640 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 18 Min bis AUS 30.9.2022, 16:52:21.068 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: -3 Min bis EIN 30.9.2022, 16:52:32.262 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: -4 Min bis EIN 30.9.2022, 16:52:38.641 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 17 Min bis AUS 30.9.2022, 16:53:32.263 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: -5 Min bis EIN 30.9.2022, 16:53:38.641 [info ]: javascript.0 (22662) script.js.PV.Steuerung_Wärmepumpe: 16 Min bis AUS
Und 16:53 Uhr kam im Telegram Wärmepumpe EIN
passt auch ganz gut dazu:
Nur verstehe ich nicht, warum bis -5min gezählt wird -
@hennerich sagte: warum bis -5min gezählt wird
Mach es besser nur mit Intervallen, dann werden sicher keine negativen Minuten ausgegeben:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</variable> <variable id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</variable> <variable id="jD:V$.])KxCes_FflMoE">RestMinEIN</variable> <variable type="interval" id="IntervallEIN">IntervallEIN</variable> <variable id="amaP_B3+(hN0#V{xCDq{">RestMinAus</variable> <variable type="interval" id="IntervallAUS">IntervallAUS</variable> </variables> <block type="control" id="9.)4r%kZ1%Uf;Uil4tNE" x="88" y="-737"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.WP-EIN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_compare" id="#i9TTXCwv:!|r4Z!GG|C"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="|5$u^Ob!6lxj%^zdLtP3"> <field name="ATTR">val</field> <field name="OID">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field> </block> </value> <value name="B"> <block type="get_value" id="e{qbXHORf)Ry)koGvIAz"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Test</field> </block> </value> </block> </value> <next> <block type="on_ext" id="}3~1BrwJhZsTt4(%VB$m"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="-MQX`Qtp(z`+JHao5xfU"> <field name="oid">javascript.0.Solar.Wechselrichter.PVLeistungAktuell</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="Md.!Zw!m:cAcvJ8WWfbK"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> <comment pinned="false" h="80" w="160">Setze Wert von PV-Grenzwert EIN auf Variable GrenzWertEIN Beispiel: 4.000W</comment> <value name="VALUE"> <block type="get_value" id="*_~$A8Ja.]@}FP_DxW.Q"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Test</field> </block> </value> <next> <block type="variables_set" id="DH5y,u|E}^JG]$AxF_0?"> <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field> <comment pinned="false" h="80" w="160">Variable GrenzWertAUS entspricht dem Wert von GrenzWertEIN minus 1000 Beispiel: 3.000W</comment> <value name="VALUE"> <block type="math_arithmetic" id="Z:.{deRr:BeGa!O.8l|~"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="!gdbsx5^mYvq;Q:l7wq@"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="RgtOXkV@;:87B?hUY*QR"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> </block> </value> <value name="B"> <shadow type="math_number" id="Vz!O1@CFR#ehods.od[("> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="n!=jZJE^6mHBKDpXo.~H"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="F,$^e-N/uEfaAGnUH!X)"> <field name="OP">LTE</field> <comment pinned="false" h="80" w="160">Wenn Wert von PVLeistungAktuell kleiner/gleich GrenzWertEIN ist Beispiel: Wert=5.000W Grenzwert=4.000W</comment> <value name="A"> <block type="on_source" id=")CaD4fVQ_}/GB[^hJUPS"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="ep2Vxwy;n/9,oj@j-*(e"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="V)x0n#Y%Np{UpZf3SvKi"> <field name="NAME">IntervallEIN</field> </block> </statement> <value name="IF1"> <block type="logic_compare" id="$HL3+5/toZG]vvR5!xBb"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="Db-m`vymJ+K:XZ`UzM(-"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="variables_get" id="{[UO_?.lT2(Z`F}t9Pcr"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="$?/xu6+$``%_J`Sn/J10"> <field name="VAR" id="jD:V$.])KxCes_FflMoE">RestMinEIN</field> <value name="VALUE"> <block type="math_number" id="j@O(2`{X!qMH%62G~i(2"> <field name="NUM">10</field> </block> </value> <next> <block type="timeouts_setinterval" id="6OdsXm0TT-}6oXEf:Tq@"> <field name="NAME">IntervallEIN</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="8vEQ.(5M+*D]Ix$BgU}T"> <field name="VAR" id="jD:V$.])KxCes_FflMoE">RestMinEIN</field> <value name="DELTA"> <shadow type="math_number" id="UY0dE7Un99ec|*AF_jdS"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="debug" id="@Q6u.OxwxjO@ibshZ]zr"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="[sg,%`/EWxk~IVDZ5P/e" inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="nj@#1:iuQJ6WqSf`rhUs"> <field name="VAR" id="jD:V$.])KxCes_FflMoE">RestMinEIN</field> </block> </value> <value name="ADD1"> <block type="text" id="7G}tu]=T:^/O1S8OcN:J"> <field name="TEXT"> Min bis EIN</field> </block> </value> </block> </value> <next> <block type="controls_if" id="1Wpe}*_BFo^@%Z~OAQRT"> <value name="IF0"> <block type="logic_compare" id="u8hVie-dh,a$XB8qpKj{"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="1(F!2NV|I,7O31Yr|qp0"> <field name="VAR" id="jD:V$.])KxCes_FflMoE">RestMinEIN</field> </block> </value> <value name="B"> <block type="math_number" id=",}pv;q%rNLNrYjudNDC9"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="W7P9H}{Vzd#7x;;z:$tZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.WP-EIN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=":S^|DZu!LD-Ow%3ZtW{#"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_clearinterval" id="OcD6YI+XBS7Y:V/aw/e{"> <field name="NAME">IntervallEIN</field> <next> <block type="telegram" id="ev!(EAJRtv]p)o7VsK`P"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="lO=Ipl$lGa$1f7oy@s3n"> <field name="TEXT">Wärmepumpe EIN</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <next> <block type="controls_if" id="JFN3wEK/Xvz4ybZHw{my"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="XesGtKK2gp;RsCJ_mHH$"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="pf^c?y.aH:xz+p5{4O68"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="L*nZas:`}G[90Bwa*K^e"> <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="]b7WtT?+ZL|9^~Q-J0Sr"> <field name="NAME">IntervallAUS</field> </block> </statement> <value name="IF1"> <block type="logic_compare" id="2lv;nFUd}r-SgTS#v_L*"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="91}fz=s636Ti:.cl~Ni@"> <field name="ATTR">oldState.val</field> </block> </value> <value name="B"> <block type="variables_get" id="wsSKB;8]gL%$/b6P-mOB"> <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="%H*TfRWa)GZS:,iSPG:4"> <field name="VAR" id="amaP_B3+(hN0#V{xCDq{">RestMinAus</field> <value name="VALUE"> <block type="math_number" id="exPm748C31FAvA^Qt/hw"> <field name="NUM">25</field> </block> </value> <next> <block type="timeouts_setinterval" id="Ht7o2jnKLT877}x=|Z|m"> <field name="NAME">IntervallAUS</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="@`5N(frN2x6F@0|C/ciE"> <field name="VAR" id="amaP_B3+(hN0#V{xCDq{">RestMinAus</field> <value name="DELTA"> <shadow type="math_number" id=",+*FYp+HyhOAyb(WCK?]"> <field name="NUM">-1</field> </shadow> </value> <next> <block type="debug" id="-;OQ]YTA^qzPA:M]]`W)"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="MPIvK@;Fu2s})Ru}el}u"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="txt^1ilNKmJl+pZBW/(O" inline="true"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="0h7!L${!94v;Zt9v,In|"> <field name="VAR" id="amaP_B3+(hN0#V{xCDq{">RestMinAus</field> </block> </value> <value name="ADD1"> <block type="text" id="IWR)h8^!qbv4}9e6kb9~"> <field name="TEXT"> Min bis AUS</field> </block> </value> </block> </value> <next> <block type="controls_if" id="?IMwxL_uHBjdEGK=)R*I"> <value name="IF0"> <block type="logic_compare" id="2RrQaGw$N$F_z~k%|w%G"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="9Md)4i:M.ZxW}|J))UVf"> <field name="VAR" id="amaP_B3+(hN0#V{xCDq{">RestMinAus</field> </block> </value> <value name="B"> <block type="math_number" id=",eF=U5ho90[Db0wRJ0q^"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="t|s4f6HoY9$j2j)l.{cg"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.WP-EIN</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="]E?N5uh`{KcG;mry8y*p"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_clearinterval" id="-}xX_,-$8~O;#j1Vtwia"> <field name="NAME">IntervallAUS</field> <next> <block type="telegram" id="3p@)nLs/8f`8pp]!{or7"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="$.^J0P}^mH4v]}GiV6XX"> <field name="TEXT">Wärmepumpe AUS</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>
-
@paul53 sagte in PV Überschuss -> Wetter -> Mindestlaufzeit:
Oder man verwendet gleich ein Intervall und stoppt es, wenn es runter gezählt hat. Beispiel mit 1/10 Minuten:
Meinst du so wie du hier geschrieben hattest oder wie genau?
-
@hennerich sagte: wie genau?
Hab ich doch gepostet, sogar mit Export.
-
@paul53
Entschuldige, das sah für mich genau gleich aus ... -
@hennerich sagte: zwischenzeitlich sah das Script so aus:
Ein- und Ausverzögerungen können nicht gleichzeitig erfolgen. Offenbar wurde das IntervallEIN nicht gestoppt bei zu geringer PV-Leistung
-
Dein Script wirft jetzt gar keine Info Meldungen mehr aus ...
-
@hennerich sagte: wirft jetzt gar keine Info Meldungen mehr aus ...
Treffen denn die Bedingungen für den Start eines Intervalls zu (erstmaliges Überschreiten von grenzwertEin bzw. erstmaliges Unterschreiten von grenzwertAus)?
-
Ja, du hast recht
Das Log sagt jetzt:
17:21:30.688 info javascript.0 (22662) script.js.PV.Test: 24 Min bis AUS 17:22:30.689 info javascript.0 (22662) script.js.PV.Test: 23 Min bis AUS 17:23:30.689 info javascript.0 (22662) script.js.PV.Test: 22 Min bis AUS 17:24:30.689 info javascript.0 (22662) script.js.PV.Test: 21 Min bis AUS 17:25:30.689 info javascript.0 (22662) script.js.PV.Test: 20 Min bis AUS
Ich war bei 17:18 Uhr noch bei 4,8kW, dann bei 17:20 Uhr bei 2,3kW und bei 17:24 Uhr bei 1,6kW.