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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。