Files
Max Gramser 517b102786 Add clock, forecast, graph, sun, timer and person cards with wide tiles
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>
2026-09-13 02:09:50 +02:00

64 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.