WTH - esphome voice satellite alarm functionality

Would be nice to have a general blueprint style thing to be able to set alarms with voice assistant, on satellites.

This isn’t standardised, though timer functionality does already exist as universal.

I have a couple different types of voice satellites around my house, one is a retasked dot 2nd gen and another runs kiosk satellite.

kiosk satellite runs its own local alarm system, but nothing else has that.

there must be a way to implement an api call or whatever to be able to schedule stuff with voice.

Haven’t tried it yet but here is what the documentation says:

https://kiosksatellite.com/docs/alarms/

Home Assistant has no alarm intent, so voice alarms go through an LLM conversation agent (Qwen, Gemma, Gemini, Claude, OpenAI or any other agent that can control Home Assistant). The agent understands the request in any language it speaks and calls a script that Kiosk Satellite ships as a blueprint.

The built-in Home Assistant conversation agent does not work for this. It only matches sentences against Home Assistant’s own intents and cannot fill in the script’s time, days or label. An LLM agent with Prefer handling commands locally turned on works fine: Home Assistant still handles lights, timers and the rest itself and passes alarm requests on to the LLM.

Info: The long-lived token under Settings, Home Assistant must belong to a Home Assistant administrator. This applies to every request the script handles, including questions such as “What alarms do I have?”. Alarms set on the kiosk work with any user’s token. The kiosk listens for the script over its own Home Assistant connection. Home Assistant only lets administrators fire and follow the events the script runs on.

  1. Import the blueprint:

    Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

  2. Create a script from it. It has no settings.

  3. Expose the script to Assist under Settings, Voice assistants, Expose.

Then ask the kiosk: “wake me up at 6:30 on weekdays”, “set an alarm called Gym for 7 tomorrow”, “what alarms do I have?”, “turn off the Gym alarm” or “delete my 6:30 alarm”. The agent confirms what the kiosk did and when the alarm rings next.

It works in any language your agent speaks, with no sentences to set up per language. Ask in Spanish, German, French, Ukrainian or anything else the same way, like “despiértame a las seis y media de lunes a viernes”, and the agent answers in that language.

Realtime conversations set alarms the same way: with Tools on Home Assistant, the model sees the exposed script and calls it while the conversation runs.

The alarm goes to the kiosk you are talking to. A request typed into Home Assistant’s own chat reaches no kiosk until it names one, as in “set an alarm on the bedroom kiosk”, which matches the kiosk’s device name or ESPHome name.

Nothing new appears in ESPHome.

This Is blocked rn because the timers are on device per device.

The VPE folks apparently know this is an issue - There appears to be a roadmap item for them to fix that.

Your ask will have to wait on that change. But once it’s done I don’t see why this won’t be possible