Device Profile Reference
This chapter details the structure of a Device Profile and allowable values for
its fields.
Device Profile
Field Name |
Type |
Required? |
Notes |
name |
String |
Y |
Must be unique in the EdgeX deployment. Only allow unreserved characters as defined in https://datatracker.ietf.org/doc/html/rfc3986#section-2.3. |
description |
String |
N |
|
manufacturer |
String |
N |
|
model |
String |
N |
|
labels |
Array of String |
N |
|
deviceResources |
Array of DeviceResource |
Y |
|
deviceCommands |
Array of DeviceCommand |
N |
|
DeviceResource
Field Name |
Type |
Required? |
Notes |
name |
String |
Y |
Must be unique in the EdgeX deployment. Only allow unreserved characters as defined in https://datatracker.ietf.org/doc/html/rfc3986#section-2.3. |
description |
String |
N |
|
isHidden |
Bool |
N |
Expose the DeviceResource to Command Service or not, default false |
tag |
String |
N |
|
attributes |
String-Interface Map |
N |
Each Device Service should define required and optional keys |
properties |
ResourceProperties |
Y |
|
ResourceProperties
Field Name |
Type |
Required? |
Notes |
valueType |
Enum |
Y |
Uint8 , Uint16 , Uint32 , Uint64 , Int8 , Int16 , Int32 , Int64 , Float32 , Float64 , Bool , String , Binary , Object , Uint8Array , Uint16Array , Uint32Array , Uint64Array , Int8Array , Int16Array , Int32Array , Int64Array , Float32Array , Float64Array , BoolArray |
readWrite |
Enum |
Y |
R , W , RW |
units |
String |
N |
Developer is open to define units of value |
minimum |
Float64 |
N |
Error if SET command value out of minimum range |
maximum |
Float64 |
N |
Error if SET command value out of maximum range |
defaultValue |
String |
N |
If present, should be compatible with the Type field |
mask |
Uint64 |
N |
Only valid where Type is one of the unsigned integer types |
shift |
Int64 |
N |
Only valid where Type is one of the unsigned integer types |
scale |
Float64 |
N |
Only valid where Type is one of the integer or float types |
offset |
Float64 |
N |
Only valid where Type is one of the integer or float types |
base |
Float64 |
N |
Only valid where Type is one of the integer or float types |
assertion |
String |
N |
String value to which the reading is compared |
mediaType |
String |
N |
Only required when valueType is Binary |
optional |
String-Any Map |
N |
Optional mapping for the given resource |
DeviceCommand
Field Name |
Type |
Required? |
Notes |
name |
String |
Y |
Must be unique in this profile. A DeviceCommand with a single DeviceResource is redundant unless renaming and/or restricting R/W access. For example DeviceResource is RW, but DeviceCommand is read-only. Only allow unreserved characters as defined in https://datatracker.ietf.org/doc/html/rfc3986#section-2.3. |
isHidden |
Bool |
N |
Expose the DeviceCommand to Command Service or not, default false |
readWrite |
Enum |
Y |
R , W , RW |
resourceOperations |
Array of ResourceOperation |
Y |
|
ResourceOperation
Field Name |
Type |
Required? |
Notes |
deviceResource |
String |
Y |
Must name a DeviceResource in this profile |
defaultValue |
String |
N |
If present, should be compatible with the Type field of the named DeviceResource |
mappings |
String-String Map |
N |
Map the GET resourceOperation value to another string value |