产品定价 立即试用
云平台
欧洲地区
文档 > 规则引擎 > 规则引擎入门
入门
指南 API 常见问题
目录

规则引擎入门

Hello-World示例

假设您的设备使用DHT22传感器采集温度并推送到ThingsBoard。 DHT22可测量 -40°C至 +80°C的温度。

本教程将配置ThingsBoard规则引擎,仅保存-40至80°C范围内的温度,其余读数记录到系统日志。

添加温度校验节点

在ThingsBoard界面中进入规则链页面并打开根规则链

image

脚本过滤规则节点拖放到链中。将打开节点配置窗口。

可使用 TBEL(TBEL)或 JavaScript 开发用户自定义函数。 建议使用 TBEL,其在ThingsBoard 中的执行效率远高于 JS。

我们将使用该脚本进行数据校验:

1
2
return msg.temperature == null
|| (msg.temperature >= -40 && msg.temperature <= 80);

image

我们将使用该脚本进行数据校验:

1
2
return typeof msg.temperature === 'undefined'
|| (msg.temperature >= -40 && msg.temperature <= 80);

image

若温度未定义或温度有效,脚本返回 True,否则返回 False。 脚本返回 True 时,入站消息将路由到通过 True 关系连接的下游节点。

现在令所有遥测请求都经过该校验脚本。需删除 Message Type Switch 节点与 Save Telemetry 节点之间已有的 Post Telemetry 关系:

image

然后用 Post Telemetry 关系将 Message Type Switch 节点连接到 Script Filter 节点:

image

image

接下来,用 True 关系将 Script Filter 节点连接到 Save Telemetry 节点,使所有有效遥测被保存:

image

同时,用 False 关系将 Script Filter 节点连接到 Log Other 节点,使所有无效遥测记录到系统日志:

image

点击保存以应用更改。

验证结果

需先创建设备并向ThingsBoard提交遥测以验证结果。进入设备部分并创建新设备:

image

将使用 Rest API 提交设备遥测。为此需要从设备 DHT22 复制设备访问令牌。

image


在终端发送温度读数为99的消息。将 $ACCESS_TOKEN 替换为实际设备令牌。

1
curl -v -X POST -d '{"temperature":99}' https://eu.thingsboard.cloud/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"

image

将看到遥测出现在设备的最新遥测中:

image


现在发送温度读数为24的消息。

1
curl -v -X POST -d '{"temperature":24}' https://eu.thingsboard.cloud/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"

image

将看到遥测已成功保存。

image

另见

可通过以下链接进一步了解ThingsBoard规则引擎:

下一步