Hello-World示例
假设您的设备使用DHT22传感器采集温度并推送到ThingsBoard。 DHT22可测量 -40°C至 +80°C的温度。
本教程将配置ThingsBoard规则引擎,仅保存-40至80°C范围内的温度,其余读数记录到系统日志。
添加温度校验节点
在ThingsBoard界面中进入规则链页面并打开根规则链。

将脚本过滤规则节点拖放到链中。将打开节点配置窗口。
可使用 TBEL(TBEL)或 JavaScript 开发用户自定义函数。 建议使用 TBEL,其在ThingsBoard 中的执行效率远高于 JS。
若温度未定义或温度有效,脚本返回 True,否则返回 False。 脚本返回 True 时,入站消息将路由到通过 True 关系连接的下游节点。
现在令所有遥测请求都经过该校验脚本。需删除 Message Type Switch 节点与 Save Telemetry 节点之间已有的 Post Telemetry 关系:

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


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

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

点击保存以应用更改。
验证结果
需先创建设备并向ThingsBoard提交遥测以验证结果。进入设备部分并创建新设备:

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

在终端发送温度读数为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"

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

现在发送温度读数为24的消息。
1
curl -v -X POST -d '{"temperature":24}' https://eu.thingsboard.cloud/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"

将看到遥测已成功保存。

另见
可通过以下链接进一步了解ThingsBoard规则引擎:
- 规则引擎概述
- 调试节点执行
- 校验入站遥测
- 转换入站遥测
- 使用先前记录转换遥测
- 创建与清除告警
- 告警时发送邮件
- 设备离线时创建告警
- 检查实体间关系
- 向关联设备发送RPC请求
- 动态添加与移除设备到组
- 聚合入站数据流

