Querying Historical Device Shadow Data
Typical Scenario
When an application modifies the configuration of a device shadow by calling the API Modifying Information in a Device Shadow, the platform saves the modification record. If the application needs to view historical configuration records of the device shadow, the application can call this API to obtain the records.
API Function
This API is used by an application to query historical configuration data about a device shadow based on the device ID.
API Description
1 | def queryDeviceDesiredHistory(self, qddhInDTO, accessToken)
|
Parameter Description
| Parameter | Mandatory or Optional | Type | Location | Description |
|---|---|---|---|---|
| qddhInDTO | Mandatory | QueryDeviceDesiredHistoryInDTO | query | For details, see QueryDeviceDesiredHistoryInDTO structure. |
| accessToken | Mandatory | String | header | This parameter is set to the value of the accessToken obtained by calling the Authentication API. |
QueryDeviceDesiredHistoryInDTO structure
| Parameter | Mandatory or Optional | Type | Location | Description |
|---|---|---|---|---|
| appId | Mandatory | 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. |
| deviceId | Mandatory | String | query | Uniquely identifies a device. |
| gatewayId | Mandatory | String | query | Identifies a gateway. |
| serviceId | Optional | String | query | Identifies a service. |
| property | Optional | String | query | Indicates the service property. |
| pageNo | Optional | Integer | query | Indicates the page number.
|
| pageSize | Optional | Integer | query | Indicates the number of records on each page. The default value is 1. |
| startTime | Optional | String | query | Indicates the start time. Historical data generated later than the specified start time is queried. The value is in the format of yyyyMMdd'T'HHmmss'Z'. An example value is 20151212T121212Z. |
| endTime | Optional | String | query | Indicates the end time. Historical data generated earlier than the specified end time is queried. The value is in the format of yyyyMMdd'T'HHmmss'Z'. An example value is 20151212T121212Z. |
Response Parameters
QueryDeviceDesiredHistoryOutDTO structure
| Parameter | Type | Description |
|---|---|---|
| totalCount | Long | Indicates the number of queried records. |
| pageNo | Long | Indicates the page number. |
| pageSize | Long | Indicates the number of records on each page. |
| DeviceDesiredHistoryDTO | List<DeviceDesiredHistoryDTO> | Indicates a list of historical device data. For details, see DeviceDesiredHistoryDTO structure. |
DeviceDesiredHistoryDTO structure
| Parameter | Type | Description |
|---|---|---|
| serviceId | String(256) | Identifies a service. |
| deviceId | String(256) | Uniquely identifies a device. |
| gatewayId | String(256) | Identifies a gateway. |
| appId | String(256) | Uniquely identifies an application. |
| desired | JsonObject | Indicates the data reported by the device. |
| timestamp | String(256) | Indicates the timestamp when the data is configured. The value is in the format of yyyyMMdd'T'HHmmss'Z', for example, 20151212T121212Z. |
Error Codes
| HTTP Status Code | Error Code | Error Description | Remarks |
|---|---|---|---|
| 200 | 100203 | The application does not exist. | The application does not exist. Recommended handling:
|
| 400 | 100216 | The application input is invalid. | The application input is invalid. Recommended handling: Check whether parameters in the API request are correct by referring to the request parameter description. |
| 400 | 100419 | The device ID and gateway ID cannot be both null. | The deviceId and gatewayId parameters cannot be null at the same time. Recommended handling: Check whether deviceId or gatewayId is set. |
| 403 | 100203 | The application does not exist. | The application does not exist. Recommended handling:
|
| 403 | 100217 | The application has not 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 | 1010009 | The application calls the API at a frequency that exceeds the flow control threshold. | The application 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 | Invalid access token or application ID. | The access token is invalid. Recommended handling: Check whether accessToken carried in the API request is correct. |
| 500 | 100203 | The application does not exist. | 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. |
Last Article: Querying Historical Device Data
Next Article: Querying Service Capabilities of a Device
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.