如果你正准备使用 Thingsboard 开源框架作为你的物联网平台来使用,这个文章对你应该有一定帮助。关于 Thingsboard 平台的介绍和基础不是本文的重点,所以,你在阅读本文时,应该具备一些 Thingsboard、物联网平台、MQTT、HTTP、物模型,等基础能力。
Thingsboard 项目实施
实施准备
- 统计你所在网络里面的设备、资产、测点、指标、通讯方式、状态等基础信息,可以统计一些
信息
形成 Excel 表格,越详细越好
,多多益善; - 基于你对物联网的了解,要把业务结合进来,综合考虑物联网平台到底
对你的业务有什么帮助
,比如:信息及时性?数据总量?统计分析?降本增效?还是有其他非技术目的? - 要有相关的技术储备,人员储备,还有资金储备,毕竟还是需要不少时间、精力、金钱和欲望
投入
在里面; - 不管如何,你还是应该准备找一个
合作伙伴
,能够帮助你解决一些你无法预料到的问题,以解燃眉之急; - IoT、物联网、平台,这些都是基础设施,并不能完全解决你的所有问题,要摆正 Thingsboard
在你的业务中的正确位置
; - 至于 Thingsboard 能帮到你什么,能做什么,有什么效果,你可以在本技术博客
寻找你的答案
,或到互联网找到你所需要的内容;
实施要点
这里以一个工业物联网平台为例,简单介绍一些要点供你参考:
- 目的:工业物联网平台,当然是为了工业生产服务,例如:这个指标采集上来,频率是多少,数据变化起到什么业务帮助。如果存粹为了做一个物联网平台而做一个,那就无所谓了,只要看上去像个平台,数据在变化,
有图有真相
,那也行; - 方法:典型的实施方法,无非就是采集、汇聚、存储、分析,方法在不同的客户有不同的操作方式,比如:改造老平台是一种有据可循的,推翻老平台又是另一个,还有新建平台也是一脸茫然,不知所措;要根据实际的需求,
制定适合自己的实施方法
; - 过程:来举例说明一个客户的实施过程:在这个客户而已,开源是开放的,免费的,没什么难度的,所以把实施过程简单理解为:1、安装;2、配置;3、调整;4、交付。我把其过程形容为:
陷入泥潭的人,越陷越深
,最后有可能会失败; - 时间:有些客户觉得拿来即用,更何况 Thingsboard 是开源的,那就是多简单的事,其实,我们实施过的项目中,客户越是觉得简单的快速的,都会导致项目延迟,他们忽略了开源并不是你什么也不需要做就可以完成所有实施,赶工期不太适合用 Thingsboard 来做,假如你对开源真的有所了解的话;如果你觉得
一个月能搞定
,我建议你把时间放大到3个月
,中间你会遇到太多的疑问和不知道,如果有合作伙伴能帮你,那你算是幸运儿,有些自己几个星期搞不定的问题,专业人士只需要十分钟; - 效果:不要对项目实施的结果
报以太多的期望
,毕竟 Thingsboard 还有 PE 专业版在那里,开源版本只是提供了基础功能,的确可以让你达到完成一个物联网平台的概念,但是,需要太多的工作量去完善你的业务需求了,效果因人而异,各说纷云。
总结经验
- 开源贡献:如果你了解开源,你就知道开源不仅仅是索取,也需要贡献,如果你的实施过程中修复的问题并没有得到开源社区的合并,那么说明你以后需要一直去
修改
它,那是非常不利的局面,所以,建议你参与社区,参与贡献,对你长期使用 Thingsboard 是有帮助的而无害的; - 可移植脚本:大版本不变化的情况下,你要尽量综合项目实施过程中的
可复用脚本
,这样,你在其他项目中就是亮点也是赢利点,这一点是很多实施者所忽视的地方; - 形成标杆:一旦你发现客户的思路很有效果,你帮助客户实施完成,且具备一定的效益,你要知道这就是
果实
,要动得举一反三,运用到其他的客户那里,形成标杆项目,推广下去,毕竟复制/粘贴的成本是最低的
。
Thingsboard 二次开发提示
前提
技术栈
其实就下面俩,你要突破的地方,我觉得应该就是 Angular 框架。如果你研究过 Thingsboard 源码,我的意思是你熟读多次,编译N次,简单开发过几次,你就应该明白其实很简单
,只是代码量有点大,几个月应该是搞不定了,你不能放弃,如果你决定要进行二次开发,可以参考本技术博客的其他文章。
- Java/Spring Boot/Postgresql
- Typescript/
Angular
/Javascript/HTML
尝试
作为一个开发者,我建议你最应该看的就是官方文档,不管你的英文能力怎么样,都应该找方法去尝试读他们的文档(虽然都是乌克兰写的)。
- 编译通过,这是
首要条件
,否则你的二次开发就此打住; 遵循其编码和框架规则
,不要试图去改造它,你可能还不具备这个能力;- 后端代码我觉得是
非常简单且方便改造
的,但是,前段代码所使用的 Angular 在国内并不主流,这也是很多开发者宁愿用其他前端框架重写,也不愿意改官方代码的原因吧; - 一切二次开发都是需要
基于业务需要而做
的,那么就仔细分析一下业务,结合你现有的能力,首先尝试配置它而不是二次开发,以我们的经验,绝大部分需求都是可以通过配置(前端,也需要写一些 JS 代码,而且必须遵循其框架)来完成的。
运用技巧
- 首先就是官方文档,有些内容都是以简单的表格列出,其实可以算是
设计说明书
,非常有帮助; - Github issue, 你要经常看,最好能
翻边
你所关注的所有,里面的答案比代码和文档更加清晰; - 关注本技术博客的内容,与笔者沟通,把你需要的疑问提出来,我们专门针对问题解答(技术交流
不收费
);