ThingsBoard 规则链:check relation
正文与配图来自原稿。本篇讲筛选器节点 check relation(检查关联关系是否存在)。
1、概述
check relation 检查消息的发起者与其它实体之间的关系是否存在。
- 若勾选 「检查与特定实体的关系」,必须指定相关实体;规则节点会查发起者与该实体是否有关联。
- 若不勾选,则检查是否存在满足「方向 + 关联类型」条件的任意实体关系。
一般情况都会勾选「检查与特定实体的关系」:指定一个实体,再查当前发起者与它是否有关联。
2、节点理解
2.1、概述
节点配置如图:

| 配置项 | 含义 |
|---|---|
| 名称 | 给这个节点命名 |
| Check relation to specific entity | 勾选后需指定一个实体,底层按该实体查发起者是否与其有关联 |
| 方向 | 发起者与指定实体之间关联的方向,主要有 From 与 To(下文结合图讲解) |
| 类型 | 指定实体的类型:设备、资产、实体视图、租户、客户、用户、仪表板、边缘等 |
| 关联类型 | 发起者与指定实体之间关联关系的名称 |
| 说明 | 对该节点的描述信息 |
3、案例实操
场景:有一个工厂资产 factoryA;其下有温度设备 temperatureSensorA(设备配置 temperature sensor)。设备属于工厂,二者关联类型命名为 factory_temperatureSensor,关系方向为 From。设备上报时设备为发起者;存在关系则 True → 保存遥测,不存在则 False → 打印 log。
3.1、创建设备配置
创建设备配置 temperature sensor:

3.2、创建设备
创建设备 temperatureSensorA,设备配置选择 temperature sensor:

3.3、创建资产
创建资产 factoryA:

3.4、绑定关系
给 factoryA 与 temperatureSensorA 绑定关联,关联名称 factory_temperatureSensor:

添加关系如下:

3.5、规则链添加 check relation
规则链整体:

check relation 节点配置:

3.6、讲解 From 和 To

结合实体树理解方向:从上往下找「到」某实体,方向选 To;从下往上找「从」某实体,方向选 From。配置时一定要和绑定关系时选的方向一致。
4、测试
用 MQTTX 模拟设备:

模拟上报温度 90℃:

查看 check relation 节点日志:out 为 True,进入保存遥测:

5、注意
在实际项目上,一定要先理清实体之间的关系:
- 从上往下查到目标实体 → 方向选 To
- 从下往上查来源实体 → 方向选 From
方向或关联类型名写错,都会导致 False。
补充(辅)
- 不勾选「特定实体」时,只要存在任一匹配方向 + 关联类型的关系即 True,范围更宽。
- 关联类型名必须与创建关系时完全一致(如
factory_temperatureSensor)。 - 发起者是消息来源实体;设备上报时发起者通常是该设备。
相关文章
- 规则链:check alarm status
- 规则链:check existence fields
- 实现定时任务或调度器(同样涉及实体关系与 change originator)
- 专栏导读
