From 0120175dce77d6bfe73db1bb4c6b3aede0951b7c Mon Sep 17 00:00:00 2001 From: Max Gramser Date: Mon, 14 Sep 2026 11:50:56 +0200 Subject: [PATCH] Show a green dot for online screens in the screen list (0.2.30) The status line under each screen name used the muted text colour for the online dot, so online and offline screens looked alike. The dot is now its own span and turns green when the screen is online; offline keeps the grey open circle. Firmware 0.2.25 for both boards carries only the new version. Co-Authored-By: Claude Opus 5 --- docs/RELEASING.md | 6 ++++++ docs/TEST_RESULTS_0230.md | 25 +++++++++++++++++++++++++ guition-4848s040.yaml | 2 +- home-like-2432s028.yaml | 2 +- packages/cyd.yaml | 2 +- packages/guition.yaml | 2 +- screen_manager/CHANGELOG.md | 5 +++++ screen_manager/app/core.py | 2 +- screen_manager/app/static/app.js | 11 +++++------ screen_manager/app/static/style.css | 3 +++ screen_manager/config.yaml | 2 +- 11 files changed, 50 insertions(+), 12 deletions(-) create mode 100644 docs/TEST_RESULTS_0230.md diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 78401b3..3216205 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -177,6 +177,12 @@ staan iconen in de browser uit het midden); draai daarna `generate_packages.py`. De substituties `MDI_GLYPH_*` zijn vervallen: `TILEn_ICON` in handmatige profielen moet uit de set komen. Geen gewijzigde preferences of sleutels. +### Compatibiliteit 0.2.30 / firmware 0.2.25 + +Alleen de editor: het statusbolletje in de schermlijst is een eigen `span.dot` +(groen met `.online`). Firmware krijgt alleen een nieuw versienummer; protocol, +opslag, preferences en sleutels ongewijzigd. + ### Compatibiliteit 0.2.29 / firmware 0.2.24 Alleen firmware (Guition). `cyd::EdgeSwipe` (in `cyd_ui.h`, getest in diff --git a/docs/TEST_RESULTS_0230.md b/docs/TEST_RESULTS_0230.md new file mode 100644 index 0000000..99200ab --- /dev/null +++ b/docs/TEST_RESULTS_0230.md @@ -0,0 +1,25 @@ +# Testresultaten app 0.2.30 / firmware 0.2.25 (2026-09-14) + +Het statusbolletje in de schermlijst van de editor is groen voor online schermen. +De firmware krijgt alleen een nieuw versienummer. + +## Wat veranderde + +- `app.js`: de statusregel onder de schermnaam zet het bolletje in een eigen + `span.dot` (met `.online` als het scherm online is); `style.css` kleurt + `.screen-main .dot.online` groen (`#2e9d62`). Offline houdt de gedempte tekstkleur. +- `SCREEN_FIRMWARE_VERSION` 0.2.25 in beide bordprofielen, pakketten en + `core.FIRMWARE_VERSION`; bench-kopieën in `.esphome/` bijgewerkt. + +## Geautomatiseerd + +- Python: 84 tests OK. `generate_packages.py --check` groen. +- C++ (clang++ -std=c++17 -Wall -Wextra -Werror -I.): alle `tests/*.cpp` PASS. +- ESPHome compile: `easy-guition-device.yaml` SUCCESS in 43 s (RAM 31,9%, flash 18,3%), + `easy-cyd-device.yaml` SUCCESS in 44 s (RAM 30,9%, flash 76,0%). +- Lokale add-on (devserver) met twee nep-schermen: berekende kleur van het bolletje + `rgb(46, 157, 98)` voor online, `rgb(105, 118, 137)` voor offline. + +## Nog niet geverifieerd + +- Het bolletje in de echte add-on op de Yellow na **Bijwerken** in de add-on store. diff --git a/guition-4848s040.yaml b/guition-4848s040.yaml index 48d01ea..4315cd7 100644 --- a/guition-4848s040.yaml +++ b/guition-4848s040.yaml @@ -1,7 +1,7 @@ # Guition ESP32-S3-4848S040 / 4-inch EU wallbox, 480x480 IPS + GT911. # Use guition-device.yaml; see docs/GUITION.md. CYD hardware is a separate profile. substitutions: - SCREEN_FIRMWARE_VERSION: "0.2.24" + SCREEN_FIRMWARE_VERSION: "0.2.25" # A tap survives a finger that drifts up to this far (480 px over 72 mm: 1 cm); further is a swipe. TOUCH_MOVE_LIMIT_PX: "67" # Shortest contact that counts as a tap; a resistive panel bounces, a capacitive one does not. diff --git a/home-like-2432s028.yaml b/home-like-2432s028.yaml index 86f43e7..341c188 100644 --- a/home-like-2432s028.yaml +++ b/home-like-2432s028.yaml @@ -58,7 +58,7 @@ ############################################################ substitutions: - SCREEN_FIRMWARE_VERSION: "0.2.24" + SCREEN_FIRMWARE_VERSION: "0.2.25" # A tap survives a finger that drifts up to this far (320 px over 58 mm: 1 cm); further is a swipe. TOUCH_MOVE_LIMIT_PX: "56" # Shortest contact that counts as a tap; a resistive panel bounces, a capacitive one does not. diff --git a/packages/cyd.yaml b/packages/cyd.yaml index 835fc6d..51a1004 100644 --- a/packages/cyd.yaml +++ b/packages/cyd.yaml @@ -59,7 +59,7 @@ ############################################################ substitutions: - SCREEN_FIRMWARE_VERSION: "0.2.24" + SCREEN_FIRMWARE_VERSION: "0.2.25" # A tap survives a finger that drifts up to this far (320 px over 58 mm: 1 cm); further is a swipe. TOUCH_MOVE_LIMIT_PX: "56" # Shortest contact that counts as a tap; a resistive panel bounces, a capacitive one does not. diff --git a/packages/guition.yaml b/packages/guition.yaml index 0f10c3e..0a78897 100644 --- a/packages/guition.yaml +++ b/packages/guition.yaml @@ -2,7 +2,7 @@ # Guition ESP32-S3-4848S040 / 4-inch EU wallbox, 480x480 IPS + GT911. # Use guition-device.yaml; see docs/GUITION.md. CYD hardware is a separate profile. substitutions: - SCREEN_FIRMWARE_VERSION: "0.2.24" + SCREEN_FIRMWARE_VERSION: "0.2.25" # A tap survives a finger that drifts up to this far (480 px over 72 mm: 1 cm); further is a swipe. TOUCH_MOVE_LIMIT_PX: "67" # Shortest contact that counts as a tap; a resistive panel bounces, a capacitive one does not. diff --git a/screen_manager/CHANGELOG.md b/screen_manager/CHANGELOG.md index e171875..bd0ca61 100644 --- a/screen_manager/CHANGELOG.md +++ b/screen_manager/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.2.30 (firmware 0.2.25) + +- **Groen bolletje voor online schermen**: in de lijst met schermen is het bolletje voor **Online** nu groen, zodat je in één oogopslag ziet welke schermen bereikbaar zijn. **Offline** blijft een grijs open rondje. +- Firmware 0.2.25 voor beide borden; de app biedt de update aan. Inhoudelijk verandert er in de firmware niets, alleen het versienummer. + ## 0.2.29 (firmware 0.2.24) - **Vegen vanaf de zijrand op de Guition**: met **Vegen tussen pagina's** aan wissel je van pagina door vanaf de linker- of rechterrand naar binnen te vegen, zoals terug-vegen op een telefoon. Vanaf rechts naar links is volgende, vanaf links naar rechts vorige. Langzaam of snel maakt niet uit: de veeg begint in een band van 32 px (circa 5 mm) langs de rand en telt na 40 px (circa 6 mm) naar binnen, duidelijk meer zijwaarts dan omhoog of omlaag (`EDGE_SWIPE_BAND_PX`, `EDGE_SWIPE_TRAVEL_PX`). Werkt in alle vier de rotaties. Een veeg die midden op het scherm begint doet niets meer, zodat tikken en slepen op tegels nooit per ongeluk van pagina wisselen; de tegel onder een randveeg krijgt geen tik. Het log meldt `randveeg: pagina 0 -> 1`. diff --git a/screen_manager/app/core.py b/screen_manager/app/core.py index 737ff54..38fd4ee 100644 --- a/screen_manager/app/core.py +++ b/screen_manager/app/core.py @@ -16,7 +16,7 @@ WEEKDAYS = ['ma', 'di', 'wo', 'do', 'vr', 'za', 'zo'] 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.24' +FIRMWARE_VERSION = '0.2.25' ATTRS = frozenset('brightness percentage current_position current_temperature temperature current_humidity min_temp max_temp target_temp_step supported_color_modes hvac_modes hvac_action hs_color color_temp_kelvin min_color_temp_kelvin max_color_temp_kelvin fan_speed_list unit_of_measurement battery_level fan_speed volume_level is_volume_muted media_title options min max step temperature_unit supported_features device_class next_rising next_setting finishes_at duration remaining humidity wind_speed wind_speed_unit apparent_temperature fan_modes swing_modes fan_mode swing_mode'.split()) # Attributes whose boolean value the screen needs; every other bool stays behind. BOOL_ATTRS = frozenset(['is_volume_muted']) diff --git a/screen_manager/app/static/app.js b/screen_manager/app/static/app.js index 4fc8541..0ca04be 100644 --- a/screen_manager/app/static/app.js +++ b/screen_manager/app/static/app.js @@ -331,13 +331,12 @@ function renderScreens() { ); const b = node("button", undefined, "screen-main"); b.type = "button"; - b.append( - node("strong", screen.name), - node( - "small", - `${screen.online ? "● Online" : "○ Offline"}${screen.area ? " · " + screen.area : ""} · firmware ${screen.firmware || "onbekend"}`, - ), + const meta = node("small"); + meta.append( + node("span", screen.online ? "●" : "○", `dot ${screen.online ? "online" : ""}`), + ` ${screen.online ? "Online" : "Offline"}${screen.area ? " · " + screen.area : ""} · firmware ${screen.firmware || "onbekend"}`, ); + b.append(node("strong", screen.name), meta); b.onclick = () => select(screen.id); item.append(b); const update = renderUpdate(screen); diff --git a/screen_manager/app/static/style.css b/screen_manager/app/static/style.css index 5d80a7f..35e4be0 100644 --- a/screen_manager/app/static/style.css +++ b/screen_manager/app/static/style.css @@ -185,6 +185,9 @@ aside h2 { .screen-main small { margin-top: 3px; } +.screen-main .dot.online { + color: #2e9d62; +} .screen-update { display: flex; align-items: center; diff --git a/screen_manager/config.yaml b/screen_manager/config.yaml index c93b1c2..2b6196f 100644 --- a/screen_manager/config.yaml +++ b/screen_manager/config.yaml @@ -1,5 +1,5 @@ name: ESP Screen Manager -version: "0.2.29" +version: "0.2.30" slug: esp_screen_manager description: Kies tegels voor je CYD en Guition touchscreen, zonder opnieuw flashen. url: https://github.com/MaxGramser/homeassistant_espscreen