Sparkplug B alternatives

Hey everyone, I'm currently publishing data from Ignition to MQTT Explorer and I'm using Sparkplug B. My tag path is structured with four folders, but the last folder appears in the topic payload due to Sparkplug B's constraints as read here MQTT Transmission Transmitters and Tag Trees - MQTT Modules for Ignition 8.x - Confluence. The hierarchy level is crucial for me, and I need the entire tag path visible in the topic, not in the payload. Since this seems unchangeable with Sparkplug B, are there any alternatives for pushing data from Ignition while maintaining the full tag path in the topic?

Any help appreciated,
Thanks

When using Sparkplug B, the tag hierarchy is built into the protocol that when decoded, all the folders will come out in the same hierarchy they were published in. Ignore anything you see in MQTT Explorer as while that defines part of the hierarchy, as you learned the rest of it is part of the payload. You can go to a custom namespace, but then you'll lose a lot of the features and capabilites that Sparkplug B provides.

If you've set up MQTT Engine, you'll see that everything comes through nice and clean, but you won't see it the same way in MQTT Explorer. Also note, there's NDATA and DDATA folders that aren't part of your structure either.

Sparkplug B is intended to be used with Sparkplug B protocol throughout. In fact, on the server I have running, I'm using aliasing and compression to where in MQTT Explorer you essentially can't make out any of the values, but that's not the end result.

I'd recommend sticking with it unless you have some device/system that can't talk SparkplugB.

Hello, thanks for the reply.

In my case, I’m doing this for work and it’s essential that the full topic is visible in Mqtt explorer.
So any spark plug B alternatives would be appreciated!

As far as I'm aware, there is no alternative besides doing a custom namespace. I don't know how a custom namespace handles disconnections, qualities, and timestamps as I've never set it up. You may be on your own with some of it unless the Transmission module automatically marks those tags as bad upon disconnection. SparkplugB also allows for store and forwarding of data so that you don't lose historical values if there is a disconnection from either the Engine side or the Transmission side which you'll lose when doing a custom namespace. There's a lot of advantages you'll miss out on by not using it, but that's my 2 cents.

Can Transmission publish a custom namespace? I thought it was Sparkplug only, and it's just Engine that can consume a custom namespace instead of Sparkplug. :man_shrugging:

Yep, you're right. I thougth I saw an option in there once, but just connected to one of my edge devices and there is no option for custom namespace. Which means they'd have to use scripting to push a bunch of values which wouldn't be efficient nor convenient.

Thank you!