github jxlarrea/kiosk-satellite 2026.8.102

latest release: 2026.8.103
4 hours ago

What's new in Kiosk Satellite 2026.8.102

Two new screensaver controls, both asked for in the last few days, and three fixes: a battery-less device no longer invents a charge, a person standing in front of the device no longer loops the screensaver and a Meta Portal says plainly when its package verifier rejected an update.

Added

  • Vignette strength sliders for the soft shading behind the screensaver's corner overlays (#366), on the device and in the remote admin alike: one in the Widgets group for every corner widget and one under the Immich screensaver's Metadata settings for the photo details, each 0 to 100 percent with the shading the app has always drawn as the default of 80, so nothing changes on an existing install. Lower one for a cleaner photo frame on an OLED panel or in a bright room, raise it for readability on bright pictures, or set it to 0 to remove the shading entirely, and the two are independent, so the clock can stay backed while the photo's details go bare. Moving either while the screensaver shows previews live, like Widget scaling.
  • A Hide names toggle in the At a Glance row's Appearance group (#370), on the device and in the remote admin alike: every entity shows its icon and value only, with the value drawn larger in the room the name took, in the chips and the floating text style both. For a small panel read from across the room, where a temperature or a humidity is already named by its icon. The custom names stay stored for when the toggle goes back off.

Fixed

  • On a device without a battery (a mains-powered box, #367) the Battery screensaver widget, the remote admin header, /api/health and the MQTT and ESPHome Battery sensors could show a made-up charge, a stuck 0% or -2147483648%. Android answers a sentinel for a battery the kernel does not expose, and the reading passed it through as a percent. The battery is now read from the platform's own presence flag and screened to 0..100 in one place, so a battery-less device reports no level: the widget stays hidden in both its modes, the header and /api/health show no percent and the MQTT and ESPHome devices carry no Battery sensor at all (an older build's MQTT entity is retracted). Charging stays, since a plugged-in box can still say so. A device that could not read its battery also used to fail the whole stats read, taking the CPU numbers with it.
  • Dismiss on person, with Postpone screensaver on person off, dismissed every screensaver a few seconds after it started while someone was in front of the device, a start-and-dismiss loop. The sensor reports every couple of seconds while a person stays, which the postpone leg needs. The dismiss leg acted on every report. It now acts only on someone arriving: a person already there when a screensaver starts leaves it up. The same rule applies to Dismiss on proximity, whose sensor repeats while something stays close. For that to feel right the sensor also has to notice a person leaving, which the 30 second heartbeat alone told it 50 seconds late. The Portal's framing director reports losing the person within seconds. An exit is now read from that, so a person who steps out and comes back is an arrival again.
  • On a Meta Portal an update that Meta's package verifier rejected read as "install declined on the device screen", since Android delivers a verifier rejection the way it delivers a cancel. The app now reports the rejection as the failure it is, with the fix: the verifier has to be turned off once over adb, which the Updates and Meta Portal docs now cover.

Don't miss a new kiosk-satellite release

NewReleases is sending notifications on new releases.