We make mobile units that have ignition edge systems that send tag data over mqtt to our main system.
When activating and recieving data from a single unit there are no issues and everything is working great. However, when we activate a second unit we get bad stale error on all of our tag bindings in Perspective. We have noticed that the connection to the edge systems go in and out of online status while both are connected (see video). Has anyone ever encountered this issue or similar issue using MQTT? Both units have unique IP adresses and function fine by themselves. The communication issue arises only when more than one is connected.
The stale MQTT tag topic pops up in the Cirrus Link forum from time to time. Perhaps the information you are looking for is there:
Thank you! I could not find any similar issues when browsing existing topics, so now I am waiting for approval to open a ticket in their forum as well. Hopefully it is a simple setting checkbox as we chose this system to monitor our sprawling fleet of devices.
In the docs, I have found a potential solution. However, my Client ID's are unique, but I am unsure if the description is unique as they are both "Edge Nodes" in the tag bindings.
Perhaps you should be asking this on the Cirrus Link forum.
I think he's waiting to do that.
It does sound like a "Colliding Edge Node Descriptors" problem as described in the documentation he found, though.
The issue is quite interesting as i believe it is "Colliding Edge Node Descriptors", as I understand that means that if I have two ignition edge systems the tag paths require unique names even though they are internal in the individual edge systems.. Meaning that they cannot both be "[edge]tagpath/tagpath..", but have to be [edge1] and [edge2] etc.. IF i have understood the documentation correctly
The tag paths in the publishing gateway don't matter as much as the Group ID and Edge Node ID that is being used for the MQTT Sparkplug side of things. The Group ID and Edge Node ID together must be unique, or there will be collisions.
If you have a tag at
[edge]FolderGroupID/FolderEdgeNodeID/FolderDeviceID/Tag1 and have blank settings for Group ID, Edge Node ID, and Device ID in the MQTT Transmission configuration, it will automatically start consuming those folders as those definitions. You can choose to pre-define any of them, for example setting Group ID and Edge Node ID and start your tag hierarchy like
[edge]FolderDeviceID/Tag1. This helps to not have as many "dead weight" folders in your tag hierarchy for publishing.
We ended up solving the issue by making the combination of Group ID and edge node ID unique. Before we had the uniqueness in our device ID, which caused the issue.