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:
@@ -1,3 +1,14 @@
|
||||
## 0.2.65 (firmware 0.2.56)
|
||||
|
||||
Wake lights the screen, and ESP Screens lets you pick the screen.
|
||||
|
||||
- **Wake is for the light.** The **Wake** button in Home Assistant still turns a screen in standby up to its normal brightness, brings back the second hand of an analog clock and starts the standby time again. It no longer counts as a touch for **Back to page 1**: that keeps counting from the last time someone touched the screen. An automation that presses Wake on every motion used to keep an open card or page 2 up for as long as someone moved in the room; now the screen goes back to page 1 on time.
|
||||
- **Straight to page 1 after standby.** When the Back to page 1 time ran out while the screen was in standby, Wake lights it up on page 1 at once, instead of showing the old page for a moment first. With time left, the page stays.
|
||||
- **Only a touch counts.** An alert that closes by itself and turning Auto standby on also start the standby time again, but not the Back to page 1 time. Opening the settings page from Home Assistant (`open_settings`) still counts, so that page stays open.
|
||||
- **ESP Screens opens without a chosen screen.** It used to open the first screen in the list; now you pick one. Until then the page says **Choose a screen**, and with no screens yet it still offers to install one.
|
||||
- The Claude skill describes the new Wake. Install it again from Settings → Claude to get it.
|
||||
- Needs firmware 0.2.56 for Wake: press **Update** on the screen. The ESP Screens change works right after updating the app. Includes everything from 0.2.64.
|
||||
|
||||
## 0.2.64 (firmware 0.2.55)
|
||||
|
||||
A long alert title stays on its own line.
|
||||
|
||||
@@ -35,5 +35,6 @@ about a second and a half, or put the built-in **Settings** card on a page. What
|
||||
there appears here within a second, and the other way around.
|
||||
|
||||
In Home Assistant every screen also has a **Wake** and a **Sleep** button (firmware 0.2.45 or
|
||||
newer). Press them from an automation with `button.press`: Wake does what a tap does, Sleep puts
|
||||
the screen in standby right away, also with Auto standby off.
|
||||
newer). Press them from an automation with `button.press`: Wake lights the screen up and restarts the
|
||||
standby time, Sleep puts the screen in standby right away, also with Auto standby off. Wake is not a
|
||||
touch, so an open card or a later page still goes back to page 1 on time (firmware 0.2.56 or newer).
|
||||
|
||||
@@ -257,7 +257,7 @@ Every screen has these entities in Home Assistant, on its ESPHome device. `<scre
|
||||
|
||||
| Entity | What it does |
|
||||
|---|---|
|
||||
| `button.<screen>_wake` | Wakes the screen the way a tap does and counts the standby time from that moment; a screen that is already on only restarts that count. Firmware {WAKE_SLEEP_MIN_FIRMWARE} or newer. |
|
||||
| `button.<screen>_wake` | Lights the screen up to its normal brightness and counts the standby time from that moment; a screen that is already on only restarts that count. Firmware {WAKE_SLEEP_MIN_FIRMWARE} or newer. Wake is not a touch: from firmware 0.2.56 an open card or a later page still goes back to page 1 on its own time, and a screen whose time ran out during standby wakes on page 1. |
|
||||
| `button.<screen>_sleep` | Puts the screen in standby right away, also with Auto standby off, and closes an alert that is showing. It stays in standby until someone taps it, Wake is pressed or an alert arrives. Firmware {WAKE_SLEEP_MIN_FIRMWARE} or newer. |
|
||||
| `switch.<screen>_auto_standby` | On: the screen dims after the standby time without a touch. Off: the screen wakes up and stays on, except after Sleep, which holds until Wake, a tap or an alert. Firmware {AUTO_STANDBY_MIN_FIRMWARE} or newer. |
|
||||
| `number.<screen>_standby_after` | Seconds without a touch before standby, 60 to 86400. |
|
||||
@@ -268,7 +268,7 @@ Every screen has these entities in Home Assistant, on its ESPHome device. `<scre
|
||||
| `switch.<screen>_night_mode` | Night mode: the night brightness between the two times below. Firmware {SETTING_ENTITIES_MIN_FIRMWARE} or newer, like every row below it. |
|
||||
| `time.<screen>_night_starts`, `time.<screen>_night_ends` | The night hours; set them with `time.set_value`. |
|
||||
| `switch.<screen>_24_hour_clock` | On: 24-hour clock. Off: 12-hour clock. |
|
||||
| `switch.<screen>_back_to_page_1` | On: after `number.<screen>_back_to_page_1_after` seconds without a touch (30 to 3600) the screen closes a card and goes back to page 1. |
|
||||
| `switch.<screen>_back_to_page_1` | On: after `number.<screen>_back_to_page_1_after` seconds without a touch (30 to 3600) the screen closes a card and goes back to page 1. Pressing Wake, an alert or Auto standby don't count as a touch. |
|
||||
| `switch.<screen>_back_to_page_1_on_standby` | On: going into standby also goes back to page 1. |
|
||||
| `switch.<screen>_swipe_between_pages` | On: swipe between pages. |
|
||||
| `select.<screen>_rotation` | Guition only: `0°`, `90°`, `180°` or `270°`. |
|
||||
|
||||
@@ -17,7 +17,7 @@ WEEKDAYS = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']
|
||||
REPO = 'https://github.com/MaxGramser/homeassistant_espscreen'
|
||||
REFS = {'cyd': 'main', 'guition': 'main'}
|
||||
# Firmware shipped with this app release; screens below it get an update offer.
|
||||
FIRMWARE_VERSION = '0.2.55'
|
||||
FIRMWARE_VERSION = '0.2.56'
|
||||
# The Auto standby switch a screen offers Home Assistant automations.
|
||||
AUTO_STANDBY_MIN_FIRMWARE = '0.2.41'
|
||||
# The settings page the screen opens itself, and the screen.settings tile that opens it.
|
||||
|
||||
@@ -76,6 +76,7 @@ function select(id) {
|
||||
$("#open-override").disabled = !screen.update?.profile;
|
||||
$("#editor").hidden = false;
|
||||
$("#empty").hidden = true;
|
||||
$("#choose").hidden = true;
|
||||
$("#dirty").textContent = "All saved";
|
||||
$("#save-detail").textContent = "Changes apply without reflashing.";
|
||||
renderScreens();
|
||||
@@ -494,6 +495,12 @@ function renderPending() {
|
||||
}
|
||||
function renderScreens() {
|
||||
renderPending();
|
||||
// ESP Screens opens without a chosen screen (app 0.2.65+): the owner picks one. Until then the right side asks
|
||||
// for that, or offers the install while there are no screens yet.
|
||||
if (!selected) {
|
||||
$("#choose").hidden = !inventory.screens.length;
|
||||
$("#empty").hidden = !!inventory.screens.length;
|
||||
}
|
||||
// Keep an open address form alive across the periodic refresh.
|
||||
if ($("#screens .screen-host")) {
|
||||
renderUpdates();
|
||||
@@ -2059,7 +2066,6 @@ async function refresh(full = true) {
|
||||
if (full) renderClaude();
|
||||
if (selected) { settleSettings(); renderSettings(); }
|
||||
if (firstCatalogue && selected && layout && !drag.active && !chipDrag.active) { renderTopbar(); renderTiles(); renderResults(); }
|
||||
if (!selected && inventory.screens.length) select(inventory.screens[0].id);
|
||||
if ($("#alerts-dialog").open) renderAlertScreens();
|
||||
} catch {
|
||||
$("#connection").textContent =
|
||||
@@ -2391,7 +2397,6 @@ function applyLive(data) {
|
||||
$("#connection").classList.toggle("online", inventory.connected);
|
||||
renderScreens();
|
||||
if (selected) { settleSettings(); renderSettings(); }
|
||||
if (!selected && inventory.screens.length) select(inventory.screens[0].id);
|
||||
}
|
||||
function listen() {
|
||||
if (stream || typeof EventSource === "undefined") return;
|
||||
|
||||
@@ -42,7 +42,13 @@
|
||||
<div id="pending"></div>
|
||||
<button class="quiet" id="refresh">↻ Refresh</button>
|
||||
</aside>
|
||||
<section id="empty" class="empty">
|
||||
<!-- Hidden until the first inventory, so neither card flashes while the page loads. -->
|
||||
<section id="choose" class="empty" hidden>
|
||||
<span class="empty-icon">▦</span>
|
||||
<h2>Choose a screen</h2>
|
||||
<p>Pick one of your screens to change its tiles, top bar and settings.</p>
|
||||
</section>
|
||||
<section id="empty" class="empty" hidden>
|
||||
<span class="empty-icon">▦</span>
|
||||
<h2>Start with a screen</h2>
|
||||
<p>
|
||||
|
||||
@@ -735,6 +735,14 @@ dialog label {
|
||||
#editor {
|
||||
padding: 18px;
|
||||
}
|
||||
/* The screens sit right above it on a phone: a short prompt, not a tall empty card. */
|
||||
#choose {
|
||||
min-height: 0;
|
||||
padding: 18px;
|
||||
}
|
||||
#choose .empty-icon {
|
||||
display: none;
|
||||
}
|
||||
.savebar {
|
||||
align-items: stretch;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: ESP Screen Manager
|
||||
version: "0.2.64"
|
||||
version: "0.2.65"
|
||||
slug: esp_screen_manager
|
||||
description: Choose tiles for your CYD and Guition touchscreen, without reflashing.
|
||||
url: https://github.com/MaxGramser/homeassistant_espscreen
|
||||
|
||||
Reference in New Issue
Block a user