Bentrovati amici smart,
oggi torniamo all'interno del viaggio verso una Smart Home Open focalizzandoci su uno degli argomenti più richiesti e, per certi versi, quasi indispensabili per chi vuole costruire una smart home con Home Assistant: l’installazione e la configurazione di una rete mesh Zigbee utilizzando due degli strumenti più amati, supportati e utilizzati dalla community: Zigbee2MQTT e Mosquito MQTT.
Cosa sono Zigbee2MQTT e Mosquitto MQTT
Brevemente, Zigbee2MQTT è un software/microservizio open source che permette di collegare dispositivi Zigbee a Home Assistant (o ad altre piattaforme) utilizzando il protocollo MQTT.
Mosquitto MQTT, a sua volta, è un altro software/microservizio open source che in parole povere funge da ponte di comunicazione tra Zigbee2MQTT e Home Assistant.
In questo modo, quando un dispositivo Zigbee cambia stato, lo comunica a Zigbee2MQTT tramite l’antenna coordinatore, Zigbee2MQTT pubblica l’evento di variazione nel broker Mosquitto MQTT, Home Assistant intercetta questa variazione e la gestisce al suo interno, ad esempio mostrandola nell’interfaccia o facendo partire un’automazione.
Se questi termini vi suonano nuovi o non sapete bene cosa sia una rete Zigbee, ho realizzato un video dedicato in cui la spiego in modo semplice. Vi lascio il link in descrizione. In alternativa, se preferite, scrivetemi in privato e vi invierò direttamente il link.
La guida sarà divisa in 4 parti
Per non mettere troppa carne al fuoco, questo argomento verrà suddiviso in 3 parti:
- In questa prima parte installeremo i due microservizi fondamentali: Zigbee2MQTT e il broker Mosquitto MQTT
- Nella seconda parte vedremo come configurarli e integrarli correttamente in Home Assistant
- Nella terza parte ci concentreremo sulla scelta e la configurazione dell’antenna Zigbee da utilizzare come coordinatore per la nostra rete mesh
- Nella quarta parte vedremo come agganciare il coordinatore a Zigbee2MQTT
Vi ricordo che tutti i temi trattati, compresi i comandi da eseguire, verranno pubblicati anche su dm-smartech.it tra due giorni.
Requisiti prima di iniziare
Inoltre, questa guida è rivolta a chi ha già seguito tutte le tappe precedenti del viaggio e dispone delle nozioni fondamentali ma anche di un Raspberry Pi o un mini computer con:
- Sistema operativo Linux
- Docker correttamente installato
- Docker Compose già configurato e pronto all’uso
Se non sapete cosa sia Docker, Docker Compose o non avete ancora completato questi passaggi, il consiglio è quello di partire dalla prima tappa del viaggio, così da costruire una base solida.
Ma bando alle ciance e iniziamo!
Per prima cosa, accediamo al terminale del Raspberry Pi tramite SSH, utilizzando qualsiasi dispositivo di vostra preferenza, come discusso nei video precedenti.
Se stiamo usando Windows:
- Apriamo PuTTY
- Inseriamo homeassistant.local oppure l’indirizzo IP del Raspberry Pi nel campo “Host Name”
- Infine clicchiamo su Open per avviare la connessione
Se stiamo usando macOS o Linux:
Apriamo il terminale e digitiamo il seguente comando seguito dal tasto invio:
ssh pi@homeassistant.local
oppure, se conosciamo l'indirizzo IP del Raspberry Pi, digitiamo:
ssh pi@indirizzo_ip_del_raspberry
Preparazione all'installazione dei container
Dopo esserci collegati, il mio consiglio, come prima cosa, è quello di aggiornare il sistema operativo.
Per aggiornare il Raspberry Pi OS, o linux in generale, è necessario procedere dal terminale eseguendo i seguenti comandi uno alla volta seguiti dal tasto invio.
sudo apt-get update
sudo apt-get upgrade -y
Una volta eseguiti, vedremo scorrere a video una serie di LOG. Questo processo potrebbe richiedere diversi minuti, attendiamo che finisca.
Al termine del processo, è sempre bene riavviare il sistema operativo per consentire al Raspberry Pi di finalizzare gli aggiornamenti. Quindi eseguiamo il seguente comando seguito dal tasto invio:
sudo reboot
Dopo il riavvio, accediamo nuovamente al terminale del Raspberry Pi tramite SSH e procediamo con l’installazione dei container di Zigbee2MQTT e Mosquitto MQTT.
Spostiamoci nella cartella in cui si trova il file docker-compose.yaml, che, per chi ha seguito la configurazione da me esposta nei video precedenti, dovrebbe essere contenuto all'interno del seguente percorso:
/home/pi/homeassistant_hub/docker-config
Pertanto spostiamoci nel percorso appena visot eseguendo il seguente comando seguito dal tasto Invio:
cd /home/pi/homeassistant_hub/docker-config
Editiamo il file docker-compose.yaml eseguendo il seguente comando seguito dal tasto invio:
sudo nano docker-compose.yaml
All'interno del file aggiungiamo in coda i seguenti blocchi di configurazione sotto il nodo services:
mosquitto:
container_name: mosquitto
image: eclipse-mosquitto
volumes:
- /home/pi/homeassistant_hub/addons/mosquitto/config:/mosquitto/config
- /home/pi/homeassistant_hub/addons/mosquitto/log:/mosquitto/log
- /home/pi/homeassistant_hub/addons/mosquitto/data/:/mosquitto/data
restart: always
ports:
- 1883:1883
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt
volumes:
- /home/pi/homeassistant_hub/addons/zigbee2mqtt:/app/data
# devices:
# - /dev/serial/by-id/ID_COORDINATORE:PERCORSO_ESPOSTO_AL_CONTAINER
environment:
- TZ=Europe/Rome
network_mode: host
restart: always
allo stesso livello di home_assistant, esattamente come possiamo vedere di seguito:
services:
home_assistant:
container_name: home-assistant
image: ghcr.io/home-assistant/home-assistant:stable
volumes:
- /home/pi/homeassistant_hub/homeassistant/config:/config
- /home/pi/homeassistant_hub/homeassistant/media:/media
- /run/dbus:/run/dbus:ro
environment:
- TZ=Europe/Rome
- DISABLE_JEMALLOC=true
network_mode: host
restart: always
privileged: true
mosquitto:
container_name: mosquitto
image: eclipse-mosquitto
volumes:
- /home/pi/homeassistant_hub/addons/mosquitto/config:/mosquitto/config
- /home/pi/homeassistant_hub/addons/mosquitto/log:/mosquitto/log
- /home/pi/homeassistant_hub/addons/mosquitto/data/:/mosquitto/data
restart: always
ports:
- 1883:1883
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt
volumes:
- /home/pi/homeassistant_hub/addons/zigbee2mqtt:/app/data
# devices:
# - /dev/serial/by-id/ID_COORDINATORE:PERCORSO_ESPOSTO_AL_CONTAINER
environment:
- TZ=Europe/Rome
network_mode: host
restart: always
Al termine, salviamo il file docker-compose.yaml premendo in sequenza e mantenendo premuto CTRL + O. In basso ci verrà chiesta una conferma di salvataggio, diamo invio per confermare. Successivamente chiudiamo l'editor premendo in sequenza e mantenendo premuto CTRL + X.
Avvio dei container e conclusione
Per installare i nuovi servizi/container appena inseriti eseguiamo il seguente comando seguito dal tasto invio
sudo docker compose up -d
vedremo scorrere a video una serie di LOG di avanzamento, attendiamo che finiscano.
Al termine, se tutto è andato a buon fine, i servizi saranno installati ma non ancora eseguibili perchè necessitano di una configurazione che vedremo nel prossimo video
Bene amici smart, anche per oggi è tutto.
Come sempre se vi fa piacere seguitemi per altri contenuti, attivate la campanella e lasciate un like al video.