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));
}
}