[IOT] Docker 部署 Home Assistant


Home Assistant 是一个用 Python 开发的开源家居自动化平台,可以轻松集成各种智能设备和服务,并监控和管理。

主要特点:

Docker 的部署其实也很简单,我为了能远程控制设备,是部署在云服务器(Ubuntu)上的,使用 docker compose

下为简单的部署步骤:

创建 docker-compose.yml 文件

$ mkdir -p docker/home-assistant/data  # 创建目录
$ cd docker/home-assistant
$ vim docker-compose.yml          # 创建文件

docker-compose.yml 文件:

services:
  homeassistant:
    container_name: homeassistant
    image: homeassistant/home-assistant:stable
    volumes:
      - /home/ubuntu/docker/home-assistant/data:/config   # 映射到本地目录
    environment:
      - TZ=Asia/Shanghai
    restart: unless-stopped
    privileged: true
    network_mode: host

拉取镜像并启动容器

$ sudo docker compose up -d

稍等执行完成,不出意外的话容器应该能顺利启动。可以使用 docker ps -a 查看容器状态。

创建账号

此时访问 http://localhost:8123http://yourip:8123 应该就能访问到 Home Assistant 的主界面了。

然后创建你的账号。

安装 HACS (Home Asisstant Community Store)

HACS 是一个插件,它提供了一个界面,让我们可以通过这个界面轻松地安装、更新和管理各种自定义组件、主题和插件等。

可以在 GitHub 下载你需要版本,一般直接选最新版就行了。

$ cd /home/ubuntu/docker/home-assistant/data    # 因为我上面把容器里的 /conf 映射到这个本地文件夹了,所以直接把文件放入这里就相当于放进了容器里
$ mkdir -p custom_components/hacs         # 创建目录
$ cd custom_components/hacs
$ wget https://github.com/hacs/integration/releases/download/1.34.0/hacs.zip  # 下载 hacs,复制你需要的版本下载链接。如果服务器下载太慢的话,可以本地下载后传到服务器上
$ unzip hacs.zip                          # 解压
$ cd /home/ubuntu/docker/home-assistant   # 进入 docker-compose.yml 所在目录
$ sudo docker compose restart             # 重启容器

集成 HACS

重新进入 Home Assistant 主界面后,左下角 设置 » 选择 设备与服务 » 右下角 添加集成 » 弹出窗口中搜索 HACS » 全部勾选后点击提交

这时 HACS 会请求 GitHub 关联账号,如果长时间转圈之后提示 could_not_register,这通常是网络问题。查看日志(容器映射路径下的 home-assistant.log 文件),可能会有类似输出:

...
aiogithubapi.exceptions.GitHubConnectionException: Request exception for 'https://github.com/login/device/code' with - Server disconnected
ERROR (MainThread) [custom_components.hacs] Timeout of 20 reached while waiting for https://github.com/login/device/code
...

这时如果能 ping 通 github.com,那么上面集成 HACS 的步骤多试几次应该就行了。

安装成功后,刷新页面就能在左边的主菜单看到 HACS 了。