You are currently viewing Binding Zigbee con ZHA in Home Assistant

Binding Zigbee con ZHA in Home Assistant

  • Autore dell'articolo:
  • Categoria dell'articolo:Home Assistant
  • Commenti dell'articolo:1 commento
  • Ultima modifica dell'articolo:23 Marzo 2021

In questo articolo impariamo a conoscere ed utilizzare una funzione poco conosciuta ma utilissima: il binding Zigbee tra un interruttore ed un attuatore, una lampadina o una smart plug o un gruppo di essi, utilizzando l’integrazione ZHA di Home Assistant.

I tasti ed interruttori Zigbee, infatti, implementano questa comodissima funzionalità chiamata binding che permette loro di comandare direttamente i dispositivi Zigbee appartenenti alla stessa rete, senza usare automazioni di Home Assistant. Funziona anche con dispositivi di marche diverse!

Scopriamone insieme tutti i vantaggi e come attivare questa funzione!

Come sono integrati interruttori e telecomandi Zigbee in Home Assistant

Con tutte le integrazioni disponibili (ZHA, Deconz e Zigbee2mqtt) gli interruttori e telecomandi Zigbee non espongono altro che una entità con lo stato della batteria.
Molti utenti si aspetterebbero di trovare delle entità binarie per ogni tasto ma così non è. Questo per l’esigenza di andare oltre al solo stato di on/off. Pensiamo ad esempio al fatto che si tenga premuto un tasto per cambiare l’intensità della luce o si faccia doppio click su un tasto (le possibilità variano a seconda del produttore/modello). Tali gesture non sarebbero rappresentabili.

In Home Assistant si è quindi scelto di rappresentarle tramite eventi. In tal modo, oltre all’indicazione di quale tasto sia stato premuto o rilasciato, possono venire inviati molti altri attributi che possono essere utilizzati nelle automazioni per creare azioni specifiche per ogni gesture.

Per verificare come sia fatto l’evento inviato dal telecomando, e quindi capire come creare un’automazione, basta andare in Strumenti per sviluppatori -> Eventi -> Ascoltare gli eventi (parte bassa dello schermo) scrivere il nome dell’evento utilizzato dalla propria integrazione, zha_event nel nostro caso con ZHA, quindi premere sul tasto Iniziare ad ascoltare e scatenare le gesture del telecomando per appuntarne i valori. Vedrete qualcosa di simile.

Evento zha_event di un telecomando Ikea

A questo punto, creando una o più automazioni, è possibile gestire tali eventi e aumentare/diminuire la luminosità, spegnere/accendere una luce o una smart bulb.
Demando ad un futuro articolo come farlo nel migliore dei modi in quanto non è l’oggetto del presente articolo.

Ma cosa succederebbe se il nostro Home Assistant smettesse di funzionare per qualunque motivo? Alla pressione del tasto la luce non si accenderebbe. E qualcuno sarebbe certamente scontento del risultato… (ogni riferimento a mia moglie è puramente casuale…!)

Il binding Zigbee

Bindinge Zigbee

In nostro soccorso arriva proprio il binding Zigbee, che è parte dello standard definito da Zigbee alliance e quindi disponibile con tutti i dispositivi che implementano correttamente tale standard.

Attraverso tale funzione impostiamo nella memoria interna del telecomando il dispositivo o gruppo destinatario delle azioni, in modo tale che alla pressione dei tasti, oltre a inviarli ad Home Assistant come precedentemente visto, attivi anche direttamente le funzioni sui dispositivi impostati.

Questa potenzialità, come detto, è trasversale alle marche/modelli di dispositivi e funziona tramite delle comunicazioni dirette tra telecomando e dispositivi destinatari, sfruttando la rete mesh presente con eventuali router e senza passare da Home Assistant per il funzionamento, risultando quindi molto più resiliente delle automazioni classiche.

Essendo inoltre un’invio diretto è anche molto più affidabile e veloce, talmente veloce che ti sembrerà di utilizzare un interruttore fisico.

Ulteriore vantaggio, nel caso di dimming, è la fluidità con la quale è effettuata questa operazione che, se dovesse passare da Home Assistant, non arriverebbe mai a tali livelli.

Come detto il binding è parte dello standard Zigbee e quindi funzionerà tra marche/modelli/tipologie differenti di dispositivi. Si può accendere una smart plug Xiaomi usando un telecomando Ikea, per esempio.

Come attivare il binding Zigbee con ZHA

Mentre diversi dispositivi Zigbee (come quelli venduti da Ikea) hanno una procedura per attivare il binding utilizzando direttamente i dispositivi stessi, vediamo invece come utilizzare ZHA per impostare il binding di un telecomando qualunque.

Partiamo da una nozione importante: i device da accendere devono essere inclusi ad un gruppo Zigbee. Esiste la possibilità di effettuare il binding singolo ad un device ma non sono riuscito a farlo funzionare su alcun dispositivo in mio possesso, probabilmente perchè i produttori hanno preferito usare l’attivazione di gruppo, più flessibile.

Da ciò ne deriva che dovremo creare un gruppo anche per un singolo dispositivo da accendere tramite binding.

Per creare un gruppo con ZHA rimando all’articolo ZHA: Zigbee in Home Assistant, capitolo “i gruppi Zigbee

Per esemplificare creo un gruppo chiamato “Tavolo group” contenente tre lampadine smart come segue:

Gruppo di dispostivi Zigbee con ZHA in Home Assistant

Ora non resta che attivare il binding nel telecomando che vorremo utilizzare.
Per farlo andiamo in Impostazioni -> Integrazioni -> Zigbee -> x dispositivi -> selezioniamo il telecomando -> Gestisci i cluster.

Dalla finestra di dialogo che appare scorriamo verso il fondo nella sezione Collegamento gruppo.
In tale sezione selezioniamo in “Gruppi collegabili” il gruppo precedentemente creato e selezioniamo i servizi che vogliamo siano collegati automaticamente:

Attivazione Binding Zigbee con ZHA in Home Assistant

Dei servizi presenti quelli a noi utili sono i seguenti:

  • LightLink – collega l’accensione / spegnimento di una fonte luminosa
  • LevelControl – collega la gestione del livello di illuminazione (dimming), ad esempio tenendo premuti i tasti up/down
  • OnOff – collega l’accensione / spegnimento di un dispositivo on/off come una smart plug

A questo punto premere il tasto COLLEGA GRUPPO.
Il comando verrà inviato dal dispositivo ma in Home Assistant questo collegamento non verrà memorizzato in alcun posto. Anche riaprendo questa schermata in futuro il binding non verrà mostrato.

Subito dopo la pressione di COLLEGA GRUPPO consiglio di premere più volte i tasti del telecomando in oggetto, per qualche secondo. In questo modo garantiamo che il dispositivo non sia in stato di sleep ed abbia quindi modo di ricevere e recepire il messaggio. Se non funziona la prima volta provare a ripetere l’operazione.

Ci accorgeremo che il comando è stato recepito premendo il tasto di accensione e verificando che i dispositivi collegati si accendono automaticamente.

E se volessimo disabilitare un binding Zigbee?

Nel caso in cui si voglia riassegnare un telecomando ad altre funzioni o dispositivi è sempre possibile interrompere il binding effettuando la stessa operazione del capitolo precedente, selezionando il telecomando, in Gestisci cluster, Collegamento gruppo selezionare il gruppo attualmente collegato, i servizi precedentemente collegati ma a questo punto premere SCOLLEGA GRUPPO.

Abilitare la comunicazione di cambio stato ad Home Assistant

A questo punto il binding è configurato e funzionante ma c’è ancora un problema da risolvere. Premendo i tasti del telecomando la lampadina si accende/spegne e si regola la luminosità tenendo premuto. In Home Assistant, tuttavia, non vedremo riflettere questi cambi di stato nelle entità, rendendo impossibile usarli come trigger per eventuali ulteriori automazioni o visualizzazioni.

Fortunatamente è facile porvi rimedio:

  1. Accedere al dispositivo oggetto di accensione in Impostazioni -> Integrazioni -> Zigbee -> x dispositivi -> nome dispositivo
  2. Premere il tasto RICONFIGURA DISPOSITIVO
  3. Ripetere dal punto 1 per ogni dispositivo appartenente al gruppo configurato
Ripristino funzionalità invio aggiornamento stato del dispositivo con ZHA in Home Assistant

Se ora mostri a schermo su Home Assistant un’entità collegata, ti sarà facile verificare che, premendo il tasto del telecomando, lo stato dell’entità si modifichi ad ogni pressione.

Non tutti i dispositivi supportano l’invio di cambio stato. Dipende dalla loro specifica implementazione firmware.
Dispositivi noti per supportare il cambio stato: Ikea Trådfri, Innr e OSRAM.
Dispositivi noti per NON supportarlo: Philips Hue, GLEDOPTO e Müller Licht

Conclusione e ulteriori riferimenti

Avendo verificato i tanti vantaggi del binding Zigbee e l’assenza di svantaggi ti consiglio caldamente di utilizzarlo ovunque possibile.

Renderai molto più improbabile l’evento indesiderabile che premendo un tasto non accada l’azione voluta.

Assicurati soltanto che la copertura di segnale Zigbee sia sufficiente e non disturbata da Wifi (ti rimando a questo articolo per approfondire l’argomento: ZigBee: copertura, router, canali)

Ecco alcuni ulteriori riferimenti che possono esserti d’aiuto:

Ti è piaciuto questo contenuto?

Se ti è stato utile l’articolo che hai letto potresti pensare di darmi una mano offrendomi un caffè!
Oltre ad aiutarmi a star sveglio nelle nottate di ricerche e scrittura mi daresti una mano concreta nel sostenere le spese del server web, incentivandomi a produrre altri contenuti di qualità.
(se non vedi il tasto di seguito clicca QUI)

Henrik Sozzi

Sono un analista programmatore per lavoro e per passione. Amo la domotica, la stampa 3D e la tecnologia in generale.

Questo articolo ha un commento

Rispondi