github jxlarrea/kiosk-satellite 2026.10.20

3 hours ago

What's new in Kiosk Satellite 2026.10.20

This release adds Custom Pages, which shows your own HTML pages from Home Assistant as dashboards. Pages can now follow the kiosk's theme and state through the JavaScript API, and Home Assistant can answer or decline intercom calls. It also fixes a camera whose stream fails cutting the dashboard off from Home Assistant, harsh-sounding announcements and vsWakeWord and openWakeWord on x86_64 devices.

New Feature: Custom Pages

  • Your own HTML pages as dashboards. The new Settings > Home Assistant > Custom Pages page lists HTML pages kept in Home Assistant's www folder. Add page takes a name and a path such as /local/kitchen.html. Save & Validate checks that Home Assistant serves the file before saving it.
  • Pick them anywhere a dashboard goes. The pages appear under Custom Pages in every dashboard picker, so one can be the Default dashboard, a stop in the dashboard view rotation, the screensaver's dashboard or a gesture's target. The ESPHome Dashboard view and Default dashboard selects offer them too.
  • Signed in for you. A page shares the dashboard's Home Assistant sign-in, so it can connect to Home Assistant's WebSocket API without a token of its own.
  • Several layouts in one page. One page can hold several layouts picked by the part of its address after #. The kiosk switches between them without reloading.
  • Edits show on the next load. Custom pages skip the browser and service worker caches, so an edited page shows on its next load or pull to refresh.
  • Follows the kiosk's theme. On a custom page, prefers-color-scheme answers with the kiosk's light or dark, in matchMedia and in the page's own @media rules, and switches live.
  • Clear status. Filter dashboard updates leaves custom pages alone and says so in Optimizations. The remote admin Overview's Home Assistant chip reads Showing custom pages while one is on screen.

Improvements

  • Pages can read the kiosk's theme and state. The JavaScript API gains kioskSatellite.getTheme(), which reports the app theme and the Home Assistant theme, and kioskSatellite.getKioskState(), which reports kiosk mode, Lockdown Mode, Home Assistant kiosk mode, the screensaver, the screen, hold mode, rotation, the camera view and the media player. The kiosksatellite:theme and kiosksatellite:kiosk-state events carry the same objects on every change.
  • Home Assistant can answer or decline an intercom call. Two new ESPHome actions per kiosk, intercom_answer and intercom_decline, pick up or turn down the call ringing on that kiosk, the same as its on-screen buttons. A kiosk without a screen can now take calls from a dashboard button, an automation or a sentence spoken to another voice device. Both report an error when nothing is ringing.

Fixes

  • A camera whose stream fails no longer cuts the dashboard off from Home Assistant. When Home Assistant could not start a camera's stream, the camera card's HLS player waited on a playlist Home Assistant never sent. Each load of that view left one of the dashboard's six connections to Home Assistant stuck, so after a handful of reloads, rotations or custom page visits nothing on the page could reach Home Assistant until the app restarted. The kiosk now gives up on such a playlist after 30 seconds and the camera falls back as it does for any failed stream.
  • Announcements sound as clear as the same speech played as media. Announcements from Home Assistant were converted to the intercom's 16 kHz format without filtering, so text to speech lost everything above 8 kHz and its "s" and "sh" sounds came out harsh at any volume. Announcements now play at the rate the audio was made at, and a custom chime is converted to match with proper filtering.
  • The remote admin's Dashboard View Rotation page stays put while you change it. Each switch or number changed on the page redrew the whole Home Assistant tab once the kiosk confirmed the change. The rotation and Return to home dashboard view cards now update in place, also when the change comes from the device.
  • vsWakeWord and openWakeWord start on x86_64 devices. The x86_64 and universal APKs had no ONNX Runtime library, so on BlissOS, ChromeOS and other x86_64 Android devices both engines and custom wake models failed to start and only microWakeWord worked. Both APKs now include it.

Don't miss a new kiosk-satellite release

NewReleases is sending notifications on new releases.