NEWS
schedule mit Date Objekt -> falscher Zeitpunkt?
-
Hi,
entweder mache ich etwas falsch oder da ist was buggy. Folgendes Skript (vereinfacht):
function mittagsSchlafMax2H() { let state = getState("alias.0.scenes.Mittagsschlaf.state"); if (state.val) { let time = new Date(state.ts); time.setHours(time.getHours() + 2, time.getMinutes() + 15); ... log("Scheduling für " + time); schedule(time, () => { log("Mittagsschlaf lang genug."); setState("alias.0.shadow.Marwin.shadow", true); }); } } mittagsSchlafMax2H();-> schedule(time, () => {... }); soll, wenn ich die Doku richtig verstehe, genau zu dem Zeitpunkt aufgerufen werden und das nur einmal. Hat aber nicht funktioniert, folgendes Log:
2020-03-19 14:08:03.922 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Scheduling für Thu Mar 19 2020 14:28:31 GMT+0100 (Central European Standard Time) 2020-03-19 14:09:00.001 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:10:00.001 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:11:00.000 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:12:00.000 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:13:00.000 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:14:00.001 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:15:00.000 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug.-> hat also bei der nächsten vollen Minute getriggert und dann jede Minute? Urgs... :-(
Ist das ein Bug? Oder stimmt die Doku nicht? (Zitat doku: "Pattern can be a Javascript Date object (some specific time point) - in this case only it will be triggered only one time.").
Oder mache ich was falsch?Viele Grüße,
Garfonso -
Ist auch so in der Typenprüfung:
function schedule(date: Date, callback: () => void): any;Mal einen anderen Variablenamen probiert?
-
Hi,
entweder mache ich etwas falsch oder da ist was buggy. Folgendes Skript (vereinfacht):
function mittagsSchlafMax2H() { let state = getState("alias.0.scenes.Mittagsschlaf.state"); if (state.val) { let time = new Date(state.ts); time.setHours(time.getHours() + 2, time.getMinutes() + 15); ... log("Scheduling für " + time); schedule(time, () => { log("Mittagsschlaf lang genug."); setState("alias.0.shadow.Marwin.shadow", true); }); } } mittagsSchlafMax2H();-> schedule(time, () => {... }); soll, wenn ich die Doku richtig verstehe, genau zu dem Zeitpunkt aufgerufen werden und das nur einmal. Hat aber nicht funktioniert, folgendes Log:
2020-03-19 14:08:03.922 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Scheduling für Thu Mar 19 2020 14:28:31 GMT+0100 (Central European Standard Time) 2020-03-19 14:09:00.001 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:10:00.001 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:11:00.000 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:12:00.000 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:13:00.000 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:14:00.001 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug. 2020-03-19 14:15:00.000 - info: javascript.0 (4952) script.js.Schlafen.kinderSchlafen: Mittagsschlaf lang genug.-> hat also bei der nächsten vollen Minute getriggert und dann jede Minute? Urgs... :-(
Ist das ein Bug? Oder stimmt die Doku nicht? (Zitat doku: "Pattern can be a Javascript Date object (some specific time point) - in this case only it will be triggered only one time.").
Oder mache ich was falsch?Viele Grüße,
Garfonso@Garfonso
Ist wohl ein Bug. Das hier geht:schedule(time.getTime(), () => {
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