(MQ Telemetry Transport
) is a simple "Internet of Things
" communication protocol. It is based on passing messages between clients through the central server – broker
The client can be of the Publisher
type - sending their messages to defined topic
(address, topic). The publisher
can be for example represented by a sensor or meter.
On the contrary a Subscriber
subscribes to receive values from defined topics
in order to process such values after receipt.
The client can be a Publisher
Thanks to the fact that the clients communicate only with the intermediary (the broker
server), the clients do not have to know the network topology and each others existence – they only need to know how to connect with the broker
During the login sequence, each client is identified by "ClientID"
and then optionally by "Username"
. The SSL/TSL
support is not implemented so far in the PROMOTIC system.
protocol defines three levels of message confirmation QoS
(Quality of Service
QoS 0 - the message is sent without confirmation and the delivery is not guaranteed (at-most-once).
QoS 1 - the message is delivered at least once.
QoS 2 - each message is delivered exactly once.
The client of the Publisher
type can send data also with Retained
flag (0/1 = not retained/retained data on the brokeru) and with DUP
flag (0/1 = not repeated/repeated sent messages)
According to the communication encryption level, the MQTT
protocol defines usage of 3 network ports:
1883 - (supported) unencrypted transmission
8883 - (not supported) SSL/TLS encrypted transmission
8884 - (not supported) encrypted transmission + SSL/TLS client certificate + the client must provide also the authentication cerificate published by broker
The PROMOTIC system so far does not support encrypted transmissions (supports only port 1883
Links and manuals
Communication of the PROMOTIC application with MQTT broker
The logged-in client is both Publisher
. The Subscriber
client subscribes for receiving defined topic
address on the broker. The Publisher
client sends its data to this address to be received by Subscriber
For reading the data it is handy to use the preconfiguration: