Get Last Changed Data¶
获取指定设备、测点的最后变更数据。
请求格式¶
POST https://{apigw-address}/tsdb-service/v2.1/data/last-changed
请求参数(URI)¶
名称 | 位置(Path/Query) | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|---|
orgId | Query | 必需 | String | 资产所属的组织ID。如何获取orgId信息>> |
请求参数(Body)¶
名称 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
assetIds | 必需 | String | 资产ID,支持查询多个资产,多个资产ID之间用英文逗号隔开。如何获取Asset ID信息>> |
pointIds | 必需 | String | 资产测点,支持多测点查询,各个测点间用英文逗号隔开;支持查询的(设备数*测点数)上限为3000。如何获取pointId信息>> |
ifWithLocalTime | 可选 | Boolean | 指定查询结果是否需要返回数据的local时间。true 表示查询结果包含数据的local时间,false 表示查询结果不包含数据的local时间。 |
localTimeAccuracy | 可选 | Boolean | 指定返回数据的local时间是否需要毫秒格式。true 表示返回的local时间需要毫秒格式,false 表示返回的local时间不需要毫秒格式。 |
localTimeFormat | 可选 | Integer | 指定返回数据的local时间是否包含设备时区信息。0:不包含设备时区信息;1:包含设备时区信息;默认值为0。 |
itemFormat | 可选 | Integer | 指定返回结果中测点数据的显示格式。可选值为0,1,2,默认值为0。对每种显示格式的详细介绍,参见 Item Format 示例>> |
示例¶
请求示例¶
url: https://{apigw-address}/tsdb-service/v2.1/data/last-changed?orgId=yourOrgId
method: POST
Content-Type: application/json
requestBody:
{
"pointIds": "yourPointId1,yourPointId2,yourPointId3",
"ifWithLocalTime": true,
"assetIds": "yourAssetId1,yourAssetId2",
"localTimeFormat": 0,
"localTimeAccuracy": true,
"itemFormat": 0
}
返回示例¶
{
"msg": "OK",
"code": 0,
"data": {
"items": [
{
"assetId": "yourAssetId1",
"yourPointId1": 29,
"localtime": "2021-01-14 23:29:00.000",
"timestamp": 1610638140000
},
{
"assetId": "yourAssetId1",
"yourPointId2": "another_00",
"localtime": "2021-01-14 23:00:00.000",
"timestamp": 1610636400000
},
{
"assetId": "yourAssetId1",
"yourPointId3": 1,
"localtime": "2021-01-14 23:10:00.000",
"timestamp": 1610637000000
},
{
"assetId": "yourAssetId2",
"yourPointId1": 1,
"localtime": "2021-01-14 23:10:00.000",
"timestamp": 1610637000000
},
{
"assetId": "yourAssetId2",
"yourPointId2": "another",
"localtime": "2021-01-15 07:30:00.000",
"timestamp": 1610667000000
},
{
"assetId": "yourAssetId2",
"yourPointId3": 29,
"localtime": "2021-01-14 23:29:00.000",
"timestamp": 1610638140000
}
]
},
"submsg": ""
}
Java SDK调用示例¶
import com.alibaba.fastjson.JSONObject;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envision.apim.poseidon.request.PoseidonRequest;
public class GetLastChangedData {
private static final String API_GATEWAY_URL = "https://{apigw-address}";
private static class Request extends PoseidonRequest {
public void setBodyParams(String key, Object value) {
bodyParams().put(key, value);
}
public void setMethod(String method) {
this.method = method;
}
private String method;
@Override
public String baseUri() {
return "";
}
@Override
public String method() {
return method;
}
}
public static void main(String[] args) {
//1.在EnOS管理门户的左边导航栏中点击应用注册。
//2.点击需调用API的应用,查看基本信息中的AccessKey和SecretKey
Poseidon poseidon = Poseidon.config(
PConfig.init()
.appKey("AccessKey of your APP")
.appSecret("SecretKey of your APP")
).method("POST").header("Content-Type", "application/json");
Request request = new Request();
request.setBodyParams("assetIds", "yourAssetId1,yourAssetId2");
request.setBodyParams("pointIds", "yourPointIds");
request.setBodyParams("ifWithLocalTime", true);
request.setBodyParams("localTimeAccuracy", false);
request.setBodyParams("localTimeFormat", 1);
request.setBodyParams("itemFormat", 0);
JSONObject response = poseidon
.url(API_GATEWAY_URL + "/tsdb-service/v2.1/data/last-changed")
.queryParam("orgId", "yourOrgId")
.getResponse(request, JSONObject.class);
System.out.println(response);
}
}