规则引擎订阅设备上下线事件并将上下线状态更新至物影子
飘****肥 · 飘****肥 发布于2019-01-23 19:22 浏览:1150 回复:1

通过规则引擎监听设备上下线事件,并通过"物接入动态主题"将设备上下线状态更新至设备对应的物影子。

只需一个规则,即可完成对所有影子的上下线监控。

步骤:

1、创建物模型:该模型只有一个state属性,设备上线时更新为1,设备下线时更新为0 创建物模型.png

2、创建物影子 创建物影子.png

3、创建规则引擎:

规则监听物管理(即物接入 - 设备型)实例,订阅$baidu/sys/event/#主题。

结果输出到目的地"物接入动态主题",目的地值为'$baidu/iot/shadow/' || deviceName || '/update'"物接入动态主题"是一个规则处理无数设备的关键。

创建规则.png

以设备上线为例:

$baidu/sys/event/connect主题消息如下:

{
             "deviceName"         :         "device01"         ,
             "connectionType"         :         "CONNECT"         ,
             "version"         :3242591731706757127,
             "timestamp"         :1548240288859,
             "clientId"         :         "device01"         ,
             "ipAddress"         :         "116.247.112.151"
}

规则引擎SQL如下:

AS reported.state

规则引擎产出如下:

{
             "reported"         : {
                 "state"         : 1
             }
}

"物接入动态主题"计算出的真实目的地如下:

$baidu/iot/shadow/device01/update

试验:

根据创建物影子时给出的连接信息,连接物影子,注意clientID为物影子名字

MQTTfx.png

1、连接物影子

连接物影子.png         可以看到物影子显示"在线",并且state的值为1 设备上线.png

2、断开设备 断开设备.png

可以看到物影子显示"离线",并且state的值为0 设备下线.png

点赞  ( 0 )
收藏
评论(1)
TOP