Home Assistant Notifications: Never Miss What Matters at Home

Your smart home knows when something happens. The question is whether it tells you about it, and whether it does so without driving you insane with constant pings. Here's how to set up notifications that are actually useful.

Check Your Setup Automation Ideas

Notification Methods Compared

Home Assistant can send notifications through a dozen different channels. Here's what actually works well and when to use each one.

Companion App (iOS / Android)

RECOMMENDED

The gold standard. Push notifications, actionable buttons, critical alerts that bypass Do Not Disturb, image attachments, location tracking. Free, works locally, no cloud dependency. This is what 90% of users should start with.

Telegram Bot

Great for sending images, videos, and interactive commands. You can reply to your bot to control things. Works across all devices with Telegram installed. Good secondary channel or for households where not everyone wants the Companion app.

Email (SMTP)

Best for non-urgent summaries and logs. Send a daily digest of events, weekly energy reports, or monthly maintenance reminders. Not great for time-sensitive alerts since email delivery is unpredictable.

Text-to-Speech (TTS)

Your smart speakers announce things out loud. "Front door opened" or "Washing machine finished." Perfect for in-home awareness when you don't want to check your phone. Works with Google, Alexa, Sonos, and local voice speakers.

HTML5 Browser Push

Push notifications through your web browser. Handy for desktop alerts if you keep a browser tab open. No app install needed. Limited compared to the Companion app, but useful as a supplement.

Discord / Slack / Signal

Send alerts to a chat channel. Great for families or shared houses where everyone is already in a group chat. Discord webhooks take about 5 minutes to set up. Slack works similarly through incoming webhooks.

Setting Up the Companion App

This is step one for most people. The Companion app gives you the best notification experience and doubles as a sensor source for presence detection.

1

Install the app

Download "Home Assistant" from the App Store (iOS) or Google Play (Android). It's free.

2

Connect to your instance

Open the app and enter your Home Assistant URL. If you're on the same network, it should auto-discover. For remote access, you'll need Nabu Casa, Cloudflare Tunnel, or a VPN.

3

Allow notifications

When prompted, allow push notifications. On iOS, also enable Critical Alerts if you want certain notifications (like smoke detectors or water leaks) to break through Do Not Disturb and silent mode.

4

Test it

Go to Developer Tools in your HA dashboard, click "Services," and call notify.mobile_app_your_phone with a test message. If it pops up on your phone, you're good.

Your first notification automation

automation:
  - alias: "Front door opened"
    trigger:
      - platform: state
        entity_id: binary_sensor.front_door
        to: "on"
    action:
      - service: notify.mobile_app_your_phone
        data:
          title: "๐Ÿšช Front Door"
          message: "The front door just opened."

Replace mobile_app_your_phone with the actual name of your device. Check Settings > Companion App > Notifications to find your device name.

Actionable Notifications: Reply Without Opening the App

The real power of HA notifications. Add buttons to your alerts so you can take action right from the notification shade. No need to open the app or your dashboard.

Motion detected with action buttons

automation:
  - alias: "Motion alert with actions"
    trigger:
      - platform: state
        entity_id: binary_sensor.backyard_motion
        to: "on"
    condition:
      - condition: state
        entity_id: group.family
        state: "not_home"
    action:
      - service: notify.mobile_app_your_phone
        data:
          title: "๐Ÿƒ Motion Detected"
          message: "Movement in the backyard."
          data:
            actions:
              - action: "TURN_ON_LIGHTS"
                title: "Lights On"
              - action: "VIEW_CAMERA"
                title: "๐Ÿ“น View Camera"
              - action: "IGNORE"
                title: "Ignore"

Handle the button press

automation:
  - alias: "Handle motion action - lights"
    trigger:
      - platform: event
        event_type: mobile_app_notification_action
        event_data:
          action: "TURN_ON_LIGHTS"
    action:
      - service: light.turn_on
        target:
          entity_id: light.backyard
        data:
          brightness_pct: 100

  - alias: "Handle motion action - camera"
    trigger:
      - platform: event
        event_type: mobile_app_notification_action
        event_data:
          action: "VIEW_CAMERA"
    action:
      - service: notify.mobile_app_your_phone
        data:
          message: "Backyard camera"
          data:
            image: "/api/camera_proxy/camera.backyard"

Tip: Keep action identifiers uppercase and unique across your setup. If two automations use the same action name, both will fire when that button is pressed.

Camera Snapshots in Notifications

A notification saying "motion detected" is fine. A notification with a photo of what triggered the motion is better.

Send a camera snapshot (Companion App)

automation:
  - alias: "Doorbell with snapshot"
    trigger:
      - platform: state
        entity_id: binary_sensor.doorbell
        to: "on"
    action:
      - service: notify.mobile_app_your_phone
        data:
          title: "Someone at the door"
          message: "Doorbell pressed"
          data:
            image: "/api/camera_proxy/camera.front_door"

With Frigate object detection

automation:
  - alias: "Frigate person detected"
    trigger:
      - platform: mqtt
        topic: frigate/events
    condition:
      - condition: template
        value_template: >
          {{ trigger.payload_json['after']['label'] == 'person' }}
    action:
      - service: notify.mobile_app_your_phone
        data:
          title: "๐Ÿง‘ Person Detected"
          message: >
            Person spotted near {{ trigger.payload_json['after']['camera'] }}
          data:
            image: >
              /api/frigate/notifications/{{ trigger.payload_json['after']['id'] }}/thumbnail.jpg

Using Frigate for cameras? The detection snapshot shows a bounding box around the detected object, so you instantly see what triggered the alert.

Telegram Bot Notifications

Telegram is the best secondary notification channel. It handles images, videos, inline keyboards, and lets you send commands back to Home Assistant through chat.

1

Create a bot with BotFather

Open Telegram, search for @BotFather, and send /newbot. Follow the prompts to name it. Save the API token it gives you.

2

Get your chat ID

Send a message to your bot, then visit https://api.telegram.org/bot<TOKEN>/getUpdates in your browser. Your chat ID is in the response.

3

Add to configuration.yaml

telegram_bot:
  - platform: polling
    api_key: "YOUR_BOT_TOKEN"
    allowed_chat_ids:
      - YOUR_CHAT_ID

notify:
  - platform: telegram
    name: telegram
    chat_id: YOUR_CHAT_ID

Send a photo via Telegram

action:
  - service: telegram_bot.send_photo
    data:
      url: "/api/camera_proxy/camera.front_door"
      caption: "Someone is at the front door"
      target: YOUR_CHAT_ID

How to Avoid Alert Fatigue

The fastest way to make notifications useless is to send too many. If you stop reading them, they stop protecting you. Here's how to keep your notifications meaningful.

Do This

  • Add time conditions (no alerts at 3 AM for non-critical stuff)
  • Use presence as a condition (only alert when away)
  • Add cooldown timers between repeated alerts
  • Group related alerts into a single summary
  • Use priority levels (critical vs informational)
  • Start with fewer notifications, add more over time

Avoid This

  • Alerting every single door open/close
  • Motion alerts in high-traffic rooms
  • Repeated alerts for the same ongoing event
  • Temperature alerts with tight thresholds
  • Notifications for things you can see (room you're in)
  • Critical priority on non-critical events

Cooldown timer to prevent notification spam

automation:
  - alias: "Motion alert with cooldown"
    trigger:
      - platform: state
        entity_id: binary_sensor.front_yard_motion
        to: "on"
    condition:
      - condition: state
        entity_id: group.family
        state: "not_home"
      - condition: template
        value_template: >
          {{ (now() - state_attr('automation.motion_alert_with_cooldown',
              'last_triggered')).total_seconds() > 300 }}
    action:
      - service: notify.mobile_app_your_phone
        data:
          title: "๐Ÿƒ Motion"
          message: "Movement detected in the front yard."

This automation won't fire again within 5 minutes (300 seconds) of the last trigger. Adjust the number to match the situation. For security alerts you might want 60 seconds, for temperature warnings maybe 3600 (one hour).

Critical alerts that bypass Do Not Disturb (iOS)

action:
  - service: notify.mobile_app_your_iphone
    data:
      title: "๐Ÿšจ WATER LEAK"
      message: "Water detected under the kitchen sink!"
      data:
        push:
          sound:
            name: default
            critical: 1
            volume: 1.0

Reserve critical alerts for genuinely urgent things: water leaks, smoke detectors, security alarms. If you mark everything as critical, you'll turn off the permission entirely.

10 Notification Automations Worth Setting Up

Practical notifications you'll actually use. Each one solves a real problem instead of just pinging you for the sake of it.

1. Door left open too long

Trigger: door sensor stays open for 10+ minutes. Way more useful than alerting every time a door opens. Catches the times you accidentally left the garage open.

2. Washing machine finished

Monitor power consumption with a smart plug. When wattage drops below 5W for 3 minutes, the cycle is done. No more forgetting wet laundry for hours.

3. Freezer temperature warning

If the freezer goes above -15ยฐC for more than 30 minutes, something is wrong. Critical alert. This one has saved people hundreds in spoiled food.

4. Water leak detected

Critical alert, always. Place sensors under sinks, near the water heater, by the washing machine. If water is where it shouldn't be, you want to know immediately.

5. Last person left, things still on

When everyone leaves, check if lights, TV, or appliances are still on. Send an actionable notification with a "Turn everything off" button. One tap from anywhere.

6. Package delivered (camera)

If you run Frigate, detect when a person appears at the front door and leaves a package. Snap a photo and send it. You know your delivery arrived before the tracking app does.

7. High energy usage alert

Set a wattage threshold for your whole home. If consumption spikes above 5kW during off-peak hours, something might be running that shouldn't be. Great for catching space heaters or appliances left on.

8. Device battery low

Zigbee sensors, door locks, motion detectors. They all run on batteries. Get notified when any device drops below 20% so you can replace it before it goes dead and you miss an actual alert.

9. Rain forecast, windows open

Check the weather forecast. If rain is expected in the next 2 hours and any window sensors show open, send a reminder. Simple but surprisingly useful.

10. Bedtime checklist

At your usual bedtime, check if doors are locked, garage is closed, lights are off downstairs. Send a summary of anything that needs attention, with actionable buttons to fix each one.

Notification Groups and Multi-Device Setup

In a household with multiple phones, you don't want to duplicate every automation. Create groups and send to everyone at once.

Set up a notification group

notify:
  - platform: group
    name: family_phones
    services:
      - service: mobile_app_dads_phone
      - service: mobile_app_moms_phone
      - service: mobile_app_kids_tablet

Now use notify.family_phones in your automations and everyone gets the alert. You can also get creative: create a "parents" group for security alerts and a "family" group for general household stuff.

Conditional notifications based on who's home

automation:
  - alias: "Alert whoever is away"
    trigger:
      - platform: state
        entity_id: alarm_control_panel.home
        to: "triggered"
    action:
      - choose:
          - conditions:
              - condition: state
                entity_id: person.dad
                state: "not_home"
            sequence:
              - service: notify.mobile_app_dads_phone
                data:
                  title: "๐Ÿšจ Alarm Triggered"
                  message: "Home alarm went off!"
          - conditions:
              - condition: state
                entity_id: person.mom
                state: "not_home"
            sequence:
              - service: notify.mobile_app_moms_phone
                data:
                  title: "๐Ÿšจ Alarm Triggered"
                  message: "Home alarm went off!"

Ready to Set Up Your Smart Home?

Migrating from Google Home or Alexa? Starting fresh? HomeShift helps you figure out what you need and how to get there. Start with a free scan of your current setup.

Free Smart Home Scan
30 Automation Ideas โ†’ Camera Setup โ†’ DIY Security System โ†’

Frequently Asked Questions

What is the best way to send notifications from Home Assistant?

The Companion app for iOS and Android is the best option for most people. It supports push notifications, actionable buttons, critical alerts that bypass Do Not Disturb, images, and location-based triggers. It's free, works locally, and requires zero setup beyond installing the app and connecting it to your instance.

How do I set up actionable notifications in Home Assistant?

Add an actions array to your notification data with a title and action identifier for each button. Then create a second automation that listens for the mobile_app_notification_action event and checks which action was chosen. See the examples above for the full YAML.

Can Home Assistant send notifications to multiple people?

Yes. Create a notification group in your configuration.yaml that lists multiple device targets. Then call the group service in your automations instead of individual devices. You can also use conditional logic to notify specific people based on who's home or away.

How do I stop getting too many notifications from Home Assistant?

Add conditions to your automations so they only fire when relevant: time of day, occupancy, state duration. Use cooldown timers between repeated alerts. Group related alerts into summaries instead of individual pings. Set priority levels so only critical alerts bypass Do Not Disturb. Start with fewer notifications and add more as needed.

Can Home Assistant send notifications when I'm not home?

Yes. Combine notifications with presence detection using the Companion app, a router integration, or Bluetooth trackers. Create automations that only notify when your zone state is not_home. This dramatically reduces unnecessary alerts during the day.

How do I send images or camera snapshots in notifications?

The Companion app supports image attachments. In your notification service call, add an image field under data pointing to your camera entity or a URL. For Frigate users, you can attach the detection snapshot directly. The image shows up as a rich notification on your phone.