开源物联网平台 Thingsboard 基础及资源

前言

Thingsboard 是一个开源物联网平台,可实现物联网项目的快速开发、管理和扩展。在github上有16K+的star,可见其受欢迎程度。要学习这个平台,建议从官方文档开始。如果英文不太好,可以到thingsboard中文网上学习,它把官方文档翻译了一遍,并提供微信群,QQ群,B站视频教材链接等更多学习资料的链接。
很多个人或单位在thingsboard基础上做二次开发(包括拓扑未来),学习资料写得比较好的链接如下:
《Thingsboard 二次开发中文文档》 - 极客文档
ThingsBoard概念 · ThingsBoard开发教程 · 看云
B站上搜索"thingsboard"会有很多教程,收费免费的都有。网上教程很丰富,这里不冗余,只会写个人的理解和开发的记录。

生态
经过几年的发展,thingsboard从众多的开源物联网平台软件杀出,在被看好的情况下,不断开发生态,包括开源网关项目flutter写的APP等。

一些基础概念

安装了thingsboard后就可以通过页面访问系统了。
默认网址:http://localhost:8080
默认用户名:sysadmin@thingsboard.org
密码:sysadmin

登陆界面

                                                                         登陆界面


提供的REST API也可以通过网页查看:http://ip:8080/swagger-ui/#/

REST API说明文档页面

                                                              REST API说明文档页面

名词和概念

租户(Tenants),客户(Customers),用户(Users)
文档上说租户和客户都是单独的业务实体,拥有生产设备和资料。个人认为,可以把租户=公司,客户=公司下的部门(或站点)。其实公司之上还有一个系统(唯一的),用树状结构来理解就是第一层是系统,只有一个,可以理解为树根。第二层是租户(公司),可以有多个,并且相互独立。每个租户(公司)下面有多个客户(部门或站点),这些是第三层。所有这些都是组织,而每个组织都有用户(User),也可以理解为管理员,例如系统,会有系统管理员,默认用户名密码上面已提到。

  • 系统管理员: 可以创建租户,创建租户管理员(User)。系统管理员不能创建设备,当然也看不到设备。
  • 租户管理员: 可以创建客户(部门或站点)及其管理员(User),创建设备和资产(可以指定客户),查看设备及其状态,属性值等。
  • 客户管理员:只能查看和操作属于自己客户(部门或站点)下的设备,资产之类。

配置
thingsboard里有租户配置,设备配置,资产配置,有点像类的概念。例如管理员可以配置好一个设备配置,后面创建设备时选择该设备配置。相同设备配置的设备有相同的特性。

属性和遥测
个人理解都是"设备类"里的"属性",区别就是数据库里属性只有当前值,遥测有最新值和历史值,即每上传一次遥测值,都会修改(update)最新值并记录(insert)到数据库去(带时间缀),所以新版本的thingsboard也把遥测叫做时间序列。
属性和遥测都是key-value的形式,适合json格式封装。在thingsboard里,属性又分为服务端属性,共享属性,设备端属性。主要区别是谁能访问和操作该属性,看官方文档的三个图比文字更清晰。

服务端属性

                                                                服务端属性

客户端属性

                                                                客户端属性

共享属性

                                                                   共享属性


从上面的图可以看出,服务端属性只有服务端可见,例如服务端给设备起个别名;客户端属性在服务端是只读的;共享属性在服务端可写,例如开关。

规则链
这个特性是thingsboard和许多开发者推崇的功能,主要用于事件和消息处理。用户只要拖拽控件(节点),链接控件就可以完成自定义配置。算是低代码开发的一个应用。

网关
在thingsboard里面,网关也是设备,是特殊的设备,要指定的。而其它设备要指定接入方式,如果是通过网关接入,则要选择网关方式,如果指定了MQTT或者HTTP之类的方式,就算网关上传了这个设备的数据,后台也不会认。

告警
ThingsBoard提供了创建和管理与实体相关的警报的功能:设备、资产、客户等。可以指派告警处理人,必须是设备拥有者,有告警产生就通知他。涉及几个概念:

  • 发起者(Originator):可以来源于设备以及设备的属性或遥测值。
  • 类型(Type):可以用户自己定义的,其中一个用途是方便分组查看。
  • 严重程度(Severity): Critical(危急), Major(严重), Minor(次要), Warning(警告), Indeterminate(不明确的)。
  • 状态(Status): 活动且未确认,活动已确认,已清除未确认,已清除已确认。个人理解状态是由两个boolean值决定: 活动(已清除);已确认(未确认)。

告警的触发条件有点复杂:

  • simple: 触发条件达到就产生告警。
  • duration: 触发条件持续一段时间以上才产生告警。
  • repeating: 触发条件达到一定次数才产生告警。

远程RPC
ThingsBoard允许从服务端应用程序向设备发送远程RPC调用,也可以发送request到设备并接收response。在物模型里叫Service,这里英文叫method(方法),指定了method的名字,然后指定param,服务器会将这些内容发给设备端。例如:

{
   "method": "setGPIO",
   "params": {
     "pin": 4,
     "value": 1
   },
  "timeout": 30000
}

该功能跟共享属性的写操作类似,区别是这个可以指定多个属性(params),而且支持响应。实际环境中设备端响应服务器的请求可能会有时延,这个响应可能会等很久或者失败,应当慎用。

  • 13
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值