MQTT Engine not populating Edge Nodes with tags

I’m having a problem with MQTT Engine populating Edge Nodes with tags that I was hoping someone here could please help with.

I have some Miller Welders that use spark plug B 1.0 through a centralized management software package called Centerpoint. RabbitMQ is our broker. MQTT Engine is configured with the “Default Tags Enabled” checked. Using MQTT Explorer, I can see the device topics publishing as “spBv1/0/(group name)/…etc” DData, NDeath, NBirth, Ndeath are all present. It’s my understanding that the SparkplugB default namespace in MQTT Engine automatically subscribes to spV1.0/# and converts those topics and values into folders and tags. So things look to be publishing OK, the data is visible in MQTT Explorer, what little there is to configure in MQTT Engine are set correctly. The only thing I see that’s odd is how it displays in MQTT Explorer

image

I would expect it to be “spBv1.0/” but that “appears” to be a quirk in the way MQTT Explorer displays topics, treating a “.” as a data level delimiter like “/”. To test, I published to the topic “this.is.a.dot.test” and got four layers in the dislay. There are no topic settings in Centerpoint. I’m told that “spBv1.0” is the only topic it publishes the welder data to, which makes sense. I think that part of the Spark Plug B standard is the device only publishes to that topic.

I know there are a lot of moving parts in a situation like this but does anyone have any theories why my Edge Nodes folder under the MQTTEngine tag provider is not populating as expected?

Thanks,
Chris

RabbitMQ is your problem most likely. I believe there's an option that needs set to allow compatibility with topics using periods. RabbitMQ uses periods to separate topics unlike MQTT that uses slashes.

Or use a different broker. I like EMQx. Mosquito is also popular.

I’ve been scouring the internet trying to find some information on this and I’m coming up short. I see that RabbitMQ converts slashes to periods in amq.topic queue names, but that’s internal. Do you have anything more specific?

You need this: