智汀家庭云-开发指南Web:扩展开发【插件开发】智能设备

新建插件包

我们的插件包都是放在plugins文件夹下的,如果你需要新开发一个插件包,你可以在plugins文件夹下新建一个命为xxx的项目,目录结构如下

智汀家庭云-开发指南Web:扩展开发【插件开发】智能设备_第1张图片

目录结构可以根据插件的复杂程度自行扩展

如何启动插件包项目?

建好插件包目录后,我们可以进到智汀专业版项目的根目录, 然后通过以下命令可以启动插件包项目

image.png

【1】前端源码分析

  1. 我们看下主要的代码

插件包主要功能是实现智能设备的控制,智能设备的控制主要是通过Websocket发送指令去控制的,这里引用了智汀封装好的Websocket插件包ws-plugin,插件控制的相关指令可以点击这里插件模块。

智汀家庭云-开发指南Web:扩展开发【插件开发】智能设备_第2张图片
这里有两个重要的变量,这两个参数都是从插件链接传进来的

  • token 用户的身份凭证,这里主要用来做权限控制
  • device_id 设备id,就是发送控制指令时需要知道是控制哪个设备

进入页面时我们要建立一个Websocket长连接,用来发送操作指令和同步更新设备状态

2. 如何做权限控制?

进入插件时我们要做好权限控制,无权限用户无法在插件页面操作。

当我们Websocket链接成功后,我们需要发一个指令去拿用户的操作权限。

指令如下:

智汀家庭云-开发指南Web:扩展开发【插件开发】智能设备_第3张图片
发送指令后,后端会返回用户的权限信息,结构如下

我们可以根据 “can_control” 获取用户的权限,然后拿到权限信息后就可以在页面做对应的操作

3. 如何控制设备?

我们也是通过发送指令的方法控制设备

例如:打开灯
智汀家庭云-开发指南Web:扩展开发【插件开发】智能设备_第4张图片
其他操作也一样,只是操作的指令有所区别

4. 如何同步设备状态?

每个设备都有初始状态,我们怎么同步设备的初始状态呢

同样的也是发送指令

智汀家庭云-开发指南Web:扩展开发【插件开发】智能设备_第5张图片
后端送到指令后会返回设备的初始状态,结构如下:

智汀家庭云-开发指南Web:扩展开发【插件开发】智能设备_第6张图片
拿到设备后,我们就可以对设备进行初始化值

5. 如何发布我们的插件?

当我们的插件包开发完成后,就打包编译我们的前端和后端文件, 填写我们的配置文件 结构如下:

然后在智汀家庭云上传我们的插件包,等审核通过后就可以看到我们的插件包了。

【2】 插件包集成

打包我们的插件包

image.png
打包后的文件在根目录下plugin文件下

插件的后端文件也要编译好

最终插件包的目录如下:

智汀家庭云-开发指南Web:扩展开发【插件开发】智能设备_第7张图片

html文件夹是插件的页面文件,也就是(html,js,css等静态资源文件)
yeelight-plugin是插件后端的编译文件
config.yaml是插件的配置文件
我们看下插件的配置文件包括哪些信息

image.png

这些信息都是很重要的,不能遗漏!我们的插件可以包含多个设备,每个设备有所属的品牌。

智汀用户通过添加安装我们的插件包就可以通过智汀app发现我们插件支持的设备,连接设备,操作我们的设备。

你可能感兴趣的:(websocket智能设备)