Message Queue Telemetry Transport (MQTT)

3 minuti di lettura
Produttore: MQTT.org
Disponibilità: n.a.
Categoria: software
Tipologia: protocollo di comunicazione
Difficoltà di implementazione: bassa

MQTT

MQTT è un protocollo machine-to-machine (ovvero per far dialogare macchine) ideale per il mondo della domotica personale, più genericamente per il mondo dell’IoT. Le sue caratteristiche, proprio per gli obiettivi che si propone, sono quelle di essere estremamente flessibile leggero, veloce ed efficace.

Per far capire rapidamente cosa sia, a cosa serva e quale sia il modello di funzionamento, utilizzeremo la metafora dei fari.

Metafora dei fari

faroPoniamo il caso esistano dei fari di segnalazione lungo una costa e che i guardiani di questi fari possano dialogare in qualche modo (ai fini della spiegazione possiamo immaginare usino un telefono) solo con un ufficio di smistamento comunicazioni. Lo chiameremo broker. Poniamo infine che l’ordine di accendere o di spegnere un dato faro possa venire da uno o più controllori, i quali non conoscono il numero telefonico dei fari ma solo quello del broker. Inoltre, i guardiani del faro hanno il dovere di comunicare al broker – di tanto in tanto – lo stato di accensione del faro stesso, a conferma del fatto che sia effettivamente spento o acceso. Inoltre, verificano che ci siano o meno comandi di cambio stato da parte dei controllori. I controllori stessi chiamano di tanto in tanto per sapere se c’è qualche cambio di stato segnalato dai fari.

Arriva l’imbrunire e un controllore chiama il broker e gli riferisce il comando di accensione del faro – diciamo – numero 2. Un attimo dopo chiama, per la sua verifica ciclica, il faro numero 8, che comunica “stato spento” e verifica se ci siano cambi di stato richiesti, ma ottiene risposta negativa. Un attimo dopo chiamano altri fari, sempre per verifica ciclica, finché non chiama proprio il numero 2, il quale comunica uno “stato spento” e verifica se ci siano comandi per lui. Sì, c’è un comando di accensione, e lo riceve dal broker.

A questo punto il guardiano del faro, diligente, provvede ad accendere la lampada, dopodiché richiama il broker e comunica “stato acceso” e, già che c’è, verifica se ci siano nuovi comandi di cambio stato, ma in questo caso ottiene risposta negativa.

Quando il controllore interessato al faro 2 richiama, viene informato dell’avvenuta accensione del faro 2, che ha riportato, appunto, questo nuovo stato.

E così via.

MQTT e la domotica

In ambito domotico, MQTT funziona, a grandi linee, come spiegato tramite la metafora dei fari. Innanzitutto, laddove si voglia sfruttare questo protocollo, è bene – per non dire vitale – dotarsi di un broker (noi consigliamo Eclipse Mosquitto), ovvero un “ufficio smistamento” dei messaggi MQTT da e per i vari dispositivi, che siano di gestione finale, che siano sensori, attuatori o dispositivi.

Tipicamente sensori, attuatori e dispositivi (dotati di supporto MQTT) offrono un insieme di comandi per essere controllati e uno di telemetrie, le quali forniscono, appunto, lo stato delle varie componenti e metriche che sono in grado di offrire.
Ad esempio, utilizzando un dispositivo Sonoff dotato di firmware Sonoff-Tasmota è disponibile una lista comandi e telemetrie utili ad accendere/spegnere l’attuatore, conoscerne lo stato, regolare i tempi di risposta ecc.

Chi invia e riceve questi comandi/telemetrie MQTT sono solitamente i “client”, ovvero quei soggetti sulla rete che desiderano pilotare i componenti e conoscerne i vari stati. Portando un esempio pratico, un tipico client MQTT è il plugin per Homebridge “homebridge-mqtt-switch-tasmota“, il quale permette di creare in ambito HomeKit un interruttore che, se azionato, non fa altro che inviare al broker un comando MQTT (di accensione o di spegnimento) indirizzato a un Sonoff specifico (identificato dal comando stesso) presente sulla rete, il quale lo riceve e lo esegue.
Inoltre, il client riceve le varie telemetrie di stato da parte del broker, il quale a sua volta, nel tempo, le riceve da parte del dispositivo.

Riprendendo la metafora dei fari, in ambito domotico possiamo immaginare i fari come tanti attuatori (tipo il Sonoff Basic) collegati, per esempio, a delle lampade; il broker sarà per l’appunto il broker MQTT presente sulla rete e, sempre sulla rete, avremo infine i client MQTT, che impersoneranno i controllori.

Maggiori informazioni su come configurare MQTT in domotica sono disponibili su questa nostra guida.


Please comment below