Skip to main content

Default Namespaces

Overview​

MQTT Engine includes several built-in namespaces for parsing and processing MQTT messages from supported protocols and device families. Each namespace defines:

  • The MQTT topics that MQTT Engine subscribes to.
  • How incoming payloads are decoded.
  • How the data is mapped into the Ignition tag model.

Default namespaces are provided out of the box and can be enabled or disabled as needed. If your MQTT infrastructure publishes Sparkplug-compliant messages, no additional namespace configuration is typically required.

For non-Sparkplug MQTT payloads, see Custom Namespaces.


How Default Namespaces Work​

When MQTT Engine receives a message, it compares the topic against each enabled namespace. If a message matches a namespace, the payload is parsed according to that namespace's rules and the resulting data is converted into Ignition tags.

Each namespace defines:

  • One or more MQTT topic filters
  • A payload format
  • Rules for converting incoming data into the Ignition tag structure

You can enable only the namespaces required for your environment to reduce unnecessary subscriptions and processing.


Available Default Namespaces​

NamespaceTopic FilterDescription
Sparkplug BspBv1.0/#Supports the Sparkplug B specification using Google Protocol Buffers (Protobuf). Recommended for modern Sparkplug deployments.
Sparkplug AspAv1.0/#Supports legacy Sparkplug A deployments.
Elecsystags/#, RBE/#, JPG/#, sys/#, cmd/#Supports legacy Elecsys MQTT topic structures.
Xirgo+/LSD/#Supports Xirgo device message formats.

Sparkplug B​

Sparkplug B is the primary namespace used by MQTT Engine and is enabled by default.

The Sparkplug specification defines:

  • MQTT topic structure
  • Message types
  • Payload format
  • Device state management

Sparkplug B payloads are encoded using Google Protocol Buffers (Protobuf), allowing MQTT Engine to efficiently decode metrics, timestamps, quality information, and metadata into Ignition tags.

Common Sparkplug B message types include:

MessagePurpose
NBIRTHAnnounces a node and publishes its complete metric set.
NDATAPublishes updated metric values.
NDEATHIndicates a node has gone offline.
DBIRTHAnnounces a device connected to a node.
DDATAPublishes updated device metrics.
DDEATHIndicates a device has gone offline.
STATEIndicates the online/offline status of the Primary Host application.
View Sparkplug B payload examples

NBIRTH​

Topic

spBv1.0/Facility1/NBIRTH/PLC1

Payload

{
...
}

NDATA​

Topic

spBv1.0/Facility1/NDATA/PLC1

Payload

{
...
}

STATE​

Topic

spBv1.0/STATE/primary_host_id

Payload

{
"online": true,
"timestamp": 1668114759262
}

Managing Default Namespaces​

Each default namespace can be configured independently.

You can:

  • Enable or disable the namespace.
  • Assign the namespace to one or more Server Sets.
  • Configure namespace filters to limit subscriptions to specific Sparkplug Groups or Edge Nodes.

See Namespace Assignment for more information about associating namespaces with Server Sets and using namespace filters.


When to Use a Custom Namespace​

Default namespaces are intended for Sparkplug-compliant and other supported MQTT message formats.

If your MQTT clients publish generic MQTT topics or custom payloads, create a Custom Namespace instead. Custom namespaces allow MQTT Engine to map arbitrary MQTT topics and payloads into the Ignition tag model.