Verify all runtime pages and document twenty-tile swipe acceptance
This commit is contained in:
@@ -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
@@ -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,
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)})
|
||||
|
||||
@@ -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
@@ -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)})
|
||||
|
||||
@@ -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,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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user