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] clear schedule?

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.1k

[GELÖST] clear schedule?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 5 Kommentatoren 3.4k 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.
  • V Offline
    V Offline
    vegetto
    schrieb am zuletzt editiert von
    #1

    Hallo,

    gibt es eine Möglichkeit in einem iobroker javascript ein scheduled Funktionion abzumelden? Etwas wie clearSchedule(callback).

    Ich versuche eine Zustandsmaschine für meine Wohnung zu schreiben, wo der Zustand zu gewissen Zeiten geändert wird. Die Zeiten würde ich gerne in javascript Variablen speicher, die dann mit dem VIS UI geändert werden können.

    var state;
    var awakeTime={hour: 07, minute: 00}
    on(awakeTime, cb(function (timer){
      #Awake time!
      #TBD: clear stateChanged
      schedule(timer.val, cb(function (){
         state = "awake";
    }))
    
    

    Ich könnte vermutlich auch setTimeout und clearTimeout benutzen oder eine Funktion schedulen, die jede Minute gerufen wird und dann pruft ob Zeit==awakeTime aber beider scheinen nicht so elegant zu sein…

    Für Ideen wäre ich dankbar! :)

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Hallo,

      vielleicht hilft dir das?

      http://forum.iobroker.net/viewtopic.php?f=21&t=1072

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • V Offline
        V Offline
        vegetto
        schrieb am zuletzt editiert von
        #3

        Danke pix,

        in den Bespiele für isTimeInRange() wird immer ein Datepunkt als trigger benutzt. Das habe ich nicht, wenn ich nicht ein eigenes addiere:

        var awakteTimeStart='07:00:00';
        var awakeTimeEnd='22:00:00';
        schedule("* * * * *", function () {
          //Triggered every minute
          if (isTimeInRange(awakteTimeStart,awakeTimeEnd)
             state = "awake";
          }
        }
        
        

        Dieser Funktion würde dann jeder Minute angerufen, um zu prufen ob die state zu "awake" gestzt werden muss. Vielleicht geht es aber naja, ich finde es nicht so elegant.

        1 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #4

          Habe eingefügt:

          ### 1.0.3 (2015-10-30)
          * (bluefox) add clearSchedule function (only for non astro function)
          
          
          ### clearSchedule
          If **no** "astro" function used you can cancel the schedule later. To allow this the schedule object must be saved:
          
          ```
          var sch = schedule("*/2 * * * *", function () {...});
          
          clearSchedule(sch);
          ```
          
          
          1 Antwort Letzte Antwort
          1
          • V Offline
            V Offline
            vegetto
            schrieb am zuletzt editiert von
            #5

            @Bluefox:

            Habe eingefügt:

            ### 1.0.3 (2015-10-30)
            * (bluefox) add clearSchedule function (only for non astro function)
            
            ```` `  
            

            Cool! Das war schnell!

            Jetzt bin ich dran! Ich melde mich später, wenn ich das stateUpdate Script fertig habe.

            Dein ioBroker.vis-timeandweather wird auch dabei helfen :-)

            1 Antwort Letzte Antwort
            0
            • V Offline
              V Offline
              vegetto
              schrieb am zuletzt editiert von
              #6

              BlueFox,

              leider gibt es noch ein Problem mit clearSchedule: wenn man das Script beendet, dass clearSubscribe verwendet, gibt es errors:

              javascript.0	2015-10-31 09:58:52	error	TypeError: Cannot read property 'name' of undefined at stop (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1510:55) at Object.utils.adapter.objectChange (/opt/iobroker/node_modules/
              javascript.0	2015-10-31 09:58:52	error	message script.js.test [object Object] Cannot read property 'name' of undefined
              javascript.0	2015-10-31 09:58:52	info	javascript.0 Stop script script.js.test
              javascript.0	2015-10-31 09:58:30	info	javascript.0 script.js.test: registered 0 subscriptions and 2 schedules
              javascript.0	2015-10-31 09:58:30	info	javascript.0 Start javascript script.js.test
              javascript.0	2015-10-31 09:58:19	info	javascript.0 Stop script script.js.Script1
              
              

              Dafür habe ich dieses Testcase geschrieben:

              createState("test");
              sch = schedule("0 0 * * *", cb(function(){
                  log("schedule called");
              }));
              clearSchedule(sch);
              sch = schedule("0 1 * * *", cb(function(){
                  log("schedule 2 called");
              }));
              
              

              Ich vermute, dass bei dem javascript stop alle schedulers gelöscht werden aber jetzt gibt es einige die nicht mehr gültig sind, weil sie in Programm schon gelöscht sind.

              Nach dieses Error, muss ich das javascript Instanz neue starten, damit es wieder sauber funktioniert.

              ? 1 Antwort Letzte Antwort
              0
              • V vegetto

                BlueFox,

                leider gibt es noch ein Problem mit clearSchedule: wenn man das Script beendet, dass clearSubscribe verwendet, gibt es errors:

                javascript.0	2015-10-31 09:58:52	error	TypeError: Cannot read property 'name' of undefined at stop (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1510:55) at Object.utils.adapter.objectChange (/opt/iobroker/node_modules/
                javascript.0	2015-10-31 09:58:52	error	message script.js.test [object Object] Cannot read property 'name' of undefined
                javascript.0	2015-10-31 09:58:52	info	javascript.0 Stop script script.js.test
                javascript.0	2015-10-31 09:58:30	info	javascript.0 script.js.test: registered 0 subscriptions and 2 schedules
                javascript.0	2015-10-31 09:58:30	info	javascript.0 Start javascript script.js.test
                javascript.0	2015-10-31 09:58:19	info	javascript.0 Stop script script.js.Script1
                
                

                Dafür habe ich dieses Testcase geschrieben:

                createState("test");
                sch = schedule("0 0 * * *", cb(function(){
                    log("schedule called");
                }));
                clearSchedule(sch);
                sch = schedule("0 1 * * *", cb(function(){
                    log("schedule 2 called");
                }));
                
                

                Ich vermute, dass bei dem javascript stop alle schedulers gelöscht werden aber jetzt gibt es einige die nicht mehr gültig sind, weil sie in Programm schon gelöscht sind.

                Nach dieses Error, muss ich das javascript Instanz neue starten, damit es wieder sauber funktioniert.

                ? Offline
                ? Offline
                Ein ehemaliger Benutzer
                schrieb am zuletzt editiert von
                #7

                Hi, ich habe ein andese Problem, einen variablen Scheduler:

                schedule({hour: getState(idMyTime).val.substring(0,2), minute: getState(idMyTime).val.substring(3,5), second: 0}, function () {
                    //Do something.....
                });
                

                Damit das funktioniert, muss das Script bei einer Änderung am Object, neu gestartet werden. Gibt es eine Möglichkeit
                einen Scheduler zu resetten oder zu refreshen? Oder übersehe ich eine andere Möglichkeit so etwas zu realisieren?
                Gruß
                Jo

                HomoranH 1 Antwort Letzte Antwort
                0
                • ? Ein ehemaliger Benutzer

                  Hi, ich habe ein andese Problem, einen variablen Scheduler:

                  schedule({hour: getState(idMyTime).val.substring(0,2), minute: getState(idMyTime).val.substring(3,5), second: 0}, function () {
                      //Do something.....
                  });
                  

                  Damit das funktioniert, muss das Script bei einer Änderung am Object, neu gestartet werden. Gibt es eine Möglichkeit
                  einen Scheduler zu resetten oder zu refreshen? Oder übersehe ich eine andere Möglichkeit so etwas zu realisieren?
                  Gruß
                  Jo

                  HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #8

                  @androiddev du antwortest tatsächlich auf einen Thread von 2015??
                  :trophy:Herzlichen Glückwunsch zum Schliemann des Jahrzehnts! :trophy:

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  ? 1 Antwort Letzte Antwort
                  1
                  • HomoranH Homoran

                    @androiddev du antwortest tatsächlich auf einen Thread von 2015??
                    :trophy:Herzlichen Glückwunsch zum Schliemann des Jahrzehnts! :trophy:

                    ? Offline
                    ? Offline
                    Ein ehemaliger Benutzer
                    schrieb am zuletzt editiert von
                    #9

                    Eine sehr hilfreiche Antwort von einer sehr intelligenten Person.

                    Was ist das denn denn für eine ulkige Gesellschaft hier ;)

                    Deinen Schliemann kannst du dir sonst wo hinschieben....

                    1 Antwort Letzte Antwort
                    -5
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    703

                    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