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:
- Open @BotFather in Telegram and send
/newbotto create a bot and receive your API token. - Obtain your personal chat ID by messaging @getidsbot and noting the ID it returns.
- 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.




