NEWS
Zeitsteuerung mal etwas anders..
-
Mein Weib vergisst des öfteren, abends die kellertür abzuschließen. nein, ich sage nicht, wo ich wohne. gg
die kellertür ist mit einem zigbee aqara sensor ausgestattet, der mir in der vis auch brav anzeigt, ob die tür auf oder zu ist.
wie kann ich im blockly eine abfrage erstellen, die folgendes können soll:
abends ab 2100 die tür abfragen.
wenn noch offen, im periodischen abstand von 5 minuten alexa speak "Kellertür offen" ansagen lassen, bis mein Weib aus dem Sofa hoch ist und die Kellertür geschlossen hat.
danach das script stoppen.
diese abfrage sollte aber jeden tag bis ca. nachts um 0200 gemacht werden (also auch, wenn die tür schonmal geschlossen war), falls sie doch nochmal in den keller geht und wäsche hoch holt - und wieder die kellertür vergisst..
ich stehe hier voll auf dem schlauch, wie ich das mit blockly hinbekomme.. muss ich da mit der timeout funktion arbeiten, oder welchen baustein benutzt man am besten? -
Als Ansatz ein Blockly Skript von @dslraser
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="#;wCh21CJ;hK(*=w2c4l">Zaehler</variable> <variable id="HGh$As`$N^0W}Ki[4F6^">Echo_Esszimmer</variable> <variable type="interval" id="Fenster_Timer">Fenster_Timer</variable> <variable id="gvn.@ec[1RiFVpP7PX{a">Nachricht</variable> </variables> <block type="variables_set" id="l:]p[.m/yTGjjtWkI2gq" x="313" y="-162"> <field name="VAR" id="#;wCh21CJ;hK(*=w2c4l">Zaehler</field> <value name="VALUE"> <block type="math_number" id="M}/k`clF3elu1D[RVD[`"> <field name="NUM">0</field> </block> </value> <next> <block type="variables_set" id="|0(W7wFH4ptVC;qeap1P"> <field name="VAR" id="HGh$As`$N^0W}Ki[4F6^">Echo_Esszimmer</field> <value name="VALUE"> <block type="field_oid" id="-.18yO;*svLGI{,BF%Jr"> <field name="oid">alexa2.0.Echo-Devices.G0913L0592570PHD.Commands.speak</field> </block> </value> <next> <block type="control" id="@.X-r7ycZ3n=bk5]|VTf"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G0913L0592570PHD.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="w6{*zt!/{t?p(`:MPc5U"> <field name="NUM">60</field> </block> </value> <next> <block type="on_ext" id="F!vi?BKRsLZog%?FBH:g"> <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=".%Kic*EGFUiKPCQ*RKf^"> <field name="oid">hm-rpc.0.OEQ0926852.1.STATE</field> </shadow> </value> <statement name="STATEMENT"> <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">hm-rpc.0.OEQ0926852.1.STATE</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_clearinterval" id="tO=/.@3F=NZC4)X0%t2V"> <field name="NAME">Zaehler</field> <next> <block type="timeouts_setinterval" id="u#rS73GY/m7T~.#Bh9QU"> <field name="NAME">Fenster_Timer</field> <field name="INTERVAL">15</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id="f55gkbe[jX_=959Esj)["> <field name="VAR" id="#;wCh21CJ;hK(*=w2c4l">Zaehler</field> <value name="VALUE"> <block type="math_arithmetic" id="`Lr(7fL~SD:u(8rV=ac9"> <field name="OP">ADD</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="PH5Vh.Qc`t|,m%{m^~F5"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="3EYN7qJuKcWTcF_bM[T]"> <field name="VAR" id="#;wCh21CJ;hK(*=w2c4l">Zaehler</field> </block> </value> <value name="B"> <shadow type="math_number" id="c4hKg(Qm0W4-h8^$@.!*"> <field name="NUM">15</field> </shadow> </value> </block> </value> <next> <block type="controls_if" id="su+`OL7B?lh4Ln6_8TQ+"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="sh3+N!CF]eT4wo`$|sre"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="M}{|)ER0ipTg/+8l~7qp"> <field name="ATTR">val</field> <field name="OID">alexa2.0.Echo-Devices.G090U50784350DKU.Player.volume</field> </block> </value> <value name="B"> <block type="math_number" id="q{6NWIBv5BL*${DRE:^%"> <field name="NUM">95</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id=";7LC91tyx]rjyFQM?YqX"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U50784350DKU.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="_houhb,QcNv{K*?yToWl"> <field name="OP">ADD</field> <value name="A"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number" id="iK-Rj9=G(|Q,+{~~jPC}"> <field name="NUM">1</field> </shadow> <block type="get_value" id="`;8A%(+e?8_zQL/KHb/^"> <field name="ATTR">val</field> <field name="OID">alexa2.0.Echo-Devices.G090U50784350DKU.Player.volume</field> </block> </value> <value name="B"> <shadow type="math_number" id=",0n9PR$_+:hbRUxXWT?p"> <field name="NUM">5</field> </shadow> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="control" id="=9(xFgJK8+;wB.[my0of"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U50784350DKU.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="V%jI39P{+5iVFr$^g5L*"> <field name="NUM">100</field> </block> </value> </block> </statement> <next> <block type="variables_set" id="*_1Trl}.^)5sC%/.lNvv"> <field name="VAR" id="gvn.@ec[1RiFVpP7PX{a">Nachricht</field> <value name="VALUE"> <block type="text_join" id="~aWj=ZJK`;i$u=C#PMk+"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="GGxz]|4m5/6h_4j6^K+v"> <field name="TEXT">Das Badezimmerfenster ist seit </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="!zE$wP|^u8@#Ahq-pkrb"> <field name="VAR" id="#;wCh21CJ;hK(*=w2c4l">Zaehler</field> </block> </value> <value name="ADD2"> <block type="text" id="Uqzsr=FFV/o+AKIwnzvF"> <field name="TEXT"> Minuten offen. Bitte schließe das Badezimmerfenster.</field> </block> </value> </block> </value> <next> <block type="control_ex" id="Lya;Sx:n`ob6$I0guX]F"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="field_oid" id="DWgN4ggi@.z8uJj*KlGY"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="fyWnu]POf[cRwgCVVBBA"> <field name="VAR" id="HGh$As`$N^0W}Ki[4F6^">Echo_Esszimmer</field> </block> </value> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="logic_boolean" id="DO8$+jH~2=|[eg`X.aTT"> <field name="BOOL">TRUE</field> </shadow> <block type="variables_get" id="k)c6Fdm#4E{L+nAY7YyK"> <field name="VAR" id="gvn.@ec[1RiFVpP7PX{a">Nachricht</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="d}#HDwNCbef$9Qi!P4T1"> <field name="NUM">0</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_clearinterval" id="e^!S+IEUkz74-KWuLP)]"> <field name="NAME">Fenster_Timer</field> <next> <block type="variables_set" id="ldI2T{QSVIxlFtGIg:$@"> <field name="VAR" id="#;wCh21CJ;hK(*=w2c4l">Zaehler</field> <value name="VALUE"> <block type="math_number" id=",D0jzu`pl6D)q(n41qZN"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="H663]^O0Cj=3z2~;NB~l"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U50784350DKU.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="-K226Z`qy=]qR2#@Of6F"> <field name="NUM">80</field> </block> </value> <next> <block type="control_ex" id="^G%?e)6F}rujcbmkrQ2U"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="field_oid" id="DWgN4ggi@.z8uJj*KlGY"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="*X6|~z6Y/IQ~:lBRL0-!"> <field name="VAR" id="HGh$As`$N^0W}Ki[4F6^">Echo_Esszimmer</field> </block> </value> <value name="VALUE"> <shadow xmlns="http://www.w3.org/1999/xhtml" type="logic_boolean" id="DO8$+jH~2=|[eg`X.aTT"> <field name="BOOL">TRUE</field> </shadow> <block type="text" id="Jm4bT`j^~3?/2_^iq_-6"> <field name="TEXT">Danke das Du das Badezimmerfenster geschlossen hast.</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id=")X|08^)cf#:t1*9SP7._"> <field name="NUM">0</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </xml>
-
@sigi234 verwirrtguck.. habs hinbekommen.. kichert
-
wolltest du nicht die zeit von 20.00 - 02.00 uhr erfassen? und warum mit einer pause von 5sek arbeiten?
meine idee wäre so:
die sache mit der zeit wurde in dem video von stefan (.verdrahtet.info) gut erklärt:
ioBroker Blockly #4: Wie erkenne ich die Nacht? -
@burg_io das wird so wie in deinem script nicht funktionieren. der trigger soll ja nicht die statusänderung der tür sein (sie könnte ja auch schon seit 1700 offen stehen) sondern die zeit, daß eben ab einer bestimmten uhrzeit mit den alexa hinweisen begonnen wird. und daß alexa dann eben so lange nervt, bis die tür geschlossen wurde.
die 5sekunden pause ist ein test, weil ich 2 verschiedene dots anspreche und die sich nicht ins gehege kommen sollen. -
nicht ganz. er fragt den ganzen tag den trigger ab, aber nur wenn die tür offen ist und die zeit in deinem benannten zeitraum liegt, wird die meldung ausgelöst und aller 5min widerholt.
-
@joachim-knape wiederhole solange feuert im Millisekundentakt und legt dir deine Installation lahm
-
@homoran also eher so?
-
@joachim-knape sagte in Zeitsteuerung mal etwas anders..:
also eher so?
Ja, eher!
Aber da muss noch ein stop Intervall rein wenn die Tür zu ist.Such mal im Forum da gibt es gefühlt hunderte solcher "Erinnerungs"-Blocklys
-
@homoran finde dafür keinen baustein.. grummel
-
@joachim-knape Trigger im Trigger ist nicht gut... nimm einfach ein blaues falls-Objekt!
Vielleicht kann man in dem Fall ja auch mit einem "wird aktualisiert" arbeiten -
@joachim-knape sagte in Zeitsteuerung mal etwas anders..:
@homoran finde dafür keinen baustein.. grummel
in etwa so (mit der ganz heißen Nadel gestrickt!):
ABER:
was ist wenn die Tür um 02:00 immer noch nicht zu ist?
oder erst um 03:00 geöffnet wirdDa sind bestimmt noch Fehler drin
-
@joachim-knape Ich würde das hier mal versuchen, da ist der aktuelle Zustand der Tür egal, kommt aber immer drauf an, wann der Sensor sich aktualisiert:
-
@homoran sagte in Zeitsteuerung mal etwas anders..:
ABER:
was ist wenn die Tür um 02:00 immer noch nicht zu ist?
oder erst um 03:00 geöffnet wirdDa sind bestimmt noch Fehler drin
Wenn die Tür noch nicht zu ist, passiert nix mehr, genauso nach 2:00Uhr!
-
@guergen sagte in Zeitsteuerung mal etwas anders..:
Wenn die Tür noch nicht zu ist, passiert nix mehr, genauso nach 2:00Uhr!
eben!
Keinerlei Warnung und wer weiß wer kann die Schlafenden aus dem Bett klauen -
@homoran Aber mal ganz ehrlich, wenn ab 22 Uhr im 10 Minutentakt die Meldung kommt und ignoriert wird, bringt das smarte Haus auch nix!
Es sei denn, man kommt er später heim, dann muss man sich noch was anderes zusätzliches ausdenken. Zum Beispiel, wenn im Flur nach 2 Uhr das Licht angemacht wird, wird der Türsensor abermals abgefragt und alle Lampen im Haus fangen an zu blinken falls die Tür immer noch oder schon wieder auf ist -
@guergen sagte in Zeitsteuerung mal etwas anders..:
Aber mal ganz ehrlich, wenn ab 22 Uhr im 10 Minutentakt die Meldung kommt und ignoriert wird, bringt das smarte Haus auch nix!
Mit genug Sitzfleisch der holden Gattin
Das war aber nicht was ich meinte, sondern
@guergen sagte in Zeitsteuerung mal etwas anders..:
man kommt er später heim, dann muss man sich noch was anderes zusätzliches ausdenken
-
@homoran Man könnte ja auch selbst aufstehen, wenn man so eine Gattin hat
Machbar ist vieles, ich sehe das immer, wenn am scripten bin, was einem da immer noch so einfällt... -
@guergen ich will mein weib ja nur nerven, bis sie die kellertür zu macht. also hopp hoch vom sofa. und wenn ich abends ausser haus bin und erst später wieder nach hause komme, hab ich ja die kellertür vorher zu gemacht und abgeschlossen. meistens jedenfalls.
warum smart home? weil ich es kann. man kanns auch übertreiben. ich sehe das ganze eben nur als hinweis am abend, daß man die tür schliessen sollte. in einer vis wird es ja auch angezeigt, soll ja nur ein zusätzlicher akustischer hinweis sein, weil man ja nicht ständig handy oder tablet oder screen vor der nase hat.
-
warum nimmst du einen Schedule und nicht den Türkontakt als trigger?
Was steht denn da drin?
im Schlimmsten Fall nutzt der nämlich gar ncihts