You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

The Cloud Injector Modules publish data in a JSON format with each message comprising a Topic and Payload.

The Topic contains the following key/value pairs:

  • namespace
    • Set as "spBv1.0"
  • edgeNodeDescriptor
    • The combination of the Group ID and Edge Node ID which provides a unique identifier for the Edge Node
  • groupId
    • The Group ID
  • edgeNodeId
    • The Edge Node ID
  • deviceId
    • The Device ID
  • type
    • Message type including:
      • NBIRTH
      • DBIRTH
      • NDATA
      • DDATA
      • NDEATH
      • DDEATH


The deviceId is only included for the device level message types of DBIRTH, DDATA and DDEATH


The Payload contains the following key/value pairs:

  • timestamp
    • The time stamp that the payload was created
  • metrics
    • An array containing data specific to the message type being published
    • Each object in the array will include the following name/value pairs:
      • name
      • timestamp
      • dataType
      • value
    • Additional name/value pairs in the DBIRTH or NBIRTH messages only include:
      • metaData ****
      • properties
        • The Quality property. See the Ignition Tag Property Enum Reference for the Data Quality value reference
        • Additional property values such as engHigh, engLow etc are included if they have been changed from the Ignition default. See the Ignition Tag Properties reference for all available properties.
  • seq
    • The message sequence number used to ensure that messages are processed in the correct order


Sample JSON messages

Using a simple tag tree structure shown below, we can show how these JSON formatted messages will be generated:

NBIRTH

The metrics array for the Edge Node BIRTH message will contain:

  • A Birth/Death sequence number to track the Sparkplug session of the Edge client
  • Any Edge Node tags defined in the Edge Node folder


Edge Node Birth message
{
  "topic": {
    "namespace": "spBv1.0",
	"edgeNodeDescriptor": "G1/E1",
    "groupId": "G1",
    "edgeNodeId": "E1"
	"type": "NBIRTH"
  },
  "payload": {
    "timestamp": 1638223073190,
    "metrics": [
      {
        "name": "bdSeq",
        "timestamp": 1638223073187,
        "dataType": "Int64",
        "value": 5
      },
	  {
        "name": "Tag 4",
        "timestamp": 1638223073156,
        "dataType": "Int32",
        "metaData": {},
        "properties": {
             "Quality": {
                 "type": "Int32",
                 "value": 192
			 }
        },
        "value": 100
      {,       
	  {
        "name": "Tag 5",
        "timestamp": 1638223073001,
        "dataType": "Boolean",
        "metaData": {},
        "properties": {
             "Quality": {
                 "type": "Int32",
                 "value": 192
             }
        },
        "value": false
      }
     ],
    "seq": 0
  }
}


DBIRTH

The metrics array for the Device BIRTH message will contain:

  • Any Device tags defined in the Device folder


Device BIRTH message
{
  "topic": {
      "namespace": "spBv1.0",
      "edgeNodeDescriptor": "G1/E1",
      "groupId": "G1",
      "edgeNodeId": "E1",
      "deviceId": "D1",
      "type": "DBIRTH"
  },
  "payload": {
    "timestamp": 1638223073192,
    "metrics": [
      {
        "name": "Tag 1",
        "timestamp": 1638223073192,
        "dataType": "Int32",
        "metaData": {},
        "properties": {
            "Quality": {
                "type": "Int32",
                "value": 192
            }
        },
        "value": 1
        },
      {
        "name": "Tag 2",
        "timestamp": 1638223073011,
        "dataType": "Boolean",
        "metaData": {},
        "properties": {
             "Quality": {
                 "type": "Int32",
                 "value": 192
             }
        },
        "value": false
      },
      {
        "name": "Tag 3",
        "timestamp": 1638223073041,
        "dataType": "Float",
        "metaData": {},
        "properties": {
             "Quality": {
                 "type": "Int32",
                 "value": 192
             }
        },
        "value": 1.23
      }
     ],
    "seq": 1
  }
}


DDATA

The metrics array for the Device DDATA message will contain: 

  • Any Device tags defined in the Device folder that have changed, For example if we write the value 10 to Tag 1


Device DATA message
{
  "topic": {
    "namespace": "spBv1.0",
	"edgeNodeDescriptor": "G1/E1",
    "groupId": "G1",
    "edgeNodeId": "E1",
    "deviceId": "D1"
	"type": "DDATA"
  },
  "payload": {
    "timestamp": 1638223663812,
    "metrics": [
      {
        "name": "Tag 1",
        "timestamp": 1638223662800,
        "dataType": "INT32",
        "value": 10
      }
    ],
    "seq": 2
  }
}


NDEATH


DDEATH





  • No labels