Stupid House

Устанавливаем Home Assistant на Ubuntu server


Home Assistant мощная платформа управления глупым умным домом, которая может контролировать и управлять устройствами нашего дома. Работает на большом количестве систем, в том числе Raspberry PI, для которой имеет сборку образ Hass.io. Проект активно развивается и имеет большое сообщество, всю актуальную информацию можно найти на сайте проекта: https://www.home-assistant.io/.

Прежде чем ставить на обычный компьютер я опробовал сборку Hass.io для одноплатника, но у меня она не прижилась, все плюсы системы были перечеркнуты минусами:

  • Всё управление, в том числе правка конфигурационных файлов (а это основная часть настройки), производится через Web интерфейс в не самом удобном редакторе.
  • У меня так и не получилось удаленно достучаться до малинки по SSH. Достучаться можно через плагин SSH через Web морду (оно вам надо?). Плагин Samba у меня не завелся совсем, а хоть какой-то доступ к файловой системе иметь всё же хочется.
  • Вся система работает в кучке Docker контейнеров изрядно нагружая одноплатник и в работе системы наблюдались притормаживания, которые отражались на работе устройств (например, в задержке реакции устройств на какое либо действие).

Исходя из этого было принято решение установить Home Assistant на нормальный компьютер, точнее в отдельную KVM виртуалку. Ubuntu была выбрана в качестве основной системы т.к. Raspberry Pi OS, так же, как и Ubuntu имеют общие корни Debian.

 

 

Установка Home Assistant

Вся предоставленная ниже информация взята на сайте проекта и основана на установке Home Assistant для Raspberry Pi.

Подключаемся к системе, на которой у нас будет крутиться Home Assistant по SSH и обновляем систему до актуального состояния.

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

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

 

$ sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev autoconf build-essential

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

$ sudo useradd -rm homeassistant -G dialout

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

$ cd /srv
$ sudo mkdir homeassistant
$ sudo chown homeassistant:homeassistant /srv/homeassistant

Теперь создаем виртуальное окружение для ядра Home Assistant, делаем это для учетной записи homeassistant.

$ sudo -u homeassistant -H -s
$ cd /srv/homeassistant
$ python3 -m venv .
$ source bin/activate

После активации виртуальной среды выполняем установку необходимого пакета Python.

$ python3 -m pip install wheel

По завершении установки пакета Python приступаем к установке Home Assistant.

$ pip3 install homeassistant

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

$ hass

Первый запуск может занимать 5-10 минут, после чего проверяем доступность установленной системы через браузер.

http://ha_ip_address:8123

Прерываем работу запущенной системы.

Ctrl+C

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

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

$ sudo nano /etc/systemd/system/homeassistant@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

Запускаем сервис.

$ sudo systemctl --system daemon-reload
$ sudo systemctl enable homeassistant@homeassistant.service
$ sudo systemctl start homeassistant@homeassistant.service

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

$ sudo systemctl status homeassistant@homeassistant.service

Через Web браузер проверяем работу Home Assistant.

http://ha_ip_address:8123

 

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

Для обновления до последней версии необходимо выполнить следующие три команды.

$ sudo -u homeassistant -H -s
$ source /srv/homeassistant/bin/activate
$ pip3 install --upgrade homeassistant

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

$ sudo systemctl restart homeassistant@homeassistant.service

Обратите внимание, что первый запуск после обновления может занять некоторое время.

Автор: muxa, 08.07.2020
Войдите или зарегистрируйтесь, чтобы иметь возможность оставлять комментарии

Комментарии


столкнулся с ошибкой при запуске HA: TypeError: deprecated() got an unexpected keyword argument 'name'

прочитал что поможет удаление pyOpenSSL влияет ли он на работу HA?


Если бы критично влиял, то HA не запустился бы вывалившись в ошибку, но могут не работать какие либо компоненты. Рекомендую посмотреть логи, скорее всего там есть более развернутый вариант ошибки, возможно необходимо обновление Pyton до более высокой версии. Без логов тружно сказать конкретно в чем может быть проблема. Если HA сейчас запускается и работает, то при последующих обновлениях это может быть уже критической ошибкой.

так же при установке не установился пакет idna-ssl

Что было в логе установки, на что ругался не установившийся компонент?

Здравствуйте.


"Мы полагаем, что ваш системный администратор изложил вам основы

безопасности. Как правило, всё сводится к трём следующим правилам:


  №1) Уважайте частную жизнь других.

  №2) Думайте, прежде что-то вводить.

  №3) С большой властью приходит большая ответственность.


[sudo] пароль для homeassistant:"


Что за пароль имеется виду? Или как это можно обойти. Пароль от HA не подходит.

Для sudo обычно необходим пароль текущего пользователя, который запрашивает права. На каком этапе у вас запрашивает пароль и каким пользователем вы входите в систему?

После установки по этой инструкции, за которую отдельное спасибо, в меню настроек нет пункт "Дополнения".

Хотели с arbmian'а переехать на убунту-сервер) обновив python до 3.12 версию ядра получили последнюю 2024.5.3, но вот без включения пункта "Дополнения" нам не переехать(

Как можно его добавить?

На сайте HA в разделе Addon's написано (https://www.home-assistant.io/addons/):

Add-ons are only available if you've used the Home Assistant Operating System or Home Assistant Supervised installation method. If you installed Home Assistant using any other method then you cannot use add-ons. Often you can achieve the same manually, refer to the documentation by the vendor of the application you'd like to install.

Я бы запихнул HA в виртуалку, тем более что для HAOS уже есть готовые образы для KVM (https://www.home-assistant.io/installation/linux).

Просто думалось, а ну как это тот самый супервайзед метод, просто надо поставить дополнительный питонячий пакет)

Ну нет так нет, будем искать другой вариант вкорячить это на убудут сервер 22.04)

Спасибо!