写点什么

如何从 5 万设备中找出频繁掉线设备,长期不在线的设备?——设备管理运维类

作者:阿里云AIoT
  • 2023-03-09
    浙江
  • 本文字数:665 字

    阅读完需:约 2 分钟

通过规则引擎监听设备上下线状态变更


1.设备上下线状态消息

当设备连接到 IoT 物联网平台,设备离线,在线状态变更会生成特定 topic 的消息,我们服务端可以通过订阅这个 topic 获得设备状态变更信息。**

设备的上下线状态流转的 Topic 格式:

/as/mqtt/status/{productKey}/{deviceName}
复制代码


payload 数据格式:

{    "status":"online|offline",    "productKey":"pk13543",    "deviceName":"deviceName1234",    "time":"2018-08-31 15:32:28.205",    "utcTime":"2018-08-31T07:32:28.205Z",    "lastTime":"2018-08-31 15:32:28.195",    "utcLastTime":"2018-08-31T07:32:28.195Z",    "clientIp":"123.123.123.123"}
复制代码

参数说明:


2.通过规则引擎流转设备状态


2.1 配置 SQL

SELECT productKey,deviceName,timestamp() as timestamp ,status,time as currentTime ,lastTime,clientIpFROM "/as/mqtt/status/a1Xr8ofpSst/+" WHERE 
复制代码


这样我们就可以从消息体获取到设备的 status,currentTime 和 lastTime 了。

规则引擎数据处理操作界面


2.2 配置数据流转 RDS

规则引擎数据流转操作界面


在 device_status_history 表中,执行 SQL 统计出来设备上下线情况


2.3 设备当前状态

由于极端情况下频繁上下线,设备上下线的消息是乱序的,平台不保证上下线消息先后顺序,因此要根据 lastTime 排序,以最新时间的状态为准。

SELECT productKey,deviceName,status,lastTime,clientIpFROM device_status_historyorder by lastTime DESC
复制代码


物联网平台产品介绍详情:https://www.aliyun.com/product/iot/iot_instc_public_cn 


​编辑阿里云物联网平台客户交流群

 

用户头像

阿里云AIoT

关注

物联网内容搬运者 2022-04-22 加入

还未添加个人简介

评论

发布
暂无评论
如何从5万设备中找出频繁掉线设备,长期不在线的设备?——设备管理运维类_阿里云AIoT_InfoQ写作社区