# Z-Wave

Z-Wave è un protocollo wireless progettato appositamente per la domotica, il cui ambito di utilizzo comprende l'automazione negli ambienti residenziali, commerciali, ricettivi e assistenziali e le cui applicazioni spaziano dalla domotica alla telesorveglianza e alla telemedicina, per continuare con l'intrattenimento domestico, il controllo accessi, i sistemi di efficientamento e di risparmio energetico.

## Introduzione

Z-Wave venne inizialmente sviluppato nel 2001 dalla startup danese Zen-Sys, poi acquisita nel 2008 dall'azienda americana Sigma Designs, con il tempo è poi diventato uno standard internazionale per la realizzazione di reti mesh interoperabili e a bassa potenza. Il protocollo supporta la comunicazione bidirezionale tra i dispositivi abilitati, permettendo a prodotti di costruttori diversi di funzionare assieme in modo trasparente. Z-Wave utilizza un flusso di dati ridotto per scelta progettuale. Questa scelta permette di ottenere una comunicazione a bassa latenza con una velocità di trasmissione dei dati fino a 100 kbps. Z-Wave fa dell'interoperabilità dei prodotti di diversi costruttori uno dei propri punti di forza e persegue tale obiettivo anche tramite un processo di certificazione dei dispositivi. L'ecosistema Z-Wave annovera nel 2018 più di 2400 prodotti certificati. Z-Wave opera attorno ai 900 MHz. L'utilizzo di tale banda di frequenze permette di evitare le interferenze con sistemi Wi-Fi, Bluetooth e con gli altri sistemi che operano nella banda dei 2.4 GHz ed inoltre fa sì che il segnale Z-Wave attraversi le pareti degli edifici con maggiore facilità rispetto al segnale Wi-Fi, assicurando una trasmissione dei messaggi più efficiente ed affidabile.

## Specifiche Radio

In tutta Europa le unità Z-Wave possono operare alla stessa frequenza di 868.4 MHz, all'interno della banda non licenziata SRD860 che prevede una trasmissione con un duty cycle del 1% e una potenza irradiata efficace (ERP) massima di 25 mW. I dispositivi Z-Wave devono rispettare dei limiti ancora più stringenti di quelli normativi, evitando così problemi di inquinamento elettromagnetico. Nel resto del mondo le frequenze impiegate sono leggermente diverse anche se sempre attorno ai 900 MHz. I livelli MAC e fisico del protocollo, sono stati adottati dall'ITU e costituiscono in larga parte lo standard T G.99593 la cui evoluzione è affidata a un'organizzazione composta da più di 700 membri denominata Z-Wave Alliance. Tale adozione permetterà un'ulteriore accelerazione nella diffusione dello standard.

## Descrizione di una rete Z-Wave

I nodi di una rete Z-Wave si possono dividere innanzi tutto in due macro categorie: nodi controllori e nodi slave.
* I nodi controllori sono quei nodi che hanno la capacità di ospitare una tabella di indirizzamento dell'intera rete e calcolare i percorsi sulla base di essa. Tali nodi hanno la capacità di trasmettere i percorsi ai dispositivi slave in modo da abilitarli alla trasmissione dei segnali instradati.
* I nodi slave sono invece quei nodi che non sono in grado di stabilire i percorsi e generalmente funzionano come unità di ingresso e uscita nelle applicazioni Z-Wave. Esempi di nodi slave sono i dispositivi che controllano l'accensione, lo spegnimento o infine regolano l'intensità delle luci, i dispositivi che rilevano la temperatura interna ed esterna, quelli che comandano motori che determinano il movimento di tapparelle o tende, misurano l'energia elettrica consumata o prodotta, comandano l'irrigazione del giardino, etc.
Per poter creare una rete Z-Wave almeno uno dei suoi nodi dev'essere un controllore. Una singola rete Z-Wave può estendersi fino a 232 nodi. Ciascuna rete Z-Wave è identificata da un Network ID (chiamato anche Home ID) che ha una lunghezza di 32 bit e che identifica tutti i nodi appartenenti alla stessa rete: infatti nodi con diversi Network ID non possono comunicare tra loro. Ciascun dispositivo all'interno di ciascuna rete è identificato da un Node ID che ha una lunghezza di 8 bit, rappresenta l'indirizzo del nodo all'interno della rete e viene assegnato a ciascun dispositivo dal controllore, durante il cosiddetto processo di inclusione. Il controllore usato per includere il primo nodo è designato automaticamente come Controllore Primario ed ha il compito di includere ed escludere tutti i successivi nodi della rete. Il controllore primario impone il proprio Home ID a tutti i nodi della rete e assegna a ciascuno di loro un Node ID univoco. Essere un Controllore Primario è solo un ruolo, infatti qualunque controllore può essere il Primario, ma ovviamente solo un controllore alla volta può esserlo. Ulteriori controllori possono essere aggiunti alla rete man mano che la stessa cresce e questi saranno Controllori Secondari. In un normale appartamento è di norma sufficiente un unico controllore mentre l'utilizzo di controllori secondari può essere utile in caso di installazioni più complesse e articolate. In generale i controllori permettono di eseguire le configurazioni della rete: inclusioni ed esclusioni, configurare le associazioni, definizione della tabella di instradamento dei nodi (Routing Table) (vedi Topologia e instradamento). I controllori possono avere diverse implementazioni: chiavetta USB, telecomando, software multipiattaforma (Microsoft Windows, Linux, Mac OS, etc.), router e infine dispositivi IP dedicati.

## Configurazione di una rete Z-Wave

Per aggiungere o rimuovere un dispositivo da una rete Z-Wave bisogna eseguire delle specifiche procedure chiamate Inclusione ed Esclusione. Entrambe le procedure vengono iniziate con delle opportune azioni, definite dai rispettivi produttori, da compiere sia sul nodo da includere (o escludere) che sul controllore. Per gli slave queste azioni possono consistere in una sequenza di click su un pulsante fisico o in una combinazione di click su più pulsanti del dispositivo stesso, mentre per i controllori tipicamente l'azione da fare consiste nella scelta di un opportuno comando sull'interfaccia web con cui si accede al controllore. La procedura di inclusione/esclusione è iniziata dal controllore e per proseguire ha bisogno che il dispositivo che dovrà essere rimosso o aggiunto alle rete entri nello stato di denominato “learning mode” durante il quale il dispositivo slave trasmette in broadcast (quindi a tutta la rete) le sue informazioni di nodo (Home ID e Node ID) che per un dispositivo non ancora incluso sono rispettivamente un numero casuale e zero. Durante la procedura di inclusione il controllore risponderà inviando l'Home ID e il Node ID al dispositivo slave, che essendo appunto in learning mode, accetterà tali valori usandoli per aggiornare le proprie informazioni di nodo. La procedura di inclusione deve essere eseguita solo una volta, dopodiché il dispositivo risulta sempre riconosciuto dal controllore e deve essere ovviamente ripetuta per ciascun dispositivo che si desidera includere nella rete. Durante la procedura di esclusione, una volta che il controllore ha identificato il dispositivo da escludere tramite la ricezione dei messaggi “broadcast” del dispositivo che è stato messo in learning mode, procede alla rimozione di tutte le informazioni relative al dispositivo. Il dispositivo dal canto suo azzera tutte le sue informazioni di rete, configurazioni e personalizzazioni e imposta il suo Node ID a zero ed il Network id ad un numero casuale, pronto per essere nuovamente incluso in una rete. I dispositivi di una rete Z-Wave possono supportare la Network Wide Inclusion che offre la possibilità di includere un dispositivo in una rete anche se questo non è in connessione diretta con il controllore. È inoltre possibile che un dispositivo non inizializzato vada automaticamente in Network Wide Inclusion appena lo si alimenta senza bisogno di nessuna azione da parte dell'utente.

## Topologia e instradamento

Z-Wave utilizza una topologia di rete mesh (a maglia) di tipo source-routed, in cui il percorso dei dati è definito dal nodo sorgente. Due sotto categorie di Nodi Slave sono i Routing Slave e i nodi Enhanced Routing Slave che possono contenere un certo numero di percorsi preconfigurati, che vengono assegnati loro dal controllore e pertanto sono capaci di iniziare una comunicazione. L'affidabilità di una rete Z-Wave deriva dal fatto che la trasmissione di un messaggio da un nodo all'altro può avvenire con una comunicazione radio diretta oppure in maniera indiretta appoggiandosi alla capacità dei nodi di funzionare da ripetitori; i nodi sono in grado di ritrasmettere i messaggi in modo da garantire la connettività creando una rete mesh con più percorsi possibili. In tal modo una rete Z-Wave può anche avere una estensione molto maggiore della portata radio di una singola unità. Infatti i dispositivi sono in grado di comunicare gli uni con gli altri usando i nodi intermedi per aggirare eventuali ostacoli o raggiungere quei nodi della rete Z-Wave fuori dalla portata diretta.

## Associazioni di dispositivi Z-Wave

Quando due nodi sono inclusi nella stessa rete è anche possibile associarli tra loro. La dicitura “A è associato a B” significa che A è sotto il controllo di B. Ad esempio: A potrebbe essere un dispositivo che comanda una lampada e B un sensore di luminosità che la fa accendere automaticamente. Le Associazioni sono state introdotte per permettere ai nodi che possono iniziare una comunicazione, di controllare un altro nodo della rete senza necessità dell'intervento di un controllore. In questo senso semplificano l'interazione tra due nodi e riducono il tempo fra l'invio del comando e l'intervento del dispositivo controllato. Ogni dispositivo può avere uno o più gruppi di associazione logicamente distinti fra loro. Le associazioni rendono la rete più veloce e più robusta perché una volta configurate tramite il controllore, non richiedono più il controllore stesso per funzionare: il controllore potrebbe essere anche spento e tutto funzionerebbe ugualmente.