In che modo Home Assistant coordina Zigbee2MQTT con il Core?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Home Assistant coordina Zigbee2MQTT tramite MQTT, invece di trattare Zigbee2MQTT come parte di Home Assistant Core. Zigbee2MQTT gestisce il coordinatore Zigbee e l'interazione con la rete mesh, un broker MQTT trasporta i messaggi e l'integrazione MQTT di Home Assistant trasforma i topic di discovery e di stato in entità utilizzabili dalle automazioni.

Questa separazione è potente perché il trasporto Zigbee, l'instradamento dei messaggi e la logica domotica possono essere riavviati o spostati indipendentemente. Crea però anche una catena di dipendenze composta da tre servizi: un dispositivo Zigbee può funzionare correttamente mentre Home Assistant lo mostra come non disponibile se Zigbee2MQTT, il broker, la discovery o i messaggi di disponibilità presentano problemi.

Zigbee2MQTT gestisce la comunicazione con i dispositivi dal lato radio

Zigbee2MQTT comunica con il coordinatore, mantiene le definizioni dei dispositivi Zigbee, riceve i report dalla rete mesh e li converte in messaggi MQTT. Home Assistant non deve accedere direttamente al coordinatore quando quest'ultimo è gestito da Zigbee2MQTT.

La guida all'integrazione di Zigbee2MQTT con Home Assistant spiega che la discovery MQTT è il metodo standard per creare automaticamente dispositivi ed entità Zigbee2MQTT in Home Assistant.

Questo confine di responsabilità è importante durante il ripristino. Il riavvio di Home Assistant non dovrebbe richiedere il nuovo abbinamento della rete mesh Zigbee e il riavvio di Zigbee2MQTT non dovrebbe cancellare le automazioni di Home Assistant che fanno riferimento a identità stabili delle entità.

Il broker MQTT è il confine dei messaggi tra i due servizi

Zigbee2MQTT pubblica lo stato dei dispositivi e le informazioni sul bridge nei topic MQTT. Home Assistant si iscrive ai topic pertinenti e pubblica i comandi quando un'automazione o un utente modifica un dispositivo.

Il broker MQTT è il confine dei messaggi perché Zigbee2MQTT pubblica i messaggi nei topic, mentre Home Assistant si iscrive ai topic necessari e pubblica i comandi attraverso lo stesso broker. Una guida aggiornata sull'architettura MQTT spiega come publisher e subscriber rimangano disaccoppiati mentre il broker instrada tra loro i messaggi basati sui topic.

Se il broker si arresta, la rete mesh Zigbee può continuare a esistere mentre la visualizzazione in Home Assistant smette di aggiornarsi. Diagnostica il broker separatamente dal coordinatore e da Core.

La discovery descrive le entità; i topic di stato le mantengono aggiornate

I messaggi di discovery indicano a Home Assistant quale entità deve esistere, quali topic forniscono lo stato e i comandi, a quale dispositivo appartiene e come interpretare i valori. Una volta creata, l'entità viene mantenuta aggiornata dai normali messaggi di stato.

Un ricaricamento o un riavvio può far emergere errori in questo punto. Un caso della community di Home Assistant documenta come le entità rilevate tramite MQTT possano rimanere non disponibili quando il percorso previsto di nuova discovery o di stato persistente non viene ricostruito correttamente.

Usa ID univoci stabili e una strategia deliberata per la nuova discovery. Ricreare le entità con nuove identità dopo ogni modifica al bridge danneggia dashboard, continuità dello storico e automazioni, anche se il dispositivo Zigbee fisico non è cambiato.

-15% OFF

La disponibilità è un segnale distinto dallo stato del dispositivo

Uno stato come ON indica a Home Assistant l'ultimo valore segnalato; non dimostra che Zigbee2MQTT o il dispositivo siano attualmente raggiungibili. I topic di disponibilità forniscono un contratto separato di operatività.

La disponibilità in Zigbee2MQTT tratta in modo diverso i dispositivi alimentati dalla rete elettrica e quelli a batteria, perché i dispositivi passivi non possono essere interrogati su richiesta. La documentazione aggiornata specifica che i dispositivi attivi utilizzano finestre di controllo più brevi e una logica di ping e backoff, mentre quelli passivi si basano su finestre di controllo molto più lunghe. La disponibilità deve quindi essere interpretata separatamente dall'ultimo stato persistente.

Non attivare azioni critiche per la sicurezza basandoti su uno stato obsoleto senza considerare la disponibilità. Un valore persistente può essere utile per la ricostruzione, pur rappresentando un dispositivo attualmente offline.

L'ordine di avvio dovrebbe ricostruire il contratto, non dipendere dalla fortuna

La sequenza di avvio corretta non consiste semplicemente in «prima il broker, poi Zigbee2MQTT e infine Home Assistant». I servizi possono avviarsi in ordini diversi, quindi il contratto di messaggistica deve tollerare le riconnessioni. Zigbee2MQTT dovrebbe riconnettersi al broker, la discovery dovrebbe diventare disponibile, Home Assistant dovrebbe iscriversi e lo stato corrente dovrebbe essere ripubblicato o mantenuto come previsto.

Gli esempi di eventi per la casa intelligente di ZimaSpace mostrano come MQTT permetta ai servizi per la casa intelligente di scambiarsi eventi locali senza condividere lo stesso processo o lo stesso server fisico. Zigbee2MQTT è un esempio concreto di questo disaccoppiamento.

Livello Responsabilità principale Segnale di errore
Zigbee2MQTT Rete mesh Zigbee e traduzione dei dispositivi Nessun nuovo messaggio Zigbee
Broker MQTT Consegna dei messaggi tra i servizi Il percorso di pubblicazione/sottoscrizione non funziona
MQTT di Home Assistant Discovery delle entità e mappatura dello stato Entità mancanti o non disponibili
Automazioni/Core Regole e chiamate ai servizi L'entità funziona, ma la logica dell'azione non funziona

FAQ

Zigbee2MQTT richiede che Home Assistant rimanga attivo per mantenere in funzione la rete Zigbee?

No. Zigbee2MQTT gestisce la rete Zigbee dal lato del coordinatore. Home Assistant è un consumer e una sorgente di comandi tramite MQTT. Home Assistant può essere offline mentre il servizio Zigbee2MQTT e il broker rimangono in esecuzione.

Perché le entità Zigbee2MQTT diventano non disponibili dopo il riavvio del broker o di Home Assistant?

Di solito perché la discovery, lo stato persistente, la disponibilità o i messaggi di riconnessione non hanno ancora ricostruito completamente il contratto MQTT. Controlla lo stato del bridge Zigbee2MQTT, la connettività del broker, i topic di discovery e la disponibilità delle entità prima di associare nuovamente i dispositivi.

Hub Tecnologico e AI

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.