Home Assistant

Установка Home Assistant на OrangePi PC + в марте 2022 года

Установка Home Assistant на OrangePi PC в виртуальное окружение Python

На этой странице я представлю инструкцию по полной установке Home Assistant в виртуальное окружение Python на одноплатном компьютере OrangePi PC +. Инструкция актуальна на начало 2022 года.

Для установки требуется:

  • OrangePi PC + желательно с блоком питания 5 вольт 3 ампера
  • Иметь прямой доступ к консоли или удаленный доступ по SSH

Заходим на официальный сайт Armbian  и скачиваем Armbian 22.02 Bullseye. Это операционная система версии CLI (Command Line Interface).

Во-первых Загруженый образ нужно записать на карту MicroSD с помощью программы “win32 disk imager” или “balenaEtcher”.

При первом запуске системы нужно вводить логин “root” и пароль “1234”. Далее система предложит изменить пароль пользователя “root”, его нужно будет ввести два раза. После этого выбираем командную оболочку “bash” – жмем “1” и “Enter”. На предложение зарегистрировать нового пользователя жмем “Ctrl-C”.

Если нет прямого доступа к консоли, то подключаемся с помощью терминального клиента по SSH. Для подключения я пользуюсь программой Putty.

Проверка версии Python

Год назад при установке Home Assistant были проблемы связанные с устаревшей версией Python 3.8. Как известно для установки Home Assistant требуется Python 3.9. Прежде проверим версию Python набрав в терминале команду

python3 --version

Как видно ответ системы с установленой версией Python:

 Поскольку Python имеет версию 3.9.2 – этого достаточно для установки Home Assistant.


Установка Home Assistant

Обновляем систему до актуального состояния

sudo apt-get update
sudo apt-get upgrade -y

После обновления системы устанавливаем необходимые компоненты и зависимости.

sudo apt-get install libxcb-util-dev libpcap-dev build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libxslt-dev libxml2-dev python3 python3-dev python3-venv python3-pip libffi-dev libtiff-dev autoconf libopenjp2-7 -y

Так же для установки Home Assistant требуется компилятор языка Rust.

В Ubuntu доступны два основных пакета Rust:

  • rustc: компилятор rust, используемый для языка программирования Rust.
  • Cargo: Cargo — это менеджер пакетов Rust, который автоматически устанавливает rustc.

Поскольку в состав Cargo входит rustc, я бы посоветовал установить его так, чтобы все необходимые пакеты устанавливались за один раз. Вводим в терминале команду.

sudo apt install cargo

Во время установки нужно подтвердить это действие нажав клавишу – “Y”.

После этого – перезагружаемся.

sudo reboot

После перезагрузки открываем терминал и продолжаем.

Теперь Создадим нового системного пользователя с домашней папкой для запуска и работы ядра Home Assistant. Пользователя назовем  homeassistant. Добавим его в группу dialout для взаимодействия с устройствами Z-Wave и ZigBee.

sudo useradd -rm homeassistant -G dialout

Можно задать пароль для пользователя homeassistant. Это необязательный шаг и пароль можно не задавать вообще, либо задать его позже:

passwd homeassistant

Нужно ввести новый пароль два раза.

Далее в папке /srv создадим папку для ядра Home Assistant. Пользователя homeassistant установим для неё владельцем.

cd /srv
sudo rm -rf homeassistant
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant

Заходим под учетной записью homeassistant.

sudo su -s /bin/bash homeassistant

Теперь создаем виртуальное окружение для ядра Home Assistant и активируем его:

cd /srv/homeassistant
python3.9 -m venv .
source bin/activate
pip3 install wheel

После активации виртуальной среды приступаем к установке Home Assistant:

pip3 install homeassistant

Далее запускаем Home Assistant командой:

hass

При первом запуске Home Assistant в домашнем каталоге пользователя homeassistant (/home/homeassistant) будет создана папка .homeassistant, в которой будут находится конфигурационные файлы системы.

Первый запуск может занимать 5-10 минут.

После чего проверяем доступность установленной системы набрав в браузере адресс:

http://ipAddress-OrangePi:8123

Прерываем работу запущенной системы сочетанием клавиш Ctrl+C

Выходим из учетной записи пользователя homeassistant

exit

Создаем файл для запуска сервиса при старте системы:

sudo nano /etc/systemd/system/home-assistant@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

Закрываем текстовой редактор “Ctrl-X”, подтверждаем сохранение “Y” и жмем Enter.

Включаем Home Assistant в качестве сервиса::

sudo systemctl --system daemon-reload
sudo systemctl enable home-assistant@homeassistant
sudo systemctl start home-assistant@homeassistant

Проверяем работу сервиса:

sudo systemctl status home-assistant@homeassistant.service

В итоге видим что статус запущенного процесса – Active.

Далее проверяем работу Home Assistant в браузере по адресу:

http://ipAddress-OrangePi:8123

Home Assistant – Обновление

Для обновления до последней версии необходимо:

  • зайти под пользователем homeassistant
  • активировать виртуальное окружение homeassistant
  • выполнить команду обновления
sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
pip3 install --upgrade homeassistant

Затем выходим из учетной записи пользователя homeassistant

exit

После обновления выполняем перезапуск службы homeassistant@homeassistant.service:

sudo systemctl restart home-assistant@homeassistant.service

Итак будте готовы к тому, что первый запуск после этого может занять некоторое время.

В итоге Вы имеете установленный Home Assistant.