NEWS
Denkfehler Auslöser bei Sonnenuntergang und Anwesenheit
-
Hallo zusammen,
ich habe mir ein Blockly erstellt, dass bei Sonnenuntergang eine Ansage auf unsere Echos bringen soll, dass die Hasen gefüttert werden sollen. Das funktioniert rein technisch ohne Probleme. Dann habe ich mir überlegt, noch ein paar Bedingungen einzubauen.
Bedingung Nr. 1: Es ist jemand zu Hause.
Bedingung Nr. 2: Da die Sonne im Sommer recht spät untergeht, soll die Erinnerung zum füttern schon 19:00 Uhr abgespielt werden.
Bedingung Nr. 3: Wenn bei Sonnenuntergang vor 19:00 Uhr noch keiner zu Hause ist, dann soll die Erinnerung erst um diese Zeit ausgelöst werden.Gemacht habe ich das so:
Aber es löst nicht aus. Den Zähler setzt es morgens 6:00 Uhr zuverlässig auf "0". Das habe ich mir die letzten Tage regelmäßig per Telegramm schicken lassen.
Ich habe leider keine Idee, wo meine Denkfehler ist und bin dankbar für eure Anregungen.
Hier nochmal als Skript:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="9kvsc^m!#L.?A;zgje}1">ECHO_Multiroom_Alle Echos</variable> <variable id="_zi,hSL%[|3MtvY.qMez">Zaehler</variable> <variable id="CX4q@zmX*~07eUH2sHjv">Nachricht</variable> </variables> <block type="variables_set" id="o_s|uXx/P]v[FLSu!~K;" x="263" y="-62"> <field name="VAR" id="9kvsc^m!#L.?A;zgje}1">ECHO_Multiroom_Alle Echos</field> <value name="VALUE"> <block type="field_oid" id="d68F-z]/N)rccRd[(S1S"> <field name="oid">alexa2.0.Echo-Devices.b117eb02b4d84f5c8d6294080db4bf23.Commands.speak</field> </block> </value> <next> <block type="schedule" id="Y;ye;~mIg.ds8aunzueG"> <field name="SCHEDULE">0 6 * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="TfZ(Yz$m890u;4VsByK="> <field name="VAR" id="_zi,hSL%[|3MtvY.qMez">Zaehler</field> <value name="VALUE"> <block type="math_number" id="SL_dwkta;fw4:W@!]+wf"> <field name="NUM">0</field> </block> </value> </block> </statement> <next> <block type="comment" id="g]@=.BnQFm[i.Y5p.P_4"> <field name="COMMENT">Sonnenuntergang vor 19:00 Uhr</field> <next> <block type="astro" id="]6oj2AuqN`(aQhyf8`ti"> <field name="TYPE">sunset</field> <field name="OFFSET">20</field> <statement name="STATEMENT"> <block type="controls_if" id="URXBrJB,%NNyZmnjvuMG"> <value name="IF0"> <block type="logic_operation" id="V`h$09PwQfgVCJ$bn@c#"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="*9y@I%Jz85*h{5mi@!$b"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="?m7eq%95K2~!`YKhmeZL"> <field name="VAR" id="_zi,hSL%[|3MtvY.qMez">Zaehler</field> </block> </value> <value name="B"> <block type="math_number" id="Z*DXaoWqbH3moYd_8P1r"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="LHA;Uv1hwI+!(EYh$)!w"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Is.v$N0oplbS4?a=r3V="> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Eigene_Datenpunkte.Anwesenheit.alle_unterwegs</field> </block> </value> <value name="B"> <block type="logic_boolean" id="wLfGTvMxsGLlKCGT=eIR"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="f47btdZDHH}?3|=XG8Cc"> <field name="VAR" id="CX4q@zmX*~07eUH2sHjv">Nachricht</field> <value name="VALUE"> <block type="text_join" id="eR^~}gABz=xjM,#nubxo"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="Pa#Z)|Bo0}@c%_P=w{}]"> <field name="TEXT">Hasen-Alarm! Achtung, Hasenfreunde! Die Sonne ist untergegangen und unsere kleinen Pelznasen haben Hunger! </field> </block> </value> <value name="ADD1"> <block type="text" id="X~OFA$=Djlkz_g^*!pP1"> <field name="TEXT">Zeit für das Hasen-Buffet! Schnappt euch Salat, Wasser und Heu - es ist Hasen-Dinnerzeit!</field> </block> </value> </block> </value> <next> <block type="control_ex" id="!~Ql!A/odw1eIoc_{SKX"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="pGbO.dW^a-kisznw.e)f"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="y%].bIcaOhZyf?8vVF[="> <field name="VAR" id="9kvsc^m!#L.?A;zgje}1">ECHO_Multiroom_Alle Echos</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="!hQ(+(2H+!r^8J;#8Ddc"> <field name="BOOL">TRUE</field> </shadow> <block type="variables_get" id="r,0Av0xnnzCX^8]jE+Oc"> <field name="VAR" id="CX4q@zmX*~07eUH2sHjv">Nachricht</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="DQBtFV(!b.n[]Lf59HR;"> <field name="NUM">0</field> </shadow> </value> <value name="EXPIRE"> <shadow type="math_number" id="riROialmQ(|HkrmSG^g("> <field name="NUM">0</field> </shadow> </value> <next> <block type="telegram" id="[MOz%=2vEsPjnS*.TXa+"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="lz_Z|k|y2FToJtG8y$b`"> <field name="TEXT">text</field> </shadow> <block type="variables_get" id="I*oOm(*;o~7rqs!5)!8s"> <field name="VAR" id="CX4q@zmX*~07eUH2sHjv">Nachricht</field> </block> </value> <next> <block type="variables_set" id="u2CtlaW6)D8.#/0P8pKd"> <field name="VAR" id="_zi,hSL%[|3MtvY.qMez">Zaehler</field> <value name="VALUE"> <block type="math_number" id="E:xafUOE{5mbR4SO5lqd"> <field name="NUM">1</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="comment" id="GMN*6rjo!h]t:}i?@$^f"> <field name="COMMENT">Sonnenuntergang nach 19:00 Uhr</field> <next> <block type="schedule" id="JXJs@YJz/QOI:U1Q}tk_"> <field name="SCHEDULE">0 19 * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="p]siS7Pbbk(mQ.1Dd$c1"> <value name="IF0"> <block type="logic_operation" id="MHPzd/r-:?WMqNAY4G%U"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="mv9b@9(xc0`B||3g2vgj"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="~A{6dhg=e#f_zgW7*j(C"> <field name="VAR" id="_zi,hSL%[|3MtvY.qMez">Zaehler</field> </block> </value> <value name="B"> <block type="math_number" id=")l$;ND9};u`GZ!E1wETl"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="w!j!6ElV}jTCHYSEi+Ra"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="6/$DU;DdY3Y(;Tzh)4@0"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Eigene_Datenpunkte.Anwesenheit.alle_unterwegs</field> </block> </value> <value name="B"> <block type="logic_boolean" id="MgLBk/7Ij5LWgu7|PT[."> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="$X7+(.{El4KEslb{a@,t"> <field name="VAR" id="CX4q@zmX*~07eUH2sHjv">Nachricht</field> <value name="VALUE"> <block type="text_join" id="(Qe}75NdH@^Arj%s]F=-"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="y.r?|e:)N_lBL^L.jMHS"> <field name="TEXT">Hasen-Alarm! Achtung, Hasenfreunde! Unsere kleinen Pelznasen haben Hunger! </field> </block> </value> <value name="ADD1"> <block type="text" id="+)QfnrI?JfzRKQ#/+udd"> <field name="TEXT">Zeit für das Hasen-Buffet! Schnappt euch Salat, Wasser und Heu - es ist Hasen-Dinnerzeit!</field> </block> </value> </block> </value> <next> <block type="control_ex" id="`i!n#-p2]I~{zNr_1~|r"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="pGbO.dW^a-kisznw.e)f"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="{d;KB0|7y7G()y5vrC)N"> <field name="VAR" id="9kvsc^m!#L.?A;zgje}1">ECHO_Multiroom_Alle Echos</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="!hQ(+(2H+!r^8J;#8Ddc"> <field name="BOOL">TRUE</field> </shadow> <block type="variables_get" id="?/(p[PU*hj}uRR0{[r$t"> <field name="VAR" id="CX4q@zmX*~07eUH2sHjv">Nachricht</field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="scT+vf1i2P;}R|RTH%*W"> <field name="NUM">0</field> </shadow> </value> <value name="EXPIRE"> <shadow type="math_number" id="jo]kQIkU8VaB2OCAt3nX"> <field name="NUM">0</field> </shadow> </value> <next> <block type="telegram" id="D-TiT]2%NHUu$hi,6Rm-"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="lz_Z|k|y2FToJtG8y$b`"> <field name="TEXT">text</field> </shadow> <block type="variables_get" id="8L]((dvbuHP)!/`_Td3F"> <field name="VAR" id="CX4q@zmX*~07eUH2sHjv">Nachricht</field> </block> </value> <next> <block type="variables_set" id="6/S94sD:NX?FJNrP!ys4"> <field name="VAR" id="_zi,hSL%[|3MtvY.qMez">Zaehler</field> <value name="VALUE"> <block type="math_number" id="dV|iKI:)Hj^hz+z_FVAd"> <field name="NUM">1</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> /xml>
Danke euch!
VG Martin -
@martin_olw
der erste Teil triggert um SU+20Minuten. Also ggf um 19:20.
der zweite Teil um Punkt 19:00falls das so gewollt ist, ok!
Ansonsten mal debug Bausteine einbauen um zu sehen ob getriggert wird und wie der Zähler zu dem Zeitpunkt steht.
-
@martin_olw ich weiß nicht wo der Fehler ist. Ich habe aber auch dieses Problem mit Variablen im Script. Ich habe dann immer Datenpunkte angelegt anstatt Variablen und dann hat es funktioniert.
-
@martin_olw sagte: Den Zähler setzt es morgens 6:00 Uhr zuverlässig auf "0".
Wenn das Skript zwischen 6:00 Uhr und SU / 19:00 Uhr neu gestartet wird, funktioniert die Prüfung "
Zaehler
= 0" nicht. Nimm stattdessen "nichtZaehler
", denn das funktioniert mit 0 und undefined.
Noch sicherer ist ein Datenpunkt anstelle der VariablenZaehler
- wie bereits @lobomau schrieb.EDIT: Alternativ zum Datenpunkt kann die Variable auch bei Skriptstart richtig initialisiert werden.
-
Danke euch für eure Rückmeldungen. Ich habe es jetzt mal auf Datenpunkte umgebaut und schaue, ob es heute funktioniert.
@Homoran du hast recht, wenn die Sonne 18:55 Uhr untergeht, dann löst die Ansage zwei Mal aus. Wie bekomme ich das mit einer Bedingung im zweiten Teil wie "und wenn die Sonne nicht in den letzten 20 Minuten untergegangen ist" umgesetzt? Da fehlt mir jetzt die Idee.
-
@martin_olw sagte: wenn die Sonne 18:55 Uhr untergeht, dann löst die Ansage zwei Mal aus.
Nein, dann löst die Ansage nur um 19:00 Uhr aus. Vor 19:00 Uhr löst sie nur aus, wenn SU vor 18:40 Uhr ist.
-
Dank euer Hinweise läuft das Skript jetzt problemlos. Ich habe auf Datenpunkte umgestellt und es passt.
Vielen Dank!