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 ?
-
Möchte es Raus bekommen wo Klammern usw hinkommen drum habe ich es eingegeben
Möchte mich recht herzlich bedanken
MfG Christian