Hi
ich habe aktuell dieses script im Einsatz:
// Konfiguration
const TIMER_SEC_3 = 180; // 3 Minuten für den Timer
const TIMER_SEC_15 = 900; // 15 Minuten für den Timer
Shelly.addEventHandler(function (event) {
// Wir reagieren nur auf Events vom Input 0
if (typeof event.info.event === "undefined"
event.info.id !== 0) return;// Das Smily bitte durch "||" ersetzen
const ev = event.info.event;
// 1. EINFACHER KLICK: 3-Minuten-Modus oder AUS
if (ev === "single_push") {
Shelly.call("Switch.GetStatus", { id: 0 }, function (status) {
if (status.output) {
Shelly.call("Switch.Set", { id: 0, on: false });
print("Aktion: Per einfachem Klick ausgeschaltet.");
} else {
Shelly.call("Switch.Set", { id: 0, on: true, toggle_after: TIMER_SEC_3 });
print("Aktion: 3-Minuten-Timer gestartet.");
}
});
}
// 2. DOPPELKLICK: 15-Minuten-Modus oder AUS
else if (ev === "double_push") {
Shelly.call("Switch.GetStatus", { id: 0 }, function (status) {
if (status.output) {
Shelly.call("Switch.Set", { id: 0, on: false });
print("Aktion: Per einfachem Klick ausgeschaltet.");
} else {
Shelly.call("Switch.Set", { id: 0, on: true, toggle_after: TIMER_SEC_15 });
print("Aktion: 3-Minuten-Timer gestartet.");
}
});
}
// 3. LANGER DRUCK: Dauerlicht (unendlich)
else if (ev === "long_push") {
Shelly.call("Switch.Set", { id: 0, on: true });
print("Aktion: Dauerlicht aktiviert.");
}
// 4. DREIFACHKLICK: Alles Aus (Sicherheits-Aus)
else if (ev === "triple_push") {
Shelly.call("Switch.Set", { id: 0, on: false });
print("Aktion: Alles aus.");
}
});
Nicht vergessen -> Damit der Shelly die verschiedenen Klick-Typen (Single, Double, Long) unterscheiden kann, muss der Input-Typ in den Geräteeinstellungen zwingend auf "Button" (Taster) und der "Input Mode" auf "Detached" (Getrennt) stehen. Ansonsten würde jeder physische Klick das Relais direkt schalten, bevor das Script überhaupt reagieren kann.
Hope it helps
Micha