Get Asset DI Data Duration¶
获取指定设备的指定测点在一段时间内不同状态(DI)的时长统计。
请求格式¶
POST https://{apigw-address}/tsdb-service/v2.1/di/duration
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的 OU ID。如何获取 orgId 信息 >> |
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
modelId |
可选 |
String |
资产所属模型 ID。如何获取 modelId 信息 >> |
assetIds |
必需 |
String |
资产 ID,支持查询多个资产,多个资产 ID 之间用英文逗号隔开。如何获取 Asset ID 信息 >> |
pointIds |
必需 |
String |
资产测点,支持多测点查询,各个测点间用逗号隔开。如何获取 pointId 信息 >> |
startTime |
必需 |
String |
采样数据开始时间,支持设备当地时间和 UTC 时间。设备当地时间的格式为 |
endTime |
必需 |
String |
采样数据结束时间,格式必须与开始时间保持一致。 |
status |
可选 |
String |
对包含多个状态时长统计的结果进行筛选,例如只需要状态为 0 的结果,可赋值 |
ifWithUnknown |
可选 |
Boolean |
是否包含无法确认(Unknown)的状态,默认为 true,即包含。当某段时间内的状态无法确认时,默认将返回“Unknown”状态。 |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
items |
List<JSONObject> |
资产测点最后变更数据列表。单个设备单一测点的数据将按照时间戳升序排列。详见 items |
items¶
名称 |
数据类型 |
描述 |
---|---|---|
scanEndTimestamp |
Long |
此参数标志时长统计需要扫描的最后一个时间点。由于一次时长统计扫描的数据不得超过 640,000 条,当在用户期望的起止时间内扫描到的数据超过 640,000 条时,将停止扫描,并通过此参数返回扫描到的最后一个点的时间戳,表示此时间戳后的数据未进行统计。 |
assetId |
String |
资产 ID。 |
pointId |
String |
测点标识符。 |
durations |
List<JSONObject> |
各个状态的时长统计。 |
status |
Integer |
对应设备测点的值。 |
duration |
Integer |
上述设备测点的值在用户选择的开始时间到 |
示例 1¶
示例 1 的请求包含无法确认的状态,即 ifWithUnknown
值为 true
。
请求示例¶
url: https://{apigw-address}/tsdb-service/v2.1/di/duration?orgId=yourOrgId
method: POST
Content-Type: application/json
requestBody:
{
"assetIds": "yourAssetId1,yourAssetId2",
"pointIds": "yourPointIds",
"startTime": "2020-03-01 00:00:00",
"endTime": "2020-03-02 00:00:00",
"status": "0,1",
"ifWithUnknown": true,
"localTimeFormat": 1,
"itemFormat": 0
}
返回示例¶
{
"code": 0,
"msg": "OK",
"submsg": null,
"data": {
"items": [
{
"scanEndTimestamp": 1583082072000,
"pointId": "yourPointId",
"assetId": "yourAssetId1",
"durations": [
{
"duration": 60000,
"status": 0
},
{
"duration": 60000,
"status": 1
},
{
"duration": 180000,
"status": "Unknown"
}
]
},
{
"scanEndTimestamp": 1583082072000,
"pointId": "yourPointId",
"assetId": "yourAssetId2",
"durations": [
{
"duration": 60000,
"status": 0
},
{
"duration": 60000,
"status": 1
},
{
"duration": 180000,
"status": "Unknown"
}
]
}
]
}
}
示例 2¶
示例 2 的请求不包含无法确认的状态,即 ifWithUnknown
值为 false
。
请求示例¶
url: https://{apigw-address}/tsdb-service/v2.1/di/duration?orgId=yourOrgId
method: POST
Content-Type: application/json
requestBody:
{
"assetIds": "yourAssetId1,yourAssetId2",
"pointIds": "yourPointIds",
"startTime": "2020-03-01 00:00:00",
"endTime": "2020-03-02 00:00:00",
"status": "0,1",
"ifWithUnknown": false,
"localTimeFormat": 1,
"itemFormat": 0
}
返回示例¶
{
"code": 0,
"msg": "OK",
"submsg": null,
"data": {
"items": [
{
"scanEndTimestamp": 1583082072000,
"durations": [
{
"duration": 60000,
"status": 0
},
{
"duration": 60000,
"status": 1
}
],
"pointId": "yourPointId",
"assetId": "yourAssetId1"
},
{
"scanEndTimestamp": 1583082072000,
"durations": [
{
"duration": 60000,
"status": 0
},
{
"duration": 60000,
"status": 1
}
],
"pointId": "yourPointId",
"assetId": "yourAssetId2"
}
]
}
}
示例 3¶
示例 3 对返回结果进行状态筛选,即在 status
参数中指定了状态。
请求示例¶
url: https://{apigw-address}/tsdb-service/v2.1/di/duration?orgId=yourOrgId
method: POST
Content-Type: application/json
requestBody:
{
"assetIds": "yourAssetId1,yourAssetId2",
"pointIds": "yourPointIds",
"startTime": "2020-03-01 00:00:00",
"endTime": "2020-03-02 00:00:00",
"status": "1",
"localTimeFormat": 1,
"itemFormat": 0
}
返回示例¶
{
"code": 0,
"msg": "OK",
"submsg": null,
"data": {
"items": [
{
"scanEndTimestamp": 1583082072000,
"durations": [
{
"duration": 60000,
"status": 1
}
],
"pointId": "yourPointId",
"assetId": "yourAssetId1"
},
{
"scanEndTimestamp": 1583082072000,
"durations": [
{
"duration": 60000,
"status": 1
}
],
"pointId": "yourPointId",
"assetId": "yourAssetId2"
}
]
}
}
SDK 示例¶
你可以在 Github 上获取 TSDB 数据服务的 Java SDK 示例。