跳转到内容

Home Assistant OS:家庭自动化中枢 ​

Home Assistant(下文简称 HA)是开源的家庭自动化平台,能接入几乎所有智能家居品牌和协议。它有好几种安装形态,Home Assistant OS(HAOS)是官方推荐、功能最完整的一种:整机镜像,自带 Supervisor,能直接在界面里安装 Add-on(比如 Zigbee2MQTT、Frigate、各种数据库)。

在 PVE 上跑 HAOS 虚拟机,比买一块树莓派专机更灵活:能快照、能调资源、坏了能立刻回滚。这篇讲怎么用官方 qcow2 镜像把它装起来。

适合谁 ​

安装方式合不合适
Home Assistant OS(本文)想要完整 Supervisor 体验、能装 Add-on、官方文档和社区教程默认针对它写
Home Assistant Container只想跑核心,用自己的 Docker 管理,见家庭实验室导读
Home Assistant Core(纯 Python)想深度定制运行环境,牺牲 Add-on 生态

如果你需要直通 USB 设备(Zigbee/Z-Wave 协调器),先确认这类 USB 直通不需要 IOMMU(USB 直通比 PCI 直通简单得多),具体方法见硬件直通。

资源规划 ​

以 Home Assistant 官方安装文档给出的最低要求为基准:

项官方最低要求本文建议说明
vCPU22Supervisor 和 Add-on 一起跑,给够 2 核体验明显更顺
内存2 GB4 GB装几个 Add-on(尤其是带数据库、人脸识别类的)之后 2 GB 会很紧张
磁盘官方未给出固定值32 GB 起镜像本身不大,但 Add-on、日志和数据库会持续增长
网卡11,VirtIO需要能访问局域网内的智能设备,不建议单独隔离在无法广播/组播的网段

内存不要开气球驱动

HAOS 内部有自己的存储管理(长期统计数据库等),给固定内存,不要开 ballooning,避免和它的内部机制打架。

获取官方 qcow2 镜像 ​

以 Home Assistant 官方安装文档(或对应的其他安装方式页面)为准,选择 KVM/Proxmox 对应的镜像入口。官方镜像文件由 home-assistant/operating-system 项目在 GitHub Releases 发布,格式为 haos_ova-<版本号>.qcow2.xz。

不要抄教程里写死的版本号

HAOS 更新较快,教程和本文里出现的版本号可能已经过时。打开官方页面确认当前版本,链接和文件名会自动对应到最新发布。

在宿主机 shell下载并解压(下面的 <地址> 替换成官方页面给出的当前下载链接):

sh
wget <地址>
unxz haos_ova-*.qcow2.xz

创建虚拟机 ​

完整的选项解释见创建第一个虚拟机,这里只列和默认不同、以及 HAOS 特有的设置。先建一台不带磁盘的虚拟机:

标签页字段填什么
GeneralNamehomeassistant,勾上 Start at boot
OSGuest OS不挂载任何镜像(Do not use any media)
SystemMachineq35(HAOS 只支持 UEFI,需要 PCIe 拓扑)
SystemBIOSOVMF (UEFI)
SystemAdd EFI Disk勾选,存储选 local-lvm 或你的默认存储
SystemPre-Enroll keys不要勾选
Disks(先不加,导入磁盘后再处理)
CPUCores2
MemoryMemory4096
NetworkModelVirtIO

HAOS 不支持 Secure Boot

勾选 EFI 磁盘时不要启用 Pre-Enroll keys(预置 Secure Boot 密钥)。如果虚拟机启动后卡在 BIOS 界面或报访问被拒绝,进虚拟机的 OVMF 设置里确认 Secure Boot 处于关闭状态。HAOS 和很多非主流发行版一样,没有对 Secure Boot 签名。

在宿主机 shell导入磁盘(<vmid> 换成实际编号,<存储> 换成目标存储名):

sh
qm importdisk <vmid> haos_ova-*.qcow2 <存储>

然后:

  1. 虚拟机 → Hardware,选中出现的 Unused Disk,点 Edit,总线选 SCSI(底层是 SSD 的话勾上 Discard),点 Add。
  2. 虚拟机 → Options → Boot Order,只勾选这块新盘,把其他都取消。

第一次启动之后 ​

开机,打开 Console 观察启动日志。HAOS 第一次启动会做一些初始化,通常需要几分钟,控制台上会打印出访问地址。

浏览器打开 http://<虚拟机 IP>:8123(或局域网内的 http://homeassistant.local:8123,取决于你的网络是否支持 mDNS),跟着引导创建管理员账号、设置位置和时区。

打不开就再等等

如果几分钟后还是打不开,先看虚拟机的 Console 输出有没有报错,再检查网络配置(网桥是否正确、DHCP 是否分配到了地址)。HAOS 的首次数据库初始化比看起来慢。

检查结果 ​

  1. http://<ip>:8123 能正常打开引导向导或登录界面。
  2. 登录后 设置 → 系统 → 硬件 能看到虚拟机的 CPU/内存信息,说明系统正常运行。
  3. 设置 → 附加组件 → 商店 能正常加载 Add-on 列表(需要能访问外网),试装一个轻量 Add-on(比如 File editor)验证 Supervisor 工作正常。
  4. 关机重开(qm stop 再 qm start),确认配置和已装 Add-on 都还在。

备份与维护 ​

Home Assistant 有自己的一套备份机制,和 PVE 的 vzdump 分工不同:

备份方式备的是什么恢复到哪
HA 内置「备份」(设置 → 系统 → 备份)配置、Add-on 数据、历史记录,可选加密同版本或更新版本的 HAOS/HA Container 均可恢复,跨平台迁移更方便
PVE vzdump整块虚拟磁盘只能恢复到 PVE 虚拟机,恢复更彻底但更重

两者配合,别只依赖一个

HA 内置备份更适合日常和迁移;vzdump 能在虚拟机整体出问题(比如磁盘损坏)时兜底。建议都开,参考配置备份任务。升级前,两种备份都做一次,并按恢复演练验证过至少一次能恢复。

升级 HAOS 大版本前,PVE 里先打个快照,出问题能立刻回滚——这是虚拟机相对物理树莓派的明显优势。

常见问题 ​

虚拟机起不来,卡在黑屏或 UEFI 界面。 确认 BIOS 选的是 OVMF (UEFI) 而不是 SeaBIOS,且没有启用 Pre-Enroll keys / Secure Boot。

导入磁盘后启动仍找不到系统。 确认 Options → Boot Order 里只启用了导入的那块盘,且文件确实是 .qcow2 而不是仍处于 .xz 压缩状态或改错了扩展名。

局域网设备(Zigbee 网关、语音助手)发现不到 HA。 检查虚拟机网卡是否和这些设备在同一个网桥/网段,某些发现协议(mDNS、SSDP)依赖组播,跨 VLAN 需要额外配置,属于网络进阶的内容。

需要接 Zigbee/Z-Wave USB 网关。 优先用 USB 直通(比 PCI 直通简单,不需要 IOMMU),具体方法见硬件直通;也可以用支持网络转发的网关方案,避免直通。

参考资料 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。