Modifying Device Shadow Information
Typical Scenario
The IoT platform supports the creation of device shadows. Device shadows store the latest service property data reported by devices and service property configurations delivered by an NA. (Service properties are defined in the device profile file.) If the device is offline or abnormal, the NA cannot deliver configuration to the device by delivering commands. In this case, the NA can set the configuration to the device shadow. When the device goes online again, the device shadow delivers the configuration to the device. The NA can call this API to modify the configuration information to be delivered to the device on the device shadow.
Each device has only one device shadow, which contains desired and reported sections.
- The desired section stores the configurations of device service properties. If a device is online, the configurations in the desired section are delivered to the device immediately. Otherwise, the configurations in the desired section are delivered to the device when the device goes online.
- The reported section stores the latest service property data reported by devices. When a device reports data, the IoT platform synchronizes the data to the reported section of the device shadow.
API Function
This API is used by an NA to modify the configuration information in the desired section of the device shadow. When the device goes online, the configuration information will be delivered to the device.
Note
Only LWM2M-based devices support the device shadow function, and only properties defined by LWM2M can be modified. User-defined properties cannot be modified.
API Prototype
Method |
PUT |
---|---|
URL |
https://server:port/iocm/app/shadow/v1.5.0/devices/{deviceId}?appId={appId} |
Transport Protocol |
HTTPS |
Request Parameters
Parameter |
Mandatory or Optional |
Type |
Location |
Description |
---|---|---|---|---|
app_key |
Mandatory |
String |
header |
Identifies an application that can be accessed on the IoT platform. The value of this parameter is allocated by the IoT platform when the application is created on the platform. |
Authorization |
Mandatory |
String |
header |
Indicates the authentication information for accessing the IoT platform. The value is Bearer {accessToken}, in which {accessToken} indicates the access token returned by the Authentication API. |
deviceId |
Mandatory |
String |
path |
Uniquely identifies a device. The value of this parameter is allocated by the IoT platform during device registration. |
appId |
Optional |
String |
query |
Identifies an application that can be accessed on the IoT platform. The value of this parameter is allocated by the IoT platform when the application is created on the platform. Set this parameter to the value of appId of the authorized application. |
serviceDesireds |
Mandatory |
List<ServiceDesiredDTO> |
body |
Indicates the configuration or status to be modified. |
Parameter |
Mandatory or Optional |
Type |
Location |
Description |
---|---|---|---|---|
serviceId |
Mandatory |
String(1-256) |
body |
Identifies a service. |
desired |
Mandatory |
ObjectNode |
body |
Indicates the service attribute configuration of a device. |
Response Parameters
Status Code: 200 OK
Request Example
Method: PUT Request: https://server:port/iocm/app/shadow/v1.5.0/devices/devices/{deviceId}?appId={appId} Header: app_key: ****** Authorization: Bearer ****** Content-Type: application/json Body: { "serviceDesireds": [ { "serviceId": "Temperature", "desired": { "targetTemperature": 35 } } ] }
Response Example
Response: Status Code: 200 OK
Error Codes
HTTP Status Code |
Error Code |
Error Description |
Remarks |
---|---|---|---|
200 |
100425 |
The special deviceCapability is not exist. |
The device template does not exist. Recommended handling: Check whether the device template has been uploaded to the IoT platform. |
200 |
100431 |
The serviceType is not exist. |
The service type does not exist. Recommended handling:
|
400 |
107002 |
The properties is empty in database. |
The device attributes do not exist. Recommended handling: Check whether serviceId carried in the API request is correct. |
400 |
107003 |
The request properties is unknown. |
The device status is unknown. Recommended handling: Check whether the connection between the device and the IoT platform is normal. |
400 |
50400 |
The input is invalid. |
An input parameter is invalid. Recommended handling: Check whether parameters carried in the API call request are valid. |
403 |
100203 |
The application is not existed. |
The application does not exist. Recommended handling:
|
403 |
100217 |
The application hasn't been authorized. |
The application has not been authorized. Recommended handling: In scenarios where applications are not authorized, ensure that request parameter appId is null. |
403 |
100443 |
The property is forbidden to write. |
The device attributes cannot be written. |
403 |
1010009 |
app throttle exceed. |
The NA calls the API at a frequency that exceeds the flow control threshold (100 calls per minute by default). Recommended handling: Contact IoT platform maintenance personnel to adjust the flow control threshold or control the API call frequency. |
403 |
1010005 |
pp_key or access_token is invalid. |
The access token is invalid. Recommended handling: Check whether accessToken carried in the API request is correct. |
404 |
100403 |
The device is not existed. |
The device does not exist. Recommended handling: Check whether deviceId is correct. |
404 |
100418 |
The deviceData is not existed. |
The device data does not exist. Recommended handling:
|
500 |
100023 |
The data in dataBase is abnomal. |
The database is abnormal. Recommended handling: An internal error occurs on the IoT platform. Contact IoT platform maintenance personnel. |
500 |
100203 |
The application is not existed. |
The application does not exist. Recommended handling:
|
500 |
50252 |
Internal server error. |
An internal server error occurs. Recommended handling: An internal error occurs on the IoT platform. Contact IoT platform maintenance personnel. |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot