Scopi della guida
Concetti affrontati:
Componenti software utilizzate: |
Prerequisiti
Dispositivi fisici utilizzati:
|
GUIDA maggiormente indicata per: |
|
Note e disclaimer
|
|
Revisione guida: 2.2 |
Abstract
Per qualsiasi implementazione domotica che preveda l’utilizzo del protocollo Message Queue Telemetry Transport (MQTT), è necessario che sulla rete sia disponibile un broker MQTT, ovvero un “instradatore” dei messaggi generati tramite questo protocollo. In questa guida affronteremo la procedura di installazione su Raspberry Pi di Eclipse Mosquitto, uno dei broker opensource più diffusi.
In questa guida, a differenza di quella che usa un container Docker su Raspbian, utilizzeremo un approccio diverso ovvero quello di adottare Eclipse Mosquitto come applicativo server su Raspbian. Solitamente questo approccio viene seguito da chi preferisce utilizzare questo tipo di installazione più tradizionale piuttosto che usare il più moderno Docker.
Procedimento
- Installazione
- Configurazione
- Impostare la password ed avviare il servizio
- Configurazione dei dispositivi
Installazione
Una volta collegati via ssh al proprio Raspberry (utilizzando l’utenza “pi”), aggiungere il repository del software:
sudo apt-get install mosquitto-clients -y
sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
sudo rm mosquitto-repo.gpg.key
Ora installare la lista dei package necessari per il Raspberry:
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-buster.list
Aggiornare ora le informazioni di apt-get:
sudo apt-get update
Installare ora alcune librerie aggiuntive, necessarie:
cd ~
wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u12_armhf.deb
sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u12_armhf.deb
ATTENZIONE: se il secondo comando ritorna errore, probabilmente il file libssl1.0.0_1.0.1t-1+deb8u12_armhf.deb non esiste più sul repository, perché probabilmente è stato aggiornato dagli sviluppatori.
In tal caso, recarsi presso l’indirizzo del repositoryhttp://security.debian.org/debian-security/pool/updates/main/o/openssl/
e individuare la nuova versione (realisticamente sarà cambiato l’ultimo numero presente nel nome. A questo punto correggere il comando indicando il nuovo nome file. Stessa cosa anche nel secondo comando, il “sudo dpkg -i“.
A seguire:
wget http://ftp.nz.debian.org/debian/pool/main/libw/libwebsockets/libwebsockets3_1.2.2-1_armhf.deb
sudo dpkg -i libwebsockets3_1.2.2-1_armhf.deb
Infine, installare Mosquitto, mosquitto-clients (client CLI):
sudo apt-get install mosquitto mosquitto-clients -y
Configurazione
Eseguire ora i seguenti due comandi:
sudo /etc/init.d/mosquitto stop
sudo nano /etc/mosquitto/mosquitto.conf
dopo aver fermato il servizio, ci troveremo dunque di fronte alla configurazione del nostro broker. Modificarla come segue:
# 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
Uscire e salvare (control/command+x, yes, invio).
Impostare la password e avviare
Ora è necessario definire un file che contenga la password relativa all’utenza d’accesso al servizio. Come nome utente utilizzeremo “mqtt_user“, nomeutente il quale ovviamente può essere personalizzato.
Eseguire dunque i seguenti comandi:
cd /etc/mosquitto
sudo mosquitto_passwd -c passwords mqtt_user
Inserire la password scelta e premere invio.
Infine, effettuare l’abilitazione e l’avvio del servizio tramite i comandi:
sudo systemctl enable mosquitto
sudo systemctl start mosquitto
Al riavvio, il broker sarà in esecuzione e risponderà sulla porta 1883 dell’IP assegnato(i) al vostro Raspberry Pi oltre che all’ovvio localhost (127.0.0.1) per eventuali software in esecuzione locale (Homebridge, Home Assistant, Node-RED ecc.).
Configurazioni dispositivi e risoluzione problemi
Si consiglia la lettura attenta della guida dedicata alla configurazione dei componenti MQTT nella propria domotica.
Per risolvere problemi legati alle comunicazioni MQTT, si consiglia di leggere quest’altra guida.
