通过 HomeAssistant 查询市面上开源/开放协议的智能家居产品小攻略

HomeAssistant 是一个开源的、Python 实现的、可本地部署 的智能家居自动化服务。至今已集成了上千种智能家电、开放平台,比如 Yeelight、Opple(欧普)、Google Assistant 等等等等。

可以说,HomeAssistant 基本满足了我对智能家居中控系统的要求,尤其我一直强调的安全性问题。市面上绝大多数智能家居平台都是远程式的、不可部署的,直接引入了两大安全隐患:

  1. 数据被服务提供商有意或无意地泄漏;
  2. 数据在远程传输过程中被截取、篡改。

所以一个本地化的服务一直是我的追求。在我知道 HomeAssistant 存在之前就一直琢磨怎么利用树莓派搭建一个中控系统,无奈的是各种产品的通信协议都像一个黑盒子,无从入手。
直接用 HomeAssistant 又太重。前端显示我不需要,上千种的组件我肯定也用不到,其自动化的配置方式也有学习成本。所以,我最需要的只是 HomeAssistant 的源码。

HomeAssistant 支持的产品均以组件的形式存放在 https://github.com/home-assistant/core/tree/dev/homeassistant/components 目录下,定位到某一品牌后,在其控制源码里就可以一览其实现方式。

以格力(gree)为例,在 https://github.com/home-assistant/core/tree/dev/homeassistant/components 页面搜索 gree,跳转到 ./gree 目录,点开 climate.py,有如下字样:

1
2
3
4
5
6
7
from greeclimate.device import (
FanSpeed,
HorizontalSwing,
Mode,
TemperatureUnits,
VerticalSwing,
)

像是厂商提供的一个包,去到 https://pypi.org/ 搜索包名,就找到了。文档描述其 should work for any device that also works with the Gree+ app,厉害了。

同样的方式,我也定位到了 Yeelight、Opple 这两个国内大厂的 python 包。

NGO 万岁,标准万岁,但不包括 BCI。

评论