Home Assistant Companion App — мобильное приложение для умного дома

Home Assistant Companion App — мобильное приложение для управления умным домом. Поддержка iOS и Android, установка и подключение к серверу, безопасная работа в сети и обзор основных возможностей приложения.

В Telegram-канале @iot7m_ru публикуются практические заметки по Home Assistant: опыт эксплуатации устройств, интеграция с различным оборудованием, создание дашбордов и разбор типовых проблем. Многие материалы основаны на реальных запросах и консультациях. Подпишитесь на @iot7m_ru, если используете Home Assistant на практике.

Home Assistant Companion App — мобильное приложение для умного дома

Введение

В мобильном приложении Home Assistant сохранены все ключевые достоинства веб-интерфейса: пользователи могут управлять устройствами, запускать сценарии и просматривать статус сенсоров так же, как в браузере. Интерфейс мобильного приложения корректно масштабируется под экран смартфона или планшета, обеспечивая удобное отображение информации и элементов управления. При этом адаптивность определяется используемыми дашбордами: одни интерфейсы изначально рассчитаны на мобильные устройства, другие требуют отдельной настройки или использования альтернативных представлений. Таким образом, удобство работы в мобильном приложении напрямую зависит от того, насколько дашборды и контент подготовлены для использования на небольших экранах.

Поддерживаемые платформы и устройства

Мобильное приложение Home Assistant Companion App доступно для iOS и Android и поддерживает смартфоны и планшеты на этих платформах. Для расширения сценариев управления предусмотрена интеграция с умными часами (Apple Watch и Wear OS), что позволяет получать уведомления и запускать действия прямо с запястья. Также приложение поддерживает работу с автомобилями через Apple CarPlay и Android Auto и может использоваться на телевизорах под управлением Android TV для базового контроля умного дома. Companion App обеспечивает доступ к локальным ресурсам, геолокации, датчикам телефона и push-уведомлениям. Приложение доступно для установки из нескольких источников: через App Store для iOS, Google Play для Android, а также в виде минимальной версии для Android через каталог F-Droid. Дополнительно Home Assistant Companion App доступно для установки на устройства виртуальной реальности через платформу SideQuest.

Для компьютеров под управлением macOS существует отдельное приложение Home Assistant — десктопная версия, использующая тот же веб-интерфейс, но запускаемая как системное приложение. Оно обеспечивает более быстрый доступ к умному дому и интеграцию с возможностями macOS, включая системные уведомления. Для Windows и Linux отдельные десктопные приложения не предусмотрены, и управление Home Assistant на этих платформах выполняется через браузер.

Установка и первичное подключение

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

Приложение Home Assistant для Android доступно в двух вариантах — полной и минимальной версиях. Полная версия распространяется через Google Play и использует сервисы Google для push-уведомлений и фоновой работы. Минимальная версия доступна через F-Droid, не зависит от Google Play Services и подходит для устройств без сервисов Google или для пользователей, ориентированных на приватность. Установка приложения выполняется стандартным способом через выбранный магазин приложений.

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

Home Assistant Companion App — это официальное приложение, доступное в App Store. Установка выполняется стандартным способом через магазин приложений Apple и не требует дополнительных действий. После установки приложение готово к запуску и первичной настройке подключения к серверу Home Assistant.

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

Home Assistant для macOS — это официальное десктопное приложение, которое устанавливается как системное приложение. Оно распространяется отдельно от мобильных магазинов и устанавливается стандартным способом для macOS. После установки приложение запускается как отдельное приложение и используется для быстрого доступа к серверу Home Assistant с компьютера.

Первое подключение к серверу

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

После выбора сервера выполняется авторизация с использованием учётной записи Home Assistant. Затем приложение предлагает задать имя устройства, настроить параметры безопасности соединения (подробнее описаны в следующем разделе) и запросить необходимые разрешения, включая доступ к геолокации. Только после завершения этих шагов подключение считается завершённым, и приложение становится готовым к полноценной работе.

Безопасное подключение и работа в сети

Для безопасного соединения мобильного приложения с сервером Home Assistant рекомендуется использовать HTTPS с действительным SSL‑сертификатом. Если подключение выполняется по незащищённому HTTP (например, по локальному IP‑адресу), в мобильном приложении необходимо выбрать соответствующий уровень безопасности соединения.

Доступны два варианта:

  • Наиболее безопасный (рекомендуется). Разрешает подключение по HTTP только при нахождении устройства в указанной домашней сети. В качестве домашней сети указывается Wi‑Fi SSID, который приложение использует для определения, находитесь ли вы дома. При выходе за пределы этой сети приложение автоматически требует использования защищённого соединения; доступ к серверу и фоновая работа возобновляются только после переключения на безопасный режим подключения. Для работы этого режима требуется разрешение на доступ к геолокации, которое используется для определения сетевого окружения.
  • Менее безопасный. Позволяет использовать незащищённое HTTP‑соединение в любой сети без проверки местоположения. Этот вариант не рекомендуется, так как при подключении через публичные или недоверенные сети существует риск перехвата передаваемых данных.

Выбранный уровень безопасности можно изменить позже в настройках мобильного приложения: Настройки → Мобильное приложение → выбранный сервер. В этих же настройках указываются внутренний адрес сервера Internal URL и внешний адрес сервера External URL. Хорошей практикой считается использование HTTPS‑адреса для внешнего доступа к Home Assistant и HTTP‑адреса для подключения из внутренней локальной сети, в сочетании с наиболее безопасным режимом подключения.

Настройка HTTPS может быть выполнена разными способами: с использованием встроенных возможностей Home Assistant, через обратный прокси или средствами сетевого оборудования. Один из вариантов для роутеров Keenetic описан в статье Удалённый доступ к Home Assistant через KeenDNS (Direct и Cloud).

Работа в локальной сети без интернета

При работе без доступа к интернету мобильное приложение Home Assistant продолжает управлять умным домом в пределах локальной сети: приложение определяет подключение к домашней Wi‑Fi сети по SSID и при совпадении использует внутренний URL сервера вместо внешнего, что позволяет обращаться к Home Assistant напрямую, без облачных сервисов и внешних соединений. Для корректной работы необходимо правильно настроить внутренний и внешний URL в конфигурации Home Assistant: внутренний URL используется внутри локальной сети, а внешний — для удалённого доступа. Если маршрутизатор поддерживает NAT loopback (hairpin NAT), обращения к внешнему адресу из домашней сети будут корректно перенаправляться внутрь; при отсутствии этой функции разделение URL становится особенно важным.

Управление несколькими серверами Home Assistant

Для управления несколькими серверами Home Assistant мобильное приложение Home Assistant Companion App позволяет добавлять дополнительные подключения. Каждый сервер хранится отдельно и использует собственные параметры подключения, включая внутренний и внешний URL. Все настройки Companion App выполняются непосредственно на смартфоне и недоступны из веб-интерфейса Home Assistant: здесь задаются параметры подключения серверов, поведение приложения, работа с сетью, разрешения и другие мобильные возможности.

Чтобы добавить новый сервер, откройте в приложении раздел Настройки → Мобильное приложение и выберите пункт Добавить сервер. Далее выполните первичное подключение и настройку аналогично добавлению первого сервера: приложение попытается автоматически обнаружить сервер в локальной сети, при необходимости предложит ввести адрес вручную и завершить подключение через авторизацию.

После добавления нескольких серверов между ними можно быстро переключаться без повторной авторизации. На iOS это поддерживается жестом — смахивание тремя пальцами влево или вправо на главном экране приложения. Это удобно при работе с несколькими локациями, например квартирой и загородным домом.

Расширенные уведомления и интерактивное взаимодействие

Мобильное приложение Home Assistant поддерживает расширенные уведомления с возможностью интерактивного взаимодействия. Оно использует сервисы push-уведомлений, обеспечивая доставку уведомлений в реальном времени, при этом весь трафик шифруется с использованием SSL. Приложение учитывает ограничения по количеству уведомлений и предоставляет пользователю контроль над статистикой доставки. Содержание уведомлений не хранится на удалённых серверах, что повышает приватность и безопасность использования.

Ниже приведён пример скрипта Home Assistant, который одновременно отправляет уведомление в виде постоянного системного уведомления в интерфейсе Home Assistant и на мобильное устройство. Скрипт поддерживает режим critical: для iOS такие уведомления доставляются даже в режиме «Не беспокоить» и сопровождаются принудительным звуковым и вибросигналом. Также поддерживается механизм перезаписи уведомлений — при использовании одного и того же tag новое уведомление заменяет предыдущее, что удобно для отображения актуального состояния системы.


# --------------------------------------------------------------------
# EXAMPLES:
#
# Simple notification:
# - service: script.send_notice_all
#   data:
#     title: "Lighting"
#     message: "Lights turned off"
#     tag: "lights_state"
#
# Critical notification:
# - service: script.send_notice_all
#   data:
#     title: "Heating System"
#     message: "Pressure is below normal!"
#     tag: "heating_pressure_low"
#     critical: true
#
# Updatable notification (same tag replaces old one):
# - service: script.send_notice_all
#   data:
#     title: "UPS"
#     message: "Mode: Bypass"
#     tag: "ups_state"
# --------------------------------------------------------------------
send_notice_all:
  alias: Send notice (persistent + mobile)
  description: Send notifications to both phones and persistent_notification
  mode: queued
  fields:
    title:
      description: Notification title
      example: "Smart Home"
    message:
      description: Notification message
      example: "Lights turned off"
    critical:
      description: Critical notification (true = critical push)
      example: true
      default: false
    tag:
      description: Tag to group/replace notifications
      example: "lights_state"
      default: "general"
  sequence:
    - variables:
        v_title: "{{ title | default('Smart Home') }}"
        v_message: "{{ message | default('') }}"
        v_tag: "{{ tag | default('general') }}"
        v_critical: "{{ critical | default(false) }}"
    # --- Persistent notification (updated by tag) ---
    - service: persistent_notification.create
      data:
        title: "{{ v_title }}"
        message: "{{ v_message }}"
        notification_id: "{{ v_tag }}"
    # --- Push notification ---
    - choose:
        - conditions: "{{ v_critical }}"
          sequence:
            - service: notify.mobile_app_artem
              data:
                title: "{{ v_title }}"
                message: "{{ v_message }}"
                data:
                  push:
                    badge: 1
                    interruption-level: critical
                  tag: "{{ v_tag }}"
        - conditions: []
          sequence:
            - service: notify.mobile_app_artem
              data:
                title: "{{ v_title }}"
                message: "{{ v_message }}"
                data:
                  push:
                    badge: 1
                  tag: "{{ v_tag }}"

Отдельно про доставку уведомлений в Telegram можно прочитать в статье Уведомления из Home Assistant в Telegram.

Геолокация и сценарии на основе зон

Приложение поддерживает работу с геолокацией и зонами (zones). Зоны — это виртуальные области с заданным радиусом вокруг определённого местоположения, например дома или работы. Определение местоположения выполняется с использованием GPS, Wi-Fi и сотовых сетей с учётом энергопотребления устройства.

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

Заключение

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

Полезные ссылки

  • Home Assistant Companion App — официальная документация по мобильному приложению Home Assistant.