Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

MQTT Engine Custom Namespaces are used to provide support for generic, non Sparkplug compliant MQTT messages with string based payloads. If a custom namespace is configured MQTT Engine will convert all messages received to tags where the topic of each message will translate directly to the tag's path and the payload will be the tag's value.

Anchor
customnamenotes
customnamenotes

Note

If MQTT Engine is receiving only custom namespace messages, we recommend disabling the Sparkplug B default namespace.

If MQTT Engine is receiving messages from both the Sparkplug B default namespace and a custom namespace, you will need to ensure that your custom namespace subscription is refined so as not to pick up the messages from the Sparkplug B namespace (spBv1.0/......) 

From release 4.0.14, MQTT Engine will match ALL namespaces for any incoming message. For example, two custom namespaces can be created where both subscribe on the same topic but one can be configured to parse the payload as JSON and one to parse the payload as string based.


MQTT Engine supports MQTT Engine Engine String Replacement for both MQTT Topics and Payloads for character sequences that will become part of an Ignition tag path. While MQTT and Sparkplug both support characters such as . & % =, Ignition does not support these as valid characters in a tag path or tag name. As a result, sometimes it may be necessary to tell MQTT Engine to replace certain characters or strings of characters with something else so the tag path and tag names can be properly created in Ignition.

...

Let say we have a publish received on the topic "test/data/json" with value '{ "stringTag" : "12345", "folderTag" : { "intTag" : 1, "boolTag" : true } }'. MQTT Engine will create a two three folders "test", "data" and "json" followed by a tag/folder structure representing the JSON value of the payload. 


Common Use Cases

Managing Ignition timestamps for MQTT data when using custom namespaces

Reading bytes from an incoming binary message

How do I managing MQTT messages with changing payload JSON structure at MQTT Engine


Additional Resources

...