Thingsboard中文社区:​​http://thingsboard.iotschool.com/​

参考网址:​​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,datastax(数据访问)

环境搭建(Mac)

使用 idea 工具,jdk1.8+环境

lombok插件安装:​​thingsboard​​使用了lombok的@Getter @Setter注解。所以需要安装lombok插件.

包括模块:

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交互

强大的规则引擎

规则与插件,基于actors执行,规则包含Filters,Processors,Action

前端ui

使用nodejs开发,需要安装 yarn

相关概念

租户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/​

总结

​thingsboard​​ 的功能还是相当全面的,文档资料比较全,官网上也有应用场景的方案。自定义的规则引擎功能很强大,页面虽然丑了点,好在可以优化,各种widget 挺全,可以直接拿来作为 iot 数据收集和展现使用,还是值得好好研究一下的。如果能结合数据挖掘应该能做出很牛B 的方案。

作者:时间道

欢迎加入ThingsBoard技术交流群

这里可复制Q群号:69998183

关注“云腾五洲”:获取二开ThingsBoard物联网平台演示

物联网开源框架Thingsboard使用总结_thingsboard

TK物联网平台:​​ThingsKit物联网平台​