@siradam2k sagte: Speicher laden, wenn der Strompreis in der Nacht günstig ist.
Prinzip für die Nutzung der günstigsten Stunden ab 20 Uhr heute bis 20 Uhr morgen:
Blockly_temp.JPG
Am frühen Abend ist der Preis i.d.R. hoch - deshalb die Abfrage kurz vor 20 Uhr.
Spoiler <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="4p^}L]r%P#l-(O7knDl[">arr</variable> <variable id="i5;y!lsI9Z+q(s:ieqad">attr</variable> <variable id=";zN:A#IgVi-IO?c:_rKG">Liste</variable> <variable id="^m,?rK6f;8:reuUc/=OC">path</variable> <variable id="$MC$EG3G)s/D14)eTS$J">laden</variable> <variable id="9eaI*x0QwSH,5/t(~Ss(">hour</variable> <variable id="`szC?G(:l%u*-d2yX)3X">price</variable> <variable id="o~Pr[V=$uu5}PlQfJ]qL">i</variable> </variables> <block type="schedule" id="}5!(SWQH]z0zfdo@/;tn" x="-13" y="-862"> <field name="SCHEDULE">57 19 * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="2lkPCEiXcl~JS_5,SeFB"> <field name="VAR" id=";zN:A#IgVi-IO?c:_rKG">Liste</field> <value name="VALUE"> <block type="lists_create_with" id=";hj/.7I`j13?X/#]gAu3"> <mutation items="0"></mutation> </block> </value> <next> <block type="variables_set" id="cXv,$2PsVgPHWDqhr9y5"> <field name="VAR" id="^m,?rK6f;8:reuUc/=OC">path</field> <value name="VALUE"> <block type="text" id="[w=?`XZWgt9Y?})9pp|."> <field name="TEXT">tibberlink.0.Homes.xyz.PricesToday.</field> </block> </value> <next> <block type="controls_for" id="Gbe1wQ8C277Zg)KBBJPW"> <field name="VAR" id="9eaI*x0QwSH,5/t(~Ss(">hour</field> <value name="FROM"> <shadow type="math_number" id="c`UW=gv3-z3,B*)/ee20"> <field name="NUM">20</field> </shadow> </value> <value name="TO"> <shadow type="math_number" id="E%dBHNala7nnJZ%d|SsL"> <field name="NUM">23</field> </shadow> </value> <value name="BY"> <shadow type="math_number" id="tdnRWc4,FRB{tG9z;xMI"> <field name="NUM">1</field> </shadow> </value> <statement name="DO"> <block type="variables_set" id="}~1;]SD`Sdpql[fB%O;$"> <field name="VAR" id="`szC?G(:l%u*-d2yX)3X">price</field> <value name="VALUE"> <block type="get_value_var" id="*K/t_sb9vbxh#j+orG.W"> <field name="ATTR">val</field> <value name="OID"> <shadow type="field_oid" id="(Sb+_?_wU!ltkCQrMQwH"> <field name="oid">Object ID</field> </shadow> <block type="text_join" id="-_k6`PjE/PRpmX1qDT)[" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="n=ktq$sd#z?Aw#HN(P96"> <field name="VAR" id="^m,?rK6f;8:reuUc/=OC">path</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="6`QKLj2[-y@*kDS$@|xg"> <field name="VAR" id="9eaI*x0QwSH,5/t(~Ss(">hour</field> </block> </value> <value name="ADD2"> <block type="text" id="C$RdMrc*yRiw#mqNm()4"> <field name="TEXT">.total</field> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="8[-cPhZ[6QNGZ@qE],qV"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="8I@nskjxNJmk-7WZk9)B"> <field name="VAR" id=";zN:A#IgVi-IO?c:_rKG">Liste</field> </block> </value> <value name="TO"> <block type="object_new" id="6[8`Xw;1E{s@bx.S^m2n" inline="true"> <mutation xmlns="http://www.w3.org/1999/xhtml"> <attribute id="ATTR_0" name="hour"></attribute> <attribute id="ATTR_1" name="price"></attribute> </mutation> <value name="ATTR_0"> <shadow type="text" id="$,Q15BgP!]~vQq_zy~m+"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="%zFbgKhIIu=sPiVF$H:{"> <field name="VAR" id="9eaI*x0QwSH,5/t(~Ss(">hour</field> </block> </value> <value name="ATTR_1"> <shadow type="text" id="B4]t[usM5M6_/Ed!3h6o"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="Rh-Qo`?*Z5{0=amJ;[Kk"> <field name="VAR" id="`szC?G(:l%u*-d2yX)3X">price</field> </block> </value> </block> </value> </block> </next> </block> </statement> <next> <block type="variables_set" id="j{}7GM*s?@x,yx5|/d]d"> <field name="VAR" id="^m,?rK6f;8:reuUc/=OC">path</field> <value name="VALUE"> <block type="text" id="in4[dN^h-BjaZ5r!H4)B"> <field name="TEXT">tibberlink.0.Homes.xyz.PricesTomorrow.</field> </block> </value> <next> <block type="controls_for" id="npUP}{B*R=)a?zn6VUsU"> <field name="VAR" id="9eaI*x0QwSH,5/t(~Ss(">hour</field> <value name="FROM"> <shadow type="math_number" id="?3r~f?k1T]Wm|)Bs?6.{"> <field name="NUM">0</field> </shadow> </value> <value name="TO"> <shadow type="math_number" id="q,#Ny5MjUe51Dyb^c7+4"> <field name="NUM">19</field> </shadow> </value> <value name="BY"> <shadow type="math_number" id="Bt^-Ayt/oKl2Q;ssh]ZX"> <field name="NUM">1</field> </shadow> </value> <statement name="DO"> <block type="variables_set" id="}aS4oY4*:y=vQBLvoKyo"> <field name="VAR" id="`szC?G(:l%u*-d2yX)3X">price</field> <value name="VALUE"> <block type="get_value_var" id="shTX=O7Hy,0Np5Ya)hOP"> <field name="ATTR">val</field> <value name="OID"> <shadow type="field_oid" id="(Sb+_?_wU!ltkCQrMQwH"> <field name="oid">Object ID</field> </shadow> <block type="text_join" id="o/bR8i=bw.Fsr*mc,{vD" inline="true"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="xv0bUfV}uI]+;]}3F.X^"> <field name="VAR" id="^m,?rK6f;8:reuUc/=OC">path</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="]^j|GD_XLJl8SYQxyx5a"> <field name="VAR" id="9eaI*x0QwSH,5/t(~Ss(">hour</field> </block> </value> <value name="ADD2"> <block type="text" id="`jI9pf7g8hoZgey!GBZ+"> <field name="TEXT">.total</field> </block> </value> </block> </value> </block> </value> <next> <block type="lists_setIndex" id="rby57P2a3g@+.XkUg}a|"> <mutation at="false"></mutation> <field name="MODE">INSERT</field> <field name="WHERE">LAST</field> <value name="LIST"> <block type="variables_get" id="7e[Tzu73eDj2ITr7YPa`"> <field name="VAR" id=";zN:A#IgVi-IO?c:_rKG">Liste</field> </block> </value> <value name="TO"> <block type="object_new" id="+bW*^=_(E5.E?9ED-h9/" inline="true"> <mutation xmlns="http://www.w3.org/1999/xhtml"> <attribute id="ATTR_0" name="hour"></attribute> <attribute id="ATTR_1" name="price"></attribute> </mutation> <value name="ATTR_0"> <shadow type="text" id="$,Q15BgP!]~vQq_zy~m+"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="Wuz][XaLt;9vSW:Ay,y5"> <field name="VAR" id="9eaI*x0QwSH,5/t(~Ss(">hour</field> </block> </value> <value name="ATTR_1"> <shadow type="text" id="B4]t[usM5M6_/Ed!3h6o"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="v9bEz4!HXQsy]lm/w(bJ"> <field name="VAR" id="`szC?G(:l%u*-d2yX)3X">price</field> </block> </value> </block> </value> </block> </next> </block> </statement> <next> <block type="procedures_callcustomnoreturn" id="dB?4E8t6oEAd]T[U=iOC" inline="true"> <mutation name="sortObjNum"> <arg name="arr"></arg> <arg name="attr"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id=".DraBP08Z,YWUpf~My:X"> <field name="VAR" id=";zN:A#IgVi-IO?c:_rKG">Liste</field> </block> </value> <value name="ARG1"> <block type="text" id="sIkGNjsSV5ow.Qy,!O6W"> <field name="TEXT">price</field> </block> </value> <next> <block type="update" id="P}xCtP#-vLvwP}J,`LT$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Liste24</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="i.?4Cx9[k7B]()u@}R2E"> <field name="VAR" id=";zN:A#IgVi-IO?c:_rKG">Liste</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defcustomnoreturn" id="s@mvGKiRs~uLlMo:lZ.p" x="-437" y="-687"> <mutation statements="false"> <arg name="arr" varid="4p^}L]r%P#l-(O7knDl["></arg> <arg name="attr" varid="i5;y!lsI9Z+q(s:ieqad"></arg> </mutation> <field name="NAME">sortObjNum</field> <field name="SCRIPT">ZnVuY3Rpb24gc29ydEF0dHIoYSwgYikgew0KICAgIHJldHVybiBwYXJzZUZsb2F0KGFbYXR0cl0pIC0gcGFyc2VGbG9hdChiW2F0dHJdKTsNCn0NCmFyci5zb3J0KHNvcnRBdHRyKTs=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="variables_set" id="q7}`z7oT@,KuGWuhmg`;" x="-438" y="-538"> <field name="VAR" id=";zN:A#IgVi-IO?c:_rKG">Liste</field> <value name="VALUE"> <block type="get_value" id="HbYcBzo!^*Z+9,#`Rhee"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Liste24</field> </block> </value> <next> <block type="schedule" id="WXoRq@7+MOdb%^Hk5x[m"> <field name="SCHEDULE">0 * * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="=Z^mmdL!I!5y1O6*pxG?"> <field name="VAR" id="$MC$EG3G)s/D14)eTS$J">laden</field> <value name="VALUE"> <block type="logic_boolean" id="=)5$BLwW/St_{b.wO@1L"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="k#4piAzFuzAvtUYMsKHg"> <field name="VAR" id="9eaI*x0QwSH,5/t(~Ss(">hour</field> <value name="VALUE"> <block type="time_get" id="y/(#);(1G}rs[Vh;PhgK"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">h</field> </block> </value> <next> <block type="comment" id="-WMm532uqN}YCJMS|x2U"> <field name="COMMENT">4 billigste Stunden</field> <next> <block type="controls_for" id="z0NoGIr)zVZ)Y=TZqt,]"> <field name="VAR" id="o~Pr[V=$uu5}PlQfJ]qL">i</field> <value name="FROM"> <shadow type="math_number" id="jH7hs6M+dddqX8fuYTBU"> <field name="NUM">1</field> </shadow> </value> <value name="TO"> <shadow type="math_number" id="ekOx14;gpNBPhgcgeoF|"> <field name="NUM">4</field> </shadow> </value> <value name="BY"> <shadow type="math_number" id="eV6],x*glgwi5eJ.*_!H"> <field name="NUM">1</field> </shadow> </value> <statement name="DO"> <block type="controls_if" id="N1fHmobb~rloJp|i#I~S"> <value name="IF0"> <block type="logic_compare" id="7z*]i6asIw4`6#JL$;0*"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="?bh,h(c4RCTW.R?~b-03"> <field name="VAR" id="9eaI*x0QwSH,5/t(~Ss(">hour</field> </block> </value> <value name="B"> <block type="get_attr" id="?8Zq3N=JRu2^/vTA;wUx"> <value name="PATH"> <shadow type="text" id="n=,%Ek*17w%8oY1MduaL"> <field name="TEXT">hour</field> </shadow> </value> <value name="OBJECT"> <shadow type="get_object" id="UbxkkMW{]=UzLO4;vp{0"> <field name="OID">Object ID</field> </shadow> <block type="lists_getIndex" id="1P@B}Z(Gz[#~Y,3rDect"> <mutation statement="false" at="true"></mutation> <field name="MODE">GET</field> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="xlT(#SKF-J**vP.,/WrK"> <field name="VAR" id=";zN:A#IgVi-IO?c:_rKG">Liste</field> </block> </value> <value name="AT"> <block type="variables_get" id="HCy+~/s:HS5mre2WJ+kt"> <field name="VAR" id="o~Pr[V=$uu5}PlQfJ]qL">i</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="$S129$CHGLJ@=2%}v7{3"> <field name="VAR" id="$MC$EG3G)s/D14)eTS$J">laden</field> <value name="VALUE"> <block type="logic_boolean" id="@lETrS)S$W|w]%iE_Wv("> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="controls_flow_statements" id="m)TpQMrP~^*96B{(P-ug"> <field name="FLOW">BREAK</field> </block> </next> </block> </statement> </block> </statement> <next> <block type="control" id="wb47w74pWEKBS9gtY}P%"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Laden_ein</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=")Jk]R@[lA{OZM,Z@OE^R"> <field name="VAR" id="$MC$EG3G)s/D14)eTS$J">laden</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>Anmerkung: Bevor die sortierte Liste täglich um 19:57 Uhr befüllt wird, sollte sie nach Skripterstellung erst einmal sofort befüllt werden. "Liste" ist ein eigener DP vom Typ "array".