Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. schedule mit Date Objekt -> falscher Zeitpunkt?

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    479

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    394

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    979

schedule mit Date Objekt -> falscher Zeitpunkt?

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 2 Kommentatoren 345 Aufrufe 2 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • GarfonsoG Offline
    GarfonsoG Offline
    Garfonso
    Developer
    schrieb am zuletzt editiert von
    #1

    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

    Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

    Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

    T 1 Antwort Letzte Antwort
    0
    • T Nicht stören
      T Nicht stören
      ticaki
      schrieb am zuletzt editiert von ticaki
      #2

      @Garfonso

      Ist auch so in der Typenprüfung:

      function schedule(date: Date, callback: () => void): any;
      

      Mal einen anderen Variablenamen probiert?

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      1 Antwort Letzte Antwort
      0
      • GarfonsoG Garfonso

        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

        T Nicht stören
        T Nicht stören
        ticaki
        schrieb am zuletzt editiert von ticaki
        #3

        @Garfonso
        Ist wohl ein Bug. Das hier geht:

                schedule(time.getTime(), () => {
        

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        GarfonsoG 1 Antwort Letzte Antwort
        0
        • T ticaki

          @Garfonso
          Ist wohl ein Bug. Das hier geht:

                  schedule(time.getTime(), () => {
          
          GarfonsoG Offline
          GarfonsoG Offline
          Garfonso
          Developer
          schrieb am zuletzt editiert von Garfonso
          #4

          @ticaki
          Danke fürs testen. Auf die Idee bin ich nicht gekommen. :-)

          Nachtrag: Es gibt sogar schon ein Issue dazu (ups). https://github.com/ioBroker/ioBroker.javascript/issues/325

          Ultimativer Lovelace Leitfaden: https://forum.iobroker.net/topic/35937/der-ultimative-iobroker-lovelace-leitfaden-dokumentation

          Lovelace UI Beispiele: https://forum.iobroker.net/topic/35950/zeigt-her-eure-lovelace-visualisierung

          1 Antwort Letzte Antwort
          0

          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
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          422

          Online

          32.8k

          Benutzer

          82.8k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe