community italiana di domotica personale
 
Installare e configurare ZigBee2MQTT su Home Assistant OS/Supervised

Installare e configurare ZigBee2MQTT su Home Assistant OS/Supervised

SCOPI DELLA GUIDA:
  • Installare e configurare il BRIDGE/Gateway ZigBee2MQTT su Home Assistant OS/Supervised, dotandosi così di una rete Zigbee per la propria domotica personale
  • Livello di difficoltà: medio/basso
CONCETTI AFFRONTATI:
  • Utilizzo e configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
  • Il computer sul quale è in esecuzione Home Assistant
  • Un’antenna coordinator Zigbee compatibile con ZigBee2MQTT, fisicamente collegata o decentrata (illustrato a seguire)
GUIDA INDICATA a UTENTI CON ISTALLAZIONE:
Ambienti Home Assistant HassOS-Supervised
NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • gli articoli di inDomus sono totalmente indipendenti e non sponsorizzati. Se mai questo cambiasse, verrà segnalato chiaramente sulle pagine oggetto di sponsorizzazione;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • se hai bisogno di orientarti, c'è la mappa.
Revisione guida: 2.9

ZigBee2MQTT - HASSIO

Abstract

ZigBee, uno degli standard più adottati in domotica personale.

Spesso l’interoperabilità tra componenti basati su questo protocollo ma di diverse tipologie e diversi produttori rappresenta un problema. Esistono infatti interessantissimi componenti ma di linee molto diverse tra loro e, non potendo pensare di acquistare un BRIDGE/Gateway per ciascuna delle linee prodotti, spesso ci si trova davanti alla scelta di doversi “accontentare” di una linea prodotti rinunciando magari ad altri singoli componenti che ci interesserebbe introdurre in domotica.

Altro prodotto di questa situazione è, spesso, l’impossibilità di integrare il BRIDGE/Gateway (e quindi i componenti ZigBee ad esso collegati) col proprio HUB personale, come nel caso di quello della linea LUMI Aqara – non fosse che, per fortuna, i componenti (validissimi) di questa linea sono gestibili anche dal gateway Xiaomi Mijia, il quale è integrabile con Home Assistant. Quando dei componenti ZigBee non sono altrimenti controllabili se non col “proprio” gateway (magari non integrabile col nostro Home Assistant), in sostanza diventano inutili, se non nell’ambito del proprio ecosistema e della propria app mobile.

Per salvare capra e cavoli esistono varie possibilità, tra le quali quelle di implementare presso la nostra domotica un BRIDGE/Gateway software avulso dalle logiche dei singoli produttori.

Tra le varie alternative, è il caso di ZigBee2MQTT, oggetto della presente guida, componente software Open Source che consente per l’appunto di dotarsi gratuitamente di un BRIDGE/Gateway piuttosto evoluto per la gestione della propria rete ZigBee: una volta installato, tale BRIDGE/Gateway utilizza MQTT per instradare i messaggi da e per i componenti ZigBee tramite esso gestiti.

Va da sé che essendo MQTT un veicolo ideale per l’integrazione, sarà poi facile riuscire ad integrare il tutto con i più comuni HUB personali.

Scopo della presente guida è quello di installare e configurare ZigBee2MQTT come add-on presso Home Assistant (installato in modalità HassOS/Supervised). 

Altre guide disponibili su inDomus dedicate a ZigBee2MQTT sono:

Si parte

Assunti

Questa guida è dedicata a chi abbia già in uso l’HUB Home Assistant OS (aka HassOS, o HASSIO) o Home Assistant Supervised.
Il computer ospitante l’HUB può essere qualsiasi, dal tradizionale Raspberry Pi, un Mini PC a un computer vero e proprio, o altro.

Si assume altresì che eventuali altri BRIDGE/Gateway software o comunque software che utilizzino l’antenna coordinator che utilizzeremo per ZigBee2MQTT (ZHA, deCONZ o altri) siano stati preventivamente fermati.

Le guide disponibili su inDomus per installare HassOS sono:

ZigBee coordinator (l’antenna)

Prima cosa, ancor prima di avventurarsi nell’installazione del BRIDGE/Gateway software, è l’implementazione dell’antenna, ovvero del componente cardine di una rete mesh ZigBee: il cosiddetto ZigBee coordinator. Tale elemento è rappresentato da un’antenna interfacciata al computer ospitante ZigBee2MQTT via USB, via seriale oppure decentrata, gestita remotamente via LAN/Wi-Fi (o altro).

ZigBee2MQTT supporta molte antenne diverse, tra le quali abbiamo documentato e testato:

Antenna coordinator Caratteristiche
ConBee II dongle USB, di medio/bassa potenza, stack 3.0, supporta fino a 200 componenti ZigBee, già pronta all'uso, compatibile anche con il BRIDGE/Gateway software deCONZ e ZHA
🔆 ITEAD Sonoff ZigBee 3.0 Dongle Plus v2 (ZBDongle-E) dongle USB, segnale molto potente, stack 3.0, supporta fino a 200 componenti ZigBee, già pronta all'uso. Compatibile anche con il BRIDGE/Gateway software ZHA di Home Assistant e utilizzabile contemporaneamente anche per Matter over Thread (tramite firmware RCP)
SkyConnect sostanzialmente identica alla precedente ZBDongle-E, ma senza antenna esterna (quindi meno potente in termini di trasmissione radio)
Z-Bee Duo "quella di Giovanni", fatta a mano, dongle USB, piuttosto potente e versatile basato su stack 3.0
USB Stick CC2652P dongle USB, abbastanza potente e versatile, stack 3.0, supporta fino a 200 componenti ZigBee, già pronta all'uso
RaspBee II HAT specifico per Raspberry Pi, non particolarmente potente, supporta fino a 200 componenti ZigBee, già pronta all'uso, compatibile anche con il BRIDGE/Gateway software deCONZ.
CC2531 dongle USB, non troppo potente, molto economica, da riprogrammare manualmente - sconsigliato per obsolescenza
CC2530 seriale, poco potente, molto economica, da riprogrammare manualmente - sconsigliato per obsolescenza
CC2538 PCB e HAT specifico per Raspberry Pi
Bitronvideo QIVICON Homebase dongle USB
🔆 Sonoff ZigBee Bridge Pro (ZB Bridge-P) utilizzabile come antenna coordinator decentrata, via firmware ZigBee2Tasmota: è infatti un'antenna non collegata fisicamente all'host che ospita ZigBee2MQTT, ma via Wi-Fi (quindi posizionabile dove meglio si crede nell'ambiente, al fine di posizionare il "centro stella" in un luogo magari più consono)

e svariate altre. 

N.b. Sul tema “potenza” si disquisisce quotidianamente nei salotti di domotica quale argomento principe. Parlare di potenza trasmissiva ha talvolta poco senso: le reti mesh come ZigBee sono concepite per esser ripetute e non per aver un singolo nodo di potenza massima che provveda a coprire tutta la superficie – la differenza vera semmai la fa, piuttosto, l’affidabilità del componente. In caso di ambienti ampi e/o con muri spessi, se i componenti ZigBee risultano irraggiungibili la scelta dell’antenna può quindi non essere legata alla sua potenza: basta infatti introdurre, oltre all’antenna principale, dei repeater ZigBee (banalmente, bastano delle lampadine per illuminazione ZigBee, le quali hanno anche questa funzione – anche da “spente” – come le Philips HUE, le IKEA e molte alte) per garantirsi una copertura più che ottimale.

È quindi necessario installare correttamente l’antenna (se è un dongle USB basta inserirlo nella porta del computer host dopodiché appurare che il sistema operativo “veda” tale device) oppure fare sì che l’antenna decentrata scelta sia correttamente configurata e pronta a recepire comunicazioni (eg. Sonoff ZigBee Bridge Pro con firmware Tasmota). Nel caso di un’antenna fisicamente collegata via USB, spesso è necessario collegarla e poi effettuare un reboot di Home Assistant OS (voce di menu “Configurazione” > “Sistema” > “Hardware” > “Riavvia l’host“).

FIRMWARE COORDINATOR
Prima di iniziare a utilizzare la propria antennza coordinator, si consiglia di provvedere all'eventuale aggiornamento firmware. Non potendo documentare qualunque procedura per qualunque antenna, abbiamo documentato quelle che seguono. Antenne fisicamente collegate all'host: Antenne decentrate (collegate per esempio via LAN/Wi-Fi):
N.b. L'aggiornamento potrebbe anche non essere necessario (magari la versione del firmware è già quella più recente), ma è bene controllare prima di procedere. Nel caso delle antenne coordinator decentrate, solitamente è necessario.
VERIFICA POST-INSTALLAZIONE
IMPORTANTE: Se il coordinator scelto non è un’antenna fisicamente collegata all’host ospitante ZigBee2MQTT, questo paragrafo può essere saltato per passare a quello successivo (“Broker e client MQTT”).

Sono da considerarsi “non fisicamente collegate” anche quelle che magari lo sono, ma in effetti sono gestite tramite software intermedi come Silicon Labs Multiprotocol, come per esempio una Sonoff ZBDongle-E con firmware Multi-PAN (RCP).

Dopo aver aggiornato il firmware dell’antenna, averla collegata (in caso sia USB) aver riavviato l’host, accedere a Home Assistant e, presso la voce di menu “Sistema” > “Host” > “Hardware” (menu puntini) verificare se, nell’elenco dell’hardware installato, appaia o meno il componente, solitamente una voce specifica; nel caso di un’antenna CC2531, per esempio, appare una voce di questo tipo:

/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B00076887D9-if00

In caso appaia l’installazione sarà considerata valida; segnarsi la stringa da una parte, servirà più avanti.

N.b. A volte l’antenna viene semplicemente riconosciuta come /dev/ttyAMAx (ed è meglio usare questa connotazione).

Broker e client MQTT

Come suggerisce il nome, il software ZigBee2MQTT, per funzionare, necessita della presenza di un broker MQTT sulla rete locale sulla quale il computer che lo esegue è connesso, nonché la presenza delle funzionalità client MQTT presso Home Assistant.

Per configurare broker e/o client MQTT su Home Assistant OS/Supervised, si faccia riferimento a questa guida.

N.b. Procedere nella presente guida senza aver provveduto a installare correttamente broker e client MQTT causerà, ovviamente, un malfunzionamento di ZigBee2MQTT.
Vetrina

Installare ZigBee2MQTT

A questo punto, con MQTT funzionante e antenna installata è possibile provvedere all’installazione di ZigBee2MQTT, il quale viene eseguito come processo tramite l’aggiunta di un add-on Home Assistant OS/Supervised. Si tratta, però, di un add-on custom pertanto non nativamente disponibile presso l’add-on store di Home Assistant OS/Supervised.

Per installare l’add-on, cliccare, presso il menu, la voce:

  • Configurazione” > “Componenti aggiuntivi”  e poi sul pulsante “Raccolta di componenti aggiuntivi“.

Si tratta di accedere ad una vera e propria “vetrina” di componenti aggiuntivi (gratuiti) che, proprio come mattoncini da costruzioni, andranno ad arricchire le funzionalità del nostro HUB. Per installarlo è dunque primariamente necessario aggiungere un repository alla lista di quelli già presenti, nello specifico questo indirizzo:

https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

Per farlo, recarsi alla voce di menu (i tre puntini in alto a destra) “Archivi digitali” > “Aggiungi“.

Immediatamente dopo nella lista degli add-on disponibili apparirà anche la voce “zigbee2mqtt”. Cliccarci sopra per accedere alla scheda di dettaglio, poi cliccare su “INSTALLA“:

zigbee2mqtt HASSIO add-on - installazione

Al termine dell’installazione, non avviare l’add-on: è necessario, prima, configurarlo.

Configurare ZigBee2MQTT

La configurazione di ZigBee2MQTT non è particolarmente complessa ma importante. È in questa fase, infatti, che si definisco le caratteristiche di connessione del BRIDGE/Gateway da esso rappresentato verso la rete ZigBee e verso il broker MQTT.

Tale configurazione si effettua sempre dalla pagina di dettaglio dell’add-on ZigBee2MQTT; presso la sezione “Configurazione“, cliccando poi sui tre puntini in alto a destra, infine alla voce “Modifica in YAML“, l’add-on riporta una configurazione di default pressapoco così:

# Autodiscovery su Home Assistant abilitato
homeassistant: true
# Join alla rete MQTT disabilitato di default
permit_join: false
# MQTT settings
mqtt:
  # MQTT base topic per i messaggi di zigbee2mqtt
  base_topic: zigbee2mqtt
  # MQTT server - URL (indirizzo LAN)
  server: 'mqtt://IP_DEL_BROKER_MQTT'
  # MQTT server - Parametri di autenticazione (decommentare e popolare correttamente se si utilizzano credenziali per la connessione al broker MQTT
  user: username
  password: password
  version: 5
  include_device_information: true
serial:
  # Porta su cui è mappata l'antenna zigbee
advanced:
  # Directory in cui verrà salvato il file di log
  log_directory: /var/log
experimental: {}
frontend:
  # porta su cui verrà esposta la webGUI
  port: 8080
ota:
  update_check_interval: 10
disable_automatic_update_check: false
I campi da personalizzare sono, principalmente:
  • "homeassistant";
  • "server";
  • "user" e "password";
  • "serial".
Il campo homeassistant nella configurazione proposta è impostato a true. Tale impostazione fa sì che - laddove lato Home Assistant l'integrazione MQTT abbia attiva "l'auto identificazione" (autodiscovery), questo fa sì che ogni qual volta venga associato un nuovo componente a ZigBee2MQTT automaticamente vengano create le relative entità lato Home Assistant. Se si adotta ZigBee2MQTT per usarlo con Home Assistant, il nostro consiglio è di lasciare inizialmente tale campo a false, così da concedere all'utente la possibilità di di definire eventualmente la proprie entità a mano (in ottica di "pulizia" e di maggiore versatilità). Diversamente, lasciare true.  Nel campo "server" va indicato il nostro broker MQTT: se si usa un proprio broker presente sulla rete, sarà ovviamente necessario indicare in questo campo l'indirizzo IP corretto; diversamente, se si è seguita la nostra guida per installare Mosquitto Broker, allora sarà necessario indicare semplicemente "mqtt://core-mosquitto" su Home Assistant Core/Supervised o "mqtt://ip-del-broker-mqtt" sulle altre installazioni (eg. su Docker). Nei campi "user" e "password", invece, è necessario indicare le credenziali d'accesso al broker MQTT, indipendentemente da dove esso sia in esecuzione. Infine, nel campo "port" indicare la porta precedentemente identificata. In ultimo, si noti il campo finale, "frontend", presso il quale è indicata al porta TCP/IP (tipicamente la 8080) presso la quale risponderà l'interfaccia web di gestione di ZigBee2MQTT.

PORTE COORDINATOR

La porzione in rosso nella configurazione di cui sopra (campo "serial") è particolarmente critica, perché prevede configurazioni specifiche in base al coordinator in uso. Se si sbaglia tale configurazione, il BRIDGE/Gateway non partirà. Vediamo alcune configurazione specifiche:

Phoscon ConBee o RaspBee II

Se si utilizza un'antenna ConBee II o RaspBee II, aggiungere questa porzione:
serial:
  port: /dev/ttyXXX
  adapter: deconz
dove /dev/ttXXX va sostituito con la porta logica assegnata al coordinator e individuata precedentemente.

Sonoff ZBDongle-E con firmware NCP

Se invece si usa la ITEAD Sonoff ZigBee 3.0 USB Dongle Plus v2 (ZBDongle-E)  con firmware NCP (di fabbrica),  aggiungere questa:
serial:
  port: /dev/ttyXXX
  adapter: ezsp 
dove /dev/ttXXX va sostituito con la porta logica assegnata al coordinator e individuata precedentemente.

Sonoff ZBDongle-E con firmware RCP

Se invece si utilizza il firmware MultiPan RCP per l'uso contemporaneo anche dello standard Thread (consigliato), la configurazione cambia; l'abbiamo spiegata qui.

Sonoff ZigBee Bridge Pro (ZB Bridge-P)

Dopo aver provveduto alla configurazione del firmware Tastmota sul coordinator, la configurazione è la seguente:
port:
 tcp://indirizzo_ip_tasmota:8888
dove indirizzo_ip_tasmota va sostituito con l'indirizzo IP assegnato (staticamente) al coordinator dotato di firmware Tasmota.
Ulteriori dettagli relativi alle configurazioni (queste o altre possibili) sono forniti qui.

Una volta terminata la configurazione, cliccare su “SAVE” e poi, sopra, su “START“: il BRIDGE/Gateway andrà in esecuzione:

zigbee2mqtt HASSIO add-on

Si consiglia vivamente di attivare il Watchdog (il quale provvede a riavviare l’add-on in caso di crash) e, per comodità, la presenza in sidebar (“Show in sidebar“).

VERIFICA

Per verificare che tutto sia andato per il verso giusto, recarsi sul fondo della pagina e cliccare “REFRESH” nel box “Log“: se è tutto ok, dovrebbe apparire un log “verde” che, sostanzialmente, identifica un corretto avvio di ZigBee2MQTT e un’avvenuta connessione col broker MQTT.

ATTENZIONE: se l’avvio va in errore, fermare l’add-on, modificare il campo “port” della configurazione indicando il percorso individuato installando l’antenna, salvare e provare ad avviarlo.

Congratulazioni: ZigBee2MQTT è ora operativo.

Uso

A questo punto il BRIDGE/Gateway ZigBee2MQTT è pronto e utilizzabile al fine di integrare componenti ZigBee compatibili con tale software, alcuni dei quali da noi testati e recensiti in dettaglio.


Ogni componente compatibile, una volta associato a ZigBee2MQTT, può essere comandato e censito tramite MQTT e amministrato attraverso la sua interfaccia web. Ovviamente, il passo successivo è quello di integrare ZigBee2MQTT col proprio HUB personale, al fine di utilizzare le risorse delle varie componenti ZigBee all’interno della propria domotica personale.

N.b. ATTENZIONE: tramite l’interfaccia web (il “frontend”) è anche possibile definire il canale radio da utilizzare. Non è affatto un argomento secondario: “sbagliarlo” significa incappare quasi sicuramente in problemi di interferenza (e quindi di fruizione degli end-device wireless). Per approfondire il tema, si consiglia la lettura di questo FOCUS.

In caso il proprio HUB personale sia il diffusissimo Home Assistant è possibile integrare ZigBee2MQTT ad esso (e con lui quindi le componenti ZigBee da controllare) sia tramite una modalità automatica che una manuale. Tali tecniche sono descritte in questa guida.
Analogamente, altri HUB o servizi possono utilizzare MQTT per interfacciarsi rapidamente con ZigBee2MQTT.

⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui.

Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito. Se ti sei perso, a tua disposizione c'è la mappa.