Questo script replica il comportamento del profilo activation_switch dei dispositivi Shelly Gen1 utilizzando le capacità di scripting di Shelly. Configura l'interruttore in modalità "distaccata" e aggiunge un gestore di eventi per gestire gli eventi di pressione del pulsante. Lo script ignora gli eventi di singola e doppia pressione, attivando l'interruttore con un timeout definito dall'utente quando viene rilevato l'evento "btn_up". Ideale per gli utenti che desiderano emulare il comportamento Gen1 sui loro dispositivi Shelly, lo script consente la personalizzazione del timeout di toggle e degli ID di interruttore/ingresso.
// Esempio di script Shelly: Replica del profilo activation_switch
// Comportamento Gen1 replicato con scripting
let CONFIG = {
toggleTimeout: 5,
inputId: 0,
switchId: 0,
};
Shelly.call("Switch.SetConfig", {
id: CONFIG.switchId,
config: {
in_mode: "detached",
},
});
Shelly.addEventHandler(function (event) {
if (typeof event.info.event === "undefined") return;
if (event.info.component === "input:" + JSON.stringify(CONFIG.inputId)) {
// ignora eventi single_push e double_push
if (event.info.event.indexOf("push") >= 0) return;
let swParams = {
id: CONFIG.switchId,
on: true,
};
if (event.info.event === "btn_up") {
swParams.toggle_after = CONFIG.toggleTimeout;
}
Shelly.call("Switch.Set", swParams);
}
});