Smart Home AssistantNewsletter

Home Assistant Notifications: Complete Guide

SepehrBy Sepehr· 19/06/2026· 6 min read
Home Assistant Notifications: Complete Guide

Home Assistant can do a great deal on its own — turning lights off, locking doors, adjusting the heating — but the moment something needs your attention, it has to tell you. Notifications are how HA bridges the gap between what happens at home and what you see on your phone, laptop, or any device you happen to be carrying. This guide walks through every notification channel, from the fastest (Companion app push) to the most resilient (email fallback), and shows you exactly how to wire them up in automations.

How Home Assistant Notifications Work

All notifications in Home Assistant flow through the notify domain. Each integration you configure — the mobile app, Telegram, SMTP — registers itself as a notify service, which you then call from an automation or script. The service name follows a consistent pattern: notify.<integration_name>.

notify.notify vs specific services. The generic notify.notify shorthand exists but is unreliable — the HA docs warn that it targets the first notify service the system finds, which may not be the one you want. Always call a specific service such as notify.mobile_app_your_phone or notify.telegram_main.

The basic structure of any notify call in an automation action looks like this:

action: notify.mobile_app_your_phone
data:
  title: "Front door open"
  message: "The front door has been open for 5 minutes."

Everything else — images, buttons, sounds, channels — sits inside a nested data: block, which varies by integration.

Push Notifications via the Companion App

The Home Assistant Companion app for iOS and Android is the most popular notification channel for UK users because it requires no third-party account and the app doubles as a presence-detection sensor. Once you log in to your HA instance from the app, a notify service is automatically created: notify.mobile_app_<device_id>, where the device ID is your device name with spaces replaced by underscores.

To find your exact service name, go to Settings → Devices & Services → Mobile App and look at the device entry, or check Developer Tools → Actions and type notify.mobile_app — HA will autocomplete your registered devices.

Sending a Basic Push Notification

action: notify.mobile_app_sepehrs_iphone
data:
  title: "Washing machine done"
  message: "The cycle finished 2 minutes ago."

Notifying Multiple Devices

Rather than calling each device individually, create a notification group in configuration.yaml:

notify:
  - name: all_phones
    platform: group
    services:
      - action: mobile_app_sepehrs_iphone
      - action: mobile_app_partners_pixel

Then call notify.all_phones from any automation. This is covered in more detail in the automations guide.

Notification Tagging

Use a tag to replace an existing notification rather than stacking duplicates. Useful for door-open alerts that update when the door closes:

action: notify.mobile_app_sepehrs_iphone
data:
  message: "Front door is open"
  data:
    tag: front_door_status

Sending another notification with the same tag overwrites the first one on the device.

Actionable Notifications

Actionable notifications add tappable buttons to a push alert. When a user taps a button, Home Assistant fires a mobile_app_notification_action event, which a separate automation can listen for and act on. This is how you build one-tap door unlocking, alarm silencing, or scene activation — all from a lock screen.

action: notify.mobile_app_sepehrs_iphone
data:
  message: "Motion detected at the front door."
  data:
    actions:
      - action: "UNLOCK_DOOR"
        title: "Unlock door"
      - action: "IGNORE"
        title: "Ignore"

Then create a responding automation:

trigger:
  - platform: event
    event_type: mobile_app_notification_action
    event_data:
      action: UNLOCK_DOOR
action:
  - action: lock.unlock
    target:
      entity_id: lock.front_door

Platform limits. Android supports up to three action buttons per notification. iOS supports around ten before scrolling issues arise, and additionally allows text-reply inputs via textInputButtonTitle and textInputPlaceholder — useful for sending a quick message to a smart display or intercom.

Critical Alerts — Bypassing Do Not Disturb

Standard push notifications are silenced when your phone is on Do Not Disturb or muted. For smoke alarms, CO detectors, flood sensors, or security breaches, that is not acceptable. Both iOS and Android support critical-priority notifications that override these settings.

iOS Critical Alerts

On iOS, critical alerts appear at the top of the lock screen above all other notifications and play a sound even when the phone is muted or DND is active. They require iOS 12 or later.

action: notify.mobile_app_sepehrs_iphone
data:
  title: "Smoke alarm triggered"
  message: "Kitchen smoke detector activated."
  data:
    push:
      sound:
        name: "default"
        critical: 1
        volume: 1.0

Android Critical Alerts

On Android, set priority: high and ttl: 0 (time-to-live zero) to force immediate delivery. Enabling the alarm_stream channel ensures the sound plays regardless of ringer mode:

action: notify.mobile_app_partners_pixel
data:
  title: "Smoke alarm triggered"
  message: "Kitchen smoke detector activated."
  data:
    ttl: 0
    priority: high
    channel: alarm_stream

These critical alerts pair naturally with an alarm panel — the panel triggers the automation, the automation fires the critical notification.

Persistent Notifications (Dashboard Panel)

Persistent notifications appear in the Home Assistant web interface sidebar and stay there until manually dismissed. They are ideal for non-urgent items that need acknowledgement — low battery warnings, routine maintenance reminders, or update notices.

action: notify.persistent_notification
data:
  title: "Filter replacement due"
  message: "The air purifier filter is due for replacement."

You can also create and dismiss persistent notifications using dedicated services:

# Create with a specific ID so you can dismiss it later
action: persistent_notification.create
data:
  notification_id: filter_reminder
  title: "Filter replacement due"
  message: "The air purifier filter is due for replacement."

# Dismiss it when resolved
action: persistent_notification.dismiss
data:
  notification_id: filter_reminder

Persistent notifications require no external accounts or app installs, making them a reliable fallback for anyone who accesses HA primarily from a browser or local dashboard.

Telegram Bot Notifications

Telegram is widely used by UK Home Assistant enthusiasts because it works reliably over any internet connection, supports rich formatting (bold, code blocks, images), and does not require Apple or Google push infrastructure. The Telegram integration guide covers the full setup in detail, but the essentials are:

  1. Open @BotFather in Telegram and send /newbot to create a bot and receive your API token.
  2. Obtain your personal chat ID by messaging @getidsbot and noting the ID it returns.
  3. In HA, go to Settings → Devices & Services → Add Integration and search for Telegram Bot. Choose Polling (recommended for home networks without a public IP) and enter your API token and chat ID.

HA then registers a notify service. Send a message with:

action: notify.telegram
data:
  message: "Garage door has been open for 10 minutes."

Note: As of HA 2025.7, the legacy telegram notify platform is marked for deprecation; configure new instances via the UI integration rather than manual configuration.yaml entries.

Email Notifications via SMTP

Email is slower than push or Telegram but useful when you want a written record, need to reach someone who does not have the app installed, or want to send notification digests on a schedule. HA's SMTP integration supports Gmail, Outlook, and any standard mail provider.

Add the following to configuration.yaml:

notify:
  - name: email_alerts
    platform: smtp
    server: smtp.gmail.com
    port: 587
    encryption: starttls
    username: "your.address@gmail.com"
    password: "YOUR_APP_PASSWORD"
    sender: "your.address@gmail.com"
    recipient:
      - "recipient@example.com"

For Gmail, use port 587 with STARTTLS and an App Password (generated in your Google Account security settings) rather than your regular password. App Passwords require 2-Step Verification to be enabled on your Google account.

Call the notifier from an automation:

action: notify.email_alerts
data:
  title: "Weekly home summary"
  message: "Your home ran 3 automations this week. Nothing unusual detected."

Using Notify in Automations — Practical Examples

Below are three real-world patterns that cover the majority of notification use cases.

1. Door Left Open Alert

alias: Front door open alert
trigger:
  - platform: state
    entity_id: binary_sensor.front_door
    to: "on"
    for: "00:05:00"
action:
  - action: notify.mobile_app_sepehrs_iphone
    data:
      title: "Front door open"
      message: "The front door has been open for 5 minutes."
      data:
        tag: front_door_open
        actions:
          - action: IGNORE
            title: "Got it"

2. Security Camera Motion — Critical Alert

alias: Camera motion critical alert
trigger:
  - platform: state
    entity_id: binary_sensor.driveway_camera_motion
    to: "on"
condition:
  - condition: time
    after: "22:00:00"
    before: "07:00:00"
action:
  - action: notify.mobile_app_sepehrs_iphone
    data:
      title: "Motion detected"
      message: "Movement on the driveway camera."
      data:
        push:
          sound:
            name: default
            critical: 1
            volume: 1.0

3. Boiler Fault — Multi-channel Alert

alias: Boiler fault alert
trigger:
  - platform: state
    entity_id: binary_sensor.boiler_fault
    to: "on"
action:
  - action: notify.all_phones
    data:
      title: "Boiler fault"
      message: "The boiler has reported a fault. Check the display."
  - action: notify.telegram
    data:
      message: "BOILER FAULT detected at {{ now().strftime('%H:%M') }}."

Sending to multiple channels simultaneously is a good resilience strategy — if your phone is out of battery, Telegram on a laptop still gets the message.

Notification Troubleshooting

Service not found. If HA cannot find your notify service, the integration may not have registered properly. Check Settings → Devices & Services to confirm the integration is active and restart HA if needed.

Companion app push not arriving. Ensure the app has notification permissions in your phone's system settings. On iOS, check Settings → Home Assistant → Notifications. On Android, check Settings → Apps → Home Assistant → Notifications.

Telegram messages not sending. If you configured Telegram via configuration.yaml on HA 2025.7+, migrate to the UI integration. Check that the polling bot can reach api.telegram.org — on some routers, this requires DNS or firewall adjustments.

SMTP email not delivering. Verify that your app password is current (Google revokes them if 2-Step Verification lapses). Test the SMTP connection by sending a test notification from Developer Tools → Actions. Check spam folders on the first delivery.

Critical alerts silenced. On iOS, critical alerts require explicit permission the first time — you will see a system prompt asking whether to allow them. On Android, ensure the notification channel is set to alarm_stream and that the app has Override Do Not Disturb permission granted in system settings.

For deeper integration with the mobile app — presence detection, location tracking, and sensor data — see the mobile app guide.

Frequently asked questions

How do I send a Home Assistant notification to multiple phones?
Create a notification group in configuration.yaml using the group platform, list each device's mobile_app service name, then call the group service (e.g. notify.all_phones) from your automations. This sends the same message to every device in the group simultaneously.
Can Home Assistant notifications bypass Do Not Disturb?
Yes. On iOS, add push.sound.critical: 1 to the notification data block — this triggers an iOS Critical Alert that sounds even when the phone is muted or on DND. On Android, set priority: high, ttl: 0, and use the alarm_stream channel. Both methods require the Home Assistant Companion app to be installed.
What is the difference between notify.notify and notify.mobile_app_xxx?
notify.notify is a generic shorthand that targets whichever notify service HA finds first — it may not reach your phone. Always use the specific service name such as notify.mobile_app_your_device to ensure messages go to the correct destination.
Do I need a public IP address to use Home Assistant Telegram notifications?
No. Use the Polling bot type when adding the Telegram Bot integration in HA — polling reaches out to Telegram's servers rather than waiting for incoming webhooks, so it works on standard home broadband without port forwarding or a static IP.

Sources

Sources verified 2026-06-19

  1. Home Assistant — Notify Integration — Home Assistant Docs
  2. Home Assistant Companion Docs — Notifications — Basic Setup
  3. Home Assistant Companion Docs — Actionable Notifications
  4. Home Assistant Companion Docs — Critical Notifications
  5. Home Assistant — SMTP Integration — Home Assistant Docs
  6. Home Assistant — Telegram Bot Integration — Home Assistant Docs
  7. Home Assistant — Persistent Notification Integration — Home Assistant Docs
  8. Unsplash — Smartphone notification photo (photo-1611532736597-de2d4265fba3)
Sepehr

Written by

Sepehr

Head of Engineering with 15+ years of software experience and a decade of hands-on smart home tinkering. I run everything I write about — Home Assistant, Zigbee2MQTT, Frigate, and a full self-hosted homelab. Independent coverage, no brand deals, UK-focused.

LinkedIn →

Related reading