Das Skript erlaubt es einen 2 Automatische Abschaltzeiten auf einen Taster einzustellen.
Man kann am Anfang des Skript die jeweiligen Abschaltzeiten für eine lange und einen kurz Betätigung einstellen.
Eine schnelle Doppel Betätigung schaltet den Shelly vorzeitig ab.
Code
//Abchaltzeit in Sekunden, bei einer kurzen oder langen Taster Betätigung.
let zeitKurz = 60;
let zeitLang = 900;
let cID = 0; //ID des Shelly Channels/Relay/Input
//Prüfen der Input/Output Einstellung
if(Shelly.getComponentConfig("switch:"+JSON.stringify(cID)).initial_state === "match_input"){Shelly.call("Switch.SetConfig",{id: cID,config: {initial_state: "restore_last"}});print("Invalid inital_state!, changed switch:id", cID, " inital_state to restore_last");}
if(Shelly.getComponentConfig("switch:"+JSON.stringify(cID)).in_mode !== "detached"){Shelly.call("Switch.SetConfig",{id: cID,config: {in_mode: "detached"}});print("Invalid Output Mode!, changed switch:id", cID, " in_mode to detached");}
if(Shelly.getComponentConfig("input:"+JSON.stringify(cID)).type !== "button"){Shelly.call("Input.SetConfig",{id: cID,config: {type: "button"}});print("Invalid input type!, changed input:id", cID, " type to button");}
//Skript Logik
function Check(event){
if(event.info.id === cID && event.info.event === "single_push"){
Shelly.call("Switch.Set",{id: cID, on: true, toggle_after: zeitKurz});
}else if(event.info.id === cID && event.info.event === "long_push"){
Shelly.call("Switch.Set",{id: cID, on: true, toggle_after: zeitLang});
}else if(event.info.id === cID && event.info.event === "double_push"){
Shelly.call("Switch.Set",{id: cID, on: false});
}else{
return true;
}
}
//Skript Trigger
Shelly.addEventHandler(Check);
Alles anzeigen
Das Skript steht unter der "mir völlig egal, was ihr damit macht" Lizenz auch bekannt als MIT-Lizenz, habt Spaß damit!