517b102786
Any tile can now be double width: pack() in runtime_model.h places wide tiles in the left column and the manager preview follows the same rules. New cards: built-in clock (digital or analog, screen.clock), five-day weather forecast on a wide weather card fed by weather.get_forecasts, history sparkline for sensors, sunrise/sunset (sun.sun), live kitchen timer (timer.*, tap starts or pauses) and presence (person.*). The manager pre-computes time-zone and forecast extras in a new 'x' object and refuses layouts with new domains until the screen runs 0.2.14. The self-test follows the packing, checks custom card parts and wide widths, and diagnostics/send_layout.py pushes a demo layout of every card type for render checks without Home Assistant. App 0.2.12, firmware 0.2.14. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
64 lines
3.9 KiB
Markdown
64 lines
3.9 KiB
Markdown
# App 0.2.12 / firmware 0.2.14 — speciale kaarten en dubbelbrede tegels
|
||
|
||
## Wijzigingen
|
||
|
||
- **Dubbelbreed** (`options.size: wide`) voor elke tegel. `runtime_model.h`
|
||
bevat het pak-algoritme (`pack`): een dubbelbrede tegel begint links en telt
|
||
voor twee vakjes; een lege rechterplek ervoor blijft leeg. De app gebruikt
|
||
dezelfde regels voor het schermvoorbeeld en de paginagrenzen.
|
||
- **Klok** (`screen.clock`, ingebouwd, geen HA-entity): digitaal (grote tijd +
|
||
datum) of analoog (wijzerplaat met stippen, uur- en minuutwijzer; dubbelbreed
|
||
met de digitale tijd ernaast). Eigen cijferfont (60 px Guition, 28 px CYD).
|
||
- **Weersvoorspelling** (`display: forecast`, altijd dubbelbreed): actueel
|
||
icoon, temperatuur en omschrijving links; vijf dagen met dagnaam, icoon en
|
||
hoog/laag rechts. De manager haalt `weather.get_forecasts` (dagelijks) op en
|
||
cachet dat 30 minuten. De gewone weerkaart toont nu ook het conditie-icoon.
|
||
- **Grafiek** (`display: graph`, sensoren): sparkline van de bestaande
|
||
24-punts historie; enkelbreed in de sliderstrook, dubbelbreed rechts naast
|
||
de tekst.
|
||
- **Zon** (`sun.sun`): opkomst en ondergang in de HA-tijdzone; **kookwekker**
|
||
(`timer.*`): live aftellen op het scherm, tikken start/pauzeert, lang
|
||
indrukken opent een kaart met annuleren; **aanwezigheid** (`person.*`):
|
||
Thuis/Weg met groen accent.
|
||
- Statusberichten krijgen een optioneel object `x` met berekende waarden.
|
||
Protocol, opslagversie en preferences ongewijzigd; oudere firmware krijgt
|
||
indelingen met nieuwe domeinen pas na een update (`min_firmware`).
|
||
|
||
## Tests
|
||
|
||
- 55 Python-tests geslaagd (nieuw: opties/domeinen, `extras` met tijdzone,
|
||
voorspellingstrimmen, ingebouwde klokstatus, firmwareguard in de manager).
|
||
Alle negen C++-testprogramma's geslaagd; `test_runtime_model.cpp` test de
|
||
nieuwe domeinen en het pak-algoritme inclusief paginagrenzen.
|
||
- Beide Easy Setup-profielen compileren met ESPHome 2026.6.2 (CYD-flash 72,7 %).
|
||
Voor `lv_line` is een verborgen `line`-widget aan beide profielen toegevoegd,
|
||
omdat ESPHome LVGL-widgets alleen inschakelt die in de YAML voorkomen.
|
||
- USB-flash op beide vooraf geïdentificeerde borden; `device_info` meldt 0.2.14
|
||
met de verwachte compileertijden (Guition 02:00:44, CYD 02:01:01).
|
||
- Nieuw: `diagnostics/send_layout.py` zet een demo-indeling met alle kaarttypen
|
||
(analoge klok dubbelbreed, voorspelling, grafiek enkel- en dubbelbreed,
|
||
persoon, kookwekker, zon, grote waarde dubbelbreed, gewone weerkaart; drie
|
||
pagina's) rechtstreeks in de inbox. Daarna de renderdiagnose: op **beide**
|
||
apparaten tien paginacontroles en vijftig overlaycycli geslaagd met
|
||
`count=9`, inclusief de nieuwe controles op onderdelen binnen de kaart,
|
||
dubbele breedte en de grafiek naast/onder de tekst. Guition-heap ~6,46 MB;
|
||
CYD 43,8–53,9 kB vrij (klok- en voorspellingsonderdelen kosten RAM; de
|
||
gewone indeling houdt ~52 kB).
|
||
- Guition LVGL-snapshots (lokaal in `diagnostics/guition-0214-demo-p*.png`)
|
||
gecontroleerd: klok met wijzers, tijd en datum; vijf voorspellingskolommen
|
||
met iconen en hoog/laag; sparkline; timer die aftelt; zon; persoon.
|
||
- Daarna op beide apparaten de renderdiagnose op de echte indeling van de
|
||
eigenaar geslaagd (Guition `count=10`, CYD `count=6`).
|
||
- Gevonden en verholpen tijdens de proef: de datumregel onder het 60px-klokfont
|
||
viel buiten de kaart (nu 48/24 px met fallback zonder datum); het
|
||
sparkline-object begon op de kaartoorsprong (lijn staat nu op eigen positie);
|
||
de breedte-optie komt met het statusbericht na de indeling, dus de pagina's
|
||
worden opnieuw gepakt zodra `size` wijzigt; de zelftest in de YAML rekende
|
||
nog met zes tegels per pagina.
|
||
|
||
De productie-add-on op HA is de GitHub-versie; na de push verschijnt app
|
||
0.2.12 in de winkel. De demo-indeling wordt door de lopende manager binnen
|
||
~25 s weer vervangen door de echte indeling. Er is geen langdurige
|
||
stabiliteitsproef uitgevoerd; de fysieke bevestiging van de nieuwe kaarten in
|
||
de eigen HA-indeling volgt na de add-on-update.
|