Установка и настройка Home Assistant на Raspberry Pi

Raspberry Pi. Установка Home Assistant

Дата Автор Dmitry13 комментариев 5 670 просмотров

Home Assistant – одна из наиболее популярных систем с открытым исходным кодом для организации “умного дома” своими руками.

Этой статьей я хочу начать цикл публикаций на тему умного дома. Для начала мы рассмотрим процесс установки и первичной настройки Home Assistant на базе микрокомпьютера Raspberry Pi, а в последующих статьях цикла будут рассматриваться интеграции устройств в Home Assistant в формате “одна статья – одна интеграция”.

Что нам понадобится

Для осуществления описываемых в этой статье действий понадобится:

Сервер Home Assistant не требователен к “железу” микрокомпьютера, однако в процессе его работы происходит большое количество операций чтения-записи, что приводит к ускоренному исчерпанию ресурса microSD-карт.

Например, во время работы первой конфигурации у меня отказала microSD-карта, которую я использовал еще в 2017 году во время написания того самого обзора Raspberry Pi 3. Ее ресурса хватило на 3 года работы “малинки”, но при постоянном логировании значений с нескольких подключенных к системе датчиков Home Assistant добил ее за месяц.

Как быть:

  • Вариант 1. Регулярно делать бэкапы и иметь резерв в виде 1-2 новых microSD-карт, чтобы при отказе одной карточки памяти можно было развернуть уже сконфигурированную систему на новом накопителе.
  • Вариант 2. Купить eMMC-чип и microSD-адаптер для него. В сравнении с microSD память стандарта eMMC обладает не только более высокой скоростью чтения-записи, но и на порядки большим ресурсом.
  • Вариант 3. Перенастроить Raspberry Pi для загрузки системы с подключенного по USB жесткого диска или SSD.

Более подробно о настройке загрузки Raspberry Pi с жесткого диска я расскажу в отдельной статье. А пока будем исходить из того, что система у нас грузится с microSD.

Также желательно иметь несколько сенсоров или “умных” устройств для интеграции. На начальном этапе можно обойтись и без них, но работать с системой, которая умеет мониторить лишь собственные показатели и прогноз погоды на ближайшее время не очень интересно.

Почему именно Home Assistant

Есть несколько причин, по которым из всего многообразия систем по управлению “умным домом” я предлагаю остановить свой выбор именно на Home Assistant.

  1. Огромное сообщество. А чем больше сообщество пользователей – тем больше найдено решений типовых проблем, тем легче войти в тему новичку. Home Assistant входит в топ-10 наиболее активно развивающихся проектов на GitHub, оставляя далеко позади другие популярные системы.
  2. Большое количество поддерживаемых устройств и экосистем. Естественное следствие из предыдущего пункта: большое количество пользователей создает большое количество интеграций, которые покроют 80% потребностей начинающего строителя “умного дома”.
  3. Удобный UI и большие возможности его кастомизации. Можно по-разному относиться к лежащему в основе интерфейса Home Assistant материальному дизайну, но трудно не согласиться с одним: интерфейсы других популярных систем выглядят гораздо хуже.
  4. Совместимость с Apple Homekit “из коробки”. Несмотря на то, что сам по себе Homekit обладает достаточно скромным функционалом и не может являться основой для действительно серьезного проекта умного дома, его можно использовать в связке с Home Assistant в качестве удобного пульта управления и для поддержки голосового управления через Siri.

Варианты установки Home Assistant

Установить сервер Home Assistant можно различными путями. Можно воспользоваться ручной установкой в виртуальное окружение Python или развернуть систему в Docker-контейнере, можно воспользоваться готовыми дистрибутивами Hass.io или Hassbian.

O Hass.io стоит рассказать отдельно. Этот проект являет собой готовые сконфигурированные образы для наиболее популярных моделей миккрокомпьютеров (на данный момент поддерживается вся линейка Raspberry Pi, Asus TinkerBoard, несколько моделей Odroid и линейка компьютеров Intel NUC). Образ содержит в себе операционную систему, готовый к работе Home Assistant и свой собственный менеджер аддонов, позволяющих производить все манипуляции по настройке Home Assistant прямо из веб-интерфейса.

Может показаться, что Hass.io – это идеальный вариант для начинающего, однако у проекта есть большой недостаток: пользователю не дается административного доступа к операционной системе. Соответственно, установив Hass.io на микрокомпьютер вы не сможете параллельно использовать его для других задач, несмотря на то что мощность Raspberry Pi 4 позволяет вытянуть на себе не только Home Assistant, но и еще пару-тройку сервисов.

Hassbian в свою очередь является дистрибутивом Raspbian с уже установленным в виртуальное окружение Python сервером Home Assistant. К сожалению, проект закрылся и сборок на базе свежих дистрибутивов Raspbian с установленными на них свежими версиями Home Assistant больше не выпускают.

Преимущества Недостатки
Hass.io Наиболее легкая установка, своя система бэкапов конфигурации Нет полного доступа к системе со всеми вытекающими из этого последствиями, совместимость с ограниченным рядом устройств
Ручная установка Полный контроль над системой Требуется хотя бы минимальное умение работы с Linux
Hassbian Те же плюсы, что и у ручной установки в виртуальное окружение Python Поддержка Hassbian официально прекращена в октябре 2019
Docker Надежность, легкость разворачивания и переноса Необходимо уметь работать с контейнерами Docker

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

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

Сначала обновим все пакеты:

sudo apt-get update
sudo apt-get dist-upgrade

Затем установим необходимые для Home Assistant пакеты:

sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev

Создадим нового пользователя homeassistant, под которым в дальнейшем и будет работать наш сервер умного дома:

sudo useradd -rm homeassistant -G dialout,gpio,i2c

Создадим новую папку для установки и добавим права на нее пользователю homeassistant:

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

Теперь нужно переключиться на пользователя homeassistant и создать виртуальное окружение для установки и последующей работы Home Assistant:

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

Установим дополнительный пакет Python:

python3 -m pip install wheel

И запустим установку Home Assistant:

pip3 install homeassistant

Дождавшись завершения установки (на что потребуется минуты три), запустим систему:

hass

Во время первого запуска Home Assistant создаст базовые конфигурационные файлы и будет загружать и устанавливать дополнительные модули для своей работы. Все эти процессы займут еще около 5-10 минут, причем уведомлений о готовности не будет. Понять, что первичная настройка завершена можно по статусу “Starting Zeroconf broadcast” в терминале:

Установка и настройка Home Assistant на Raspberry Pi

После этого Home Assistant станет доступен через веб-интерфейс по адресу http://ip-адрес-raspberry-pi:8123:

Установка и настройка Home Assistant на Raspberry Pi

Осталось добавить его в автозагрузку. Для этого создадим файл:

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"

[Install]
WantedBy=multi-user.target

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

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

Первоначальная настройка

1. Создаем новую учетную запись:
Установка и настройка Home Assistant на Raspberry Pi2. Придумываем название своего дома и задаем его координаты на карте (определяются автоматически через запрос к гео-сервису):
Установка и настройка Home Assistant на Raspberry Pi3. На следующем шаге система попытается автоматически найти “умные устройства” и предложит их добавить. Можно пропустить этот шаг и вернуться к нему позже, либо выбрать какие-то интеграции самостоятельно из выпадающего списка:
Установка и настройка Home Assistant на Raspberry PiЭта статья пишется во время коронавирусной пандемии, так что в числе стандартных интеграций можно выбрать коронавирусный монитор. Я выбрал интеграции с iCloud, приложением Home Assistant для iOS, торрент-клиентом Transmission, коронавирусный монитор, сенсор для вывода локального IP-адреса устройства и виджет списка покупок.

Помимо этого система обнаружила в локальной сети мой телевизор:
Установка и настройка Home Assistant на Raspberry Pi4. На этом настройка завершена, и по клику на кнопку “Готово” мы попадаем в панель управления нашим свежесозданным умным домом.

Поначалу она будет выглядеть ужасно:
Установка и настройка Home Assistant на Raspberry PiПоэтому первое, что надо сделать – это отключить автоматическое управление интерфейсом Lovelace UI, нажав на символ из трех вертикальных точек в верхнем правом углу и выбрав пункт “Настройка интерфейса”.
Установка и настройка Home Assistant на Raspberry PiСистема спросит, уверены ли мы, что хотим получить доступ к редактированию интерфейса и попытается напугать тем, что при этом автоматически добавляться сенсоры новых добавляемых устройств. Это не должно смущать, т.к. сенсоры все равно никуда не денутся: Home Assistant перестанет автоматически выводить их все в одну кучу, но их по-прежнему можно будет найти в системе и настроить вывод самостоятельно и в удобной для себя форме.

Основные элементы в интерфейсе Home Assistant – это Entities и Glance. Они представляют собой группы сенсоров / кнопок / информеров, оформленные списком (Entities) или панелью иконок с подписями (Glance).

Также есть Badges – круглые значки, выводимые сверху. Именно в них Home Assistant по умолчанию вывел в системе сенсоры.

Установка и настройка Home Assistant на Raspberry Pi

Первичную настройку я закончу на том, что удалю из интерфейса все бейджи и выведу карточки для мониторинга ситуации с коронавирусом, показателей системы и статуса Transmission. Также я сразу добавил кнопку для управления Xiaomi Mi LED Desk Lamp.

Обновление

Home Assistant – активно развивающийся проект, новые обновления выходят каждую неделю. Поскольку в обновлениях внедряются все новые интеграции, рекомендую ставить их сразу же по мере выходя.

Если Home Assistant устанавливался по моей инструкции, а именно:

  • в папку /srv/homeassistant
  • от отдельно созданного пользователя с именем homeassistant

То обновить его можно, выполнив следующие команды в терминале:

sudo -u homeassistant -H -s
cd /srv/homeassistant
source bin/activate
python3 -m pip install --upgrade homeassistant

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

После установки обновления нужно перезапустить сервер:

Home Assistant → Настройки → Сервер → Перезапустить

Заключение

Французскому архитектору Ле Корбюзье приписывают высказывание «дом – это машина для жилья». Однако реализовать концепцию “дома-машины” стало возможным только в сейчас, когда уровень развития бытовой автоматики намного шагнул вперед.

На базе Home Assistant можно реализовать любые проекты домашней автоматизации. Уже сейчас в продаже доступны сотни поддерживаемых системой устройств, и их количество растет с каждым месяцем.

В следующих статьях цикла будут рассмотрены более детально вопросы кастомизации пользовательского интерфейса, интеграция различных компонентов и создание автоматизаций для их совместной работы.

Raspberry Pi 4 1/2/4 Gb RAMна AliExpress

13 комментария на «Raspberry Pi. Установка Home Assistant»

  1. Добрый день.
    при первом запуске выдаёт такое:
    2020-06-21 19:05:08 ERROR (MainThread) [homeassistant.setup] Error during setup of component alexa
    Traceback (most recent call last):
    File “/srv/homeassistant/homeassistant/lib/python3.7/site-packages/homeassistant/setup.py”, line 190, in _async_setup_component
    result = await asyncio.wait_for(task, SLOW_SETUP_MAX_WAIT)
    File “/usr/lib/python3.7/asyncio/tasks.py”, line 416, in wait_for
    return fut.result()
    И далее всё с ошибками

    • Добрый день, попробуйте перезагрузиться и запустить hass снова. И если опять будут ошибки, то невзирая на них надо попробовать открыть веб-интерфейс. Возможно они не мешают работе.

      Если и ошибки возникают и интерфейс недоступен, то я бы предположил, что возникли какие-то проблемы с установкой Python и виртуального окружения, и нужно заново провести установку на “чистой” системе.

      • К сожалению не получается. При повторно hass выдаёт:
        06:26:21 WARNING (Recorder) [homeassistant.components.recorder] Ended unfinished session (id=6 from 2020-06-21 12:46:32.857253)
        К веб интерфейсу не подключается.
        Система с нуля – это уже вторая попытка.

        • Аналогичная ситуация.
          Все установил на чистую систему, но запустить не могу – те же ошибки.

          • попробуй вытащить из юсб разъемов все флэшки до момента установки HA и не пропускай этап обновления системы

  2. Лучшая статья которую я видел по установке HA.
    И самая свежая на этот день что нашел, автор молодец!

    • Супервизор доступен только в Hass.io, в обычном дистрибутиве Home Assistant его нет. И к установке в виртуальное окружение Python “доустановить” не получится, т.к. его работа завязана на управление Docker-контейнерами, а в таком варианте установки они не используются.

  3. Добрый день!
    1. После запуска Home Assistant (команды HASS) в консоли не отображается ни какая информация типа “Starting Zeroconf droadcast”, но интерфейс программы открывается. На попытку зарегистрироваться не реагирует. Останавливается только CTRL +C.

    2. При вводе команды “sudo nano /etc/systemd/system/home-assistant@homeassistant.service” запрашивает пароль пользователя. Где его брать?

    • Добрый день.

      1) Не совсем понял в чем проявляется проблема, но если первый экран открывается, то скорее всего надо просто дольше подождать.

      2) Нужно ввести пароль того пользователя, под которым вы залогинены на микрокомпьютере. Если это Raspbian, то по умолчанию пользователь pi с паролем raspberry. Сменить пароль можно консольной командой passwd.

      • 1. Уточняю: Ввожу команду “hass”. На терминале, после нажатия клавиши “Ввод”, появляется следующая строка и никакой реакции. Ждал долго, оставлял на ночь. Делал несколько раз. Процесс останавливается через Ctrl+C. Но при этом можно зайти на веб-интерфейс, ввести данные для регистрации учетки, но, при нажатии “Регистрация”, опять никакой реакции.
        2. У меня спрашивает пароль для пользователя HomeAssistant – все равно пароль для малинки вводить?

        Спасибо!

        • Мы полагаем, что ваш системный администратор изложил вам основы
          безопасности. Как правило, всё сводится к трём следующим правилам:

          №1) Уважайте частную жизнь других.
          №2) Думайте, прежде что-то вводить.
          №3) С большой властью приходит большая ответственность.

          Вот такое пишет. Пароль от Raspberry не подходит

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

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

[Хамство, оскорбления и попытки крауд-маркетинга будут удалены]