You are currently viewing ZigBee: copertura, router, canali

ZigBee: copertura, router, canali

  • Autore dell'articolo:
  • Categoria dell'articolo:Home Assistant
  • Commenti dell'articolo:8 commenti
  • Ultima modifica dell'articolo:13 Marzo 2021

Nell’articolo precedente abbiamo visto comeZigBee sia un’ottima tecnologia da adottare per la domotica di casa nostra e abbiamo appreso le prime nozioni riguardo l’hardware a disposizione e l’integrazione Home Assistant da utilizzare.

In questo articolo ci spingiamo un po’ più in là con qualche utile informazione più tecnica per essere sicuri di comprendere al meglio la tecnologia e come sfruttarla al meglio.

Una corretta pianificazione di vari aspetti, infatti, è la chiave per far funzionare al meglio l’impianto di casa, che vogliamo sia il più affidabile possibile.

Rete mesh

A differenza di una rete Wifi, dove ogni dispositivo comunica solo con l’access point, la rete ZigBee forma automaticamente una rete mesh che estende la copertura man mano che si aggiungono dispositivi.

Il dispositivo che permette l’accesso alla rete ZigBee prende il nome di Coordinator e ne può esistere uno soltanto per ogni rete ZigBee. Normalmente il coordinator è il dispositivo connesso al nostro hub di domotica Home Assistant ed è spesso sotto forma di una chiavetta USB.

I dispositivi possono invece essere di due tipi: router o end device.

I router sono dispositivi che, oltre alle proprie comunicazioni, prendono in carico anche le comunicazioni dei dispositivi vicini, inoltrandole e facendo quindi da tramite, estendendone la copertura. Normalmente tutti i dispositivi alimentati integrano automaticamente la funzione di router. Lampadine smart, prese comandate, attuatori, sono tutte categorie di dispositivi che normalmente effettuano il routing.

Gli end device, normalmente dispositivi a batteria, sono invece dispositivi che effettuano le proprie comunicazioni con il coordinator o con il router più vicino, senza però inoltrare le comunicazioni di altri dispositivi. Questo tipo di apparati non estende quindi la copertura. Rientrano in questa categoria tutti i sensori a batteria quali sensori magnetici apertura porte e finestre, allagamento, temperatura e umidità, vibrazione, telecomandi, ecc.

Un esempio concreto

Topologia di esempio rete mesh ZigBee IEEE 802.15.4

Nell’immagine sopra, che rappresenta una tipica rete mesh ZigBee, vediamo come il Coordinator (rappresentato dalla chiavetta nera, una Conbee II), comunichi con i dispositivi nelle immediate vicinanze e con i dispositivi più lontani tramite l’ausilio dei router presenti nella rete.

Nell’esempio sono infatti presenti due prese comandate Xiaomi Smart Plug e due lampadine Ikea TRÅDFRI, tutti dispositivi che fungono infatti da router. Tali dispositivi rilevano automaticamente il coordinator e/o gli altri router presenti a portata comunicando di volta in volta con il dispositivo più conveniente, ovvero quello con segnale più forte. Questo permette di creare diversi percorsi possibili aumentando anche la resilienza della rete nel caso uno dei dispositivi si guasti, se è stata fatta una attenta pianificazione.

Possiamo poi vedere altri due tipi di dispositivi di tipo end device, dei sensori porte e finestre Aqara e dei sensori di temperatura e umidità Aqara.
Tali dispositivi alimentati a batteria, infatti, cercano il coordinator o router più vicino e lo utilizzano per effettuare le comunicazioni. Il router, a sua volta, comunicherà con il coordinator oppure con un altro router più vicino al coordinator e così via fino ad arrivare a destinazione.

La pianificazione dei dispositivi da utilizzare è quindi importante per assicurare un corretto funzionamento della rete. A seconda del tipo di coordinator scelto potremo avere un numero massimo più o meno elevato di dispositivi direttamente connessi ed una portata differente. A titolo di esempio si può considerare la Conbee II (citata nel precedente articolo) nei miei test raggiunge tutto un piano di circa 60 metri quadri e passa una soletta permettendo la comunicazione con un dispositivo nelle vicinanze, posto in verticale sopra o sotto alla posizione della chiavetta. E’ bene considerare la copertura di ogni dispositivo come inferiore rispetto ai dispositivi Wifi, per permettere la formazione della rete mesh.

Pianificare la copertura

Prima di iniziare ad aggiungere dispositivi ZigBee, quindi, è bene fare un minimo di pianificazione per capire a grandi linee di cosa avremo bisogno per coprire le zone dove intendiamo aggiungere dispositivi.

Per un piccolo appartamento, ad esempio, può essere sufficiente anche il solo coordinator collegato ad Home Assistant, se posto in posizione centrale.
Per case più grandi o complesse, come ad esempio abitazioni su più piani, la situazione va prevista con più cura.

Alcuni fattori con cui regolarsi sono i seguenti:

  • La portata del proprio coordinator (una Conbee II avrà un raggio di copertura superiore ad un coordinator basato su cc2531 ma inferiore ad un cc2538 amplificato con cc2592, per citare un esempio).
  • La posizione del proprio coordinator. Chiaro che se partiamo dal centro dell’area da coprire siamo avvantaggiati, se partiamo da un angolo siamo svantaggiati. A tal proposito si tenga in considerazione che oltre alle ottime chiavette ZigBee esistono delle soluzioni come il bridge Sonoff ZBBridge oppure l’HAT per Raspberry basato su CC2538 (montabile su di un PiZeroW) che permettono di posizionare il punto di accesso ZigBee in un luogo non vincolato dall’hardware su cui è installato Home Assistant.
  • Estendere la copertura con router. Se non possiamo raggiungere direttamente i dispositivi o se la distanza diventa comunque piuttosto elevata conviene pensare di predisporre dei dispositivi in posti strategici che estendano la copertura della rete ZigBee garantendo una comunicazione con un buon segnale tra i dispositivi. Se ne abiamo la possibilità meglio predisporre più router di quanti ne servano così che la resilienza della rete aumenti risultando meno fragile in caso si guasti un router.
Corretta disposizione dispositivi ZigBee in abitazione su più livelli
Corretta disposizione degli apparati ZigBee in una abitazione su più livelli

Nell’esempio sopra vediamo una possibile disposizione degli apparati ZigBee in una abitazione a più livelli così da garantire la raggiungibilità di tutti i dispositivi, se possibile attraverso più di una unica via di comunicazione. Possiamo infatti immaginare come l’impianto possa continuare a funzionare anche se perdessimo la funzionalità di uno dei router predisposti.

Le cattive notizie…

Risultato immagini per zigbee standard

Sin qui abbiamo visto come ZigBee possa essere esteso tramite semplici dispositivi alimentati. Questa è una peculiarità molto potente di ZigBee ma non è oro tutto quel che luccica ed è bene tenere a mente che ci sono delle particolarità che ne possono rendere più complessa la pianificazione.

Il problema è che non tutti i dispositivi ZigBee rispettano gli standard fissati dallo standard definito da Zigbee Alliance. Molti produttori, infatti, sfruttano ZigBee per produrre un proprio ecosistema chiuso non pensato per interagire con dispositivi di altre marche. Pertanto capita a volte che alcuni dispositivi abbiano delle peculiarità introdotte dai produttori che rendono il dispositivo meno interoperabile.

Purtroppo questa pratica è tutt’altro che trasparente, pertanto sarà impossibile saperlo prima di acquistare un prodotto, se non cercando le esperienze precedenti di altri utenti, ad esempio cercando in gruppi Facebook come Home Assistant Italia.

Alcuni esempi di tali cattive pratiche possono essere i seguenti:

  • I router possono non comportarsi in modo lineare come ci si possa aspettare. Ad esempio esistono router che funzionano solo con alcune marche differenti ma non altre.
  • Alcuni dispositivi a batterie non scelgono il router migliore (quello con maggior segnale) ma si ricordano l’ultimo utilizzato, non sfruttando eventuali router migliori aggiunti all’impianto e riducendo la resilienza in caso di guasti. Inoltre questo può comportare problemi in caso di spostamento dei dispositivi che compongono la rete.
  • Non tutti i dispositivi (la maggioranza a dire il vero…) comunicano tramite le funzionalità standard definite dalle specifiche. Questo rende necessario gestire delle eccezioni, presenti in ogni integrazione, per gestire la comunicazione con il dispositivo in modo non standard. Nei nuovi dispositivi queste eccezioni nelle integrazioni non sono ancora state create, quindi è possibile che il dispositivo non funzioni correttamente fintanto che gli autori delle integrazioni le creino (normalmente ogni integrazione ha la possibilità di ricevere segnalazioni di dispositivi da supportare, attraverso un repository GitHub, ad esempio).

Molti di questi problemi dovrebbero migliorare notevolmente con l’introduzione dei dispositivi che seguono le specifiche ZigBee 3.0, volte proprio a risolvere problemi di interoperabilità di questo tipo. Man mano che usciranno nuovi dispositivi, quindi, dovremmo vedere una progressiva semplificazione della loro integrazione nelle nostre reti interoperabili. Per i dispositivi attuali, comunque, gli autori delle integrazioni svolgono un ottimo lavoro nel creare queste eccezioni che rendono trasparente le non conformità agli standard e rendono possibile fruire del dispositivo senza doversi preoccupare di questi aspetti tecnici.

Il canale e la coesistenza con Wifi

Un altro aspetto importante da conoscere è la suddivisione in canali della frequenza assegnata a ZigBee in Europa.

In tale area infatti, ZigBee è assegnato alla frequenza libera 2,4GHz, esattamente nel range assegnato anche a WiFi secondo le specifiche 802.11.bgn.

E’ quindi estremamente importante una pianificazioe delle frequenze utilizzate per la nostra rete Wifi e per ZigBee affinchè siano in range separati e non si disturbino a vicenda. Sappi che normalmente, quando questo avviene, chi ci rimette è ZigBee, più delicato da questo punto di vista.

Non sempre separare le frequenze è semplice per via dell’affollamento di reti Wifi da parte di vicini di casa della propria abitazione e sappiamo che l’utente medio non configura il router, lasciando quindi il canale wifi configurato automaticamente, rendendo la situazione dinamica e non sempre facilmente prevedibile.

A tal fine dobbiamo scegliere l’opzione migliore tra i compromessi che abbiamo a disposizione. Certamente dobbiamo fissare il canale utilizzato dal nostro Wifi in modo che risulti su uno poco congestionato dal vicinato (questa è una buona idea a priori…) non lasciandolo assolutamente in automatico in quanto il nostro router / Access Point potrebbe un giorno assegnare un canale sovrapposto alla nostra rete ZigBee, determinandone un cattivo funzionamento.
Questo potrebbe accadere in quanto i router / access point Wifi, per determinare il canale da utilizzare, eseguono una scansione delle reti Wifi presenti e valutano qual è il canale che offre meno interferenze. Chiaramente in questo processo la nostra rete ZigBee è “trasparente”, non venendo in alcun modo rilevata. Nulla vieterebbe quindi al nostro router / access point Wifi di scegliere un canale totalmente sovrapposto al canale ZigBee scelto, che invece non può essere cambiato in modo automatico.

Il canale ZigBee, quindi, andrà posizionato sulla frequenza dove riceviamo meno disturbi dal nostro wifi e da quello dei vicini.

Ma Wifi e ZigBee hanno gli stessi numeri di canale? No, ed anche il distanziamento tra un canale e l’altro è differente. Facciamo riferimento alla seguente immagine:

Risultato immagini per wifi zigbee channels
Comparazione delle frequenze utilizzate dai canali Wifi e dai canali ZigBee

Sappiamo che i canali Wifi devono essere distanti almeno 5 canali per funzionare in modo indipendente senza disturbarsi (quando non utilizzano ampiezza di 40MHz, altrimenti la situazione peggiora ulteriormente). Ne risulta che i possibili canali completi che abbiamo a disposizione non sono più di 3: l’1, il 6 e l’11 (o meglio ancora 13, in Italia, se supportato da tutti i nostri dispositivi).

Facciamo un esempio concreto: ammettiamo che nella nostra rete Wifi utilizziamo il canale 1. Il nostro vicino, che arriva con parecchio segnale, utilizza invece il canale 6. Altri segnali più deboli in lontananza arrivano su canali più alti intorno all’11.
Guardando l’immagine sopra va da sé che la scelta migliore sarebbe assegnare il canale 25 o 26 a ZigBee, per tenerlo più separato possibile dalle comunicazioni più potenti che ne disturberebbero le trasmissioni.
Si tenga anche in considerazione che il canale 25 è più “accettato” dai dispositivi mentre il 26 non funziona correttamente con alcuni di essi. Si faccia quindi una prova con i propri apparati ZigBee per appurarne il funzionamento, se si decide per il canale 26. Personalmente uso proprio quest’ultimo e non ho problemi con i dispositivi di casa mia.

Attenzione a scegliere il canale corretto prima di associare tutti i dispositivi perché, sebbene i dispositivi ZigBee abbiano la possibilità di rilevare il cambio canale del coordinator, non sempre questo funziona come dovrebbe con tutti i dispositivi (il rischio è maggiore con quelli a batteria che non hanno comunicazioni continue) e il rischio è di dover effettuare nuovamente l’associazione di tutti i dispositivi!

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 8 commenti.

  1. erotik

    No matter if some one searches for his essential thing, therefore he/she needs to be available that in detail, so that thing is maintained over here. Hanna Terrell Yann

    1. Henrik Sozzi

      Sorry, I didn’t understand. Was that an appreciation of details available in this article or…what? Thank you anyway for having read my writings translated in another language 🙂

Rispondi