MQTT Engine: using "\" delimiter in SparkplugB topic groupID

@wes0johnson Let me know if you want a support ticket opened for the following.

Does anyone have experience using the"" delimiter in the SparkplugB groupID with Ignition? In using 8.1.3 with MQTT Engine 4.0.6 and 8.1.4 with MQTT Engine 4.0.7 I’m seeing the following issue:

When the data comes in, two structures are created under the MQTTengine tag provider: 1) a nested directory hierarchy (expected) and 2) a directory where the groupID had the “” replaced with underscores (unexpected). For example: when groupID is “Enterprise\Site\Area”, MQTT Engine produces the structure below:

The metrics from NDATA and DDATA are appearing under the 2nd structure (directory replacing “” with “_”, whereas the 1st structure just an empty, static skeleton.

The groupID in the published topic does show the backslash correctly in MQTTExplorer, HiveMQ websocket client, and MQTTx client, so I think the publish is correct.

1 Like

I would not recommend using \ in any group, edge node, or device ID. I believe that Ignition is converting the '\' chars to '/' chars which in turn creates folders for those char strings between the \ chars. I didn’t know that this occurred until this post and I wouldn’t count on that remaining valid functionality. Furthermore, I don’t know how ‘writes’ back to those tags would be interpreted. I would guess that it wouldn’t work - and certainly isn’t explicitly handled in the Engine module. Technically, a '\' char in a folder in Ignition is invalid so you couldn’t even reproduce this from an Edge Node using MQTT Transmission.

’ and . chars are also not valid chars in Ignition. So, these get replaced with underscores. As a general rule, any chars that can not be valid in Ignition tag names or Ignition folder names should not be published to MQTT Engine.

I think a lot of the characters you were trying to type are missing from the forum post (causing issues with the underlying architecture of this forums system I see!

Maybe you can post a screenshot of the characters that are “invalid”? Or a link to those that Ignition forbids?

I tweaked Wes’ post to escape the lone backslashes.

Referencing Ignition documentation here:

1 Like

Yes - I was going to defer to IA docs here. Technically Sparkplug doesn’t have these same limitations. But, since we’re talking about MQTT Engine in Ignition it must follow these rules for tag names and paths.