github jxlarrea/kiosk-satellite 2026.10.1

3 hours ago

What's new in Kiosk Satellite 2026.10.1

This release brings realtime conversations to Voice Satellite. Each wake word can now start a full duplex, realtime conversation with OpenAI or xAI Grok that controls your home, alongside Assist pipelines. The kiosk runs its own echo canceller over the raw microphone, which replaces the old capture modes in Microphone settings. Kiosks that hear the same wake word can now settle which one answers.

New Feature: Voice Satellite Realtime Assistant

  • Talk with OpenAI or xAI Grok. A new Realtime page in the native Voice Satellite settings lists both providers with their status. Configure opens the API key, model, voice and endpoint, and Save & Validate stores them only once the provider accepts the connection. The model and voice lists fill in from the provider.
  • Pick it per wake word. Once a provider validates, it shows up in the Assistant 1 and Assistant 2 dropdowns, so each wake word can start either an Assist pipeline or a realtime conversation.
  • A real conversation. You can talk over an answer to interrupt it and keep talking. The conversation ends after a set time with nobody talking or when you say goodbye. The kiosk decides when you talked over an answer, so a leftover echo or a short noise does not cut it off.
  • It controls your home. The assistant works through Home Assistant's MCP Server integration and the entities exposed to Assist, or through a custom MCP server. Voice alarms work in realtime conversations too.
  • Keep the kiosk offline. The endpoint can point at a relay on your network instead of the provider.
  • Echo cancellation built in. Kiosk Satellite runs WebRTC's echo canceller, fed everything it plays itself, from chimes and answers to the Sendspin player, intercom calls and DLNA audio. A realtime conversation no longer hears its own answers and the wake word hears you over music. Spoken answers start a fraction of a second later so the canceller has them placed from the first sound. An Echo cancellation switch in Microphone settings turns it off for microphones that cancel their own echo.
  • Docked overlay mode. A new Overlay mode setting under Appearance shows the assistant as a small bubble over the dashboard instead of full screen, for Assist pipelines and realtime conversations alike. Drag it anywhere and it remembers the spot. Double tap it to cancel. The dashboard stays live underneath and the screensaver stays up. Docked mode does not show rich results such as images, weather or videos.
  • Call another kiosk by voice. A new Kiosk Satellite intercom blueprint lets an LLM conversation agent ring another kiosk in any language the agent speaks: "call the master bedroom" (#769). A kiosk answers to its name, its device name in Home Assistant and its area. The agent can say when the other kiosk is on Do not disturb, has its intercom off or cannot be reached. Like voice alarms, it needs the kiosk's Home Assistant token to belong to an administrator.

New Feature: Wake Word Arbitration

  • The closest kiosk answers. When several kiosks hear the same wake word, only the one you spoke to answers (#790). Before, Home Assistant answered whichever kiosk reached it first, which was the fastest device rather than the nearest one.
  • Realtime conversations included. A wake word that starts a realtime conversation never goes through Home Assistant, so without arbitration every kiosk that heard it opened its own conversation.
  • How it decides. Each kiosk broadcasts how loud it heard the wake word over its own background noise and waits for the others. A kiosk that heard it quieter goes back to listening without a chime or anything on screen. Nothing you say during the wait is lost.
  • Turn it on per kiosk. Enable wake word arbitration under Voice Satellite, Wake Word on every kiosk that should take part. Arbitration window sets how long each kiosk waits for the others, from 100 to 500 ms. Raise it if a slow device like an Echo Show loses when it is closer.
  • Nothing else to set up. It works over UDP broadcast on port 2330 and needs no fleet, intercom or remote admin. The kiosks have to be on the same network, and an access point that blocks broadcast traffic between wireless clients stops it.

Notable Changes: Microphone Settings

  • Capture mode, platform echo cancellation and automatic gain control are gone. The kiosk no longer uses Android's phone call capture path or its echo canceller, noise suppressor and gain control. The call path came in 20 dB quieter on some custom ROMs, and the canceller let the assistant hear itself on most devices. Every kiosk now records from the raw microphone with the Kiosk Satellite's own echo canceller over it. Full assistant volume range is gone too.
  • Noise suppression stays. It is now WebRTC's suppressor at a moderate level, so it works the same on every device. A kiosk that had it on keeps it on.
  • Assistant sounds play as media. Chimes, answers and announcements no longer take Android's call audio route, so they follow the master volume on every device and the call volume is left alone.
  • IMPORTANT: Check your microphone level. A kiosk that was on Voice communication may hear itself louder or quieter on the raw microphone. Check the level in the Wake Word Tester and adjust Microphone gain if needed. Devices that cancel their own echo in hardware, such as the Echo Show and the Meta Portal, keep doing so.

Improvements

  • Home Assistant events for timers and alarms. Every timer fires esphome.kiosk_satellite_timer when it starts, changes, is cancelled, finishes or its alert is dismissed (#765). The fields match the Voice Satellite integration's voice_satellite_timer event, so an existing automation only needs the new event name. Alarms fire esphome.kiosk_satellite_alarm when one is created, updated or deleted and when it rings, is snoozed, stopped or silenced.
  • Night mode can hide the widgets and At a Glance. A new Hide widgets and At a Glance switch in the Clock screensaver's Night mode group leaves only the clock on screen while the room is dark (#784).
  • Vertical mode for the clock. A new Vertical mode switch under the Clock screensaver's Style stacks the hours above the minutes, so a portrait screen draws them as large as it can (#767). The Weather Mood clock has a Vertical mode switch of its own.
  • Your own certificate authorities are trusted. A Home Assistant or other local server signed by a CA you installed under Android's security settings now works without Ignore SSL errors (#775). Restart the app after installing a CA.
  • A notice when MediaTek's DuraSpeed blocks the dashboard. When the dashboard's renderer keeps failing on a tablet with DuraSpeed installed, the dashboard says so, shows the adb command that turns DuraSpeed off and links to the guide.
  • Intercom volume defaults to 60%. It was 80%, which left the kiosk more of its own speaker to cancel during hands free calls. Kiosks that already set the slider keep their value.
  • Music ducks to 10% at most during voice interactions. Anything louder reached the microphone past the echo canceller. A kiosk set higher comes down to 10% when it updates.

Fixes

  • Turning off the Person Sensor no longer crashes the app on a Meta Portal. Stopping the sensor killed its log reader under a thread still reading from it, and the error took the app down.
  • Updates install on Xiaomi tablets again. MIUI and HyperOS aborted every silent update after the first one (#768). The kiosk now asks for confirmation on the device screen when that happens.
  • USB and monitor webcams count as a camera. A device whose only camera is external, like a Raspberry Pi with a monitor's webcam, reported no camera at all (#787). The Camera picker now names it External.
  • RTSP clients that sign with the path can log in. The camera stream only accepted a Digest login with the full rtsp:// URL, so SecuritySpy always failed (#786).
  • Plugin screensavers no longer flash black when they update. New HTML now loads in the background and replaces the shown page once it has drawn (#782).
  • Home Assistant WebSockets follow the certificate settings again. A self-signed Home Assistant validated fine but could not list dashboards or Voice Satellite entities until the app restarted (#775).
  • Validating Home Assistant no longer turns Ignore SSL errors back on. One untrusted certificate made every later validation switch it on until the app restarted (#776).
  • The brightness curve's light scale no longer runs away. Dragging an end point to the edge of the chart widened the scale by another decade each time (#793). It now stops at 1 lx and 10k lx.
  • Music Assistant players are back in Voice Satellite's speaker list. Play sounds on left out every media player Music Assistant provides (#792).
  • The Sendspin progress bar no longer jumps ahead after a pause. Music Assistant 2.10 reports the resume position with the paused time added, and the kiosk now takes it back out.
  • Hands free intercom audio no longer stutters on slower kiosks. Audio chunks now go to the speaker through a background queue instead of the main thread.

Don't miss a new kiosk-satellite release

NewReleases is sending notifications on new releases.