Skrypt replikacji profilu przełącznika aktywacji dla Shelly Gen1

Ten skrypt odtwarza działanie profilu activation_switch z urządzeń Shelly Gen1, korzystając z możliwości skryptowania Shelly. Konfiguruje przełącznik w trybie „detached” i dodaje obsługę zdarzeń do zarządzania naciśnięciami przycisku. Skrypt ignoruje pojedyncze i podwójne naciśnięcia, aktywując przełącznik z zdefiniowanym przez użytkownika limitem czasu, gdy zostanie wykryte zdarzenie "btn_up". To idealne rozwiązanie dla użytkowników, którzy chcą emulować działanie Gen1 na swoich urządzeniach Shelly — skrypt umożliwia dostosowanie czasu przełączania oraz identyfikatorów przełącznika/wejścia.
        // Przykład skryptu Shelly: replikacja profilu activation_switch
// Zachowanie Gen1 odtworzone za pomocą skryptu

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)) {
    // ignoruj zdarzenia single_push i 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);
  }
});