Skip to content

Sample Message for Timeseries Metadata

Timeseries Metadata Sample

The sample metadata message is relevant "c/{clientId}/o/opcua/v3/u/m/t" topic.

Resources like Asset Types, Assets and Aspect Types are created only by this operation. Update and Delete operations are not possible.

Note

The code below is just a json representation of the UADP message format. You have to create an UADP message in binary format before sending it to the topic.

Metadata Sample

Sample
{
    "networkMessageHeader": {
        "versionFlags": -112,
        "extendedFlags1": {
            "value": 132
        },
        "extendedFlags2": {
            "value": 8
        },
        "publisherId": "vehicle-001-publisher",
        "uadpversion": 0,
        "groupHeaderEnabled": false,
        "payloadHeaderEnabled": false,
        "timestampEnabled": false,
        "picoSecondsEnabled": false,
        "promotedFieldsEnabled": false,
        "securityEnabled": false,
        "chunkMessage": false,
        "networkMessageType": "DISCOVERY_RESPONSE",
        "extendedFlags2Enabled": true,
        "publisherIdEnabled": true,
        "publisherIdDataType": "String",
        "dataSetClassIdEnabled": false,
        "extendedFlags1Enabled": true
    },
    "payload": {
        "messages": [{
            "discoveryResponseHeader": {
                "responseType": "DATA_SET_METADATA_MESSAGE",
                "sequenceNumber": 0
            },
            "discoveryResponseMessage": {
                "dataSetWriterId": 1000,
                "metaData": {
                    "structureDataTypes": [{
                        "structureDefinition": {
                            "dataTypeId": {
                                "namespaceIndex": 1,
                                "value": 1,
                                "nullNodeId": false,
                                "idType": "Numeric"
                            },
                            "name": {
                                "namespaceIndex": 0,
                                "name": "ElectricEngine"
                            },
                            "defaultEncodingId": {
                                "namespaceIndex": 0,
                                "value": 12,
                                "nullNodeId": false,
                                "idType": "Numeric"
                            },
                            "baseDataType": {
                                "namespaceIndex": 0,
                                "value": 12,
                                "nullNodeId": false,
                                "idType": "Numeric"
                            },
                            "structureType": "< Ignored Value >",
                            "fields": [{
                                "name": "Voltage",
                                "description": {
                                    "text": "Shows voltage of the device"
                                },
                                "dataType": {
                                    "namespaceIndex": 0,
                                    "value": 11,
                                    "nullNodeId": false,
                                    "idType": "Numeric"
                                },
                                "valueRank": -1,
                                "optional": false
                            }, {
                                "name": "Current",
                                "description": {
                                    "text": "Shows current over the device"
                                },
                                "dataType": {
                                    "namespaceIndex": 0,
                                    "value": 11,
                                    "nullNodeId": false,
                                    "idType": "Numeric"
                                },
                                "valueRank": -1,
                                "optional": false
                            }]
                        }
                    }, {
                        "structureDefinition": {
                            "dataTypeId": {
                                "namespaceIndex": 1,
                                "value": 2,
                                "nullNodeId": false,
                                "idType": "Numeric"
                            },
                            "name": {
                                "namespaceIndex": 0,
                                "name": "Battery"
                            },
                            "defaultEncodingId": {
                                "namespaceIndex": 0,
                                "value": 12,
                                "nullNodeId": false,
                                "idType": "Numeric"
                            },
                            "baseDataType": {
                                "namespaceIndex": 0,
                                "value": 12,
                                "nullNodeId": false,
                                "idType": "Numeric"
                            },
                            "structureType": "< Ignored Value >",
                            "fields": [{
                                "name": "Charging",
                                "description": {
                                    "text": "Indicates whether it's currently charging"
                                },
                                "dataType": {
                                    "namespaceIndex": 0,
                                    "value": 1,
                                    "nullNodeId": false,
                                    "idType": "Numeric"
                                },
                                "valueRank": -1,
                                "optional": false
                            }, {
                                "name": "ChargeLevel",
                                "description": {
                                    "text": "Shows battery charge level"
                                },
                                "dataType": {
                                    "namespaceIndex": 0,
                                    "value": 6,
                                    "nullNodeId": false,
                                    "idType": "Numeric"
                                },
                                "valueRank": -1,
                                "optional": false
                            }]
                        }
                    }],
                    "name": "vehicle-001-publisher",
                    "description": {
                        "text": "OPCUA Pub/Sub Publisher for vehicle-001"
                    },
                    "fields": [{
                            "name": "vehicle-001/engine",
                            "description": {
                                "text": "Engine that provides the needed torque to move the vehicle",
                                "localeId": "< Ignored Value >"
                            },
                            "fieldFlags": {
                                "promotedField": false
                            },
                            "builtInDataType": "ExtensionObject",
                            "dataType": {
                                "namespaceIndex": 1,
                                "value": 1,
                                "nullNodeId": false,
                                "idType": "Numeric"
                            },
                            "dataSetFieldId": "< Ignored Value >",
                            "properties": [{
                                "encodingMask": 12,
                                "key": {
                                    "namespaceIndex": 0,
                                    "name": "Voltage_unit"
                                },
                                "value": "V"
                            }, {
                                "encodingMask": 12,
                                "key": {
                                    "namespaceIndex": 0,
                                    "name": "Current_unit"
                                },
                                "value": "A"
                            }]
                        },
                        {
                            "name": "vehicle-001/batteries/primary",
                            "description": {
                                "text": "Primary battery feeding the engine",
                                "localeId": "< Ignored Value >"
                            },
                            "fieldFlags": {
                                "promotedField": false
                            },
                            "builtInDataType": "ExtensionObject",
                            "dataType": {
                                "namespaceIndex": 1,
                                "value": 2,
                                "nullNodeId": false,
                                "idType": "Numeric"
                            },
                            "dataSetFieldId": "< Ignored Value >",
                            "properties": [{
                                "encodingMask": 12,
                                "key": {
                                    "namespaceIndex": 0,
                                    "name": "ChargeLevel_unit"
                                },
                                "value": "%"
                            }]
                        },
                        {
                            "name": "vehicle-001/batteries/secondary",
                            "description": {
                                "text": "Secondary battery feeding the engine",
                                "localeId": "< Ignored Value >"
                            },
                            "fieldFlags": {
                                "promotedField": false
                            },
                            "builtInDataType": "ExtensionObject",
                            "dataType": {
                                "namespaceIndex": 1,
                                "value": 2,
                                "nullNodeId": false,
                                "idType": "Numeric"
                            },
                            "dataSetFieldId": "< Ignored Value >",
                            "properties": [{
                                "encodingMask": 12,
                                "key": {
                                    "namespaceIndex": 0,
                                    "name": "ChargeLevel_unit"
                                },
                                "value": "%"
                            }]
                        }
                    ],
                    "configurationVersion": {
                        "majorVersion": {
                            "value": 123
                        },
                        "minorVersion": {
                            "value": 123
                        }
                    }
                },
                "statusCode": {
                    "value": 0,
                    "description": "",
                    "severity": 0,
                    "bad": false,
                    "good": true,
                    "notBad": true,
                    "notGood": false,
                    "notUncertain": true,
                    "uncertain": false,
                    "semanticsChanged": false,
                    "structureChanged": false,
                    "subcode": 0,
                    "infotype": 0,
                    "limitBits": 0,
                    "historianBits": 0,
                    "valueAsIntBits": 0,
                    "name": "GOOD",
                    "overflow": false
                }
            }
        }]
    }
}

Device Asset

If the metadata message above arrives in the OPC UA PubSub Service, some assets, aspect types and asset types are created in Asset Management as below:

Sample
    {
        "assetId": "967bbda37d5d4cd09a3c80cafcdea100",
        "tenantId": "connint5",
        "name": "vehicle-001-publisher",
        "timezone": "Europe/Berlin",
        "twinType": "performance",
        "parentId": "34308ff4497a4295856c3f87fac5556c",
        "typeId": "core.opcuadatamodel",
        "hierarchyPath": [{
            "assetId": "34308ff4497a4295856c3f87fac5556c",
            "name": "connint5"
        }],
        "_links": {
            "self": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/967bbda37d5d4cd09a3c80cafcdea100"
            },
            "aspects": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/967bbda37d5d4cd09a3c80cafcdea100/aspects"
            },
            "variables": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/967bbda37d5d4cd09a3c80cafcdea100/variables"
            },
            "location": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/967bbda37d5d4cd09a3c80cafcdea100/location"
            },
            "parent": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/34308ff4497a4295856c3f87fac5556c"
            },
            "children": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets?filter=%7B%22parentId%22:%22967bbda37d5d4cd09a3c80cafcdea100%22%7D"
            }
        }
    }

Hierarchy Assets

All the Hierarchy Assets are created as below:

Sample
    {
        "assetId": "2b9c1a342527440a90c7120afad20425",
        "tenantId": "connint5",
        "name": "vehicle-001",
        "timezone": "Europe/Berlin",
        "twinType": "performance",
        "parentId": "967bbda37d5d4cd09a3c80cafcdea100",
        "typeId": "core.opcuahierarcydatatype",
        "_links": {
            "self": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/2b9c1a342527440a90c7120afad20425"
            },
            "location": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/2b9c1a342527440a90c7120afad20425/location"
            },
            "parent": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/967bbda37d5d4cd09a3c80cafcdea100"
            }
        }
    },
    {
        "assetId": "1a9c1a342527440a90c7120afad20431",
        "tenantId": "connint5",
        "name": "batteries",
        "timezone": "Europe/Berlin",
        "twinType": "performance",
        "parentId": "967bbda37d5d4cd09a3c80cafcdea100",
        "typeId": "core.opcuahierarcydatatype",
        "_links": {
            "self": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/1a9c1a342527440a90c7120afad20431"
            },
            "location": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/1a9c1a342527440a90c7120afad20431/location"
            },
            "parent": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/2b9c1a342527440a90c7120afad20425"
            }
        }
    }

Data Point Assets

All the Data Point Assets are created as below:

Sample
    {
        "assetId": "2b9c1a342527440a90c7120afad1234",
        "tenantId": "connint5",
        "name": "engine",
        "timezone": "Europe/Berlin",
        "twinType": "performance",
        "parentId": "2b9c1a342527440a90c7120afad20425",
        "typeId": "connint5.ElectricEngine",
        "_links": {
            "self": {
                "href": "https://connint5-assetmanager.eu1-int..io/api/assetmanagement/v3/assets/2b9c1a342527440a90c7120afad1234"
            },
            "aspects": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/2b9c1a342527440a90c7120afad1234/aspects"
            },
            "variables": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/2b9c1a342527440a90c7120afad1234/variables"
            },
            "location": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/2b9c1a342527440a90c7120afad1234/location"
            },
            "parent": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/2b9c1a342527440a90c7120afad20425"
            }
        }
    },
    {
        "assetId": "4e4ae801a075434c8628c59b5155db1a",
        "tenantId": "connint5",
        "name": "primary",
        "timezone": "Europe/Berlin",
        "twinType": "performance",
        "parentId": "1a9c1a342527440a90c7120afad20431",
        "typeId": "connint5.Battery",
        "_links": {
            "self": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/4e4ae801a075434c8628c59b5155db1a"
            },
            "aspects": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/4e4ae801a075434c8628c59b5155db1a/aspects"
            },
            "variables": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/4e4ae801a075434c8628c59b5155db1a/variables"
            },
            "location": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/4e4ae801a075434c8628c59b5155db1a/location"
            },
            "parent": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/1a9c1a342527440a90c7120afad20431"
            }
        }
    },
    {
        "assetId": "1e1ae801a075434c8628c59b5155db23",
        "tenantId": "connint5",
        "name": "secondary",
        "timezone": "Europe/Berlin",
        "twinType": "performance",
        "parentId": "1a9c1a342527440a90c7120afad20431",
        "typeId": "connint5.Battery",
        "_links": {
            "self": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/1e1ae801a075434c8628c59b5155db23"
            },
            "aspects": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/1e1ae801a075434c8628c59b5155db23/aspects"
            },
            "variables": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/1e1ae801a075434c8628c59b5155db23/variables"
            },
            "location": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/1e1ae801a075434c8628c59b5155db23/location"
            },
            "parent": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assets/1a9c1a342527440a90c7120afad20431"
            }
        }
    }

Asset Types

All the Asset Types are created as below:

Sample
  {
        "parentTypeId": "core.opcuadatatype",
        "instantiable": true,
        "tenantId": "connint5",
        "name": "ElectricEngine",
        "description": "ElectricEngine Asset Type",
        "scope": "private",
        "aspects": [{
            "name": "ElectricEngineFields",
            "aspectType": {
                "id": "connint5.ElectricEngineFields",
                "tenantId": "connint5",
                "name": "ElectricEngineFields",
                "category": "dynamic",
                "scope": "private",
                "description": "Information about ElectricEngine Data Instance Fields",
                "variables": [{
                        "name": "Voltage",
                        "unit": "V",
                        "searchable": true,
                        "qualityCode": true,
                        "defaultValue": null,
                        "dataType": "DOUBLE"
                    },
                    {
                        "name": "Current",
                        "unit": "A",
                        "searchable": true,
                        "qualityCode": true,
                        "defaultValue": null,
                        "dataType": "DOUBLE"
                    }
                ],

                "_links": {
                    "self": {
                        "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/aspecttypes/connint5.ElectricEngineFields"
                    }
                }
            }
        }],
        "_links": {
            "self": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assettypes/connint5.ElectricEngine"
            },
            "parent": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assettypes/core.opcuadatatype"
            }
        },
        "id": "connint5.ElectricEngine"
    },
    {
        "parentTypeId": "core.opcuadatatype",
        "instantiable": true,
        "tenantId": "connint5",
        "name": "Battery",
        "description": "Battery Asset Type",
        "scope": "private",
        "aspects": [{
            "name": "BatteryFields",
            "aspectType": {
                "id": "connint5.BatteryFields",
                "tenantId": "connint5",
                "name": "BatteryFields",
                "category": "dynamic",
                "scope": "private",
                "description": "Information about Battery Data Instance Fields",
                "variables": [{
                        "name": "Charging",
                        "unit": "",
                        "searchable": true,
                        "qualityCode": true,
                        "defaultValue": null,
                        "dataType": "BOOLEAN"
                    },
                    {
                        "name": "ChargeLevel",
                        "unit": "%",
                        "searchable": true,
                        "qualityCode": true,
                        "defaultValue": null,
                        "dataType": "INT"
                    }
                ],
                "_links": {
                    "self": {
                        "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/aspecttypes/connint5.BatteryFields"
                    }
                }
            }
        }],
        "_links": {
            "self": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assettypes/connint5.Battery"
            },
            "parent": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/assettypes/core.opcuadatatype"
            }
        },
        "id": "connint5.Battery"
    }

Aspect Types

All the aspect types which are created as below:

Sample
    {
        "id": "connint5.ElectricEngineFields",
        "tenantId": "connint5",
        "name": "ElectricEngineFields",
        "category": "dynamic",
        "scope": "private",
        "description": "Information about ElectricEngine Data Instance Fields",
        "variables": [{
                "name": "Voltage",
                "unit": "V",
                "searchable": true,
                "qualityCode": true,
                "dataType": "DOUBLE",
                "defaultValue": null
            },
            {
                "name": "Current",
                "unit": "A",
                "searchable": true,
                "qualityCode": true,
                "dataType": "DOUBLE",
                "defaultValue": null
            }
        ],
        "_links": {
            "self": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/aspecttypes/connint5.ElectricEngineFields"
            }
        }
    },
    {
        "id": "connint5.BatteryFields",
        "tenantId": "connint5",
        "name": "BatteryFields",
        "category": "dynamic",
        "scope": "private",
        "description": "Information about Battery Data Instance Fields",
        "variables": [{
                "name": "Charging",
                "unit": "",
                "searchable": true,
                "qualityCode": true,
                "dataType": "BOOLEAN",
                "defaultValue": null
            },
            {
                "name": "ChargeLevel",
                "unit": "%",
                "searchable": true,
                "qualityCode": true,
                "dataType": "INT",
                "defaultValue": null
            }
        ],
        "_links": {
            "self": {
                "href": "https://connint5-assetmanager.eu1-int.mindsphere.io/api/assetmanagement/v3/aspecttypes/connint5.BatteryFields"
            }
        }
    }