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