Eclipse Tahu addresses the existence of legacy SCADA/DCS/ICS protocols and infrastructures and provides a much-needed definition of how best to apply MQTT into these existing industrial operational environments.
Eclipse Tahu provide client libraries and reference implementations in various languages and for various devices to show how the device/remote application must connect and disconnect from the MQTT server using the Sparkplug specification explained below. This includes device lifecycle messages such as the required birth and last will & testament messages that must be sent to ensure the device lifecycle state and data integrity.
Sparkplug®, Sparkplug Compatible, and the Sparkplug Logo are trademarks of the Eclipse Foundation.
Sparkplug is a specification for MQTT enabled devices and applications to send and receive messages in a stateful way. While MQTT is stateful by nature it doesn't ensure that all data on a receiving MQTT application is current or valid. Sparkplug provides a mechanism for ensuring that remote device or application data is current and valid.
Sparkplug A was the original version of the Sparkplug specification and used Eclipse Kura's protobuf definition for payload encoding. However, it was quickly determined that this definition was too limited to handle the metadata that typical Sparkplug payloads require. As a result, Sparkplug B was developed to add additional features and capabilities that were not possible in the original Kura payload definition. These features include:
Sparkplug Specification v3.0.0: https://www.eclipse.org/tahu/spec/sparkplug_spec.pdf Eclipse Sparkplug Project: https://projects.eclipse.org/projects/iot.sparkplug Eclipse Sparkplug & TCK Github Repository: https://github.com/eclipse-sparkplug/sparkplug
Contributing to the Sparkplug Tahu Project is easy and contributions are welcome. In order to submit a pull request (PR) you must follow these steps. Failure to follow these steps will likely lead to the PR being rejected.