Asset Modeler Async API Service – Samples¶
The code examples given in this section are just .json representations of the Asset Model including the mappings.
Topic Structure¶
MQTT Broker offers topics described below:
<designator>
/<tenantId>
/<clientId>
/<direction>
/<app>_<version>
/<app_topic>
<designator>
: [tc]
- tc: tenant-client topic structure
<tenantId>
: environment id
<clientId>
: Unique client id.
<direction>
: [i|o]
- i: inbound. Clients can subscribe.
- o: outbound. Clients can publish
<app>
: Registered application topic name.
<version>
: Version of application
<app_topic>
: App specific sub topics.
PUBLISH : tc/<tenantId>/<clientId>/o/amo_v3/m
- Models are templates describing asset/aspect types, asset instances, asset hierarchy and mappings from data point ids to variables in aspects.
SUBSCRIBE : tc/<tenantId>/<clientId>/i/amo_v3/ms
- Receive model creation results for a previous model request.
PUBLISH : tc/<tenantId>/<clientId>/o/amo_v3/i
- Instantiations are the realization of models. An instantiation job takes a model and creates the items described in the model by creating types, instances and mappings. A model can be instantiated many times.
SUBSCRIBE : tc/<tenantId>/<clientId>/i/amo_v3/ip
- Receive instantiation job results for a previous instantiation request.
Create own Asset model¶
This operation creates own asset model by describing aspect types, asset types, asset instances and data point mappings.
Asset Model message:
{
"id": "72609761sdv245248e126814c2dd83a27f",
"data": {
"externalId": "SpaceShip",
"typeModel": {
"aspectTypes": [{
"id": "connint6.wing",
"name": "${aspectTypeName}",
"category": "static",
"scope": "private",
"variables": [{
"name": "temperature",
"dataType": "STRING",
"unit": "C/F",
"searchable": true,
"length": 5,
"qualityCode": true
}],
"description": "wing aspect type description",
"referenceId": "287adc1a086840e0a6721dfd1170e97c"
}],
"assetTypes": [{
"id": "connint6.spaceship",
"name": "wingAssetTypeName",
"parentTypeId": "core.basicasset",
"aspects": [{
"name": "wingAspect",
"aspectTypeId": "connint6.wing"
}],
"description": "Hyperspace jump capable space ship",
"instantiable": true,
"scope": "private",
"referenceId": "82a4cc2a69cc42af80c1c6cf5dbefde5"
}]
},
"instanceModel": {
"assets": [{
"referenceId": "wingAssetReference",
"parentReferenceId": "root",
"typeId": "connint6.spaceship",
"name": "wingAsset",
"description": "The ship of Han Solo and Chewbacca"
}]
},
"mappingModel": {
"mappings": [{
"dataPointId": "dp01",
"assetReferenceId": "wingAssetReference",
"aspectName": "wingAspect",
"variableName": "temperature",
"referenceId": "19e9048e78f540e7a9ba25e1249fea9b"
}]
}
}
}
Receive Model Creation Status¶
This operation can be used to receive model creation status for previous model request.
{
"id": "01FQC37FCCASSFT7M0D6W5EB8P",
"correlationId": "01FQC37FCBG1DWMTEC4DYCZ327",
"requestId": "72609761sdv245248e126814c2dd83a27f",
"data": {
"id": "01FQC37HX2KGP4DR0HNVR3K5B2",
"externalId": "SpaceShip",
"status": "Success"
}
}
Create Model Instantiations¶
This operation creates a new instance with a given asset model in the body.
Instantiate model message:
{
"id": "bb9b9d8d6193ddsss45a5w2s7e848fe28c",
"data": {
"modelExternalId": "SpaceShip",
"parameterization": {
"values": [{
"name": "aspectTypeName",
"value": "wingAspectTypeName"
}]
}
}
}
Receive Instantiation Job results¶
This operation can be used to receive instantiation job results for previous instantiation request.
Instantiation Job result message:
Message 1;
{
"id": "01FQC37RDJ54CAM75RWNAQV781",
"correlationId": "01FQC37NKDHM4774NB1R1H7PST",
"data": {
"id": "01FQC37NVVFZWET43NSHYZJV4B",
"modelId": "01FQC37HX2KGP4DR0HNVR3K5B2",
"modelExternalId": "SpaceShip",
"message": "25% completed.",
"status": "InProgress"
},
"requestId": "bb9b9d8d6193ddsss45a5w2s7e848fe28c"
}
Message 2;
{
"id": "01FQC37RDJ54CAM75RWNAQV781",
"correlationId": "01FQC37NKDHM4774NB1R1H7PST",
"data": {
"id": "01FQC37NVVFZWET43NSHYZJV4B",
"modelId": "01FQC37HX2KGP4DR0HNVR3K5B2",
"modelExternalId": "SpaceShip",
"message": "50% completed.",
"status": "InProgress"
},
"requestId": "bb9b9d8d6193ddsss45a5w2s7e848fe28c"
}
Message 1;
{
"id": "01FQC37RDJ54CAM75RWNAQV781",
"correlationId": "01FQC37NKDHM4774NB1R1H7PST",
"data": {
"id": "01FQC37NVVFZWET43NSHYZJV4B",
"modelId": "01FQC37HX2KGP4DR0HNVR3K5B2",
"modelExternalId": "SpaceShip",
"message": "75% completed.",
"status": "InProgress"
},
"requestId": "bb9b9d8d6193ddsss45a5w2s7e848fe28c"
}
Message 4;
{
"id": "01FQC37RDJ54CAM75RWNAQV781",
"correlationId": "01FQC37NKDHM4774NB1R1H7PST",
"data": {
"id": "01FQC37NVVFZWET43NSHYZJV4B",
"modelId": "01FQC37HX2KGP4DR0HNVR3K5B2",
"modelExternalId": "SpaceShip",
"message": "100% completed.",
"status": "Success"
},
"requestId": "bb9b9d8d6193ddsss45a5w2s7e848fe28c"
}