Configurare MQTT (broker & client) su Home Assistant

7 minuti di lettura
Scopi della guida:
  • Dotarsi di un 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 maggiormente indicatA per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione guida: 1.0

Logo MQTT

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 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 (HASSIO)

Se in fase di installazione di Home Assistant si è optato per la soluzione “chiavi in mano” HASSIO (oggi chiamata, semplicemente, “Home Assistant”), dotarsi di un broker è abbastanza semplice: c’è un add-on apposito. Per chi non lo sapesse, gli add-on sono dei componenti aggiuntivi per HASSIO 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” > “Utenti” e aggiungere un nuovo utente, chiamandolo ad esempio “mqtt_user”, segnandosi da parte la password. Non c’è bisogno che l’utente sia di tipo “Amministratore”, anzi.

ADD-ON

A questo punto è possibile provvedere all’installazione dell’add-on “Mosquitto Broker“. Recarsi alla voce “Supervisor” > “Add-on store” e cercare “MQTT“. Si troverà “Mosqitto broker“:

HASSIO Add-on - Eclipse Mosquitto

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

HASSIO Add-on - Eclipse Mosquitto - Install

Una volta completata l’installazione non cliccare su “START“, ma accedere alla voce “Config” e inserire la seguente configurazione:

logins:
  - username: ""
    password: ""
anonymous: false
customize:
  active: false
  folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false

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 ma non avviare ancora l’add-on.

Provvedere però a un riavvio di Home Assistant (“Supervisor” > “Hardware” > “Reboot“).

ACL

Ora è necessario definire una “access control list” (ACL) utile al corretto funzionamento del servizio.

Tramite connessione SSH (cliccare su “Terminal” nella colonna a sinistra nell’interfaccia – e se non appare verificare di aver installato SSH), eseguire i seguenti comandi:

cd share
mkdir mosquitto
cd mosquitto
nano accesscontrollist

nell’editor di testo che si sarà aperto, copiare dentro la seguente configurazione:

user MQTT_USERNAME
topic #
user homeassistant
topic #
user hass.io
topic #
user PROPRIO_USERNAME_HASSIO
topic #

avendo cura di personalizzare la prima e la penultima riga, inserendo nella prima il nome dell’utente creato in precedenza (sostituendo la stringa “MQTT_USERNAME“) e nella penultima il proprio nome utente presso Home Assistant (sostituendo la stringa “PROPRIO_USERNAME_HASSIO“). Salvare i file e uscire (CTRL+X, Y, invio).

Sempre da terminale, eseguire ora il comando:

nano acl.conf

il quale aprirà un nuovo file nel quale copia-incollare il seguente testo:

acl_file /share/mosquitto/accesscontrollist

Salvare anche questo secondo file (sempre CTRL+X, Y, invio), uscire dal terminale col comando:

exit

e infine riavviare Home Assistant.

All’avvenuto riavvio, tornare sulla pagina dell’add-on 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.

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

Su Raspbian

Chi utilizzi Home Assistant (Core) installato su Raspberry Pi con sistema operativo Raspbian 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 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 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).

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 da tempo ormai questa integrazione si configura benissimo tramite interfaccia web. Noi illustreremo questa seconda opzione.

Su HASSIO

L’integrazione su HASSIO si effettua, dopo aver installato e avviato l’add-on di Mosquitto, accedendo alla sezione “Configurazione” > “Integrazioni” 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à completa.

N.b. La spunta “Attiva l’individuazione” serve ad attivare auto-discovery per quei componenti che lo supportino (per esempio zigbee2mqtt). Si tratta di un’opzione attivabile anche in un secondo momento.

Su Home Assistant Core

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

Accedere alla sezione “Configurazione” > “Integrazioni” 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 componenti che lo supportino (per esempio zigbee2mqtt). 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


Home Assistant Official Logo ATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.


Telegram News Channel