本教程演示如何根据设备上报的数据,动态将设备添加或移出设备分组。
使用场景
假设设备向ThingsBoard上报温度读数,您希望可视化那些上报温度 > 50°C 的设备。
本教程将配置ThingsBoard Rule Engine,根据设备上报的温度读数自动更新「高温设备」分组的成员。 您可以将本教程作为基础,实现更复杂的过滤逻辑。
前置条件
请确保已完成以下指南并阅读所列文章:
模型定义
我们将使用名为「Sensor A」、类型为「DHT22」的温度传感器设备。

消息流
本节说明本教程中各节点的作用。
Root rule chain

-
Node A:Rule Chain 节点
- 修改默认 root rule chain,将所有 telemetry 转发到新的「Add device to group」rule chain
新建「Add device to group」rule chain

-
Node B:Script filter 节点
- 检查入站消息是否包含温度读数
- 若包含温度读数,则转发至 Node C

-
Node C:Script filter 节点
- 检查入站消息温度是否 > 50°C
- 若温度 > 50°C,消息转发至 Node D
- 若温度 <= 50°C,消息转发至 Node E

-
Node D:Add to Group 节点
- 将设备加入分组
- 通过替换 deviceType 的 metadata 值构建分组名
- 需要时自动创建设备分组

-
Node E:Remove from Group 节点
- 将设备从分组中移除
- 通过替换 deviceType 的 metadata 值构建分组名

配置 Rule Chain
下载并 import 附带的 json file 作为新的「Add device to group」rule chain。 注意所有节点均已开启 debug,会影响性能。在 root rule chain 中按上图创建 Node A,将 telemetry 转发到新的 rule chain。
验证流程
代表新设备 Publish 温度读数,并观察新分组是否自动创建:
