Da ich das Blockly gestern schon fertig und getestet hatte und es vielleicht doch noch jemanden nützlich sein kann stell ich es noch hier rein bevor ich es lösche.
Üblicherweise werden Sonoff mit Tasmota geflasht die dann bestimmte Grundeinstellungen haben wie ein Sendeintervall der Daten alle 300 Sek. Ohne den Sendeintervall zu ändern würde ein Blockly das mit einem 3 min. timeout arbeitet nur "alten Daten" erhalten bzw. bis neue Daten kommen ist das Blockly längst abgearbeitet. Dann könnte man gleich beim unterschreiten des Grenzwertes ausschalten und auf den timeout verzichten.
Ich habe das Blockly anhand er Daten von meinem Server getestet wodurch eine Überbrückungszeit einzubauen notwendig war. Die Überbrückungszeit wird im timeout2 eingetragen die sich aus der verzögerten Einschaltung (40 sek.) und der Zeit die nach dem wieder einschalten gewartet werden soll bis der Grenzwert sicher überschritten ist. In den "request" Blöcken ist die IP-Adresse noch einzutragen. Der Sendeintervall der Sonoff Daten wird beim unterschreiten des Grenzwertes auf 10 sek. gesetzt und beim beenden der Überbrückungszeit wieder auf 300 sek. zurückgesetzt.
4173_1.png
Export
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="variables_set" id="LXo4C`;b@)UU^c]v/EAI" x="-87" y="-488"><field name="VAR">Timer_OFF_Läuft</field>
<value name="VALUE"><block type="logic_boolean" id="sY_DFgl2Yc0F/U,n@G,"><field name="BOOL">FALSE</field></block></value>
<next><block type="variables_set" id="gE{jkO_.!X!oD)gwvZt"><field name="VAR">Timer_Pause</field>
<value name="VALUE"><block type="logic_boolean" id="D9l%P;J;O=V#Oo5-17mu"><field name="BOOL">FALSE</field></block></value>
<next><block type="on_ext" id="d0[YYdZDI{r2(i+^H~6k"><mutation items="1"></mutation>
<field name="CONDITION">any</field>
<value name="OID0"><shadow type="field_oid" id="11:L)kD)[Xz/sF5_V-8y"><field name="oid">javascript.0.Power</field></shadow></value>
<statement name="STATEMENT"><block type="controls_if" id="TIxyAkFg}uIhrY9iA-3q"><value name="IF0"><block type="logic_operation" id="SS`D8[tFc~.5lJ}pXrb+" inline="false"><field name="OP">AND</field>
<value name="A"><block type="logic_compare" id="8kZq*60w-M-fT@%B{Y2N"><field name="OP">LT</field>
<value name="A"><block type="get_value" id="`kczcX0[4W#a2}O:/F7g"><field name="ATTR">val</field>
<field name="OID">javascript.0.Power</field></block></value>
<value name="B"><block type="math_number" id="^Q=X6j3{eQChA2KG2@t5"><field name="NUM">1200</field></block></value></block></value>
<value name="B"><block type="logic_operation" id="y^K5/WO892=Z.!v=LOAf" inline="false"><field name="OP">AND</field>
<value name="A"><block type="logic_compare" id="5i/u:oMcC+*`+:0kz9j*"><field name="OP">EQ</field>
<value name="A"><block type="variables_get" id="u8PqlwOo=HTT7]S?-Kod"><field name="VAR">Timer_OFF_Läuft</field></block></value>
<value name="B"><block type="logic_boolean" id="{@4Q,[1+f]MHo:wy6DWw"><field name="BOOL">FALSE</field></block></value></block></value>
<value name="B"><block type="logic_compare" id="S%fxdkj01LyX.)8?03Q#"><field name="OP">EQ</field>
<value name="A"><block type="variables_get" id="VX{!I]BR*0wN~Fo4c+#i"><field name="VAR">Timer_Pause</field></block></value>
<value name="B"><block type="logic_boolean" id="Qv5=n9FbQC8Z*m??]I3^"><field name="BOOL">FALSE</field></block></value></block></value></block></value></block></value>
<statement name="DO0"><block type="comment" id=".(IcX/gt5#SuJxj5~mIE"><field name="COMMENT">Sendeintervall des Sonoff auf 10 sek. setzen</field>
<next><block type="request" id="Iy+P(eO[~+-R{05^m]SO"><mutation with_statement="false"></mutation>
<field name="WITH_STATEMENT">FALSE</field>
<field name="LOG">log</field>
<value name="URL"><shadow type="text" id=",;KnXC=[%HvM,8{C8JjZ"><field name="TEXT">http://Sonoff-IP/cm?cmnd=TelePeriod%2010</field></shadow></value>
<next><block type="comment" id="uR#}+d;`CiEf@`zri@j/"><field name="COMMENT">Start des Ausschalttimers</field>
<next><block type="timeouts_settimeout" id="3TdDK@x#TxN5}+?Ar-z]"><field name="NAME">timeout</field>
<field name="DELAY">3</field>
<field name="UNIT">min</field>
<statement name="STATEMENT"><block type="controls_if" id="i;U(LK,:3*AG]7Cs[B3y"><value name="IF0"><block type="logic_compare" id="0rBeEYYqKav|-`dqI[Ti"><field name="OP">LT</field>
<value name="A"><block type="get_value" id="*@N~e9|AT.=U^]~f@#i_"><field name="ATTR">val</field>
<field name="OID">javascript.0.Power</field></block></value>
<value name="B"><block type="math_number" id="c+cbZPZyjO8bb7xLzhf^"><field name="NUM">1200</field></block></value></block></value>
<statement name="DO0"><block type="control" id="Sk[S,4ag_O%9P-Gy(A*)"><mutation delay_input="false"></mutation>
<field name="OID">javascript.0.POWER</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="text" id="rLa35BO{Uw9.V)A::#5K"><field name="TEXT">OFF</field></block></value>
<next><block type="comment" id="JYQf@e0OmDn[%N(@)|-@"><field name="COMMENT">Einschaltverzögerung</field>
<next><block type="control" id="B`l9`[%OVU=7HyR}spOv"><mutation delay_input="true"></mutation>
<field name="OID">javascript.0.POWER</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">40</field>
<field name="UNIT">sec</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block type="text" id="C+zv`PhHS)~:0;?]!z[X"><field name="TEXT">ON</field></block></value>
<next><block type="variables_set" id="?Hv(m@,+f^[=T,3q6Zpa"><field name="VAR">Timer_OFF_Läuft</field>
<value name="VALUE"><block type="logic_boolean" id="Jrw+:tz{2=V2KZ)g)H8z"><field name="BOOL">FALSE</field></block></value>
<next><block type="comment" id="+lS-5[0ZqcI[rdSN1*9}"><field name="COMMENT">Start der Überbrückungszeit</field>
<next><block type="variables_set" id="@{5P:)vkgl0N6c(1X]jY"><field name="VAR">Timer_Pause</field>
<value name="VALUE"><block type="logic_boolean" id="I.%87EjD.|`jl@#0Wp_M"><field name="BOOL">TRUE</field></block></value>
<next><block type="timeouts_settimeout" id="0YA6M}B(8nvuPlvj00Yj"><field name="NAME">timeout2</field>
<field name="DELAY">60</field>
<field name="UNIT">sec</field>
<statement name="STATEMENT"><block type="variables_set" id="n|%^RZ,;?VN*p-B5UA?{"><field name="VAR">Timer_Pause</field>
<value name="VALUE"><block type="logic_boolean" id="qT,mAT@j]vk(*n#nqC=E"><field name="BOOL">FALSE</field></block></value>
<next><block type="comment" id="2T}HLbLs#Q~Tde7#db7L"><field name="COMMENT">Sendeintervall des Sonoff auf 300 sek. setzten</field>
<next><block type="request" id="k4pC}qfw1IN2J2q:a}i_"><mutation with_statement="false"></mutation>
<field name="WITH_STATEMENT">FALSE</field>
<field name="LOG">log</field>
<value name="URL"><shadow type="text" id="1Kqkdwdfr_m11)hGXr~w"><field name="TEXT">http://Sonoff-IP/cm?cmnd=TelePeriod%20300</field></shadow></value></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></statement></block></next></block></next></block></next></block></statement></block></statement></block></next></block></next></block></xml>