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. Script Schedule/clearSchedule läuft nicht

NEWS

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

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

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

Script Schedule/clearSchedule läuft nicht

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
8 Beiträge 3 Kommentatoren 495 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.
  • H Offline
    H Offline
    homecineplexx
    schrieb am zuletzt editiert von homecineplexx
    #1

    Warum funktioniert das so nicht?

    ich hab einen Timer TimerMorgen den ich mal auf null setze, dann wird das ganze mal initialisiert und es sollte eigentlich ein TimerMorgen gesetzt werden (TimerEin).
    wenn jetzt der datenpunkt triggert, komm ich wieder in die funktion. und eigentlich sollte der Timer der übergeben wird nicht mehr null sein und ich sollte in die erste if abfrage rein kommen und somit den schedule zuvor clearen können, das passiert aber nie, denn scheinbar der TimerMorgen der immer übergeben wirde, immer null ist.
    was rennt da falsch?

    var TimerMorgen = null;
    var logging = true; 
    
    const morgenStunde = "AllOwnCreated.0.Bewaesserung.ObererGarten.Gartenzaun.Schedule.morgenStunde";
    const morgenMinute = "AllOwnCreated.0.Bewaesserung.ObererGarten.Gartenzaun.Schedule.morgenMinute";
    
    function setUpTimer(TimerEin, stundeId, minuteId) {
    	if (TimerEin !== null) {
    		clearSchedule(TimerEin);
            if (logging) log("da sollte ich rein");
    	}
    
    	var	stundeEin = getState(stundeId).val;
    	var minuteEin = getState(minuteId).val; 
    	
    	var zeitEin = minuteEin + ' ' + stundeEin + ' * * *';
    	
    	TimerEin = schedule(zeitEin, function() {
    		//blabla
        });
    }
    
    
    setUpTimer(TimerMorgen, morgenStunde, morgenMinute);
    
    on({id: 'irgendein.datenpunkt', change: "ne"}, function (obj) {
    	setUpTimer(TimerMorgen, morgenStunde, morgenMinute);
    });
    
    paul53P 1 Antwort Letzte Antwort
    0
    • H homecineplexx

      Warum funktioniert das so nicht?

      ich hab einen Timer TimerMorgen den ich mal auf null setze, dann wird das ganze mal initialisiert und es sollte eigentlich ein TimerMorgen gesetzt werden (TimerEin).
      wenn jetzt der datenpunkt triggert, komm ich wieder in die funktion. und eigentlich sollte der Timer der übergeben wird nicht mehr null sein und ich sollte in die erste if abfrage rein kommen und somit den schedule zuvor clearen können, das passiert aber nie, denn scheinbar der TimerMorgen der immer übergeben wirde, immer null ist.
      was rennt da falsch?

      var TimerMorgen = null;
      var logging = true; 
      
      const morgenStunde = "AllOwnCreated.0.Bewaesserung.ObererGarten.Gartenzaun.Schedule.morgenStunde";
      const morgenMinute = "AllOwnCreated.0.Bewaesserung.ObererGarten.Gartenzaun.Schedule.morgenMinute";
      
      function setUpTimer(TimerEin, stundeId, minuteId) {
      	if (TimerEin !== null) {
      		clearSchedule(TimerEin);
              if (logging) log("da sollte ich rein");
      	}
      
      	var	stundeEin = getState(stundeId).val;
      	var minuteEin = getState(minuteId).val; 
      	
      	var zeitEin = minuteEin + ' ' + stundeEin + ' * * *';
      	
      	TimerEin = schedule(zeitEin, function() {
      		//blabla
          });
      }
      
      
      setUpTimer(TimerMorgen, morgenStunde, morgenMinute);
      
      on({id: 'irgendein.datenpunkt', change: "ne"}, function (obj) {
      	setUpTimer(TimerMorgen, morgenStunde, morgenMinute);
      });
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @homecineplexx
      Die Timer-Variablen müssen global sein, TimerEin ist aber eine lokale Variable.

      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
      • H Offline
        H Offline
        homecineplexx
        schrieb am zuletzt editiert von
        #3

        TimerEin ist lokal aber ich übergebe doch eine globale TimerMorgen variable.

        paul53P 1 Antwort Letzte Antwort
        0
        • H homecineplexx

          TimerEin ist lokal aber ich übergebe doch eine globale TimerMorgen variable.

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @homecineplexx sagte in Script Schedule/clearSchedule läuft nicht:

          aber ich übergebe doch eine globale TimerMorgen variable.

          Ja, und die hat den Wert null. Innerhalb der Funktion wird nur die lokale Variable verändert, nicht die globale.

          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
          • H Offline
            H Offline
            homecineplexx
            schrieb am zuletzt editiert von
            #5

            Wenn ich die variable returniere sollte es aber klappen oder?

            paul53P 1 Antwort Letzte Antwort
            0
            • H homecineplexx

              Wenn ich die variable returniere sollte es aber klappen oder?

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @homecineplexx sagte in Script Schedule/clearSchedule läuft nicht:

              Wenn ich die variable returniere sollte es aber klappen oder?

              Ja, aber warum so umständlich ? Verwende doch innerhalb der Funktion die globale Variable TimerMorgen.

              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
              • H Offline
                H Offline
                homecineplexx
                schrieb am zuletzt editiert von
                #7

                Das ist ja eine generische Funktion die mehrfach mit verschiedenen timern aufgerufen wird. Daher bissl komplexer... Danke dir

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

                  Ok, dann ja wenn Du TimerEin zurück gibst und dann immer wieder als input hast dann sollte es tun

                  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

                  832

                  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