Device Profiles
The device profile describes a type of device within the EdgeX system. Each device managed by a device service has an association with a device profile, which defines that device type in terms of the operations that it supports.
For a full list of device profile fields and their required values see the device profile reference.
Identification
The profile contains various identification fields.
- The Name field is required and must be unique in an Edge Xpert deployment.
- Other fields are optional. They are not used by device services but may be populated for informational purposes:
- Description
- Manufacturer
- Model
- Labels
DeviceResources
A device resource specifies a sensor value within a device that may be read from or written to either individually or as part of a device command.
The device service allows access to device resources via its device REST endpoint. Find examples of this in Device Service API in Edge Xpert API.
A device resource entry has the following:
-
A name for identification and a description for informational purposes
-
Attributes are specific to the device service and are required to access the value
- Each device service implementation will have its own set of named values that are required here. For example, a BACnet device service may need an Object Identifier and a Property Identifier whereas a Bluetooth device service could use a UUID to identify a value.
-
Properties describe the value and, optionally, request some simple processing to be performed on it. It is not necessary to use all property fields in each device resource, only those which are relevant. The following property fields are available:
Property Description valueTypeRequired. The data type of the value. Supported types are boolint8toint64uint8touint64float32,float64stringbinary- Arrays of the primitive types (ints, floats, bool). Arrays are specified as
float32array,boolarray, and so forth.
readWriteR,RW, orWindicating whether the value is readable, writable, or both.unitsIndicates the units of the value, for example: Amperes, degrees celsius minimumThe minimum value allowed in a SET command, out of range will result in error maximumThe maximum value allowed in a SET command, out of range will result in error defaultValueDefault value to be used when a SET command does not specify one assertionA string value to which a reading is compared after processing. If the reading does not match the assertion value, the device's operating state will set to disabled. This can be useful for health checks. baseThe power a raw reading should be raised to before the value is returned scaleThe factor by which to multiply a raw reading before the value is returned. offsetThe value to be added to a raw reading before the value is returned. maskA binary mask which will be applied to an integer reading. shiftThe number of bits by which an integer reading will be shifted right Note
The processing defined by
base,scale,offset,maskandshiftis applied in that order. This is done within the SDK. A reverse transformation is applied by the SDK to incoming data on set operations.masktransforms on set are NYI.
DeviceCommands
Device commands define read and write access for multiple simultaneous device resources.
Device commands may be useful when readings are logically related. For example, with a 3-axis accelerometer, it is helpful to read all axes together.
Each named device command should contain a number of resourceOperations. A resource operation consists of the following properties:
| Property | Description |
|---|---|
deviceResource |
The name of the deviceResource to access |
defaultValue |
Optional. A value that will be used if a SET command does not specify one. |
mappings |
Optional. Allows readings of String type to be re-mapped. |
The device service allows access to device commands via the same device REST endpoint as is used to access device resources.
Device Configuration Tool
You can also use IOTech's Device Configuration Tool to create and save device profiles. For further information on this tool, see the Device Configuration Tool Documentation.