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. komme mit schedule nicht klar...

NEWS

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

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

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

komme mit schedule nicht klar...

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
5 Beiträge 3 Kommentatoren 651 Aufrufe 1 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.
  • ELKE Offline
    ELKE Offline
    ELK
    schrieb am zuletzt editiert von ELK
    #1

    Moin!
    Eigentlich sollte es doch ganz einfach sein...
    Ich möchte per schedule eine Aktion einmalig auslösen. Mit dem CRON-Rechner komme ich zu dem oberen Ergebnis, das bei mir aber nicht funktioniert.
    Der untere Aufruf funktioniert, aber würde sich ja jeden Tag (bzw. je nach Angaben jährlich) wiederholen. Und das Jahr kann ich ja wohl nicht angeben.
    Was passiert eigentlich mit schedule-Einträgen, die mit "once" eingerichtet wurden und ausgelöst wurden? Werden die automatisch gelöscht, weil sie ja nicht mehr ausgelöst werden können?

    schedule('{"time":{"exactTime":true,"start":"21:27"},"period":{"once":"02.05.2020"}}', function () {log('Schedule 1 funktioniert');});
    schedule('5 27 21 * * *', function () {log('Schedule 2 funktioniert');});
    // 5 Sekunden später, um Probleme durch Gleichzeitigkeit auszuschließen
    

    ergibt:

    21:25:57.287 info javascript.0 (11000) Start javascript script.js.Versuche.AnwSimTest
    21:25:57.289 info javascript.0 (11000) script.js.Versuche.AnwSimTest: registered 0 subscriptions and 1 schedule
    21:27:05.006 info javascript.0 (11000) script.js.Versuche.AnwSimTest: Schedule 2 funktioniert

    Z 1 Antwort Letzte Antwort
    0
    • ELKE Offline
      ELKE Offline
      ELK
      schrieb am zuletzt editiert von
      #2

      offenbar gibt es doch einen year-Parameter:

      schedule({hour:21,minute:56,date:2,month:4,year:2020} , function () {log('Schedule 3 funktioniert');}); // Monat -1!
      

      funktioniert bei mir. Bleibt nur noch die Frage von oben: wird von der internen schedule-Verwaltung erkannt, dass der Termin nur einmal dran kommt und er deshalb gelöscht werden kann?
      Wenn nicht, würde ich mir ja die schedule-Tabelle komplett zumüllen, wenn ich jeden Tag einige zig Termine einstelle...

      1 Antwort Letzte Antwort
      0
      • JohGreJ Offline
        JohGreJ Offline
        JohGre
        schrieb am zuletzt editiert von
        #3

        Kannst du uns kurz mal deine Beweggründe mitteilen. Mir fällt da jetzt nichts ein was ich mit einmal schedule ausführen sollte.

        nuc i5: RaspberryMatic, ioBroker, pi-hole, SQL-Server, OMV-NAS, Influx-DB & Grafana, OpenHab, tasmoadmin

        ELKE 1 Antwort Letzte Antwort
        1
        • JohGreJ JohGre

          Kannst du uns kurz mal deine Beweggründe mitteilen. Mir fällt da jetzt nichts ein was ich mit einmal schedule ausführen sollte.

          ELKE Offline
          ELKE Offline
          ELK
          schrieb am zuletzt editiert von
          #4

          @JohGre klar doch.
          Das Stichwort ist Anwesenheitssimulation. Irgendwann tagsüber wird für den folgenden Abend eine Abfolge von Zeitpunkten erstellt, zu denen bestimmte Beleuchtung geschaltet wird. Am nächsten Tag muss das natürlich anders aussehen.
          Ok, wenn es in einem Jahr der gleiche Ablauf ist, wird das niemand merken...
          Was ich eigentlich wollte, klappt jetzt ja schon. Bleibt nur noch die Frage, ob ich damit das schedule-System intern zumülle und überfordere.

          1 Antwort Letzte Antwort
          0
          • ELKE ELK

            Moin!
            Eigentlich sollte es doch ganz einfach sein...
            Ich möchte per schedule eine Aktion einmalig auslösen. Mit dem CRON-Rechner komme ich zu dem oberen Ergebnis, das bei mir aber nicht funktioniert.
            Der untere Aufruf funktioniert, aber würde sich ja jeden Tag (bzw. je nach Angaben jährlich) wiederholen. Und das Jahr kann ich ja wohl nicht angeben.
            Was passiert eigentlich mit schedule-Einträgen, die mit "once" eingerichtet wurden und ausgelöst wurden? Werden die automatisch gelöscht, weil sie ja nicht mehr ausgelöst werden können?

            schedule('{"time":{"exactTime":true,"start":"21:27"},"period":{"once":"02.05.2020"}}', function () {log('Schedule 1 funktioniert');});
            schedule('5 27 21 * * *', function () {log('Schedule 2 funktioniert');});
            // 5 Sekunden später, um Probleme durch Gleichzeitigkeit auszuschließen
            

            ergibt:

            21:25:57.287 info javascript.0 (11000) Start javascript script.js.Versuche.AnwSimTest
            21:25:57.289 info javascript.0 (11000) script.js.Versuche.AnwSimTest: registered 0 subscriptions and 1 schedule
            21:27:05.006 info javascript.0 (11000) script.js.Versuche.AnwSimTest: Schedule 2 funktioniert

            Z Offline
            Z Offline
            Znarf
            schrieb am zuletzt editiert von
            #5

            @ELK Moin,
            ich stand vor der gleichen Herausforderung:
            Ich lasse mir im Script Einmalausführungstermine errechen und erstelle dann einen schedule.
            Beispiel:
            var scheduleEin = schedule(Minuten + " " + Stunde + " * * *", Funktion);
            Mit clearschedule(scheduleEin) lösche ich den schedule wieder (letzte Zeile der aufgerufenen Funktion).

            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

            666

            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