偷空写一篇关于TB规则链的用法简介

thingsboard开源项目提供了一个专用的开源流处理服务,其官网命名为“规则链”,如下图

其功能应该说还是相当强大的,其中有各种传输协议的RPC调用及处理,还有地理围栏功能,以及一些API的调用以及消息的发布,在物联网这个大环境下还是相当的实用的。

本篇我大概说一下一些简单的用法,可能不太全面,需要用到其他功能的小伙伴们可以移至官网底下,其中有详细的介绍:官网规则链 

在这之前,我们需要理解几个东西:

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

然后是一些需要注意的参数:

  • 消息ID:基于时间的通用唯一标识符;
  • 消息的发起者:设备,资产或其他实体标识符;
  • 消息类型:“发布遥测”或“不活动事件”等;
  • 消息的有效载荷:具有实际消息有效载荷的JSON主体;
  • 元数据:包含有关消息的其他数据的键值对列表。

消息类型包括以下几种:

  • POST_ATTRIBUTES_REQUEST:发布属性
  • POST_TELEMETRY_REQUEST:发布遥测
  • TO_SERVER_RPC_REQUEST:来自设备的RPC请求
  • RPC_CALL_FROM_SERVER_TO_DEVICE:RPC请求到设备
  • ACTIVITY_EVENT:活动事件
  • INACTIVITY_EVENT:不活动事件
  • CONNECT_EVENT:连接事件
  • DISCONNECT_EVENT:断开事件
  • ENTITY_CREATED:实体创建
  • ENTITY_UPDATED:实体更新
  • ENTITY_DELETED:实体删除
  • ENTITY_ASSIGNED:实体已分配
  • ENTITY_UNASSIGNED:实体未分配
  • ADDED_TO_ENTITY_GROUP:添加到组
  • REMOVED_FROM_ENTITY_GROUP:已从组中删除
  • ATTRIBUTES_UPDATED:属性已更新
  • ATTRIBUTES_DELETED:属性已删除
  • ALARM:告警事件
  • REST_API_REQUEST:REST API请求到规则引擎

然后我们先将每个节点的功能说一下

过滤器

首先我们讲一下过滤器,顾名思义,就是过滤消息或者用作判断的节点

TB提供了上图中的这些过滤器,其中我们比较常用的就是脚本了

我们只需要在其中将传入数据的一些键上的值进行判断,就可以将不符合条件的数据过滤掉,从而将正确的数据引入下一个节点进行处理。

下面是我自己汉化的一些解释,大家可以参考一下:

属性集

属性集主要针对的是实体的属性配置

变换

变换主要说的是转化消息体中的数据为其他类型

动作

动作模块的节点全部都是用以处理数据的,比如数据的保存、关系的删除、消息的生成等等

这块由于截图量比较大,所以就不截图了,有需要的可以在我们的QQ群里联系我

外部数据处理

主要用以与外部系统的通信

剩下还有个节点叫做“规则链”的,这个主要用于与创建的其他规则链的关联

 

 

QQ群

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章