物联网开源框架Thingsboard使用总结
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 的方案。
作者:时间道
链接:https://www.jianshu .com/p/61b6b6531f3f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

物联网开源框架Thingsboard使用总结的更多相关文章
- 【开源】C#跨平台物联网通讯框架ServerSuperIO(SSIO)
[连载]<C#通讯(串口和网络)框架的设计与实现>-1.通讯框架介绍 [连载]<C#通讯(串口和网络)框架的设计与实现>-2.框架的总体设计 目 录 C#跨平台物联 ...
- 开源物联网通讯框架ServerSuperIO,成功移植到Windows10 IOT,在物联网和集成系统建设中降低成本。附:“物联网”交流大纲
[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 一.概述 经过一个多月晚上的时间,终于把开源物联网通讯框架ServerSuperIO成功移植到Windows10 IOT上, ...
- 【重大更新】开源跨平台物联网通讯框架ServerSuperIO 2.0(SSIO)下载
更新具体细节参见:[更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能.BUG.细节说明,以及升级思考过程! 声明:公司在建设工业大数据平台,SSIO正好能派上用场,所以抓紧时间 ...
- 【开源推荐】AllJoyn:打造全球物联网的通用开源框架
摘要:随着智能设备的发展,物联网逐渐进入了人们的生活.据预测,未来几乎一切东西(超过500亿台设备)都可以互联.高通公司发布了开源项目AllJoyn,这是一个能够使连接设备间进行互操作的通用软件框架和 ...
- 物联网时代-跟着Thingsboard学IOT架构-HTTP设备协议及API相关限制
thingsboard官网: https://thingsboard.io/ thingsboard GitHub: https://github.com/thingsboard/thingsboar ...
- [更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能、BUG、细节说明,以及升级思考过程!
注:ServerSuperIO 2.0 还没有提交到开源社区,在内部测试!!! 1. ServerSuperIO(SSIO)说明 SSIO是基于早期工业现场300波特率通讯传输应用场景发展.演化而来. ...
- [更新]跨平台物联网通讯框架 ServerSuperIO v1.2(SSIO),增加数据分发控制模式
1.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO) 2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案 3.C#工业 ...
- Pyhton开源框架(加强版)
info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...
- Python开源框架
info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...
随机推荐
- Eclipse CDT 插件修改自动补全
eclipse CDT 2019-06代码补全插件 本自动补全文件已在2019-06至2019-09平台上做过测试,均已完美通过功能检测 在原来Eclipse工具补全的基础上新增26个英文字符和&qu ...
- Spring(四)核心容器 - BeanDefinition 解析
前言 在上篇文章中,我们讨论了 refresh 的前四个方法,主要是对 ApplicationContext 上下文启动做一些准备工作.原计划是对接下来的 invokeBeanFactoryPostP ...
- Centos 7 部署lnmp集群架构
前言介绍 lnmp的全程是 linux + nginx + mysql + php; lnmp就是上述系统及应用程序的简写组合: lnmp其实已经代表了一个用户正常对一个页面请求的流程,nginx接收 ...
- SpringBoot消息篇Ⅲ --- 整合RabbitMQ
知识储备: 关于消息队列的基本概念我已经在上一篇文章介绍过了(传送门),本篇文章主要讲述的是SpringBoot与RabbitMQ的整合以及简单的使用. 一.安装RabbitMQ 1.在linux上 ...
- 如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员.虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下). 在一个月黑风高的夜晚,我思前想后,觉得再也不能 ...
- 🔥SpringBoot图文教程2—日志的使用「logback」「log4j」
有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 文章结尾配套自测面试题,学完技术自我测试更扎实 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例 ...
- Codeforces_101498
A.map统计数量,更新最大值. #include<bits/stdc++.h> using namespace std; int n; map<int,int> mp; in ...
- mapreduce清洗数据
继上篇 MapReduce清洗数据 package mapreduce; import java.io.IOException; import org.apache.hadoop.conf.Confi ...
- 手写-- K-means++
1. K-means++原理 K均值聚类属于启发式方法,不能保证收敛到全局最优,初始中心的选择会直接影响聚类结果.K-means是随机选择样本点作为聚类中心,容易造成算法局部收敛或者需要较多迭代次数, ...
- Spring监听器---ApplicationListener
说到事件监听,想到的肯定是观察者模式.但是这儿主要说下spring中的监听是怎么样的流程. 这就不得不说到spring容器的refresh方法,容器启动过程中,listener相关的主要是这个三个方法 ...