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. [gelöst]timer und countdown

NEWS

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

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

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

[gelöst]timer und countdown

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
4 Beiträge 3 Kommentatoren 821 Aufrufe 3 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.
  • M Offline
    M Offline
    mguenther
    schrieb am zuletzt editiert von mguenther
    #1

    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 Antwort Letzte Antwort
    0
    • bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2
      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


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

        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.

        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
        • M Offline
          M Offline
          mguenther
          schrieb am zuletzt editiert von
          #4

          danke - funktioniert

          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

          812

          Online

          32.4k

          Benutzer

          81.4k

          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