...
The protocol is an implementation of the MQTT 3.1.1 standard (October 2014) and the MQTT 5.0 standard (March 2019). MQTT protocol is a client/server protocol of a subscribe/publish type. It is simple, has little overhead, and is easy to implement. It is used for M2M communication (Machine to Machine) and in the IoT context (Internet of Things). The MQTT server is also called the MQTT broker.
D2000 KOM implements the client part of the protocol. The protocol is implemented on a TCP/IP-TCP and TCP/IP line-TCP Redundant lines. MQTTS (Secure MQTT, MQTT over TLS) is also supported - either directly in the D2000 KOM process (using TLS settings on on TCP/IP-TCP and TCP/IP-TCP lineRedundant lines) or via the tunnelstunnel utility.
For the transfer of LoRaWAN data encapsulated within the MQTT protocol, see LoRaWan protocol description.
...
- Connecting to the MQTT broker as a Host Application (data consumer, in Payload Type = Sparkplug Host mode):
- reading simple value types
- reading arrays (with support for the Destination column)
- writing simple value types
- reading of template items (UDT)
- reading of dataset items
- support for metric aliases
- compression support (GZIP, DEFLATE)
- browsing - finding a list of metrics
- Connecting to an MQTT broker as an Edge Node (data producer, in Payload Type = Sparkplug Edge Node mode):
- publishing values with simple types
- processing commands (NCMD, DCMD) with simple value types
- processing commands (NCMD, DCMD) with template (UDT) items
- processing commands (NCMD, DCMD) with dataset items
- processing commands (NCMD, DCMD) with arrays
- processing of the NCMD command with the Node Control/Next Server metric (connecting to the next MQTT server, if several are configured on the line)
- processing of the STATE message with the content online=false, which comes from the Primary Host Application (disconnecting from the MQTT server and trying another one, if several are configured on the line - searching for an MQTT server with a connected Primary Host Application)
- support for metric aliases
The communication was tested/deployed with:
...
Sparkplug's MQTT protocol defines 3 groups of applications:
- Edge Node - supports Supports the MQTT protocol and connects to the MQTT server. It sends him data obtained from the Device, its own, or aggregated data.
- Device/Sensor - represents Represents a physical or logical device connected to an Edge Node and providing data, process data , or metrics.
- Host Application - represents Represents a data consumer (SCADA/MES system, Historian, analysis tool) that connects to the MQTT server and receives MQTT data from the Edge Node/Device and, if necessary, commands.
...