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 <noreply@anthropic.com>
This commit is contained in:
Max Gramser
2026-09-14 11:50:56 +02:00
parent 104f20e4fa
commit 0120175dce
11 changed files with 50 additions and 12 deletions
+6
View File
@@ -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
+25
View File
@@ -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.
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -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.
+5
View File
@@ -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`.
+1 -1
View File
@@ -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'])
+5 -6
View File
@@ -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);
+3
View File
@@ -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;
+1 -1
View File
@@ -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