NEWS
SOLVED Wie kann man einen laufenden timeout abbrechen?
-
Hallo,
Ich habe folgendes Problem, wenn im Bad das Fenster geöffnet wurde, dann fragt das Blockly nach bestimmten Zeiten (timeout) ob das Fenster noch offen ist, falls ja schickt es eine Nachricht das es wieder geschlossen werden muss.
Soweit so gut, aber wenn das Fenster geschlossen wurde läuft der timeout im Blockly noch weiter, d.h. wenn währendessen wieder das Fenster geöffnet wird, kann es passieren das nach 10 Minuten die Meldung kommt, dass das Fenster schon 30 Minuten offen wäre.
Habt ihr eine Idee wie ich dieses Problem lösen könnte?
-
@saeft_2003 sagte in Wie kann man einen laufenden timeout abbrechen?:
Ich sehe gerade das stop timeout blockly das sollte doch mein Problem lösen
ja, genau.
bei einer Änderung des Triggers sollte das stop-timeout als erstes alle vorgänge stoppen -
zeige doch mal das bisherige Blockly
-
Klar kann ich machen. Hier ein Export, auf ein Screenshot passt es nicht drauf
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeout3">timeout3</variable> <variable type="undefined" id="timeout4">timeout4</variable> <variable type="undefined" id="timeout23">timeout23</variable> <variable type="undefined" id="timeout24">timeout24</variable> <variable type="undefined" id="timeout25">timeout25</variable> </variables> <block type="on" id="by1s.4f?NDVIFHrZt7t6" x="-1137" y="-413"> <field name="OID">mihome.0.devices.magnet_158d000201178b.state</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="#H]c`MvSh@qa%]1A;X{l"> <value name="IF0"> <block type="logic_compare" id="r3?|56Y}1[qjVQ%IJC,_"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="]98[Qbvr(ql49Ss/sR]A"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.magnet_158d000201178b.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id=".08^?C%zavnXAFxe@?XF"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="fv{N7.-m4ao,{]s**o6V"> <value name="IF0"> <block type="logic_compare" id="%o8q-=y:h^@F[cK!OaUt"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="8uy3(Li+Oa^=Sx/ngBD6"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.sensor_ht_158d0001c2abd6.temperature</field> </block> </value> <value name="B"> <block type="math_number" id="^Vi!jKVO01P.}9)e#7kS"> <field name="NUM">10</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="X-d-5=`bRT#,l5w*!u/Q"> <field name="NAME">timeout3</field> <field name="DELAY">60</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="E!aVPH*#(g0y,qAs3JO3"> <value name="IF0"> <block type="logic_compare" id="eorUWX7#eIu)n}%_0R^}"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="F%`K2)20fVEtUrHFzGwq"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.magnet_158d000201178b.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="gqkOuX6=zyOEKf5].#Q|"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="Xf32:F;W,pb,.xiQ(Vkq"> <field name="INSTANCE">.1</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id=",RQdnvrNQw#=rbcBSDVH"> <field name="TEXT">Fenster Bad EG 60 min geöffnet. Bitte schließen!</field> </shadow> </value> <next> <block type="control" id="u-]^0hO:snX;(!{|p|sT"> <mutation delay_input="false"></mutation> <field name="OID">admin.0.Pushnachricht</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="]l):%@`$3;Jwi;Np}XjG"> <field name="TEXT">Fenster Bad EG 60 min geöffnet. Bitte schließen!</field> </block> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="timeouts_settimeout" id="osA[Kj+j)RaHm:PcbwU."> <field name="NAME">timeout4</field> <field name="DELAY">75</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="gTH{B]^Ts`AZQ]M9KWt+"> <value name="IF0"> <block type="logic_compare" id="8,[%G3*H1*8!SrWN[%b8"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="N/XUeIp^m~-t4B!eAx_i"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.magnet_158d000201178b.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="B(U{}ugNR7W=Fj|FlD:7"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="FA:d(Aqra^gnM.yIm.8d"> <field name="INSTANCE">.1</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="edkCJ7PS]N]eDhkAl!uP"> <field name="TEXT">Fenster Bad EG 1 Stunde und 15 min geöffnet. Bitte schließen!</field> </shadow> </value> <next> <block type="control" id="]JQKd5l)CX3g{:Dp0)%r"> <mutation delay_input="false"></mutation> <field name="OID">admin.0.Pushnachricht</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="xVF0zl:30!F9:zc`a5CA"> <field name="TEXT">Fenster Bad EG 1 Stunde und 15 min geöffnet. Bitte schließen!</field> </block> </value> <next> <block type="controls_if" id="#sPmnx4*vI}e|LJsSgd-"> <value name="IF0"> <block type="time_compare_ex" id="I_RP^/~]A+8^QJ1-`HGB"> <mutation end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="bvpg*gFWhU^l_4l%e;!["> <field name="TEXT">8:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="Gh5Fqe@LKrBPEkzL^To|"> <field name="TEXT">18:00</field> </shadow> </value> </block> </value> <statement name="DO0"> <block type="control" id="7N**X]Eyq9*m--(H/N~-"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090P3088147031K.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="YhfWtAs.^cZ{J,m3bH8Q"> <field name="TEXT">Fenster Bad Erdgeschoss 1 Stunde und 15 min geöffnet. Bitte schließen!</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> <next> <block type="controls_if" id=":ecFleX!x;R29M2Zy/qH"> <value name="IF0"> <block type="logic_compare" id="F*kK]Ydv/*!e*fKFL/7t"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="LsHH!2IRQcmCjCG5%0up"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.sensor_ht_158d0001c2abd6.temperature</field> </block> </value> <value name="B"> <block type="math_number" id="[DCdB]?5no(3!L29n(iP"> <field name="NUM">10</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="wIHC!Strt_wf4YX(:,E*"> <field name="NAME">timeout23</field> <field name="DELAY">30</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="GuO[y*MN81N=Z,VVst%2"> <value name="IF0"> <block type="logic_compare" id="x?K#_P=ho(]?n~).tuVG"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=")j!9/^Q}y0rvgD@s1ZDf"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.magnet_158d000201178b.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="JrxG|Qf7{M7S:raK#7a?"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="[,HwAD;z)jX2Yy:HC[1K"> <field name="INSTANCE">.1</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="+ca^%F!Gvo!lp#JYXLM="> <field name="TEXT">Fenster Bad EG 30 min geöffnet. Bitte schließen!</field> </shadow> </value> <next> <block type="control" id="6.H^naI+P:7`zOva+=b6"> <mutation delay_input="false"></mutation> <field name="OID">admin.0.Pushnachricht</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="UXh~Jo-J=Z9zVicNt[4H"> <field name="TEXT">Fenster Bad EG 30 min geöffnet. Bitte schließen!</field> </block> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="timeouts_settimeout" id="v2T9h-MZVfDZ.i]lPEv-"> <field name="NAME">timeout24</field> <field name="DELAY">45</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="e_gjEb5dimN}g-%[_]T|"> <value name="IF0"> <block type="logic_compare" id="9LD2/#gIJmx9/M.;S@S,"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="no)yQl5:f69P%QLJlD,#"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.magnet_158d000201178b.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="}7p[:SYmL*5i@9O:OT|5"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="][A)7[KjAoPc2pf69.vt"> <field name="INSTANCE">.1</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="k9rY~i^`l8EiG=4!2M3^"> <field name="TEXT">Fenster Bad EG 45 min geöffnet. Bitte schließen!</field> </shadow> </value> <next> <block type="control" id="u7oD@-kOCX3eR)zD30]c"> <mutation delay_input="false"></mutation> <field name="OID">admin.0.Pushnachricht</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="72bB%[Yv1kXt:aWAlUXL"> <field name="TEXT">Fenster Bad EG 45 min geöffnet. Bitte schließen!</field> </block> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="timeouts_settimeout" id="{#x/mK,ki-?z*SpV@meG"> <field name="NAME">timeout25</field> <field name="DELAY">60</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="~%f%_86)TxHLo290U~[T"> <value name="IF0"> <block type="logic_compare" id="#ODUsq^_L-1-c9XT%7)7"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="ubTJJ6mM~-N;FG8y9fMY"> <field name="ATTR">val</field> <field name="OID">mihome.0.devices.magnet_158d000201178b.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="%PFL%qUuM~Gw]CWxd:*9"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="telegram" id="M*B.4Y:GaRnHVSME~{!3"> <field name="INSTANCE">.1</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="GUuYUd-{]LJb]],d(/Qo"> <field name="TEXT">Fenster Bad EG 60 min geöffnet. Bitte schließen!</field> </shadow> </value> <next> <block type="control" id="]MjQ4E)[SrRCdhDokf(s"> <mutation delay_input="false"></mutation> <field name="OID">admin.0.Pushnachricht</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="QaC(bu3_8GQoZ`QHCGGv"> <field name="TEXT">Fenster Bad EG 60 min geöffnet. Bitte schließen!</field> </block> </value> <next> <block type="controls_if" id="V.0hccl9I7G6nX]juDvQ"> <value name="IF0"> <block type="time_compare_ex" id="zs{%s:Mg]Q-g(EGXi8BV"> <mutation end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="86=^dcU)D?;9z+@D%#00"> <field name="TEXT">8:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="vA-Yja9]k^sDg`Mb91bh"> <field name="TEXT">18:00</field> </shadow> </value> </block> </value> <statement name="DO0"> <block type="control" id="^X_6%k#,BQ(*/pxJVeKR"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090P3088147031K.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="/M`r3xnh_Uh?l`ae6}=*"> <field name="TEXT">Fenster Bad Erdgeschoss 1 Stunde geöffnet. Bitte schließen!</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </xml>
Obwohl, hier ein Teil vom Blockly denke man kann es geradeso noch erkennen...
Ich sehe gerade das stop timeout blockly das sollte doch mein Problem lösen
-
@saeft_2003 sagte in Wie kann man einen laufenden timeout abbrechen?:
Ich sehe gerade das stop timeout blockly das sollte doch mein Problem lösen
ja, genau.
bei einer Änderung des Triggers sollte das stop-timeout als erstes alle vorgänge stoppen -
Alles klar. Verstehe bloß nicht warum ich da nicht schon früher drauf gekommen bin, verrückt...