Verify all runtime pages and document twenty-tile swipe acceptance

This commit is contained in:
Max Gramser
2026-09-12 17:36:48 +02:00
parent 439dd721f2
commit a14a66f699
9 changed files with 52 additions and 11 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ plus remote ESPHome-pakketten. Geen token of blueprint nodig. Tegels staan in de
permanente add-ondata; wifi/API/OTA blijven in de eigen ESPHome-YAML. Lees
docs/RELEASING.md voordat je updates publiceert. Main distribueert beide borden.
Genereer packages met tools/generate_packages.py; bewerk ze niet handmatig.
Runtime-modus ondersteunt alle kaarten op alle tien posities. De positiebeperkingen
Runtime-modus ondersteunt alle kaarten op alle twintig posities. De positiebeperkingen
hieronder gelden uitsluitend voor de oude handmatige profielen.
Behoud gegevensschema, protocolcompatibiliteit, unieke sleutels en CYD-preferences.
Test updates met bestaande gegevens. Publiceer geen onbekende opslagversie zonder
+6 -1
View File
@@ -108,7 +108,7 @@ je later opnieuw meten. Voor diagnose en de oudere handmatige installatie:
## 5. Kies en wijzig je tegels
Selecteer je scherm, vul de titel in en zoek entiteiten. De kiezer heeft
domeinfilters met gekleurde iconen. Je kunt maximaal tien tegels toevoegen.
domeinfilters met gekleurde iconen. Je kunt maximaal twintig tegels toevoegen.
Het schermvoorbeeld toont hun plaats: twee kolommen, zes tegels per pagina.
Sleep een tegel naar een andere tegel om te ordenen. Klik op een tegel voor
een eigen naam, de pijltjes voor volgorde en **Bediening & weergave instellen**:
@@ -125,6 +125,11 @@ Klik **Opslaan & naar scherm** om je wijzigingen door te sturen.
- Scene/script: tik om uit te voeren; button/input_button: tik om in te drukken.
- Sensor/binary_sensor/input_select: toont de waarde, voert geen actie uit.
Vanaf firmware 0.2.7 passen twintig tegels op maximaal vier pagina’s. Oudere
firmware houdt de limiet van tien totdat je bijwerkt. Via **Algemene instellingen
→ Vegen tussen pagina’s** kun je horizontaal swipen inschakelen. Sliders bedienen
alleen hun waarde; detailmenu’s en standby wisselen niet van pagina.
Er staan zes tegels op een pagina. Bij maximaal zes verdwijnen Vorige/Volgende.
De standby-tijd is standaard tien minuten. Bij offline apparaten blokkeert het
scherm acties. Als de app/HA langer dan circa 95 seconden geen updates geeft,
+10
View File
@@ -91,3 +91,13 @@ De ingebouwde CLI bewaart opnieuw te downloaden caches onder `/data/build` en
`/data/platformio`. Alleen deze mappen zijn uitgesloten van appback-ups via
`backup_exclude`. `/data/screens.json` en eigen ESPHome-configuraties blijven
back-upgegevens; sluit nooit `/data` als geheel uit.
### Compatibiliteit 0.2.7
Twintig runtime-tegels vereisen firmware 0.2.7+. De manager controleert die versie
voor opslaan en verzenden van grotere indelingen. Bestaande indelingen blijven
behouden bij oudere firmware. Oude appversies ondersteunen niet meer dan tien;
breng de indeling eerst terug tot tien of herstel hun gegevensback-up bij rollback.
`settings.swipe_pages` is additief in opslagversie 1. Op de draad staat het buiten
het ongewijzigde elfvelden-settingsobject. De bestaande preferences blijven gelijk;
alleen swipe gebruikt een nieuwe eigen uint32-key `0x53575031`, standaard uit.
+22
View File
@@ -21,3 +21,25 @@ Controles tot nu toe: 46 Python-tests, acht C++-tests en alle vier ESPHome-build
(Easy/manual, Guition/CYD) geslaagd. Test twintig entities/21 berichten, overflow,
firmwaregate, oude instellingen op de draad en contact consumeren geslaagd.
Fysieke swipeacceptatie en live HA-update volgen hieronder.
## Live acceptatie
- Add-on bijgewerkt op HA naar 0.2.7; firmware via OTA geïnstalleerd.
- Tijdelijk twintig echte entiteiten ingesteld; tien extra sensoren hadden tap=none.
Swipe aan en standby tijdelijk 600 seconden voor de test.
- Eigenaar bevestigt: “swipe enzo werkt goed”. Guition fysiek getest; CYD is niet
aangesloten en blijft voor swipe opt-in.
- De aangepaste ui_self_test doorloopt alle beschikbare pagina's: tien controles
met count=20 en vijftig overlaywissels PASS. Guition vrije heap circa 6,52 MB
inclusief PSRAM; renderframes lopen door. Tijdens de stresstest enkele
ui_refresh-meldingen rond 56–58 ms (boven de algemene 50 ms-waarschuwingsgrens).
- Definitieve vier firmwarebuilds opnieuw geslaagd na uitbreiding van de diagnose.
Statische RAM-buildcijfers: Guition 91.564 bytes, CYD 88.436 bytes. Dit zijn geen
runtime-heapmetingen voor de niet-aangesloten CYD.
- Na test de tijdelijke sensoren verwijderd: oorspronkelijke tien tegels exact
behouden, standby terug naar de gekozen 60 seconden, swipe blijft aan.
Bij downgraden van de add-on naar een versie met maximaal tien tegels eerst de
indeling terugbrengen tot tien of de bijbehorende oudere gegevensback-up herstellen.
Swipe werkt volgens de native LVGL-gebaarafhandeling:
https://lvgl.io/docs/open/9.0/overview/indev
+3 -2
View File
@@ -4456,7 +4456,8 @@ script:
then:
- lambda: |-
id(last_touch_ms) = millis();
id(tile_page) = 1;
static unsigned test_page=0;
id(tile_page) = runtime_tiles::enabled ? test_page++ % std::max(1,(int(runtime_tiles::model.count)+5)/6) : 1;
- script.execute: show_tile_page
- delay: 150ms
- lambda: |-
@@ -4467,7 +4468,7 @@ script:
id(tile6), id(tile7), id(tile8), id(tile9), id(tile10)};
bool ok = guition::check_geometry(id(home_page)->obj);
for (int i = 0; i < 10; ++i) {
bool visible = i < count && (paginated ? i >= 6 : i < 6);
bool visible = runtime_tiles::enabled ? i<6 && i+id(tile_page)*6<count : i < count && (paginated ? i >= 6 : i < 6);
ok = ok && (lv_obj_has_flag(tiles[i], LV_OBJ_FLAG_HIDDEN) != visible);
}
for (lv_obj_t* control : {id(page_prev), id(page_next), id(page_number)})
+3 -2
View File
@@ -4591,7 +4591,8 @@ script:
then:
- lambda: |-
id(last_touch_ms) = millis();
id(tile_page) = 1;
static unsigned test_page=0;
id(tile_page) = runtime_tiles::enabled ? test_page++ % std::max(1,(int(runtime_tiles::model.count)+5)/6) : 1;
- script.execute: show_tile_page
- delay: 150ms
- lambda: |-
@@ -4602,7 +4603,7 @@ script:
id(tile6), id(tile7), id(tile8), id(tile9), id(tile10)};
bool ok = true;
for (int i = 0; i < 10; ++i) {
bool visible = i < count && (paginated ? i >= 6 : i < 6);
bool visible = runtime_tiles::enabled ? i<6 && i+id(tile_page)*6<count : i < count && (paginated ? i >= 6 : i < 6);
ok = ok && (lv_obj_has_flag(tiles[i], LV_OBJ_FLAG_HIDDEN) != visible);
}
for (lv_obj_t* control : {id(page_prev), id(page_next), id(page_number)})
+3 -2
View File
@@ -4524,7 +4524,8 @@ script:
then:
- lambda: |-
id(last_touch_ms) = millis();
id(tile_page) = 1;
static unsigned test_page=0;
id(tile_page) = runtime_tiles::enabled ? test_page++ % std::max(1,(int(runtime_tiles::model.count)+5)/6) : 1;
- script.execute: show_tile_page
- delay: 150ms
- lambda: |-
@@ -4535,7 +4536,7 @@ script:
id(tile6), id(tile7), id(tile8), id(tile9), id(tile10)};
bool ok = true;
for (int i = 0; i < 10; ++i) {
bool visible = i < count && (paginated ? i >= 6 : i < 6);
bool visible = runtime_tiles::enabled ? i<6 && i+id(tile_page)*6<count : i < count && (paginated ? i >= 6 : i < 6);
ok = ok && (lv_obj_has_flag(tiles[i], LV_OBJ_FLAG_HIDDEN) != visible);
}
for (lv_obj_t* control : {id(page_prev), id(page_next), id(page_number)})
+3 -2
View File
@@ -4389,7 +4389,8 @@ script:
then:
- lambda: |-
id(last_touch_ms) = millis();
id(tile_page) = 1;
static unsigned test_page=0;
id(tile_page) = runtime_tiles::enabled ? test_page++ % std::max(1,(int(runtime_tiles::model.count)+5)/6) : 1;
- script.execute: show_tile_page
- delay: 150ms
- lambda: |-
@@ -4400,7 +4401,7 @@ script:
id(tile6), id(tile7), id(tile8), id(tile9), id(tile10)};
bool ok = guition::check_geometry(id(home_page)->obj);
for (int i = 0; i < 10; ++i) {
bool visible = i < count && (paginated ? i >= 6 : i < 6);
bool visible = runtime_tiles::enabled ? i<6 && i+id(tile_page)*6<count : i < count && (paginated ? i >= 6 : i < 6);
ok = ok && (lv_obj_has_flag(tiles[i], LV_OBJ_FLAG_HIDDEN) != visible);
}
for (lv_obj_t* control : {id(page_prev), id(page_next), id(page_number)})
+1 -1
View File
@@ -1,6 +1,6 @@
# ESP Screen Manager
Zoek je Home Assistant-entiteiten, orden maximaal tien tegels en stuur wijzigingen
Zoek je Home Assistant-entiteiten, orden maximaal twintig tegels en stuur wijzigingen
naar een CYD- of Guition-scherm zonder opnieuw flashen. Met installatiehulp,
unieke apparaat-YAML en ondersteuning voor meerdere schermen.