Практический гид · Home Assistant · Companion App
Уведомления Home Assistant: push на Android и iPhone, кнопки действий и диагностика
Как отправлять уведомления на телефон, различать обычные и критичные события, добавлять кнопки, показывать кадр с камеры и находить причину, по которой сообщение не пришло. С примерами YAML для Home Assistant и рекомендациями по безопасности.
Home Assistant создаёт событие, Companion App доставляет его на телефон через доступный канал.
Нажатие кнопки возвращает событие в Home Assistant, где его обрабатывает автоматизация.
Push зависит от телефона, сети, ОС и доставки; аварийная защита должна работать самостоятельно.
Принцип
Как работает доставка уведомлений Home Assistant
Уведомление начинается не в телефоне, а с события в системе. Например, binary_sensor.leak_bathroom изменил состояние, автоматизация отправила действие notify.mobile_app_…, а Companion App показал сообщение на экране смартфона.
Для удалённых push обычно используется инфраструктура мобильной ОС и сервиса доставки приложения. В локальной сети Home Assistant Companion App также умеет использовать Local Push через WebSocket при выполнении требований платформы. Эти способы нельзя считать абсолютно одинаковыми по требованиям к соединению и задержкам.
| Тип | Где появляется | Подходит для |
|---|---|---|
| Mobile push | Системные уведомления Android/iOS | Протечка, дверь, температура, состояние котла |
| Persistent notification | Интерфейс Home Assistant | Журнал событий, заметки и диагностика |
| Actionable notification | Системное уведомление с кнопками | Подтвердить просмотр, открыть панель, запустить некритичное действие |
| Live Activity / Live Update | Экран блокировки и системная область уведомлений | Наблюдение за длительным процессом на поддерживаемых устройствах |
Подготовка
Что нужно настроить на телефоне
- Установить официальное приложение Home Assistant Companion App и войти в свой Home Assistant.
- Разрешить приложению уведомления в настройках Android или iOS.
- Проверить, что телефон появился в Settings → Devices & services → Mobile App.
- Открыть Developer Tools → Actions и найти действие вида
notify.mobile_app_имя_телефона. - Отправить тестовое сообщение, затем повторить тест после отключения домашнего Wi-Fi.
Имя действия формируется из зарегистрированного Device ID. Оно не обязано совпадать с отображаемым именем человека. Если телефон переподключали к приложению, старое действие может перестать соответствовать новому устройству.
Первый запуск
Как отправить первое push-уведомление
Сначала проверьте само действие уведомления в Developer Tools → Actions: выберите notify.mobile_app_... и передайте title и message. Только после успешного теста создавайте автоматизацию.
alias: "Тест push-уведомления"
triggers:
- trigger: state
entity_id: input_boolean.test_push
to: "on"
actions:
- action: notify.mobile_app_phone_ivan
data:
title: "Home Assistant"
message: "Тестовое уведомление доставлено"
mode: singleСоздайте helper input_boolean.test_push, замените notify.mobile_app_phone_ivan на своё действие и переведите helper из off в on. Повторный переход в on без смены состояния не запустит trigger. Перед повторной проверкой верните helper в off.
Событие
Уведомление о протечке: минимальный рабочий сценарий
Для binary_sensor протечки типичны состояния on (обнаружена вода) и off. У отдельных интеграций значение может отличаться, поэтому сначала смотрите фактическое состояние в Developer Tools.
alias: "Протечка: сообщить на телефон"
triggers:
- trigger: state
entity_id: binary_sensor.leak_bathroom
to: "on"
actions:
- action: notify.mobile_app_phone_ivan
data:
title: "Внимание: датчик протечки"
message: "Проверьте санузел и состояние крана"
data:
tag: "leak_bathroom"
mode: singleВ примере отправляется только информация. Он не подменяет штатную автоматику перекрытия воды. Защита от протечек должна принимать необходимые решения локально, даже если Home Assistant или телефон недоступны.
Световые, климатические и противопротечные сценарии подробнее разобраны в статье Локальные сценарии Home Assistant.
Получатели
Как отправлять уведомления нескольким людям
Для семьи можно отправить два отдельных действия notify.mobile_app_..., либо использовать notification group. В небольшой системе отдельные действия проще диагностировать: видно, какой телефон получил уведомление и у какого возникла проблема.
| Вариант | Плюсы | Ограничение |
|---|---|---|
| Отдельное действие на каждый телефон | Понятная диагностика получателя | Повторение action в YAML |
| Notification group | Одна точка отправки | Нужно поддерживать список устройств |
| Persistent notification | Независимость от номера телефона | Пользователь увидит запись только в интерфейсе HA |
Не отправляйте одинаковые аварийные push на все зарегистрированные устройства, включая настенный планшет, старый смартфон и тестовые телефоны. Проверьте получателей и оставьте только актуальные устройства.
Порядок в уведомлениях
Как заменить старое уведомление и убрать его после события
Параметр tag позволяет обновлять ранее отправленное сообщение с тем же идентификатором. Например, «Протечка: обнаружена вода» не должна создавать новую запись при каждом повторении события. Когда проблема исчезла, можно отправить специальную команду clear_notification с тем же тегом.
alias: "Протечка устранена: убрать push"
triggers:
- trigger: state
entity_id: binary_sensor.leak_bathroom
to: "off"
actions:
- action: notify.mobile_app_phone_ivan
data:
message: "clear_notification"
data:
tag: "leak_bathroom"
mode: singleДля очистки должен использоваться тот же тег, который был у исходного уведомления. Возможности обновления и удаления отличаются между Android и iOS; на некоторых версиях системы очистка может не сработать, если приложение давно не использовалось.
Actionable
Как добавить в push кнопки «Проверил» и «Открыть датчик»
Actionable notification содержит кнопки, которые отправляют событие в Home Assistant либо открывают страницу приложения. На Android в одном уведомлении предусмотрено до трёх действий. На iOS практическое количество зависит от интерфейса ОС, поэтому обычно достаточно одной-двух кнопок.
alias: "Кнопки в уведомлении о протечке"
triggers:
- trigger: state
entity_id: binary_sensor.leak_bathroom
to: "on"
actions:
- action: notify.mobile_app_phone_ivan
data:
title: "Обнаружена вода"
message: "Откройте датчик или подтвердите просмотр"
data:
tag: "leak_with_actions"
actions:
- action: "ACK_LEAK_DEMO"
title: "Проверил"
- action: "URI"
title: "Открыть датчик"
uri: "entityId:binary_sensor.leak_bathroom"
mode: singleКнопка URI открывает карточку датчика в приложении; кнопка ACK_LEAK_DEMO отправляет событие mobile_app_notification_action. Нажатие кнопки «Проверил» не перекрывает воду и не снимает сигнал тревоги.
Событие
Как обработать нажатие кнопки уведомления
После нажатия кнопки с пользовательским action ID Companion App отправляет событие mobile_app_notification_action. Следующая автоматизация слушает конкретное значение action и создаёт запись внутри Home Assistant.
alias: "Кнопка Проверил: записать подтверждение"
triggers:
- trigger: event
event_type: mobile_app_notification_action
event_data:
action: "ACK_LEAK_DEMO"
actions:
- action: persistent_notification.create
data:
title: "Подтверждение от телефона"
message: "Пользователь нажал кнопку уведомления"
mode: singleИдентификатор ACK_LEAK_DEMO специально постоянный, чтобы упростить пример. В серьёзных сценариях используйте уникальный action ID для каждой отправки, например на основе context.id, иначе кнопка старого уведомления может совпасть с обработчиком нового события. Для связки с одним уведомлением можно использовать wait_for_trigger, таймаут и дополнительную проверку action ID.
Не путайте факт нажатия «Проверил» с проверкой на месте: Home Assistant способен подтвердить только событие нажатия.
Android
Приоритетные уведомления Android: priority, ttl, channel
Android управляет звуком и видимостью сообщений через notification channels. Если задать channel, приложение создаст соответствующую категорию, а затем пользователь сможет назначить ей звук, вибрацию и другие системные параметры.
Параметры priority: high и ttl: 0 описаны в документации Companion App как способ ускорить попытку доставки push на Android при определённых состояниях энергосбережения. Они не дают гарантии доставки при отсутствии сети.
alias: "Android: приоритетное уведомление"
triggers:
- trigger: state
entity_id: binary_sensor.water_leak_kitchen
to: "on"
actions:
- action: notify.mobile_app_android_phone
data:
title: "Протечка на кухне"
message: "Проверьте датчик и воду"
data:
ttl: 0
priority: high
channel: "Аварийные события"
mode: singleПосле первой отправки откройте системные настройки уведомлений Android для Home Assistant и проверьте канал «Аварийные события». На Android 8+ системный уровень важности канала и разрешения пользователя влияют на итоговое поведение. При необходимости можно использовать alarm_stream, но злоупотреблять им для обычных событий не стоит.
iPhone
Time Sensitive и Critical Alerts на iPhone
iOS различает несколько уровней вмешательства: обычные, Time Sensitive и Critical Alerts. Последний тип предназначен для редких действительно важных событий, например дыма, утечки воды или срабатывания охранного датчика. Для критических оповещений требуется разрешение, а поведение зависит от настроек устройства.
alias: "iPhone: критическое уведомление"
triggers:
- trigger: state
entity_id: binary_sensor.water_leak_kitchen
to: "on"
actions:
- action: notify.mobile_app_iphone
data:
title: "Внимание: протечка"
message: "Проверьте кухню"
data:
push:
sound:
name: default
critical: 1
volume: 1.0
mode: singleПример задаёт системный звук с признаком critical: 1 и громкостью 1.0. Используйте его только на iOS, где критические уведомления разрешены. Даже они не могут доставить сигнал при разряженном телефоне, выключенной сети или отказе инфраструктуры.
Камеры
Push с фотографией камеры или входной двери
Companion App поддерживает вложения: фотографию, видео и другие подходящие форматы. Наиболее безопасный путь для снимков - media_source с адресом вида /media/local/front_door.jpg. Такой путь использует авторизованный доступ через Home Assistant, в отличие от публично доступной папки /local/.
alias: "Уведомление с фотографией входа"
triggers:
- trigger: state
entity_id: binary_sensor.front_door
to: "on"
actions:
- action: notify.mobile_app_iphone
data:
title: "Открыта входная дверь"
message: "Посмотреть снимок входной камеры"
data:
image: "/media/local/front_door.jpg"
url: "/dashboard-security/entrance"
mode: singleПеред использованием примера необходимо реально создать файл /media/front_door.jpg или настроить отдельное действие camera.snapshot, которое сохраняет снимок по этому пути. Без файла изображение не появится. Для просмотра снаружи телефон должен иметь доступ к Home Assistant; вложение должно быть доступно в момент загрузки.
Если камеры управляются Frigate, сначала настройте локальную видеоаналитику и доступ к снимкам: Frigate NVR: настройка видеонаблюдения и распознавания объектов.
Соединение
Будут ли приходить уведомления без интернета
Не все уведомления требуют одинакового маршрута. При наличии интернета Companion App обычно использует push-инфраструктуру мобильной платформы. Локальный push может использовать WebSocket между телефоном и Home Assistant, если устройство находится во внутренней сети и Local Push доступен и активен.
| Условия | Ожидаемый результат |
|---|---|
| HA работает, домашний интернет есть, телефон онлайн | Обычный удалённый push должен быть возможен |
| HA работает, интернет пропал, телефон дома в той же LAN | Local Push может работать, если включён и поддерживается |
| HA работает, интернет пропал, телефон вне дома | Удалённая доставка push может быть недоступна |
| HA выключен | Новые автоматизации и новые отправки от HA не выполняются |
| Телефон выключен или разряжен | Невозможно гарантировать отображение уведомления |
Вариант Local Push не означает, что любое сообщение обязательно приходит «совсем без облака» при любых условиях. Нужно проверить реальный статус в Companion App, внутренний адрес и доступность WebSocket.
Планирование отказоустойчивости разобрано в статье Что должно работать без сервера Home Assistant.
Информация
Приватность push и ограничение количества сообщений
В стандартной облачной схеме доставки приложение использует инфраструктуру push-уведомлений мобильной платформы. По официальной документации Companion App содержимое уведомлений не хранится на удалённых серверах Home Assistant, но не следует считать обычные push сквозным шифрованием от всех посредников.
Документация указывает лимит 500 удалённых push-уведомлений за сутки на устройство; он может меняться, поэтому при интенсивных сценариях проверяйте текущую редакцию. Local Push, критические оповещения и некоторые служебные команды учитываются отдельно. Массовая отправка от датчика каждые несколько секунд быстро создаст бесполезный шум.
Контроль
Как проверить получение push: confirmation и событие приложения
В Companion App есть режим confirmation: true: при получении уведомления устройство может отправить событие mobile_app_notification_received обратно в Home Assistant. Это полезно для диагностики канала доставки.
alias: "Тест события о получении push"
triggers:
- trigger: state
entity_id: input_boolean.test_push
to: "on"
actions:
- action: notify.mobile_app_android_phone
data:
title: "Проверка доставки"
message: "Событие получения можно увидеть в Events"
data:
confirmation: true
mode: singleОткройте Developer Tools → Events, начните слушать mobile_app_notification_received, затем запустите тест. Если событие пришло, телефон отчитался о получении; это не является гарантией, что пользователь прочитал сообщение или выполнил действие. Такой обмен также зависит от доступности сервера.
Инженерная логика
Как сделать уведомления полезными и не пропускать действительно важное
Информация: завершилась стирка. Предупреждение: превышен порог температуры. Тревога: обнаружена вода или дым.
Используйте переход состояния, tag, разумные задержки и минимальный интервал повторов.
Не очищайте журнал тревоги без подтверждения нормализации датчика и исправности связи.
Протечки, дым, газ и иные опасные события требуют локальных извещателей и исполнительной защиты.
Почему нельзя повторять тревогу бесконечно каждую секунду
Повторные push уменьшают заметность важных уведомлений, быстро расходуют дневной лимит и могут перегружать телефон. Если требуется повтор до подтверждения, делайте ограниченное число попыток по расписанию с проверкой текущего состояния датчика. Для особо важных сигналов продумывают другой канал связи и местную сигнализацию.
Почему важно учитывать unavailable
binary_sensor.leak_bathroom = unavailable не означает off. При потере связи нужно отдельно сообщать о недоступности датчика, не объявляя событие устранённым. Подробно об обработке неизвестных состояний: Jinja и availability в Home Assistant.
Диагностика
Почему уведомления Home Assistant не приходят на телефон
Начните с ручного notify. Запустите действие в Developer Tools. Если даже прямой вызов не работает, проблема не в trigger датчика.
Проверьте Device ID. После переустановки Companion App могло измениться имя notify.mobile_app_....
Проверьте ОС. Разрешены ли уведомления, не отключён ли нужный Android channel, есть ли Critical Alerts на iOS.
Сравните Wi-Fi и мобильную сеть. Если дома работает, а снаружи нет, проверьте push-канал и remote access для действий/вложений.
Проверьте автоматизацию. Trace покажет, запустилась ли она, прошла ли условия и какой action выполнила.
Проверьте настройки энергосбережения. Особенно на Android с агрессивным ограничением фоновой работы.
Проверьте тег. Если сообщения заменяют друг друга, это может быть ожидаемым поведением tag.
Проверьте логи и лимит отправки. Не достигнут ли дневной лимит, нет ли ошибки приложения или integration.
Протестируйте action button. Начните слушать mobile_app_notification_action и нажмите кнопку вручную.
Сделайте тест после перезагрузки. Проверьте, сохранился ли получатель и не пропала ли регистрация Companion App.
Общая логика отладки triggers и actions есть в материале Автоматизации Home Assistant: триггеры, условия и Trace. При ошибках после обновления: Home Assistant после обновления: unavailable.
Дополнительно
Что ещё поддерживают уведомления Companion App
Открыть dashboard из push
Параметр url или кнопка URI может открыть конкретный dashboard, view либо карточку entity. Адрес должен соответствовать реально существующей панели. Основы организации интерфейса: Dashboard Home Assistant.
Live Activities и Live Updates
Поддерживаемые версии Companion App и Home Assistant могут показывать долгое событие на экране блокировки: зарядку электромобиля, ход стирки или другой процесс. В официальной документации указано требование Home Assistant Core 2026.7 и выше. Это не прямая замена обычного push, а отдельная функция, которую нужно настраивать под конкретный сценарий.
Уведомления по геолокации
Можно отправлять сообщение при возвращении человека в домашнюю зону или при оставленном включённом свете после выхода. Чтобы не получить ложный «все ушли», сначала настройте Person, Zones, GPS и Wi-Fi.
Интеграции и дополнительные возможности
Некоторые расширения предлагают иные каналы сообщений. Но не стоит устанавливать стороннюю integration только ради того, чтобы отправить обычный push. Если всё же используется HACS, предварительно оцените репозиторий и совместимость: HACS: интеграции и безопасные обновления.
Применение
Какие уведомления имеют практический смысл в квартире и доме
Сразу отправить уведомление, а перекрытие воды выполнить независимым штатным контроллером.
При резервном питании сервера и сети сообщить о пропадании напряжения; без питания HA сообщение не отправит.
Сообщать о длительном отклонении температуры или ошибке связи, но не заменять защиту котла.
Получить сообщение и открыть панель; не разблокировать замок одной кнопкой в push.
После завершения цикла один информационный push, без повторов каждую минуту.
Сообщить о перегреве или недоступности устройства, но предусмотреть зависимость от питания маршрутизатора.
Для удалённой настройки имеет смысл заранее составить перечень событий, получателей, желаемой срочности, условий отмены и способов проверки доставки. Такой подход защищает от хаотического набора automations.
Перелинковка
Материалы, которые помогут настроить систему полностью
Вопросы и ответы
FAQ по уведомлениям Home Assistant
Как отправить первое уведомление Home Assistant на телефон?
Установить Companion App, разрешить уведомления, найти notify.mobile_app_имя_устройства в Developer Tools → Actions и отправить сообщение с message.
Почему нет notify.mobile_app для телефона?
Проверьте регистрацию Companion App и разрешения системы. Откройте приложение, затем перезапустите Home Assistant и повторите поиск действия.
Можно ли настроить push без YAML?
Да. В визуальном редакторе автоматизаций выберите trigger, затем действие отправки уведомления нужному устройству и заполните текст.
Почему push работает по Wi-Fi, но не за пределами дома?
Проверьте мобильные push-разрешения, сеть и регистрацию устройства. Для кнопок и вложений нужен доступ Companion App к Home Assistant; Local Push сам по себе не обеспечивает удалённую доставку.
Что такое actionable notification?
Это уведомление с кнопками, которые открывают страницу или отправляют событие mobile_app_notification_action в Home Assistant.
Можно ли нажатием кнопки в push выключить свет?
Технически возможно, но действия должны иметь понятные ограничения и дополнительную проверку при риске для безопасности. Для замков и охраны одного push недостаточно.
Как очистить уведомление после устранения протечки?
Отправьте сообщение clear_notification с тем же tag, что был использован при создании push. На iOS/Android могут действовать системные ограничения очистки.
Почему уведомления на Android приходят с задержкой?
Причиной может быть энергосбережение, Doze, важность канала или отсутствие сети. Проверьте permissions, channel, priority и ttl.
Можно ли обойти беззвучный режим на iPhone?
При наличии разрешения Critical Alerts и корректной настройке критических сообщений iOS может воспроизводить звук независимо от обычного беззвучного режима. Доставка всё равно не гарантирована.
Что делать, если кнопка уведомления не срабатывает?
Слушайте mobile_app_notification_action в Developer Tools → Events, проверьте action ID и доступность HA с телефона в момент нажатия.
Можно ли отправить фотографию с камеры?
Да, используйте image или другое поддерживаемое вложение. Файл должен существовать и быть доступен приложению; для приватных фото предпочтительнее media_source.
Работает ли push полностью без интернета?
Local Push может работать внутри LAN через WebSocket, если поддерживается и активен. Удалённый push при отключённом интернете не следует считать доступным.
Сколько push можно отправить за сутки?
На момент проверки документация Companion App указывает лимит 500 удалённых push в день на устройство; отдельные виды сообщений учитываются иначе. Проверяйте актуальные лимиты.
Подтверждение получения означает, что пользователь прочитал сообщение?
Нет. mobile_app_notification_received подтверждает событие на устройстве, но не факт прочтения, понимания или выполнения действия.
Можно ли использовать уведомления как единственную пожарную сигнализацию?
Нет. Push зависит от сети, телефона, ОС и Home Assistant. Нужны отдельные соответствующие задачам средства локального обнаружения и оповещения.
Как избежать десятков одинаковых уведомлений от датчика?
Используйте trigger по переходу состояния, tag, ограничение повторов и продуманную политику событий. Не отправляйте сообщение при каждом опросе sensor.
Документация
Официальные источники и актуальность
Материал подготовлен по официальной документации Home Assistant и Companion App, актуальной на октябрь 2026 года. Реальные названия пунктов меню и возможности отдельных устройств зависят от версии приложения, Android/iOS и Home Assistant Core.
Настройка системы
Нужны надёжные уведомления о протечке, питании, котле или камерах?
Можно помочь разобраться с устройствами, создать понятные сценарии, настроить получателей, каналы и диагностику отправки. Начать можно с удалённой консультации или настройки существующего Home Assistant.
Онлайн-настройка умного дома или работы с умным домом в Туле и Тульской области.
