iot 开源平台thingsboard使用总结

参考网址:https://thingsboard.io/docs/getting-started-guides/helloworld/
github地址:https://github.com/thingsboard/thingsboard
演示环境:https://demo.thingsboard.io/login。
架构:https://thingsboard.io/docs/reference/architecture/
actor模型:akka
用作服务调度:zookeeper
支持协议:mqtt,coap,http
持久化: Postgresql、Cassandra(https://cassandra.apache.org/数据存储),datastax(数据访问)

1、环境搭建(Mac)

使用 idea 工具,jdk1.8+环境
lombok插件安装:thingsboard使用了lombok的@Getter @Setter注解。所以需要安装lombok插件.

2、包括模块:

  • application:应用相关
    common(data,message,transport):data用于与不同db之间的中间数据结构。message定义不同的消息类型。transport定义一个公共的接口,供与客户端的transport层使用

  • dao:dao抽象了对不同数据库的统一接口。dao的接口数据一般都data,根据不同的数据库在不同的接口中转换为对应的实体类与数据库交互.通过@ConditionalOnProperty(prefix = "database", value = "type", havingValue = "cassandra")动态注入不同的数据库

  • tools:
    extensions(extension-kafka,extension-mqtt,extension-rabbitmq,extension-rest-api-call):分别调用不同协议的后端服务
    extensions-api:定义aciton,filter,plugin,processor及其他基本对象
    extensions-core:实现一些公用aciton,filter,plugin,processor

  • transport(http,caop,mqtt):mqtt基于netty开发mqtt服务器。http提供基于rest的http服务。基于californium搭建coap服务。对不同的客户端设备提供不同类型的接口.同时将消息转换成不同的message,通过DefaultActorService与后端的actor交互

3、强大的规则引擎:规则与插件。基于actors执行。

规则包含Filters,Processors,Action

4、前端ui

使用nodejs开发,需要安装 yarn

5、相关概念

  • 租户tenant:可以将ThingsBoard租户视为独立的业务实体:拥有或生产设备的个人或组织。
  • 部件库
  • 客户管理:租户和客户的关系,每个客户有对应的资产和设备
  • 实体视图:

类似于SQL数据库视图,它限制了基础表暴露给外部世界的程度,TB EV限制了设备或资产遥测和属性暴露给客户的程度。 作为租户管理员,您可以为每个设备或资产创建多个EV,并将其分配给不同的客户。
use case:
与多个客户同时共享特定设备或资产数据。 由于TB安全模型的限制,以前的EV功能无法实现。
允许特定客户用户查看收集的数据(例如传感器读数),但隐藏调试信息,如电池电量,系统错误等。
设备即服务(DaaS)模型,其中设备在不同时间段收集的数据属于不同的客户。

  • 仪表板库:可以定制 dashboard

  • Attributes:设备属性,文档:https://thingsboard.io/docs/user-guide/attributes/

  • Telemetry:设备数据,比如温度、湿度等,文档:https://thingsboard.io/docs/user-guide/telemetry/

  • RPC:服务器与设备间通信,文档:https://thingsboard.io/docs/user-guide/rpc/

你可能感兴趣的:(iot 开源平台thingsboard使用总结)