Let Wake only light the screen, and open ESP Screens without a chosen screen (0.2.65)

Wake from Home Assistant counted as a tap: it reset last_touch_ms, the one
clock that standby and Back to page 1 both read. An automation pressing Wake
on every motion therefore held an open card or page 2 up for as long as
someone moved in the room. Back to page 1 now has its own clock, last_use_ms,
written only by the boot, the touchscreen triggers, open_settings from Home
Assistant and the UI self test. Wake, an alert ending and Auto standby on
still restart the standby time, and Wake still brings back the brightness and
the second hand.

The rule moved from the interval into the script back_to_page_1_when_due.
Wake runs it right after waking a dimmed screen, so a page whose time ran out
during standby lights up on page 1 instead of jumping there a second later.

ESP Screens no longer opens the first screen by itself. Until one is picked
the page says "Choose a screen", and with no screens it still offers the
install; both cards start hidden so neither flashes while the page loads.

Checked with 48 host API checks per board, both ESP32 builds, 314 Python and
16 C++ tests, and the editor on the demo home. Firmware 0.2.56.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Max Gramser
2026-09-17 12:41:19 +02:00
parent e68162bd86
commit dfd1a26d69
17 changed files with 400 additions and 110 deletions
+5 -2
View File
@@ -229,8 +229,11 @@ written until you press the button.
Every screen has two buttons in Home Assistant (firmware 0.2.45+). An automation presses them
with the `button.press` action:
- **`button.<screen>_wake`** does what a tap does: a screen in standby lights up, and the standby
time starts counting again. On a screen that is already on, only the count starts again.
- **`button.<screen>_wake`** lights the screen up: a screen in standby goes to its normal brightness
(the second hand of an analog clock runs again), and the standby time starts counting again. On a
screen that is already on, only the count starts again. Wake is not a touch: **Back to page 1** keeps
counting from the last touch, so pressing Wake on every motion doesn't keep an open card or a later
page up, and a screen whose time ran out during standby lights up on page 1 (firmware 0.2.56+).
- **`button.<screen>_sleep`** puts the screen in standby right away, the same as when the standby
time runs out, and also works with **Auto standby** off. The screen stays in standby until someone
taps it, **Wake** is pressed or an alert comes in; switching Auto standby off doesn't end it. An alert