This object links to a Broker Connection to publish all data collected by Edge ACM in Sparkplug B format.
Table of Contents |
---|
General
...
Name
A unique identifier for this objectpublisher
Enabled
The current Enabled status of this publisher; nothing When enabled, data will be published if it is not enabled.
Folder
The parent folder of this object
MQTT
...
Publish QoS
The Quality of Service for published messages
0 - At most once (least bandwidth, least reliable)
1 - At least once (middle bandwidth, middle reliability)
2 - Once and only once (most bandwidth, most reliable)
Subscribe QoS
The requested Quality of Survice for subscribed messages (typically tag value writes from remote clients)
0 - At most once (least bandwidth, least reliable)
1 - At least once (middle bandwidth, middle reliability)
2 - Once and only once (most bandwidth, most reliable)
Broker Connection
The Broker Connection object used by this Sparkplug B Publisher object
Sparkplug B
...
Group ID
The Group ID used in the Sparkplug B message, . This is a name that can be shared by multiple devices so that clients can more easily group their published data.
Node ID
The identifier used in the Sparkplug B message, it . It should be unique on the broker to avoid confusion
Primary Host ID
Optional. The Host ID the publisher expects to be receiving data. If a value is provided, the publisher will stop when the expected Host is offline then resume publishing and backfill when the Host comes online
Disable Tag Aliases
When Tag Aliases are disabled, the full tag name will be sent with each update of tag values. This can be useful for clients that missed the Birth BIRTH notice or to manually read data, but .
Note |
---|
Disabling Tag Aliases requires more bandwidth |
Backfill
...
Backfill to Disk
Enable storing Backfill data on disk instead of in RAM. On most devices this will allow more storage.
Disk Location
The location on the Linux system that backfill data will be stored.
Disk Memory Allocated for Buffered Values (mb)
The maximum amount of backfill data to be stored on the disk.
Split Backfill Messages
Divide up backfill messages rather than sending a single large ddata DDATA message
Tag Values per Message
When splitting the backfill message, set the maximum number of tag values sent per message
Advanced Sparkplug
...
Publish Arrays As
If arrays of data are being published in the metrics, this option will determine how the array is published. The ‘String’ option will publish your data as a string value, the ‘Dataset’ option will publish your data in a single column dataset, and the ‘ByteValueArray’ will publish your data in its base64 byte value representation. By default, this option is set to ‘String’.
Include Timestamps in Metrics
Turn this option on if timestamps are needed in each metric data value. By default, this option is off (unchecked box).
Republish Payload After Disconnect
On When QoS is 1 or 2 , this setting will force eACM to republish the most recently sent message if it lost the broker connection without confirmation that the message was received
Serialize Publishing
On When QoS is 1 or 2 , this setting ensures packages are published in sequence and only after the previous message receipt is confirmed
Include Tag Quality in Metrics
If checked, the tag quality of each tag will be published in the metric alongside the value of each tag
Include initial value in Birth Message
If checked the initial value will be included in DBIRTH messages
Out of Schedule Publish allowed
When checked, if a majority of tags in a device have a quality change then an out of schedule publish will take place. This allows the publisher to send DDEATH and DBIRTH messages when it loses and regains connection to an end device. If set to false device messages will be limited to only publish at scheduled times.
Delay Between Births (s)
The minimum amount of time to wait between rebirth messages, if a rebirth request is issued during the delay the next birth message will not be sent until after the delay
Advanced MQTT
...
Delay Between Publishes (ms)
The time in milliseconds between published messages
Info
...
Information on the installed version of this object
MQTT Topic Examples
For the following example, eACM is collecting data from a device named “Device1”.
AUTOSOL MQTT’s SparkplugB publisher has a GroupID of “LocalGroup” and NodeID of “FirstNode” (set on the SparkplugB tab).
What topics shoudl appear in the broker?
When the publisher first starts, there will be a node birth:
Code Block |
---|
spBv1.0/LocalGroup/NBIRTH/FirstNode |
Followed by a birth message for our device(s). These will contain the initial values for all of the tags associated with each device:
Code Block |
---|
spBv1.0/LocalGroup/DBIRTH/FirstNode/Device1 |
Finally, in the course of normal operation, there will be a series of data messages at a rate defined by the Publish Interval in the device object, assuming any tag’s value has changed within that interval:
Code Block |
---|
spBv1.0/LocalGroup/DDATA/FirstNode/Device1 |
If communications are lost, or AUTOSOL MQTT is stopped, a node death message will arrive, signalling to all subscribers that the node is down:
Code Block |
---|
spBv1.0/LocalGroup/NDEATH/FirstNode |
As SparkplugB is not a human readable format, a Sparkplug Decoder is needed to resolve the contents of these messages, such as the Sparkplug Decoder in MQTT.fx