Multimedia Notifications: Phone, Tablet, TV, Speaker, Light, and Channel Selection
Multimedia Notifications: Phone, Tablet, TV, Speaker, Light, and Channel Selection
You now have five communication channels: a push notification to the phone (Module 16), the speaker (Lessons 5-6), the tablet (Lesson 7), the TV (Lesson 8), and, as you'll see in this lesson, even the lights themselves. This lesson is the selection logic: which channel, when, and why.
Budget around 75 minutes. This lesson ties together everything from the previous eight, so I'm assuming they're fully in place.
A Real-Life Problem: Every Channel at Once, for One Piece of Information
One poorly designed automation sends the same "laundry done" notification to the phone, through the speaker, to the tablet, and by flashing the lights, all at once. That's overkill for information that doesn't warrant that much weight. The opposite problem: a critical alert only reaches the phone, which happens to be sitting silenced in another room, and nobody hears the speaker because the automation was never wired up to the critical announcement.
The Channel Selection Matrix
| Event type | Channels |
|---|---|
| Critical (flood, smoke, gate open at night) | the critical speaker + a high-priority push + a flashing light |
| Important, while you're home (doorbell, package) | the home speaker + the tablet with an image |
| Important, while you're away (a delivery) | a push to the phone only |
| Informational, not urgent (laundry done) | the home speaker if you're home, otherwise silence until morning |
The Central Script: A Notification With Automatic Channel Selection
script:
notify_by_presence:
alias: "Notify based on household presence"
icon: mdi:bell-ring-outline
mode: queued
max: 5
fields:
message:
description: "The notification's message"
example: "Someone left a package at the door"
urgent:
description: "Whether this notification is urgent (bool)"
default: false
sequence:
- if:
- condition: state
entity_id: group.household
state: "home"
then:
- action: script.turn_on
target:
entity_id: script.home_announcement
data:
variables:
message: "{{ message }}"
else:
- action: notify.mobile_app_your_phone
data:
title: "Home"
message: "{{ message }}"
data:
importance: "{{ 'high' if urgent else 'normal' }}"
group.household is the group of every person entity in the house from Module 16: if anyone is home, the message goes through the speaker, otherwise it goes out as a push. This is the central decision point every non-urgent notification automation in the rest of the module relies on, instead of each one implementing the same logic separately.
Light as a Communication Channel
script:
critical_light_signal:
alias: "Light signal: critical alert"
icon: mdi:alarm-light
mode: single
sequence:
- repeat:
count: 5
sequence:
- action: light.turn_on
target:
entity_id: light.living_room
data:
color_name: red
brightness_pct: 100
- delay: "00:00:00.5"
- action: light.turn_off
target:
entity_id: light.living_room
- delay: "00:00:00.5"
A flashing red light is especially useful for household members who are hard of hearing, or in a situation where loud music drowns out a voice announcement: it's a visual layer that works independently of hearing. Add this as a third element to the critical_announcement script from Lesson 5, called in parallel with the TTS.
The Channel Matrix: Matching Technology to the Situation
| Situation | Best channel | Why |
|---|---|---|
| Someone's watching TV | QuickBars / Notifications for Android TV (if the TV supports it), or a voice announcement on the tablet | doesn't interrupt the picture, reaches you without leaving the couch |
| Nobody's in the room with the screen | a push notification to the phone | the only channel that reaches you regardless of where you are in the house |
| The house has guests without our app | the speaker + light as a visual signal | requires no login to any app |
| A critical alert (flood, smoke) | every channel at once, plus escalation | here, overkill is justified, since the stakes are high |
Notification Escalation: No Reaction Means the Next Channel
An advanced home-communication pattern doesn't stop at sending one notification once: if a critical alert (a flood alarm, say) isn't acknowledged within a set time (through no interaction with the push notification, for example), the automation can escalate to the next channel, louder or harder to ignore, like a voice announcement on every speaker at once, or a flashing light. This escalation pattern, built up gradually across the rest of this module's lessons, prevents an important alert from getting lost in the flood of routine phone notifications.
Testing Communication Channels Without Triggering False Alarms
While building and testing this lesson's channel matrix, it's worth having a separate, clearly marked test mode (an input_boolean.test_mode helper, say) that routes all test messages to a single, low-priority channel (just a log, with no actual push or voice playback), instead of waking the whole house with a test critical alarm every time. Only once you've confirmed the channel-selection logic works correctly is it worth testing the full, real flow with live notifications.
Colored Light as an Additional, Visual Information Code
Beyond the audio and push channels, light color (if you have RGB bulbs from Module 20) can serve as an additional, quiet communication channel: a red flash for a critical alert, a gentle blue for news of a delivered package. This visual channel is especially useful for household members who are hard of hearing, or in situations where an audio announcement would be unwelcome (during a video call, say), extending this lesson's channel matrix with a visual dimension.
Phone Vibration Patterns as an Alert Type Distinction
The Home Assistant mobile app lets you configure some push notifications with a custom vibration pattern or notification sound, different for different alert categories. A household member, feeling the distinctive, longer vibration pattern reserved exclusively for critical alerts, can recognize the notification's weight before even looking at the phone, which matters especially when the phone is in a pocket or in another room.
Notification Effectiveness Analytics: What Actually Works
After a few months of using the announcement system, it's worth analyzing which channels actually reach household members and which are systematically ignored: a push notification that nobody ever reacts to may need switching to a louder channel, while a voice announcement that always triggers an immediate reaction confirms that channel is the right choice for similar situations going forward.
A Communication Channel Test Log: When You Last Checked Each One
Similarly to the maintenance log from the Home Assistant maintenance module, it's worth keeping a simple record of the last test date for every channel in the matrix: when you last confirmed a push notification actually arrives, when you last tested the voice announcement on every speaker. A channel untested for months can silently stop working, exactly like the backup covered in the maintenance module.
How to Test This Lesson
1. Call script.notify_by_presence both at home and away: check the different channels.
2. Test the light signal on one lighting point.
3. Review the notification-sending automations from earlier modules and decide whether they should use the central script.
Common Mistakes
Every channel for every event: overwhelm instead of information.
Critical events through just one channel: a single point of failure for an alert that has to get through.
Duplicating channel-selection logic in every automation instead of one central script.
Practical Task
☐ Build the central notify_by_presence script.
☐ Add a light signal to the critical announcement.
☐ Update at least two existing automations to use the central script.
Key Takeaways
The channel depends on household presence, it's not fixed for every event.
Critical alerts need several parallel channels, not just one.
Light is an effective communication channel, especially in a loud environment.
What's Next
Next lesson: Doorbell, Pedestrian Gate, Driveway Gate, and Packages: Home Announcements Instead of Just a Phone Push. A concrete application of this logic for events from Module 21.