Architecture proposal: native alarms for Assist (implementation offer) #1411
Unanswered
officialxndr
asked this question in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
TL;DR
Home Assistant has first-class timers in Assist but no alarms. Missing alarms is the
single most-cited reason people can't retire a Google/Alexa speaker for HA Voice. I'd like to
implement native alarms, modeled on the existing timer system, and I'm looking for design
sign-off before writing the core PR. I have a working end-to-end prototype (in a Voice
Satellite fork) that already validates the hard parts — scheduling, persistence, DST, and
recurrence — so this is a concrete offer, not just an idea.
Why now / relationship to existing discussions
"we're still missing… date/time and reminders, so maybe it's best to keep this open." Alarms
are the obvious next piece.
"left to the actual integration"). Unresolved.
dismiss via "stop", persistence across reboots.
Proposed design (v1 — the Assist/voice subsystem)
Mirror
homeassistant/components/intent/timers.pywith an alarm subsystem, because satellitesalready understand the timer handler pattern and this keeps Assist consistent:
AlarmManager+AlarmInfoin theintentcomponent, analogous toTimerManager, but:async_track_point_in_time(recomputed in local timeafter each fire, so DST is correct) instead of
asyncio.sleep.Store; on startup, re-arm future alarms and **drop alarms overdue byasync_register_alarm_handler(device_id, handler)mirroring the timerone, with events
SET / CANCELLED / FIRED / SNOOZED / DISMISSED, plusasync_device_supports_alarms(...). The ringing UI, snooze, and dismiss live on thedevice (satellite/Voice PE) — matching Alarm clock support #1089's "snooze left to the integration."
HassSetAlarm,HassCancelAlarm,HassCancelAllAlarms,HassAlarmStatus,and (if we want voice snooze/dismiss beyond "stop")
HassSnoozeAlarm/HassDismissAlarm,with sentences + responses in
home-assistant-intents(smart time parsing, spokenconfirmation).
This deliberately scopes v1 to the voice/Assist experience. The automation-facing alarm
entity from #1089 can be a follow-up (or we converge — see open questions).
Open questions I'd like the team to settle before I code
intentcomponent (my proposal), as the Alarm clock support #1089 entity, or a shared core that backs both?
(Your "store fire-times for both" comment in Add basic set of intents for "time/tasks management" for feature parity with other voice assistants (Alexa, google home) #1046 suggests a shared core is possible.)
HassSnoozeAlarmintent + manager API?Storeinside theintentcomponent, or model alarms as entities withRestoreEntity?HassSetAlarm/HassCancelAlarm/HassAlarmStatus…and slots
{time, date, am_pm, recurrence/day, name}?What I'm offering
async_track_point_in_timescheduling, daily/weekday recurrence, DST-safe recompute, snooze, dismiss) running today in a
Voice Satellite fork — happy to link it.
timers.pyand drafted anAlarmManagerskeleton for theintentcomponent (attached/linked below).
home-assistant-intentsPR (English sentences/responses) + tests +docs, and iterate to your conventions.
Proposed delivery order
home-assistant-intents:intents.yaml+sentences/en+responses/enfor the new intents.core:intentalarm subsystem + intent handlers +assist_satellitehandler hook + tests.Could you confirm whether you'd accept this, and weigh in on the five questions? I'll align the
design to whatever you prefer before opening PRs.
Beta Was this translation helpful? Give feedback.
All reactions