NEWS
[gelöst]Funktion nur für bestimmten Zeitraum ausführen (Timer)
-
Ich bin gerade irgendwie nicht so richtig auf der Höhe und brauche mal etwas Hilfe.
Folgende Ausgangssituation:
Ich habe in einem Zimmer einen Dect Thermostaten und einen Dash Button
Über den Dash Button möchte ich den Thermostaten voll aufregeln.
Das erfolgt hiermit:
var Taster = "amazon-dash.0.00-fc-xx-xx-xx-a9.pressed"/*pressed*/; var idTarget = "fritzdect.0.Comet_1196xxx99192.targettemp"/*Target Temp*/; var idComfy = "fritzdect.0.Comet_1196xxx99192.comfytemp"; var idNight = "fritzdect.0.Comet_1196xxx99192.nighttemp"; var idHigh = "28"; on({id: Taster, val: true}, function (obj) { setState(idTarget, idHigh); });Soweit funktioniert das jetzt ohne Probleme.
Jetzt möchte ich allerdings die Funktion erweitern und bin mir nicht so richtig im Klaren wie ich vorgehen sollte.
Hinzufügen möchte ich:
-
einen Timer mit 60 Minuten der nach 60 Minuten auf die die Komforttemperatur zurückschaltet. Bei erneutem Drücken soll der Timer neu starten.
-
einen Datenpunkt in dem ich die abgelaufene Zeit des Timers sehen kann für VIS
Ich habe mehrere Möglichkeiten gefunden aber bin scheinbar irgendwie zu blöd das umzusetzen.
viewtopic.php?f=21&t=16364&p=172478&hil … pt#p172478
Bitte zerlegt mich jetzt nicht, aber ich bin die Tage nicht so richtig fähig klar zu denken(Erkältung), möchte aber das irgendwie schon weiterbringen.
-
-
- einen Datenpunkt in dem ich die abgelaufene Zeit des Timers sehen kann für VIS `
Dafür muss man setInterval() verwenden. Möchtest Du die abgelaufene Zeit oder die Restdauer anzeigen ?
Vorschlag (nicht getestet) mit Restdauer (in Minuten):
const idTaster = "amazon-dash.0.00-fc-xx-xx-xx-a9.pressed"/*pressed*/; const idTarget = "fritzdect.0.Comet_1196xxx99192.targettemp"/*Target Temp*/; const idComfy = "fritzdect.0.Comet_1196xxx99192.comfytemp"; const idNight = "fritzdect.0.Comet_1196xxx99192.nighttemp"; const idVis = "javascript.0..."; // Anzeige Restdauer in Minuten const High = 28; var cnt = getState(idVis).val; var timer = null; function countDown() { cnt--; setState(idVis, cnt, true); if(cnt <= 0) { clearInterval(timer); setState(idTarget, getState(idComfy).val); } } on({id: idTaster, val: true}, function () { setState(idTarget, High); cnt = 60; setState(idVis, cnt, true); if(timer) clearInterval(timer); timer = setInterval(countDown, 60000); // jede Minute }); - einen Datenpunkt in dem ich die abgelaufene Zeit des Timers sehen kann für VIS `
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