Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

schedule mit Date Objekt -> falscher Zeitpunkt?

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 2 Kommentatoren 276 Aufrufe 2 Watching
  • Ä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 Offline
      T Offline
      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 Offline
        T Offline
        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
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          407

          Online

          32.4k

          Benutzer

          81.5k

          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