• GGianpiPrincipiante

    Livello 6
  • Modificato

ControllerX offre le seguenti funzionalità per diversi controller (dimmer, switch, etc) zigbee:

  • Accendi/Spegni qualsiasi dispositivo domestico (luce, interruttore, lettore multimediale, ecc.)
  • Aumento/diminuzione manuale della luminosità e della temperatura del colore
  • Aumento/diminuzione graduale (tenendo premuto il pulsante) di luminosità, temperatura del colore, volume, ecc.
  • Variazione dei colore
  • Riproduzione e messa in pausa della musica

Perché ControllerX?
Soluzioni come Zigbee2MQTT, deCONZ e ZHA hanno i loro pro e contro, ma se c'è qualcosa di buono in queste soluzioni è che possiamo rimuovere la dipendenza da un hub proprietario (es.: IKEA, Xiaomi, Phillips). Tuttavia, c'è uno svantaggio nella rimozione di questa dipendenza ed è che non solo gli hub proprietari ti consentono di integrare un controller con luci o lettori multimediali, ma dà anche loro un comportamento. Questo è il motivo per cui finiamo per utilizzare le automazioni Home Assistant, tuttavia quando si tratta di creare automazioni complesse, diventa complicato e difficile da mantenere il tutto. È qui che entra in gioco ControllerX insieme ad AppDaemon, per dare un comportamento ai dispositivi, comportamento che perdiamo quando non abbiamo più l'hub originale e per creare facilmente delle automazioni sugli eventi dei pulsanti.

L'app è disponibile su HACS (https://xaviml.github.io/controllerx/), ed è compatibile con le principali tre integrazioni di prodotti zigbee in HA.

    • GGianpiPrincipiante

      Livello 6
    • Modificato

    Vediamo quali sono le caratteristiche supportate dell'IKEA E1810:

    E1810Controller (Light)
    This is the default mapping for this controller:

    Click middle → Toggle
    Hold middle → Sync
    Click 🔆 → Brighten up (1 step)
    Click 🔅 → Dim down (1 step)
    Click < → Color temp down / Left color wheel (1 step)
    Click > → Color temp up / Right color wheel (1 step)
    Hold 🔆 → Brighten up
    Hold 🔅 → Dim down
    Hold < → Color temp down / Left color wheel
    Hold > → Color temp up / Right color wheel

      • GGianpiPrincipiante

        Livello 6
      • Modificato

      Vediamo come gestire con un unico E1810 e un app Appdaemon, numerosi luci in giro per casa:

      • Si definiscono ad esempio due controller, in questo caso controller_sala e controller_ingresso, per comandare delle luci in queste due stanze.
      • si definisce in HA un input_select che contiene come dato alcune stanze della casa, in questo caso, Sala e Ingresso
      • nella parte di codice relativa al merge_mapping si definisce un comportamento custom e cioè con un doppio click del pulsante centrale è possibile richiamare il servizio input_select.select_next che farà quindi cambiare il contenuto (stato) dell'input_select.
      • Facendo cosi sarà possibile con il doppio click del pulsante centrale passare a gestire una delle N stanze che volgiamo gestire, in questo esempio N=2, ma si può tranquillamente aggiungere un numero a piacere di stanze e luci da gestire con i comandi dell'IKEA 1810 quindi aumentando/diminuendo luminosità/colore, etc

      L'esempio usa zigbee2mqtt ma è possibile adattarlo per usare Deconz o ZHA.

      controller_sala:
        module: controllerx
        class: E1810Controller
        controller: "zigbee2mqtt/REMOTE Sala/action"
        integration: mqtt
        light: light.hue_sala
        constrain_input_select: input_select.where_am_i,Sala
        merge_mapping:
          toggle$2:
            service: input_select.select_next
            data:
              entity_id: input_select.where_am_i
          toggle$3:
            service: input_select.select_first
            data:
              entity_id: input_select.where_am_i
      
      controller_ingresso:
        module: controllerx
        class: E1810Controller
        controller: zigbee2mqtt/REMOTE Sala/action
        integration: mqtt
        light: light.hue_ingresso
        constrain_input_select: input_select.where_am_i,Ingresso
        merge_mapping:
          toggle$2:
            service: input_select.select_next
            data:
              entity_id: input_select.where_am_i
          toggle$3:
            service: input_select.select_first
            data:
              entity_id: input_select.where_am_i
        Rispondi alla discussione...