NEWS
Skript für Lichtsteuerung auf Zeit
-
Hallo ich bin ein Neuling versuche mich gerade im Javascript/js
Ich Möchte Eine Lampe einschalte für 5 Minuten wenn ich den Taster kurz drücke, wenn die Lampe Leuchtet und die Taste noch mal kurz drücke wieder ausgehen
auch wenn die 5 Minuten nicht um Sind
ich habe schon geschaut ich finde Leider nichts, ist das Überhaut möglich
Hatte eine CL-Box bei der hat das Funktioniert Möchte alles Umstellen auf ioBroker
Bitte Bitte um Hilfe
MfG Christian
-
Vielleicht so:
// Datenpunkt-IDs const idTaste = '...'; const idLampe = '...'; var timer = null; on({id: idTaste, val: true}, function() { if(timer) { clearTimeout(timer); // laufenden Timer stoppen timer = null; setState(idLampe, false); } else { setState(idLampe, true); timer = setTimeout(function() { setState(idLampe, false); timer = null; }, 5 * 60000); // 5 Minuten } }); -
Hallo Paul53
erst mal danke habe es eingegeben es funktioniert leider nicht
Skript sieht so aus
var timer=null;
on({id: 'hm-rpc.0.OEQ0279752.2.PRESS_SHORT',val:true},function() {
if(timer){
clearTimeout(timer);
stoppen
timer=null;
setState("hm-rpc.0.IEQ0007850.1.STATE",false);
}else{
SetState("hm-rpc.0.IEQ0007850.1.STATE",true);
timer = setTimeout(function() {
setState("hm-rpc.0.IEQ0007850.1.STATE",false);
timer=nul;
},5*60000);
}
});
beim Start des Skript Steht unten
22:24:21.706 [info] javascript.0 Start javascript script.js.Skript3
22:24:21.706 [info] javascript.0 script.js.Skript3: registered 1 subscription and 0 schedules
Beim Drücken der Taste kommt das
22:24:44.719 [error] javascript.0 at Object. (script.js.Skript3:9:5)
Hat sich da ein Fehler eingeschlichen? und wo ist er
MfG Christian
-
5. Zeile das "stoppen" muss raus/entfernt werden und 4. Zeile von unten das muss
timer=null;
heissen
-
Hallo noch mal
geht immer noch nicht
var timer=null;
on({id: 'hm-rpc.0.OEQ0279752.2.PRESS_SHORT',val:true},function() {
if(timer){
clearTimeout(timer);
timer=null;
setState("hm-rpc.0.IEQ0007850.1.STATE",false);
}else{
SetState("hm-rpc.0.IEQ0007850.1.STATE",true);
timer=setTimeout(function(){
setState("hm-rpc.0.IEQ0007850.1.STATE",false);
timer=null;
},5*60000);
}
});
-
5. Zeile das "stoppen" muss raus/entfernt werden und 4. Zeile von unten das muss
timer=null; `
… und
@coswald:SetState("hm-rpc.0.IEQ0007850.1.STATE",true); `
–>setState("hm-rpc.0.IEQ0007850.1.STATE",true);Weshalb hast Du das Skript nicht einfach kopiert (copy & paste) und dann die Zeilen 2 und 3 angepasst ?
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