Установка Home Assistant Core на Armbian

Здравия всем! Понадобилось мне на даче поставить Home Assistant. В закромах нашел одноплатник Cubieboard 2. На него решил и поставить Home Assistant Core.

Подготовка

Для одноплатников есть хороший дистрибутив Armbian на основе Debian 10 / Ubuntu 20.04. Одноплатник Cubieboard 2 уже сняли с поддержки, но в архиве есть еще относительно свежие образы. Идем в архив. Нам доступно 2 стабильные версии Armbian

  • – Armbian_21.08.1_Cubieboard2_focal_current_5.10.60.img (на основе Ubuntu 20.04)
  • – Armbian_21.08.1_Cubieboard2_buster_current_5.10.60.img (на основе Debian 10)

Подготовка microSD

Для операционной системы Windows есть хорошая бесплатная утилита Win32 Disk Imager.

После того как залили образ Armbian на microSD

Настройка Armbian после установки

Вытаскиваем microSD вставляем ее в Cubieboard 2, подключаем сеть и питание. Через несколько минут устройство появится в сети, если включен на роутере DHCP. Заходим через Putty на наш компьютер по протоколу OpenSSH. Логин по умолчанию root, пароль 1234

Запустится мастер настройки, он попросит ввести новый пароль для пользователя root, выбрать терминал по умолчанию( я выбрал bash), придумать нового пользователя и пароль к нему. Также определит ваше текущее время на основе местоположения и спросит прописать ли язык системы на основе вашего местоположения.

Для настройки системы есть утилита armbian-config. Введем её в консоле

armbian-config

Мастер достаточно функциональный и интуитивно понятный.

Обновим систему

apt update
apt upgrade

Тк это одноплатник процесс обновления затянется минут на 5-30 в зависимости от количества обновлений. Для применения обновлений ядра перезагрузим нашу систему

reboot

Установка Home Assistant

Установка Python

После перезагрузки снова подключаемся по SSH к нашему серверу и входим в Root режим

sudo bash

Для последней версии Home Assistant Core нужен Python 3.9 установим его. Для этого добавим PPA репозиторий

add-apt-repository ppa:deadsnakes/ppa


For nightly builds, see ppa:deadsnakes/nightly https://launchpad.net/~deadsnakes/+archive/ubuntu/nightly
 More info: https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
Press [ENTER] to continue or Ctrl-c to cancel adding it.

Сущ:1 http://ports.ubuntu.com focal InRelease
Пол:2 http://ports.ubuntu.com focal-security InRelease [114 kB]
Пол:3 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal InRelease [18,1 kB]
Сущ:4 http://ports.ubuntu.com focal-updates InRelease
Сущ:6 http://ports.ubuntu.com focal-backports InRelease
Пол:5 http://mirrors.dotsrc.org/armbian-apt focal InRelease [26,8 kB]
Пол:7 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal/main armhf Packages [26,3 kB]
Пол:8 http://ports.ubuntu.com focal-security/universe armhf Packages [665 kB]
Пол:9 http://ports.ubuntu.com focal-security/main armhf Packages [853 kB]
Получено 1 702 kB за 5с (345 kB/s)
Чтение списков пакетов… Готово
root@cubieboard2:/home/ha#

Нужно нажать Enter, чтобы разрешить установку репозитория

Установим Python 3.9 и необходимые библиотеки

apt-get install python3.9 python3.9-dev python3.9-venv python3-pip rustc cargo libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata

Доставим недостающие пакеты для Python 3.9

 pip install build dependencies

Установка Home Assistant Core

Для работы Home Assistant Core создадим в систему локального пользователя homeassistant, под ним будет работать Home Assistant Core.

useradd -rm homeassistant

Создадим папку для 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.9 -m venv .
source bin/activate


root@cubieboard2:/home/ha# sudo -u homeassistant -H -s
homeassistant@cubieboard2:/home/ha$ cd /srv/homeassistant
homeassistant@cubieboard2:/srv/homeassistant$ python3.9 -m venv .
homeassistant@cubieboard2:/srv/homeassistant$ source bin/activate
(homeassistant) homeassistant@cubieboard2:/srv/homeassistant$

Установим wheel для Python

python3 -m pip install wheel


(homeassistant) homeassistant@cubieboard2:/srv/homeassistant$ python3 -m pip install wheel
Collecting wheel
  Downloading wheel-0.37.1-py2.py3-none-any.whl (35 kB)
Installing collected packages: wheel
Successfully installed wheel-0.37.1
(homeassistant) homeassistant@cubieboard2:/srv/homeassistant$


Запустим установку Home Assistant Core

pip3 install homeassistant

Процесс установки Home Assistant Core происходит неспешно.Во время установки все наглядно логируется

На моем одноплатнике заняло 30 минут.

Теперь запустим Home Assistant Core в ручном режиме.

hass

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

Процесс неспешный. Прерывать нельзя! В процессе установки мастер будет сообщать в окно о процессе.

Процесс можно проверять через браузер по адресу http://ip:8123. В моем случае http://192.168.222.162:8123

Как только появится картинка с предложением войти, значит процесс установки завершился. Можно выходить из виртуальной среды.

Настройка 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

Для проверки статуса используем команду:

homeassistant@homeassistant status

root@cubieboard2:/home/ha# service homeassistant@homeassistant status
● homeassistant@homeassistant.service - Home Assistant
     Loaded: loaded (/etc/systemd/system/homeassistant@homeassistant.service; e>
     Active: active (running) since Sun 2022-03-20 18:56:11 MSK; 19s ago
   Main PID: 3157 (hass)
      Tasks: 9 (limit: 2138)
     Memory: 55.6M
     CGroup: /system.slice/system-homeassistant.slice/homeassistant@homeassista>
             └─3157 /srv/homeassistant/bin/python3.9 /srv/homeassistant/bin/has>

мар 20 18:56:11 cubieboard2 systemd[1]: Started Home Assistant.


Наша конфигурация находится в папке /home/homeassistant/.homeassistant

Вот и результат:

Заключение

На этом установку и настройку Home Assistant Core на Ubuntu 20.04 закончили. Мне показалось, что в некоторых инсталляциях нет смысла ставит Home Assistant в Docker. Home Assistant Core очень хорошо справляется со своей задачей на слабом железе. Если будет нужен готовый образ для Cubieboard 2, пишите в комментариях, и я выложу на какой нибудь общественный сервер.

6 ответов к «Установка Home Assistant Core на Armbian»

  1. Решил тоже на кубик поставить ассистента, тори дня бился с ним и ничего не получилось.Можно готовый образ?

    1. Василий, в моем образе не актуальная версия Home Assistant Core 2022.03. Чтобы сделать образ с актуальной версией придется подождать до выходных

    2. Василий, у Вас какая модель кубика? (если ещё актуально ;-))
      Я тут проапдейтил Armbian и hass на своём Cubox-i 2ex
      Как раз собирался полный образ снять…

  2. Добрый день Юрий. Пытаюсь установить по инструкции. Питон отказывается ставиться. Не могли бы Вы выложить готовый образ?

    1. Версия питона уже обновилась, у меня, например получилось вот так

      apt-get install python3.12 python3.12-dev python3.12-venv python3-pip rustc cargo libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff6 libturbojpeg0-dev tzdata ffmpeg

      На разных версиях Armbian она от 3.11 до 3.13, и libtiff6

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.