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>
This commit is contained in:
+3
-1
@@ -99,7 +99,9 @@ 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**:
|
||||
klikgedrag, een mini-slider of een grote waarde waar ondersteund. Kies bij
|
||||
klikgedrag, een mini-slider, een grote waarde, een grafiek (sensoren), een
|
||||
weersvoorspelling (weer) of de breedte **Dubbelbreed**. De ingebouwde **Klok**
|
||||
staat bovenaan de kiezer; zon, kookwekkers en personen vind je via de filters. Kies bij
|
||||
**Pastel achtergrond** een eigen kleur met donkere tekst; **Standaard** herstelt
|
||||
de normale weergave. Hiervoor is firmware 0.2.10+ nodig. Een lege
|
||||
tegel brengt je naar de zoekbalk; toevoegen vult de eerstvolgende vrije positie.
|
||||
|
||||
@@ -127,3 +127,17 @@ sleutels, geen nieuwe firmwareflash nodig voor latere kleurkeuzes.
|
||||
Een oude apprelease van vóór 0.2.10 kent dit optieveld niet. Bij terugrollen van
|
||||
de app herstel je daarom de bijbehorende gegevensback-up; wis of negeer geen
|
||||
onbekende opties om een oud opslagbestand toch te openen.
|
||||
|
||||
### Compatibiliteit 0.2.12 / firmware 0.2.14
|
||||
|
||||
Opslagversie en tegelprotocol blijven 1. Additief: `tiles[].options.size`
|
||||
(`single`/`wide`), nieuwe `display`-waarden (`forecast` voor weer, `graph` voor
|
||||
sensoren, `digital`/`analog` voor `screen.clock`), de ingebouwde entity
|
||||
`screen.clock` en de HA-domeinen `sun`, `timer` en `person`. Statusberichten
|
||||
krijgen een optioneel object `x` met door de manager berekende waarden
|
||||
(voorspellingsdagen, zontijden in de HA-tijdzone, timer-eindtijd als epoch).
|
||||
Oudere firmware negeert `size`, nieuwe displays en `x`, maar weigert onbekende
|
||||
domeinen in de hele indeling; de manager stuurt zo'n indeling daarom pas na
|
||||
firmware 0.2.14 (`min_firmware`) en bewaart haar ondertussen. Voorspellingen
|
||||
komen via `weather.get_forecasts` met `return_response`; zonder antwoord blijft
|
||||
de weerkaart de gewone kaart. Geen gewijzigde preferences of sleutels.
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user