I’m running Ignition Maker edition(8.1.48) and the MQTT Engine v4.0.29 (b2025041017).
I have EMQX running as my broker and its is publishing some system related data.
For these system topics I keep getting an error in my Ignition log:
Invalid tag at path ‘EMQX_CustomNameSpace/$SYS/brokers/emqx@node2.emqx.io/datetime’ - unable to handle payload on custom namespace topic=$SYS/brokers/emqx@node2.emqx.io/datetime
I get a similar error for other system topics too (uptime, authorization metrics, new connections,..)
Using MQTT Explorer to subscribe to my broker I can subscribe to the system topics and see their data without issue
This is because ‘@’ and ‘.’ characters are not valid in tag paths in Ignition. You will need to use the ‘string replacement’ feature to replace those characters with something else when Engine creates the tags. See here for details: MQTT Engine String Replacement - MQTT Modules for Ignition 8.x - Confluence
Thanks!
After adding the mappings I’m no longer getting the original error but I do get this now
Error processing edit for tag path Bad_Unsupported("The target path cannot accept children tags
This is often caused by ‘overlapping structures’ in JSON payloads. If a tag gets created as a leaf tag, and another message arrives that would require that leaf tag to be a folder, this is exactly the error message you would see. It is because MQTT Engine will not delete tags already created to allow that leaf tag to then be a folder. There are a few options to handle this:
Manually delete the leaf tag so it gets created as a folder
If the topics allow you to, create multiple namespaces so the tag trees don’t overlap when they are created by MQTT Engine.
Don’t parse as JSON in the custom namespace and instead write your own parser as a tag change script to deal with the caveats of your JSON payloads.