Script de replicación del perfil del interruptor de activación para Shelly Gen1

Este script replica el comportamiento del perfil activation_switch de los dispositivos Shelly Gen1 mediante las capacidades de scripting de Shelly. Configura el interruptor en modo «detached» y añade un controlador de eventos para gestionar los eventos de pulsación del botón. El script ignora los eventos de pulsación simple y doble, y activa el interruptor con un tiempo de espera definido por el usuario cuando detecta el evento «btn_up». Ideal para quienes desean emular el comportamiento de Gen1 en sus dispositivos Shelly, el script permite personalizar el tiempo de espera del interruptor y los ID del interruptor/entrada.
        // Shelly Script example: Replicate activation_switch profile
// Gen1 behavior replicated with 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)) {
    //ignore single_push and double_push events
    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);
  }
});