NEWS
Blockly Fenstererkennung fehlerhaft
-
@gismoh Hi, mir erschließt sich nicht ganz der Sinn darin, hier 2 Blocklys zu verwenden um eigentlich die gleiche Sache zu machen. Wenns nur darum geht bei 3 Grad und unter 3 Grad andere Wartezeiten bis zur Meldung zu generieren, könnte man das auch in einen Trigger packen. Falls = 3 Grad, sonst Fall < 3 Grad.
Edit: Auch das würde keinen Sinn ergeben, genau 3 Grad ist eher selten und es würde meist beides greifen. Aber das meintest du glaube ich schon mit Fehler erkannt.
Ne andere Sache ist, wenn du das Fenster auf machst und es ist über 3 Grad kriegst du ja nie ne Meldung, auch nicht wenn die Temperatur später unter 3 Grad fällt. Ich würde die Temperatur da als zusätzlichen Trigger mit rein nehmen. -
@paul53
Danke, dies war es vermutlich.
Hatte bei zwei weiteren Fenstern auch teils Probleme, und dort auch "aktualisiert" drin.
Bei den bisher unauffälligen Fenstern stand es bereits auf "wurde geändert".
Merci -
@frankyboy73
Danke für den Hinweis.
Habe eigentlich vor drei oder vier Temperaturstufen einzubauen.
Also z.B. unter 0 Grad, 0-7 Grad, 8-12 Grad, 13-18 Grad, und über 19+ Grad.
Jeweils mit einer anderen Zeitbegrenzung.Kann ich das einfacher (kompakter) machen, als jeweils einen neuen Trigger dafür anzulegen?
-
@gismoh sagte: Jeweils mit einer anderen Zeitbegrenzung.
Was meinst Du mit Zeitbegrenzung?
@gismoh sagte in Blockly Fenstererkennung fehlerhaft:
als jeweils einen neuen Trigger dafür anzulegen?
Man sollte generell nur einen Trigger pro Datenpunkt verwenden und innerhalb der Trigger-Callback-Funktion verzweigen. Etwa so:
-
@paul53
Super, danke- versuche ich mal nachzubasteln
Mit "Zeitbegrenzung" meine ich, das er uns z.B bei -1 Grad bereits nach 3 Minuten erinnern soll die Fenster zu schließen und z.B. bei 15 Grad erst nach 10 Minuten. -
@paul53 said in Blockly Fenstererkennung fehlerhaft:
@gismoh
Ändere die Trigger auf "wurde geändert".Muss ich beobachten,
zumindest wollte er heute bereits 1x trotz geänderten Trigger, das das bereits geschlossene Fenster geschlossen wird. Ansonsten hat sich vermutlich noch ein Fehler versteckt? -
@paul53
"Wurde geändert" hat leider nichts bewirkt. Ist auch erneut bei einem anderen Fenster passiert, das er noch meldet, das Fenster solle geschlossen werden.
Allerdings weis der iobroker (normalerweise) selber, das das Fenster zu ist.
Denn ich habe die Fenster auch visualisiert, dort werden die auch als geschlossen angezeigt.
Noch eine Idee - bzw. einen "Workaround"?
Super, habe mir das von Dir gerne abgeschaut - so sieht es natürlich sehr viel aufgeräumter aus.
Allerdings bekomme ich nun den Alarm, so wie ich den unteren Teil drangesetzt habe gar nicht deaktiviert.
Probiere ich aber noch weiter.<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="gxHhXDH$hlKW3@T%B$8G">AussenTemp</variable> <variable id="s$fb97|IP/p,8^LVB;W#">Verzoegerung</variable> <variable type="timeout" id="timeout">timeout</variable> <variable type="interval" id="Intervall">Intervall</variable> </variables> <block type="on" id="N]@:_uau_z*C[T^sev~n" x="-1087" y="-862"> <field name="OID">deconz.0.Sensors.29.open</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="n0EVV1Ztai4:@^y]hz+I"> <value name="IF0"> <block type="logic_compare" id="$VC2eD1#hwmA2V!~!,.L"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="Zd~XBj*-vtUE]#(Q6d.2"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="39N8~.l]JHhsQBSUf_Wh"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="a|xi=saSOS4)~8dOzm/S"> <field name="VAR" id="gxHhXDH$hlKW3@T%B$8G">AussenTemp</field> <value name="VALUE"> <block type="get_value" id="*I:e,b1n|gY]I]phBgC{"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.5.temperature</field> </block> </value> <next> <block type="controls_if" id="u=0$^Yu!$)~o^OL`NQGz"> <mutation elseif="3" else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="%/pbF7YxX1t5R.8j?f!U"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="4~hyIdt}A569W=uZMgzI"> <field name="VAR" id="gxHhXDH$hlKW3@T%B$8G">AussenTemp</field> </block> </value> <value name="B"> <block type="math_number" id="rsCrLBgYoN|z{`SHc9KV"> <field name="NUM">3</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id=".F)P7AAT_Px!BT!-u(*@"> <field name="VAR" id="s$fb97|IP/p,8^LVB;W#">Verzoegerung</field> <value name="VALUE"> <block type="math_number" id="=Ot_IUNS?W:T{,I{UM.j"> <field name="NUM">3</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="tV5rFG}.1EOt4Sw$0QaU"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="f]Rz=UzI9sn:(l`tOyW-"> <field name="VAR" id="gxHhXDH$hlKW3@T%B$8G">AussenTemp</field> </block> </value> <value name="B"> <block type="math_number" id="lUKBqcGKpnsI#TDi+D^D"> <field name="NUM">8</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="YK1xhH(lJ4{/E_anCS[K"> <field name="VAR" id="s$fb97|IP/p,8^LVB;W#">Verzoegerung</field> <value name="VALUE"> <block type="math_number" id="Vqp@H|cAK6I{p(;LV!SJ"> <field name="NUM">5</field> </block> </value> </block> </statement> <value name="IF2"> <block type="logic_compare" id="9lZ5hGcs|UsPtYaJD1`p"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="uZN=8^s}@,^O@ZrP`vIM"> <field name="VAR" id="gxHhXDH$hlKW3@T%B$8G">AussenTemp</field> </block> </value> <value name="B"> <block type="math_number" id="j7SLRPdeYK$jjT{9S;o,"> <field name="NUM">15</field> </block> </value> </block> </value> <statement name="DO2"> <block type="variables_set" id="vCP@hlB_aw1AIk_dVGa-"> <field name="VAR" id="s$fb97|IP/p,8^LVB;W#">Verzoegerung</field> <value name="VALUE"> <block type="math_number" id="z7(LEAp}lV0UM^@mq{oD"> <field name="NUM">7</field> </block> </value> </block> </statement> <value name="IF3"> <block type="logic_compare" id="?m%Qam8%8NCFe|F7^5mn"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="eY86g3zc`Wc=G3S`N!xI"> <field name="VAR" id="gxHhXDH$hlKW3@T%B$8G">AussenTemp</field> </block> </value> <value name="B"> <block type="math_number" id="xQ7`OY$bA%S`NwR-!}`g"> <field name="NUM">18</field> </block> </value> </block> </value> <statement name="DO3"> <block type="variables_set" id="r?TMBpTi_FXA)}WCX]|Y"> <field name="VAR" id="s$fb97|IP/p,8^LVB;W#">Verzoegerung</field> <value name="VALUE"> <block type="math_number" id="%%;oIG+0g$NHZnlGg8-O"> <field name="NUM">10</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="ejzKhEhJbLT=q{Za|/T3"> <field name="VAR" id="s$fb97|IP/p,8^LVB;W#">Verzoegerung</field> <value name="VALUE"> <block type="math_number" id="p[4hd1?{,-;)t?A}q5-i"> <field name="NUM">15</field> </block> </value> </block> </statement> <next> <block type="variables_set" id="+=iOUAi*L3U8k5TaNoi:"> <field name="VAR" id="s$fb97|IP/p,8^LVB;W#">Verzoegerung</field> <value name="VALUE"> <block type="math_arithmetic" id="VF@m!e=T/oFkQM$25O2W"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="V2[vXO5IX0V2YM:j=W=h"> <field name="NUM">60000</field> </shadow> <block type="math_number" id="DYzkB1cTtA~*Y8Z?i/^%"> <field name="NUM">60000</field> </block> </value> <value name="B"> <shadow type="math_number" id="mrJ,,(l66;D4/P5e[Rz_"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="g|^~d@6iP=mh*Vb_dHAy"> <field name="VAR" id="s$fb97|IP/p,8^LVB;W#">Verzoegerung</field> </block> </value> </block> </value> <next> <block type="controls_if" id="w=NLy_EfVh7BO^h|@~#l"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="~II.(k3^eFc@b#$$0R7G"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="U,0XMv-19sty_NLV!c1|"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="{Vw5J:u*Um$c,2GklT`0"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="W*wP9@NBkxLW,Pco|1]r"> <field name="NAME">timeout</field> <field name="DELAY">Verzoegerung</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="telegram" id="W,~C7pwcqVp4-hZXkOsZ"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="h+].m2(HiI((lXC).no;"> <field name="TEXT">Fenstererkennung Bitte WC Fenster Schließen</field> </shadow> </value> <next> <block type="control" id="g@SWkVlF|!)8ak+vD^x8"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090XG0894770UC4.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="zShd?J=2MAF|BjQn`m19"> <field name="TEXT">Fenstererkennung Bitte WC Fenster schließen</field> </block> </value> <next> <block type="control" id="[]]#_IY3V-ls7GW%jcS{"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090XG0894772GR9.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">7</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="LIT,_+jeUqWCs4ou8k+."> <field name="TEXT">Fenstererkennung Bitte WC Fenster schließen</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="timeouts_setinterval" id="2/Q4jIB|sx)F87OSk?4M"> <field name="NAME">Intervall</field> <field name="INTERVAL">90</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="lvT[dI47TtpPf]l5,/#K"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090XG0894770UC4.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="YLfSz$kfb_()/?{^s%Z3"> <field name="TEXT"><amazon:effect name="whispered"> Fenstererkennung Bitte WC Fenster schließen</amazon:effect></field> </block> </value> <next> <block type="control" id="(k-@DnaU!(y5E*Yau6,]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090XG0894772GR9.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">20</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="Bo20C8EXl(bu=:[9vwE("> <field name="TEXT">Fenstererkennung Bitte WC Fenster schließen</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_cleartimeout" id="X7*3S88~X=HVTTysQC|N"> <field name="NAME">timeout</field> <next> <block type="timeouts_clearinterval" id="1clI^]d8$VfCq?nin/re"> <field name="NAME">Intervall</field> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
Merci!
-
@gismoh sagte: Allerdings bekomme ich nun den Alarm, so wie ich den unteren Teil drangesetzt habe gar nicht deaktiviert.
Die Verzögerung und das Intervall werden so nie gestoppt.
Habe korrigiert:
-
@paul53
Herzlichsten Dank!Mein Gedankengang war, weil sich das Script auch vorher manchmal nicht beendet hatte (obwohl Fenster geschlossen) "haue" ich da zur Sicherheit erneut eine Abfrage rein, ob der Kontakt wirklich noch geöffnet ist.
Mir fehlt da wohl noch einiges grundsätzliches - bin Laie.Sehr schön, nun kann ich einige Blockly´s sauberer machen.
Merci, sehr lieb von Dir.
-
@paul53
Konnte das neue Script nun ein paar Tage testen.
Die überflüssig anhaltende Aufforderung, offene Fenster zu schließen ist nun nicht mehr aufgetaucht.
Lag vermutlich an dem doppelten Trigger. Besten Dank!