本文索引:
Home Assistant 简介
前提条件
为了验证预期效果,最好提前准备好以下设备:
- 一台安装了 Raspbian 系统的树莓派 3B+,安装指南可参考
- 任何支持 HA 的智能设备一台,本文选用了 。
安装 Home Assistant
拉取 HomeAssistan Docker Image
$ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant
$ docker run -d --name="home-assistant" -v ~/.homeassistant:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant
Unable to find image 'homeassistant/raspberrypi3-homeassistant:0.69.1' locally
0.69.1: Pulling from homeassistant/raspberrypi3-homeassistant
95d54dd4bdad: Pull complete
72bf7d76c392: Pull complete
9620ed938a4f: Pull complete
a16372392f2e: Pull complete
cd5a28710c58: Downloading [===================================> ] 2.695MB/3.766MB
9b376789f5cb: Downloading [====> ] 1.49MB/16MB
428cd24e8c1b: Download complete
3e7ded663f3a: Downloading [=> ] 45.59kB/2.24MB
5ad200a39e9a: Waiting
47c50281d4f4: Waiting
34a35918edbb: Waiting
ff968d62969e: Waiting
88d8e837fc65: Waiting
0048f1b252d1: Waiting
fe24e50f4c0c: Waiting
8a894406a1f7: Waiting
c521d5fa0262: Waiting
b87db931bad3: Waiting
faa8f2005c47: Waiting
0316d5cde9e4: Waiting
aca6725ed6a1: Waiting
# ...Docker 正从远程拉取所需的 image...
Digest: sha256:76d8f1dee1d372fee469f688275854865e12ca662d4090800bb1a3ea5cefdf0f
Status: Downloaded newer image for homeassistant/raspberrypi3-homeassistant:0.69.1
c360dbc77bede87b4eae2210d7b2df11c80f13a5acb227feaf53b3b8554ef2cd
安装完成后,HomeAssistant 的 container
已经开始运行:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c360dbc77bed homeassistant/raspberrypi3-homeassistant:0.69.1 "/usr/bin/entry.sh p…" 5 minutes ago Up 5 minutes home-assistant
查看刚刚指定的配置文件目录,出现了以下文件及目录:
$ ls -l .homeassistant
-rw-r--r-- 1 root root 2 May 21 03:42 automations.yaml
-rw-r--r-- 1 root root 1800 May 21 03:42 configuration.yaml
-rw-r--r-- 1 root root 0 May 21 03:42 customize.yaml
drwxr-xr-x 2 root root 4096 May 21 03:42 deps
-rw-r--r-- 1 root root 0 May 21 03:42 groups.yaml
-rw-r--r-- 1 root root 106 May 21 03:43 home-assistant.log
-rw-r--r-- 1 root root 126976 May 21 04:11 home-assistant_v2.db
-rw-r--r-- 1 root root 0 May 21 03:42 scripts.yaml
-rw-r--r-- 1 root root 157 May 21 03:42 secrets.yaml
drwxr-xr-x 2 root root 4096 May 21 03:43 tts
config
目录(此处为 ~/homeassistant/
)下的 configuration.yaml
是配置文件的入口点,其他由 yaml
为扩展名的配置文件均是为了实现独立管理而单独分离出来的文件,可在 configuration.yaml
文档中找到如下入口载入这些配置文件:
customize: !include customize.yaml
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
成功启动的 Web UI 欢迎页面
HA 会自动查找接入同一网络中的智能设备,是因为 configuration.yaml
中默认配置了 Discovery
组件:
# Discover some devices automatically
discovery:
接入 HA 的设备无需打开相应的 App 进行绑定。
开机启动 HA Container
一切正常之后,每次重启树莓派必须手动执行 docker container start [Container ID]/NAME
的方式来启动 HA 服务,我们需要将其做成服务或加入开机启动脚本,编辑 /etc/rc.local
文件:
$ sudo nano /etc/rc.local
docker container start home-assistant
重启树莓派,HA 开机启动成功,至此,一个基本款的家庭 HA 搭建就完成了。
更新 HA
HA 目前仍然在快速迭代中,对应的 Docker Image
也会同步放出。要更新以 Docker Container
运行的 HA 实例,只要重新拉取最新版本的 Image
即可:
$ docker stop home-assistant
$ docker pull homeassistant/raspberrypi3-homeassistant
$ docker container rm home-assistant
$ docker run -d --name="home-assistant" -v /path/to/your/config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/raspberrypi3-homeassistant
只要保持
container
的name
一致,已添加至开机启动脚本中的代码在更新完Image
之后无需更改。