Hi,
We have an issue after the 8.1 to 8.3 upgrade, and would like to get with support:
We’ve identified a breaking behavior change after upgrading to Ignition 8.3 related to browsing tags under the MQTT Engine provider.
Historically, we have used system.tag.browse() to dynamically discover tags under both standard providers (e.g. [default]) and MQTT Engine folders. This approach has worked reliably in prior Ignition versions.
For example, the following script continues to work as expected against a standard provider:
def getTags(path):
filter = {'tagType': 'AtomicTag', 'tagType': 'UdtInstance'}
results = system.tag.browse(path, filter)
tags = []
for result in results.getResults():
tags.append(result['fullPath'])
return tags
getTags('[default]Alarms_Data_Flatlines/Data')
This returns a populated list of the tags inside the folder, as expected.
However, the same script no longer returns any results when executed against an MQTT Engine path in Ignition 8.3:
getTags('[MQTT Engine]Edge Nodes/FRG0008/RM1130')
The result is an empty list ([]), despite the folder containing valid tags that are visible in the tag browser and actively updating.
I only have MQTT on my 8.1 system at the moment but have you tried removing all your filters and first running only the browse to verify if it returns anything?
results = system.tag.browse(path="[MQTT Engine]")
for result in results:
print result['fullPath']
Thanks,
Nol, I can browse the MQTT Engine provider and it finds the folders fine, but under my expected path I’m only seeing tagType=Folder and I’m not getting any results back for AtomicTag or UdtInstance, so it looks like the Edge node metrics aren’t materializing in MQTT Engine at that level.
def getTags(path):
results = system.tag.browse(path)
tags = []
for result in results.getResults():
tags.append(result['fullPath'])
print result['fullPath'], result['tagType']
return tags
def getFilteredTags(path, tagType):
results = system.tag.browse(path, {'tagType': tagType})
tags = []
for result in results.getResults():
tags.append(result['fullPath'])
print result['fullPath']
return tags
path = '[MQTT Engine]Edge Nodes/FRG0008'
getTags(path)
getFilteredTags(path, 'AtomicTag')
getFilteredTags(path, 'UdtInstance')
what could cause MQTT Engine to show only folders (no atomic tags/metrics) even though the transmitter is enabled and I can see the node/folder structure?