Home Assistant-开源智能家居系统
Home Assistant(简称 HA)是一个开源的智能家居平台,可以运行在树莓派或者服务器上。目前已经能够接入许多品牌的智能设备,包括米家和 Yeelight。同时,还支持 Apple HomeKit、Google Assistant 和 Amazon Alexa 等智能家居控制平台。通过 Home Assistant,不需要米家网关,也能方便地使用 Siri 控制米家的智能设备。
准备
软件方面,目前 HA 有多种安装方式(如下),这里选用的 Raspbian 安装方式)。
- Hass.io,它基于 Docker 和 HassOS,只支持树莓派,通过树莓派镜像的方式直接安装。安装简单,但断电兼容性不好,一次断电就会导致服务挂掉。
- 在 Raspbian 上安装。安装步骤较多,安装完成后没有 hassio add-on 功能,但稳定。
硬件方面,考虑到不需要太多 GPIO 的功能,我选用了树莓派 Zero W,自带 WiFi 和蓝牙。但是其性能可怕,跑 apt 和 pip 时 CPU 会直接 100%。
安装
Hass.io 安装
去官网下载对应硬件的 Hass.io 镜像,刻录到 SD 卡。
网络配置参考 HassOS howto 文档,按照文档描述,需要外接 U 盘。这里提供一种不需要 USB 外接设备的配置方式。
刻录好的树莓派镜像 SD 卡上有四个 ext 分区(Mac 不支持 ext 分区格式,需要安装软件或在 Ubuntu 上操作),在名称为 hassos-overlay 的分区中,新建目录:
|
|
创建 my-network
文件,按照参考文档写入配置:
|
|
|
|
需要注意的是:
- id 任意取,uuid 用 Python3 的
uuid.uuid4
生成; - 设置无线网络时,key-mgmt 无线网加密类型,对于 “WPA-PSK”、“WPA2-PSK” 和 “mixed WPA/WPA2 PSK” 类型,这个值都是
wpa-psk
。
最后,修改文件权限为 600。
|
|
unmount SD 卡,插入树莓派启动即可。启动后,在路由器上能看到设备连接,但要等一段时间才能访问 web 界面 http://hassio.local:8123(如果路由器不支持 mDNS 就通过 ip 访问,下同)。
在 Raspbian 上安装
首先去树莓派官网下载最新的 Raspbian Lite 系统镜像,刻录后并进行必要的设置。
安装必要包
|
|
(optional)将当前用户添加到 dialout
和 gpio
用户组中,第一个用户组用于访问 Z-Wave 和 Zigbee 控制器,第二个用户组用户访问 GPIO。
|
|
创建虚拟环境
|
|
激活虚拟环境并安装 Home Assistant
|
|
在虚拟环境中启动 Home Assistant
|
|
首次启动后,将会在 ~/.homeassistant
目录中创建配置文件,并下载安装必要库和依赖项,可能需要 5~10分钟。完成后即可通过 8123 端口访问 web 界面。
配置
主要包括
- **(仅支持 Hass.io)**添加两个 add-on:Configurator 和 SSH server;
- 配置时区;
添加 add-on 在 web 界面 [Hass.io] - [ADD-ON STORE] 中。
Configurator add-on
这个扩展提供了一个 web 编辑器,从而能够在 web 界面编辑 Home Assistant 的配置。
打开上述菜单安装该 add-on,安装完成后,进行以下配置:
- 设置用户名和密码;
- 调整 allowed_networks;
单击保存,并启用加载项。默认访问地址为 http://hassio.local:3218
打开后,编辑 /config/configuration.yaml
,添加以下内容
|
|
panel_iframe 能够把 Configurator 集成到 8123 端口的 web 界面中。编辑完成后,在 8123 端口的 web 界面中,选择 配置 - 通用 - 服务管理,选择重启服务使配置生效。
SSH server add-on
这个扩展提供通过 SSH 访问 hass.io。
打开上述菜单安装该 add-on,安装完成后:
- 添加公钥,密码留空;
- 修改默认端口到 3154;
单击保存,并启用加载项,稍等片刻后,即可通过 SSH 访问。
修改时区
在 configuration.yaml 文件中修改 homeassistant 的配置,修改 time_zone
为 Asia/Shanghai
。修改完成后重启 HASS。
其他配置如经纬度、海拔高度等用来推测日出日落时间,以下是武汉市的配置。
|
|
注意:要使 add-on 也使用该时区,需要重启 add-on。
连接 HomeKit
连接 HomeKit 后,HA 作为网桥联通 HomeKit 和智能硬件。HA 已经内置了对 HomeKit 的支持,只需要在 configuration.yaml 中增加记录,然后重启 HASS。
|
|
重启完成后,在概览中会出现 HomeKit 卡片,显示用于连接的代码。在家庭 App 中输入代码添加配件即可。
连接智能设备
注意事项:
- 使用 Zigbee 网络智能设备需要树莓派外接 Zigbee 收发器;
- 使用 WiFi 控制的智能设备建议在路由器中为设备设置静态 IP;
Yeelight Bulb
Yeelight 灯具使用 WiFi 控制,连接 HA 前需要在 Yeelight App 中打开灯具的局域网控制功能(参考局域网控制 Yeelight)。
打开该功能并且灯具成功接入 WiFi 后,在 configuration.yaml 文件中添加配置,name
更多详细参数可以参考官方文档。
|
|
添加配置后重启 HASS,灯具将会在概览中出现。如果在上一步中配置好了 HomeKit,那么在家庭 App 中已经出现了该灯具,可以使用 Siri 控制。
参考链接
- Home Assistant
- Xiaomi Smart Home Ecosystem - Google Sheets
- Configure Home Assistant - Home Assistant
- HomeKit - Home Assistant
- Yeelight Wifi Bulb - Home Assistant
- Home Assistant + 树莓派:强大的智能家居系统 · 小米篇 - 少数派
- Panel iFrame - Home Assistant
- nm-settings: NetworkManager Reference Manual
- HASS Configurator - Home Assistant
- Manual installation on a Raspberry Pi - Home Assistant