Get Latest Measurement Points

获取设备上传的最新测点数据(包括设备上传的原始数据,镜像数据;但不包括通过 StreamSet 的计算点和离线消息集成的数据),该最新测点数据可以通过 HTTP,MQTT,CoAP 等协议上传。通过老的 EnOS API 上传的数据(即通过接口/connectService/products/{productKey}/devices/measurepoints),也可以通过该接口获取。

请求格式

POST https://{apigw-address}/connect-service/v2.1/measurepoints?action=queryLatest

请求参数(URI)

注解

本表非必须字段中,必须使用以下任意一种方式来指定设备:

  • assetId
  • productKey + deviceKey
名称 位置 (Path/Query) 必需/可选 数据类型 描述
orgId Query 必需 String 资产所属的组织ID。如何获取orgId信息>>
assetId Query 可选 String 资产ID,用于指定设备。
productKey Query 可选 String Product Key。用于与 deviceKey 一起指定设备。
deviceKey Query 可选 String Device Key。用于与 productKey 一起指定设备。

请求参数 (Body)

名称 必需/可选 数据类型 描述
measurepointIds 可选 String数组 由测点标识符(字符串)组成的数组。用于指定需要返回的测点。如果没有提供,则返回所有测点的最新值。

响应参数

名称 数据类型 描述
data MeasurepointStatus 结构体数组 测点相关的数据。 MeasurepointStatus 的结构见下表。

MeasurepointStatus结构体

名称 数据类型 描述
id String 测点ID
time String 测点更新时间。
value 根据模型定义确定 测点值。

示例

请求示例

url: https://{apigw-address}/connect-service/v2.1/measurepoints?action=queryLatest&orgId=yourOrgId&assetId=yourAssetId
method: POST
requestBody:
{
        "measurepointIds":[
                "temp"
        ]
}

响应示例

{
    "code": 0,
    "msg": "OK",
    "requestId": "5c48cad3-3e33-4e0e-be43-9ca628ba3ae5",
    "data": [
        {
            "id": "temp",
            "time": "1579590343468",
            "value": 0.3084426
        }
    ]
}

Java SDK调用示例

package com.envisioniot.enos.api.sample.connect_service.device;

import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.connect_service.v2_1.measurepoints.QueryLatestMeasurepointsRequest;
import com.envisioniot.enos.connect_service.v2_1.measurepoints.QueryLatestMeasurepointsResponse;
import com.google.common.collect.ImmutableList;

public class GetLatestMeasurementPoints {

    public static void main(String[] args) {
        String appKey = "yourAppKey";
        String appSecret = "yourAppSecret";
        String serverUrl = "yourServerUrl";

        String orgId = "yourOrgId";
        String assetId = "yourAssetId";

        QueryLatestMeasurepointsRequest request = new QueryLatestMeasurepointsRequest();
        request.setOrgId(orgId);
        request.setAssetId(assetId);
        request.setMeasurepointIds(ImmutableList.of("temp"));
        QueryLatestMeasurepointsResponse response = Poseidon.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
                .url(serverUrl)
                .getResponse(request, QueryLatestMeasurepointsResponse.class);
    }
}