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
| Namespace | Topic Filter | Description |
|---|---|---|
| Sparkplug B | spBv1.0/# | Supports the Sparkplug B specification using Google Protocol Buffers (Protobuf). Recommended for modern Sparkplug deployments. |
| Sparkplug A | spAv1.0/# | Supports legacy Sparkplug A deployments. |
| Elecsys | tags/#, 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:
| Message | Purpose |
|---|---|
| NBIRTH | Announces a node and publishes its complete metric set. |
| NDATA | Publishes updated metric values. |
| NDEATH | Indicates a node has gone offline. |
| DBIRTH | Announces a device connected to a node. |
| DDATA | Publishes updated device metrics. |
| DDEATH | Indicates a device has gone offline. |
| STATE | Indicates the online/offline status of the Primary Host application. |
View Sparkplug B payload examples
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.