通过规则引擎监听设备上下线状态变更
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,clientIp
FROM "/as/mqtt/status/a1Xr8ofpSst/+" WHERE
这样我们就可以从消息体获取到设备的status,currentTime和lastTime了。
规则引擎数据处理操作界面
2.2 配置数据流转RDS
规则引擎数据流转操作界面
在device_status_history表中,执行SQL统计出来设备上下线情况:
2.3 设备当前状态
由于极端情况下频繁上下线,设备上下线的消息是乱序的,平台不保证上下线消息先后顺序,因此要根据lastTime排序,以最新时间的状态为准。
SELECT productKey,deviceName,status,lastTime,clientIp
FROM device_status_history
order by lastTime DESC
物联网平台产品介绍详情:https://www.aliyun.com/product/iot/iot_instc_public_cn
阿里云物联网平台客户交流群
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。