Docker Compose
Come installare Zigbee2MQTT con Docker Compose
Installa Zigbee2MQTT in Docker, collega un coordinatore USB con percorso stabile, configura Mosquitto MQTT e abilita la scoperta automatica in Home Assistant.
Prerequisiti & Hardware Necessario
- Hardware: host Linux con Docker Engine, un coordinatore Zigbee USB compatibile con Zigbee2MQTT e una rete locale stabile. Il coordinatore è hardware radio; Zigbee2MQTT è il software che lo controlla.
- Software: Docker Compose v2, Eclipse Mosquitto già funzionante e Home Assistant con integrazione MQTT. Zigbee2MQTT richiede un broker MQTT: non comunica direttamente con Home Assistant.
- USB: collega il dongle direttamente al server oppure usa una prolunga USB schermata per allontanarlo da USB 3 e interferenze. Non usare un hub non alimentato per un coordinatore instabile.
- Accesso: privilegi
sudo, directory persistente e identificativo seriale del dongle. Per un host Raspberry Pi 5 puoi usare un Raspberry Pi 5 4GB con alimentatore ufficiale.
Procedura passo-passo
- Identifica il coordinatore sul sistema host.
ls -l /dev/serial/by-id/ lsusbUsa il percorso completo
/dev/serial/by-id/..., non un nome volatile come/dev/ttyUSB0o/dev/ttyACM0. - Crea la directory dati.
sudo install -d -m 0755 /opt/zigbee2mqtt/data cd /opt/zigbee2mqtt - Crea
/opt/zigbee2mqtt/compose.yaml. Sostituisci il percorso del device e l’IP/hostname MQTT:services: zigbee2mqtt: container_name: zigbee2mqtt image: ghcr.io/koenkk/zigbee2mqtt:latest restart: unless-stopped volumes: - /opt/zigbee2mqtt/data:/app/data - /run/udev:/run/udev:ro ports: - "8080:8080" environment: TZ: Europe/Rome devices: - /dev/serial/by-id/USB_COORDINATORE_REALE:/dev/ttyACM0Il percorso a sinistra è quello dell’host;
/dev/ttyACM0è il nome interno al container. - Configura Zigbee2MQTT. In
/opt/zigbee2mqtt/data/configuration.yamlinserisci valori coerenti con il broker e il firmware del coordinatore:homeassistant: enabled: true frontend: enabled: true mqtt: server: mqtt://IP_O_HOSTNAME_MOSQUITTO:1883 user: zigbee2mqtt password: PASSWORD_MQTT base_topic: zigbee2mqtt serial: port: /dev/ttyACM0 adapter: zstackadapter: zstackè solo un esempio: usaember,deconz,zigate,zbosso altro valore previsto dal tuo coordinatore e firmware. - Avvia il container.
cd /opt/zigbee2mqtt docker compose config docker compose up -d docker compose ps docker compose logs --tail=100 zigbee2mqtt - Completa la configurazione dal frontend. Apri
http://IP_DEL_SERVER:8080. Se l’onboarding richiede dati mancanti, conferma broker MQTT, porta, utente, password e porta seriale. Non cambiare il canale Zigbee dopo aver associato dispositivi senza pianificare la rete. - Configura MQTT in Home Assistant. Vai in Impostazioni → Dispositivi e servizi → Aggiungi integrazione → MQTT e usa lo stesso broker, porta e credenziali. Con
homeassistant.enabled: true, Zigbee2MQTT pubblica discovery e Home Assistant può creare automaticamente dispositivi ed entità. - Abbina un dispositivo Zigbee di prova. Apri il frontend Zigbee2MQTT, abilita temporaneamente l’inclusione, metti un sensore in pairing e poi disabilita l’inclusione. Verifica che il device compaia sia in Zigbee2MQTT sia in Home Assistant.
- Aggiorna con cautela. Esegui un backup di
/opt/zigbee2mqtt/data, quindi
Non cancellare la directory dati: contiene rete, pairing e configurazione.cd /opt/zigbee2mqtt docker compose pull zigbee2mqtt docker compose up -d zigbee2mqtt docker compose logs --tail=100 zigbee2mqtt
Verifica del funzionamento
La configurazione è corretta quando il container è Up, il log mostra il coordinatore aperto senza errori seriali, il frontend risponde sulla porta 8080 e un dispositivo abbinato viene pubblicato su MQTT e scoperto da Home Assistant. Riavvia il server e verifica che Zigbee2MQTT torni attivo con la stessa rete e gli stessi dispositivi.
Problemi comuni
| Problema | Causa | Soluzione |
|---|---|---|
| USB adapter discovery error | Device non mappato o percorso errato | Controlla /dev/serial/by-id, il mapping Compose e serial.port interno. |
| Adapter già in uso | Un altro servizio, ZHA o un secondo Zigbee2MQTT usa lo stesso coordinatore | Spegni l’altra integrazione; un coordinatore non può essere usato contemporaneamente da due stack. |
| MQTT connection refused | Host broker errato, credenziali errate o porta non raggiungibile | Prova il broker con un client MQTT e verifica porta 1883, utente e password. |
| Nessuna discovery in Home Assistant | Integrazione MQTT assente o homeassistant.enabled disattivato | Configura MQTT in Home Assistant e abilita la discovery Zigbee2MQTT. |
| Rete Zigbee instabile | Interferenze USB 3, alimentazione scarsa o coordinatore vicino al server | Usa prolunga USB, allontana il dongle e verifica alimentazione e log radio. |
FAQ essenziali
Posso usare Zigbee2MQTT e ZHA insieme?
Sì solo con coordinatori separati e reti Zigbee indipendenti. Non collegare lo stesso coordinatore a ZHA e Zigbee2MQTT contemporaneamente.
Devo usare il tag latest?
È semplice ma segue gli aggiornamenti. Per produzione, esegui backup e valuta un tag di versione specifico dopo aver controllato compatibilità di coordinatore, firmware e Home Assistant.
Prodotti consigliati
Hardware pertinente alla guida
I collegamenti portano alle pagine dei prodotti indicati. Il prezzo Amazon, quando disponibile, proviene dall’API ufficiale ed è aggiornato con data e ora; prezzo e disponibilità finali sono quelli della pagina Amazon.