物联网开源框架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) ...
随机推荐
- 使用requests模块的网络编程
python操作网络,也就是打开一个网站,或者请求一个http接口,本篇是介绍使用request模块的使用方式. 在使用requests模块之前需要先安装,在cmd中输入:pip install re ...
- HTTP核心模块(HTTP Core)
alias 语法:alias file-path|directory-path;默认值:no使用字段:location这个指令指定一个路径使用某个某个,注意它可能类似于root,但是document ...
- flask插件全家桶集成学习---持续更新ing
不得不说flask的设计要比django要小巧精妙的多了,没有那么臃肿,只保留核心功能,其他的都需要自己引入,即各种各样的插件来满足我们的需求,我这里记录一下自己学习项目中用的插件使用方法和一些技巧总 ...
- 关于SpringMVC未找到类[No qualifying bean of type [...]is defined]问题
首先,不要慌,出现这个问题肯定是某一个配置注解没写上.. 无非就几个地方: 1.控制层是否添加@Controller or 需要pring管理的类是否添加@Component 2.DAO层是否添加@R ...
- 【译】SQ3R学习法则
SQ3R 观察-提问-阅读-复述-回顾 背景 SQ3R是一种理解策略,可帮助学生在阅读时思考他们正在阅读的文章. SQ3R通常被归类为学习策略,通过教导学生在初次阅读一篇文章时如何阅读和像高效读者一样 ...
- jsp操作mysql样例
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- vue初始化、数据处理、组件传参、路由传参、全局定义CSS与JS、组件生命周期
目录 项目初始化 组件数据局部化处理 子组件 父组件 路由逻辑跳转 案例 组件传参 父传子 子组件 父组件 子传父 子组件 父组件 组件的生命周期钩子 路由传参 第一种 配置:router/index ...
- POJ_1564_dfs
题目描述: 每组数据给定一个大的数,和一系列降序的数值,要求列出不重复的数值中挑选的数的和为大数的方案,每一种方案里,每个数值最多只能使用一次. 思路: dfs基础题,每次记录大数和当前总和的差值,当 ...
- 2019icpc徐州现场赛 H Yuuki and a problem (树状数组套主席树)
题意 2e5的数组,q个操作 1.将\(a[x]\)改为y 2.求下标l到r内所有的\(a[i]\)通过加法不能构成的最小的值 思路 通过二操作可以知道需要提取l到r内的值及其数量,而提取下标为l到r ...
- HDU 1251 统计难题 (Trie树模板题)
题目链接:点击打开链接 Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单 ...