NEWS
[gelöst] Blockly Skript wenn PV liefert Strom Klimaanlage an.
-
Hi, könntest du für mich mal das fertige Skript von der Pv schaltet Klima ein posten?
-
Hallo nun ist mein Blockly fertig
Habe das schon eine weile laufen und funktioniert sehr gut!
-
Skript PV Überschuss
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="9=1B;Hfq-{1kmasV4T?j" x="-238" y="-587"><mutation items="1"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id="-R^vs6T0_@(}8M7IO=zu"><field name="oid">fronius.0.powerflow.P_Grid</field></shadow></value> <statement name="STATEMENT"><block type="debug" id="uC~0(EoVn+Ua?OB]YgjH"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="#NvLNc`*]uwS#s4K0k|p"><field name="TEXT">test</field></shadow> <block type="text_join" id="m4~gC}*^pvj~Wffy=m]N"><mutation items="2"></mutation> <value name="ADD0"><block type="get_value" id="|f8SvUm2le6!hX29d=PZ"><field name="ATTR">val</field> <field name="OID">fronius.0.powerflow.P_Grid</field></block></value> <value name="ADD1"><block type="text" id="C~vbz`sfI/?ggEC)rc)="><field name="TEXT">Wat</field></block></value></block></value></block></statement></block>
<block type="on_ext" id=";NsZa6!BDd(j|8G^mhTk" x="-887" y="-437"><mutation items="4"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id="6Q6L]X-88[xorxW{AGDA"><field name="oid">fronius.0.powerflow.P_Grid</field></shadow></value> <value name="OID1"><shadow type="field_oid" id="z^8xfqS,MD*R,k@Ii~*|"><field name="oid">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></shadow></value> <value name="OID2"><shadow type="field_oid" id="!`_/g}}bXCUSe[E^HRSp"><field name="oid">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></shadow></value> <value name="OID3"><shadow type="field_oid" id="(GdieOes^HG[,BN@DhX@"><field name="oid">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="MMbzawMTkcs0r_@9{37W"><mutation elseif="8"></mutation> <value name="IF0"><block type="logic_operation" id="e=J6]Q0%6ONupJdqSJB,"><field name="OP">OR</field> <value name="A"><block type="logic_operation" id="0FNg3F#!4~GAFt[(njh?"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="-~/im_D;y?S2Zb#9-`M+"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="gQ2l%)TKD7]nq|9t^wZ@"><field name="OP">LT</field> <value name="A"><block type="on_source" id="[qo:--8I4IKt/p`o/e4["><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id=";C3@s41A`y:`C2V[T:w["><field name="NUM">-900</field></block></value></block></value> <value name="B"><block type="logic_operation" id="Ynrsh4sT{,TzJ*hQDEEp"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="rb6M_u(P{+,=5|ozWkq8"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="MfHb2jqBoa272r]Z39tO"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="TYKJF]3y],e7qQ^xF7=v"><field name="BOOL">FALSE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="*yef?1tG/e?xv2pln,/u"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="23LbfLMVQ%=Q9SR)KEzu"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="Y0x*~d=xEWiDj,jM:Q7A"><field name="BOOL">FALSE</field></block></value></block></value></block></value></block></value> <value name="B"><block type="logic_compare" id="v~WSbyI58+._U?ZUsQ5X"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="`GJ2d4[.#j^kvB]bXS:["><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="YDeGS2[A?TIvgj{2Vt-K"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <value name="B"><block type="logic_operation" id="!:B@J}p~cfj4OG[!fvV5"><field name="OP">OR</field> <value name="A"><block type="logic_operation" id="kvmMBaBnj=s#8.sfb]mk"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="8/Xa+4jVh;u^)0S^QYJ{"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="5(bTjvkY2PYIMH0VAHr0"><field name="OP">LT</field> <value name="A"><block type="on_source" id="m*mx77aZg8oN9udW^rg~"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="%v8Zm#-*IpBI}H5m/cg{"><field name="NUM">-900</field></block></value></block></value> <value name="B"><block type="logic_operation" id="QAq1F!jJlwZ3uC^%1.oL"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="T_2oA`3Vh=JzY;?4Cn{D"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="op^}poA1yKX8A9EHxfwr"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="]5M,KP176a-p?8X|gv2s"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="5OExAnfV:rq{cP^wX|_?"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="]p@mS/y5,p`y8.)[kB@N"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="eB+xdC~nVEHaKpIl9k@e"><field name="BOOL">FALSE</field></block></value></block></value></block></value></block></value> <value name="B"><block type="logic_compare" id="r0.=D0K85hh*KoyNWmFF"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="1=oQbdul@Fcp%/kb6}k]"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="%dxNaUUUgaJfRt{or,P}"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <value name="B"><block type="logic_operation" id="t@g0x7OwI9v1AhQ1Ng;q"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="=@tFR{E-O7n[rPoVgfPl"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="deGMycg=f(U1EJ?)IUmr"><field name="OP">LT</field> <value name="A"><block type="on_source" id=".(0=B2D?r!n~k`Pi`gjh"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="mRX;@@F^g2cDlPw4x=d@"><field name="NUM">-900</field></block></value></block></value> <value name="B"><block type="logic_operation" id="Jjv(Fc+jugbm0Wry-aGp"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="7y91H2[!0WWdt)Nxx3mC"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Uo7Mh}o9aAV1yQN`)if]"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id=":K;3R/F1YjT,i=9/2`1!"><field name="BOOL">FALSE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="=V|+qo:s2RYN(r1uxStw"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="hHU[;FyLE,hknJXV2cdI"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="d+I1o^e^pPS]:Zg6;};I"><field name="BOOL">TRUE</field></block></value></block></value></block></value></block></value> <value name="B"><block type="logic_compare" id="7-TgIR/:wnVe*7Z9Q:y="><field name="OP">EQ</field> <value name="A"><block type="get_value" id="gyQ/QE:oEM^_Jv04jpz2"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="m]cJ5;e{:.}VCh+_6i:_"><field name="BOOL">TRUE</field></block></value></block></value></block></value></block></value></block></value> <statement name="DO0"><block type="comment" id="1eTOc8:6G60dIjFu8vs)"><field name="COMMENT">..wenn PV Überschuss mehr als 900W</field> <next><block type="comment" id="4@@m#b;:=RP@Rlx,%Vx!"><field name="COMMENT">Datenpunkt= Pumpe aus</field> <next><block type="comment" id="eHT/GU:kY76gl)Sx}%+P"><field name="COMMENT">Datenpunkt= Heizung aus</field> <next><block type="comment" id="ibX^naPaJH,~Yi+l4ygy"><field name="COMMENT">Datenpunkt= Klimaanlage aus</field> <next><block type="comment" id="gmjh%CuC,vlQ5@_!Gc1^"><field name="COMMENT">=>dann Status Poolpumpe an</field> <next><block type="control" id="ot8#BU)XiCxK6?lk+Gc_"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="W{{4H%bg)wz?Z,naG`e4"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="(ZbdB:Y5CgH:0_W#-45b"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="RC~XZ#KP|Wco+|QX6b7-"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="yi1nP^yI4JMo8t)gU}a5"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="y910[6Ces7%JWf;g:5D^"><field name="BOOL">FALSE</field></block></value> <next><block type="debug" id="fsOcS2]S{DbPdn|OJ=8u"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="4M-mC8Kw=f?woVC_t)6O"><field name="TEXT">Status Poolpumpe an</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement> <value name="IF1"><block type="logic_operation" id="2*ljG]RqZN#Ovo~U0:Dw"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="1pAx;5e_R9@g^3t2m}Jk"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="P(kWaDw2GSlEkR(Dik}X"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="HwaBj0Q`blBY1V4wCnW)"><field name="OP">GTE</field> <value name="A"><block type="on_source" id="t@OVYDe{R-(M2p;Zvm9L"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="A,B6#5gHF%Y^{*!jljNh"><field name="NUM">-900</field></block></value></block></value> <value name="B"><block type="logic_compare" id="+A[*QO-|a`|Sd.ZaBT]h"><field name="OP">LTE</field> <value name="A"><block type="on_source" id="WkP9jNp/Q+WmRlo)Wk~d"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id=":PtBx;*n5ycAjJHrBiOF"><field name="NUM">200</field></block></value></block></value></block></value> <value name="B"><block type="logic_operation" id="V{!GJQo*IU^/~n];~1e~"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="Cx+6SM+T1_=:8o*Ss|Qb"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="s4ni*?ZOG1oJ4T[`sSO]"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="6~`;-D0NB[DtC1b:)c65"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="ST:h6hHL|wb}r^U,?Ldr"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="TFpY6+`+pHAH=P#30L[-"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="e^qsAlK*m-#VeD)9xHSF"><field name="BOOL">FALSE</field></block></value></block></value></block></value></block></value> <value name="B"><block type="logic_compare" id="@rAih:3/vrdjN0CDqtK4"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="}4MHqxWi!@4D^6S5Pg|("><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="}^WkMM/`L9m8%D6J6ilz"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO1"><block type="timeouts_cleartimeout" id="kPBau`=a7^vq@/e@Cf6_"><field name="NAME">timeout_Pumpe</field> <next><block type="debug" id=";W(6aNJ^6hzYds*]Q#c."><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="NfY*:*`{y?%:^%d:W`oZ"><field name="TEXT">Stop Timeout 10min Poolpumpe aus läuft</field></shadow></value></block></next></block></statement> <value name="IF2"><block type="logic_operation" id="w_q*U=F2wJD=*N_Qj`ap"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="%:FRu(Dl]qHRW6V_o1BE"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="uOt6z3%.,rgbypD!0y.q"><field name="OP">GT</field> <value name="A"><block type="on_source" id="y)I#yCy)P0n2!80:!%J7"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="m8eqB8rDAdQ+vFmbIqtt"><field name="NUM">200</field></block></value></block></value> <value name="B"><block type="logic_operation" id="c[sF[yrbZXQQZO[E6l,r"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="]L,eANnNXWkEJj]=#qrG"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="UQ,-dckw8]ZHA6%n+rai"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="Xc|f{Y}je^oA{f_))NJ`"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="?}luk/R[!]Oa]GWH?wuo"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="@iH?t)W=pf{7}_*jAsbM"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="[+,4m1ODt]3gSb*uv!c5"><field name="BOOL">FALSE</field></block></value></block></value></block></value></block></value> <value name="B"><block type="logic_compare" id="dC?3Yy5dh~@JT,lX9*Wh"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="At(5{mX#w;-1gMXJ3R]C"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="Y?z5XNew4%OdPIp]j[-t"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO2"><block type="comment" id="J8pPZpuxHI.tq+~{,Du_"><field name="COMMENT">..wenn Bezug vom Netz mehl als 200W</field> <next><block type="comment" id=",8.H!:wihAq;XdoQ=-fs"><field name="COMMENT">Datenpunkt= Pumpe an</field> <next><block type="comment" id="PTEmtzP+m[9a7zi,6T^^"><field name="COMMENT">Datenpunkt= Heizung aus</field> <next><block type="comment" id="TPWLFO@uMph21l]VIc/9"><field name="COMMENT">Datenpunkt= Klimaanlage aus</field> <next><block type="comment" id="9o-2wmdEF7Zd^8g7G60r"><field name="COMMENT">=>dann Status Poolpumpe aus</field> <next><block type="debug" id="dW,Dk)j+vs^s*KhoW:uG"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="^^7hr3]fG6_AN;epq|oQ"><field name="TEXT">Timeout 10min Poolpumpe aus läuft</field></shadow></value> <next><block type="timeouts_settimeout" id="LMX=~~Bj.*36h)XqG~5A"><field name="NAME">timeout_Pumpe</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"><block type="control" id="C1.-A*XN:A.6vIb[f;.S"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="o%_F|=-%8Jw?(fk,:SH2"><field name="BOOL">FALSE</field></block></value> <next><block type="debug" id="Ku{0~uj64u@Q[Br1;%;m"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="HW9=PCUwYSSv}~8hLuX!"><field name="TEXT">Status Poolpumpe aus</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></statement> <value name="IF3"><block type="logic_operation" id=")[#sG#AsohR0cr]e6YR*"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="e#UKH?FaOciHi+U~P-TO"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="Oe.J~cKWZ%x(m}XllA-5"><field name="OP">LT</field> <value name="A"><block type="on_source" id="JGl)ON7_(^hD]N.z]s2v"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="Dw=T]Xo|0wO[B,zy]yRI"><field name="NUM">-1500</field></block></value></block></value> <value name="B"><block type="logic_operation" id="ya/*UTwpEgvFB=@0Cipz"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id=":Ys0|_2Aw@,zdPgO7c3]"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="d|LoMtpJ1?m_~{sYJvAG"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="k2Hu%sHxuL_c6EdIMd9k"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="nC#WBwx`~nJeo}YGnOoL"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="%@;BfsfoFZ;c@a3kSLg?"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="V1EpdBcc)*8v?m}|evHY"><field name="BOOL">FALSE</field></block></value></block></value></block></value></block></value> <value name="B"><block type="logic_compare" id=":d_uRy#HTLm;!=dz6j!1"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="1ASf2mfy0!KLxyInCHl%"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="V-,{rfI#f7.uB]?5e^rv"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO3"><block type="comment" id="cJRGsLBkA4mIh~|+*2RW"><field name="COMMENT">...wenn PV Überschuss mehr als 1500W</field> <next><block type="comment" id="9H36{o?bd*:a*_nPnqwr"><field name="COMMENT">Datenpunkt= Pumpe an</field> <next><block type="comment" id="Vf%9V`k(f83j.@01q+Z!"><field name="COMMENT">Datenpunkt= Heizung aus</field> <next><block type="comment" id="uxe|D})F8lA6?e4hsFTR"><field name="COMMENT">Datenpunkt= Klimaanlage aus</field> <next><block type="comment" id="6E[j!PYBkF{Q6!`=},Xe"><field name="COMMENT">=>dann Status Poolheizung an</field> <next><block type="control" id="dGlKVT;k*}:F^o4;1qX^"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="h~|77p.@ybBZZ(miFT;G"><field name="BOOL">TRUE</field></block></value> <next><block type="debug" id="/XwDQ`z7cTQBf]]T|oOO"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="h-iSo*Qjm~Sl.H{WMii."><field name="TEXT">Status Poolheizung an</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></statement> <value name="IF4"><block type="logic_operation" id="7Xj(`A2*zd0_zd7drUK`"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id=",,D?1*^wxO(km3}_Sl3`"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="6zaa;aoJZT%K9=x7~!Z]"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id=":E3rBVS#`A56)aMd0eZV"><field name="OP">GTE</field> <value name="A"><block type="on_source" id="VjhsUH|C7(o)owX952.]"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="cKO7fI9NNMh~ge;0U*pB"><field name="NUM">-10</field></block></value></block></value> <value name="B"><block type="logic_compare" id="yF}06P},:=[O(}9+][su"><field name="OP">LTE</field> <value name="A"><block type="on_source" id="B2*xN4,5oY4lnq|MVMkq"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="L`li@n^G6A.|;?Eg=BUC"><field name="NUM">400</field></block></value></block></value></block></value> <value name="B"><block type="logic_operation" id="gKqD)1Y+DWz~9O0Gi}t2"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="Ew8zmrnkj#mKvNbJp21G"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="5(OMh14Ua]gZq[^u?=Ls"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="hq?ZkB-vsX}4ljM/)iSf"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="wibhx^!7=@kqbSrke?;Z"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="{3CM*L{M5O|V3D4Zc`tF"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="RY*2`Fi77o!yUMDK?mhR"><field name="BOOL">TRUE</field></block></value></block></value></block></value></block></value> <value name="B"><block type="logic_compare" id="BY8Yru+4Vs|jtdFC.yoI"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="XtWpRL(x|;*4-_+_)7s9"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="uaUjse#):(k2LW8OSzhM"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO4"><block type="timeouts_cleartimeout" id="2,[xM68Rdzk^X?g*_NED"><field name="NAME">timeout_Heizung</field> <next><block type="debug" id="DZ,SEo6Sc#_PUi/,/}~)"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="y=Qw;;P#PF3}e|Xd4=PS"><field name="TEXT">Stop Timeout 7 min Poolheizung aus läuft</field></shadow></value></block></next></block></statement> <value name="IF5"><block type="logic_operation" id="v)TqjJY3vAMtg}zR#64!"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="+w:VaF2fKaI5|^eU`nM4"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="dHYXfD=,+GY0,nF%TpNW"><field name="OP">GT</field> <value name="A"><block type="on_source" id="+Htmfbk)9frWSt5-d7s9"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="%{ye[[g/zd}sPPA7zb-g"><field name="NUM">400</field></block></value></block></value> <value name="B"><block type="logic_operation" id="P(TjbJznaA-~~9lxzvG)"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="FId(Snrp}}0SX/VCdrYe"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="T43Uv8gj[U~nzOq!)*9)"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="r5%LAvYfCH!5C~;^yWxP"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="AjbjLMN6Gvf?B(v]+^aT"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="xKCG9|0C9CbZDWvM[t~J"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="vCQm*a[Kl(At7Gm000JC"><field name="BOOL">TRUE</field></block></value></block></value></block></value></block></value> <value name="B"><block type="logic_compare" id="ZgsGk:TF^DZX=/|Az,2U"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Oa3=21h:LJ`u`J+z=2wV"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="N#tFO}W~*-ThJSER5c,{"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO5"><block type="comment" id="103F|ij;#aS(^j?!MOa/"><field name="COMMENT">..wenn Bezug vom Netz mehl als 400W</field> <next><block type="comment" id="Z(N.fp^Gd;W|}|79~N0G"><field name="COMMENT">Datenpunkt= Pumpe an</field> <next><block type="comment" id="A6UNlEySB=_d-U5F_cx-"><field name="COMMENT">Datenpunkt= Heizung an</field> <next><block type="comment" id="9:op5u[Y(b.JJW2^59w!"><field name="COMMENT">Datenpunkt= Klimaanlage aus</field> <next><block type="comment" id="ySl*bhgt|ynR_Y0eVGq["><field name="COMMENT">=>dann Status Poolheizung aus</field> <next><block type="debug" id="rK;u.Sj05HP;ih]uAtO`"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="AZ~47T?0[eRM#1u.wf7t"><field name="TEXT">Timeout 7 min Poolheizung aus läuft</field></shadow></value> <next><block type="timeouts_settimeout" id="u+O*U!Y%Y63fUBu`4uw4"><field name="NAME">timeout_Heizung</field> <field name="DELAY">7</field> <field name="UNIT">min</field> <statement name="STATEMENT"><block type="control" id="HrRVGs+_+,GKpfQ~}mEp"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="Av3kDamJe#7_k+Km0yWP"><field name="BOOL">FALSE</field></block></value> <next><block type="debug" id="Ch55N#+yJpjgq7:C{#.k"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="fXPP(mO]G|wgr=t[v-@C"><field name="TEXT">Status Poolheizung aus</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></statement> <value name="IF6"><block type="logic_operation" id="!sP}9aD)7xRx%lS6@Gvz"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="^Kk(wsnQ4Wt4ET=Jg?tb"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="`6zQ5TM|U`{(LKkEyW?8"><field name="OP">LT</field> <value name="A"><block type="on_source" id="d7R/SvBT0N5#C;D7Yqxc"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="7od=:khG99C:PDQq2B:q"><field name="NUM">-500</field></block></value></block></value> <value name="B"><block type="logic_operation" id="C;+jrR4T?;D|QLSW1w-;"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="3`Ce0dy%X:`..G/WrTyr"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="9TI.b:w;sRw8i#?g;U)~"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="_CbHQ8)OE0_6]C:k[C()"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="WM}XNruS0ZvAnkVf*CeC"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="*NAzXNlkzf+eXhhbYAEH"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="yGh5C%j!OD(TwTa?v37="><field name="BOOL">TRUE</field></block></value></block></value></block></value></block></value> <value name="B"><block type="logic_compare" id="e`}|N3JOXr|}Vt1(Y^no"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="OY3PE3JG*h=?+Ly^7jxH"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="e~^=+h7,;eJh]+aZ:a:Y"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO6"><block type="comment" id="PRCdoC)n|_*%piP]Zl~K"><field name="COMMENT">...wenn PV Über. mehr als 500W</field> <next><block type="comment" id="ex1[ljI@YPvsV)~P#]MV"><field name="COMMENT">Datenpunkt= Pumpe an</field> <next><block type="comment" id="[ji5)}77Yh_2=UhHjsg5"><field name="COMMENT">Datenpunkt= Heizung an</field> <next><block type="comment" id="EeY9/7M1XlSYnR%Bn(ec"><field name="COMMENT">Datenpunkt= Klimaanlage aus</field> <next><block type="comment" id="uK:sq-A:[;i!{W[kqeU3"><field name="COMMENT">=>dann Status Klimaanlage an</field> <next><block type="control" id="(8|:h}y!,]Z:jxaw(O+K"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="ANQ/mUj@^_@U,j+bW0Yz"><field name="BOOL">TRUE</field></block></value> <next><block type="debug" id="0=Ss6RUPx}u!]n,?FD=i"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="Jg_sK=/p:kfGAlMxRAvQ"><field name="TEXT">Status Klimaanalge an</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></statement> <value name="IF7"><block type="logic_operation" id="uT^n*R*lrb5i6Z*5@Dp@"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="u{DBC:wy}VofyoML|ix8"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="o9uK_Tdn|ue3l`}j0eyK"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="V7;){|]8{0*[%hVb%1v`"><field name="OP">GTE</field> <value name="A"><block type="on_source" id="2A/qMrYYP}yJx-^dVd!="><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="}|=n410Len^Pa9?=ME|X"><field name="NUM">-10</field></block></value></block></value> <value name="B"><block type="logic_compare" id="=tyUT^eHKQgV3I0-*jUO"><field name="OP">LTE</field> <value name="A"><block type="on_source" id="T-I].r(=EvKJ/u!87-`5"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="KUR5T[4}:KQ!Y:2)P/2f"><field name="NUM">400</field></block></value></block></value></block></value> <value name="B"><block type="logic_operation" id="#voK|A;Vtk]F8|gjQOhW"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="9d7L-eJ6ovSWA-4y:f)F"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="ikJL}j~]=-nAflswqi??"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="BkpYmrVpD=C.v?[*I6=C"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="@[nNw~Qk;2uTNqgUu5rf"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="M[?t3@=tvQU8,sY@#S+C"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="GcX6#lgyi-)Kq2k]sGqV"><field name="BOOL">TRUE</field></block></value></block></value></block></value></block></value> <value name="B"><block type="logic_compare" id="}N@+/u}?whLZ_:W0mGX7"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Ybn4AB@[uMTtZ|j{eq!F"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="*_Zz@DiY,=6ZEf9VBN86"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO7"><block type="timeouts_cleartimeout" id="JJ7p`ntdrgp{Eem8^5?q"><field name="NAME">timeout_Klimaanlage</field> <next><block type="debug" id="%l?diF.eRemN?)l.VuUY"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="V)hk1DH:JbTsS~-cJIu5"><field name="TEXT">Stop Timeout 5 min Klimaanlage aus läuft</field></shadow></value></block></next></block></statement> <value name="IF8"><block type="logic_operation" id="M%%~ElItW7IFy.9n.h0J"><field name="OP">AND</field> <value name="A"><block type="logic_operation" id="|UPQlF*RU(5PtbmKt|Q["><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="O]ykv@o[8z#*CVfKCb]j"><field name="OP">GT</field> <value name="A"><block type="on_source" id="/V7,3j[mv-55Ud_vfQ(0"><field name="ATTR">state.val</field></block></value> <value name="B"><block type="math_number" id="w4zlqGrOwu6om3@0;Cfc"><field name="NUM">400</field></block></value></block></value> <value name="B"><block type="logic_operation" id="FsjFs9ST77(B3b.;PVp_"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="T#0+p:XRzjGjV97@01]J"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="yQN,}A-(P_YZKNhJxMJK"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="EI!G:uwszN4Vz5aN]aNj"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="7imPCcK3yL!-,Xy]e`uz"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="|Ei]K;dUI+spuG~E;A6;"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="|fCV=O*-2[88t~uY@A,2"><field name="BOOL">TRUE</field></block></value></block></value></block></value></block></value> <value name="B"><block type="logic_compare" id="Jg)tQgU6jONzp!Gm.?O."><field name="OP">EQ</field> <value name="A"><block type="get_value" id="?Bjr}LgFM3?TF8e],5]k"><field name="ATTR">val</field> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field></block></value> <value name="B"><block type="logic_boolean" id="ZpOe!UM8)n5S@_w[dPP4"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO8"><block type="comment" id="CZkM2l,034}/O?9DcnS4"><field name="COMMENT">..wenn Bezug vom Netz mehl als 400W</field> <next><block type="comment" id="8PwBYsbsajaXv-^~kP5C"><field name="COMMENT">Datenpunkt= Pumpe an</field> <next><block type="comment" id="m0ue);(BgTh|,8H(s6dm"><field name="COMMENT">Datenpunkt= Heizung an</field> <next><block type="comment" id="-1:/7Lz,#dP{FG!]^n[j"><field name="COMMENT">Datenpunkt= Klimaanlage aus</field> <next><block type="comment" id="eCus%)3%te^OXNXf8,oM"><field name="COMMENT">=>dann Status Klimaanlage aus</field> <next><block type="debug" id="ma-2=]L/IRBA^m~ZA_pr"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="e;(ck6o^%^vn.[548Y]r"><field name="TEXT">Timeout 5 min Klimaanlage aus läuft</field></shadow></value> <next><block type="timeouts_settimeout" id="g6Q~ff*wo1/E%@etbvWt"><field name="NAME">timeout_Klimaanlage</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"><block type="control" id="RZ}d4Quk#Hgt.@SC.oij"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="(QU,iVa]3snjDI~|bbT@"><field name="BOOL">FALSE</field></block></value> <next><block type="debug" id="wy)2)(u2]H3ZgRQ_NHTZ"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="d=.1vI1;:%W.8`+1+tgx"><field name="TEXT">Status Klimaanalge aus</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></statement></block></xml>
-
und mit dem Blockly steuere ich die diversen Zeiten
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="InZwFXEM=p!^EKI%Ew_" x="-1262" y="-1688"><field name="COMMENT">Morgens 9:09 an</field>
<next><block type="schedule" id="X[#5(2Ka@AGn;?mv.;u"><field name="SCHEDULE">9 9 * * </field>
<statement name="STATEMENT"><block type="comment" id="giHC@!/GhBq,j;_F8iF"><field name="COMMENT">Datenpunkt aus</field> <next><block type="control" id="BW+Df:t|c10xyb))+idK"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="Q^vB31|sO^UA.;-2JDF/"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="e7sTzrEUIhUy+Ux6/QE2"><mutation delay_input="true"></mutation> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">100</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="dC]#uy2e/wD9nB9
)9Fi"><field name="BOOL">FALSE</field></block></value>
<next><block type="control" id="fN:kck6lj%UOF;0av/"><mutation delay_input="true"></mutation>
<field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">200</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="lReg5QMu]rcz5}U12+%:"><field name="BOOL">FALSE</field></block></value>
<next><block type="comment" id="2Xjl8nmREJac.(|Ni,3"><field name="COMMENT">Skript PV Überschuss an</field> <next><block type="control" id="?i,hmx]L:@v,u|dW}%-d"><mutation delay_input="true"></mutation> <field name="OID">javascript.0.scriptEnabled.common.003_Stromverbrauch.PV_Überschuss_vers_2_1</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">300</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="w@H_F}T~FBYn=jWggbkD"><field name="BOOL">TRUE</field></block></value> <next><block type="debug" id="niY]Oq!;0BUXa?lwVTxZ"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="bynsnf)e@jg_mo
]oPSt"><field name="TEXT">Zeitschaltung PV Überschuss an</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></statement>
<next><block type="comment" id="T=~jD5AlD~6i!Y%;Rbs"><field name="COMMENT">Abends um 19:09 aus</field>
<next><block type="schedule" id="SSBD?PEsqpBtzM:JlO7"><field name="SCHEDULE">9 19 * * *</field> <statement name="STATEMENT"><block type="comment" id="lt+d[Zg2^ZoAn}(~_cq}"><field name="COMMENT">Datenpunkt aus</field> <next><block type="control" id="@5+cFnZt)?4*P]:Sjn2+"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="_+;bV)pia6Fi7Two]3%z"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="o)E]06-B10U:8,QXw3pm"><mutation delay_input="true"></mutation> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">100</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="?p?Sd:]h6h/5}O(NM?}N"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="6J~tcT(I!SM)0D|Xk
MC"><mutation delay_input="true"></mutation>
<field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">200</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="|=3/=tr!zjitES#U|JFh"><field name="BOOL">FALSE</field></block></value>
<next><block type="comment" id="%,of9!RiK?-Y
,7zGN"><field name="COMMENT">Skript PV Überschuss an</field> <next><block type="control" id="naR)7Pv(Ay5tbL;iN.DT"><mutation delay_input="true"></mutation> <field name="OID">javascript.0.scriptEnabled.common.003_Stromverbrauch.PV_Überschuss_vers_2_1</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">300</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="-=kh9q^wr@QG%G_{y+iE"><field name="BOOL">FALSE</field></block></value> <next><block type="debug" id=",hNRsi:8oq|WnMxoWe.A"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="U0VwuICWPT^6cp.3ZPfb"><field name="TEXT">Zeitschaltung PV Überschuss aus</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block> <block type="comment" id="|P--bwAc4PTLm[wYN{^." x="-1538" y="-1038"><field name="COMMENT">Pumpe permanent von 11:00-15:00</field> <next><block type="schedule" id="e[:q_v7^VBof^Jl}F[=E"><field name="SCHEDULE">9 11 * * *</field> <statement name="STATEMENT"><block type="comment" id="nRk0S_(|zryA+NjYw~Ex"><field name="COMMENT">Datenpunkt aus</field> <next><block type="control" id="tSnPqVsv6c|eW,8@Yup?"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="nBz;SPsFG4!HW0F@y^/g"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="?3Mn%Ui[;vQyE8]7~leV"><mutation delay_input="true"></mutation> <field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">100</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="gW!21}=!*,%|
QgCz]]l"><field name="BOOL">FALSE</field></block></value>
<next><block type="control" id="b;zJpD_1~HxvPxu;SdN"><mutation delay_input="true"></mutation>
<field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">200</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="JTssmwQas^P827(3M^a"><field name="BOOL">FALSE</field></block></value>
<next><block type="comment" id="R6qtz?vvk0UJ_vG[kz!B"><field name="COMMENT">Skript Pumpe mit PV Überschuss</field>
<next><block type="control" id="20mStQXgrpEV4DpXu45]"><mutation delay_input="true"></mutation>
<field name="OID">javascript.0.scriptEnabled.common.004_Pool.010_Pumpe_mit_PV_Übersch____vers_2</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">300</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="zaO13#.a|dcQnnN|f}3L"><field name="BOOL">FALSE</field></block></value>
<next><block type="comment" id="kxtq{bUY1pI3IR+d9#;)"><field name="COMMENT">Poolpumpe an</field>
<next><block type="control" id="?~#RMVsHX9EzO:XLeNa="><mutation delay_input="true"></mutation>
<field name="OID">sonoff.0.Sonoff-TH-89-Poolpumpe.POWER</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">400</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="z(5EXDT/)o+3/:tJxs{"><field name="BOOL">TRUE</field></block></value> <next><block type="debug" id="%VgA/[)@ceK7{VL+fVVz"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id=";xy}#P(YLZ18}Xw(H01("><field name="TEXT">Poolpumpe permanent an von 11-15 Uhr AN</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement> <next><block type="schedule" id="YTd5@==VPg3/8tKB-6Mm"><field name="SCHEDULE">9 15 * * *</field> <statement name="STATEMENT"><block type="comment" id="9YB~N5j26+z#q6J^8-=!"><field name="COMMENT">Datenpunkt aus</field> <next><block type="control" id=",u
Y[HG_nfBWyM]N8uM"><mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Datenpunkte.Pool.Pumpe AN / AUS</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="W!KuGNE@:[Tu7zGGZ,?@"><field name="BOOL">FALSE</field></block></value>
<next><block type="control" id="r#wP]~3jXk?DAa?ZLC-D"><mutation delay_input="true"></mutation>
<field name="OID">javascript.0.Datenpunkte.Pool.Heizung AN / AUS</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">100</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="=J}@kpch#q%J8XT%n1:1"><field name="BOOL">FALSE</field></block></value>
<next><block type="control" id="_.|{dzR1c|M+#tvl7[c5"><mutation delay_input="true"></mutation>
<field name="OID">javascript.0.Datenpunkte.Klimaanlage AN / AUS</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">200</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="lF}p~U(%!Y+lG()c~s=j"><field name="BOOL">FALSE</field></block></value>
<next><block type="comment" id=",pMsVw_F5,O2I%^:^B|?"><field name="COMMENT">Skript Pumpe mit PV Überschuss</field>
<next><block type="control" id="jwWR.jMCiiRn^wyA8z;h"><mutation delay_input="true"></mutation>
<field name="OID">javascript.0.scriptEnabled.common.004_Pool.010_Pumpe_mit_PV_Übersch____vers_2</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">300</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="nl,D-ipvY%-n0|7H~F"><field name="BOOL">TRUE</field></block></value> <next><block type="comment" id="-e0n%Fkg.E6tdg6DU/Pd"><field name="COMMENT">Poolpumpe aus</field> <next><block type="control" id="RJmYChp
pd=v_r^#5)A,"><mutation delay_input="true"></mutation>
<field name="OID">sonoff.0.Sonoff-TH-89-Poolpumpe.POWER</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">400</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="-KtC](y7{iYpP0=D_V75"><field name="BOOL">FALSE</field></block></value>
<next><block type="debug" id="s/m7Jm/ipTerUVu~Y,YG"><field name="Severity">log</field>
<value name="TEXT"><shadow type="text" id="-gLWRlE}-*!FGkR+[^o="><field name="TEXT">Poolpumpe permanent an von 11-15 Uhr AUS</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></xml> -
Guten Morgen zusammen,
der Thread ist ja schon ein paar Tage alt, aber als PV Neuanlagen Besitzer wird das Thema PV Überschuss Nutzung jetzt auch für mich interessant.Ich wollte mal fragen, wie in der Zwischenzeit die Erfahrungen mit den/dem Script so ist. Hat hier auch jemand einen Speicher im Einsatz? wie verwusrtet man so einen Speicher sinnvoller Weise?
Es soll ja nur der Überschuss abgefangen werden, welcher ins Netz geht und nicht Energie aus dem Speicher, welcher ja als Nacht Überbrückung dienen soll.
Die Verbraucher die man als PV Überschuss Geräte ansteuert, sind ja in der Regel Verbraucher die nicht zwingend laufen müssten, sondern den PV Überschuss abfangen. Dann mit diesen Geräten eine gefüllten oder teilweise gefüllten Speicher wieder herunter zu ziehen, ist ja eher Kontra Produktiv.
Hat jemand dazu schon einen Ansatz verfolgt?
Ich habe gestern ein Blockly Script gefunden was ebenfalls den PV Überschuss verarbeitet. Wie gesagt, gestern - mangels PV Überschuss konnte ich aber noch nichts testen.
Vielleicht hat ja hier in der Zwischenzeit jemand neue Ideen zum Thema PV Überschuss & Blockly entwickelt.
Leider kann ich die Scripte von @SmarthomeMF nicht importieren - kommen immer wieder Fehlermeldungen.
Hier das gefundene Script:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="#3v}HDbdMRBS$0v{!o)h">Speicher</variable> <variable id="u$n!XZBM)j[J?f~JT%z5">WolkenVerzoegerung</variable> <variable id="N2Dk85CQN2uL0w3qt8A_">Verbraucher_1</variable> <variable id="iwu_1;PHCBW[(6sePQ9Q">Verbraucher_1_TF</variable> <variable id="Zs+nKXWb1F_(8ioCBAN2">Verbraucher_2_TF</variable> <variable id="p^C8]xkYA`vcvj}h|bOJ">Verbraucher_3_TF</variable> <variable id="f6*O*xo-Qtq,VGU7f|-6">Verbraucher_2</variable> <variable id="Qd@~YUEX}4:5(CxoR0XE">Verbraucher_3</variable> <variable type="timeout" id="WolkenTimeout">WolkenTimeout</variable> </variables> <block type="request" id="2lj$W?l7{*fdw%]~~BfT" disabled="true" x="-512" y="-1438"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text"> <field name="TEXT">text</field> </shadow> <block type="text" id=":+y{bmw}24Ej90N0wN;*"> <field name="TEXT">http://192.168.10.130/control?cmd=GPIO,14,1</field> </block> </value> </block> <block type="variables_set" id="Hz@XF.}:2NgO*2SD%57^" x="-513" y="-1263"> <field name="VAR" id="#3v}HDbdMRBS$0v{!o)h">Speicher</field> <value name="VALUE"> <block type="logic_boolean" id="=oF$|VBZhwvbE$.Q/B:!"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="Jv~]JN{Wz4|M@iwOuN^v"> <field name="VAR" id="u$n!XZBM)j[J?f~JT%z5">WolkenVerzoegerung</field> <value name="VALUE"> <block type="logic_boolean" id="*(b(K4%^0I8ec!O/.5yL"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="comment" id="/~]JAFM2.C#D1UQK^uLh"> <field name="COMMENT">Speicher_AllesAus</field> <next> <block type="on_ext" id="0hd:RwW%?]GOfK[.ej.,"> <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="_rauvj`=RS7Q3TH[KoIW"> <field name="oid">default</field> </shadow> <block type="field_oid" id="KU;Lrer6#%c3q;s{nRt."> <field name="oid">fronius.0.powerflow.P_Akku</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="2zJQO1vNS-#ra6jw[Sn/"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="3W~_)EX/A=D^iaW$FztK"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="aoUvyj{C5/*^ME?@rcuK"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="(^JL4tkbJ4~V_hDmrN$8"> <field name="NUM">-1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="#^Ccf9ZJL{EJyK/[En=7"> <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Verbraucher_1_TF</field> <value name="VALUE"> <block type="logic_boolean" id="Ar^1TJf`;HLe5$.ijH^a"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="6HFgQS:G-~gNKum15xcz"> <mutation name="Verbraucher_1_F"></mutation> <next> <block type="variables_set" id="CQQ1MS/*)yoCs`nsRrBS"> <field name="VAR" id="Zs+nKXWb1F_(8ioCBAN2">Verbraucher_2_TF</field> <value name="VALUE"> <block type="logic_boolean" id="L!g`I:u%GK5E?Vt/%S{Q"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="w|QRnRf0{Abbpeyg~53K"> <mutation name="Verbraucher_2_F"></mutation> <next> <block type="variables_set" id="oc1]Z,MFB@_);9w7Bqlc"> <field name="VAR" id="p^C8]xkYA`vcvj}h|bOJ">Verbraucher_3_TF</field> <value name="VALUE"> <block type="logic_boolean" id="yXrVxx_ErG-Z{Si*(*5z"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="3=@?[If+4icZK]l$$7mx"> <mutation name="Verbraucher_3_F"></mutation> <next> <block type="variables_set" id="@FAiEs@(61oLU,.4AK{^"> <field name="VAR" id="#3v}HDbdMRBS$0v{!o)h">Speicher</field> <value name="VALUE"> <block type="logic_boolean" id="PTcMpEIcv|rP[t*g*coD"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="L1nQX2#@l)F*e}rW/B!n"> <field name="VAR" id="#3v}HDbdMRBS$0v{!o)h">Speicher</field> <value name="VALUE"> <block type="logic_boolean" id="5hW`%0k%}ezLa[5ki%8["> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> <block type="comment" id="!$7v[$OV+$1bj2,8AG^I" x="88" y="-1262"> <field name="COMMENT">Verbraucher nach Priorität definieren</field> <next> <block type="comment" id=":w@hCb3@apt?vQ@@SK#F"> <field name="COMMENT">Verbraucher 1 - 100W</field> <next> <block type="variables_set" id="X,Kte;fb[i[!TOm:{KMP"> <field name="VAR" id="N2Dk85CQN2uL0w3qt8A_">Verbraucher_1</field> <value name="VALUE"> <block type="math_number" id="4]$iqGm92WQ(}+WKtd@b"> <field name="NUM">100</field> </block> </value> <next> <block type="comment" id="-{y?NKdnKj;YS|NkMPw_"> <field name="COMMENT">Verbraucher 2 - 100W - Summe 200 W</field> <next> <block type="variables_set" id="D}?AQ/fSwSt3Yn@5aWda"> <field name="VAR" id="f6*O*xo-Qtq,VGU7f|-6">Verbraucher_2</field> <value name="VALUE"> <block type="math_number" id=";x*A;(3wi@hJO^nx#Rdx"> <field name="NUM">100</field> </block> </value> <next> <block type="comment" id="}$qWf4$qMYVM3BPU7|{`"> <field name="COMMENT">Verbraucher 3 - 100W - Summe 300W</field> <next> <block type="variables_set" id="*#bP}Vb`Ny@(KL.dN5Z5"> <field name="VAR" id="Qd@~YUEX}4:5(CxoR0XE">Verbraucher_3</field> <value name="VALUE"> <block type="math_number" id=")S3mPs;-xP/57{2:|Luf"> <field name="NUM">100</field> </block> </value> <next> <block type="variables_set" id="q9RCpGf%NCHwe3CT?.Bg"> <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Verbraucher_1_TF</field> <value name="VALUE"> <block type="logic_boolean" id="S%3.V:zT{[3GZ]B9GhTu"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="+e=+FZA$6D/hg3sg}-6~"> <field name="VAR" id="Zs+nKXWb1F_(8ioCBAN2">Verbraucher_2_TF</field> <value name="VALUE"> <block type="logic_boolean" id="IwMX1dzDOB#m*QTi$gMq"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="/E-q[dH)W-w]o13faTdn"> <field name="VAR" id="p^C8]xkYA`vcvj}h|bOJ">Verbraucher_3_TF</field> <value name="VALUE"> <block type="logic_boolean" id="cN+]-J6tWyNJF!1RK6Fa"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="N$t)M,:~htBoAo.G_^)p"> <mutation name="Verbraucher_1_F"></mutation> <next> <block type="procedures_callnoreturn" id="U,y:5!^da~,*5BF~il0v"> <mutation name="Verbraucher_2_F"></mutation> <next> <block type="procedures_callnoreturn" id="`q_aF*(K(]hp6[X`hX1x"> <mutation name="Verbraucher_3_F"></mutation> <next> <block type="on_ext" id="W*oi[r42Fur~gO:zbm4g"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="85SpWm|JTqSGg:^e/*rU"> <field name="oid">default</field> </shadow> <block type="field_oid" id="QJ=%Ay8%ZQ4%B9.thx%A"> <field name="oid">discovergy.0.60868258.Power_Delivery</field> </block> </value> <value name="OID1"> <shadow type="field_oid" id="p,ke`l}Dw-?*+.^!V%/G"> <field name="oid">default</field> </shadow> <block type="field_oid" id="#a`3[p,W%r/bDBKGnYO)"> <field name="oid">discovergy.0.60868258.Power_Consumption</field> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="^7l^4UD1B#B1Ze$~9,5R"> <value name="IF0"> <block type="logic_compare" id="R[55*32U9|fV73jr|d5w"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="wD#_u4grFGiK*IuaQTh|"> <field name="VAR" id="u$n!XZBM)j[J?f~JT%z5">WolkenVerzoegerung</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Rmo~p[C`sY{T:v`@.hR_"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="pe}-WiBkwCh)557LFEEA"> <field name="VAR" id="u$n!XZBM)j[J?f~JT%z5">WolkenVerzoegerung</field> <value name="VALUE"> <block type="logic_boolean" id="|.0)VM`BPJ#(SM$L%Q|P"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_settimeout" id="15Tt]:5FLZ+hls0uWS7C"> <field name="NAME">WolkenTimeout</field> <field name="DELAY">3</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="%IH/_dNX*NNu4-D5DKEq"> <field name="VAR" id="u$n!XZBM)j[J?f~JT%z5">WolkenVerzoegerung</field> <value name="VALUE"> <block type="logic_boolean" id="jzJKMdVAcr-KH,=lqAVW"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="OEQ[V;`THSEyZA1ok[{I"> <value name="IF0"> <block type="logic_compare" id="%R*rwCt*,+;f5pX}09vO"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="vUtwM@oGXuw{0%6vVVC:"> <field name="ATTR">common.name</field> </block> </value> <value name="B"> <block type="text" id="YS+CfAp3mdUW!IlcPx=;"> <field name="TEXT">Power_Delivery</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="t.XI=#VXj0H!fM{0bY_:"> <value name="IF0"> <block type="logic_operation" id="{-Ok}Tq^6famB8*r?8!c" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="V,+DBlwc3RcC_Z0;%Zmq" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="iD|?etR?+R+iMsPXh~ur"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="rmU-UOP9y{h.AL3mPV=A"> <field name="VAR" id="Zs+nKXWb1F_(8ioCBAN2">Verbraucher_2_TF</field> </block> </value> <value name="B"> <block type="logic_boolean" id="@WO#FL{bE^{nzla/+4RI"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="0Nc1JZhc%qRQfKgv~i9{"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="n^_FO~a2pbFz+8ylUj~{"> <field name="VAR" id="p^C8]xkYA`vcvj}h|bOJ">Verbraucher_3_TF</field> </block> </value> <value name="B"> <block type="logic_boolean" id="q2v6oqX:!e!vD#nmgLAk"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="+{V3I=d_,Ut#m`ib2Z2;"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="mK-g1|fy$C=9wO?aCFea"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="*[Hy@(,~J)Q^XXb=XY?v"> <field name="VAR" id="Qd@~YUEX}4:5(CxoR0XE">Verbraucher_3</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="hxdyiLx-+hrD|H**mt]o"> <value name="IF0"> <block type="logic_compare" id="tJCq`Gtw=ZQ/2SVe#u]%"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="RZxH4^UiBn74k~MIRO~$"> <field name="VAR" id="#3v}HDbdMRBS$0v{!o)h">Speicher</field> </block> </value> <value name="B"> <block type="logic_boolean" id=".t}GBQqyovh@m5ZGAI`V"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="4ITjd}1LnqzvO|cncQ~,"> <field name="VAR" id="p^C8]xkYA`vcvj}h|bOJ">Verbraucher_3_TF</field> <value name="VALUE"> <block type="logic_boolean" id="xW@]Ee`^fp{~wAk/$10("> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="HI{mswB}yHji[a[hqbLm"> <mutation name="Verbraucher_3_F"></mutation> </block> </next> </block> </statement> </block> </statement> <next> <block type="controls_if" id="TlcF#~;(KK,X;G*vlZ8="> <value name="IF0"> <block type="logic_operation" id="(Rj_mFB[y=NL]@HA7P/|" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="7N^F+8]71lW$##QIUy$B" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="h{d{Dw:k9^KsTD$L{nZ7"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id=",QW|)b.9Tq}2!F|NR!1x"> <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Verbraucher_1_TF</field> </block> </value> <value name="B"> <block type="logic_boolean" id="th:D+I`=$t*~EaFGdK~G"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="DTqYVel.mUQrL@|]~Lmd"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="D=AepqiQ{QDRI]n%b1f7"> <field name="VAR" id="Zs+nKXWb1F_(8ioCBAN2">Verbraucher_2_TF</field> </block> </value> <value name="B"> <block type="logic_boolean" id="?T)F?s)1CDYj7%CO.g`B"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="?v3=Y9}r,}OY(ncYjj9g"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="C/Pmre#rdW$tUH-XW*$*"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="9*Jny))Y@xs%`xDHR*@p"> <field name="VAR" id="f6*O*xo-Qtq,VGU7f|-6">Verbraucher_2</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="q,w5R@QJ{v=k+[Hl?t/r"> <value name="IF0"> <block type="logic_compare" id="+]{IvGB:]7E6:aZkr6`q"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="4Ru;rkEh,xxoV~?~jO%F"> <field name="VAR" id="#3v}HDbdMRBS$0v{!o)h">Speicher</field> </block> </value> <value name="B"> <block type="logic_boolean" id="?JIbvDfm%{(Dg2GCwsm5"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="Zg$SD{N]K+PSUxYB9-o|"> <field name="VAR" id="Zs+nKXWb1F_(8ioCBAN2">Verbraucher_2_TF</field> <value name="VALUE"> <block type="logic_boolean" id="/oh?,o%I$vT+j)lb_O(#"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="KfF(Reu0A`vil9gQLN0Y"> <mutation name="Verbraucher_2_F"></mutation> </block> </next> </block> </statement> </block> </statement> <next> <block type="controls_if" id="OR;gh_3qNzTWff^,Odz?"> <value name="IF0"> <block type="logic_operation" id="-sA^!k(a^)![bgg8QO,0" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="[:_X{(FJiRjRP5Dq[b~7"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="5l|ih7Z{?RspVMO/,T+*"> <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Verbraucher_1_TF</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Ysq0?hi]75cZ;bA?Idq8"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=",g[iGCo{TR}`a3/UY_EV"> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="9F5lP(6(HiG8a*)D/2Ly"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="fTjOF-28N.5xkh.w3{}*"> <field name="VAR" id="N2Dk85CQN2uL0w3qt8A_">Verbraucher_1</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="VS:=Vu}2;M9#/-!Bs$j+"> <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Verbraucher_1_TF</field> <value name="VALUE"> <block type="logic_boolean" id="bv=z4F*]g3`I_!*W03Q^"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="$_59jQ7tbX]YcUXk@o(:"> <mutation name="Verbraucher_1_F"></mutation> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="uC1XTN|}ER:(B(XDJQ-k"> <value name="IF0"> <block type="logic_compare" id="V@I;MW5*~=~~z-MtboMD"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="9nQ]K;pDOtTY$~4LU%*O"> <field name="ATTR">common.name</field> </block> </value> <value name="B"> <block type="text" id="3GE06,@El}_1{n,dJ-qd"> <field name="TEXT">Power_Consumption</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="6=1*.Afj/9S!Iab2LFQR"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_operation" id="vnLhnn:#XfvGmd@]}e,E" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="DhztCHC}xjSoVz%kp4dG"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="scM/kU*7TP*]C[i_npzN"> <field name="VAR" id="p^C8]xkYA`vcvj}h|bOJ">Verbraucher_3_TF</field> </block> </value> <value name="B"> <block type="logic_boolean" id="]gmRpKHu4,Hxs{Zdu`r?"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="2LKHdpjKy1EyHR?.FVt$"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="-^oF!vgjO6mRpWqK:C^U"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="ZLF^jCN,qjggU-iWK.U-"> <field name="VAR" id="Qd@~YUEX}4:5(CxoR0XE">Verbraucher_3</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="^ODI8wS9$6CvIasDCP?l"> <field name="VAR" id="p^C8]xkYA`vcvj}h|bOJ">Verbraucher_3_TF</field> <value name="VALUE"> <block type="logic_boolean" id="^R.MVS:SK_{)j=.-8^|7"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="u:hqtieIXe/0XTiGs]`q"> <mutation name="Verbraucher_3_F"></mutation> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="12nva]Q=7I]aU=RqPcF^" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="B/,5-jyojV+qqsCnlguO"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="olTmeRlU/{_y6p~fNgbK"> <field name="VAR" id="Zs+nKXWb1F_(8ioCBAN2">Verbraucher_2_TF</field> </block> </value> <value name="B"> <block type="logic_boolean" id="GEr$l_D,jsSI#i$XS:*?"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="e%|4mPECYNQ?=Wxe_-N-"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="BX,l?`N8Ne$//Pj[be79"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="6w]Y.3!mnc3gkOHJcNfr"> <field name="VAR" id="f6*O*xo-Qtq,VGU7f|-6">Verbraucher_2</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="9RgBrLvxD2U,ye-m9viy"> <field name="VAR" id="Zs+nKXWb1F_(8ioCBAN2">Verbraucher_2_TF</field> <value name="VALUE"> <block type="logic_boolean" id="@1`T||6b=WVwfp5%#[8%"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="rh}kO.E$x/(8_Uq(19zR"> <mutation name="Verbraucher_2_F"></mutation> </block> </next> </block> </statement> <value name="IF2"> <block type="logic_operation" id="OoH]dSnZuO^}B?a}EP8z" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="$68a%w#)rPE:4TDpRWis"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="/;g5aqBuPe84GnfC2UbU"> <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Verbraucher_1_TF</field> </block> </value> <value name="B"> <block type="logic_boolean" id=")hP]*877jPwu9N8.[(79"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=".V;dQCQ)J3E+aXm0(^vh"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="[g1HWrXjMhE+XBZ[C?{u"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="##_kE;LZ.iFP~mVkc`DL"> <field name="VAR" id="N2Dk85CQN2uL0w3qt8A_">Verbraucher_1</field> </block> </value> </block> </value> </block> </value> <statement name="DO2"> <block type="variables_set" id="UBdvQr/~=|oAO4JZI2YP"> <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Verbraucher_1_TF</field> <value name="VALUE"> <block type="logic_boolean" id="q894myS0At?(+8Iub+)O"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="t*`6kK;Hg:%(cS!PAAy#"> <mutation name="Verbraucher_1_F"></mutation> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </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> <block type="procedures_defnoreturn" id="@ekGxf-0b4ul@_*yU!q!" x="663" y="-1212"> <field name="NAME">Verbraucher_1_F</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="debug" id="XsQy?M`M`FP^QIJ)GB|7" collapsed="true"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="Id[jm[wLw-/,vB51Uf]H"> <field name="TEXT">Verbraucher 1</field> </shadow> <block type="text_join" id="]4D|#f/?y/zeHDhp$LWS"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="jQw-UwTC]DksT)NNdDF."> <field name="TEXT">Verbraucher 1</field> </block> </value> <value name="ADD1"> <block type="logic_ternary" id="3$oAdrX`bqXSv1TghR.a"> <value name="IF"> <block type="logic_compare" id="_^RA22h*u.[ABpnqOU-6"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="DjJzTDY_{F!8$yQ,;f~w"> <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Verbraucher_1_TF</field> </block> </value> <value name="B"> <block type="logic_boolean" id="ynJ[Spx.q3u?mqcU0Qxy"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id="[7]As70kU{wfCZ8:,62F"> <field name="TEXT"> zugeschaltet</field> </block> </value> <value name="ELSE"> <block type="text" id="f%SouFvX9rOT[udv-)ON"> <field name="TEXT"> abgeschaltet</field> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="i5St;qI=KfF6(?@W4e|G"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.DEKO_3.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="W@27ApZuY8.*wCEN]X~1"> <field name="VAR" id="iwu_1;PHCBW[(6sePQ9Q">Verbraucher_1_TF</field> </block> </value> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="F^J*l7#(vxkqOv6n)nLf" x="662" y="-1087"> <field name="NAME">Verbraucher_2_F</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="debug" id="If`Pz%NHny~M=l4AMJx1"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">Verbraucher 1</field> </shadow> <block type="text_join" id="~^.dt!hM~I?DoQg7dyf9"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="WK4M9[-w%~LwJYG;P4y@"> <field name="TEXT">Verbraucher 2</field> </block> </value> <value name="ADD1"> <block type="logic_ternary" id="T8._+^dNayVtrY,5wyUO" collapsed="true"> <value name="IF"> <block type="logic_compare" id="z``pY2*;X=~7=DU7`0(b"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="2DY;v,+~;E`GhWN(UehP"> <field name="VAR" id="Zs+nKXWb1F_(8ioCBAN2">Verbraucher_2_TF</field> </block> </value> <value name="B"> <block type="logic_boolean" id="]:B-TeVoq?l?+RB9}+!^"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id="CGE4y~V]Ky}?W:_K9u+A"> <field name="TEXT"> zugeschaltet</field> </block> </value> <value name="ELSE"> <block type="text" id="RiVXqI.mm[=Y]rgpn-6T"> <field name="TEXT"> abgeschaltet</field> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="Ab]ShI{UYRiAaaT!$NwT"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.DEKO_4.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=":vYLNLT)_fh2R+)0#1d]"> <field name="VAR" id="Zs+nKXWb1F_(8ioCBAN2">Verbraucher_2_TF</field> </block> </value> <next> <block type="control" id=",Zl$MQ6GVfwah7]=Zmp$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.DEKO_5.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="p^vFQR`khnRMHx}n9u_6"> <field name="VAR" id="Zs+nKXWb1F_(8ioCBAN2">Verbraucher_2_TF</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="rVnNMwa*ldF*C!S`2Tch" x="663" y="-863"> <field name="NAME">Verbraucher_3_F</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="debug" id="i3V2P?+By1VW3C~IuvBF"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">Verbraucher 1</field> </shadow> <block type="text_join" id="wIetKZ2Ymar]/WVPxh}@"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="Vqx~~[XvWb+[E$dZ4]J4"> <field name="TEXT">Verbraucher 3</field> </block> </value> <value name="ADD1"> <block type="logic_ternary" id="=GQ]r[dcOt[nJ}c)6j/O" collapsed="true"> <value name="IF"> <block type="logic_compare" id="]{#nwEqLHZvC?#BD:jo7"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="2^~lRHaC5dQ-[;{s3p~9"> <field name="VAR" id="p^C8]xkYA`vcvj}h|bOJ">Verbraucher_3_TF</field> </block> </value> <value name="B"> <block type="logic_boolean" id=";F}r,kfP_pt3ysSM+edX"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id="RHD5q%W3mNv~Rc2}gE3}"> <field name="TEXT"> zugeschaltet</field> </block> </value> <value name="ELSE"> <block type="text" id=",89l.Z35zw#b^FWyd{YV"> <field name="TEXT"> abgeschaltet</field> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="/=;XRR9-*f/ajXjJqP7a"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.DEKO_6.POWER1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Z$j+EjUo@+(mmIQ.X?)g"> <field name="VAR" id="p^C8]xkYA`vcvj}h|bOJ">Verbraucher_3_TF</field> </block> </value> </block> </next> </block> </statement> </block> </xml>
-
habe die beiden oberen Blockly repariert ...
-
Meine Variante als JavaScript:
- Glättung zur Unterstützung von kurzeitigen Wolkenstand (alpha abhängig von Zykluszeit der Leistungsdaten)
- Mindestlaufzeit der Pumpe
- Reine Überschussregelng für Wärmepumpe
- Notifications bei Zustandsänderung
- Manuelle Steuerung bei Bedarf
Vielleicht hilfts wem, läuft jetzt seit ein paar Wochen sehr gut.
Sonnige Tage:
Viele Wolken:
// Übrige Leistung const Grid = 'fronius.0.powerflow.P_Grid'; // Wärmepumpe const WP_SwitchID = 'shelly.0.SHSW-PM#68C63AFAF6BC#1.Relay0.Switch'; const WP_Consumption = 1500; const WP_Hysteresis = 1000; // Pumpe const P_SwitchID = 'shelly.0.SHSW-PM#68C63AFAF893#1.Relay0.Switch'; // Leistung der Pumpe const P_Consumption = 250; const P_Hysteresis = 100; // Minuten am Tag, die sie mindestens laufen muss const P_MinimumRuntime = 7*60 // Stunde wann sie frühestens starten soll const P_MinStartTime = 9; // Betriebsstundenzähler der Pumpe const P_RuntimeID = 'hm-rpc.1.CUX9001001.1.TIME_ON_SUM'; // Variablen zum Speichern der Infos, dadurch kann man das Skript auch neustarten const P_RuntimeStartTimeID = 'javascript.0.variables.PumpeStartTime'; const P_StartDayID = 'javascript.0.variables.PumpeStartDay'; // Variable für Glättung der Leistung const GridEMAID = 'javascript.0.variables.P_Grid_EMA' // Schalter um in den manuellen Modus zu wechseln const Override_SwitchID = 'hm-rpc.1.CUX2801005.1.STATE'; // Notifications zum Handy const PushObject = getIdByName('pocketControlPushMessage', true)[0]; function push(msg) { log(msg); setState(PushObject, msg); } var ema_grid_init = false; var ema_grid = 0; var alpha = 0.05; function calcExponentialMovingAverage(accumulator, new_value, alpha) { const new_avg = (alpha * new_value) + (1.0 - alpha) * accumulator; return Math.round(new_avg * 100)/100; }; on({id: Grid, change: 'any'}, (obj) => { // Use last average as starting value if script was restarted if(!ema_grid_init) { ema_grid_init = true; ema_grid = getState(GridEMAID).val; } else { ema_grid = calcExponentialMovingAverage(ema_grid, obj.state.val, alpha); setState(GridEMAID, ema_grid); } const grid = ema_grid; // Check if Manual Mode is enabled if(getState(Override_SwitchID).val) { return; } // Begin at minimumstarttime if(new Date().getHours() < P_MinStartTime) { return; } if(grid + P_Consumption + P_Hysteresis < 0) { if(startPumpe()) { push("[POOL] Pumpe EIN (" + grid + ")") } } else if(grid > 0) { if(stopPumpe()) { push("[POOL] Pumpe AUS (" + grid + ")"); } } if (grid + WP_Consumption + WP_Hysteresis < 0) { if(startWP()) { push("[POOL] Wärmepumpe EIN (" + grid + ")"); } } else if (grid > 0) { if(stopWP()) { push("[POOL] Wärmepumpe AUS (" + grid + ")"); } } }); function startWP() { const wpState = getState(WP_SwitchID).val; if(wpState) { // already running return false; } // if Pumpe is stopped, return const pState = getState(P_SwitchID).val; if(!pState) { push("[POOL] Wärmepumpe kann nicht gestartet werden, Pumpe läuft nicht"); return false; } setState(WP_SwitchID, true); return true; } function stopWP() { const wpState = getState(WP_SwitchID).val if(!wpState) { return false; } setState(WP_SwitchID, false); return true; } function updateStartInfo() { // check if it is the first time of the day we start the pumpe and store runtime infos const lastStartDay = getState(P_StartDayID).val; const currentDay = new Date().getDate(); if(lastStartDay !== currentDay) { push("[POOL] Speichere Start Info für heute"); setState(P_StartDayID, currentDay); setState(P_RuntimeStartTimeID, getState(P_RuntimeID).val) } } function startPumpe() { updateStartInfo(); // already started const pState = getState(P_SwitchID).val if(pState) { return false; } // starte Pumpe setState(P_SwitchID, true); return true; } function stopPumpe() { // if Pumpe already stopped, return const pState = getState(P_SwitchID).val if(!pState) { return false; } // when WP is running, do not stop the pump const wpStatus = getState(WP_SwitchID).val; if(wpStatus) { //push("[POOL] Pumpe kann nicht gestoppt werden, WP läuft noch"); return false; } // check if minimum runtime has exceeded const runtime = getState(P_RuntimeID).val - getState(P_RuntimeStartTimeID).val; if(runtime < P_MinimumRuntime) { //push("[POOL] Pumpe hat Mindestlaufzeit noch nicht erreicht:" + runtime + "min/" + P_MinimumRuntime + "min"); return false; } // WP not running, but pump is setState(P_SwitchID, false); return true; }
-
Hallo zusammen,
ich habe mich an diesem Beitrag orientiert und wollte eine Steuerung für die Heizung unseres Intex Whirlpools realisieren.
Allerdings habe ich Probleme mit dem generierten Datenpunkt.Ich vermute, da sich der Wert des PV Überschusses ständig über dem eingestellten Wert (>=2500) ändert, wechselt der Status "Pool_Heizung_möglich" zwischen "True" und "False".
Habe ich einen Fehler im Blockly Skript oder kann dieses Verhalten verhindert werden?
-
da fehlt eine Hysterese, damit das Script nicht beim Vorbeizug von Wolken an und aus geht.
Dazu gibt es hier einige Beiträge, wo ich auch mein Script her habeDas gelbe ist die Hysterese, die auf 2 Minuten eingestellt ist
Das ist mein Infrarot Script, die bei 150 Watt Überschuss Lampe 1 aktiviert, bei weiteren 150 Lampe2 aktiviert. Im Bild ist nur der Einschalt Rythmuss, der Auschalt Befehl ist identisch, nur dann auf den Wert Bezug größer 50 Watt, dann Steckdosen aus.
-
@berndsolar13
Danke für den Hinweis.
Ich werde es testen