Script di Replica del Profilo Interruttore di Attivazione per Shelly Gen1

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);
  }
});