Taking your questions from the top;
- No. A variable is a variable regardless of if you are publishing it as a string or as a Sparkplug payload.
- No. The broker is transparent to the MQTT payload. It does not unpack or inspect the payload in any way.
- Sort of. If you want to decode the Sparkplug payload in MQTT.FX, you need to select Sparkplug from the drop down list as per the image in my second post in this thread. (If you don’t change the payload decoder type, you will see the payload compressed)
- No. I don’t know of any setting in groov Manage MQTT configuration to set the QoS.
So, why is it working for me and not you?
Here is my configuration ;
The key is to leave the Primary Host ID blank.
If you put ANYTHING in there, you will not connect to the Mosquitto broker and thus you will never see any data.
The Primary Host ID will inform the broker if it is accepting connections or not, if you don’t have any other subscribers with the EXACT same Primary Host ID, then the broker will reject your clients connection and no data will be published.
In all your screenshots, you never included this config area, so we don’t know if you have a Primary Host ID or not. (I suspect you do have something in there - given that it will publish string payloads Ok, but not sparkplugB payloads)
Here is a screenshot of MQTT tools showing the compressed SparkplugB payload from my Mosquitto broker.
It is just as you expressed in your first post, you clearly see it compressed, and indeed you do.
So, to summarize…
I am using EPIC firmware 2.0.2.
I have ‘Make Public’ selected on some PAC Control variables (floats, ints and strings).
I have configured my Mosquitto broker in the groov Manage interface being sure to leave the Primary Host ID blank.
I have set the the device type as ‘Controller’.
You should be up and running with those similar settings on your EPIC.