Template to Create Asset Types
MQTT Connector
MQTT-Sample 1
Copy{
"name": "5919-MQTT",
"connectionType": "MQTT",
"config": {
"secure": false,
"username": "iotnms-admin@cisco.com",
"password": "iot0D",
"serverCertificate": null,
"privateKey": null
},
"dataModel": {
"temperatureInDegreeCelsius": {
"label": "Temperature",
"description": "Temperature in degrees celsius",
"topic": "temp",
"datatype": "Float",
"category": "TELEMETRY"
},
"relativeHumidityInPercent": {
"label": "Humidity",
"topic": "hum",
"datatype": "Float",
"category": "TELEMETRY"
},
"airPressureInMillibar": {
"label": "Air Pressure",
"topic": "pressure",
"datatype": "Float",
"category": "TELEMETRY"
},
"currentLocation": {
"label": "Current Location",
"topic": "location",
"datatype": "String",
"category": "TELEMETRY"
}
}
}
MQTT-Sample2
Copy{
"name": "testMQTT",
"connectionType": "MQTT",
"config": {
"secure": true,
"username": "iotnms-admin@cisco.com",
"password": "iot0D",
"serverCertificate": null,
"privateKey": null
},
"dataModel": {
"test123": {
"label": "test123",
"description": "test",
"datatype": "String",
"required": false,
"category": "ATTRIBUTE"
},
"test": {
"label": "test",
"description": "",
"datatype": "String",
"topic": "12",
"category": "TELEMETRY"
}
}
}
MQTT-samplewithCert
Copy{
"name": "sv-mqtt-api",
"connectionType": "MQTT",
"config": {
"secure": false,
"username": "iotnms-admin@cisco.com",
"password": "iot0D",
"serverCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURYRENDQWtRQ0ZCRGtQd2UwSTZjVmxqL1V5ZmN3eHJVQkdOTDFNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1HZ3gKQ3pBSkJnTlZCQVlUQWtSRk1RNHdEQVlEVlFRSURBVklaWE56WlRFUE1BMEdBMVVFQnd3R1MyRnpjMlZzTVE4dwpEUVlEVlFRS0RBWkpUMVFnUlVreEZqQVVCZ05WQkFzTURVbFVJRVJsY0dGeWRHMWxiblF4RHpBTkJnTlZCQU1NCkJrVkpMVWxQVkRBZUZ3MHlNekF5TVRZd05USTNNemhhRncweU5EQXlNVFl3TlRJM016aGFNRzB4Q3pBSkJnTlYKQkFZVEFrUkZNUTR3REFZRFZRUUlEQVZJWlhOelpURVBNQTBHQTFVRUJ3d0dTMkZ6YzJWc01ROHdEUVlEVlFRSwpEQVpKVDFRZ1JVa3hGakFVQmdOVkJBc01EVWxVSUVSbGNHRnlkRzFsYm5ReEZEQVNCZ05WQkFNTUMyMXhkSFF0CmMyVnlkbVZ5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEweiswR0NubFhQazEKNzlKcWN0cG5sN2M0UnBRSnFLRWRnVG5TMnZUZzY0SWhTdm9GZVFjWUtLZ09tcmZtUGdZbWY2TTMvaFJXbVJPWQpNM0dVWW9KOEpnZ2FhWEFYYmJtT2NDemFPbVBicENFL0h6S1VCZ1J6MkxnZGsyN28wR2l5WnVxSStXMmMzSkFVClgvMlROR3FraHd5eTRQUVlOM2RqWFl2RjRnRFJhMWFRbG5uWFhvOUE4di9rc3lRc3dCQzRSUVF0OXZtYlJJNXcKbEdzTlhVZGcxN1ZRU2xiMkQwNlpmSzlDWnF3M0RsTnBtd3F5bzhkZ2d0a2VuYnZrOUxpQzNQemhPWGlnZ09YNgo0L0t3bDBzUnh2ZlNpOUFpSUNYSDUwdk4yTVcxNVo2dDFyN0pjOGFuWHRzalF5ZlgwY1o2QzRLTHBoQkxKaGo0Cmp3dTFjVGVDK1FJREFRQUJNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUURReFBWYTdRZTE3anRsYnNGUHFkOWQKNGNZSzdwQTluWEsrbk9GeFcva3RWK1pmZmk5VWRFRUFyaUtQR3JNUTF6NVo5cFB4cVVtaEFERWRZTVYyKzYrdwpVTHBnWngzOXIzT0lrSVdrZkVpekVxRjc5V2REL2lVNHMydU5VZ2pSVld0algrRWV6ZG5oRms4YkIwSFdEVFlJCnN4WFNVNmMzWC9IWkhqR3k4ei92bGRaR3Jad2krSVRnOVF5WDg4Yk5KWjg1ZXNUU2gxWXJHN3lIakZsWCt4bXkKUG85SHJseDVET21NOHo1V0g1NTc3YjRnM3BYQkxqK1Q1OHdGNHRUK0tvVHpEOWt0QTJvNDBBS1pXVElWdHYzUQpsSkp3cW5NOUZSRmc2QVZscENPZ1pBWjYrNkhSS2xWaEZ2cDJDTWhxTkpOTGhwNndWVjNiTHFJSWd4THNzWGhICi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K",
"privateKey": "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV3QUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktvd2dnU21BZ0VBQW9JQkFRRFR3YktvblpmTGhVdkIKT3RjekZmb3NBN084Sjk3R01JQlFOa0hkeGZQNkZiQ2sxd2NDbmhYSDJPNmlFNDV2YVFNUnQrZ1BpUDlxaS92NgordlE3blJ5a3pOS2c5eWVCQ0xURHlKSWxvSWlMUVVIdVl0aW1RRnJxOTJZL05Bc0tOdXV1cDNzeU81aVdQclZ5Cisvc25ZNUlSS2EwaVJlVDROMHBBbDhEdzBTcFIzYUZEZUl5MUxCVWtEYkhramh1WEIramtlYWVGSlpzMU1MODUKL0krdVJGditxcHBscTNYZkY2R3ViRGF2NnViU2Q5NVgrWmhUZy9aSWR5SUFoT005eUlpSEJjRG5IME1IaXU4OQoyUHd6ZEJDV3Nrc29wa2JIRGV6UGoxc1owbHk1NzFoWG1HZkxUWThIVk92Yi9IOEFNTSsxQVp1U3I3TUg4T0pGClFzZGFxbXg1QWdNQkFBRUNnZ0VCQU03VjdqcUE1Rm9vOHh2azYzcTh4c1hqUDlaVFkyaFd5NTZOd0x4c3RLamMKTXRSd0xDckVXeVgvb09lekRuZUlMVFZMVzJLQlFHckVIUGJEMVhlOU9OTklOWnlBalplZDkyTWRNSk9NUUpNMAp4TCtpMFZkaW1PdlZoNHZJdTlmWVdWRVp5bDRBbEVSOU1DTUdPZ1g1WGgxaGhmbHFLQUxEanNXVTlTTEVTLy8xCklzZC96UGEwMTlRdzVGNlk3dno2b2FvL3Nmd2c0UUFqNmRjd2p5b3FhVWlhclllNE1UdWZtT3ozK3BQcmltcWcKekpGWnNyUW13WDFTU3h0NWxaTnp5Sk00a1lyRVlDenVVOXlJQm81eElFbGtTQWpZbjlRbG9YaXpRaENaRXpFegpkamljZ2FQNUdGcGVycDhZMEIvVmRuSG50eVlmZVJDdEw5RjVWT0RrL3ZrQ2dZRUE2eWFFNGRXYXFMZGx6dXlsCnpFa0tYelFyZUxxNDVIVTlnSm1Kd2lwejNIM05LNUFMR0NsNnFjRTlEdGVjM2JoK01jMW9lRk45MVh2L3hoNk4KaFhTZzZNK0c2K0xpRDhFUG40MzJONk9UN21PWEUyL0QvQUt5Y3ZKcms1MTlTR3V3ZWVnUDlmdnhYTThnUit5TApyU2hSS09HeEVyeFRUdG54ekZYdWlzQlAraE1DZ1lFQTVvZ3VtcytRZURlOGl6aThidHVzUTlvNkR1a1FBR3JvCnZDbXlZekQyVndsQ1lOb1pPMWQ0YmlWNDVyMVZrWTBLajc4NTc1Uk1NOFV1UXQxMTR1KzlxOFFneXlwVnhuQWEKUWVEdWVSQ05lZ3pqYnFJNDV3U0xvcERMSmNjU1NXbTFma1c5UFhHTHRGaGc0ZnFIVGs4M21XeER0WWcvWEdXVApSRzBTckhValVNTUNnWUVBeHZDV21VMFNoRXhzV0d6RE5CcFRLUXBGQU9YUHlKQWJrVEhVWnkxdFNnd3dTUHViCk56ellac2R5TloxYVBBWjYxUDEzdGR6RTU1ajVZZzYxSWtQeVlpUTRmRlk5ZEtDYjdCdTVRNGNqZnhwSVZReEkKWFd1V3QwSzZtbTh4NzlRVHdIOEJDZFcxZEJSVHRpVzhZYWxyU0Uvd2MrNVorS3JRTTFRNzlLMFF2SHNDZ1lFQQp0cmlRQUFLdTVxcCsxZmFsWEZUZmlIUnErakIrajJZdGpCNmNsd1JTN0krWlBqMEFMTW5hMmFyMzFpT1J0Q2tQCml2b3R5SmhKZ2VzekRLcU42czdORGwwSkJSOU1GMW41WmVnTC9JZERLODhWWVRaUlZjS0RqdG1uT3cwN2tGYXEKRlNqZm90amh1NU1sVDFnTWNPUlhGRkw4bytFWEgzd2ZLdWd0R2VaS2xKTUNnWUVBbmI1SjNCZFJPbzRaNFo4TgpHZXdqWnNBQkRGRGpMME9jaWtoQ1ZhK1M0cGdLa2ZPZVZVVkVIaExVdUY4SHM4Y1dJSXhibEhvL1ZEbkp5UENECmNpZDRSRDA5T3BHSWI4UU0xR0ptQVRtdzRuT3NGRDR4aWhlUEdTeHByLzQ4bmM2c0RIWnlkRWtYVmcrNU1QMFcKRkZ5MmN6c1dQNHNzT0NjRjY0ZXdJVVhGcWlJPQotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCg=="
},
"dataModel": {
"temperatureInDegreeCelsius": {
"label": "Temperature",
"description": "Temperature in degrees celsius",
"topic": "temp",
"datatype": "Float",
"category": "TELEMETRY"
},
"relativeHumidityInPercent": {
"label": "Humidity",
"topic": "temp+****",
"datatype": "Float",
"category": "TELEMETRY"
},
"airPressureInMillibar": {
"label": "Air Pressure",
"topic": "pressure",
"datatype": "String",
"category": "TELEMETRY"
},
"currentLocation": {
"label": "Current Location",
"topic": "location",
"datatype": "Boolean",
"category": "TELEMETRY"
}
}
}
JSON Object Description: (Refer the Samples above for JSON API Payload.)
Attribute | Mandatory | Description | Default Value | Possible Values | Shown | Validations |
---|---|---|---|---|---|---|
name | Yes | Name of the Connector Type | * Unique * max length = 2000 characters * special char not allowed |
|||
connectionType | Yes | Connection Type | MQTT | MQTT | ||
config (Child Object ) | ||||||
secure | Yes | - | False | true/false | ||
username | No | User Name | - | - | Max length 2000 characters | |
password | No | Password | - | - | Max length 2000 characters | |
serverCertificate | No | A valid Server Certificate (which is base64encoded) | - | - | secure = true | |
privateKey | No | A valid Private Key (which is base64encoded) | - | - | secure = true | |
dataModel(Child Object ) | ||||||
Attribute Name | Yes | The Attribute Name is represented as a Key in the JSON API payload under dataModel as seen in the samples. | - | - | * Max length = 2000 characters * Attribute names should start with a letter or underscore and cannot start with a number or any other special character. * Attribute name: Expected format: [_A-Za-z][_0-9A-Za-z]* * Invalid Attribute name: '_test name'. Expected format: [_A-Za-z][_0-9A-Za-z]*, space not allowed * The Attribute Name should be Unique |
|
label | Yes | Data Model Attribute label | - | - | Max length 2000 characters | |
description | No | Description of the Data Model Attribute | - | - | Max length 2000 characters | |
datatype | Yes | String | If category = "TELEMETRY" String,Int,Float,Long,Boolean ELSE IF category="ATTRIBUTE" String,Double,EncryptedString,File |
|||
Topic | if category = "TELEMETRY" Yes else Not Applicable |
- | - | category = "TELEMETRY" | Max length 2000 characters | |
required | if category = "ATTRIBUTE" Yes if category = "TELEMETRY" Not Applicable |
false | true, false | category = "ATTRIBUTE" | ||
category | Yes | TELEMETRY | TELEMETRY, ATTRIBUTE |
Validations while Updating MQTT Asset Type:
- Please refer the bottom section for common validations.
- Unable to create Asset Type. All used MQTT topic mappings need to be unique. Topic XXX has been used multiple times.
- Config field 'topic' can not be blank.
- Certificate and private key should be in .pem format.
MODBUS-SERIAL Connector
MODBUS_SERIAL
Copy{
"name": "testModSerial",
"connectionType": "MODBUS_SERIAL",
"config": {
"timeout": 500,
"transport": "RTU",
"baudRate": 9600,
"dataBits": 8,
"stopBits": 1,
"parity": "NONE"
},
"dataModel": {
"rest": {
"label": "1133",
"datatype": "String",
"description": "",
"rawType": "UINT16",
"type": "COIL",
"pollingInterval": 311,
"offset": 11,
"category": "TELEMETRY",
"access": "Read"
}
}
}
JSON Object Description: (Refer the Samples above for JSON API Payload.)
Attribute | Mandatory | Description | Default Value | Possible Values | Shown | Validations |
---|---|---|---|---|---|---|
name | Yes | Name of the Connector Type | - | - | - | * Unique * max length = 2000 characters * special char not allowed |
connectionType | Yes | Connection Type | MODBUS_SERIAL | MODBUS_SERIAL | - | |
config (Child Object ) | ||||||
timeout | No | 500 | 0-65535 | - | ||
commPortId | No | Serial Port for Modbus | - | Max length 2000 characters | ||
transport | Yes | RTU | RTU | - | ||
baudRate | Yes | 9600 | 9600,19200 or Custom Value | - | Custom Value must be an Integer | |
dataBits | Yes | 8 | 5,6,7,8,9 | - | ||
stopBits | Yes | 1 | 1,2 | - | ||
parity | Yes | NONE | NONE,ODD,EVEN | - | ||
dataModel(Child Object ) | ||||||
Attribute Name | Yes | The Attribute Name is represented as a Key in the JSON API payload under dataModel as seen in the samples. | * Max length = 2000 characters * Attribute names should start with a letter or underscore and cannot start with a number or any other special character. * Attribute name: Expected format: [_A-Za-z][_0-9A-Za-z]* * Invalid Attribute name: '_test name'. Expected format: [_A-Za-z][_0-9A-Za-z]*, space not allowed * The Attribute Name should be Unique |
|||
label | Yes | Data Model Attribute label | Max length 2000 characters | |||
datatype | Yes | String | If category = "TELEMETRY" String,Int,Float,Long,Boolean ELSE IF category="ATTRIBUTE" String,Double,EncryptedString,File |
|||
description | No | Description of the Data Model Attribute | Max length 2000 characters | |||
rawtype | Yes | UINT16 | UINT16, BOOLEAN, INT16, INT32, UINT32, INT64, UINT64, FLOAT32, FLOAT64, CHARSTRING, VARCHARSTRING,INT16SWAP, UINT16SWAP, INT32SWAP, UINT32SWAP, INT64SWAP, UINT64SWAP, FLOAT32SWAP, FLOAT64SWAP, INT32SWAPSWAP, UINT32SWAPSWAP,BCD16, BCD32, BCD32SWAP, INT32M10K, UINT32M10K, INT32M10KSWAP | category = "TELEMETRY" | ||
type | if category = "TELEMETRY" Yes else Not Applicable |
COIL | COIL, HOLDING, DISCRETE, INPUT | category = "TELEMETRY" | ||
pollingInterval | if category = "TELEMETRY" Yes else Not Applicable |
category = "TELEMETRY" | Allowed Digits only, negative values not allowed | |||
offset | if category = "TELEMETRY" Yes else Not Applicable |
category = "TELEMETRY" | Allowed Digits only, negative values not allowed | |||
category | Yes | TELEMETRY | TELEMETRY, ATTRIBUTE | |||
required | if category = "ATTRIBUTE" Yes if category = "TELEMETRY" Not Applicable |
false | true, false | category = "ATTRIBUTE" | ||
access | if category = "TELEMETRY" Yes else Not Applicable |
Read, ReadWrite, Write | category = "TELEMETRY" |
MODBUS-TCP Connector
MODBUS_TCP
Copy{
"name": "testModbusTcp1",
"connectionType": "MODBUS_TCP",
"config": {
"timeout": 500,
"host": "localhost",
"port": 1502
},
"dataModel": {
"custom": {
"label": "custlabel",
"datatype": "EncryptedString",
"description": "",
"required": false,
"category": "ATTRIBUTE"
},
"telem": {
"label": "telem_label",
"datatype": "Int",
"description": "",
"rawType": "UINT16",
"type": "COIL",
"pollingInterval": 1212,
"offset": 128,
"category": "TELEMETRY",
"access": "Read"
}
}
}
MODBUS-TCP Sample2
Copy{
"name": "testModTCP",
"connectionType": "MODBUS_TCP",
"config": {
"timeout": 500,
"host": null,
"port": 1502
},
"dataModel": {
"custom": {
"label": "custlabel",
"datatype": "EncryptedString",
"description": "",
"required": false,
"category": "ATTRIBUTE"
},
"telem": {
"label": "telem_label",
"datatype": "Int",
"description": "",
"rawType": "UINT16",
"type": "COIL",
"pollingInterval": 1212,
"offset": 128,
"category": "TELEMETRY",
"access": "Read"
}
}
}
JSON Object Description: (Refer the Samples above for JSON API Payload.)
Attribute | Mandatory | Description | Default Value | Possible Values | Shown | Validations |
---|---|---|---|---|---|---|
name | Yes | Name of the Connector Type | - | - | - | * Unique * max length = 2000 characters * special char not allowed |
connectionType | Yes | Connection Type | MODBUS_TCP | MODBUS_SERIAL | - | |
config (Child Object ) | ||||||
timeout | No | 500 | 0-65535 | - | value should be between 0 to 65535 | |
host | No | Modbus TCP Host | - | * Length = 63 * no special characters allowed * if contain numbers and . -> then it should be a valid IP address, if appended by characters then consider a hostname |
||
port | No | 502 | 1-65535 | - | Valid Port between 1-65535 | |
dataModel(Child Object ) | ||||||
Attribute Name | Yes | The Attribute Name is represented as a Key in the JSON API payload under dataModel as seen in the samples. | * Max length = 2000 characters * Attribute names should start with a letter or underscore and cannot start with a number or any other special character. * Attribute name: Expected format: [_A-Za-z][_0-9A-Za-z]* * Invalid Attribute name: '_test name'. Expected format: [_A-Za-z][_0-9A-Za-z]*, space not allowed * The Attribute Name should be Unique |
|||
label | Yes | Data Model Attribute label | ||||
datatype | Yes | String | If category = "TELEMETRY" String,Int,Float,Long,Boolean ELSE IF category="ATTRIBUTE" String,Double,EncryptedString,File |
|||
description | No | Description of the Data Model Attribute | ||||
rawtype | if category = "TELEMETRY" Yes else Not Applicable |
UINT16 | UINT16, BOOLEAN, INT16, INT32, UINT32, INT64, UINT64, FLOAT32, FLOAT64, CHARSTRING, VARCHARSTRING,INT16SWAP, UINT16SWAP, INT32SWAP, UINT32SWAP, INT64SWAP, UINT64SWAP, FLOAT32SWAP, FLOAT64SWAP, INT32SWAPSWAP, UINT32SWAPSWAP,BCD16, BCD32, BCD32SWAP, INT32M10K, UINT32M10K, INT32M10KSWAP | category = "TELEMETRY" | ||
type | if category = "TELEMETRY" Yes else Not Applicable |
COIL | COIL, HOLDING, DISCRETE, INPUT | category = "TELEMETRY" | ||
pollingInterval | if category = "TELEMETRY" Yes else Not Applicable |
category = "TELEMETRY" | Allowed Digits only, negative values not allowed. | |||
offset | if category = "TELEMETRY" Yes else Not Applicable |
category = "TELEMETRY" | Allowed Digits only, not allowed negative values as well | |||
category | if category = "TELEMETRY" Yes else Not Applicable |
TELEMETRY | TELEMETRY, ATTRIBUTE | |||
required | if category = "ATTRIBUTE" Yes if category = "TELEMETRY" Not Applicable |
false | true, false | category = "ATTRIBUTE" | ||
access | if category = "TELEMETRY" Yes else Not Applicable |
Read, ReadWrite, Write | category = "TELEMETRY" |
EIPCIP Connector
EIPCIP
Copy{
"name":"testeipcip",
"connectionType": "EIPCIP",
"config": {
"host": "localhost",
"port": 44818,
"slot": 0,
"pollingInterval": 1000,
"listeningInterval": 232
},
"dataModel": {
"cim": {
"label": "test",
"description": "",
"tagName": "dfsffsdf",
"dataLength": 23423,
"subTags": [
{
"name": "testsub",
"tagName": "",
"label": "testsub",
"description": "description",
"datatype": "Int",
"subDataType": "INT",
"dataLength": 2,
"offset": 0
},
{
"name": "testsub2",
"tagName": "",
"label": "testsub2",
"description": "",
"datatype": "Int",
"subDataType": "SINT",
"dataLength": 1,
"offset": 2
},
{
"name": "testsub3",
"tagName": "",
"label": "testsub3",
"description": "testsub3",
"datatype": "Int",
"subDataType": "DINT",
"dataLength": 4,
"offset": 3
}
],
"name": "cim",
"tagType": "CYCLIC-IO",
"category": "TELEMETRY"
},
"testattr2": {
"label": "testattr2",
"description": "",
"datatype": "String",
"tagName": "testattr2",
"tagType": "EM",
"category": "TELEMETRY",
"access": "Read"
}
}
}
Attribute | Mandatory | Description | Default Value | Possible Values | Shown | Validations |
---|---|---|---|---|---|---|
name | Yes | Name of the Connector Type | * Unique * max length = 2000 characters * special char not allowed |
|||
connectionType | Yes | Connection Type | EIPCIP | EIPCIP | ||
config (Child Object ) | ||||||
host | No | host name or IP address | 44818 | - | * Length = 63 * no special characters allowed * if contain numbers and . -> then it should be a valid IP address, if appended by characters then consider a hostname |
|
port | No | TCP Port | - | - | - | Valid Port between 0-65535 |
slot | No | Slot Number | * If very large numeral then convert it to infinity * Max length = 2000 characters * Min length can be 0 |
|||
pollingInterval | No | Explicit Message Polling Interval | - | - | * If very large numeral then convert it to infinity * Max Length 2000 characters |
|
listeningInterval | No | Cyclic IO listening Interval | - | - | String not allowed, only valid positive numbers allowed | |
dataModel(Child Object ) | ||||||
Attribute Name | Yes | The Attribute Name is represented as a Key in the JSON API payload under dataModel as seen in the samples. | - | - | * Max length = 2000 characters * Attribute names should start with a letter or underscore and cannot start with a number or any other special character. * Attribute name: Expected format: [_A-Za-z][_0-9A-Za-z]* * Invalid Attribute name: '_test name'. Expected format: [_A-Za-z][_0-9A-Za-z]*, space not allowed * The Attribute Name should be Unique |
|
label | Yes | Data Model Attribute label | - | - | Max length 2000 characters | |
description | No | Description of the Data Model Attribute | - | - | Max length 2000 characters | |
datatype | Yes | Data type of the data source variable | String | If category = "TELEMETRY" String,Int,Float,Long,Boolean ELSE IF category="ATTRIBUTE" String,Double,EncryptedString,File |
||
category | Yes | TELEMETRY | TELEMETRY,ATTRIBUTE | |||
required | if category = "ATTRIBUTE" Yes if category = "TELEMETRY" Not Applicable |
defines whether the defined field is required field or not Applicable only for field defined as category = ATTRIBUTE | false | true/false | ||
tagName | Yes | |||||
tagType | Yes | EM, CYCLIC-IO | ||||
access | Yes ( for tagType = "EM" and Category = "TELEMETRY") | Read | Read, ReadWrite, Write | category = "TELEMETRY" and tagType = "EM" | ||
subTags (child Object of dataModel) → The "subTags" section is available only when tagType is "CYCLIC-IO" | ||||||
name | Yes | Name of the Sub Tag | ||||
tagName | Yes | "" | "" | The tagName should be an empty string | ||
label | Yes | Label for the Sub Tag | Max length 2000 characters | |||
description | No | Description for the Sub Tag | Max length 2000 characters | |||
datatype | Yes | Int,Float,Boolean | ||||
dataLength | Yes | * If the data type 'Integer * if the sub-data type is SINT then must be equal to 1. * if the sub-data type is INT then must be equal to 2. * if the sub-data type is DINT then must be equal to 4. * . If the data type is 'Float', then must be equal to 4. * If the data type is 'Boolean', then must be equal to 1 |
||||
subDataType | Yes | If datatype is Int, then the allowed sub-data types are SINT,INT,DINT If the data type is 'Float', then the sub-data type must be "REAL" If the data type 'Boolean', then the sub-data type must be "BOOL" |
||||
offset | Yes | 0 | Any Valid Number |
NTCIP1202/NTCIP1202 Trap Connector
NTCIP1202_TRAP
Copy{
"name": "ntcip1202-trap-ag",
"connectionType": "NTCIP1202",
"config": {
"fetchCount": 32,
"host": "192.168.10.215",
"port": 1161,
"snmpVersion": "V2c",
"trapPort": 1162,
"intersectionId": 123,
"intersectionName": "asd",
"standardManufacturer": "J2735",
"community": "iotOD",
"auth": "SHA",
"security": "authPriv",
"priv": "AES"
},
"dataModel": {
"data_string3": {
"label": "My Data String3",
"datatype": "String",
"description": "My Custom Attribute",
"required": false,
"category": "ATTRIBUTE"
},
"data_string1": {
"label": "My Data String",
"datatype": "String",
"description": "serial read attribute",
"oid": "1.0.15628.4.1.8.1.0",
"oidDataType": "INTEGER",
"pollingInterval": 12345,
"category": "TELEMETRY",
"access": "Read"
},
"data_string2": {
"label": "My Data String2",
"datatype": "String",
"description": "SNMP Trap Definition",
"oid": "1.0.15628.4.1.8.1.2",
"oidDataType": "INTEGER",
"category": "TELEMETRY",
"service": "trap_receive",
"access":"Read"
}
}
}
NTCIP1202-V3
Copy{
"name": "ntcip1202-V3",
"connectionType": "NTCIP1202",
"config": {
"fetchCount": 32,
"host": "1.1.1.1",
"port": 161,
"snmpVersion": "V3",
"trapPort": 162,
"standardManufacturer": "J2735",
"community": "public",
"auth": "SHA",
"authPassword": "test",
"security": "authPriv",
"priv": "AES",
"privPassword": "test",
"user": "test"
},
"dataModel": {
"data_string1": {
"label": "My Data String",
"datatype": "String",
"description": "serial read attribute",
"oid": "j2735Srm",
"pollingInterval": 12345,
"category": "STATIC_TELEMETRY",
"access": "Read"
},
"test123": {
"label": "test123",
"datatype": "String",
"description": "",
"oid": "ntcip1211Srm",
"pollingInterval": 300,
"category": "STATIC_TELEMETRY",
"access": "Read"
},
"test1234": {
"label": "test1234",
"datatype": "String",
"description": "",
"oid": "rawSpat",
"pollingInterval": 300,
"category": "STATIC_TELEMETRY",
"access": "Read"
},
"data_string2": {
"label": "My Data String2",
"datatype": "String",
"description": "SNMP Trap Definition",
"oid": "1.0.15628.4.1.8.1.2",
"oidDataType": "INTEGER",
"category": "TELEMETRY",
"service": "trap_receive",
"access":"Read"
},
"data_string3": {
"label": "My Data String3",
"datatype": "String",
"description": "My Custom Attribute",
"required": false,
"category": "ATTRIBUTE"
}
}
}
JSON Object Description: (Refer the Samples above for JSON API Payload.)
Attribute | Mandatory | Description | Default Value | Possible Values | Shown | Validations |
---|---|---|---|---|---|---|
name | Yes | Name of the Connector Type | - | - | - | * Unique * max length = 2000 characters * special char not allowed |
connectionType | Yes | Connection Type | NTCIP1202 | NTCIP1202 | - | |
config (Child Object ) | ||||||
fetchCount | No | OID count per request | - | |||
host | No | host name or IP address | - | * Length = 63 * no special characters allowed * if contain numbers and . -> then it should be a valid IP address, if appended by characters then consider a hostname |
||
port | No | 161 | 1-65535 | - | Valid Port between 1-65535 Should not be same as trapPort |
|
trapPort | No | 162 | 1-65535 | - | Valid Port between 1-65535 Should not be same as port |
|
snmpVersion | Yes | SNMP Versions | V3 | V1, V2c, V3 | While updating the Asset type, the snmpVersion is non editable. | |
intersectionId | No | - | ||||
intersectionName | No | - | ||||
standardManufacturer | Yes | J2735 | J2735, trafficware, intelight, econolite | - | ||
user | if snmpVersion = V3 → NO else → Not Applicable |
Security Name | snmpVersion is V3 | |||
security | if snmpVersion = V3 → No else → Not Applicable |
Security Level | authPriv | authPriv, authNoPriv, noAuthNoPriv | snmpVersion is V3 | |
auth | if snmpVersion = V3 → No else → Not Applicable |
Authentication Protocol | SHA | SHA,MD5 | snmpVersion is V3 | |
authPassword | if snmpVersion = V3 → No else → Not Applicable |
Authentication Password | snmpVersion is V3 | |||
community | No | snpmVersion is not V3 | ||||
priv | if snmpVersion = V3 → No else → Not Applicable |
Privacy Protocol | AES | AES, DES | snmpVersion is V3 | |
privPassword | if snmpVersion = V3 → No else → Not Applicable |
Privacy Password | snmpVersion is V3 | |||
dataModel(Child Object ) | ||||||
Attribute Name | Yes | The Attribute Name is represented as a Key in the JSON API payload under dataModel as seen in the samples. | * Max length = 2000 characters * Attribute names should start with a letter or underscore and cannot start with a number or any other special character. * Attribute name: Expected format: [_A-Za-z][_0-9A-Za-z]* * Invalid Attribute name: '_test name'. Expected format: [_A-Za-z][_0-9A-Za-z]*, space not allowed * The Attribute Name should be Unique |
|||
label | Yes | Data Model Attribute label | ||||
datatype | Yes | Data type of the data source variable | String | If category = "TELEMETRY" or "STATIC_TELEMETRY" String,Int,Float,Long,Boolean ELSE IF category="ATTRIBUTE" String,Double,EncryptedString,File |
||
description | No | Description of the Data Model Attribute | ||||
oid | Yes | the OID where data is fetched from via SNMP | rawSpat | rawSpat, j2735Srm, ntcip1211Srm or actual OID(eg 1.0.15628.4.1.8.1.2) |
if category = "TELEMETRY" or "STATIC_TELEMETRY" | |
oidDataType | if oid = rawSpat, j2735Srm, ntcip1211Srm Not Applicable else (like 1.0.15628.4.1.8.1.2) Yes |
The OID data type of the value stored at the OID. | INTEGER | INTEGER, OCTET STRING | if category = "TELEMETRY" and Any valid OID string(eg "1.0.15628.4.1.8.1.0") |
|
pollingInterval | if category = "TELEMETRY" or "STATIC_TELEMETRY" Yes else Not Applicable |
Defines how often data is polled from the SNMP device in seconds | 300 | if category = "TELEMETRY" or "STATIC_TELEMETRY" | Allowed Digits only, not allowed negative values as well | |
category | Yes | TELEMETRY | TELEMETRY, ATTRIBUTE, STATIC_TELEMETRY | STATIC_TELEMETRY is provided for predefined oid's like rawSpat, j2735Srm, ntcip1211Srm | ||
required | if category = "ATTRIBUTE" Yes if category = "TELEMETRY" or "STATIC_TELEMETRY" Not Applicable |
Defines whether the defined field is required field or not Applicable only for field defined as ATTRIBUTE |
false | true, false | ||
access | if category = "TELEMETRY" or "STATIC_TELEMETRY" Yes else if "service" is defined Yes else if category="ATTRIBUTE" Not Applicable |
Read, ReadWrite, Write | if category = "TELEMETRY" or "STATIC_TELEMETRY" | if oid = 'rawSpat' or service = "trap_receive" Read else if oid = 'ntcip1211Srm' or oid = j2735Srm ReadWrite |
||
service | Yes for Trap Definitions | The Value for this field is trap_receive and cannot be changed * This field is provided only for Trap Definitions * and used to distinguish from Attribute Definitions and Custom Attributes |
trap_receive | trap_receive | Trap Definitions in the data model |
Validations while Updating NTCIP1202/TRAP Asset Type:
- Please refer the bottom section for common validations.
- Do not change the SNMP version when making updates to the Asset Type.
NTCIP1203/NTCIP1204 Connector
NTCIP1203 - V3
Copy{
"name": "Test NTCIP 1203",
"connectionType": "NTCIP1203",
"config": {
"fetchCount": 32,
"host": "localhost",
"port": 161,
"snmpVersion": "V3",
"community": "iotOD",
"auth": "SHA",
"authPassword": "iotOD",
"security": "authPriv",
"priv": "AES",
"privPassword": "iotOD",
"user": "sdfsdf342"
},
"dataModel": {
"sdfdfdsgsd3424": {
"label": "sfdfsf",
"datatype": "String",
"description": "",
"oid": "displayedMessage",
"pollingInterval": 300,
"category": "STATIC_TELEMETRY",
"access": "ReadWrite"
}
}
}
NTCIP1204
Copy{
"name": "Test NTCIP1204",
"connectionType": "NTCIP1204",
"config": {
"fetchCount": 32,
"host": "localhost",
"port": 161,
"snmpVersion": "V3",
"community": "iotOD",
"auth": "SHA",
"authPassword": "iotOD",
"security": "authPriv",
"priv": "AES",
"privPassword": "iotOD",
"user": "sfdfsd423"
},
"dataModel": {
"fsdfsdfsdf232": {
"label": "fdsfsf",
"datatype": "String",
"description": "",
"oid": "location",
"pollingInterval": 300,
"category": "STATIC_TELEMETRY",
"access": "Read"
}
}
}
JSON Object Description: (Refer the Samples above for JSON API Payload.)
Attribute | Mandatory | Description | Default Value | Possible Values | Shown | Validations |
---|---|---|---|---|---|---|
name | Yes | Name of the Connector Type | - | - | - | * Unique * max length = 2000 characters * special char not allowed |
connectionType | Yes | Connection Type | NTCIP1203/NTCIP1204 | NTCIP1203/NTCIP1204 | - | |
config (Child Object ) | ||||||
fetchCount | No | OID count per request | - | |||
host | No | IP address or Host Name | - | * Length = 63 * no special characters allowed * if contain numbers and . -> then it should be a valid IP address, if appended by characters then consider a hostname |
||
port | No | 161 | 1-65535 | - | Valid Port between 1-65535 | |
snmpVersion | Yes | SNMP Versions | V3 | V1, V2c, V3 | While updating the Asset type, the snmpVersion is non editable. | |
user | if snmpVersion = V3 → No else → Not Applicable |
Security Name | snmpVersion is V3 | |||
security | if snmpVersion = V3 → No else → Not Applicable |
Security Level | authPriv | authPriv, authNoPriv, noAuthNoPriv | snmpVersion is V3 | |
auth | if snmpVersion = V3 → No else → Not Applicable |
Authentication Protocol | SHA | SHA,MD5 | snmpVersion is V3 | |
authPassword | if snmpVersion = V3 → No else → Not Applicable |
Authentication Password | snmpVersion is V3 | |||
community | No | snpmVersion is not V3 | ||||
priv | if snmpVersion = V3 → No else → Not Applicable |
Privacy Protocol | AES | AES, DES | snmpVersion is V3 | |
privPassword | if snmpVersion = V3 → No else → Not Applicable |
Privacy Password | snmpVersion is V3 | |||
dataModel(Child Object ) | ||||||
Attribute Name | Yes | The Attribute Name is represented as a Key in the JSON API payload under dataModel as seen in the samples. | * Max length = 2000 characters * Attribute names should start with a letter or underscore and cannot start with a number or any other special character. * Attribute name: Expected format: [_A-Za-z][_0-9A-Za-z]* * Invalid Attribute name: '_test name'. Expected format: [_A-Za-z][_0-9A-Za-z]*, space not allowed * The Attribute Name should be Unique |
|||
label | Yes | Data Model Attribute label | ||||
datatype | Yes | Data type of the data source variable | String | If category = "TELEMETRY" or "STATIC_TELEMETRY" String,Int,Float,Long,Boolean ELSE IF category="ATTRIBUTE" String,Double,EncryptedString,File |
||
description | No | Description of the Data Model Attribute | ||||
oid | Yes | he OID where data is fetched from via SNMP | if connectionType == NTCIP1203 displayedMessage if connectionType == NTCIP1204 location |
if connectionType == NTCIP1203 displayedMessage or actual OID(eg 1.0.15628.4.1.8.1.2) if connectionType == NTCIP1204 location, temperature, humidityAndPrecipitation, humidityAndPrecipitation, airQuality or actual OID(eg 1.0.15628.4.1.8.1.2) |
if category = "TELEMETRY" or "STATIC_TELEMETRY" | if connectionType == NTCIP1203 & category == "STATIC_TELEMETRY" oid = displayedMessage |
oidDataType | if oid = displayedMessage (NTCIP1203), location, temperature,humidityAndPrecipitation,airQuality (NTCIP1204) Not Applicable else (like 1.0.15628.4.1.8.1.2) Yes |
The OID data type of the value stored at the OID. | INTEGER | INTEGER, OCTET STRING | if category = "TELEMETRY" and Any valid OID string(eg "1.0.15628.4.1.8.1.0") |
|
pollingInterval | Yes | Defines how often data is polled from the SNMP device in seconds | 300 | if category = "TELEMETRY" or category = "STATIC_TELEMETRY" |
Allowed Digits only, not allowed negative values as well | |
category | Yes | TELEMETRY | TELEMETRY, ATTRIBUTE, STATIC_TELEMETRY | STATIC_TELEMETRY is provided for predefined oid's (mentioned in OID row) | ||
required | if category = "ATTRIBUTE" Yes if category = "TELEMETRY" or "STATIC_TELEMETRY" Not Applicable |
Defines whether the defined field is required field or not Applicable only for field defined as ATTRIBUTE |
false | true, false | ||
access | if category = "TELEMETRY" or "STATIC_TELEMETRY" Yes else if category="ATTRIBUTE" Not Applicable |
Read, ReadWrite, Write | if category = "TELEMETRY" or "STATIC_TELEMETRY" | if connectionType == 'NTCIP1203' { if oid = 'displayedMessage' ReadWrite else All possible values are allowed } ----------------------------- if connectionType ='NTCIP1204' { if oid = predefined values (like temperature,location) Read else All possible values are allowed} |
Validations while Updating NTCIP1203/NTCIP1204 Asset Type:
- Please refer the bottom section for common validations.
- Do not change the SNMP version when making updates to the Asset Type.
OPCUA Connector
OPCUA
Copy{
"name": "0-dk-demo-OPCUA",
"connectionType": "OPC_UA",
"config": {
"authentication": "ANONYMOUS",
"securityMode": "NONE",
"host": "host.docker.internal",
"port": 4840,
"publishingInterval": 1000
},
"dataModel": {
"rpm": {
"label": "Rotation-RPM",
"description": "Rotations in RPM",
"datatype": "Int",
"nodeId": {
"namespaceUri": "http://cisco.com/ns/test",
"identifier": 1,
"type": "numeric"
},
"samplingInterval": 5000,
"category": "TELEMETRY"
}
}
}
OPCUA-Sample2
Copy{
"name": "0-dk-demo-OPCUA-2",
"connectionType": "OPC_UA",
"config": {
"authentication": "ANONYMOUS",
"securityMode": "NONE",
"host": "host.docker.internal",
"port": 4840,
"publishingInterval": 1000
},
"dataModel": {
"rpm": {
"label": "Rotation-RPM",
"description": "Rotations in RPM",
"datatype": "Int",
"nodeId": {
"namespaceUri": "http://cisco.com/ns/test",
"identifier": 1,
"type": "numeric"
},
"samplingInterval": 5000,
"category": "TELEMETRY"
},
"test1234": {
"label": "test123123",
"description": "test",
"datatype": "Float",
"nodeId": {
"namespaceIndex": 125,
"identifier": 12,
"type": "numeric"
},
"samplingInterval": 1000,
"category": "TELEMETRY"
},
"test123": {
"label": "test123",
"description": "test",
"datatype": "String",
"nodeId": {
"namespaceUri": "test/123",
"identifier": 12,
"type": "numeric"
},
"samplingInterval": 1000,
"category": "TELEMETRY"
}
}
}
OPCUA-Sample3
Copy{
"name": "0-dk-demo-OPCUA-3",
"connectionType": "OPC_UA",
"config": {
"label": "test123",
"authentication": "PASSWORD",
"securityMode": "NONE",
"host": "1.2.1.1",
"port": 22,
"publishingInterval": 1000,
"username": "test",
"password": "ENC:QUVTXzI1Nl9HQ01R7J63RhtgBC5FLmJxBb+q/pHi3+2KwZl4eTDmdNeey4omXKTCuqQ4XeRAR9/vPgd58VF0yZ3BZpemBTjC/jsSW0L+EseMMI6S8ldKsPvOuATqR4z/0Lo3Ey9RDv8neLvfgpTtJNlWyQjkzMrL+8EpfzTSDw=="
},
"dataModel": {
"testCustom": {
"label": "testCustom",
"description": "testCustom",
"datatype": "Double",
"required": true,
"category": "ATTRIBUTE"
},
"test": {
"label": "test123",
"description": "",
"datatype": "String",
"nodeId": {
"namespaceUri": "http://cisco.com/ns/test",
"identifier": "12",
"type": "string"
},
"samplingInterval": 1000,
"category": "TELEMETRY"
},
"test122": {
"label": "test122",
"description": "",
"datatype": "String",
"nodeId": {
"namespaceIndex": 12,
"identifier": "15",
"type": "string"
},
"samplingInterval": 1000,
"category": "TELEMETRY"
}
}
}
Attribute | Mandatory | Description | Default Value | Possible Values | Shown | Validations |
---|---|---|---|---|---|---|
name | Yes | Name of the Connector Type | - | - | - | * Unique * max length = 2000 characters * special char not allowed |
connectionType | Yes | Connection Type | OPC_UA | OPC_UA | ||
config (Child Object ) | ||||||
authentication | Yes | - | ANONYMOUS | ANONYMOUS,PASSWORD | ||
username | No | if authentication = "PASSWORD" | ||||
password | No | if authentication = "PASSWORD" | ||||
securityMode | Yes | "NONE" | "NONE" | |||
host | No | - | - | * Length = 63 * no special characters allowed * if contain numbers and . -> then it should be a valid IP address, if appended by characters then consider a hostname |
||
port | No | - | - | Valid Port between 1-65535 | ||
publishingInterval | No | - | - | publishingInterval should be >= 1000 | ||
dataModel(Child Object ) | ||||||
Attribute Name | Yes | The Attribute Name is represented as a Key in the JSON API payload under dataModel as seen in the samples. | - | - | * Max length = 2000 characters * Attribute names should start with a letter or underscore and cannot start with a number or any other special character. * Attribute name: Expected format: [_A-Za-z][_0-9A-Za-z]* * Invalid Attribute name: '_test name'. Expected format: [_A-Za-z][_0-9A-Za-z]*, space not allowed * The Attribute Name should be Unique |
|
label | Yes | Data Model Attribute label | - | - | Max length 2000 characters | |
description | No | Description of the Data Model Attribute | - | - | Max length 2000 characters | |
datatype | Yes | Data type of the data source variable | String | If category = "TELEMETRY" String,Int,Float,Long,Boolean ELSE IF category="ATTRIBUTE" String,Double,EncryptedString,File |
||
samplingInterval | Yes | Sampling interval defines the rate at which data source variable will be sampled (in milliseconds) | 1000 | valid numbers are allowed. Negative values are not allowed. | ||
category | ||||||
required | if category = "ATTRIBUTE" Yes if category = "TELEMETRY" or "STATIC_TELEMETRY" Not Applicable |
defines whether the defined field is required field or not Applicable only for field defined as category = ATTRIBUTE | false | true/false | ||
nodeId (child Object of dataModel) → The "nodeId" section contains details of the OPC/UA nodeId field .The name "nodeId" if fixed. Do not modify and its mandatory. | ||||||
namespaceUri / namespaceIndex | yes, either one of them should be provided | The namespace URI identifies the naming authority defining the identifiers of "nodeId"s. One of namespaceIndex or namespaceUri should be present | namespaceIndex : Any valid JSON number type namespaceUri : Any JSON String type |
namespaceIndex : Any valid JSON number type namespaceUri : Any JSON String type |
||
type | yes | The format and data type of the identifier.Currently numeric value and string value supported. | string | numeric,string | ||
identifier | yes | The identifier for a node in the address space of an OPC UA server. * Possible Values: Any valid JSON string. |
if type = string identifier is any JSON string else if type = numeric identifier is valid numeric value Allowed digits only, no negative value allowed |
RSU Connector
RSU
Copy{
"name": "1_rsu-test",
"connectionType": "RSU",
"config": {
"port": 44444,
"snmpVersion": "V3",
"community": "iot0D",
"auth": "SHA",
"authPassword": "iot0D",
"security": "authPriv",
"priv": "AES",
"privPassword" : "password",
"user": "dkaruthe@cisco.com"
},
"dataModel": {
"Test": {
"label": "Test",
"datatype": "String",
"description": "1",
"oid": "1.1.1.1.1",
"oidDataType": "INTEGER",
"pollingInterval": 1000,
"category": "TELEMETRY",
"access": "Read"
},
"basicSafetyMessage": {
"label": "basicSafetyMessage",
"datatype": "String",
"description": "Basic Safety Message",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"mapData": {
"label": "mapData",
"datatype": "String",
"description": "Message to Display",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"signalPhaseAndTimingMessage": {
"label": "signalPhaseAndTimingMessage",
"datatype": "String",
"description": "Signal Phase and Timing Message",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"commonSafetyRequest": {
"label": "commonSafetyRequest",
"datatype": "String",
"description": "Common Safety Request",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"emergencyVehicleAlert": {
"label": "emergencyVehicleAlert",
"datatype": "String",
"description": "Emergency Vehicle Alert",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"intersectionCollision": {
"label": "intersectionCollision",
"datatype": "String",
"description": "intersection Collision",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"nmeaCorrections": {
"label": "nmeaCorrections",
"datatype": "String",
"description": "NMEA Corrections",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"probeDataManagement": {
"label": "probeDataManagement",
"datatype": "String",
"description": "Probe Data Management",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"roadSideAlert": {
"label": "roadSideAlert",
"datatype": "String",
"description": "Roadside Alert",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"rtcmCorrections": {
"label": "rtcmCorrections",
"datatype": "String",
"description": "RTMC Corrections",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"signalRequestMessage": {
"label": "signalRequestMessage",
"datatype": "String",
"description": "Signal Request Message",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"signalStatusMessage": {
"label": "signalStatusMessage",
"datatype": "String",
"description": "Signal Status Message",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"travelerInformation": {
"label": "travelerInformation",
"datatype": "String",
"description": "Traveler Information",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"personalSafetyMessage": {
"label": "personalSafetyMessage",
"datatype": "String",
"description": "Personal Safety Message",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"probeVehicleData": {
"label": "probeVehicleData",
"datatype": "String",
"description": "Probe Vehicle Data",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"broadcastImmediately": {
"label": "broadcastImmediately",
"datatype": "String",
"description": "Instruct RSU to send a message",
"access": "Write",
"category": "STATIC_TELEMETRY"
},
"storeAndRepeatMessage": {
"label": "storeAndRepeatMessage",
"datatype": "String",
"description": "Store & periodically broadcast messags",
"access": "ReadWrite",
"category": "STATIC_TELEMETRY"
}
}
}
RSU-SNMP-V1 Sample
Copy{
"name": "2_rsu-test",
"connectionType": "RSU",
"config": {
"port": 44444,
"snmpVersion": "V1",
"community": "test",
"auth": "SHA",
"security": "authPriv",
"priv": "AES"
},
"dataModel": {
"testCustomAttr": {
"label": "testCustomAttr",
"datatype": "Double",
"description": "testCustom",
"required": true,
"category": "ATTRIBUTE"
},
"testattr": {
"label": "testattr",
"datatype": "String",
"description": "",
"oid": "1.1.1.1.1.1",
"oidDataType": "INTEGER",
"pollingInterval": 200,
"category": "TELEMETRY",
"access": "ReadWrite"
},
"basicSafetyMessage": {
"label": "basicSafetyMessage",
"datatype": "String",
"description": "Basic Safety Message",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"mapData": {
"label": "mapData",
"datatype": "String",
"description": "Message to Display",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"signalPhaseAndTimingMessage": {
"label": "signalPhaseAndTimingMessage",
"datatype": "String",
"description": "Signal Phase and Timing Message",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"commonSafetyRequest": {
"label": "commonSafetyRequest",
"datatype": "String",
"description": "Common Safety Request",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"emergencyVehicleAlert": {
"label": "emergencyVehicleAlert",
"datatype": "String",
"description": "Emergency Vehicle Alert",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"intersectionCollision": {
"label": "intersectionCollision",
"datatype": "String",
"description": "intersection Collision",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"nmeaCorrections": {
"label": "nmeaCorrections",
"datatype": "String",
"description": "NMEA Corrections",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"probeDataManagement": {
"label": "probeDataManagement",
"datatype": "String",
"description": "Probe Data Management",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"roadSideAlert": {
"label": "roadSideAlert",
"datatype": "String",
"description": "Roadside Alert",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"rtcmCorrections": {
"label": "rtcmCorrections",
"datatype": "String",
"description": "RTMC Corrections",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"signalRequestMessage": {
"label": "signalRequestMessage",
"datatype": "String",
"description": "Signal Request Message",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"signalStatusMessage": {
"label": "signalStatusMessage",
"datatype": "String",
"description": "Signal Status Message",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"travelerInformation": {
"label": "travelerInformation",
"datatype": "String",
"description": "Traveler Information",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"personalSafetyMessage": {
"label": "personalSafetyMessage",
"datatype": "String",
"description": "Personal Safety Message",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"probeVehicleData": {
"label": "probeVehicleData",
"datatype": "String",
"description": "Probe Vehicle Data",
"access": "Read",
"category": "STATIC_TELEMETRY"
},
"broadcastImmediately": {
"label": "broadcastImmediately",
"datatype": "String",
"description": "Instruct RSU to send a message",
"access": "Write",
"category": "STATIC_TELEMETRY"
},
"storeAndRepeatMessage": {
"label": "storeAndRepeatMessage",
"datatype": "String",
"description": "Store & periodically broadcast messags",
"access": "ReadWrite",
"category": "STATIC_TELEMETRY"
}
}
}

Attribute | Mandatory | Description | Default Value | Possible Values | Shown | Validations |
---|---|---|---|---|---|---|
name | Yes | Name of the Connector Type | - | - | - | * Unique * max length = 2000 characters * special char not allowed |
connectionType | Yes | Connection Type | RSU | RSU | ||
config (Child Object ) | ||||||
host | No | IP address or Host Name | - | * Length = 63 * no special characters allowed * if contain numbers and . -> then it should be a valid IP address, if appended by characters then consider a hostname |
||
port | No | 44444 | 1-65535 | - | Valid Port between 1-65535 | |
snmpVersion | Yes | SNMP Versions | V3 | V1, V2c, V3 | While updating the Asset type, the snmpVersion is non editable. | |
user | if snmpVersion = V3 → No else → Not Applicable |
Security Name | snmpVersion is V3 | max length = 2000 characters | ||
security | Yes | Security Level | authPriv | authPriv, authNoPriv, noAuthNoPriv | snmpVersion is V3 | if snmpVersion is V1 or V2c security = authPriv |
auth | Yes | Authentication Protocol | SHA | SHA,MD5 | snmpVersion is V3 | if snmpVersion is V1 or V2c auth = SHA |
authPassword | if snmpVersion = V3 → No else → Not Applicable |
Authentication Password | snmpVersion is V3 | |||
community | No | snpmVersion is not V3 | ||||
priv | Yes | Privacy Protocol | AES | AES, DES | snmpVersion is V3 | if snmpVersion is V1 or V2c priv = AES |
privPassword | if snmpVersion = V3 → No else → Not Applicable |
Privacy Password | snpmVersion is V3 | |||
dataModel(Child Object ) | ||||||
Attribute Name | Yes | The Attribute Name is represented as a Key in the JSON API payload under dataModel as seen in the samples. | * Max length = 2000 characters * Attribute names should start with a letter or underscore and cannot start with a number or any other special character. * Attribute name: Expected format: [_A-Za-z][_0-9A-Za-z]* * Invalid Attribute name: '_test name'. Expected format: [_A-Za-z][_0-9A-Za-z]*, space not allowed * The Attribute Name should be Unique |
|||
label | Yes | Data Model Attribute label | Max length = 2000 characters | |||
datatype | Yes | Data type of the data source variable | String | If category = "TELEMETRY" or "STATIC_TELEMETRY" String,Int,Float,Long,Boolean ELSE IF category="ATTRIBUTE" String,Double,EncryptedString,File |
||
description | No | Description of the Data Model Attribute | ||||
oid | Yes | The OID where data is fetched from via SNMP | Any valid OID string, example: "1.0.15628.4.1.8.1.0" | if category = "TELEMETRY" | ||
oidDataType | if category = "TELEMETRY" Yes |
The OID data type of the value stored at the OID. | INTEGER | "INTEGER", "OCTET STRING" | if category = "TELEMETRY" and Any valid OID string(eg "1.0.15628.4.1.8.1.0") |
|
pollingInterval | if category = "TELEMETRY" Yes |
Defines how often data is polled from the SNMP device in seconds | if category = "TELEMETRY" | Allowed Digits only, negative values are not allowed | ||
category | Yes | TELEMETRY | TELEMETRY, ATTRIBUTE, STATIC_TELEMETRY | STATIC_TELEMETRY is provided for predefined Attributes. shown in the Above image and JSON Samples. | ||
required | if category = "ATTRIBUTE" Yes if category = "TELEMETRY" or "STATIC_TELEMETRY" Not Applicable |
Defines whether the defined field is required field or not Applicable only for field defined as ATTRIBUTE |
false | true, false | ||
access | if category = "TELEMETRY" or "STATIC_TELEMETRY" Yes else if category="ATTRIBUTE" Not Applicable |
Read, ReadWrite, Write | if category = "TELEMETRY" or if category = "STATIC_TELEMETRY" |
if category = "TELEMETRY" All Possible Values if Category = "STATIC_TELEMETRY" Value defined in the screenshot |
Validations while Updating RSU Asset Type:
- Please refer the bottom section for common validations.
- Do not change the SNMP version when making updates to the Asset Type.
Serial Connector
SERIAL
Copy{
"name": "atemp",
"connectionType": "SERIAL",
"config": {
"commPortId": "/dev/ttySerial",
"baudRate": 9600,
"dataBits": 8,
"stopBits": 1,
"parity": "NONE"
},
"dataModel": {
"temp": {
"label": "temp",
"datatype": "String",
"description": "",
"access": "READ",
"startCode": "0x",
"messageSize": 10,
"timeout": 10,
"category": "TELEMETRY"
}
}
}
Serial-Sample2
Copy{
"name": "assetSerial",
"connectionType": "SERIAL",
"config": {
"label": "assetSerial",
"commPortId": "/dev/ttyS0",
"baudRate": 9600,
"dataBits": 8,
"stopBits": 1,
"parity": "NONE"
},
"dataModel": {
"testCustom ": {
"label": "testCustom",
"datatype": "String",
"description": "testCustom",
"required": true,
"category": "ATTRIBUTE"
},
"testBinary": {
"label": "testBinary",
"datatype": "Binary",
"description": "testBinary",
"access": "READ",
"startCode": "1113",
"endCode": "2224",
"timeout": 12,
"category": "TELEMETRY"
},
"testString": {
"label": "testString",
"datatype": "String",
"description": "testString",
"access": "WRITE",
"startCode": "2345",
"endCode": "",
"timeout": 4567,
"category": "TELEMETRY"
}
}
}
Serial-Sample 3
Copy{
"name": "assetSerial3",
"connectionType": "SERIAL",
"config": {
"label": "assetSerial",
"commPortId": "/dev/ttyS0",
"baudRate": 9600,
"dataBits": 8,
"stopBits": 1,
"parity": "NONE"
},
"dataModel": {
"testCustom ": {
"label": "testCustom",
"datatype": "String",
"description": "testCustom",
"required": true,
"category": "ATTRIBUTE"
},
"testBinary": {
"label": "testBinary",
"datatype": "Binary",
"description": "testBinary",
"access": "READ",
"startCode": "",
"messageSize":100,
"timeout": 12,
"category": "TELEMETRY"
},
"testString": {
"label": "testString",
"datatype": "String",
"description": "testString",
"access": "WRITE",
"startCode": "2345",
"endCode": "",
"timeout": 4567,
"category": "TELEMETRY"
}
}
}
Attribute | Mandatory | Description | Default Value | Possible Values | Shown | Validations |
---|---|---|---|---|---|---|
name | Yes | Name of the Connector Type | - | - | - | * Unique * max length = 2000 characters * special char not allowed |
connectionType | Yes | Connection Type | SERIAL | SERIAL | - | |
config (Child Object ) | ||||||
commPortId | Yes | eg: /dev/ttyS0 | Max length 2000 characters | |||
baudRate | Yes | 9600 | 9600 or any custom integer input value | 9600 or any custom integer input value | ||
dataBits | Yes | 8 | 8,7 | |||
stopBits | Yes | 1 | 2,1 | |||
parity | Yes | NONE | NONE,ODD,EVEN | |||
dataModel(Child Object ) | ||||||
Attribute Name | Yes | The Attribute Name is represented as a Key in the JSON API payload under dataModel as seen in the samples. | * Max length = 2000 characters * Attribute names should start with a letter or underscore and cannot start with a number or any other special character. * Attribute name: Expected format: [_A-Za-z][_0-9A-Za-z]* * Invalid Attribute name: '_test name'. Expected format: [_A-Za-z][_0-9A-Za-z]*, space not allowed * The Attribute Name should be Unique |
|||
label | Yes | Data Model Attribute label | Max length = 2000 characters | |||
datatype | Yes | Data type of the data source variable | String | If category = "TELEMETRY" String,Binary ELSE IF category="ATTRIBUTE" String,Double,EncryptedString,File |
category="TELEMETRY", if only messageSize and timeout are configured then the data type should be Binary | |
description | No | Description of the Data Model Attribute | Max length 2000 characters. | |||
access | Yes | READ | READ, READWRITE, WRITE | * Maximum 2 attributes (Category = "TELEMETRY") allowed for datamodel, one should be READ and the other one should have WRITE Access. * For access type WRITE, the following fields should be empty [start code, end code, message size, timeout] |
||
startCode | Yes | The Start Code to find start of the message. | * Max length allowed 2000 * start and end code can not be the same * Either start code or message size should be present * If endCode is present then startCode should also be present for attribute |
|||
endCode | Yes | The End Code of the message. | * Max length allowed 2000 * either end code or message size should be present |
|||
messageSize | Either endCode or MessageSize should be present.Both should not exist | The size of the message for fixed size messages. | * Only digits are allowed, negative values are not allowed * Value should be between 0 and 1048576 |
|||
messageType | No | Text | Text | |||
timeout | Yes | Time in milli second. | * Value should be between 0 and 2147483647 * only digits are allowed, negative values are not allowed. |
|||
required | if category = "ATTRIBUTE" Yes else Not Applicable |
false | true, false | category = "ATTRIBUTE" | ||
category | Optional(If omitted category is set as "TELEMETRY") | TELEMETRY | "TELEMETRY" or "ATTRIBUTE" |
Validations for Create Asset types (Common across all Connectors):
- Asset type name should be unique across all Asset Types.
- Attribute Names in the data model should be unique for an Asset Type.
Validations for Update Asset Types (Common across all Connectors):
- Asset type name and asset type are not editable.
- All the validations for creating asset types are applicable.
- Deleting an Asset type won't be possible if there is already an existing Asset of that specific Asset type.
Validations for Delete Asset types (Common across all Connectors):
- Parameter 'id' must not be blank.
- Deleting an Asset type won't be possible if there is already an existing Asset of that specific Asset type.