Use MQTT UNS to retrieve linked Historian PLC ID object

The end goal here is to have a UNS (unified namespace), but also use that same UNS to retrieve historical data.

I realize with MQTT, it's only the real-time value, but if we could use the MQTT tree structure and possibly extended properties from it, maybe then we could use at the very least get the binding ID relationship to the SQL historian data. From there would be a separate REST call to actually retrieve the SQL data.

I would assume somewhere in Ignition, this binding relationship between PLCs and MQTT tags must be stored, where it could be exposed and used?? I don't want a UNS system, that is only real-time, we need history as well.

I feel like this is a topic that never gets covered anywhere, and I have found no information in searches about this.

That information isn't present in MQTT at all, as it is a function of the subscriber, not the publisher.

You'll need your own layer for such meta data (extracted from the historian settings of the receiving Ignition tags, perhaps). Possibly via an API exposed by WebDev.

I brought up my test ignition server, added the Chariot MQTT modules, and configured a couple tags. Started looking in the ignition system datatables, which does include some TRANMISSION datatables, but not the info needed to build this relationship.

Ignition datatables can be found at the link below.
http://localhost:8088/web/status/sys.internaldb

The transmission module seems to be the one that most likely contains the relationship links between Ignition PLC tags - to - MQTT tags, but I think I'm going to see if I can get in touch with Chariot, to learn more.

Transmission is the publisher side of the relationship, so of course there's nothing there. But the Engine side's config tables won't have what you are looking for either, because Engine doesn't control historization. Historization isn't part of MQTT. There's no standardized linkage for history of an MQTT item.

You have to look at tag properties related to historization. (Looking in the internal database is not a stable interface, and is going away soon. Use Ignition's scripting APIs.)