ThingBoard四个核心模块
-
设备管理
-
数据接入
-
规则引擎
-
部件面板
也就是说,ThingsBoard可用于:
- 设备管理,资产和客户并定义他们之间的关系。
- 基于设备和资产收集数据并进行可视化。
- 采集遥测数据并进行相关的事件处理进行警报响应。
- 基于远程RPC调用进行设备控制。
- 基于生命周期事件、REST API事件、RPC请求构建工作流。
- 基于动态设计和响应仪表板向你的客户提供设备或资产的遥测数据。
- 基于规则链自定义特定功能。
- 发布设备数据至第三方系统。
系统管理员-----(分配)----------->租户--------(分配)--------->客户用户
客户是一个抽象概念,也就是说客户用户才是真用户。
二、设备基础概念
观察下设备面板,有以下几部分构成:
-
属性:基础信息,比较稳定(属性 代表设备基本信息, 以key-value格式存在, 可以与IoT设备无缝兼容。)
-
遥测:需要测量的状态信息(遥测也就是我们常说的设备测量状)
-
警告:设备或者设备监控的状态出现问题
-
事件:发生在设备上的事件
-
关联:设备属于谁,在哪个资产上等等
-
审计日志:谁在平台上对设备做了什么操作
其中属性是基础,遥测是核心。
1.属性:
分客户端属性
服务端属性
共享属性
2.物联网的核心目的之一就是通过传感器采集相应的遥测数据上传
ThingsBoard 提供了大量与遥测数据操作相关的功能
- 采集 使用MQTT, CoAP或者HTTP协议采集设备数据。
- 存储 在Cassandra(高效、可扩展、能容错的NoSQL数据库)中存储时序数据。
- 查询 查询最新时序数据值,或查询特定时间段内的所有数据。
- 订阅 使用websockets订阅数据更新(用于可视化或实时分析)。
- 可视化 使用可配置和可配置的小部件以及仪表盘可视化时序数据。
- 过滤和分析 使用灵活的规则引擎过滤和分析数据(/docs/user-guide/rule-engine/)。
- 事件警报 根据采集的数据触发事件警报。
- 数据传输 过规则引擎节点实现与外部数据交互(例如Kafka或RabbitMQ规则节点)
三、规则链库
- 筛选器 使用配置条件筛选传入的消息
- 属性集 向消息元数据中添加附加信息
- 变换 更改消息Payload和元数据
- 动作 执行特别动作
- 外部的 与外部系统交互
- 规则链 将传入的消息发送到指定的规则链
1.规则链配置能实现那些功能
- 在保存到数据库之前,对传入遥测或属性进行数据验证和修改。
- 将遥测或属性从设备复制到相关资产,以便可以汇总遥测。例如,可以将多个设备中的数据汇总到相关资产中。
- 根据定义的条件创建/更新/清除警报。
- 根据设备生命周期事件触发操作。例如,如果设备处于在线/离线状态,则创建警报。
- 加载处理所需的其他数据。例如,在“设备的客户”或“租户”属性中定义的设备的负载温度阈值。
- 触发对外部系统的REST API调用。
- 发生复杂事件时发送电子邮件,并使用“电子邮件模板”中其他实体的属性。
- 在事件处理期间要考虑用户的偏好。
- 根据定义的条件进行RPC调用。
- 与外部管道(如Kafka,Spark,AWS服务等)集成。