开发者社区> 阿里云物联网> 正文

如何从5万设备中找出频繁掉线设备,长期不在线的设备?

简介: 通过规则引擎监听设备上下线状态变更,了解设备运行情况

产品推荐:阿里云物联网开发者工具(IoT Studio),立刻免费体验吧!  
  

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

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"
}

参数说明:

参数 类型 说明
status String 设备状态,online上线,offline离线
productKey String 设备所属产品的唯一标识
deviceName String 设备名称
time String 此条消息发送的时间点
utcTime String 此条消息发送的UTC时间点
lastTime String 状态变更前最后一次通信时间
说明 可能是PUBLISH,PING等。
utcLastTime String 状态变更前最后一次通信的UTC时间
clientIp String 设备公网出口IP

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

2.1 配置SQL

SELECT productKey,deviceName,
timestamp() as timestamp ,
status,
time as currentTime ,lastTime,clientIp
FROM "/as/mqtt/status/a1Xr8ofpSst/+" WHERE 

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

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

2.2 配置数据流转RDS

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

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

2.3 配置数据流转OTS

image.png
当有设备上线,业务交互,下线,我们就可以在表格存储看到如下记录。
status是设备状态,lastTime是最后一次通信时间,currentTime是这条消息生成时间,可以理解为 设备上线时间,下线时间。
image.png

版权声明:如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developerteam@list.alibaba-inc.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里云物联网
使用钉钉扫一扫加入圈子
+ 订阅

致力于实现万物互联的美好世界,为生态合作伙伴提供基于云计算、大数据、人工智能、云端一体化、安全的物联网基础平台和内容服务平台。

官方博客
官网