NEWS
[gelöst]timer und countdown
-
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); } -
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
-
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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden