At the moment, if you have MQTT Engine connected to a device, and Ignition reference tags to reference the MQTT tags with history on, backfill data from MQTT doesn’t transfer to the reference tag if the connection to the MQTT device goes down.
If you enable history on the MQTT tag itself, then it backfills fine once connection to the MQTT device is re-established.
It would be great if this backfill data was transferred across to the tag(s) that reference it.
This is possible to impliment this via scripting,we have this feature working ,where the mqtt history of tag is backfilled and then is copied to any tag that references it.
So I updated to 4.0.9 from the Ignition modules download page and I can’t find the “Allow Back fill data”. Is there some version I’m not seeing? What version are you running of the engine and transmission?
OK, I’ve checked both boxes, and even restarted Ignition and still can’t get it to work. I’m just using the simulator on my desktop but running Ignition 8.1.11 and 4.0.9 of the plugins. To test it I just disabled the Engine which causes the Transmission to start storing the data. I let it sit for a bit and re-enalbed the Engine and my MQTT history fills in, but my tag referencing the MQTT tag never does.
I’m also experiencing some unexpected behavior when forwarding data to reference tags. It looks like I’m only getting 2 minutes of backfill. This graph shows the source tag (Blue) with all the forwarded data backfilled, a derived tag (Red) with none of the historical backfilled, and a reference tag (Green) with only two minutes of backfilled data. Is this a setting I can adjust somewhere?
I have gotten some clarity on this. The key is that all data should come into the system in chronological order. If that condition is met then all data will propagate to the correct history locations - including any reference tags that use that tag source.
If a data point comes into the system with a timestamp older than the current value’s timestamp you have two choices: 1. Ignore the timestamp and treat it like it is “now” data. 2. Enable back fill on the provider so that the timestamp is respected, but if it is older than the current value, it will only go into history and not update the tag value. That means that any reference tags that used that tag source will never see the value and therefore never make it into history.
So in summary - as long as the forwarded data comes in chronologically, everything will work by default (even without the backfill option enabled).