MQTT in general is considered a lightweight protocol however there are some additional configuration options to further reduce the overall bandwidth when using Ignition and MQTT modules over a cellular connection.
Setting the deadband value on the Edge side tags can reduce the amount of tag changes going from Edge to Engine for tags whose values change by small amounts.
Use PrimaryHostId at Engine and Transmission
Using the PrimaryHostId at Engine and Transmission can cut down on unnecessary rebirth requests from Engine.
The primary host ID is an ID to identify the main application that is receiving the MQTT data to guarantee that we don't lose the data and ultimately deliver it to the application. The ID is used for state notifications which are used to notify the Edge Node if the primary application goes offline.
Unless absolutely necessary, it is recommended that MQTT Transmission is configured to convert UDTs.
This will cut down on the size of Birth message by excluding UDT definitions and the tags representing the UDT member will retain their member path prefixed by the UDT Instance name.
Enable compression and/or aliasing at the Edge
Enabling compression and/or aliasing at the Edge can reduce overall Sparkplug MQTT message size.
For aliasing, tag names are replaced by aliases in order to optimize payload size when publishing data.
For compression, either the DEFLATE or GZIP algorithm can be used to use to compress payloads before they are published.
Include only the necessary tag properties in Birth messages
Both Transmission and Engine supported a Filtered Properties list to filter/block non default tag properties from being published in birth messages.
Do not “unfilter” unnecessary tag properties by modifying the Engine and Transmission “Filtered Properties” list to include non-default tag properties in Birth messages
Additional Resources
- Inductive Automation's Ignition download with free trial
- Cirrus Link Solutions Modules for Ignition
- Support questions
- Sales questions
- About Cirrus Link