Using the MQTT Engine which is able to dynamically create tags.
I have a script that parses the MQTT Engine tag provider and based on what is present, it builds out a Perspective view.
Is there a binding or trigger I can use for this script that is event-based when a new tag or folder is added / removed?
Right now, the script is just polling at some interval, but would like to move to an event-based script (don’t run it unless it’s needed).
@wes0johnson Do you have any suggestions regarding a mechanism for triggering a script when MQTT Engine makes a structural change (adds/removes a node, device, or metric) and won’t trigger when the value of existing tags changes?
Internally in MQTT Transmission we look for tags being added, moved, or deleted by using a TagStructureListener (TagStructureListener) to detect these events. In turn we use this to control the ‘Refresh Required’ boolean tag. We could potentially use this in MQTT Engine to define a clearable tag - but this isn’t there today. I like the idea and will add it to our backlog.
For now, you can at least listen for new Edge Nodes in the [MQTT Engine]Engine Info/Edge Nodes folder. But, it seems you want more than just what this has to offer today.
What is the max refresh rate of the tags within the [MQTT Engine]Engine Info/Edge Nodes folder?
Those tags will go a long way for what I’m looking for. Thinking of setting a Tag Change Gateway Event Script bound to a couple of those tags, but need to ensure my script is faster than the max refresh rate, otherwise I could tax the Ignition Gateway when there are a lot of nodes being added.
The rate is really based on how quickly new Edge Nodes are coming in. It doesn’t run on a timer. If new NBIRTH messages are arriving and able to be processed quickly (i.e. don’t contain a lot of metrics) - this could update every couple of milliseconds. So, it could be quite fast…