Установка Home Assistant Core на Ubuntu 22.04 LTS
Здравия всем! Я расскажу, как поставить Home Assistant Core на Ubuntu Server 22.04 LTS.
В одной из инсталляций понадобился мне Home Assistant при чем именно в режиме Core на только, что установленном Ubuntu server 22.04 LTS. Я решил обновить свою статью, про Home Assistant Core установку, но теперь уже на новый Ubuntu 22.04 LTS
Подготовка
Зайдем на сервер с помощью ssh. Получим root права
Для Home Assistant нужен не ниже Python 3.9. В системе уже установлен Python 3.10. Поставим необходимые библиотеки
apt-get install python3-dev python3-venv python3-pip rustc cargo libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata
Для работы Home Assistant Core создадим в систему локального пользователя homeassistant, под ним будет работать Home Assistant Core.
Создадим папку для Home Assistant Core и дадим на неё доступ для пользователя homeassistant
mkdir /srv/homeassistant chown homeassistant:homeassistant /srv/homeassistant
Создадим виртуальное окружение для Home Assistant Core, для этого переключимся на пользователя homeassistant
sudo -u homeassistant -H -s cd /srv/homeassistant python3.10 -m venv . source bin/activate
root@ha-core:/home/piglet# sudo -u homeassistant -H -s homeassistant@ha-core:/home/piglet$ cd /srv/homeassistant homeassistant@ha-core:/srv/homeassistant$ python3.10 -m venv . homeassistant@ha-core:/srv/homeassistant$ source bin/activate (homeassistant) homeassistant@ha-core:/srv/homeassistant$
Обратите внимание, что пользователь должен быть в скобках. Установим wheel для Python
python3 -m pip install wheel
Installing collected packages: wheel Successfully installed wheel-0.37.1
Установим недостающие модули для Python
pip install build dependencies pip3 install sqlalchemy pip3 install fnvhash
Установка Home Assistant Core
Теперь можно приступать к установка. Запустим её Home Assistant Core
pip3 install homeassistant
Successfully built ciso8601 python-slugify Installing collected packages: voluptuous, text-unidecode, rfc3986, pytz, lru-dict, ifaddr, ciso8601, voluptuous-serialize, urllib3, typing-extensions, sniffio, six, pyyaml, python-slugify, PyJWT, pycparser, orjson, multidict, MarkupSafe, idna, h11, frozenlist, dbus-next, charset-normalizer, certifi, awesomeversion, attrs, atomicwrites-homeassistant, async-timeout, astral, yarl, requests, jinja2, cffi, bleak, anyio, aiosignal, httpcore, home-assistant-bluetooth, cryptography, bcrypt, aiohttp, httpx, homeassistant Successfully installed MarkupSafe-2.1.1 PyJWT-2.4.0 aiohttp-3.8.1 aiosignal-1.2.0 anyio-3.6.1 astral-2.2 async-timeout-4.0.2 atomicwrites-homeassistant-1.4.1 attrs-21.2.0 awesomeversion-22.6.0 bcrypt-3.1.7 bleak-0.15.1 certifi-2022.6.15 cffi-1.15.1 charset-normalizer-2.1.1 ciso8601-2.2.0 cryptography-36.0.2 dbus-next-0.2.3 frozenlist-1.3.1 h11-0.12.0 home-assistant-bluetooth-1.3.0 homeassistant-2022.8.7 httpcore-0.15.0 httpx-0.23.0 idna-3.3 ifaddr-0.1.7 jinja2-3.1.2 lru-dict-1.1.8 multidict-6.0.2 orjson-3.7.8 pycparser-2.21 python-slugify-4.0.1 pytz-2022.2.1 pyyaml-6.0 requests-2.28.1 rfc3986-1.5.0 six-1.16.0 sniffio-1.2.0 text-unidecode-1.3 typing-extensions-4.3.0 urllib3-1.26.12 voluptuous-0.13.1 voluptuous-serialize-2.5.0 yarl-1.7.2
Теперь запустим Home Assistantв ручном режиме.
Процесс завершит установку, автоматически создаст папку конфигурации .homeassistant в домашней папке пользователя /home/homeassistant и доставит необходимые зависимости
Процесс работы скрипта можно проверять в браузере по адресу http://my-ip:8123 .
Как только увидим, что интерфейс Home Assistant, значит можно прерывать его по комбинации Ctrl + C. Выйдем из виртуального окружения
Настройка Home Assistant Core
Чтобы Home Assistant Core работал после перезагрузки, нужно создать сервис.
mcedit /etc/systemd/system/homeassistant@homeassistant.service
Вставим туда следующий текст:
[Unit] Description=Home Assistant After=network-online.target [Service] Type=simple User=%i ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant" [Install] WantedBy=multi-user.target
После это активируем сервис в системе и запустим его:
systemctl --system daemon-reload systemctl enable homeassistant@homeassistant.service systemctl start homeassistant@homeassistant.service
Для перезагрузки нашего Home Assistant Core, можно пользоваться командой:
service homeassistant@homeassistant restart
Для проверки статуса используем команду:
service homeassistant@homeassistant status
* homeassistant@homeassistant.service - Home Assistant Loaded: loaded (/etc/systemd/system/homeassistant@homeassistant.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-08-26 10:58:46 UTC; 10s ago Main PID: 965 (hass) Tasks: 8 (limit: 77074) Memory: 100.1M CPU: 2.892s CGroup: /system.slice/system-homeassistant.slice/homeassistant@homeassistant.service `-965 /srv/homeassistant/bin/python3.10 /srv/homeassistant/bin/hass -c /home/homeassistant/.homeassista> Aug 26 10:58:46 ha-core systemd[1]: Started Home Assistant.
Наша конфигурация находится в папке /home/homeassistant/.homeassistant
Заключение
Процесс установки стал легче, по скольку в Ubuntu 22.04 LTS стоит свежее ПО необходимое Home Assistant Core. В этом режиме Home Assistant работает на очень слабом железе. Но расплата за это, нет возможности поставить дополнения одной кнопкой.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Устанавливаем 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 , в которой будут находится конфигурационные файлы системы.
Первый запуск может занимать 5-10 минут, после чего проверяем доступность установленной системы через браузер.
http://ha_ip_address:8123
Прерываем работу запущенной системы.
Выходим из учетной записи пользователя 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
Обратите внимание, что первый запуск после обновления может занять некоторое время.