关于 Home Assistant 的一些分享和建议

tazyong】 在 https://github.com/istoreos/istoreos/issues/815 发布:

安装 supervisor 版本参考这个 https://github.com/istoreos/istoreos/issues/815#issuecomment-1953685442


此方法已经无法安装 Supervised 2023.04.1 以后的版本了,已经安装旧版的也无法升级成功。因为在此之后的版本,官方改了挂载模式,而 openwrt 似乎并不支持。

我对这块不太熟悉,也没有时间精力去解决,已改用 esxi 虚拟机安装 hassos 了。

致命问题:

stderr: [31m23-06-14 04:10:03 ERROR (SyncWorker_5) [supervisor.docker.manager] Can't create container from homeassistant: 400 Client Error for http+docker://localhost/v1.41/containers/create?name=homeassistant: Bad Request ("invalid mount config: must use either propagation mode "rslave" or "rshared" when mount source is within the daemon root, daemon root: "/opt/docker", bind mount source: "/opt/docker/hassio/share", propagation: "slave"")[0m

有了解的同学如果能解决,希望能分享一下。


Home Assistant 是一个跨品牌的智能家居管理平台,以下所有描述简称为 HA。

先说说HA的四种版本:

OS Container Core Supervised
Automations(自动化) :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Dashboards(仪表盘) :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Integrations(集成) :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Blueprints(设计图) :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
Uses container(使用容器) :white_check_mark: :white_check_mark: :cross_mark: :white_check_mark:
Supervisor(监管程序) :white_check_mark: :cross_mark: :cross_mark: :white_check_mark:
Add-ons(加载项) :white_check_mark: :cross_mark: :cross_mark: :white_check_mark:
Backups(备份) :white_check_mark: :white_check_mark:1 :white_check_mark:1 :white_check_mark:
Managed Restore(管理还原) :white_check_mark: :cross_mark:2 :cross_mark:2 :white_check_mark:
Managed OS(管理操作系统) :white_check_mark: :cross_mark: :cross_mark: :cross_mark:

更多请参考官网安装地址:Installation - Home Assistant

版本说明

  • HA OS 也被称为 hassos,它是操作系统,无法在 iStore OS 再安装一个操作系统
  • HA Container 是基础的 Docker 部署方式,目前 iStore 商店里安装的就是这个,对极客玩家来说,属于阉割版本
  • HA Core 就是一个 Python 程序,跟 HA Container 唯一的差别就是要自己配环境
  • HA Supervised 也被称为 hassio,可以在现有操作系统上安装的完整版本,除了管理操作系统,它拥有 HA OS 的所有功能

关键部分

  • 缺少 Supervisor 就无法在界面管理和更新 HA,升级全靠它
  • 缺少 Add-ons 就无法在界面愉快地安装第三方软件,比如:Node-RED、Mosquitto broker、ESPHome
  • 缺少 Managed Restore 就无法还原 HA,还原 HA 和还原备份数据不是一回事

安装 HA Supervised

安装前应先移除在 iStore 中安装的 HA!
进入 iStore 首页 -> 终端服务 -> 终端ssh 客户端 任意一处执行以下命令:

docker run -d \
  --name hassio_supervisor \
  --privileged \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/run/dbus:/var/run/dbus \
  -v /opt/docker/hassio:/data \
  -e SUPERVISOR_SHARE="/opt/docker/hassio" \
  -e SUPERVISOR_NAME="hassio_supervisor" \
  -e HOMEASSISTANT_REPOSITORY="homeassistant/qemux86-64-homeassistant" \
  --restart unless-stopped \
  homeassistant/amd64-hassio-supervisor:2023.04.1

理论上所有有 Docker 环境的机器都可以用以上方法安装。
注意:命令行每行末尾都带了 \,这是 Linux 命令行的分行连接符,如果终端不支持,可以去掉改成单行命令。

参数说明

  • --name hassio_supervisor:将当前容器名称定义为 hassio_supervisor
  • --privileged:允许访问主机上的所有设备和资源
  • -v /var/run/docker.sock:/var/run/docker.sock:将 Docker 守护进程的 UNIX 套接字挂载到容器的 /var/run/docker.sock 目录中,以便 Supervisor 管理程序可以通过 Docker API 来管理其他容器
  • -v /var/run/dbus:/var/run/dbus:将主机上的 D-Bus 系统消息总线挂载到容器中,以便 Supervisor 管理程序可以与系统服务通信
  • -v /opt/docker/hassio:/data:将宿主机的 /opt/docker/hassio 目录挂载到容器内部目录 /data 中,方便在外部维护 HA 数据。如果修改了 docker 根目录,请修改为对应的路径,如:docker 根目录修改为 /mnt/sata1-4/docker 以后,对应的参数设置为 -v /mnt/sata1-4/docker/hassio:/data
  • -e SUPERVISOR_SHARE="/opt/docker/hassio":指定 Supervisor 的数据共享目录路径为 /opt/docker/hassio,这里的路径应和上面的参数的路径保持一致
  • -e SUPERVISOR_NAME="hassio_supervisor":指定 Supervisor 容器的名称为 hassio_supervisor
  • -e HOMEASSISTANT_REPOSITORY="homeassistant/qemux86-64-homeassistant":指定 Supervisor 要使用的 HA 镜像
  • --restart unless-stopped 当容器异常退出或主机重启后自动重启
  • homeassistant/amd64-hassio-supervisor:2023.04.1:Supervisor 镜像,版本为 2023.04.1,去掉版本号默认会安装最新版本的,但 Supervised 的版本管理没有将开发版和正式版本分开,最新的往往是开发版的,开发版对挂载目录和挂载模式有所调整,安装过程会遇到错误,需要自行解决,这里不推荐!

常用镜像

请自行替换命令行里的镜像安装,更多官方镜像请移步 这里

HA 镜像

名称 描述
homeassistant/qemux86-64-homeassistant 适用于 x86 64位架构并支持 QEMU 虚拟化的设备
homeassistant/generic-x86-64-homeassistant 适用于通用 x86 64位架构的设备
homeassistant/amd64-homeassistant 适用于 x86 64位架构的设备
homeassistant/qemux86-homeassistant 适用于 x86 32位架构并支持 QEMU 虚拟化的设备
homeassistant/i386-homeassistant 适用于 x86 32位架构的设备
homeassistant/qemuarm-64-homeassistant 适用于 ARM 64位架构并支持 QEMU 虚拟化的设备
homeassistant/aarch64-homeassistant 适用于 ARMv8 64位架构的设备
homeassistant/armv7-homeassistant 适用于 ARMv7 架构的设备
homeassistant/armhf-homeassistant 适用于 ARMv6 或更高版本的硬浮点 (hard-float) ARM 架构的设备
homeassistant/raspberrypi4-64-homeassistant 适用于树莓派 4 64位
homeassistant/raspberrypi4-homeassistant 适用于树莓派 4 32位
homeassistant/raspberrypi3-64-homeassistant 适用于树莓派 3 64位
homeassistant/raspberrypi3-homeassistant 适用于树莓派 3 32位
homeassistant/raspberrypi2-homeassistant 适用于树莓派 2
homeassistant/raspberrypi-homeassistant 适用于树莓派

Supervisor 镜像

名称 描述
homeassistant/amd64-hassio-supervisor 适用于 x86 64位架构的计算机,如大多数台式电脑和服务器
homeassistant/i386-hassio-supervisor 适用于 x86 32位架构的计算机,如旧版台式电脑和服务器
homeassistant/aarch64-hassio-supervisor 适用于 ARMv8 64位架构(也称为AArch64)的计算机,如树莓派4的64位操作系统等
homeassistant/armv7-hassio-supervisor 适用于 ARMv7 架构的计算机,如树莓派2、3和4等
homeassistant/armhf-hassio-supervisor 适用于 ARMv6 或更高版本的硬浮点(hard-float)ARM架构的计算机

关于 HACS 商店

无论你现在在使用哪个版本,都可以安装 HACS 商店,目测只有开发版本(即含 dev 名称的镜像)才默认安装了。
进入 配置 -> 设备与服务 -> 添加集成,搜索 HACS,如果出现了 HACS 商店,就表示默认安装了,直接集成即可。如果找不到 HACS 商店,那就需要自己手动安装了,安装方法:

  1. 进入 Docker -> 容器 ,选择 HA 容器的编辑
  2. 选择 控制台,选择 /bin/sh ,点击连接进入 /config 目录
  3. 输入下面命令,安装 HACS 商店
    wget -O - https://hacs.vip/get | HUB_DOMAIN=ghproxy.com/github.com bash -
    
    上面安装的是 HACS 极速版,因为国内网络环境原因,特别推荐!虽然比原版小了几个版本,但实测下来并不影响使用。商店虽旧,但安装的集成都是最新的,因为用的是国内的源,速度和稳定性都很好。
    觉得自己网络可以的(反正我的网络不行,即使出国也经常安装不成功),或者国外的玩家,可以安装 原版 HACS 商店
    wget -O - https://get.hacs.xyz | bash -
    
  4. 安装成功后,进入 配置 -> 设备与服务 -> 添加集成,搜索 HACS 集成

建议

最后希望官方能集成 HA Supervised 到 iStore 商店