设备接入插件开发
插件介绍
针对问题
在物联网领域,设备接入方式纷繁复杂,整体来说,包括两类。
- 协议接入: 通过MQTT、TCP、HTTP、SOAP、Modbus、OPC-UA、Bacnet、KNX、LwM2M和SNMP等协议接入
- 整合性接入: 通过各种各样的网关服务或三方服务。
- 现状: 这些协议和服务在通信模式和报文规范上各不相同,导致在系统集成时面临巨大的复杂性。
- 后果: 这种复杂性不仅使系统变得臃肿、效率低下,而且还难以扩展和维护,进而导致维护成本居高不下。
用途
设备与系统之间的桥梁,将设备接入ThingsPanel平台,实现设备与平台的交互。
交互结构图
插件类别
1.协议接入:支持各种物联网协议(如MODBUS、MQTT等),使ThingsPanel平台能够直接与使用这些协议的设备通信。 2.服务接入:连接ThingsPanel平台与各种第三方物联网平台,间接与设备通信。
功能
- 提供统一的接口规范,简化设备和第三方平台的接入流程。
- 支持多种协议和服务,增强ThingsPanel平台的兼容性和扩展性。
- 实现灵活的配置和凭证管理,方便用户快速接入不同的协议和第三方平台。
主要特点
- 模块化设计,易于扩展支持新的协议和第三方平台
- 提供标准化的数据交换格式和接口
- 支持设备模板和凭证管理
- 实时数据同步和设备状态监控
- 支持多种通信协议,包括但不限于MQTT、MODBUS等
插件开发
开发工作内容
开发准备
- 阅读和了解ThingsPanel的插件开发设计和规范
- ThingsPanel-服务插件-设计-阅读了解插件原理,理解平台的四种数据模型:遥测、属性、事件、命令 https://docs.qq.com/doc/DZWNvcWFJa25VSVlS
- 阅读和了解协议或者第三方服务的文档
- 可查看现有的插件是如何开发的,例如:
- Modbus插件:https://github.com/ThingsPanel/modbus-protocol-plugin
- GB26875.3-2011 报警传输网络通信协议插件 https://gitee.com/ThingsPanel/protocol-plugin-pressure-transmitter
开发步骤
1.下载插件模板
git clone https://gitee.com/ThingsPanel/protocol-plugin-template.git
2.根据需求修改模板代码
- 阅读模板源码的README-DEV.md
- 使用最新的SDK
go get -u github.com/ThingsPanel/tp-protocol-sdk-go@latest
- 根据该设备的协议文档,修改模板的凭证表单from_voucher.json