Сегодня мы опять приобщимся к 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)
и вижу:
Готовы ли Вы разбудить свой дом, вернуть свою конфиценциальность и присоединиться к всемирному сообществу?
Давайте начнем с создания учетной записи пользователя.
Имя, Имя пользователя, Пароль, Подтвердите пароль.
Указываю данные создания учетной записи пользователя:
Имя: указываю, к примеру, 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.