物联网开源平台开发系列010 – Thingsboard规则引擎简介

Thingsboard 的规则引擎(Rule engine)是整个物联网(IoT)系统中最强大、最复杂也是最灵活的组件, 凭借此组件能完成99%的设备数据处理任务。

简单来说 ,规则引擎对传入的数据进行分类,根据类型不同经过不同的处理节点(Node),走不同的处理路径。其中处理节点有很多种类,实现很多不同的功能;并且可以自己在节点内部使用JavaScript去做各种处理;去调用Thingsboard自己的服务;去调用外部的API;也可以通过节点(Node)把数据转发给外部的消息队列、邮件、短信SMS、Google Cloudaws lambda;甚至可以自己写代码完成自定义功能;所有这些操作大部分通过UI图形界面可以完成拖拽式操作。

物联网开源平台开发系列010 – Thingsboard规则引擎简介

先来说一下,这个规则引擎的3个大组件:

  • 消息Message – 任何传入事件。它可以是来自设备的传入数据、设备生命周期事件、REST API 事件、RPC 请求等。
  • 规则节点Rule Node – 对传入消息执行的函数功能。有许多不同类型的节点可以对传入消息进行过滤、转换或执行某些操作。
  • 规则链Rule Chain – 节点通过关系线相互连接,因此来自规则节点的出站消息被发送到下一个连接的规则节点。

典型用例

ThingsBoard 规则引擎是一个高度可定制的复杂事件处理框架。以下是一些可以通过 ThingsBoard 规则链配置的常见用例:

  • 在保存到数据库之前,对传入的遥测或属性数据进行数据验证和修改。
  • 遥测数据或属性从设备复制到相关资产,以便您可以汇总遥测数据。例如,来自多个设备的数据可以汇总到相关资产中。
  • 根据定义的条件创建/更新/清除警报。
  • 根据设备生命周期事件触发操作。例如,如果设备处于在线/离线状态,则创建警报。
  • 加载处理所需的其他数据。例如,加载在设备的客户或租户属性中定义的设备的温度阈值。
  • 触发对外部系统的 REST API 调用。
  • 当发生复杂事件时发送电子邮件并使用电子邮件模板内其他实体的属性。
  • 在事件处理期间考虑用户偏好。
  • 根据定义的条件进行 RPC 调用。
  • 与 Kafka、Spark、AWS 服务等外部管道集成。

Hello-World 示例参见官网

规则链配置好后,可以下载分发。因为使用json进行规则链的导入导出,所有自己创建一个规则链后,将json文件复制给任何使用Thingsboard的用户,都能将此规则链进行复现。非常的方便快捷。

规则节点的分类

  • 属性集 – 将有关消息发起者、与发起者相关的实体和其他上下文数据的附加信息纳入传出消息中,以便在规则链中进一步处理步骤。
  • 变幻 – 更改传入消息字段,如发起者、消息类型、有效负载和元数据。
  • 动作 – 根据传入消息执行各种动作。
  • 外部 – 与外部系统交互,如转发消息等。
  • – 控制消息处理流程。

节点使用和解释, 参见官网链接 和 后续文章介绍。

物联网开源平台开发系列010 – Thingsboard规则引擎简介

规则引擎,有2个API 分类,

Rule Chain Controller 和 Rule Engine Controller

API: /api/rule-engine/

系列文章

物联网开源平台开发系列001 – 开源平台Thingsboard 介绍

物联网开源平台开发系列002 – Thingsboard 用户系统分析

物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆

物联网开源平台开发系列004 – Thingsboard的实体、资产、设备一般说明及数据存储 – 陈皮王五de杂记

物联网开源平台开发系列005 – Thingsboard的API简述 – 陈皮王五de杂记

物联网开源平台开发系列006 – 在Thingsboard内创建一个设备 – 陈皮王五de杂记

物联网开源平台开发系列007 – Thingsboard的批量导入设备 – 陈皮王五de杂记

物联网开源平台开发系列008 – 浅谈物联网传输协议 – 陈皮王五de杂记

物联网开源平台开发系列009 – Thingsboard服务器对IoT设备下发指令 – 陈皮王五de杂记

物联网开源平台开发系列010 – Thingsboard规则引擎简介 – 陈皮王五de杂记

物联网开源平台开发系列011 – Thingsboard规则节点Originator Telemetry – 陈皮王五de杂记

物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置 – 陈皮王五de杂记

物联网开源平台开发系列013 – Thingsboard 遥测产生告警Alarm – 陈皮王五de杂记

物联网开源平台开发系列014 – Thingsboard遥测时序数据存储结构及分区策略 – 陈皮王五de杂记

物联网开源平台开发系列015 – Thingsboard postgresql数据库基本配置 – 陈皮王五de杂记

物联网开源平台开发系列016 – 再谈Thingsboard的设备注册 – 陈皮王五de杂记

物联网开源平台开发系列017 – Thingsboard的设备联动场景 – 陈皮王五de杂记

物联网开源平台开发系列018 – Thingsboard获取和处理天气信息 – 陈皮王五de杂记

物联网开源平台开发系列019 – Thingsboard设备数据传播给资产 – 陈皮王五de杂记

物联网开源平台开发系列020 – Thingsboard的实体视图Entity View – 陈皮王五de杂记

物联网开源平台开发系列021 – Thingsboard的网关gateway – 陈皮王五de杂记

物联网开源平台开发系列022 – 通过Thingsboard网关gateway动态创建设备 – 陈皮王五de杂记

物联网开源平台开发系列023 – Thingsboard设备列表仪表盘 – 陈皮王五de杂记

物联网开源平台开发系列024 – Thingsboard接入摄像头方案 – 陈皮王五de杂记

物联网开源平台开发系列025 – Thingsboard规则链节点的JS代码调试 – 陈皮王五de杂记

原创文章,作者:Gary,如若转载,请注明出处:https://www.cpw5.top/845.html

淘宝小店:陈皮王五工作室

(0)
GaryGary
上一篇 2025-02-11 下午3:33
下一篇 2025-02-13 下午1:55

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(16条)