AWS IoT 获取设备在线状态
利用 Amazon IoT 生命周期事件和 LWT 管理设备状态
一、通过监听生命周期事件更新设备影子状态
创建规则示例:
此规则监听$aws/events/presence/disconnected/{clientId},当设备断开连接接收到的数据通过SQL语句转为
{ "state":{ "reported":{ "online":0 } } }
可通过Republish to AWS IoT topic 发送到设备影子
$$aws/things/${topic(5)}/shadow/update
topic(decimal)函数表示获取第几位主题值
topic()默认获取全部:$aws/events/presence/disconnected/+
topic(5)表示获取第五位,这里第五位表示物品名
通过控制台测试即可
二、通过监听LWT(遗嘱消息)更新设备影子状态
使用lwt规则引擎监听
订阅主题例:my/things/+/shadow/update_lwt ,+号表示所有
设备端连接时候注册LWT消息以及主题
在异常断开连接时Amazon IoT平台将发送如
“my/things/clientId/shadow/update_lwt ”主题的JSON格式消息”
{“state”:{“reported”:{“online”:0}}}”