NEWS
Scheduled Loop with setIntervall (gelöst)
-
Hi zusammen,
ich stecke mal wieder bei einem Script fest und würde mich rieseig über Unterstützung freuen.
Ich versuche mithilfe eines Fenster Kontaktes an einer Pillendose eine Erinnerung via Display und Alexa zu bestimmten Zeitpunkten zu etablieren.
folgendes Script habe ich zusammen gehämmert:schedule({hour: 8}, function () { setState('Data.WZ.IP.MainView', '2'); //Sprechen('<speak><voice name="Vicki">Guten Morgen Ingrid, denkst du bitte an deine Pillen?</voice></speak>') var i = 0; var timer = setInterval(function() { i++; if(getState("deconz.0.Sensors.20.open").val) { clearInterval(timer); log('beendet'); setState('Data.WZ.IP.MainView', '0'); //Sprechen('<speak><voice name="Vicki">Dankeschön, du bist die Beste. Ich wünsche Dir einen schönen Tag</voice></speak>') } else { log(getState("deconz.0.Sensors.20.open").val + " " + i); if (i == 60){ //Sprechen('<speak><voice name="Vicki">Guten Morgen, denkst du bitte an deine Pillen?</voice></speak>') i = 0 } } }, 1000); }); schedule({hour: 18}, function () { setState('Data.WZ.IP.MainView', '2'); //Sprechen('<speak><voice name="Vicki">Guten Abend, denkst du bitte an deine Pillen?</voice></speak>') var i = 0; var timer = setInterval(function() { i++; if(getState("deconz.0.Sensors.20.open").val) { clearInterval(timer); log('beendet'); setState('Data.WZ.IP.MainView', '0'); //Sprechen('<speak><voice name="Vicki">Dankeschön, du bist die Beste. Ich wünsche Dir später eine wunderschöne Nacht.</voice></speak>') } else { log(getState("deconz.0.Sensors.20.open").val + " " + i); if (i == 60){ //Sprechen('<speak><voice name="Vicki">Guten Abend, denkst du bitte an deine Pillen?</voice></speak>') i = 0 } } }, 1000); }); function Sprechen(Text) { setState('alexa2.0.Echo-Devices.Commands.speak', Text ); }Der loop scheint aber trotz clearInterval immerwieder zu laufen.
Irgendwie habe ich das Gefühl das ich das falsch an gehe. -
Hi zusammen,
ich stecke mal wieder bei einem Script fest und würde mich rieseig über Unterstützung freuen.
Ich versuche mithilfe eines Fenster Kontaktes an einer Pillendose eine Erinnerung via Display und Alexa zu bestimmten Zeitpunkten zu etablieren.
folgendes Script habe ich zusammen gehämmert:schedule({hour: 8}, function () { setState('Data.WZ.IP.MainView', '2'); //Sprechen('<speak><voice name="Vicki">Guten Morgen Ingrid, denkst du bitte an deine Pillen?</voice></speak>') var i = 0; var timer = setInterval(function() { i++; if(getState("deconz.0.Sensors.20.open").val) { clearInterval(timer); log('beendet'); setState('Data.WZ.IP.MainView', '0'); //Sprechen('<speak><voice name="Vicki">Dankeschön, du bist die Beste. Ich wünsche Dir einen schönen Tag</voice></speak>') } else { log(getState("deconz.0.Sensors.20.open").val + " " + i); if (i == 60){ //Sprechen('<speak><voice name="Vicki">Guten Morgen, denkst du bitte an deine Pillen?</voice></speak>') i = 0 } } }, 1000); }); schedule({hour: 18}, function () { setState('Data.WZ.IP.MainView', '2'); //Sprechen('<speak><voice name="Vicki">Guten Abend, denkst du bitte an deine Pillen?</voice></speak>') var i = 0; var timer = setInterval(function() { i++; if(getState("deconz.0.Sensors.20.open").val) { clearInterval(timer); log('beendet'); setState('Data.WZ.IP.MainView', '0'); //Sprechen('<speak><voice name="Vicki">Dankeschön, du bist die Beste. Ich wünsche Dir später eine wunderschöne Nacht.</voice></speak>') } else { log(getState("deconz.0.Sensors.20.open").val + " " + i); if (i == 60){ //Sprechen('<speak><voice name="Vicki">Guten Abend, denkst du bitte an deine Pillen?</voice></speak>') i = 0 } } }, 1000); }); function Sprechen(Text) { setState('alexa2.0.Echo-Devices.Commands.speak', Text ); }Der loop scheint aber trotz clearInterval immerwieder zu laufen.
Irgendwie habe ich das Gefühl das ich das falsch an gehe.@ultr4low Das liegt an der Syntax deines schedules. Ohne eine Angabe der Minuten (z.B. "0") führt er den schedule dann um 8 bzw. 18 Uhr jede Minute aus ;)
Du hast
* 8 * * *(jede Minute um 8 Uhr), willst aber wahrscheinlich0 8 * * *(genau einmalig um 8:00 Uhr) -
@ultr4low Das liegt an der Syntax deines schedules. Ohne eine Angabe der Minuten (z.B. "0") führt er den schedule dann um 8 bzw. 18 Uhr jede Minute aus ;)
Du hast
* 8 * * *(jede Minute um 8 Uhr), willst aber wahrscheinlich0 8 * * *(genau einmalig um 8:00 Uhr)
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden