MQTT è un protocollo di messaggistica open standard per l'Internet of Things (IoT). È progettato come un sistema di trasporto publish/subscribe estremamente leggero, ideale per connettere dispositivi remoti con un footprint di codice ridotto e un minimo utilizzo della banda di rete (fonte: https://mqtt.org).
MQTT significa Message Queuing Telemetry Transport.
Gli elementi fondamentali di un sistema MQTT sono client e server (noti anche come broker).
I client si sottoscrivono a topic per pubblicare e ricevere messaggi. Ciò significa che un client può svolgere sia il ruolo di sottoscrittore che quello di publisher.
I server gestiscono i topic: ricevono le sottoscrizioni dai client, ricevono i messaggi dai client e li inoltrano agli altri client interessati in base alle loro sottoscrizioni.
Un server Thinknx può essere configurato come client MQTT, collegandosi a un broker/server esterno e sottoscrivendo uno o più topic, oppure come server MQTT, gestendo direttamente sottoscrizioni e distribuzione dei topic.
Figura: Panoramica MQTT
Permette la configurazione del dispositivo Thinknx come client MQTT verso un broker esterno o verso quello interno. Per gestire messaggi MQTT, Thinknx dev'essere configurato come client, consentendo di leggere (input virtuale) e scrivere (output virtuale) valori associati a un topic, da usare nell’interfaccia utente o in altri oggetti del sistema. Per applicazioni più avanzate, i dati MQTT possono essere elaborati tramite un Data Format Editor. Thinknx supporta comunicazioni non criptate o criptate tramite TLS. La comunicazione criptata potrebbe non funzionare correttamente su modelli più vecchi di server Thinknx o con alcuni broker esterni.
Permette di sottoscrivere un topic e ottenere valori aggiornati associati ad esso. Il valore ricevuto può aggiornare l’interfaccia utente, essere utilizzato dal sistema o trasmesso al bus KNX.
Permette di configurare il formato dei dati in ingresso e la risposta.
Permette di pubblicare valori dal server Thinknx verso un topic MQTT, valori che possono essere utilizzati da altri client MQTT. I valori possono provenire da gruppi KNX specifici.
Permette di configurare il formato dei dati inviati dal publisher.
In questo esempio viene usato un sensore di temperatura e umidità Shelly H&T che pubblica dati su un server MQTT esterno come Mosquitto, CloudMQTT o HiveMQ. Il server Thinknx, configurato come client MQTT, si sottoscrive ai topic temperatura e umidità e riceve i valori dal broker MQTT esterno.
Figura: Thinknx server come client MQTT
Figura: Configurazione Shelly H&T
Per visualizzare i topic Shelly, visita: https://shelly-api-docs.shelly.cloud/gen1/#shelly-h-amp-t
Figura: Input Virtuale MQTT Client
Figura: Data Input Format
Figura: Visualizzazione temperatura Shelly