Modifying Device Shadow Information
Typical Scenario
The IoT platform supports the creation of device shadows. Device shadows store the latest service attribute data reported by devices and service attribute configurations delivered by NAs. (Service attributes are defined in the device profile file.) If the device is offline or abnormal, the NA cannot deliver configuration to the device by issuing commands. In this case, the NA can set the configuration to be delivered 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 report sections.
- The desired section stores the configurations of device service attributes. 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 report section stores the latest service attribute data reported by devices. When a device reports data, the IoT platform synchronizes the data to the report section of the device shadow.
API Function
This API is used 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.
API Description
1 |
def modifyDeviceShadow(self, mdsInDTO, deviceId, appId, accessToken)
|
Class
DeviceManagement
Parameter Description
Parameter |
Mandatory or Optional |
Type |
Location |
Description |
---|---|---|---|---|
mdsInDTO |
Mandatory |
ModifyDeviceShadowInDTO |
body |
For details, see ModifyDeviceShadowInDTO structure. |
deviceId |
Mandatory |
String(256) |
path |
Identifies a device. The device ID is allocated by the IoT platform during device registration. |
appId |
Optional |
String |
query |
If the device belongs to the current application, set this parameter to None. Otherwise, set this parameter to the ID of the authorized application. |
accessToken |
Mandatory |
String |
header |
This parameter is set to the value of the access token obtained by calling the Authentication API. |
ModifyDeviceShadowInDTO structure
Parameter |
Mandatory or Optional |
Type |
Location |
Description |
---|---|---|---|---|
serviceDesireds |
Mandatory |
List<ServiceDesiredDTO> |
body |
Indicates the configuration or status to be modified. For details, see ServiceDesiredDTO structure. |
ServiceDesiredDTO structure
Parameter |
Mandatory or Optional |
Type |
Location |
Description |
---|---|---|---|---|
serviceId |
Optional |
String(1-256) |
body |
Identifies a service. |
desired |
Optional |
Object |
body |
Indicates the device status. |
Return Value
void
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