Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Basic Message Components

Topic 

The topic is published in the format [Namespace]spBv1.0/[Group ID]/[Message TypeVerb]/[Edge Node ID]/[Device ID] where:

...

  • Group ID

    • This identifies a logical grouping of Edge nodes and devices. For example, you might use a group ID to represent a particular factory or plant location. It ensures data segregation between different groups, aiding in efficient data management and security. This can be a region, a facility name, or any meaningful grouping of Edge Nodes within your application.

  • Verb
    • This provides an indication on how to handle the payload of the message. This includes whether the message is a birth certificate, death certificate, data message, command message, etc.
    • Options include

      NBIRTH: Edge node BIRTH certificate. This is a

    Message Type
  • Edge Node ID
    • This uniquely identifies a specific edge node within in a group. Edge nodes are responsible for reporting data on behalf of devices they control or are connected to. The Edge Node ID helps in directing commands to the correct node and segregating data from various nodes.The ID of the logical Edge Node. This is often the name of the system running Ignition with MQTT Transmission or Injectors.
  • Device ID (Optional)
      If the message relates to a specific device controlled by the edge node, the device ID uniquely identifies that device.
    • The ID of a device attached to the Ignition instance. This can be a PLC or logical grouping of tags that represent a physical or logical device connected to Ignition.


Note
MQTT Transmission transmitters or the Injector Tag Agents are designed to use the Ignition tag folder hierarchy (Tag Path) in combination with any configured Sparkplug IDs to dynamically build the Group ID, Edge Node Id and Device ID used in the topic.

Payload

The payload contains the following :

  • timestamp
    • The time stamp the payload was created
  • metrics
    • An array containing data specific to the message type metrics being published.
    • For each metric parameters Each object in the array will include:
    • name
      • timestamp
      • dataType array
      • value
      • Metric name when aliasing not used
      • For Ignition tags this is the tag folder hierarchy not used in the topic namespace
    • alias
      • Numeric value representing the metric when aliasing is used
    • timestamp
      • Timestamp associated with the last metric change event
    • dataType
      • DataType associated with the metric
    • isHistorical
      • Set to True to denote the metric represents a historical value
    • isTransient
      • Currently not used by MQTT Modules
      • Set to null
    • metaData
      • Used for customisation on top of the Sparkplug B protocol
      • Used by MQTT Modules for file transfers and custom decoding information for the metric
    • properties
      • Used for Ignition tag properties. See the Ignition
      Optional parameters included in the object include:
      • alias
        • Included in BIRTH and DATA messages
        • Tied to name on BIRTH and included in all later DATA messages  
      • isHistorical
        • Included in BIRTH and DATA messages
        • Flag denoting the metric represents a historical value
      • isTransient
        • Included in BIRTH and DATA messages
        • Flag denoting the metric is a transient value
        • Set to null 
      • isNull
        • Included in BIRTH and DATA messages
        • Flag denoting the metric has a null value
      • metaData
      • Included in BIRTH messages
      • Includes Tooltip and Documentation if they have been changed from the Ignition default. See the Ignition Tag Properties reference for all available properties.propertiesThe Quality propertyMay be included
      • Included in BIRTH

        and DATA messages
      • If the Quality property is not included, the quality of the tag data is considered Good. See the Ignition Tag Quality Code Reference for the Data Quality value reference
      • Additional property values
      • Only included in BIRTH messages
      • Included if they

        messages if values have been changed from the Ignition default or if they are custom properties.

        See the Ignition Tag Properties reference for all available properties.

         

        Tip
        Cirrus Link modules often optimise payloads by excluding Good metric qualities from a payload. If the payload is missing the quality property, it should be considered to be Good


    • value
    • isNull
      • Flag denoting the metric has a null value
  • seq
    • The message sequence number used to ensure that messages are processed in the correct order
  • uuid
    • Currently not used by MQTT Modules
    • Set to null
  • body
    • Currently not used by MQTT Modules
    • Set to null
Note
Where a parameter is not specific to the metric being published, it is set to null

Examples

Anchor
NBIRTH
NBIRTH
NBIRTH

Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/NBIRTH/TestEdge

...

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload

[timestamp=1713266473578, metrics=[ Metric [name=Node Control/Next Server, alias=null, timestamp=1713266473578, metrics=[ =1713266473578, dataType=MetricDataType [type=Boolean, intValue=11, clazz=class java.lang.Boolean], isHistorical=null, isTransient=null, metaData=null, properties=null, value=false, isNull=false], Metric [ name=Motor, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=Template, intValue=19, clazz=class org.eclipse.tahu.message.model.Template], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=03081691ee14510415e1036a4d1f416d, description=], properties=PropertySet [propertyMap={}], value=Template [version=, templateRef=, isDefinition=true, metrics=[Metric [name=T1, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={}], value=null, isNull=true]], parameters=[]], isNull=false], Metric [name=E_T1, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=String, intValue=12, clazz=class java.lang.String], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={engLow=PropertyValue [type=PropertyDataType [type=Double, intValue=10, clazz=class java.lang.Double], value=1.0, isNull=false], Quality=PropertyValue [type=PropertyDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], value=-2147483133, isNull=false], enabled=PropertyValue [type=PropertyDataType [type=Boolean, intValue=11, clazz=class java.lang.Boolean], value=false, isNull=false]}], value=null, isNull=true], Metric [name=Node ControlInfo/Next ServerTransmission Version, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=BooleanString, intValue=1112, clazz=class java.lang.BooleanString], isHistorical=null, isTransient=null, metaData=null, properties=null, value=false4.0.22-SNAPSHOT (b2024041611), isNull=false], Metric [name=MotorbdSeq, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=TemplateInt64, intValue=194, clazz=class orgjava.eclipse.tahu.message.model.Template], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=03081691ee14510415e1036a4d1f416d, description=], properties=PropertySet [propertyMap={}], value=Template [version=, templateRef=, isDefinition=true, metrics=[Metric [name=T1lang.Long], isHistorical=null, isTransient=null, metaData=null, properties=null, value=2, isNull=false], Metric [ name=E_M1, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=Int32Template, intValue=319, clazz=class java.lang.Integerorg.eclipse.tahu.message.model.Template], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={}propertyMap={enabled=PropertyValue [type=PropertyDataType [type=Boolean, intValue=11, clazz=class java.lang.Boolean], value=nullfalse, isNull=truefalse]}], parametersvalue=[]], isNullTemplate [version=, templateRef=Motor, isDefinition=false], metrics=[Metric [name=E_T1, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=StringInt32, intValue=123, clazz=class java.lang.StringInteger], isHistorical=nullfalse, isTransient=nullfalse, metaData=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={engUnit=PropertyValue [type=PropertyDataType [type=String, intValue=12, fileType=, md5=, description=], properties=PropertySet [propertyMap={engLow=clazz=class java.lang.String], value=RPM, isNull=false], Quality=PropertyValue [type=PropertyDataType [type=DoubleInt32, intValue=103, clazz=class java.lang.DoubleInteger], value=1.0-2147483133, isNull=false]}], value=null, isNull=true]], parameters=[]], Quality=PropertyValue [type=PropertyDataType isNull=false], Metric [name=Node Control/Rebirth, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=Int32Boolean, intValue=311, clazz=class java.lang.Integer], value=-2147483133Boolean], isHistorical=null, isTransient=null, metaData=null, properties=null, value=false, isNull=false], enabled=PropertyValue [type=PropertyDataType ], seq=0, uuid=null, body=null]


Panel
borderColorblack
borderStylesolid
titleSparkplug Payload Metrics (Examples)

Metric [name=Node Control/Next Server, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=Boolean, intValue=11, clazz=class java.lang.Boolean], value=false, isNull=false]}], isHistorical=null, isTransient=null, metaData=null, properties=null, value=nullfalse, isNull=truefalse],

Metric [name=Node Info/Transmission Version, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=String, intValue=12, clazz=class java.lang.String], isHistorical=null, isTransient=null, metaData=null, properties=null, value=4.0.22-SNAPSHOT (b2024041611), isNull=false]

, Metric [name=bdSeq, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=Int64, intValue=4, clazz=class java.lang.Long], isHistorical=null, isTransient=null, metaData=null, properties=null, value=2, isNull=false],

Metric [ name=E_M1Motor, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=Template, intValue=19, clazz=class org.eclipse.tahu.message.model.Template], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=03081691ee14510415e1036a4d1f416d, description=], properties=PropertySet [propertyMap={enabled=PropertyValue [type=PropertyDataType [type=Boolean, intValue=11, clazz=class java.lang.Boolean], value=false, isNull=false]}], value=Template [version=, templateRef=Motor, isDefinition=falsetrue, metrics=[Metric [name=T1, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=falsenull, isTransient=falsenull, metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={engUnit=PropertyValue [type=PropertyDataType [type=String, intValue=12, clazz=class java.lang.String], value=RPM, isNull=false], Quality=PropertyValue [type=PropertyDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], value=-2147483133, isNull=false]}], value=null, isNull=true]], parameters=[]], isNull=false],

Metric [name=Node Control/RebirthE_T1, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=BooleanString, intValue=1112, clazz=class java.lang.BooleanString], isHistorical=null, isTransient=null, metaData=null, properties=null, value=false, isNull=false]]MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, uuidfileName=null, body=null]

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload Metrics (Examples)

Metric [name=Node Control/Next Server, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=Boolean, intValue=11fileType=, md5=, description=], properties=PropertySet [propertyMap={engLow=PropertyValue [type=PropertyDataType [type=Double, intValue=10, clazz=class java.lang.BooleanDouble], isHistorical=null, isTransient=null, metaData=null, properties=null, value=false1.0, isNull=false]Metric [name=Node Info/Transmission Version, alias=null, timestamp=1713266473578, dataType=MetricDataType , Quality=PropertyValue [type=PropertyDataType [type=StringInt32, intValue=123, clazz=class java.lang.String], isHistorical=null, isTransient=null, metaData=null, properties=nullInteger], value=4.0.22-SNAPSHOT (b2024041611)-2147483133, isNull=false]Metric [name=bdSeq, alias=null, timestamp=1713266473578, dataType=MetricDataType , enabled=PropertyValue [type=PropertyDataType [type=Int64Boolean, intValue=411, clazz=class java.lang.LongBoolean], isHistoricalvalue=nullfalse, isTransient=null, metaData=null, propertiesisNull=false]}], value=null, value=2, isNull=falsetrue]

Metric [name=MotorT1, alias=null, timestamp=1713266473578, dataType=MetricDataType [type=TemplateInt32, intValue=193, clazz=class org.eclipse.tahu.message.model.Templatejava.lang.Integer], isHistorical=nullfalse, isTransient=nullfalse, metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=03081691ee14510415e1036a4d1f416d, description=], properties=PropertySet [propertyMap={}], value=Template [version=, templateRef=, isDefinition=true, metrics=[Metric [name=T1, alias=null, timestamp=1713266473578, dataType=MetricDataType engUnit=PropertyValue [type=PropertyDataType [type=String, intValue=12, clazz=class java.lang.String], value=RPM, isNull=false], Quality=PropertyValue [type=PropertyDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={}], value=null, isNull=true]], parameters=[]], isNull=false]], value=-2147483133, isNull=false]}], value=null, isNull=true]], parameters=[]], isNull=false]


Anchor
DBIRTH
DBIRTH
DBIRTH

Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/DBIRTH/TestEdge/TestDevice


Panel
borderColorblack
borderStylesolid
titleSparkplug Payload
Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/NBIRTH/TestEdge/TestDevice

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload

[timestamp=1713266459127, metrics=[Metric [name=DMetric [name=E_T1, alias=null, timestamp=17132664735781713266459127, dataType=MetricDataType [type=String, intValue=12, clazz=class java.lang.String], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={engLowQuality=PropertyValue [type=PropertyDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], value=192, isNull=false], enabled=PropertyValue [type=PropertyDataType [type=DoubleBoolean, intValue=1011, clazz=class java.lang.DoubleBoolean], value=1.0true, isNull=false], Qualitydocumentation=PropertyValue [type=PropertyDataType [type=Int32String, intValue=312, clazz=class java.lang.IntegerString], value=-2147483133Some helpful docs, isNull=false], enabled=PropertyValue [type=PropertyDataType }], value={ "Key1": "Value3" }, isNull=false], Metric [name=Device Control/Rebirth, alias=null, timestamp=1713266459127, dataType=MetricDataType [type=Boolean, intValue=11, clazz=class java.lang.Boolean], value=false, isNull=false]}]isHistorical=null, isTransient=null, metaData=null, properties=null, value=nullfalse, isNull=truefalse]Metric [name=T1D_M1, alias=null, timestamp=17132664735781713266459127, dataType=MetricDataType [type=Int32Template, intValue=319, clazz=class java.lang.Integerorg.eclipse.tahu.message.model.Template], isHistorical=falsenull, isTransient=falsenull, metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={engUnitenabled=PropertyValue [type=PropertyDataType [type=StringBoolean, intValue=1211, clazz=class java.lang.StringBoolean], value=RPM, isNull=false], Quality=PropertyValue [type=PropertyDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], value=-2147483133true, isNull=false]}], value=null, isNull=true]], parameters=[]], isNull=false]

...

[timestamp=1713266459127Template [version=, templateRef=Motor, isDefinition=false, metrics=[Metric [name=D_T1, alias=null, timestamp=1713266459127, dataType=MetricDataType [type=StringInt32, intValue=123, clazz=class java.lang.StringInteger], isHistorical=nullfalse, isTransient=nullfalse, metaData=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={Quality=PropertyValue [type=PropertyDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], value=192, isNull=false], enabled=PropertyValue [type=PropertyDataType [type=Boolean, intValue=11, clazz=class java.lang.Boolean], value=true, isNull=false], documentation={engHigh=PropertyValue [type=PropertyDataType [type=StringDouble, intValue=1210, clazz=class java.lang.StringDouble], value=Some helpful docs60.0, isNull=false]}], value={ "Key1": "Value3" }12, isNull=false]], parameters=[]], isNull=false]], seq=1, uuid=null, body=null]


Panel
borderColorblack
borderStylesolid
titleSparkplug Payload Metrics (Examples)

Metric [name=Device Control/Rebirth, alias=null, timestamp=1713266459127, dataType=MetricDataType [type=Boolean, intValue=11, clazz=class java.lang.Boolean], isHistorical=null, isTransient=null, metaData=null, properties=null, value=false, isNull=false]

Metric [name=D_M1T1, alias=null, timestamp=1713266459127, dataType=MetricDataType [type=TemplateString, intValue=1912, clazz=class orgjava.eclipse.tahu.message.model.Templatelang.String], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={enabledQuality=PropertyValue [type=PropertyDataType [type=BooleanInt32, intValue=113, clazz=class java.lang.BooleanInteger], value=true192, isNull=false]}], value=Template [version=, templateRef=Motor, isDefinition=false, metrics=[Metric [name=T1, alias=null, timestamp=1713266459127, dataType=MetricDataType [type=Int32, intValue=3, enabled=PropertyValue [type=PropertyDataType [type=Boolean, intValue=11, clazz=class java.lang.Boolean], value=true, isNull=false], documentation=PropertyValue [type=PropertyDataType [type=String, intValue=12, clazz=class java.lang.IntegerString], isHistoricalvalue=falseSome helpful docs, isTransientisNull=false]}], metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={engHigh=PropertyValue [type=PropertyDataType [type=Double, intValue=10, clazz=class java.lang.Double], value=60.0, isNull=false]}], value=12, isNull=false]], parameters=[]], isNull=false]], seq=1, uuid=null, body=null]

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload Metrics (Examples)

value={ "Key1": "Value3" }, isNull=false]

Metric [name=D_M1, alias=null, timestamp=1713266459127, dataType=MetricDataType [type=Template, intValue=19, clazz=class org.eclipse.tahu.message.model.Template], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={enabled=PropertyValue [type=PropertyDataType Metric [name=Device Control/Rebirth, alias=null, timestamp=1713266459127, dataType=MetricDataType [type=Boolean, intValue=11, clazz=class java.lang.Boolean], isHistoricalvalue=nulltrue, isTransient=null, metaData=null, properties=null, valueisNull=false]}], value=Template [version=, templateRef=Motor, isDefinition=false, isNullmetrics=false][Metric [name=D_T1, alias=null, timestamp=1713266459127, dataType=MetricDataType [type=StringInt32, intValue=123, clazz=class java.lang.StringInteger], isHistorical=nullfalse, isTransient=nullfalse, metaData=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={QualityengHigh=PropertyValue [type=PropertyDataType [type=Int32Double, intValue=310, clazz=class java.lang.IntegerDouble], value=192, isNull=false], enabled=PropertyValue [type=PropertyDataType [type=Boolean, intValue=11, clazz=class java.lang.Boolean], value=true, isNull=false], documentation=PropertyValue [type=PropertyDataType [type=String, intValue=12, clazz=class java.lang.String60.0, isNull=false]}], value=Some helpful docs12, isNull=false]}], value={ "Key1": "Value3" }parameters=[]], isNull=false]]

Anchor
NDATA
NDATA
NDATA

Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/NDATA/TestEdge


Panel
borderColorblack
borderStylesolid
titleSparkplug Payload

[timestamp=1713266453938, metrics=[ Metric [name=DE_M1, alias=null, timestamp=17132664591271713266452937, dataType=MetricDataType [type=Template, intValue=19, clazz=class org.eclipse.tahu.message.model.Template], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={enabled=PropertyValue [type=PropertyDataType [type=Boolean, intValue=11null, properties=null, value=Template [version=, templateRef=Motor, isDefinition=false, metrics=[Metric [name=T1, alias=null, timestamp=1713266445706, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Boolean].Integer], isHistorical=null, isTransient=null, metaData=null, properties=null, value=true12, isNull=false]}], valueparameters=Template [version=]], templateRefisNull=Motor, isDefinition=false], metrics=[Metric [name=E_T1, alias=null, timestamp=17132664591271713266452939, dataType=MetricDataType [type=Int32String, intValue=312, clazz=class java.lang.IntegerString], isHistorical=falsenull, isTransient=falsenull, metaData=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={engHigh=PropertyValue [type=PropertyDataType [type=Double, intValue=10, clazz=class java.lang.Double], value=60.0, isNull=false], description=], properties=PropertySet [propertyMap={}], value=12{ "Key1": "Value3" }, isNull=false]], parameters=[]], isNull=false]]

...

 seq=6, uuid=null, body=null]


Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/NDATA/TestEdge

Payload Metrics (Examples)
Panel
borderColorblack
borderStylesolid
titleSparkplug Payload

[timestamp=1713266453938, metrics=[ Metric [name=E_M1, alias=null, timestamp=1713266452937, dataType=MetricDataType [type=Template, intValue=19, clazz=class org.eclipse.tahu.message.model.Template.message.model.Template], isHistorical=null, isTransient=null, metaData=null, properties=null, value=Template [version=, templateRef=Motor, isDefinition=false, metrics=[Metric [name=T1, alias=null, timestamp=1713266445706, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=null, isTransient=null, metaData=null, properties=null, value=Template [version=, templateRef=Motor, isDefinition=false, metrics=[12, isNull=false]], parameters=[]], isNull=false]

Metric [name=E_T1, alias=null, timestamp=17132664457061713266452939, dataType=MetricDataType [type=Int32String, intValue=312, clazz=class java.lang.IntegerString], isHistorical=null, isTransient=null, metaData=null, properties=null, value=12=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={}], value={ "Key1": "Value3" }, isNull=false]], parameters=[]], isNull=false],

Anchor
DDATA
DDATA
DDATA

Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/DDATA/TestEdge/TestDevice


Panel
borderColorblack
borderStylesolid
titleSparkplug Payload 1

[timestamp=1713266761298, metrics=[Metric [name=E_T1DT1, alias=null, timestamp=17132664529391713266730315, dataType=MetricDataType [type=StringInt32, intValue=123, clazz=class java.lang.String], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={}], value={ "Key1": "Value3" }, isNull=false]], seq=6, uuid=null, body=null]

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload Metrics (Examples)
Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/DDATA/TestEdge/TestDevice

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload

Metric [name=E_M1Integer], isHistorical=true, isTransient=null, metaData=null, properties=null, value=5, isNull=false], Metric [name=DT1, alias=null, timestamp=17132664529371713266730416, dataType=MetricDataType [type=TemplateInt32, intValue=193, clazz=class orgjava.eclipse.tahu.message.model.Templatelang.Integer], isHistorical=nulltrue, isTransient=null, metaData=null, properties=null, value=Template [version=, templateRef=Motor, isDefinition=false, metrics=[=null, value=6, isNull=false], Metric [name=T1DT1, alias=null, timestamp=17132664457061713266730516, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=nulltrue, isTransient=null, metaData=null, properties=null, value=127, isNull=false]], parameters=[]], isNull=false] Metric [name=E_T1DT1, alias=null, timestamp=17132664529391713266730617, dataType=MetricDataType [type=StringInt32, intValue=123, clazz=class java.lang.StringInteger], isHistorical=nulltrue, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=]null, properties=PropertySet [propertyMap={}]null, value={ "Key1": "Value3" }8, isNull=false]]

...

[timestamp=1713266761298, metrics=[ Metric [name=DT1, alias=null, timestamp=17132667303151713266730718, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=true, isTransient=null, metaData=null, properties=null, value=59, isNull=false]], seq=15, uuid=null, body=null]


Panel
borderColorblack
borderStylesolid
titleSparkplug Payload 1 Metrics (Examples)

Metric [name=DT1, alias=null, timestamp=17132667304161713266730315, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=true, isTransient=null, metaData=null, properties=null, value=65, isNull=false]

, Metric [name=DT1, alias=null, timestamp=17132667305161713266730416, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=true, isTransient=null, metaData=null, properties=null, value=76, isNull=false]

, Metric [name=DT1, alias=null, timestamp=17132667306171713266730516, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=true, isTransient=null, metaData=null, properties=null, value=8=null, properties=null, value=7, isNull=false]


Panel
borderColorblack
borderStylesolid
titleSparkplug Payload 2

[timestamp=1713266453943, metrics=[ , isNull=false], Metric [name=DT1D_M1, alias=null, timestamp=17132667307181713266452942, dataType=MetricDataType [type=Int32Template, intValue=319, clazz=class java.lang.Integerorg.eclipse.tahu.message.model.Template], isHistorical=truenull, isTransient=null, metaData=null, properties=null, value=9, isNull=false]], seq=15, uuid=null, body=null]

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload Metrics (Examples)

Template [version=, templateRef=Motor, isDefinition=false, metrics=[Metric [name=DT1T1, alias=null, timestamp=17132667303151713266445725, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=truenull, isTransient=null, metaData=null, properties=null, value=5=12, isNull=false]], parameters=[]], isNull=false]Metric [name=DT1D_T1, alias=null, timestamp=17132667304161713266452947, dataType=MetricDataType [type=Int32String, intValue=312, clazz=class java.lang.IntegerString], isHistorical=truenull, isTransient=null, metaData=null, properties=null, value=6, isNull=false]Metric [name=DT1, alias=null, timestamp=1713266730516, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=true, isTransient=null, metaData=null, properties=null, value=7, isNull=falseMetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={}], value={ "Key1": "Value3" }, isNull=false]], seq=7, uuid=null, body=null]


Panel
borderColorblack
borderStylesolid
titleSparkplug Payload 2 Metrics (Examples)

[timestamp=1713266453943, metrics=[ Metric [name=D_M1, alias=null, timestamp=1713266452942, dataType=MetricDataType [type=Template, intValue=19, clazz=class org.eclipse.tahu.message.model.Template], isHistorical=null, isTransient=null, metaData=null, properties=null, value=Template [version=, templateRef=Motor, isDefinition=false, metrics=[Metric [name=T1, alias=null, timestamp=1713266445725, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=null, isTransient=null, metaData=null, properties=null, value=12, isNull=false]], parameters=[]], isNull=false],  metrics=[Metric [name=D_T1, alias=null, timestamp=17132664529471713266445725, dataType=MetricDataType [type=StringInt32, intValue=123, clazz=class java.lang.StringInteger], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={}], value={ "Key1": "Value3" }null, properties=null, value=12, isNull=false]],  seq=7, uuid=null, body=null]

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload Metrics (Examples)

parameters=[]], isNull=false]

Metric [name=D_M1T1, alias=null, timestamp=17132664529421713266452947, dataType=MetricDataType [type=TemplateString, intValue=1912, clazz=class orgjava.eclipse.tahu.message.model.Templatelang.String], isHistorical=null, isTransient=null, metaData=null, properties=null, value=Template [version=, templateRef=Motor, isDefinition=false=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={}], value={ "Key1": "Value3" }, isNull=false]]

Anchor
NDEATH
NDEATH
NDEATH

Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/NDEATH/TestEdge


Panel
borderColorblack
borderStylesolid
titleSparkplug Payload

[timestamp=1713266459127, metrics=[Metric [name=T1bdSeq, alias=null, timestamp=17132664457251713266473578, dataType=MetricDataType [type=Int32Int64, intValue=34, clazz=class java.lang.IntegerLong], isHistorical=null, isTransient=null, metaData=null, properties=null, value=12, isNull=false]], parameters=[]], isNull=false]=null, properties=null, value=2, isNull=false]], seq=7, uuid=null, body=null]

Anchor
DDEATH
DDEATH
DDEATH

Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/DDEATH/TestEdge/TestDevice


Panel
borderColorblack
borderStylesolid
titleSparkplug Payload

[timestamp=1713266459127, metrics=[Metric [name=bdSeqMetric [name=D_T1, alias=null, timestamp=17132664529471713266442358, dataType=MetricDataType [type=StringInt64, intValue=124, clazz=class java.lang.String], isHistorical=null, isTransient=null, metaData=MetaData [isMultiPart=false, contentType=application/json, size=0, seq=0, fileName=, fileType=, md5=, description=], properties=PropertySet [propertyMap={}], value={ "Key1": "Value3" }Long], isHistorical=null, isTransient=null, metaData=null, properties=null, value=5, isNull=false]], seq=7, uuid=null, body=null]

Anchor

...

NCMD

...

NCMD

...

NCMD

Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/NDEATH/TestEdge

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload

...

Topic

spBv1.0/TestGroup/NCMD/TestEdge


Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/DDEATH/TestEdge/TestDevice

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload

...

Payload

[timestamp=1713266761298, metrics=[Metric [name=ET1, alias=null, timestamp=1713266730315, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=true, isTransient=null, metaData=null, properties=null, value=5, isNull=false]], seq=15, uuid=null, body=null]

Anchor
DCMD
DCMD
DCMD

Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/NCMD/TestEdge

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload

...

spBv1.0/TestGroup/DCMD/TestEdge/TestDevice


Sparkplug Payload
Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/TestGroup/DCMD/TestEdge/TestDevice

Payload

[timestamp=1713266761298, metrics=[Metric [name=DT1, alias=null, timestamp=1713266785263, dataType=MetricDataType [type=Int32, intValue=3, clazz=class java.lang.Integer], isHistorical=true, isTransient=null, metaData=null, properties=null, value=25, isNull=false]], seq=12, uuid=null, body=null]

Panel
borderColorblack
borderStylesolid
title

Anchor
STATE
STATE
STATE

Note

Sparkplug™ B payloads are not used for encoding in this payload and this allows Host/backend application(s) to work across Sparkplug™ payload types.


Panel
borderColorblack
borderStylesolid
titleSparkplug Topic

spBv1.0/STATE/primary_host_id

...

Panel
borderColorblack
borderStylesolid
titleSparkplug Payload

{ "online" : true,  "timestamp" : 1668114759262} 

or

or { "onlineoffline" : true,  "timestamp" : 1668114759452}

...