community italiana di domotica personale
 
Configurare MQTT (broker & client) su Home Assistant

Configurare MQTT (broker & client) su Home Assistant

Scopi della guida:
  • Dotarsi di un server broker MQTT per la propria LAN e/o configurare le funzionalità client MQTT su Home Assistant
  • Livello di difficoltà: bassa
  • Categoria d’integrazione: Local Push
Concetti affrontati:
  • Configurazione software
Componenti software utilizzate:
Prerequisiti:
Dispositivi fisici utilizzati:
Guida indicata per utenti con installazione:
Ambiente Home Assistant HassOS-Supervised-Core
NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed 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;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In presenza di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat.
Revisione guida: 1.9

MQTT Logo

😊  QUESTA GUIDA È PARTE DEL NOSTRO PERCORSO GUIDATO ALL’INSTALLAZIONE E CONFIGURAZIONE di HOME ASSISTANT.

Abstract

MQTT (Message Queue Telemetry Transport) è uno degli standard più apprezzati in domotica personale. Il perché molto semplice: non è particolarmente difficile da capire e utilizzare, è estremamente versatile, leggero, e consente di controllare, gestire e più genericamente comunicare con una moltitudine di componenti (fisici e virtuali) che supportino tale standard.

Home Assistant, dal canto suo, è forse l’HUB personale software oggi più conosciuto e adottato in tutto il mondo: consente di realizzare in proprio una domotica estremamente ricca, versatile, robusta a partire dai più disparati componenti e servizi disponibili sul mercato. Un “ponte di comando” che consente realmente di evolvere in modo marcato la propria realtà domestica.

MQTT, come saprà chi lo conosce (e chi non lo conosce, legga qui), utilizza la rete LAN domestica (quindi Wi-Fi e cablata) e si basa sostanzialmente su due componenti: il server BROKER, che fa da “smistatore” per i messaggi MQTT da e per i componenti che utilizzano lo standard e i CLIENT, ovvero ogni componente che voglia inviare o ricevere, tramite il broker, dei messaggi MQTT.

Home Assistant, quando controlla componenti e riceve da essi delle telemetrie tramite MQTT, agisce anch’esso da CLIENT: invia come tutti i client dei messaggi (comandi) MQTT; quando riceve delle telemetrie, è perché presso il BROKER si è iscritto, in quanto client, alle telemetrie che gli interessano.

Questa guida illustra quindi come dotarsi di un BROKER che serva la propria rete LAN e come configurare Home Assistant come CLIENT affinché possa inviare comandi/ricevere telemetrie MQTT.

N.b. La presenza di un broker MQTT e l’attivazione delle funzionalità client lato Home Assistant consentono a quest’ultimo di utilizzare una grande quantità di piattaforme di integrazione basate su MQTT, cosa essenziale per riuscire a integrare componenti domotiche che utilizzino questo standard (per esempio i componenti dotati di firmware Tasmota).

Su MQTT, le schede formative presenti sul sito sono le seguenti:

L’elenco completo delle varie schede che toccano il tema MQTT (guide, progetti, ecc.) è disponibile qui.

Si parte

Broker

Il broker, come noto, è una piccola componente server che, installata su un computer qualunque presente in rete LAN, funge da smistatore per i messaggi MQTT dei client che siano collegati ad esso. I client possono sia pubblicare messaggi sia iscriversi alla ricezione di specifici messaggi telemetrici pubblicati da altri. Le mimiche di interscambio sono piuttosto semplici (ma funzionali) e sono spiegate sulla scheda dedicata a MQTT.

N.b. In realtà il broker MQTT potrebbe trovarsi anche all’esterno della propria rete, magari su Internet, ma questo è un approccio che – per una domotica personale sicura e performante – sconsigliamo caldamente.

Solitamente il broker MQTT si installa sul medesimo computer sul quale è in esecuzione Home Assistant (se lo si usa), sebbene nessuno ci vieti di installarlo su un altro host. Dato che Home Assistant può essere installato in tanti modi diversi, va da sé che questa guida debba differenziare le spiegazioni in base alla tipologia di installazione.

Su Home Assistant OS/Supervised

Se in fase di installazione di Home Assistant si è optato per la soluzione “chiavi in mano” Home Assistant OS (anche noto come HassOS, o HASSIO) oppure per l’analoga Supervised, dotarsi di un broker è abbastanza semplice: c’è un add-on apposito. Per chi non lo sapesse, gli add-on sono dei componenti aggiuntivi per HassoOS che si installano e configurano direttamente da interfaccia web (vedi qui quelli che riteniamo imprescindibili).

Eclipse Mosquitto, il broker MQTT per eccellenza, il più usato per prestazioni e leggerezza, è appunto disponibile come add-on.

UTENZA

Prima di installarlo è necessario creare un utente su Home Assistant dedicato all’esecuzione del broker. Recarsi quindi presso la voce “Impostazioni” > “Persone” e aggiungere un nuovo utente (cliccando su “AGGIUNGI PERSONA“), avendo cura di selezionare la voce “Consenti all’utente di accedere“).

Chiamiamolo ad esempio “mqtt_user“, segnandosi da parte la password scelta. Non c’è bisogno che l’utente sia di tipo “Amministratore”, mentre invece è consigliato selezionare “Può accedere solo dalla rete locale“.

ADD-ON

A questo punto è possibile provvedere all’installazione dell’add-on “Mosquitto Broker“. Recarsi alla voce “Impostazioni” > “Componenti aggiuntivi”  e poi sul pulsante “Raccolta di componenti aggiuntivi” e cercare MQTT. Si troverà “Mosquitto broker“:

HASSIO Add-on - Eclipse Mosquitto

Cliccarci sopra e, successivamente, cliccare su “INSTALLA“:

HASSIO Add-on - Eclipse Mosquitto - Install

Una volta completata l’installazione non cliccare su “START“, ma accedere alla voce “Configurazione” e inserire le seguenti configurazioni.

Sezione “LOGIN”

Impostare:

 - username: ""
   password: ""

avendo cura di personalizzare, sulla base delle credenziali utente create in precedenza, i campi “username” e “password” (nell’esempio sono intenzionalmente lasciati vuoti – ricordare di indicarli tra apici).
A questo punto provvedere a salvare la configurazione.

Tornare dunque alla scheda principale e cliccare su “START“. Il broker MQTT verrà dunque avviato e sarà operativo sull’indirizzo IP locale della macchina che ospita Home Assistant, tipicamente sulla porta 1883. Ovviamente questo indirizzo/porta andrà fornito a tutti i client che vorranno sfruttare lo standard MQTT presenti sulla vostra rete LAN.

Per verificare che sia effettivamente partito senza errori, accedere alla sezione “Registro” e individuare le stringhe:

[00:00:00] INFO: Successfully send discovery information to Home Assistant.
[00:00:00] INFO: Successfully send service information to the Supervisor. 

oppure, eventualmente, l’errore che causa il mancato avvio.


Infine, selezionare nella sezione “” anche le voci “Watchdog” e “Esegui all’avvio“. Sconsigliamo invece di attivare l’auto-aggiornamento.


Ora è possibile saltare alla parte di questa guida dedicata alla configurazione del client MQTT per Home Assistant.

Su Linux Debian

Chi utilizzi Home Assistant (Core) installato su Linux Debian può provvedere all’installazione di Eclipse Mosquitto come processo a se stante sul sistema operativo. Mosquitto può però anche essere facilmente installato come container Docker, tecnica che consigliamo.

Poi, una volta completata tale installazione è possibile saltare alla parte di questa guida dedicata alla configurazione del client MQTT per Home Assistant (qui sotto).

Su Raspberry Pi OS

Chi utilizzi Home Assistant (Core) installato su Raspberry Pi con sistema operativo Raspberry Pi OS può provvedere all’installazione di Eclipse Mosquitto come processo a se stante sul sistema operativo. Per spiegare come farlo abbiamo dedicato una guida ad hoc. In alternativa, Mosquitto può anche essere facilmente installato come container Docker.

Poi, una volta completata tale installazione è possibile saltare alla parte di questa guida dedicata alla configurazione del client MQTT per Home Assistant (qui sotto).

Su Windows

Chi utilizzi Home Assistant (Core) installato su Windows può provvedere all’installazione di Eclipse Mosquitto come processo a se stante sul sistema operativo. Per spiegare come farlo abbiamo dedicato una guida ad hoc.

Poi, una volta completata tale installazione è possibile saltare alla parte di questa guida dedicata alla configurazione del client MQTT per Home Assistant (qui sotto).

Su QNAP

Chi utilizzi una NAS QNAP per gestire la propria domotica può provvedere all’installazione di Eclipse Mosquitto come container di Container Station. Per spiegare come farlo abbiamo dedicato una guida ad hoc.

Poi, una volta completata tale installazione è possibile saltare alla parte di questa guida dedicata alla configurazione del client MQTT per Home Assistant (qui sotto).

Su altri sistemi operativi

Le installazioni possibili di Mosquitto sono innumerevoli; abbiamo inserito questo paragrafo solo per fare capire a chi non ricaschi nelle te casistiche sopra che comunque esistono possibilità anche per altri sistemi. Ovviamente non potendo documentare qualsiasi altra possibilità si invita a cerare in rete guide specifiche dedicate a tali casistica personale.

Poi, una volta completata tale installazione per il proprio sistema è possibile saltare alla parte di questa guida dedicata alla configurazione del client MQTT per Home Assistant (qui sotto).

Vetrina - Offerte del giorno

Client Home Assistant

A questo punto (dando per scontato di aver installato un broker) siamo pronti per dotare Home Assistant delle funzionalità client MQTT e quindi, indirettamente, attivare le funzionalità del componente “MQTT” e di tutte le sue piattaforme d’integrazione collegate.

Un tempo tale configurazione si effettuata tramite modifica al file di configurazione, ma questa modalità di integrazione ora si configura più semplicemente tramite interfaccia web, come a seguire.

Su Home Assistant OS/Supervised

L’integrazione su Home Assistant OS/Supervised si effettua, dopo aver installato e avviato l’add-on di Mosquitto, accedendo alla sezione “Impostazioni” > “Dispositivi e servizi” dell’interfaccia web.

Apparirà un riquadro come segue:

HASSIO - Integrazione Eclipse MQTT Broker

Cliccare su “CONFIGURA“. Si aprirà un semplicissimo, ulteriore box come segue:

HASSIO - Integrazione Eclipse MQTT Broker - Configura

Cliccando semplicemente “INVIA“, l’integrazione MQTT sarà completata.

AUTO INDIVIDUAZIONE

A questo punto nell’elenco delle integrazioni sarà apparso “MQTT”. Si consiglia, ora, di attivare “l’auto rilevamento“.

N.b. Il cosiddetto “auto rilevamento” serve ad attivare auto-discovery per quei BRIDGE/Gateway che lo supportino (per esempio ZigBee2MQTT o ZigBee2Tasmota, eccetera). Si tratta di un’opzione attivabile anche in un secondo momento.

Cliccare quindi su “Configura” e poi su “RICONFIGURA MQTT” e poi attivare la spunta “Opzioni avanzate“, poi “PROSSIMO” fino a trovare la voce “Abilita il rilevamento“. Cliccare su “INVIA” per completare la configurazione.

Complimenti! MQTT è ok.

Su Home Assistant Core

Per qualsiasi altra installazione che non sia HassOS, la procedura differisce leggermente ma è sostanzialmente la medesima.

Accedere alla sezione “Impostazioni” > “Dispositivi e servizi” dell’interfaccia web e cliccare su “+“, poi cercare MQTT e cliccarvi sopra:

Home Assistant Core - Integrazione MQTT Broker

Si aprirà un box nel quale indicare le coordinate del broker:

Home Assistant Core - Integrazione MQTT Broker - Configurazione

Alla voci “Nome utente” e “Password” ovviamente andranno indicate le credenziali di accesso (quelle create precedentemente o quelle che si hanno a disposizione, se il broker è installato in qualche altro modo diverso da questa guida). Alla voce “Broker” invece va indicato l’IP della macchina che ospita il broker; se si è installato sulla stessa macchina che ospita Home Assistant Core, indicare l’indirizzo dell’interfaccia di loopback (ovvero 127.0.0.1); se invece è installato su qualche altro host della rete, indicare l’indirizzo corrispondente.

Infine, la spunta “Attiva l’individuazione” serve ad attivare auto-discovery per quei BRIDGE/Gateway che lo supportino (per esempio ZigBee2MQTT o ZigBee2Tasmota, eccetera). Si tratta di un’opzione attivabile anche in un secondo momento.

Cliccando “INVIA“, l’integrazione MQTT sarà completa.

Configurazione dei dispositivi

Terminata la configurazione broker/client è possibile utilizzare MQTT configurando in modo appropriato tale caratteristica presso ogni singolo dispositivo della propria domotica che supporti lo standard e si voglia integrare così all’HUB. in modo da farli puntare all’IP del broker (ovviamente l’indirizzo dev’essere quello assegnato al computer che ospita il broker), alla porta 1883 e configurando username e password come da credenziali precedentemente create.

A tal proposito si consiglia la lettura attenta della guida dedicata alla configurazione dei componenti MQTT nella propria domotica.

Ovviamente non basta configurare i dispostivi: per integrarli tramite MQTT su Home Assistant è necessario, caso per caso, attuare la configurazione necessaria. A seguire un’elenco di varie integrazioni effettuate tramite MQTT e spiegate su inDomus:


Per risolvere eventuali problemi legati alle comunicazioni via MQTT, si consiglia di utilizzare la guida che segue:

Mosquitto MQTT Broker: comandi utili

⚠️ 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. Se ti sei perso, a tua disposizione c'è la mappa.
Telegram News Channel