@paul53
Irgendwas hat da bei mir nicht geklappt.
Mal ging es, mal ging es nicht....
Ich hab das jetzt mal durch ChatGPD gejagd und das kam dabei rum:
var timeout, timeout2;
function clearPreviousTimeouts() {
if (timeout) { clearTimeout(timeout); timeout = null; }
if (timeout2) { clearTimeout(timeout2); timeout2 = null; }
}
on({ id: [].concat(['deconz.0.Sensors.12.presence']), change: 'ne' }, (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
// Prüfen, ob der Sensor auf Anwesenheit schaltet und Lichtsteuerungsbedingungen erfüllt sind
if (value && !getState('javascript.0.Anwesenheitserkennung.Bad').val &&
(getState('deconz.0.Sensors.13.lux').val <= 20 || getState('deconz.0.Sensors.3.lux').val <= 30)) {
// Wenn innerhalb der Zeitbereiche
if (compareTime('06:00', '07:00', 'between') || compareTime('21:30', '22:45', 'between')) {
clearPreviousTimeouts();
setState('deconz.0.Lights.13.level', 100); // Setze Lichtlevel auf 100%
setState('deconz.0.Lights.13.on', true); // Schalte das Licht ein
// Timeout nach 3 Minuten
timeout = setTimeout(() => {
timeout = null;
setState('deconz.0.Lights.13.on', false); // Schalte das Licht aus
}, 180000);
} else {
clearPreviousTimeouts();
setState('deconz.0.Lights.13.level', 100);
setState('deconz.0.Lights.13.on', true);
// Timeout nach 1 Minute
timeout2 = setTimeout(() => {
timeout2 = null;
setState('deconz.0.Lights.13.on', false); // Schalte das Licht aus
}, 60000);
}
}
});