Home Guide Installare il broker MOSQUITTO su Raspberry per Home Assistant

Installare il broker MOSQUITTO su Raspberry per Home Assistant

10397
0
mqtt-raspberry-mosquitto

COS’E’ MOSQUITTO

Mosquitto (Message Queue Telemetry Transport) è un protocollo di rete molto leggero, realizzato con l’idea di utilizzare il meno possibile la banda internet in modo che i device possano comunicare informazioni tra di loro il più velocemente possibile e quindi ottimizzare il risparmio energetico. Infatti molti dispositivi che utilizzato tale protocollo sono devices che funzionano a batteria, a volte anche batterie a bottone e quindi è fondamentale ridurre al minimo lo scambio di dati superfluo per aumentarne la durata.

Il funzionamento di MQTT è basato sullo scambio di informazioni di tipo publish-subscribe dove i client si sottoscrivono ad un Feed del broker. Se il Feed viene aggiornato, il broker comunica a tutti i devices sottoscritti il nuovo stato. Anche i client a loro volta hanno la possibilità di aggiornare lo stato del Feed: in questo caso il broker ne riceverà comunicazione e a sua volta sarà compito suo comunicare la variazione a tutti gli altri client interessati al Feed.

INSTALLAZIONE

Colleghiamoci al Raspberry via SSH e digitiamo:

sudo apt-get update

successivamente:

sudo apt-get install mosquitto

successivamente i comandi:

sudo apt-get install mosquitto-clients

e digitiamo y (yes) quando richiesto.

CONFIGURAZIONE DI MOSQUITTO

Eseguiamo il comando:

sudo nano /etc/mosquitto/mosquitto.conf

Modifichiamo il file di configurazione che ci si presenta e copiamo questo testo:

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest topic
log_type error
log_type warning
log_type notice
log_type information
connection_messages true
log_timestamp true

allow_anonymous false
password_file /etc/mosquitto/passwords
include_dir /etc/mosquitto/conf.d

Usciamo salvando il tutto con CTRL-X, Y, INVIO.

Configuriamo ora un nome utente ed una password per utilizzare il servizio MQTT. Nell’esempio seguente sostituite lamiausernamemqtt con una a vostro piacimento:

cd /etc/mosquitto
sudo mosquitto_passwd -c passwords lamiausernamemqtt

Vi verrà quindi richiesta una password da impostare. Impostatela e date invio. Vi verrà richiesto quindi di digitarla una seconda volta per conferma. Durante la digitazione della password non vedrete nulla a schermo. E’ normale, continuate a scrivere fino alla pressione di INVIO.
Abilitiamo ed avviamo il servizio MQTT:

sudo systemctl enable mosquitto
sudo systemctl start mosquitto

Ora il servizio MQTT è pronto ed in esecuzione sulla porta 1883 del vostro Raspberry.

Verifichiamo che tutto funzioni correttamente aprendo 2 terminali PuTTY contemporaneamente e affianchiamoli per comodità.

Nel terminale a sinistra, dopo essersi ricollegati tramite SSH, digitiamo:

mosquitto_sub -d -u username -P password -t dev/test

(notare la P maiuscola. Ovviamente al posto di username e password dovete sostituire i vostri valori scelti precedentemente)

Vi apparirà il seguente risultato:

Bene, ora digitale nel terminale di destra il seguente comando:

mosquitto_pub -d -u username -P password -t dev/test -m "Ciao a tutti"

(notare la P maiuscola. Ovviamente al posto di username e password dovete sostituire i vostri valori scelti precedentemente)

Se tutto funziona correttamente, dovreste vedere la scritta “Ciao a tutti” sul terminale di sinistra.

INTEGRAZIONE MQTT CON HOME ASSISTANT

Apriamo il file configuration.yaml di Home Assistant e aggiungiamo il seguente blocco:

mqtt:
  discovery: true
  broker: 192.168.1.5
  port: 1883
  birth_message:
    topic: 'hass/status'
    payload: 'online'
  will_message:
    topic: 'hass/status'
    payload: 'offline'
  username: 'lamiausernamemqtt'
  password: 'lamiapassword'

sostituendo broker con il vostro indirizzo IP (del Raspberry), username e password con quelli scelti da voi precedentemente.

Salvate e riavviate (da SSH oppure direttamente da Home Assistant):

sudo reboot

Siete ora pronti a integrare dispositivi che fanno uso del protocollo MQTT come ad esempio Shelly, Sonoff con firmware Tasmota, ecc…