NEWS
[gelöst] Timer erst starten, wenn Gerät nicht mehr aktiv ist
-
Danke für deine Antwort. Glaube habe mich ein wenig ungenau ausgedrückt. Das mit der Temperatur soll mit beim Laufband mit rein. Hintergrund, wenn Sommer und 20 Grad draußen sind, brauche ich keine Erinnerung von jedem Fenster, das es offen ist. Temperatur aber unter 20 Grad. Soll er mich erinnern, das der Keller/Bad usw. usf nicht auskühlt.
-
@Slowman sagte:
wenn Sommer und 20 Grad draußen sind, brauche ich keine Erinnerung von jedem Fenster
Dann mache eine falls-Klammer um die restlichen Prüfungen:
falls AT < 20 mache ...
-
Hat nicht so funktioniert, der Tipp von oben. Habe jetzt es soweit, das es funktioniert. Es klappt (Fenster offen), wenn Laufband aus ist kommt eine Meldung , wenn LB an ist kommt keine Meldung. Aber, wenn LB an ist/ Fenster offen und das LB wird ausgeschaltet kommt keine Meldung, das das Fenster offen ist
Wo jetzt noch eine Routine rein muss..... Wenn ich bei Falls Objekt den Switch vom LB mit reinnehme, bedankt sich Alexa bei jeder Änderung.
-
@Slowman sagte:
Wenn ich bei Falls Objekt den Switch vom LB mit reinnehme, bedankt sich Alexa bei jeder Änderung.
Der Trigger wird benötigt, um auf Änderung des LB zu reagieren. Versuche es mal so im unteren Teil:
Hinweis: Erst eine dummy-Variable erstellen, diese in das Editor-Fenster ziehen, anschließend in die Javascript-Ansicht und wieder zurück wechseln und dann anstelle der dummy-Variable die Variable Intervall selektiere.
-
Macht er nicht. So sieht der Script bei mir aus. Teste morgen weiter.
var Intervall; on({id: 'deconz.0.Sensors.35.open', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("deconz.0.Sensors.35.open").val != 0 && getState("zwave2.0.Node_019.Binary_Switch.currentValue").val == false) { Intervall = setInterval(function () { setState("alexa2.0.Echo-Devices.G090U50783952J5A.Commands.speak"/*speak*/, '30;Das Fenster am Laufband ist seit 10 Minuten offen'); }, 60000); } else if (Intervall) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); if (!getState("deconz.0.Sensors.35.open").val) { setState("alexa2.0.Echo-Devices.G090U50783952J5A.Commands.speak"/*speak*/, '30;Danke, das Du das Fenster geschlossen hast.'); } } });
-
@Slowman
Du musst das LB als Trigger hinzufügen. -
Danke funktioniert jetzt.
Wenn ich das mit der Außentemperatur umsetzen möchte, kommt die Außentemperatur auch in den Trigger mit rein?
-
Hmmm.... habe den Script jetzt für ein anderes Fenster angepasst und Alexa labbert mich unregelmässig mit "Danke das du das Fenster geschlossen hast" zu. Was bei dem Script mit dem LB nicht passiert.
Den Außenfühler aus dem Trigger nehmen?
-
@Slowman sagte:
Wenn ich das mit der Außentemperatur umsetzen möchte, kommt die Außentemperatur auch in den Trigger mit rein?
Nein.
-
Danke für die Hilfe paul53
Hier der fertige Blockly, vielleicht kann ja Jemand diesen gebrauchen.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="interval" id="Intervall">Intervall</variable> </variables> <block type="on_ext" id="F!vi?BKRsLZog%?FBH:g" x="145" y="-541"> <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="wVxaT/vXrZp%oq.$ztTZ"> <field name="oid">deconz.0.Sensors.36.open</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="XW_hOHdKCcq}gh.l`+$j"> <value name="IF0"> <block type="logic_compare" id="}xOLFNov3G6s*}2,Z2UM"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="6e}P^ZNT_Jy6-ja?r]U{"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.33.temperature</field> </block> </value> <value name="B"> <block type="math_number" id=",G{QbJ|6c5{,Iq^!$Li3"> <field name="NUM">15</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="X3z1#^5Fw/yt.JJH%mgG"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="kz6a*@]rTi@)ZP{,]#*:"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="XEaJQQQ*$nX}=}pk-D/r"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.36.open</field> </block> </value> <value name="B"> <block type="math_number" id="Yrl[!=%9ZHJUAD;25Obz"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_setinterval" id="u#rS73GY/m7T~.#Bh9QU"> <field name="NAME">Intervall</field> <field name="INTERVAL">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="=*B,vjZW*hnjeJ!PgxP@"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U50783952J5A.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="s(HE-yMfiJs%,njRSwwp"> <field name="TEXT">20;Das Fenster im Gäste WC ist seit 10 Minuten offen</field> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="timeouts_clearinterval" id="e^!S+IEUkz74-KWuLP)]"> <field name="NAME">Intervall</field> <next> <block type="control" id="|X=~p7*8$lmTqfr`DR.L"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U50783952J5A.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="r41/^`!#QQ8#L)reQ5BH"> <field name="TEXT">20;Danke, das Du das Fenster im Gäste WC geschlossen hast.</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </xml>