OnsMqttQueryHistoryOnline

根据 Group ID(GID)和给定的时间段查询历史在线设备的数量曲线。

描述

使用场景

OnsMqttQueryHistoryOnline 接口一般用于生成业务报表。

使用限制

由于 OpenAPI 面向的场景是用户自定义管控开发,服务端会对过快的调用进行限流(每分钟 30 次),因此不要在业务的主流程中使用本接口。如需判断设备是否在线,请使用设备上下线通知功能。

请求参数列表

名称 类型 是否必需 描述
OnsRegionId String 当前操作的 MQTT 实例所在地域(Region)关于地域的详细信息,请参见管控 API 接入指南
OnsPlatform String 请求来源,默认来源是 POP 平台
PreventCache Long 用于 CSRF 校验,设置为系统当前时间即可,单位毫秒(ms)
GroupId String 需查询的目标 GID
BeginTime Long 查询的起始时间
EndTime Long 查询的终止时间,起止时间范围建议尽可能在当天,否则后端会自动截断
InstanceId String 需查询的 GID 所属的 MQTT 实例 ID

返回参数列表

名称 类型 描述
RequestId String 为公共参数,每个请求的 ID 都是唯一的
HelpUrl String 帮助链接
data Data 数据集合

Data 数据集列表

名称 类型 描述
Title String Table 的名称
Records List(StatsDataDo) 采集点信息

StatsDataDo 数据集列表

名称 类型 描述
X Long 横轴,毫秒时间戳
Y Float 纵轴,数量

使用示例

本示例仅仅提供一个参考,从杭州接入点接入,查询指定 GID 下在过去一小时在线设备的数量信息。


    public static void main(String[] args) {
        String regionId = "cn-hangzhou";
        String accessKey = "XXXXXXXXXXXXXXXXX";
        String secretKey = "XXXXXXXXXXXXXXXXX";
        IClientProfile profile= DefaultProfile.getProfile(regionId,accessKey,secretKey);
        IAcsClient iAcsClient= new DefaultAcsClient(profile);
        OnsMqttQueryHistoryOnlineRequest request = new OnsMqttQueryHistoryOnlineRequest();
        request.setPreventCache(System.currentTimeMillis());
        request.setAcceptFormat(FormatType.JSON);
        request.setGroupId("XXX");
        request.setBeginTime(System.currentTimeMillis()-1000*3600);
        request.setEndTime(System.currentTimeMillis());
		request.setInstanceId("aaaaa");
        try {
         	    OnsMqttQueryHistoryOnlineResponse response = iAcsClient.getAcsResponse(request);
               	OnsMqttQueryHistoryOnlineResponse.Data data =response.getData();
                System.out.println(data.getTitle()+"\n"+
                data.getRecords());
        } catch (ServerException e) {
          e.printStackTrace();
        } catch (ClientException e) {
          e.printStackTrace();
        }
    }