Skip to content

ThingsBoard 规则链:check relation ​

正文与配图来自原稿。本篇讲筛选器节点 check relation(检查关联关系是否存在)。

1、概述 ​

check relation 检查消息的发起者与其它实体之间的关系是否存在。

  • 若勾选 「检查与特定实体的关系」,必须指定相关实体;规则节点会查发起者与该实体是否有关联。
  • 若不勾选,则检查是否存在满足「方向 + 关联类型」条件的任意实体关系。

一般情况都会勾选「检查与特定实体的关系」:指定一个实体,再查当前发起者与它是否有关联。

2、节点理解 ​

2.1、概述 ​

节点配置如图:

check relation 节点配置

配置项含义
名称给这个节点命名
Check relation to specific entity勾选后需指定一个实体,底层按该实体查发起者是否与其有关联
方向发起者与指定实体之间关联的方向,主要有 From 与 To(下文结合图讲解)
类型指定实体的类型:设备、资产、实体视图、租户、客户、用户、仪表板、边缘等
关联类型发起者与指定实体之间关联关系的名称
说明对该节点的描述信息

3、案例实操 ​

场景:有一个工厂资产 factoryA;其下有温度设备 temperatureSensorA(设备配置 temperature sensor)。设备属于工厂,二者关联类型命名为 factory_temperatureSensor,关系方向为 From。设备上报时设备为发起者;存在关系则 True → 保存遥测,不存在则 False → 打印 log。

3.1、创建设备配置 ​

创建设备配置 temperature sensor:

创建设备配置 temperature sensor

3.2、创建设备 ​

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

创建设备 temperatureSensorA

3.3、创建资产 ​

创建资产 factoryA:

创建资产 factoryA

3.4、绑定关系 ​

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

资产与设备关系入口

添加关系如下:

添加 factory_temperatureSensor 关系

3.5、规则链添加 check relation ​

规则链整体:

规则链整体

check relation 节点配置:

check relation 配置示例

3.6、讲解 From 和 To ​

From / To 方向示意

结合实体树理解方向:从上往下找「到」某实体,方向选 To;从下往上找「从」某实体,方向选 From。配置时一定要和绑定关系时选的方向一致。

4、测试 ​

用 MQTTX 模拟设备:

MQTTX 连接

模拟上报温度 90℃:

上报 temperature=90

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

节点 out=True

5、注意 ​

在实际项目上,一定要先理清实体之间的关系:

  • 从上往下查到目标实体 → 方向选 To
  • 从下往上查来源实体 → 方向选 From

方向或关联类型名写错,都会导致 False。


补充(辅) ​

  • 不勾选「特定实体」时,只要存在任一匹配方向 + 关联类型的关系即 True,范围更宽。
  • 关联类型名必须与创建关系时完全一致(如 factory_temperatureSensor)。
  • 发起者是消息来源实体;设备上报时发起者通常是该设备。

相关文章 ​