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>
3.9 KiB
3.9 KiB
App 0.2.12 / firmware 0.2.14 — speciale kaarten en dubbelbrede tegels
Wijzigingen
- Dubbelbreed (
options.size: wide) voor elke tegel.runtime_model.hbevat 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 haaltweather.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
xmet 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,
extrasmet tijdzone, voorspellingstrimmen, ingebouwde klokstatus, firmwareguard in de manager). Alle negen C++-testprogramma's geslaagd;test_runtime_model.cpptest 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_lineis een verborgenline-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_infomeldt 0.2.14 met de verwachte compileertijden (Guition 02:00:44, CYD 02:01:01). - Nieuw:
diagnostics/send_layout.pyzet 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 metcount=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, CYDcount=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
sizewijzigt; 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.