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

3.9 KiB
Raw Permalink Blame History

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.