Сегодня мы опять приобщимся к Home Assistant, но уже на Ubuntu 22.04 Server LTS, зачем? А я хочу попробовать посмотреть, как в него добавить видеокамеры с регистратора по аналогии как я сделал это на Domoticz в заметке: "Добавляем Dahua NVR в Domoticz на Ubuntu 22.04", но прежде чем приступить нужно развернуть Home Assistant (без Docker(а)). Просто как показала моя практика, если есть документация на официальном сайте, то она практически всегда не вяжется с реальностью, а так у меня есть заметки на все что мне интересно и с чем я работают. Мне так проще.
На заметку: Данная заметка была актуальна на момент написания, проверил сейчас на 03.07.2025 — при обращении на http://IP&DNS:8123 получаю ошибку 500
Характеристики виртуальной тестовой системы на которой обкатываю установку (на дату 22.01.2024) от и до под связкой Debian 10 + Proxmox 6.4-13
RAM = 4GbCPU = 4 (1 sockets, 4 cores)SSD: 50GbOS: Ubuntu 22.04 Server (ubuntu-22.04-live-server-amd64.iso)
когда все будет сделано, тестовая система переедет на боевой Proxmox.
Шаг №1: Обновляю систему Ubuntu 22.04 Server до самого актуального состояния в рамках текущего LTS релиза:
sudo nano /etc/update-manager/release-upgrades [DEFAULT] Prompt=never sudo rm -Rf /var/lib/apt/lists sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y sudo reboot uname -a && lsb_release -a Linux srv-vpn 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy
Шаг №2: Настройки Locale:
sudo rm -f /etc/localtime sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime sudo locale-gen en_US.UTF-8 echo "LC_ALL="en_US.UTF-8"" | sudo -s tee /etc/default/locale echo "LANG="en_US.UTF-8"" | sudo tee -a /etc/default/locale echo "LANGUAGE="en.US.UTF-8"" | sudo tee -a /etc/default/locale
Шаг №3: Для Home Assistant нужен Python не ниже версии 3.9:
Применяю заметку: "Обновляем Python на Ubuntu 22.04"
но не до Python3.13, а на версию Python3.11.
После устанавливаю в систему необходимые пакеты.
ekzorchik@srv-home:~$ sudo apt-get install -y python3.11-dev python3-pip rustc cargo libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata python3.11-venv libpython3.11-dev ffmpeg
Шаг №4: Для работы Home Assistant Core создадим в систему локального пользователя homeassistant, под ним будет работать Home Assistant Core:
ekzorchik@srv-home:~$ sudo useradd -rm homeassistant
где ключи:
-r -> Создаем системный аккаунт
-m -> Создаем домашнюю директорию если не создана
ekzorchik@srv-home:~$ ls /home/ ekzorchik homeassistant ekzorchik@srv-home:~$ ekzorchik@srv-home:~$ sudo ls -l /home/ total 8 drwxr-x--- 6 ekzorchik ekzorchik 4096 Jan 22 09:46 ekzorchik drwxr-x--- 2 homeassistant homeassistant 4096 Jan 22 09:45 homeassistant ekzorchik@srv-home:~$ ekzorchik@srv-home:~$ sudo nano /etc/passwd #было # homeassistant:x:998:998::/home/homeassistant:/bin/sh #стало homeassistant:x:998:998::/home/homeassistant:/bin/bash
После нажимаем Ctrl + O, Enter - Ctrl + X (для выхода из редактора).
Шаг №5: Создадим папку для Home Assistant Core и дадим на неё доступ для пользователя homeassistant, а можно и не создавать, а задействовать домашний каталог, т.е. /home/homeassistant.
Шаг №6: Создадим виртуальное окружение для Home Assistant Core, для этого переключимся на пользователя homeassistant
ekzorchik@srv-home:~$ sudo -u homeassistant -H -s homeassistant@srv-home:/root$ homeassistant@srv-home:/home/ekzorchik$ cd /home/homeassistant/ homeassistant@srv-home:~$ homeassistant@srv-home:~$ python3 -V Python 3.11.7 homeassistant@srv-home:~$ homeassistant@srv-home:~$ python3.11 -m venv . homeassistant@srv-home:~$ source bin/activate (homeassistant) homeassistant@srv-home:~$
Шаг №7: Установим wheel для Python в виртуальное окружение системного пользователя Login: homeassistant
(homeassistant) homeassistant@srv-home:~$ python3 -m pip install wheel (homeassistant) homeassistant@srv-home:~$ python3 -m pip install --upgrade pip
ошибок нет
Шаг №8: Устанавливаю недостающие модули для Python:
(homeassistant) homeassistant@srv-home:~$ pip3 install build dependencies
ошибок нет
(homeassistant) homeassistant@srv-home:~$ pip3 install sqlalchemy
ошибок нет
Шаг №9: Приступаю к установке Home Assistant:
(homeassistant) homeassistant@srv-home:~$ pip3 install homeassistant
ошибок нет
Шаг №10: Теперь запустим Home Assistant в ручном режиме. Процесс завершит установку, автоматически создаст папку конфигурации ".homeassistant" в домашней папке пользователя /home/homeassistant и доставит необходимые зависимости:
(homeassistant) homeassistant@srv-home:~$ h и нажимаю клавишу TAB два раза h2ph hash head hg hostid httpx h2xs hass help hg-ssh hostname hwclock halt hd helpztags history hostnamectl hwe-support-status hardlink hdparm hexdump host htop (homeassistant) homeassistant@srv-home:~$ hass -v Unable to find configuration. Creating default one in /home/homeassistant/.homeassistant
На заметку: Если установку прервали через Ctrl + C, то лог смотрим: (homeassistant) homeassistant@srv-home:~$ cat .homeassistant/home-assistant.log
Я запустил с ключом "-v" и вижу на консоли:
2024-01-22 14:05:08.596 INFO (SyncWorker_2) [homeassistant.loader] Loaded backup from homeassistant.components.backup 2024-01-22 14:05:08.609 INFO (MainThread) [homeassistant.setup] Setting up backup 2024-01-22 14:05:08.610 INFO (MainThread) [homeassistant.setup] Setup of domain backup took 0.0 seconds 2024-01-22 14:05:08.610 INFO (MainThread) [homeassistant.setup] Setup of domain default_config took 0.0 seconds 2024-01-22 14:05:08.611 INFO (MainThread) [homeassistant.bootstrap] Home Assistant initialized in 1.81s 2024-01-22 14:05:08.612 INFO (MainThread) [homeassistant.core] Starting Home Assistant
открываю браузер с рабочего места и через URL адрес обращаюсь к системе Ubuntu 22.04 на которой поднимаю HomeAssistant: http://IP&DNS:8123 (http://172.33.33.117:8123) и вижу:
Готовы ли Вы разбудить свой дом, вернуть свою конфиценциальность и присоединиться к всемирному сообществу?
Давайте начнем с создания учетной записи пользователя.
Имя, Имя пользователя, Пароль, Подтвердите пароль.

Указываю данные создания учетной записи пользователя:
Имя: указываю, к примеру, ekzorchikИмя пользователя: указываю, к примеру, ekzorchikПароль: указываю, к примеру, 712mbddr@Подтвердите пароль: указываю, к примеру, 712mbddr@

и нажимаю "Создать учетную запись"
Именую как будет именоваться мой Home Assistant
Название для Вашего Home Assistant: указываю, к примеру, ekzhome

и нажимаю "Далее"
Указываю месторасположение Вашего дома
Поиска адреса: указываю, к примеру, Moscow, нажимаю на иконку "Карты" и выбираю из списка, к примеру "Москва, Москва. Центральный федеральный округ, Москва, Россия"

и нажимаю "Далее"
Заполняю некоторые данные о Вашем месторасположении
Страна: РоссияЯзык: РусскийЧасовой пояс: (GMT+03:00) MoscowВысота: 0 метровСистема мер: Метрическая, Градус цельсияВалюта: российский рубль

и нажимаю "Далее"
Делиться ни с кем никакой анонимной информацией я не намерен
Базовая аналитика: не отмечаюИнформация использования: не отмечаюСтатистические данные: не отмечаюДиагностические данные: не отмечаю

и нажимаю "Далее"
Устройства интеграции в Home Assistant, ничего не выбираю

и нажимаю "Готово"
После открывается Web-интерфейс взаимодействия с Home Assistant который я развернул вручную:

если посмотреть на консоль командной строки где была запущена команда Hass, то новых строчек заметно прибавилось с каждым шагом предварительных настроек выше и модулей который были подгружены.
Нажимаю сочетание клавиш "Ctrl + C" в консоли командной строки и запущенный Home Assistant прерывается, чтобы не вручную его запускать нужно сделать файл запуска Home Assistant как сервис.
2024-01-22 14:12:41.843 INFO (SyncWorker_0) [homeassistant.loader] Loaded nibe_heatpump from homeassistant.components.nibe_heatpump ^C2024-01-22 14:17:29.631 INFO (Recorder) [homeassistant.components.recorder.pool.RecorderPool] Pool recreating (homeassistant) homeassistant@srv-home:~$ deactivate homeassistant@srv-home:~$ exit exit ekzorchik@srv-home:~$
Шаг №11: Создаю файл описывающий запуск сервиса для запуска Home Assistant:
ekzorchik@srv-home:~$ sudo nano /etc/systemd/system/homeassistant@homeassistant.service [Unit] Description=Home Assistant After=network-online.target [Service] Type=simple User=%i ExecStart=/home/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant" [Install] WantedBy=multi-user.target ekzorchik@srv-home:~$ sudo systemctl daemon-reload ekzorchik@srv-home:~$ sudo systemctl enable homeassistant@homeassistant.service Created symlink /etc/systemd/system/multi-user.target.wants/homeassistant@homeassistant.service → /etc/systemd/system/homeassistant@homeassistant.service. ekzorchik@srv-home:~$ sudo systemctl start homeassistant@homeassistant.service ekzorchik@srv-home:~$ sudo netstat -tulpn | grep :8123 tcp 0 0 0.0.0.0:8123 0.0.0.0:* LISTEN 1165/python3 tcp6 0 0 :::8123 :::* LISTEN 1165/python3 ekzorchik@srv-home:~$
Шаг №12: Проверяю, что, отправив систему в перезагрузку,
ekzorchik@srv-home:~$ sudo reboot
а после не принимая никаких действий в консоли командной строки обращаемся на URL адрес http://IP&DNS:8123 (http://172.33.33.117) системы Ubuntu 22.04 Server, что получим Web—интерфейс Home Assistant.
и вижу, что нужно как-то авторизоваться в Home Assistant, а что используется в качестве связки "Имя пользователя" и "Пароль" при получении доступа к http://IP&DNS:8123 (http://172.33.33.117:8123/)

СТОП!!! я же при развертывании выше задал «Имя пользователя» и «Пароль», а именно:
Имя пользователя: указываю, ekzorchikПароль: указываю, 712mbddr@Запомнить: ставлю галочку
и нажимаю «Войти», вот я внутри своего развернутого Home Assistant.
Делаю вывод, что я для себя успешно разобрал, как на Ubuntu 22.04 Server установить Home Assistant и установленная версия 2023.8.3.
На этом у меня все, с уважением автор блога Олло Александр aka ekzorchik.