Сегодня мы опять приобщимся к Home Assistant, но уже на Ubuntu 22.04 Server LTS, зачем? А я хочу попробовать посмотреть, как в него добавить видеокамеры с регистратора по аналогии как я сделал это на Domoticz в заметке: "Добавляем Dahua NVR в Domoticz на Ubuntu 22.04", но прежде чем приступить нужно развернуть Home Assistant (без Docker(а)). Просто как показала моя практика, если есть документация на официальном сайте, то она практически всегда не вяжется с реальностью, а так у меня есть заметки на все что мне интересно и с чем я работают. Мне так проще.

Характеристики виртуальной тестовой системы на которой обкатываю установку (на дату 22.01.2024) от и до под связкой Debian 10 + Proxmox 6.4-13

  • RAM = 4Gb
  • CPU = 4 (1 sockets, 4 cores)
  • SSD: 50Gb
  • OS: 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:/home/ekzorchik$

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) и вижу:

Готовы ли Вы разбудить свой дом, вернуть свою конфиценциальность и присоединиться к всемирному сообществу?

Давайте начнем с создания учетной записи пользователя.

Имя, Имя пользователя, Пароль, Подтвердите пароль.

Вижу Web-интерфейс предварительной настройки Home Assistant

Указываю данные создания учетной записи пользователя:

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

Указываю данные создания учетной записи пользователя:

и нажимаю "Создать учетную запись"

Именую как будет именоваться мой Home Assistant

  • Название для Вашего Home Assistant: указываю, к примеру, ekzhome

Именую как будет именоваться мой Home Assistant

и нажимаю "Далее"

Указываю месторасположение Вашего дома

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

Указываю месторасположение Вашего дома

и нажимаю "Далее"

Заполняю некоторые данные о Вашем месторасположении

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

Заполняю некоторые данные о Вашем месторасположении

и нажимаю "Далее"

Делиться ни с кем никакой анонимной информацией я не намерен

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

Делиться ни с кем никакой анонимной информацией я не намерен

и нажимаю "Далее"

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

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

и нажимаю "Готово"

После открывается Web-интерфейс взаимодействия с 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/)

и вижу, что нужно как-то авторизоваться в Home Assistant, а что используется в качестве связки "Имя пользователя" и "Пароль" при получении доступа к http://IP&DNS:8123

СТОП!!! я же при развертывании выше задал “Имя пользователя” и “Пароль”, а именно:

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

и нажимаю “Войти”, вот я внутри своего развернутого Home Assistant.

Делая вывод, что я для себя успешно разобрал, как на Ubuntu 22.04 Server установить Home Assistant и установленная версия 2023.8.3.

На этом у меня все, с уважением автор блога Олло Александр aka ekzorchik.