Hi there, I wanna test out unified namespace. As of my understanding i could use MQTT as unified namespace, in my case hiveMQ.
Lets say I want to start a motor from Nodered, to do so i can publish to test/motor1:on. Ignition can then subscribe to that topic and read that motor is on using MQTT engine. But how can I send a command from Ignition to turn it off? Any tips and tricks regarding this is very appreciated.
If you're using Custom Namespace to subscribe to vanilla MQTT topics using MQTT Engine, you'll need to use system.cirruslink.engine.publish
scripting functions to propagate writes back to the broker.
Uhm, okay thanks. Yes, its custom namespace and vanilla MQTT. But, i want to use sparkplug B. What do you think is the best way of doing that (industrial way) ?
(I wan't to learn about the industrial way of using MQTT/sparkplug and ignition)
It is pretty easy on the MQTT Engine side of things--it will see edge nodes/devices as they publish their births and populate tags in the MQTT Engine tag provider. Note that MQTT Engine blocks outbound writes by default--it is a configuration setting in the Ignition web UI. Once configured, you can write to the tags and MQTT Engine will handle sending the appropriate DCMD/NCMD messages with the new values.
Thanks! i'll check it out. Isn't it normal to write back?
Yes. I think there are some safety benefits from having the outbound writes disabled by default.
Allright,
Now its enabled
Not sure what I need to do in order for the data from node red to show up... This appears in ignition though, but not the data itself:
You might try to use an MQTT test tool to make sure that your Node-RED setup is behaving as a proper SparkplugB edge node. There are some loggers on the Ignition side that you might be able to turn up to see more detail, too.