Generic Data Model Extensions¶
Introduction¶
This document outlines the well-known properties and schema extensions for the Generic Data Model (GDM) schema. By utilizing these extension properties, you can incorporate additional information into your GDM messages, which in turn, offers more context and insights for the ingested data. Buhler Insights leverages these extensions to deliver enhanced functionality.
Well-known message-level metadata¶
Message metadata location¶
{
"deviceId": "Fast_Baker_42",
"messageId": "d32779a6-9b8e-4fa0-9941-9a147040f24a",
"messageType": "state",
"messageVersion": "1.0",
"metadata": {
"jobStart": "2022-09-23T14:30:59.1234567Z" // Message metadata property
},
"data": [...]
}
Message metadata properties¶
The following table lists the well-known message metadata properties that can be used in GDM messages.
Property | Type | Access Scope | Description |
---|---|---|---|
topologyReference | String | Public | Used to reference a topology element, e.g. a machine number. |
topologyReferenceType | String | Public | Defines the TopologyReference "type", e.g. topology-machine-machineNumber. |
messageIntervalMilliseconds | Integer | Public | Expected interval in milliseconds of the message type. This information is used to setup message tracking. |
plantId | String | Internal | The plant identifier. |
tenantId | String | Internal | The tenant identifier. |
timeZoneId | String | Internal | IANA Time Zone Database identifier. |
correlationId | String | Internal | Large messages are split and related using this GUID property. |
jobStartTime | String | Internal | The start time of the job. |
jobEndTime | String | Internal | The end time of the job. |
jobId | String | Internal | The job identifier. |
jobName | String | Internal | The name of the job. |
recipeName | String | Internal | The name of the recipe. |
dataTransmissionType | String | Internal | Specifies if the data points in the message are 'delta' or a 'keyFrame' items. |
Important
Internal properties must not be set by the producer. Those will be set by the ingestion process.
Well-known data metadata¶
Data metadata location¶
{
"deviceId": "Fast_Baker_42",
"messageId": "d32779a6-9b8e-4fa0-9941-9a147040f24a",
"messageType": "state",
"messageVersion": "1.0",
"data": [
{
"name": "Temperature_Heater",
"metadata": {
"unit": "C",
"datapointSourceId": "oven1" // Data metadata property
},
"values": [
{
"deviceTimestamp": "2020-01-16T09:30:02.500Z",
"value": 120.3
},
{
"deviceTimestamp": "2020-01-16T09:31:09.000+01:00",
"value": 139.8
}
]
},
{
"name": "Temperature_Heater",
"metadata": {
"unit": "�C",
"datapointSourceId": "oven2" // Data metadata property
},
"values": [
{
"deviceTimestamp": "2020-01-16T09:30:02.500Z",
"value": 120.3
},
{
"deviceTimestamp": "2020-01-16T09:31:09.000+01:00",
"value": 139.8
}
]
}
]
}
Data metadata properties¶
The following table lists the well-known message metadata properties that can be used in GDM messages.
Property | Type | Access Scope | Description |
---|---|---|---|
datapointSourceId | String | Public | Used to reference a data source, e.g. a room number and distinguish data points with the same names, e.g. temperature. |
datapointAddress | String | Public | The exact address of the data source e.g. OPC UA node id. |
logicalPath | String | Public | Hierarchical path to the data source e.g. roll1::left::temperature. |
logicalName | String | Public | Logical name of the data source e.g. Top roll, left sensor. |
conditionId | String | Public | Used to correlate job events e.g. Die Casting start/stop events. |
conditionName | String | Internal | The name of an opc ua condition |
sourceName | String | Internal | The source of an opc ua condition |
topologyReference | String | Public | Used to reference a topology element, e.g. a machine number. |
topologyReferenceType | String | Public | Defines the TopologyReference "type", e.g. topology-machine-machineNumber. |
active | Boolean | Public | Used to indicate if an alarm is active or not. |
severity | String | Public | Used to indicate the severity of an alarm. |
reason | String | Public | Used to indicate the reason of an alarm. |
state | String | Public | Used to indicate the state of an alarm. |
text | String | Public | The text description of an alarm. |
jobStartTime | String | Internal | The start time of the job. |
jobEndTime | String | Internal | The end time of the job. |
jobId | String | Internal | The job identifier. |
jobName | String | Internal | The name of the job. |
recipeName | String | Internal | The name of the recipe. |
dataTransmissionType | String | Internal | Specifies if the data point is a 'delta' or a 'keyFrame'. |
```docshelf-metadata
{"environments":[],"pdf-download":true}