daq-tools / kotori

A flexible data historian based on InfluxDB, Grafana, MQTT, and more. Free, open, simple.
https://getkotori.org/
GNU Affero General Public License v3.0
107 stars 17 forks source link

Support Sparkplug MQTT protocol #143

Open amotl opened 1 year ago

amotl commented 1 year ago

About

"I am so pleased to see the Sparkplug specification bring MQTT back to the market sector it was developed for in the first place."

-- Arlen Nipper, Co-inventor of MQTT -- https://sparkplug.eclipse.org/

Cirrus Link created Sparkplug an open source software specification, to help clients seamlessly integrate data between their sensors, devices or gateways and applications within an MQTT infrastructure.

Sparkplug is rapidly becoming the standard for the Industrial Internet of Things (IIoT) to achieve cross industry interoperability and digital transformation.

History of MQTT and Sparkplug

MQTT is a publish/subscribe messaging protocol developed over 20 years ago to address the need for lightweight communications over low bandwidth networks. The need for an MQTT definition for the IIoT was critically overdue, [and Sparkplug fills that gap].

Idea

The Internet expanded rapidly thanks to two technologies. First HTTP, a data exchange protocol, and then HTML, which was used to define the data sent by HTTP. Both technologies were needed, and the explosion of the Internet was made possible, and interoperable, by the uniform adoption of these common standards.

The same is happening today with MQTT and Sparkplug, where MQTT is the exchange protocol and Sparkplug defines the data sent. It is expected that this will provide the same explosion of interoperability and adoption for IIoT.

-- https://cirrus-link.com/mqtt-sparkplug-tahu/

Resources

amotl commented 1 year ago

Details

Just looking up the details, I run across that in the Sparkplug 3.0.0 specification document:

4.1. All MQTT clients that communicate using the Sparkplug B principle use the following MQTT Topic structure:

namespace/group_id/message_type/edge_node_id/[device_id]

image

-- https://www.eclipse.org/tahu/spec/sparkplug_spec.pdf, p. 18

It looks like the MQTT topic structure of the Sparkplug specification is not that far away from the SensorWAN addressing scheme. That's sweet.

Cheers, @einsiedlerkrebs.

amotl commented 1 year ago

The current version is Sparkplug 3, but apparently, Sparkplug 4 is coming.