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