Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst]timer und countdown

    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

    [gelöst]timer und countdown

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mguenther last edited by mguenther

      Hallo mal wieder,
      ich hätte gerne einen Countdown, in dem der aktuelle Timer heruntergezählt wird und die Restzeit h:mm in einen Datenpunkt geschrieben werden. Ich habe hier im Forum schon einiges gelesen, aber so richtig weitergekommen bin ich noch nicht.

      Anbei mein Skript:

      idManu und idTaster_virtu sind Datenpunkte
      
      var taster_virtu = true;
      var laufzeit = 3600000;   //Laufzeit in Stunden   
      
      if (taster_virtu) {
              manu = true;
              timer = setTimeout(function() {
                  timer = null;
                  setState(idManu, false, true);
                  setState(idTaster_virtu, false, true);
              }, laufzeit);
          }
      
      1 Reply Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active last edited by

        var count,timer;
        
        function countdown(){
          count--;
          if(count > 0) setState('javascript.0.Countdown.Brunnen.countdown', count);
          else {
                setState('javascript.0.Countdown.Brunnen.countTrigger', false );
          }
        }
        
        on({id: "javascript.0.Countdown.Brunnen.countTrigger", change: "ne"}, function(obj){
            if(obj.state.val) { 
                count = getState('javascript.0.Countdown.Brunnen.Zeitvorgabe').val;  // in Minuten
                setState('javascript.0.Countdown.Brunnen.countdown', count);
                timer = setInterval(countdown, 60000);   // 1000 = 1 Sek. ;  60000 = 60 Sek.
            } else {
                clearInterval(timer);
                setState('javascript.0.Countdown.Brunnen.countdown', 0 );
            }
        });
        
        

        Anmerkung:
        Variablen musst du manuell anlegen.
        Zeitvorgabe: hier kannst du die Zeit in Min. vorgeben
        Tripper: true startet den countdown
        countdown: enthält dann die Zahl in Minuten.

        mfg

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

          Vorschlag:

          var laufzeit = getState(idLaufzeit).val; //Laufzeit in Stunden
          var cnt;
          
          on(idTaster_virtu, function(dp) {
            taster_virtu = dp.state.val;
            var manu = false;
            if(timer) clearInterval(timer); // Stopp Timer
            timer = null;
            if (taster_virtu) {
              manu = true;
              cnt = 60 * laufzeit; // Minuten
              timer = setInterval(function() {
                cnt--;
                var mm = cnt % 60;
                if(mm < 10) mm = '0' + mm;
                setState(idCountdown, Math.floor(cnt / 60) + ':' + mm, true);
                if(cnt <= 0) {
                   clearInterval(timer);
                   timer = null;
                   setState(idManu, false, true);
                   setState(idTaster_virtu, false, true);
                }   
              }, 60000);
            }
            setState(idManu, manu, true);
          });
          
          

          Anmerkung: die Zeilen 18 bis 20 können entfallen, da dies auch durch den Trigger als Reaktion auf
          setState(idTaster_virtu, false, true) erfolgt.

          1 Reply Last reply Reply Quote 0
          • M
            mguenther last edited by

            danke - funktioniert

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

            Support us

            ioBroker
            Community Adapters
            Donate

            845
            Online

            31.8k
            Users

            80.0k
            Topics

            1.3m
            Posts

            javascript
            3
            4
            762
            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