Последнее обновление 19 апреля 2021

Умный дом на Home Assistant

При создании собственного «умного дома», прежде всего, приходится делать выбор платформы. Он далеко не прост и должен включать ответы на вопросы о поддержке различных стандартов обмена данными, наличии на рынке и возможности интеграции устройств (от простейших датчиков и исполнительных механизмов до самодостаточных девайсов вроде «умных» холодильников и пылесосов), удобства управления системой, стоимости решения и т.д.

Сегодня разработкой таких платформ занимаются сотни компаний, именитые производители, такие как Apple, Samsung, Ikea, Xiaomi создают собственные экосистемы, есть несколько очень интересных универсальных решений с закрытым и открытым кодом.

blank

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

Что такое Home Assistant

blank

Home Assistant (HA) – программная платформа для домашней автоматизации, обеспечивающая решение всех сопутствующих вопросов – от добавления устройств, до создания сценариев любой сложности и использования голосовых помощников. Ее отличают:

  • открытый исходный код;
  • поддержка всех стандартов (Wi-Fi, BlueTooth, Z-Wave, ZigBee и др.).
  • решения практически для всех компонентов Home Automation различных производителей.
  • Простота освоения и использования.
  • Огромное сообщество, всегда готовое помочь и советами, и готовым программным кодом.

Основной язык разработки – Python, но для большинства задач пользователю не придется собственноручно написать ни одной строки кода.

blank

Создание и функционирование «умного дома» на HA включает несколько шагов. Буквально каждый из них подчеркивает основные возможности и преимущества платформы.

Установка

blank

Платформа поддерживает несколько вариантов установки:

  • HA Operating System. Устанавливает Home Assistant как ОС для работы в задачах домашней автоматизации. Включает ядро, функционал Supervisor для управления последним, набор предустановленных плагинов для интеграции устройств и обращения к сервисам. На официальном сайте указан как рекомендуемый метод, который подходит как для старта работы, так и для решения задач home automation. Главным плюсом является простота развертывания системы.
  • HA Core. Ручная установка ядра с использованием виртуального окружения Python (подходит для опытных пользователей). Полный доступо к платформе, требует минимальных знаний об ОС и умения работать с окружением Python и командной строкой.
  • HA Supervised. Установка ядра платформы с функционалом Supervisor в ручном режиме (подходит для опытных пользователей). В результате такой вариант предоставляет самый полный контроль над системой, но в этом случае работает только с клонами Linux, кроме того, требуется от пользователя быть с данной операционной системой на «ты».
  • HA Container. Установка ядра Home Assistant с использованием механизма контейнеров (например, Docker). Преимущество данного варианта установки – это надежность, быстрое развертывание, перенос на другие устройства без значительных проблем. Из минусов следует отметить, что есть необходимость уметь использовать Docker, что доступно далеко не каждому рядовому пользователю.

Установку можно произвести на микрокомпьютеры:

  • Odroid;
  • Raspberry Pi;
  • Asus Tinkerboard;
  • Intel NUC и др.
Мнение эксперта
Яковлев Алексей Сергеевич
Электрик с 20 летним стажем и богатым опытом
Установка возможна в любом из вариантов. Хороший выбор – работа ОС HA Operating System на одноплатных микрокомпьютерах. Для установки достаточно развернуть образ системы на microSD карте. За счет установленного набора add-on устройство превращается в полноценный сервер УД и хаб для подключения устройств различных стандартов. Связь осуществляется через контакты портов ввода/вывода и интерфейсы USB, Ethernet, BlueTooth, Wi-Fi. Кроме того, поддерживается работа через шлюзы/хабы большинства производителей.

blank

alt
К сведению! За счет значительного количества операций чтения/записи, ресурса microSD карты хватает на 6-8 месяцев полноценной работы, после чего накопитель требует замены. Чтобы не восстанавливать систему из резервной копии (хотя на это и требуется не более 1 часа времени) стоит воспользоваться альтернативным вариантом – жестким диском или SSD-накопителем, подключенными по USB или ограничить запись протоколируемых в history событий.

Возможно развертывание системы на компьютерах и серверах под управлением

  • Windows;
  • Клонов Linux;
  • MacOS.

При этом установка HA Operating System производится на выделенные виртуальные машины (необходима установка соответствующего софта)

blank

Установку ядра производят в Docker (на Linux) или виртуальном окружении Python (для всех поддерживаемых платформ, требуется установка Python 3/8 для последних версий HA).

Конфигурирование системы

alt
Одно из главных преимуществ Home Assistant – простое конфигурирование системы. В отличие от большинства аналогичных платформ здесь не требуется постоянного обращения к командной строке для изменения конфигурации.

blank

Конфигурация сохраняется в YAML- файлах (при развертывании под Linux – в папке ~/.homeassistant, основной – configuration.yaml). Файлы без проблем редактируются в текстовом редакторе, все изменения применяются после перезагрузки настроек в веб-интерфейсе на вкладке Configuration – General.

Работа с удобным веб-интерфейсом

blank

Во время первого запуска платформы система создаст конфигурационные файлы, произведет подгрузку предусмотренных вариантом установки дополнительных модулей, развернет локальный веб-сервис, доступный по адресу http://localhost:8123.

В браузере при переходе пользователю станет доступен веб-интерфейс. Предварительно придется:

  1. Создать учетную запись пользователя для локального сервера. Указываются имя пользователя, логин, пароль и его дубль для подтверждения.
  2. Указать имя экземпляра умного дома, для которого разворачивается платформа, и его расположение (определяется автоматически при разрешении доступа к сервису геолокации, может быть выбрано на карте самостоятельно).
  3. Дать разрешение на поиск интеграций, а также добавить нужные из предложенного платформой списка. На этом шаге будут автоматически дополнены файлы конфигураций. Если его пропустить, все те же действия можно выполнить в ходе работы с платформой по созданию и настройке конкретного экземпляра УД.
alt
Эти шаги необходимы только при первом запуске, в дальнейшем пользователь сразу получит доступ к веб-интерфейсу системы.

Для задания полной базовой информации вносятся (кроме имени экземпляра и географического положения) переменные:

  • elevation –высота над уровнем моря;
  • unit-system – используемая система измерений (метрическая или imperial, использующая футы, фунты, галлоны и т.д.);
  • temperature_unit – шкала температур по Цельсию или Фаренгейту;
  • time-zone – часовой пояс;
  • internal_url и external_url – адреса для доступа к веб-сервису из внутренней и внешней сетей;
  • разрешения на использование внешних URL и директорий, папки для размещения медиа файлов и т.д.

Основными средствами при работе с системой через веб-интерфейс являются:

  • Панель инструментов УД LovelaceUI. Именно на ней отображаются устройства в сети, их состояние, действия и пр.
  • Пользовательское меню. Включает все возможности контроля экземпляра УД, создания и изменения его конфигурации.

blank

Фактически LovelaceUI является полностью настраиваемым инструментом для отслеживания (при необходимости) состояния системы в реальном времени. Базой для представления являются:

  • Карточки. На них отображаются датчики, кнопки, информеры в виде списка (Entities) или набора подписанных иконок (Glance). Выбрать вариант отображения пользователь может по собственному усмотрению.
  • Бейджи. Компактное представление компонентов. Не всегда удобно, поскольку в автоматическом режиме размещается системой хаотично и оказывается малоинформативным. На усмотрение пользователя могут быть полностью удалены или перегруппированы для быстрого доступа к информации.

Пользовательское меню открывает доступ к:

  1. Обзору системы (странице LovelaceUI).
  2. Карте, при необходимости изменения местоположения, задания дополнительных локаций и зон.
  3. Журналу событий, в котором ведется лог системы.
  4. Истории. По умолчанию записывает все используемые экземпляром УД события – изменение состояний сенсоров, срабатывание триггеров, действия, и множество дополнительных, например, изменение положения солнца. Владелец может настроить запись, чтоб уменьшить число операций и объемы информации (полезно при работе с микрокомпьютерами, чтобы продлить срок службы SD-карты).
  5. Инструментам разработчика и редактору конфигураций. Именно эти пункты меню содержат все необходимое для настройки экземпляра УД.

blank

alt
К сведению! Вносить изменения пользователь может прямым редактированием YAML-файлов. Однако встроенные средства гораздо удобнее, поскольку позволяют выполнить все необходимые действия в графическом интерфейсе. Для многих вариантов систем этого достаточно чтобы создать и настроить их с нуля, не написав ни строчки кода на Python, Однако пока далеко не все можно сделать без ручного кодирования, хотя разработчики и утверждают, что в ближайшем будущем графического интерфейса будет достаточно для решения 99% задач.

Использование интеграций, добавление компонентов, создание автоматизаций

Одним из главных преимуществ HA над основными конкурентами является огромное количество интеграций. На странице официального сайта (https://www.home-assistant.io/integrations/) сегодня предлагается 1765 проверенных и одобренных сообществом интеграций.

blank

Они включают компоненты практически всех производителей, выпускающих устройства для УД. Здесь можно найти не только датчики и исполнительные механизмы, но шлюзы для подключения, в том числе для девайсов других экосистем – Apple, Samsung, Ikea, Xiaomi. В список включены не только физические устройства, но и многие онлайн-сервисы. Так, можно найти плагины для использования VLC-плеера, сервиса Yandex.Transport, мониторинга распространения эпидемии коронавируса (COVID Monitor), подключения голосовых помощников Amazon и Google и т.д.

alt
По мнению опытных пользователей, при покупке любого устройства home automation есть более чем 80%-ная вероятность, что оно уже включено в интеграции HA, и свыше 90%, что новинка появится в ближайшее время.

Впрочем, даже если ее найти не удалось, вполне рабочий подход – найти похожее устройство в библиотеке исходников на GitHub и внести в код нужные коррекции.

Добавление компонентов

blank

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

После установки в файл конфигураций будут внесены данные о новом модуле, а сам он станет доступен в веб-интерфейсе.

alt
К сведению! HA может найти подключенные к системе модули самостоятельно или позволяет пользователю добавить их вручную.

Для доступа к модулю используются наборы:

  • Объектов (entities), хранящих данные – состояние (state, основное значение) и дополнительные атрибуты (attributes). Набор последних практически не ограничен и может включать любые характеристики.
  • Сервисов (services) – фактически, функций объекта, таких как включение, выключение, переключение и пр.

blank

Доступ к конфигурациям пользователь получает из пункта «Инструменты разработчика» (Developer Tools).

Автоматизации

Не менее просто описываются автоматизации – действия, выполняемые компонентами системы при заданных условиях.

Каждая автоматизация включает в себя цепочки из трех основных компонентов:

  1. Триггеров – основных условий, при которых выполняется (triggers).
  2. Дополнительных условий (conditions).
  3. Действий (actions).

Например, автоматизацию можно описать выражением «Включить систему отопления, если температура в помещении снизилась до 16 градусов и в нем есть люди». Здесь:

  • Триггер – снижение температуры ниже заданного порога (фактически – показания датчика температуры, получение от модуля значений state и нужного атрибута).
  • Условие – в помещении есть люди (получение статусов или атрибутов от других датчиков, компонентов системы или сервисов).
  • Действие – подача команды на исполнительное устройство для включения системы отопления (вызов соответствующего сервиса для компонента).

Пользователь выбирает сенсоры и объекты (entities) для триггеров и условий, вызываемые сервисы непосредственно в графическом интерфейсе. Таким образом, большинство автоматизаций могут быть заданы без написания кода.

blank

alt
На заметку! HA позволяет использовать и другой, не менее интересный и эффективный инструмент визуального программирования. – Node RED. Для этого только необходимо установить в систему соответствующую интеграцию.

Механизм триггеров и условий позволяет охватить все возможные ситуации, использовать:

  • события, генерируемые компонентами;
  • состояние системы или его изменение;
  • сообщения MQTT;
  • временные метки и интервалы и пр.
  • информацию от внешних сервисов (положение солнца, температура наружного воздуха, системы геолокации и позиционирования и т.д.).
  • статусы и атрибуты (значения измерений) датчиков;

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

blank

alt
Словом, Home Assistant оказывается весьма гибкой системой, обладающей к тому же, великолепной универсальностью. Поддержка сообщества, богатейшая библиотека кодов на GitHub позволяет решить практически любую задачу home automation, при необходимости получить квалифицированную помощь других пользователь и консультации разработчиков.
Минусы
Солидный объем информации, которые придется освоить для получения работоспособной системы. Этим платформа, конечно, уступает фирменным экосистемам, например от Xiaomi или Samsung, которые готовы к работе буквально «из коробки» и не требуют значительных усилий для освоения.
Необходимость приобретения и установки в систему шлюзов для работы с устройствами разных стандартов и производителей.

Альтернативные платформы home automation

Тем, кто ищет альтернативу умному дому на Home Assistant следует обратить внимание на:

  • «Коробочные» системы известных производителей:
Apple HomeKit. Хабы выпускаются непосредственно Apple, остальные устройства – другими производителями и проходят жесткую сертификацию. Основные достоинства – высокое качество, безопасность. Возможно использование Siri для голосового управления. Главные недостатки – проблемы с кроссплатформенностью и заоблачная цена.
Samsung HomeKit. Все необходимое – от хабов и до розеток, выключателей и лампочек входит в собственную экосистему. Возможно подключение устройств других производителей через шлюз SmartThings, используется управление голосом с Google Assistant и Amazon Alexa. По цене намного выгоднее предложений Apple, но кроме крупной бытовой техники «умных» девайсов в России не найти, их придется заменять устройствами сторонних компаний.
IKEA Home Smart. Использует ZigBee шлюз и продукты линейки Tradfri. Пока предусматривает только базовые опции и компоненты, голосовое управление не поддерживается. Решение неплохо выглядит с точки зрения бюджета, но до полноценного комплекса пока далеко.
Xiaomi MI Home. Развитая экосистема с множеством устройств и стандартов (особенно, с учетом другой продукции производителей, благодаря которой по набору компонентов обходит любого конкурента) позволяет решать любые задачи домашней автоматизации. Привлекательна по ценам, но пока не обладает полным набором функций, например, собственный голосовой помощник работает только на китайском языке.
  • Сторонние системы с закрытым кодом и разработкой на заказ. Отличный вариант для получения готового решения высокого качества, например Savant или Control4. Проблема в масштабируемости – для добавления компонентов и функций снова приходится обращаться к разработчикам и высокой стоимости.
  • Аналоги с открытым кодом, такие как OpenHAB и Majordomo. Первый обладает практически аналогичными возможностями и функциональностью, однако развивается медленнее и говорить о том же уровне интеграции не приходится. Второй пока еще не достиг необходимого для широкого внедрения уровня.

Вопросы и ответы

Можно ли настроить в Home Assistant голосовое управление?
Использует ли Home Assistant облачные сервисы?
Какие виртуальные машины используются для развертывания платформы?
В каких объемах необходимо знание Phyton для работы с HA?
Какой из веб-серверов использует платформа?

Автор статьи
Яковлев Алексей Сергеевич
Электрик с 20 летним стажем и богатым опытом
Написано статей
75
Помогла статья? Оцените её

Рекомендуем по теме

blank
Освещение
Светодиодная лампа с датчиком движения

Светодиодная лампа является экономным источником света, так как потребляет в пять раз меньше электроэнергии, чем лампочка накаливания. Модифицированный вариант данного […]

Читать далее
blank
Системы Умный дом
Умный дом Триколор: состав, функции и подключение

Умный дом Триколор – это система датчиков и устройств, которые помогают пользователю контролировать выполнение бытовых задач: управлять освещением и электрическими […]

Читать далее
Обсудим?
3
Подписаться
Уведомить о
guest
3 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Дима
Дима
1 месяц назад

Судя по написанному, Home Assistant – неплохая программная платформа. Функциональность у нее хорошая.

Александр Славин
Александр Славин
29 дней назад

Кто хорошо в этом разбирается, не составит труда ввести необходимые параметры. Но, скорее всего это не для рядовых обывателей.

Elena2
Elena2
27 дней назад

Не поняла, для подключения и программирования нужен компьютер или ноутбук? А может с помощью смартфона можно.

Можно ли настроить в Home Assistant голосовое управление?
На сайте представлены интеграции для подключения Google Assistant и Amazon Alexa, что делает возможным использование голосовых помощников. Проблемой для российского пользователя может стать исключительно английский язык для ассистента Амазон и не всегда корректная отработка Google.
Использует ли Home Assistant облачные сервисы?
Один из главный приоритетов HA – надежность и безопасность, поэтому всю систему можно построить в локальной сети без обмена в облаке. При необходимости задействовать облачные сервисы – не проблема, соответствующие интеграции на официальном сайте есть.
Какие виртуальные машины используются для развертывания платформы?
Список рекомендуемого софта приведен в описаниях установки для каждой ОС в разделе Getting Started.
В каких объемах необходимо знание Phyton для работы с HA?
Хотя большинство задач можно решить без написания кода, а исходники для большинства компонентов есть в сети, начальный, а лучше средний уровень владения языком необходимы.
Какой из веб-серверов использует платформа?
Платформа работает с лицензией Apache 2.0.