Установка Home Assistant в Proxmox

Home Assistant в Proxmox VE ставят как виртуальную машину с Home Assistant OS (HAOS) из готового образа диска. Для Proxmox выберите KVM/Proxmox (.qcow2).

Что понадобится

Машине HAOS выделяют минимум 2 ГБ оперативной памяти и 2 vCPU (виртуальных процессора). Это нижняя граница из официальной инструкции установки на Linux, дальше ресурсы наращивают под фактическую нагрузку. Часть действий выполняется в веб-интерфейсе Proxmox, часть - командами qm в консоли узла.

Подготовка образа

Скачайте образ с официального сайта и распакуйте его, если он сжат.

1. Скачайте образ HAOS

На странице альтернативной установки выберите вариант KVM/Proxmox - это образ диска в формате .qcow2.

2. Распакуйте образ

Если образ скачан сжатым, распакуйте его. В Proxmox импортируется уже распакованный файл.

Создание виртуальной машины

На выбранном узле Proxmox (поле Node) задайте уникальный VM ID и имя Name. Выделите машине память и процессоры из раздела о требованиях.

3. Создайте виртуальную машину

Из командной строки машину создает qm create. Пример из документации Proxmox создает машину 9000 с 2048 МиБ памяти, сетью VirtIO на мосте и SCSI-контроллером VirtIO:

qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci

Это общий пример из документации qm, не специфичная для HAOS команда.

4. Выберите прошивку OVMF

HAOS загружается через UEFI, поэтому в качестве BIOS машины выбирают OVMF - открытую реализацию UEFI. В конфигурации это опция bios со значением ovmf. Подробности - в главе qm документации Proxmox.

5. Добавьте EFI-диск

В разделе оборудования машины нажмите Add → EFI Disk и выберите хранилище для диска EFI-переменных. Для новой машины используется efitype 4m. EFI-диск хранит настройки прошивки, например порядок загрузки. На машину можно добавить один такой диск; он включается в резервные копии и снимки состояния. Системный диск HAOS подключается отдельно.

6. Импортируйте образ диском

Подключите распакованный QCOW2-образ к машине как scsi0 с контроллером virtio-scsi-pci. Опция import-from импортирует образ по локальному пути и сразу подключает SCSI-диск. Форма команды из документации Proxmox:

qm set 9000 --scsi0 local-lvm:0,import-from=/path/to/bionic-server-cloudimg-amd64.img

Образ, хранилище и номер машины в примере - демонстрационные значения из документации. Подставьте путь к вашему распакованному образу HAOS, реальный VM ID и целевое хранилище.

7. Включите загрузку с диска

В графическом редакторе порядка загрузки отметьте импортированный диск галочкой и перетащите его на первое место. Из командной строки загрузку ограничивают диском scsi0:

qm set 9000 --boot order=scsi0

Команда с order=scsi0 - пример из документации для машины 9000.

8. Подключите сеть

Сетевое устройство virtio подключается к мосту хоста в режиме Bridged; стандартный мост Proxmox - vmbr0. В этом режиме виртуальная сетевая карта помещается на мост узла, и машина получает прямой доступ к Ethernet-сети, в которой находится узел.

Проброс USB

Чтобы передать USB-радиомодуль в виртуальную машину, определите его идентификатор или физический порт на узле Proxmox.

9. Найдите USB-устройство на хосте

Выполните lsusb на узле Proxmox и определите vendor ID (идентификатор производителя) и product ID (идентификатор модели). Чтобы различить одинаковые устройства по физическому порту, откройте монитор работающей машины командой qm monitor 804 (804 - пример) и выполните info usbhost. Монитор любой запущенной машины показывает одни и те же устройства хоста. Этот способ поиска портов описан в руководстве по USB-устройствам в Proxmox.

10. Привяжите USB-устройство к машине

Устройство назначают командой qm set - по паре vendor:product либо по шине и порту хоста:

qm set 804 -usb0 host=058f:6387
qm set 804 -usb1 host=2-1.2.2

ID и порт в примерах взяты из документации Proxmox, подставляйте свои значения. После настройки выключите машину, если она работала, и запустите снова.

Как привязываетсяКомандаКогда подходит
По идентификатору устройстваqm set 804 -usb0 host=058f:6387устройства разные, их ID не совпадают
По шине и портуqm set 804 -usb1 host=2-1.2.2несколько одинаковых устройств делят один ID

Проброшенный Zigbee-донгл дальше настраивается по гайду Zigbee2MQTT. Если Zigbee2MQTT не видит донгл по пути /dev/serial/by-id, посмотрите разбор ошибки no such file or directory.

Первый запуск

Откройте веб-интерфейс HAOS по имени homeassistant.local или по IP машины с портом 8123.

11. Запустите HAOS

Включите машину и дождитесь окончания загрузки. Если адрес по имени не открывается, используйте http://X.X.X.X:8123, подставив IP машины. Пройдите onboarding (первичную настройку) по гайду по установке Home Assistant.

Другие платформы

Для VirtualBox нужен VirtualBox (Intel chip) (.vdi), для VMware ESXi/vSphere - образ .ova. Эти варианты доступны на той же странице альтернативной установки.

Частые проблемы

При сбоях установки пользователям форума помогали ручное создание машины и изменение сетевых настроек. В таблице приведен их опыт; число веток относится к проблеме, а не к подтверждениям каждого решения.

ПроблемаВетокСообщение об ошибкеЧто помогало
Установка HAOS или аддонов (дополнений, add-ons, теперь apps) падает при загрузке образов и репозиториев5# Error installing Home Assistant | An error occured while installing Home Assistant, check the logs below for more information.Задать серверу статический IP и Google DNS 8.8.8.8, перезагрузиться и ставить из свежего qcow2; либо собрать машину вручную из образа с сайта вместо вспомогательных скриптов
Восстановление резервной копии в новую машину Proxmox зависает или падает3* Began the Restore, but it hung on the screen: Restore in progressВ обсуждениях ждали Supervisor 2024.11.4, делали новую резервную копию и создавали машину скриптами-помощниками Proxmox. Другой вариант - пересобрать машину с тем же IP, вернуть SSL-файлы и настройки шифрованного соединения, восстановить копию и перезагрузить машину, перенести Z-Wave-стик и перезагрузить Proxmox
USB-радиомодули после переезда на Proxmox требуют проброса или не различаются по ID3-После переезда с Pi - восстановить полную резервную копию, настроить проброс USB и перезагрузить машину для запуска аддонов (apps). При одинаковых ID - привязать устройства к физическим USB-портам и разнести проброшенные порты по разным USB-контроллерам хоста
Машина и ее устройства не связываются между мостами или через изолированные VLAN (изолированные сегменты сети)4-Для моста - убрать прежнее подключение сетевого интерфейса (NIC) и его статический IP, создать мост с этим IP, проверить его и подключить к нему сетевой интерфейс машины. Для изолированной IoT-сети (сети умных устройств) - открыть доступ к серверу Home Assistant из этого VLAN
Образ HAOS не загружается в виртуальной машине Proxmox3-Использовать скрипт-помощник Proxmox VE для HAOS (helper script)
Home Assistant не стартует после расширения виртуального диска2-Перенести резервные копии через USB-флешку и восстановить копию в новой машине. Другой вариант для диска vmdk - конвертировать его в vdi и увеличить виртуальный диск ползунком

Частые вопросы

Обязательно ли выбирать Q35?

Нет, документированного требования HAOS к типу машины нет. На x86 по умолчанию используется Intel 440FX. Тип машины определяет устройство виртуальной системной платы. Q35 дополнительно дает виртуальную шину PCIe для подключения устройств и может пригодиться при пробросе PCIe-оборудования. Выбор описан в wiki Proxmox.

Что делать, если Bluetooth прерывается после резервного копирования?

Выключить и снова запустить виртуальную машину - такое решение описано для USB-адаптера Kinivo BTD400. Пользователь пробросил адаптер в машину Home Assistant и настроил Bluetooth, а после прерывания его работы резервным копированием останавливал и запускал машину. Этот случай относится к обсуждениям USB-радиомодулей в трех ветках форума.

Включится ли Secure Boot на EFI-диске?

Да, если у EFI-диска включен pre-enroll-keys. Эта опция заранее загружает на диск ключи дистрибутивов и Microsoft Standard Secure Boot и включает Secure Boot по умолчанию. Отключить его можно в меню OVMF прямо в виртуальной машине. Это отдельная настройка прошивки виртуальной машины.

Андрей Ковалев, редактор. Собирает решения из веток форума Home Assistant и сверяет команды и настройки с официальной документацией.