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