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. [gelöst] clearSchedule vor definition vom Schedule im Script

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    939

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] clearSchedule vor definition vom Schedule im Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 3 Kommentatoren 1.4k Aufrufe
  • Ä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.
  • BuZZyB Offline
    BuZZyB Offline
    BuZZy
    schrieb am zuletzt editiert von
    #1

    Hallo Zusammen,

    wollte mir eigentlich gerade eine "Zeitschaltuhr" bauen.

    Jedes mal wenn eine neue Zeit eingetragen wird soll der alte Timer/Schedule beendet werden und ein neuer mit den aktualisierten Zeiten gestartet werden.

    Leider funktioniert das jedoch nicht, ich kann den Schedule nicht beenden mit clearSchedule(..); bevor ich im Script nicht den Schedule ausgelöst habe. Also clearSchedule muss immer hinter dem erstellen Schedule im Script

    Variable = schedule(…...);

    stehen.

    Kriege immer "clearSchedule() => invalid handler" im Log wenn ich versuche als erstes im Script den "alten noch aktiven" Schedule zu beenden.

    Gibt es keine Möglichkeit dem Schedule eine eindeutige ID zu verpassen und diese dann einfach zu beenden oder ähnliches?

    Wie kann ich das elegant lösen?

    Stehe gerade auf dem Schlauch.. :D

    Gruß

    on ({id: "javascript.0.Rollosteuerung.Wohnzimmer.WeekDayHDown", change: "ne"}, function () {
        clearSchedule(RolloWZWDDownSched);
    
        var RolloWZWDDown=getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekDayMDown").val + ' ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekDayHDown").val + ' * * *';
    
        var RolloWZWDDownSched = schedule(RolloWZWDDown, cb(function(){
            log("Rollo Wohnzimmer Schedule ausgelöst ");
            clearSchedule(RolloWZWDDownSched);
        }));
    
        log('Schedule gesetzt');
    });
    
    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Die Timer-Variable darf nicht lokal sein, sondern muss global (außerhalb von Funktionen) deklariert werden.

      var RolloWZWDDownSched = null;
      
      on ({id: "javascript.0.Rollosteuerung.Wohnzimmer.WeekDayHDown", change: "ne"}, function () {
          if(RolloWZWDDownSched) clearSchedule(RolloWZWDDownSched);
      
          var RolloWZWDDown=getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekDayMDown").val + ' ' + getState("javascript.0.Rollosteuerung.Wohnzimmer.WeekDayHDown").val + ' * * *';
      
          RolloWZWDDownSched = schedule(RolloWZWDDown, function() {
              log("Rollo Wohnzimmer Schedule ausgelöst ");
              clearSchedule(RolloWZWDDownSched);
          });
      
          log('Schedule gesetzt');
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • BuZZyB Offline
        BuZZyB Offline
        BuZZy
        schrieb am zuletzt editiert von
        #3

        Herrlich, das klapp ja wunderbar! :D

        Vielen Dank!

        Gruß

        1 Antwort Letzte Antwort
        0
        • apollon77A Offline
          apollon77A Offline
          apollon77
          schrieb am zuletzt editiert von
          #4

          Eine schedule variable hat immer einen Wert ungleich null wenn gesetzt. Also einfach ein "if (scheduleid) clearSchedule" machen und bei auslösen oder clear die Variable auf null setzen. Somit weiß man über den variableninhalt ob ein schedule läuft oder nicht.

          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
          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

          726

          Online

          32.6k

          Benutzer

          82.2k

          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