Spark Plug B for MQTT

Jun 25, 2024

Spark Plug B for MQTT

Introduction

  • Spark Plug B: Specification for packaging up industrial data, communicating it to an MQTT infrastructure.
  • Managed by: Eclipse Foundation
  • Developed by: Cirrus Link (owned by MQTT co-inventor Arlen Nipper).
  • Standard: MQTT 3.1.1. Future updates expected for MQTT 5.

Key Elements and Concepts

  • Group ID, Edge node ID, Device ID: Logical grouping concepts in Spark Plug B.
  • Store and forward: Allows data storage on a client device and transmission once the connection reestablishes.
  • Templates: User-defined data type templates supported in Spark Plug B.
  • Compression: Payload compression supported.

Detailed Explanation

MQTT vs. Spark Plug B

  • MQTT 3.1.1: Vanilla version, publish/subscribe model, individual topics.
  • Spark Plug B Equivalent: Adds logical grouping, edge of network nodes.

Creating Connections

  • Normal MQTT: Individual topics (e.g., intellic/Dallas/temperature)
  • Spark Plug B: Groups topics logically under edge devices using:
    • Group ID (e.g., intellic)
    • Edge Node ID (e.g., Dallas thermostat).
  • Packages all data into one transmission using protocol buffers.

MQTT 3.1.1 and Spark Plug B Coexistence

  • Broker Compatibility: Spark Plug B clients can connect to a regular MQTT 3.1.1 broker. Spark Plug B payloads coexist with MQTT 3.1.1 and MQTT 5 payloads.
  • Application: Primarily for logically grouping data (e.g., production lines) in industrial applications.

Advantages of Spark Plug B

  1. Optimization: Efficient transmission of industrial data.
  2. Compression: Reduces data size during transmission.
  3. Buffered Transmission: Ensures data integrity during disconnections.
  4. Logical Grouping: Simplifies hierarchical and semantical organization.
  5. Support for Templates: Allows user-defined data types to be shared easily.

Common Applications

  • Industrial Data Grouping: Groups industrial data by production lines, areas, or PLCs.
  • Unified Namespace Creation: Combines flat MQTT topics with Spark Plug B topics.

Importance and Usage

  • Digital Transformation: Treats smart devices as ecosystem nodes.
  • Logical Grouping in Organizations: E.g., using Spark Plug B for grouping data in a production line.
  • Client Flexibility: Ability to manipulate and unify data namespaces.

Technical Elements

  • Protocol Buffers: Used for efficient serialization of data.
  • Birth and Death Certificates: Ensure data completeness and integrity.
  • Updates: Only the latest values within a set interval are sent.

Conclusion

  • Spark Plug B: Designed for industrial applications to optimize data packaging and transmission.
  • Unified and Efficient: Facilitates creation of unified namespaces by grouping data logically and ensuring efficient, reliable transmission.