Querying Historical Device Data
Typical Scenario
The platform receives and saves service data reported by devices during daily operation. The data is stored for seven days. If a third-party application needs to view the historical data reported by a device to the platform, the application can call this API to obtain the data.
API Function
This API is used by an application to query historical data reported by a specified device to the platform based on the device ID.
API Description
1 | def queryDeviceDataHistory(self, qddhInDTO, accessToken)
|
Parameter Description
| Parameter | Mandatory or Optional | Type | Location | Description |
|---|---|---|---|---|
| qddhInDTO | Mandatory | QueryDeviceDataHistoryInDTO | query | For details, see QueryDeviceDataHistoryInDTO structure. |
| accessToken | Mandatory | String | header | This parameter is set to the value of the accessToken obtained by calling the Authentication API. |
QueryDeviceDataHistoryInDTO 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
QueryDeviceDataHistoryOutDTO
| 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. |
| deviceDataHistoryDTOs | List<DeviceDataHistoryDTO> | Indicates a list of historical device data. For details, see DeviceDataHistoryDTO structure. |
DeviceDataHistoryDTO 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. |
| data | JsonObject | Indicates the data reported by the device. |
| timestamp | String(256) | Indicates the timestamp when the data is reported. The value is in the format of yyyyMMdd'T'HHmmss'Z'. An example value is 20151212T121212Z. |
Error Codes
| HTTP Status Code | Error Code | Error Description | Remarks |
|---|---|---|---|
| 200 | 100418 | The device data does not exist. | The device data 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. For example, check whether the value of pageSize exceeds 2000. |
| 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 a Device Information List
Next Article: Querying Historical Device Shadow Data
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.