Set Measurement Point¶
测点设置接口。
本接口用于执行缓存命令或者即时命令。当执行即时命令时,需要等待设备返回测点设置结果后才返回接口响应数据。如果设备在规定的测点设置超时时间内,未返回测点设置的结果,EnOS测点设置会等待到超时时间后,返回接口超时响应数据。
如果是缓存命令,则直接放入缓存后返回用户。
前提条件¶
- 目标设备必须在线
操作权限¶
需授权的资源 | 所需操作权限 |
---|---|
资产 | Control |
请求格式¶
POST https://{apigw-address}/connect-service/v2.1/commands?action=setMeasurepoint
请求参数(URI)¶
注解
以下非必须字段中,必须提供 assetId
或 productKey
+ deviceKey
的组合,用于指定设备。
名称 | 位置(Path/Query) | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|---|
orgId | Query | 必需 | String | 资产所属的组织ID。 如何获取orgId信息>> |
assetId | Query | 可选 | String | 资产ID。 如何获取Asset ID信息>> |
productKey | Query | 可选 | String | Product Key. |
deviceKey | Query | 可选 | String | Device Key. |
measurepointId | Query | 必需 | String | 资产测点。 如何获取测点(pointId)信息>> |
pendingTtl | Query | 可选 | Integer | 缓存存储时间,单位为秒,范围[0 - 172800(即48小时)],默认值为0。当pendingTtl为0时,表示命令即时执行。 |
timeout | Query | 可选 | Integer | 服务执行超时时间,单位为秒,范围[1 - 60],默认值为30秒。 |
请求参数(Body)¶
名称 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
value | 必需 | String、Number、Array或Object | 测点设置的参数值,需要符合物模型的定义。 |
响应参数¶
名称 | 数据类型 | 描述 |
---|---|---|
data | Command ID 结构体 | 测点设置结果,见 Command ID 结构体>> |
Command ID 结构体¶
名称 | 数据类型 | 描述 |
---|---|---|
commandId | String | 命令ID。 |
示例¶
请求示例¶
url: https://{apigw-address}/connect-service/v2.1/commands?action=setMeasurepoint&deviceKey=yourDeviceKey&measurepointId=measurepoint1&&pendingTtl=1000&productKey=yourProductKey&orgId=yourOrgId&timeout=30
method: POST
requestBody:
{
"value":1.0
}
返回示例¶
{
"code": 0,
"msg": "OK",
"requestId": "7d863d517eae4f18a2776452eb1305bb",
"data": {
"commandId": "2078724684846989312"
}
}
Java SDK调用示例¶
package com.envisioniot.enos.api.sample.connect_service.command;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.api.common.constant.request.Pagination;
import com.envisioniot.enos.connect_service.v2_1.service.SearchCommandRequest;
import com.envisioniot.enos.connect_service.v2_1.service.SearchCommandResponse;
import com.envisioniot.enos.connect_service.v2_1.service.SetMeasruepointRequest;
import com.envisioniot.enos.connect_service.v2_1.service.SetMeasruepointResponse;
import com.google.gson.GsonBuilder;
public class SetMeasurepoint {
public static void main(String[] args) {
String appKey = "yourAppKey";
String appSecret = "yourAppSecret";
String serverUrl = "yourServerUrl";
String orgId = "yourOrgId";
String productKey = "yourProductKey";
String deviceKey = "yourDeviceKey";
SetMeasruepointRequest request = new SetMeasruepointRequest();
request.setOrgId(orgId);
request.setProductKey(productKey);
request.setDeviceKey(deviceKey);
request.setMeasurepointId("Int_value");
request.setValue(111);
// request.setPendingTtl(600L);
request.setTimeout(10);
SetMeasruepointResponse response = Poseidon.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
.url(serverUrl)
.getResponse(request, SetMeasruepointResponse.class);
System.out.println(new GsonBuilder().setPrettyPrinting().create().toJson(response));
}
}