I am actually doing both. The bridge instance, creates both an MQTT and OPC-UA clients. When a new MQTT is received it is dispatched to the other clients (potentially CoAP, XMPP, etc) and the OPC-UA client handles converting the MQTT topic to an OPC-UA tag “path” and writes it. Also, when the OPC-UA client starts up, it subscribes to an OPC server channel and when data changes occur on the OPC side, it dispatches the data to MQTT.
The use case for receiving OPC-UA data over MQTT is the ability to easily create a native mobile application where an Ignition client might not be a fit. Interfacing with any of these might be necessary, something that Ignition cannot do at the moment: barcode/rfid sled, Bluetooth LE, GPS… As a side note, for mobile application development we use Xamarin.
What difficulties have you come across with configuration?
As for the opaque payloads… do you really care? If my OPC tag is of a string type then I would expect the MQTT client to be publishing a string. If it is a numeric tag then if the payload can not be cast to a numeric value then the implementation of the device speaking MQTT is flawed. Is that really any different than my control’s engineer telling me that the counter is on S000 when what he meant was N7:1?
PS. I have recently ordered the only OPC-UA book from Amazon to catch up on what I have missed over the past several decades.