- Home
- Deutsch
- Skripten / Logik
- Blockly
- PV Überschuss -> Wetter -> Mindestlaufzeit
PV Überschuss -> Wetter -> Mindestlaufzeit
-
@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.
-
Hallo Paul,
vielleicht hast du noch eine Antwort, wenn ich dieses ältere Thema wieder aufgreife.
Zwei Fragen:Die Mindestlaufzeit ist doch eigentlich eine Nachlaufzeit, richtig? Wenn meine Wärmepumpe schon 3h gelaufen ist, dann muss ich nicht mehr 30 Minuten warten, bis ich ausschalte. Wiederum brauche ich auch ein delayOFF wegen der Verschattung, damit er nicht zu oft ausschaltet. Wie könnte man das mit der Mindestlaufzeit und Nachlaufzeit separat sauber aufbauen? Zusätzlicher Timer?
Ist es richtig, wenn der Wert innerhalb der Hysterese fällt, dass dann mehrmals eingeschaltet wird? Also zum Beispiel
GrenzwertEIN = 5000
GrenzwertAUS = 4000
Wenn jetzt der Wert auf 4800 fällt und dann wieder auf 5500 steigt, wir im Betrieb erneut das "Einschalten" gesendet?Schöne Grüße
Ben -
@bg sagte: delayOFF wegen der Verschattung, damit er nicht zu oft ausschaltet.
Es ist dafür gedacht, dass nicht bei jeder kleinen Wolke ausgeschaltet wird. Als Nebeneffekt bewirkt es eine Mindesteinschaltdauer.
@bg sagte in PV Überschuss -> Wetter -> Mindestlaufzeit:
Wenn jetzt der Wert auf 4800 fällt und dann wieder auf 5500 steigt, wir im Betrieb erneut das "Einschalten" gesendet?
Ja, nach der Einschaltverzögerung. Das kann / sollte man durch Prüfen des Aktor-Wertes verhindern.