MQTT Transmission will publish any non-filtered tag properties which are different from the default Ignition tag property setting, including custom properties, in a BIRTH message.

Tag properties included in a DDATA message are limited to timestamp, dataType, value and quality.

Cirrus Link modules often optimize Sparkplug payloads by excluding Good tag qualities from a payload. If you see a Sparkplug payload that is missing the tag quality, it should be assumed to be Good.

Filtering or blocking the publish of tag properties

MQTT Transmission can be configured to filter/block tag properties from being published. The filtered properties list is configured here and by default contains:

accessRights;clampMode;deadband;deadbandMode;formatString;historicalDeadband;historicalDeadbandMode;historicalDeadbandStyle;historyEnabled;historyMaxAge;historyMaxAgeUnits;historyProvider;historySampleRate;historySampleRateUnits;historyTagGroup;historyTimeDeadband;historyTimeDeadbandUnits;opcItemPath;opcServer;permissionModel;rawHigh;rawLow;sampleMode;scaleFactor;scaleMode;scaledHigh;scaledLow;tagGroup;valueSource;expression;expressionType;ConfiguredTagPath;eventScripts;readPermissions;writePermissions;eventScripts;parentEnabled;sourceTagPath

Adding or updating a tag property

When you add or update a tag property at the Edge, you will need to perform a Transmission Refresh for the Edge Node. This will force MQTT Transmission to publish a BIRTH sequence for that Edge node with the BIRTH message containing the updated tag property. 

Discrepancy with tag properties at MQTT Engine

If you make tag property changes at MQTT Engine, you will see that these changes are overwritten when the next BIRTH message is received for example on a Transmission refresh or disconnect/reconnect. This is because the Edge is considered the 'source of truth' for the tag data and it is recommended that tag properties are made at the Edge and propagated to MQTT Engine.


Additional Resources


  • No labels