Back to all work

Home Assistant · 2024 · Interaction & System Design

Cutting smart home alerts by 80% without missing a critical event.

I designed a notification framework for my family's smart home. It runs on Home Assistant, routes signals from 557 sensors, and replaces a firehose of alerts with a feed my wife and I actually read.

Smart home notifications framework masthead

Overview

The home runs on Home Assistant with 87 devices, 557 trackable sensors, and 140 automations. By mid-2024, the household was logging roughly 10,000 state changes a day. The alerts coming out of it were easy to ignore, so we started ignoring the ones that mattered.

I designed the framework end to end. I audited every signal, rewrote delivery around urgency, context, and actionability, then tuned it against daily feedback from the two primary users: my wife and me.

Role
Interaction Design, System Design
Platform
Home Assistant
Year
2024
Scope
87 devices · 557 sensors · 140 automations
Primary users
My family

The challenge

When every alert becomes white noise

Every open door, temperature blip, and motion trigger fired a notification. Within a week, everyone in the house started swiping them away without reading. The garage stayed open overnight. Freezer alarms ran through dinner. Windows reported themselves every time the breeze moved them.

My challenge: cut the noise without hiding anything critical.

557
Trackable sensors across the house
87
Unique devices connected to Home Assistant
140
Automations running on any given day
10,000
State changes logged per day

Design principles

Four rules for a trustworthy feed

Before rebuilding anything, I set four rules. Each one targeted a specific failure in the old setup.

Signal over noise

If an alert does not need a response, it does not need to fire.

Context and relevance

Timing, location, and who is home decide whether an alert fires at all.

Critical must be unmissable

A water leak escalates until someone acknowledges it. A motion ping does not.

Support habits

Nudge the behavior we want (doors locked, filters changed) instead of scolding us.

Framing

Focusing on what matters

Three How Might We questions focused the work.

  • How might we see what's happening in the house right now?
  • How might we ensure the house is safe and secure?
  • How might we combat notification overload?

Discovery

Auditing 500+ signals to find the ones that matter

I inventoried every sensor, triaged each event by real-world urgency, and pulled from notification research to pressure-test my assumptions.

Auditing the signals

I walked through every automation and sensor, classified each event by real-world urgency, and mapped the trigger that should (or should not) fire a notification.

Notification event Device / sensor Trigger condition Criticality
Front door left open > 10 minutes Front door contact sensor Door open for > 10 minutes High
Freezer temp > 10°F for 15 minutes Freezer temperature sensor Temperature sustained > 10°F High
Leak detected in basement Water leak sensor Leak state = 'wet' High
Garbage night reminder Calendar automation Time = 7pm on garbage night Medium
HVAC filter needs replacing Runtime sensor + last-replaced input 90 days since last reset Low
Window open after dark Window contact sensors Window open + time after sunset Medium
Sump pump hasn't run in 4 hours Power usage sensor No power draw for 4+ hours High

Excerpt from the audit. The full inventory covers all 140 automations.

What makes a good notification

I pulled from iOS and Android notification guidelines, plus research on alert fatigue in hospital and industrial control rooms. The same failure modes showed up across all three: too many, too vague, too easy to dismiss.

Five patterns that shaped the framework

Channels matter

Mobile push is easy to miss. Smart-speaker announcements cut through ambient noise. Dashboards carry passive awareness without interrupting. Match the channel to the job.

Passive vs. interruptive

Low-priority events belong in summaries and dashboards. Interruption earns its place only when urgency or safety require it.

Critical escalation

Life-safety events bypass silent mode and repeat across channels until someone acknowledges them. The pattern comes straight from healthcare and industrial alarm systems.

Contextual filtering

Time of day, presence, and household mode decide whether an alert fires at all. Suppress low-priority during sleep, skip energy alerts on vacation.

One-time vs. nagging

Some alerts fire once and trust the user to respond. Some persist until the condition clears. Some repeat on a cadence. Match the pattern to the consequence of missing it.

Information architecture

From inventory to intentionality

With every event audited, I mapped five behavioral profiles onto the inventory. Each profile defined how, when, and where a notification could fire.

  • Criticality: what happens if this is ignored?
  • Urgency: how soon does someone need to act?
  • Contextual relevance: should this fire only when specific conditions are true, like someone being home or it being after dark?
  • Interruption level: interrupt, or surface passively?
  • Delivery persistence: fire once, or persist until resolved?
Notification event Criticality Delivery method Interruption Behavior type
Front door left open > 10 mins High Mobile + smart speaker Medium-high Context-aware escalation
Freezer temp > 10°F for 15 mins High Mobile + persistent banner High Interruptive, nagging
Leak detected in basement High Immediate push + TTS Very high Escalating multi-channel
Garbage night reminder Medium End-of-day push Low Scheduled passive
HVAC filter replacement Low Weekly summary + banner None Passive, repeatable
Window open after dark Medium Mobile with delay Medium Delayed interruptive
Sump pump hasn't run in 4 hrs High Persistent push Medium-high Delayed, sticky

Each event was mapped to a delivery method and interruption level based on its behavioral profile.

Iterative design

Refining the system through daily life

Living inside the system surfaced what no audit could. My wife and I used it daily and tuned it in five rounds.

Tuning #1: Do Not Disturb rules

The freezer alarm fired at 3am during a midnight snack. Low-priority alerts at night turned the household against the system.

Solution. I added contextual filters that mute non-critical alerts during sleep hours and when nobody is home.

Tuning #2: Message clarity

Vague "Garage Open" pings got ignored. Nobody could tell from the message whether action was required.

Solution. I rewrote every alert to include the specific condition and a tap action. "Garage has been open for 15 minutes. Tap to close."

Tuning #3: Tuned thresholds

Ten-minute door thresholds fired constantly when we were unloading groceries. Fifteen minutes was too long on winter nights.

Solution. I retuned every duration-based trigger, then added presence conditions so the same threshold behaves differently when we are home versus away.

Tuning #4: Conditional delays

Working in the yard with a door held open was fine. The system did not know that and escalated anyway.

Solution. I added presence-aware delays. A door left open while we are active in the yard no longer escalates.

Tuning #5: Actionability

Alerts reported problems but required opening the Home Assistant app to act on them. Nobody bothered.

Solution. I added tap-to-act buttons for the alarm system, the garage door, and snoozing. One tap from the notification, no app launch.

Final design

Answering the three How Might We questions

Each feature targets one question, on one channel, with one job.

How might we see what's happening right now?

Right Now dashboard showing live home status

Right Now dashboard

A real-time dashboard summarizing open doors, running appliances, active automations, and security state. It became our home-at-a-glance hub at bedtime and on the way out the door.

Home Brief status on Apple Watch

On-demand Home Brief

A button that delivers a push notification with a real-time status summary. Designed for Apple Watch glances, no app launch required.

How might we ensure the house is safe and secure?

Porch detection notification with camera snapshot and AI description

Enhanced porch detection

Standard motion alerts are noisy. This one sends a single rich notification with a camera snapshot, an AI-generated description ("Person detected at the front door"), and a quick action to turn on the porch lights.

Front door unlocked watch notification

Security sentinels

Context-aware alerts for doors, windows, and locks. Fires when a door is left open after sunset or the house is unlocked with nobody home, so we catch lapses before they become incidents.

How might we combat notification overload?

Daily summary notification bundling low-priority reminders

Bundled summary

Non-critical reminders (filters, trash, batteries) bundle into a single evening digest. Awareness stays intact, interruptions drop.

Water leak critical alert notification

Critical escalation

Leaks and smoke alarms use iOS Critical Alerts, which bypass silent mode and Do Not Disturb. Life-safety events are never missed.

Snoozable dehumidifier notification with inline actions

Snoozed notifications

Manual snooze on tap, plus automatic suppression during known Do Not Disturb windows and when we are away and cannot respond.

Outcome

From noisy to necessary

Three months in, the system does less and matters more. My wife went from dismissing alerts to relying on them.

80%
Fewer daily notifications than before the audit.
0
Critical events missed across three months in production.
95%
Success rate on the garbage-night reminder we used to forget.
Good notifications are not a feature. They are a behavior change. The craft is in what you choose not to send.
Like what you see? Let's talk.

hello@rod.me