What's new in Kiosk Satellite 2026.8.28
Devices with the screen off would flap their Home Assistant entities unavailable and dashboards would visibly reload themselves moments after waking. This release fixes the root cause and both symptoms.
Fix: MQTT entities no longer flap unavailable, and dashboards no longer reload at wake (#184)
- The root cause of both was the Wi-Fi radio during screen-off spells: OEM power saving degrades the connection minutes into the dark, dropping it outright on some hardware (Galaxy Tab S9, every ten to thirty minutes) and delaying traffic on others (Lenovo M10 Plus) until the MQTT keepalive missed its answer every cycle, flapping every entity unavailable about once a minute around the clock. The system's keep-Wi-Fi-on lock is now held by the keep-alive service for as long as it runs and by the MQTT client while it is connected, so devices without background listening are covered too. In a 45-minute screen-off test that previously produced three connection drops, the connection did not blink once. Wall-powered kiosks pay nothing that matters for it.
- The MQTT keepalive also tolerates one late answer now: a single reply delayed past 30 seconds by a napping radio used to force a disconnect whose last-will flipped the entities offline for the reconnect to undo, over and over. A genuinely dead socket is still caught, one cycle later.
Fix: A network blip while the screen is off no longer queues a dashboard reload for the next wake
- The network-return repair judged a long-hidden page by a liveness check the page could not pass: a hidden page's timers are heavily throttled, so its Home Assistant frontend cannot finish reconnecting inside the repair's window no matter how healthy the network is. The false "dead" verdict reloaded a page nobody was looking at, and the reload sat pending under the paused view and committed the instant the screen came on.
- The repair now nudges the connection and defers its verdict until the page is visible and unthrottled again; a page genuinely still broken at that point gets its reload exactly as before.
Fix: Waking no longer force-reconnects a healthy websocket
- Every resume from a screen-off spell cycled the Home Assistant websocket as insurance against the half-open socket a long freeze can leave behind. On a healthy page that meant a connection-lost flash and every camera card tearing down and renegotiating its stream, which read as the dashboard rebuilding itself at every wake.
- The insurance now sends a ping first: a socket that answers is provably alive and left alone, and only one that stays silent, which is exactly the half-open case, still gets cycled. The reliability is unchanged; the cost on healthy wakes is gone.