Journal

Designing Actionable Push Notifications from HA Companion App: Alerts That Help, Not Annoy

Push Notification อัจฉริยะจาก HA Companion App: ออกแบบแจ้งเตือนที่ช่วยได้จริง ไม่รบกวนชีวิต

May 13, 2026 · 1 min read
Designing Actionable Push Notifications from HA Companion App: Alerts That Help, Not Annoy

What Makes a Smart Home Notification Worth Receiving?

Notification fatigue is the most common complaint from smart home users: too many alerts, too little relevance, until every notification gets dismissed — including the ones that matter.

Three principles of good notification design:

  1. Actionable: One tap does something. No app-opening required.

  2. Timely: Delivered when the information is still useful.

  3. Contextual: Knows where you are, what you’re doing, and sends only what’s relevant.

HA Companion App Advanced Notification Features

Most users never explore beyond basic text alerts. The app supports:

Action Buttons — respond directly without opening the app:

yaml
service: notify.mobile_app_tony_iphone
data:
  title: "Front Door Open"
  message: "Home empty for 30 minutes. Lock it?"
  data:
    actions:
      - action: "LOCK_DOOR"
        title: "Lock Now"
      - action: "IGNORE_DOOR"
        title: "Leave It"

Critical Alerts — bypass Do Not Disturb for genuine emergencies:

yaml
data:
  push:
    sound:
      name: default
      critical: 1
      volume: 1.0

Reserve exclusively for smoke, gas leak, flood, or intrusion.

Tag and Replace — update existing notifications instead of stacking:

yaml
data:
  tag: "front_door_alert"
  message: "Front door is now locked."

The Notification Tier Matrix

Categorize every notification before building the automation:

Tier 1 — Critical (Critical Alert, any time)

  • Smoke / High CO
  • Severe water leak
  • Gas leak
  • Intrusion alarm triggered

Tier 2 — Urgent (Normal + sound, any time)

  • Front door open >5 minutes while home is empty
  • Unknown person detected at night
  • UPS battery below 20%

Tier 3 — Informational (Normal, respects DND)

  • Package detected at door (doorbell camera)
  • Child arrived home (phone geofence)
  • Laundry cycle complete (power monitoring)

Tier 4 — Daily Digest (scheduled, e.g. 20:00)

  • Today’s electricity summary
  • Low-battery device list
  • Automations that failed or behaved abnormally

Context-Aware Delivery

Location-based filtering:

yaml
condition:
  - condition: state
    entity_id: person.tony
    state: "not_home"

Always send Tier 1-2. Send Tier 3 only when away from home.

Time-based filtering:

yaml
condition:
  - condition: time
    after: "07:00:00"
    before: "22:00:00"

Non-critical notifications only during waking hours.

Repeat suppression:

yaml
mode: single
max_exceeded: silent

Prevents repeat notifications for the same event within 15 minutes.

Real Automation: Doorbell Action Handler

yaml
alias: "Doorbell Action Handler"
trigger:
  - platform: event
    event_type: mobile_app_notification_action
    event_data:
      action: "UNLOCK_DOOR"
action:
  - service: lock.unlock
    target:
      entity_id: lock.front_door
  - service: notify.mobile_app_tony_iphone
    data:
      message: "Unlocked. Auto-locking in 2 minutes."
      tag: "door_unlock_confirm"
  - delay:
      minutes: 2
  - service: lock.lock
    target:
      entity_id: lock.front_door

KPIs for Notification System Health

  • Dismiss Rate < 20%: Higher indicates irrelevance
  • Action Rate > 40%: Users tap buttons rather than just reading
  • Critical Miss Rate = 0%: Zero tolerance for missed emergency alerts
  • Daily Volume < 15: More than this signals fatigue risk

Review your notification system quarterly. Any notification type with >50% dismiss rate should be removed or downgraded immediately.

Questions & answers

Can Home Assistant send push notifications with action buttons?
Yes. The HA Companion App supports action buttons that trigger automation events when tapped — for example, a Lock Now button that immediately locks the front door without opening the app.
How do I send notifications that bypass Do Not Disturb mode?
Use Critical Alert in the iOS Companion App by setting critical: 1 in the notification payload. Reserve this exclusively for genuine emergencies: smoke, water leak, gas, or intrusion.
How do I prevent duplicate notifications for the same event?
Set mode: single and max_exceeded: silent in the automation, and use a consistent tag in the notification payload so new alerts replace old ones instead of stacking.
How many notifications per day is acceptable before users experience fatigue?
Aim for fewer than 15 per day. Bundle status updates into a scheduled daily digest (Tier 4) and audit any automation with a dismiss rate above 50%.

Related reading