Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Script Schedule/clearSchedule läuft nicht

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Script Schedule/clearSchedule läuft nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      homecineplexx last edited by 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);
      });
      
      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @homecineplexx last edited by

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

        1 Reply Last reply Reply Quote 0
        • H
          homecineplexx last edited by

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

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @homecineplexx last edited by

            @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.

            1 Reply Last reply Reply Quote 0
            • H
              homecineplexx last edited by

              Wenn ich die variable returniere sollte es aber klappen oder?

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @homecineplexx last edited by

                @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.

                1 Reply Last reply Reply Quote 0
                • H
                  homecineplexx last edited by

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

                  1 Reply Last reply Reply Quote 0
                  • apollon77
                    apollon77 last edited by

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

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    786
                    Online

                    31.9k
                    Users

                    80.2k
                    Topics

                    1.3m
                    Posts

                    javascript
                    3
                    8
                    391
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo