智慧家庭 - 架设 HomeAssistant
参考资料:
本文索引:
Home Assistant 简介
Home Assistant(以下简称 HA) 是一个开源的智能家居网关项目,它可以将市面上所有支持的智能硬件设备整合到一起进行统一管理,并提供了默认的 Web UI。HA 社区开发了海量组件以支持市面上主流的设备,在 IoT 中扮演了大脑的角色。在家庭服务器上架设 HA 有多种实现方式,官方也制作了对应的系统镜像 Hass.io
,并推荐使用「树莓派3B+」作为其宿主机器。
前提条件
为了验证预期效果,最好提前准备好以下设备:
- 一台安装了 Raspbian 系统的树莓派 3B+,安装指南可参考「准备树莓派 3b+」
- 任何支持 HA 的智能设备一台,本文选用了 「Yeelight LED 智能灯」。
安装 Home Assistant
通过 Docker Image 安装及更新一种服务免去了为该服务准备依赖环境的繁琐步骤,HA 官方推出了对应的 Docker Image 且支持树莓派的 CPU 架构,本文主要介绍通过 Docker
安装 HomeAssistant
。如果你不喜欢 Docker
,可以参考 Install Home Assistant 以其他方式安装。
拉取 HomeAssistan Docker Image
使用 Docker 安装 HA 是非常简单的,官方提供了支持 Raspberry Pi 3 的 Docker Image 和「安装指南」:
1 | $ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant |
参数 /path/to/your/config:/config
映射 container
的 /config
至本地主机的物理路径,此处我选择了 ~/.homeassistant
。如果希望安装指定版本的 Image,参考「HA 在 Docker Hub 上的 Tag 列表」选择版本,例如 0.69.1:
1 | $ docker run -d --name="home-assistant" -v ~/.homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant |
安装完成后,HomeAssistant 的 container
已经开始运行:
1 | $ docker ps |
查看刚刚指定的配置文件目录,出现了以下文件及目录:
1 | $ ls -l .homeassistant |
config
目录(此处为 ~/homeassistant/
)下的 configuration.yaml
是配置文件的入口点,其他由 yaml
为扩展名的配置文件均是为了实现独立管理而单独分离出来的文件,可在 configuration.yaml
文档中找到如下入口载入这些配置文件:
1 | customize: !include customize.yaml |
8123
是 Web UI 的默认端口,尝试在浏览器中输入 http://{ip-address-to-raspberry}:8123 访问,得到如下结果:
HA 会自动查找接入同一 wifi 网络中的智能设备,是因为 configuration.yaml
中默认配置了 Discovery
组件:
1 | # Discover some devices automatically |
接入 HA 的设备无需打开相应的 App 进行绑定。
开机启动 HA Container
一切正常之后,每次重启树莓派必须手动执行 docker container start [Container ID]/NAME
的方式来启动 HA 服务,我们需要将其做成服务或加入开机启动脚本,编辑 /etc/rc.local
文件:
1 | $ sudo nano /etc/rc.local |
该脚本文件具体可参考 RC.LOCAL
重启树莓派,HA 开机启动成功,至此,一个基本款的家庭 HA 搭建就完成了。
更新 HA
HA 目前仍然在快速迭代中,对应的 Docker Image
也会同步放出。要更新以 Docker Container
运行的 HA 实例,只要重新拉取最新版本的 Image
即可:
1 |
|
只要保持
container
的name
一致,已添加至开机启动脚本中的代码在更新完Image
之后无需更改。