What's new in Kiosk Satellite 2026.8.53
Kiosk Satellite is now a native ESPHome device, with the full entity catalog and a complete Bluetooth proxy with active device connections, all served over one automatically discovered connection.
New Feature: Your kiosk is now an ESPHome device
-
Turn on Enable ESPHome in the new ESPHome settings section and Home Assistant discovers the kiosk on its own, exactly like an ESP32 running ESPHome: it pops up as a discovered device, you paste the encryption key the kiosk shows in its settings, and you are done. No broker to install, no credentials to copy around, no custom integration.
-
Turn on Expose kiosk entities and the discovered device carries the complete entity catalog the MQTT integration publishes: the Screen light with brightness, the Screensaver switches, the Volume, Assistant volume, Media volume and Screensaver brightness sliders, every action button, the Camera view and Dashboard view selects with their per-view Show buttons, the settings switches and selects, the Clock background text, the Update entity with install straight from Home Assistant, a real camera entity streaming frames over the ESPHome image protocol, and the whole diagnostics set from battery and CPU temperature to ambient light, motion, next alarm and the remote admin URL. Entity names mirror the MQTT ones, so migrating an automation only means swapping the device half of the entity id.
-
IMPORTANT: ESPHome is the integration path going forward, and the MQTT integration will be removed in a future version, so start migrating now. MQTT keeps working for the whole deprecation window, and both surfaces can run at once while you move your automations over; entities then exist twice, once per integration, and the kiosk warns you right where the choice is made. The entities toggle is off by default on purpose: if you have MQTT today and enable ESPHome just for the Bluetooth proxy, nothing gets duplicated until you flip that switch yourself.
New Feature: Bluetooth proxy
- The kiosk relays BLE advertisements from everything around it to Home Assistant, exactly like an ESPHome Bluetooth proxy: BTHome sensors, thermometers, iBeacons, plant sensors, presence beacons. Every kiosk on a wall becomes a Bluetooth coverage point in its room, and several kiosks form a mesh on their own, since Home Assistant merges its Bluetooth sources and listens through whichever proxy hears a device best. Scanning is built to survive what Android does to long-running scans: a watchdog restarts a silently stalled scanner, a Bluetooth toggle or stack crash suspends the proxy and it resumes the moment the adapter returns, and the screen turning off does not stop it.
New Feature: Active Bluetooth device connections
-
With Allow device connections on, Home Assistant can connect to Bluetooth devices through the kiosk, not just hear them: locks, buttons, curtain motors, power stations, anything it controls over an active connection, including pairing and cache management.
-
The connection budget is a hard Android limit per proxy, two simultaneous connections on Android 11 and older and three on newer versions, and the kiosk is honest about it everywhere: Home Assistant is told the budget so it routes extra devices through other proxies, a "Bluetooth connections" diagnostic sensor shows "1 of 3" style usage at a glance, and a hint under the toggle states this kiosk's limit.
-
A Minimum signal for connections floor makes a kiosk refuse devices it can barely hear, so a closer proxy takes them instead of a distant one winning a link it cannot hold.
New Feature: Nearby devices list
-
The ESPHome settings section lists everything the kiosk currently hears, identified as far as honesty allows: broadcast names where they exist, otherwise the device class read from the advertisement itself (a BTHome sensor, an Apple Find My device, a Windows PC, a Govee light), otherwise the manufacturer. Rows sort by last seen, name, MAC address or signal strength, signal strength wears a green, yellow or red tag, connected devices pin to the top, and rotating private addresses are marked as such instead of pretending to be trackable. An optional, off-by-default online lookup names remaining unknowns by manufacturer prefix via api.macvendors.com, sending only the 3-byte prefix and nothing else. The same list reaches Home Assistant as a "Bluetooth devices nearby" sensor.
-
Every ESPHome feature ships off by default and is its own explicit opt-in: the integration, the entities, the Bluetooth proxy and device connections. Existing test setups with the Bluetooth proxy enabled migrate to the new master switch automatically.
New Feature: Camera views can play sound (#235)
- Play sound for a single camera, off by default under Camera Streams, plays a camera's audio whenever it is the only one on screen: a single-camera view, a camera focused with a tap, or the camera screensaver showing one camera, which is the baby-monitor setup this was asked for. Grids with several cameras always stay silent, and nothing changes for existing views while the setting is off. Works over both WebRTC and MSE; AAC and Opus are the safe audio codecs.
Improvement: Silent assistant on devices with a broken hardware audio decoder (#234)
- On a device whose vendor codec service has crashed, every hardware MP3 decode dies the moment it starts, which left the assistant answering visually in total silence. Chimes and TTS now retry once on the software decoders, which run inside the app and keep working when the vendor service is down.
Fixed: Large photo sets for the Photo Gallery screensaver (#233)
- Picking hundreds of photos no longer fails silently: the long hand-over wait is covered by a progress dialog, the new set only replaces the old one once every photo has copied so a failure keeps your previous selection intact, and errors show a message instead of nothing happening.
Fixed: Black bar at the bottom of panel views in HA Kiosk Mode (#232)
- Cards that fill a panel view, the advanced camera card among them, size themselves against the header height Home Assistant publishes. The built-in kiosk mode now declares the zero-height override the kiosk-mode plugin used to declare, so a full-screen camera panel really fills the screen, and notched screens keep their cutout inset.