Table of Contents

Integrazione MQTT

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.

 Panoramica MQTT

Figura: Panoramica MQTT

Client 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.

Input Virtuali (Subscribers)

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.

Data Format Editor

Permette di configurare il formato dei dati in ingresso e la risposta.

  1. Seleziona il tipo di formato dati ricevuto (XML, Stringa o JSON).
  2. Configura il percorso corretto della risposta.
  3. Converte il valore ricevuto nel formato corretto (Bit, Int, Double, Enum, String).

Output Virtuali (Publishers)

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.

Data Format Editor

Permette di configurare il formato dei dati inviati dal publisher.

  1. Seleziona il tipo di dati inviati (XML, Stringa, Parameters, JSON).
  2. Converte il valore inviato nel formato corretto (Bit, Int, Double, Enum, String).

Esempio 1: Thinknx Server come Client MQTT

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.

Esempio 1: Thinknx come client MQTT

Figura: Thinknx server come client MQTT

Configurazione Shelly H&T

Configurazione Shelly H&T

Figura: Configurazione Shelly H&T

Configurazione Thinknx Configurator

Per visualizzare i topic Shelly, visita: https://shelly-api-docs.shelly.cloud/gen1/#shelly-h-amp-t

Virtual Input MQTT Client

Figura: Input Virtuale MQTT Client

Data Input Format

Figura: Data Input Format

Visualizzazione temperatura Shelly

Figura: Visualizzazione temperatura Shelly