3、规则链基础概念:节点、连接、消息流、规则链编辑器界面介绍
在 ThingsBoard 中,规则链(Rule Chain) 是处理设备数据、执行业务逻辑的核心引擎。理解规则链的四大基础概念——节点、连接、消息流和编辑器界面,是构建复杂 IoT 应用的前提。本章将逐一拆解这些概念,并配合可视化图示帮助建立直观认知。
3.1 节点(Node)——规则链的“积木块”
节点是规则链中最小的执行单元,每个节点封装了特定的处理逻辑。根据功能,节点可分为以下几类:
| 节点类别 | 典型节点 | 功能描述 |
|---|---|---|
| 消息处理 | Script Filter、Transform、Generator | 过滤、转换或生成消息负载 |
| 外部集成 | REST API Call、Kafka、MQTT | 与外部系统进行数据交互 |
| 数据持久化 | Save Timeseries、Save Attributes | 将数据写入数据库 |
| 动作执行 | Log、Push to Edge、RPC Call | 触发特定动作或远程控制 |
| 路由控制 | Check Relation、Switch、Delay | 根据条件或时间控制消息流向 |
💡 提示: 本课程重点关注的 REST API Call 节点属于“外部集成”类别,它允许规则链通过 HTTP 协议调用任意外部 RESTful 服务,是实现“规则链调用外部 HTTP 服务”的核心节点。
3.2 连接(Connection)——消息的“管道”
连接定义了节点之间的数据传递关系。每个连接都带有一个 连接标签(Link Label),用于标识消息传递的条件或结果状态。常见的连接标签包括:
- Success:节点处理成功后的默认出口。
- Failure:节点处理失败时的出口。
- True / False:条件判断节点(如 Script Filter)根据表达式结果选择出口。
- Other:当消息不匹配任何已定义标签时的兜底出口。
连接的设计使得规则链能够实现复杂的条件分支和异常处理逻辑,而无需编写大量代码。
3.3 消息流(Message Flow)——数据的“旅行路线”
消息流描述了消息从进入规则链到最终被处理完成的完整路径。一个典型的消息流包含以下阶段:
- 消息入站:设备遥测、属性更新或事件通过 Root Rule Chain 的入口节点进入。
- 节点处理:消息依次经过各个节点,每个节点执行其特定逻辑(过滤、转换、调用外部服务等)。
- 条件路由:根据节点输出结果,通过连接标签将消息路由到不同的下游节点。
- 消息终结:消息到达链尾节点(如 Log、Save Timeseries)或被丢弃。
📐 架构视角: 消息流本质是一个 有向无环图(DAG)。ThingsBoard 引擎会按拓扑顺序依次执行节点,确保消息不会陷入死循环。
3.4 规则链编辑器界面介绍
ThingsBoard 的规则链编辑器是一个基于 Web 的拖拽式可视化设计工具。熟悉其界面布局是高效开发规则链的第一步。编辑器主要分为以下几个区域:
| 区域名称 | 位置 | 功能说明 |
|---|---|---|
| 节点面板 | 左侧 | 列出所有可用节点,按类别分组(Filter、Transform、Action、External 等),支持搜索 |
| 画布区域 | 中央 | 拖拽节点、绘制连接、编排消息流的主工作区,支持缩放和平移 |
| 节点配置面板 | 右侧(点击节点后弹出) | 配置选中节点的具体参数(如 REST API URL、脚本内容、超时时间等) |
| 工具栏 | 顶部 | 包含保存、测试、调试、导入/导出、版本历史等操作按钮 |
| 调试控制台 | 底部(可折叠) | 实时显示消息流经各节点的日志、错误信息和事件跟踪 |
⚠️ 避坑提醒: 在编辑器中修改规则链后,务必点击 “保存” 按钮。未保存的修改在刷新页面或切换浏览器标签页后会丢失。建议在开发过程中频繁保存,并利用“版本历史”功能记录关键变更点。
3.5 核心概念关系总结
节点、连接、消息流和编辑器界面四者之间的关系可以概括为:
- 节点 是功能单元,连接 是路由规则,二者共同定义了 消息流 的拓扑结构。
- 编辑器界面 是可视化编排上述三者的工具,提供了从设计、配置到调试的一站式体验。
- 理解消息在节点间如何根据连接标签流动,是调试规则链和定位问题的关键。