||

重构 Hakit 小程序,云开发,Serverless

之前写过 Hakit 项目,期初的目标是希望实现 小程序Homekit硬件设备 的三端同步,解决一些 HomeKit 不便解决问题。这次趁着假期,对原理的代码进行了重构,同时抛弃了之前自建的后端接口,全部改为小程序云开发,下面我将简单介绍 Hakit 2.0 的主要改进。

新版本

这个版本的 Hakit 还是作为开发者工具使用的,并不是面向广罗大众,而是需要有一定开发基础的软件或者硬件开发者,尤其是嵌入式物联网开发者。对于这类开发者朋友而言,如果想实现比较简单的设备控制,同时希望可以和 HomeKit 进行联动同步,又不想自己开发 APP 的话,Hakit 这个版本就是非常适合的。

新版的 Hakit 由于是基于云开发,所以省去了后端数据库和接口的麻烦,这个版本中只需要维护一个 MQTT 的服务器即可。后端的逻辑更清晰,更加模块化。如果需要与 HomeKit 进行同步,可以使用基于 Homebridge 的插件来完成。

主题切换

这个版本增加了主题切换功能,目前又 深色主题浅色主题 可用,用户可以在个人设置里进行切换。

深色浅色主题实例如下:

设备共享

新版本支持用户将自己的设备共享给他人,共享后的设备将支持多人控制。

自定义控制界面

新版本的控制界面可以基于设备的类型来自动加载,设备的类型定义包含了 services 属性,可以在单独的配置文件中进行设置,控制界面的载入将基于这个文件进行。

理论上用户也可以自定义设备类型,下面是一个带有 brightness 的 haLight 设备。

下面是一个同时支持温度和湿度的 haSensor 设备。

其他增减

出上面主要的改动之外,还有一些改动不大,但是优化比较多的地方,例如重写了 websocket 到 mqtt 的事件监听;优化了动画效果;增加了组件的代码复用;增加了组件展示和选择模式等等。

以上小改动便不一一列举。

待完成

虽然新版本做了很多改动,但是还有一些开发工作没有完成,例如:

  • 外网与局域网的检测和自动切换(当手机与设备处于同一网络时,可以切换到局域网来控制,速度会更快,同时不用担心突然断网);
  • 自定义设备功能(当前的设备定义参考的是 HomeKit 中的 services 来做的);
  • 基于定位自动切换家庭(理论上可以实现,但是有权限上的小问题)。

以上三个是比较重要的功能,我会在后续的版本中逐步增加。

类似文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注