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 обычно необходим пароль текущего пользователя, который запрашивает права. На каком этапе у вас запрашивает пароль и каким пользователем вы входите в систему?