Устанавливаем Home Assistant на Ubuntu server

Home Assistant мощная платформа управления глупым умным домом, которая может контролировать и управлять устройствами нашего дома. Работает на большом количестве систем, в том числе Raspberry PI, для которой имеет сборку образ Hass.io. Проект активно развивается и имеет большое сообщество, всю актуальную информацию можно найти на сайте проекта: https://www.home-assistant.io/.
Прежде чем ставить на обычный компьютер я опробовал сборку Hass.io для одноплатника, но у меня она не прижилась, все плюсы системы были перечеркнуты минусами:
- Всё управление, в том числе правка конфигурационных файлов (а это основная часть настройки), производится через Web интерфейс в не самом удобном редакторе.
- У меня так и не получилось удаленно достучаться до малинки по SSH. Достучаться можно через плагин SSH через Web морду (оно вам надо?). Плагин Samba у меня не завелся совсем, а хоть какой-то доступ к файловой системе иметь всё же хочется.
- Вся система работает в кучке Docker контейнеров изрядно нагружая одноплатник и в работе системы наблюдались притормаживания, которые отражались на работе устройств (например, в задержке реакции устройств на какое либо действие).
Исходя из этого было принято решение установить Home Assistant на нормальный компьютер, точнее в отдельную KVM виртуалку. Ubuntu была выбрана в качестве основной системы т.к. Raspberry Pi OS, так же, как и Ubuntu имеют общие корни Debian.
Установка Home Assistant
Вся предоставленная ниже информация взята на сайте проекта и основана на установке Home Assistant для Raspberry Pi.
Подключаемся к системе, на которой у нас будет крутиться Home Assistant по SSH и обновляем систему до актуального состояния.
$ sudo apt-get update $ sudo apt-get upgrade -y
После обновления системы устанавливаем необходимые компоненты и зависимости.
$ sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev autoconf build-essential
Создаем нового системного пользователя с домашней папкой для запуска и работы ядра Home Assistant, назовем его homeassistant
. Добавим его в группу dialout
для взаимодействия с устройствами Z-Wave и ZigBee.
$ sudo useradd -rm homeassistant -G dialout
Далее создаем папку для ядра Home Assistant и устанавливаем пользователя homeassistant
для неё владельцем.
$ cd /srv $ sudo mkdir homeassistant $ sudo chown homeassistant:homeassistant /srv/homeassistant
Теперь создаем виртуальное окружение для ядра Home Assistant, делаем это для учетной записи homeassistant
.
$ sudo -u homeassistant -H -s $ cd /srv/homeassistant $ python3 -m venv . $ source bin/activate
После активации виртуальной среды выполняем установку необходимого пакета Python.
$ python3 -m pip install wheel
По завершении установки пакета Python приступаем к установке Home Assistant.
$ pip3 install homeassistant
Запускаем наш Home Assistant в первый раз. При первом запуске в домашнем каталоге пользователя homeassistant
(/home/homeassistant) будет создана папка .homeassistant
, в которой будут находится конфигурационные файлы системы.
$ hass
Первый запуск может занимать 5-10 минут, после чего проверяем доступность установленной системы через браузер.
http://ha_ip_address:8123
Прерываем работу запущенной системы.
Ctrl+C
Выходим из учетной записи пользователя homeassistant
.
Создаем файл для запуска сервиса при старте системы.
$ sudo nano /etc/systemd/system/homeassistant@homeassistant.service
Заполняем его.
[Unit] Description=Home Assistant After=network-online.target [Service] Type=simple User=%i WorkingDirectory=/home/%i/.homeassistant ExecStart=/srv/homeassistant/bin/hass -c "/home/%i/.homeassistant" RestartForceExitStatus=100 [Install] WantedBy=multi-user.target
Запускаем сервис.
$ sudo systemctl --system daemon-reload $ sudo systemctl enable homeassistant@homeassistant.service $ sudo systemctl start homeassistant@homeassistant.service
Проверяем работу сервиса.
$ sudo systemctl status homeassistant@homeassistant.service
Через Web браузер проверяем работу Home Assistant.
http://ha_ip_address:8123
Обновление Home Assistant
Для обновления до последней версии необходимо выполнить следующие три команды.
$ sudo -u homeassistant -H -s $ source /srv/homeassistant/bin/activate $ pip3 install --upgrade homeassistant
После обновления выполняем перезапуск службы homeassistant@homeassistant.service
$ sudo systemctl restart homeassistant@homeassistant.service
Обратите внимание, что первый запуск после обновления может занять некоторое время.
Комментарии
столкнулся с ошибкой при запуске HA: TypeError: deprecated() got an unexpected keyword argument 'name'
прочитал что поможет удаление
pyOpenSSL влияет ли он на работу HA?
Если бы критично влиял, то HA не запустился бы вывалившись в ошибку, но могут не работать какие либо компоненты. Рекомендую посмотреть логи, скорее всего там есть более развернутый вариант ошибки, возможно необходимо обновление Pyton до более высокой версии. Без логов тружно сказать конкретно в чем может быть проблема. Если HA сейчас запускается и работает, то при последующих обновлениях это может быть уже критической ошибкой.
так же при установке не установился пакет idna-ssl
Что было в логе установки, на что ругался не установившийся компонент?