规则引擎是基于事件开发的一个易于使用的工作流的框架;主要有3个组成部分:
ThingsBoard规则引擎是一个高度可定制的框架用于复杂事件的处理。以下是一些可以通过ThingsBoard规则链配置的常见用例:
你可以使用ThingsBoard平台将DHT22温度传感器采集的-40°C至+ 80°C温度值进行收集。
在此教程中我们将配置ThingsBoard规则引擎来存储-40至80°C范围内的所有温度,并将所有数据记录到系统日志中。
进入Thingsboard UI中Rule Chains转到Root Rule Chain.
拖动Script Filter 规则节点放入链中并配置如下脚本:
return typeof msg.temperature === 'undefined'
|| (msg.temperature >= -40 && msg.temperature <= 80);
如果未定义温度属性或温度有效则脚本将返回True,否则将返回False。如果脚本返回True则传入消息将被关联到与True关系连接的下一个节点。
我们希望所有的telemetry requests都通过此脚本进行验证. 删除Message Type Switch节点和Save Telemetry节点之间的Post Telemetry关系节点。
将Message Type Switch节点和将Script Filter使用Post Telemetry进行连接:
将Script Filter节点与Save Telemetry节点使用关系True进行连接:
将Script Filter节点与Log Other节点使用关系False进行连接这样无效数据将被记录在系统日志中:
点击保存按钮应用更新。
创建设备并将遥测提交到Thingsboard,点击Devices并创建新的设备:
可以使用设备令牌进行Rest API提交遥测数据提交,
提交temperature = 99的值,可以进行Latest Telemetry中查看,发现并未加成功:
curl -v -X POST -d '{"temperature":99}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"
*替换掉$ACCESS_TOKEN为实际设备的Token
提交temperature = 24可以看见遥测数据保存成功
curl -v -X POST -d '{"temperature":24}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"
你可以通过以下链接了解Thingsboard规则引擎的更多信息:
安装指南 - 了解如何在各种操作系统上安装ThingsBoard。
设备连接 - 了解如何根据您的连接方式或解决方案连接设备。
数据看板 - 这些指南包含有关如何配置复杂的ThingsBoard仪表板的说明。
数据处理 - 了解如何使用ThingsBoard规则引擎。
数据分析 - 了解如何使用规则引擎执行基本的分析任务。
硬件样品 - 了解如何将各种硬件平台连接到ThingsBoard。
高级功能 - 了解高级ThingsBoard功能。
开发指南 - 了解ThingsBoard中的贡献和开发。