Skip to content

ThingsBoard 场景联动 ​

正文与配图来自原稿。案例:温度过高开风扇、光照不足开灯;含租户、设备、关联、MQTT 模拟与规则链验证。

0、需求 ​

场景联动需求示意

1、概述 ​

当初有个兄弟请我帮他实现上述需求,做完后怕他操作不来,又写了这份文档;今天把这个场景发出来,方便大家学习思路。

2、登录账号 ​

系统层(默认示例环境):

项值
账号sysadmin@thingsboard.org
密码sysadmin

系统层登录

3、创建租户 ​

新建租户:

新建租户

新建租户管理员账号并进入:

进入租户相关入口

创建租户管理员:

创建租户管理员 1

创建租户管理员 2

4、激活账号 ​

激活账号

租户层示例账号(按你环境实际激活结果为准):

项值
账号tenant@thingsboard.org
密码tenant

进入租户层:

租户层首页

5、创建设备配置 ​

按需求,设备配置两类:传感器、执行器(名称用英文):

配置名含义
sensor传感器
executor执行器

创建设备配置:

创建设备配置 sensor

同理创建执行器:

创建设备配置 executor

假设设备都用 MQTT 上报,传输配置保持默认 MQTT 即可。

6、创建设备 ​

需求中的设备:

  • 传感器:温度、湿度、光照
  • 执行器:灯、风扇

创建温度传感器:

温度传感器

湿度传感器:

湿度传感器

光照传感器:

光照传感器

灯:

灯设备

风扇:

风扇设备

注意:设备配置按上面规划选择;凭据(Token) 用系统默认生成即可,后续 MQTT 模拟连接需要这个 Token。

全部设备:

全部设备列表

7、绑定关联关系 ​

联动需要关联关系,才能按关系找到执行器并下发控制。

温度传感器 ↔ 风扇:

温度与风扇关联

光照传感器 ↔ 灯:

光照与灯关联

8、规划设备上报数据 ​

所有模拟上报走 MQTT,JSON 字段约定如下。

温度传感器 — temperature:

json
{
  "temperature": 90
}

湿度传感器 — humidity:

json
{
  "humidity": 20
}

光照传感器 — beam:

json
{
  "beam": 1000
}

灯 — openStatus(true 开 / false 关),currentLight(亮度;关灯可为 0):

json
{
  "openStatus": false,
  "currentLight": 20
}

风扇 — openStatus:

json
{
  "openStatus": false
}

下发打开风扇:

json
{
  "method": "0604",
  "params": {
    "openStatus": true
  },
  "timeout": 30000
}

下发开灯并指定亮度(改 currentLight 即可):

json
{
  "method": "0604",
  "params": {
    "openStatus": true,
    "currentLight": 100
  },
  "timeout": 30000
}

9、创建规则引擎 ​

9.1、温度超过 60℃:触发告警,同时开风扇 ​

先连接温度传感器模拟设备:

温度传感器 MQTT 连接

再连接风扇模拟设备:

风扇 MQTT 连接

连接时需新开窗口才能同时开多个客户端:

多窗口连接说明

风扇要收控制指令,需订阅:

text
v1/devices/me/rpc/request/+

风扇订阅 RPC 主题 1

风扇订阅 RPC 主题 2

测试: 发送温度 70:

上报 temperature=70

遥测中有数据:

温度遥测

规则链处理(超温 → 告警 → 经关联找到风扇 → RPC):

超温开风扇规则链

风扇收到订阅到的控制命令:

风扇收到 RPC

风扇上报遥测(如 openStatus):

风扇遥测

9.2、光照小于 1000 lux:自动开灯 ​

规则链实现:

光照开灯规则链

创建 / 连接光照传感器模拟设备:

光照传感器连接 1

光照传感器连接 2

灯模拟设备:

灯设备连接

灯同样订阅 RPC:

text
v1/devices/me/rpc/request/+

灯订阅 RPC 1

灯订阅 RPC 2

测试时灯也要另开窗口保持在线:

灯单独窗口

光照传感器上报数据:

上报 beam

查看光照遥测:

光照遥测

灯收到开灯指令并上报:

灯收到 RPC

查看灯的遥测:

灯遥测

10、总结 ​

模拟设备指令与连接参数汇总:

MQTT 连接参数汇总

设备要点
温度传感器上报 {"temperature":90}
风扇订阅 v1/devices/me/rpc/request/+;状态如 {"openStatus":false}
光照传感器上报 {"beam":1000}
灯订阅 v1/devices/me/rpc/request/+;状态含 openStatus、currentLight

补充(辅) ​

  • 规则链里常用:脚本判断阈值 → check relation / change originator → RPC call request;告警可用 Create Alarm。节点细节见 规则节点总览、check relation。
  • 执行器必须在线且已订阅 RPC 主题,否则链路走通也看不到设备侧命令。
  • 默认账号密码仅用于演示环境,生产务必修改。

相关文章 ​