Direct controls on wide cards, weather/climate cards, spinner busy state (0.2.23)
App 0.2.23 / firmware 0.2.19. - Wide cards of climate, switch, light, fan, vacuum, cover, media_player, number, select, timer, scene, script and button show Home Assistant style controls on the right (keys, -/+ pill with debounced send, slider with handle, toggle, run key); per-tile choice `options.controls` in the editor with mockup preview; the add-on sends only the set a card really shows. - Weather card: now + next hours and coming days with rain, from daily and hourly forecasts; scenes/scripts/buttons show when they last ran. - Climate card: power key, tap-to-toggle option, fan and swing rows in a redesigned mode picker (grey backdrop, white chips, accent selection). - Busy state as a spinner on a translucent sheet; render guards so only changed styles reach LVGL; dark theme removed from the runtime code. - supported_features above 1e6 reaches the screen; middle dot in text fonts; 18 control glyphs in the icon fonts; diagnostics services preview_climate_picker and preview_busy; demo layout --controls. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
+9
-1
@@ -100,7 +100,15 @@ 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, een grote waarde, een grafiek (sensoren), een
|
||||
weersvoorspelling (weer) of de breedte **Dubbelbreed**. De ingebouwde **Klok**
|
||||
weersvoorspelling (weer) of de breedte **Dubbelbreed**. Een dubbelbrede tegel van
|
||||
een klimaat, schakelaar, lamp, ventilator, stofzuiger, zonwering, mediaspeler,
|
||||
getal, keuzelijst, kookwekker, scène, script of knop krijgt rechts **directe
|
||||
bediening** zoals de rijen in Home Assistant (bijvoorbeeld temperatuur − / +,
|
||||
open/stop/dicht, volume met dempen, een toggle); kies onder **Directe bediening
|
||||
op de tegel** welke set, of **Geen** (firmware 0.2.19+). **Bediening openen** op
|
||||
een weertegel toont de weerkaart met de komende uren en dagen (regen inbegrepen);
|
||||
op een klimaattegel de kaart met aan/uit-knop en de modus-, ventilator- en
|
||||
zwenkstanden. 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 en **Geen** laat de kaart weg, zodat de inhoud even groot
|
||||
|
||||
@@ -177,6 +177,34 @@ staan iconen in de browser uit het midden); draai daarna `generate_packages.py`.
|
||||
De substituties `MDI_GLYPH_*` zijn vervallen: `TILEn_ICON` in handmatige
|
||||
profielen moet uit de set komen. Geen gewijzigde preferences of sleutels.
|
||||
|
||||
### Compatibiliteit 0.2.23 / firmware 0.2.19
|
||||
|
||||
Opslagversie en tegelprotocol blijven 1. `tiles[].options.controls` is additief:
|
||||
`none` of een set uit `CONTROLS` in `core.py` per domein (climate `setpoint`/`mode`,
|
||||
switch/light/fan `toggle` plus `brightness`/`speed`, vacuum/cover/timer `buttons`,
|
||||
cover `position`, media_player `volume`/`playback`, number `stepper`/`slider`,
|
||||
select `stepper`, scene/script/button `run`). Op de draad stuurt de manager in
|
||||
`o.controls` alleen de set die de kaart werkelijk toont: uitsluitend dubbelbreed,
|
||||
weergave standaard en zonder mini-schuif; zonder keuze de eerste set van het
|
||||
domein, bij `none` niets. Statusberichten krijgen de attributen `device_class`,
|
||||
`hvac_action` en `is_volume_muted` (de enige boolean die meegaat). Oudere
|
||||
firmware negeert het veld en toont de gewone brede kaart, daarom geen
|
||||
`min_firmware`; het tegelpaneel meldt vanaf welke firmware het werkt. Een oude
|
||||
editor die `controls` weglaat behoudt de opgeslagen keuze (zoals `background`).
|
||||
De firmware bouwt het paneel lui per set (`layout_panel`), stuurt −/+ na 700 ms
|
||||
als één `set_temperature`/`set_value` en laat de lokale waarde staan tot HA hem
|
||||
meldt (of 10 s). De iconfonts krijgen 18 vaste bedieningsglyphs
|
||||
(`tile_icons.FIXED`). Geen gewijzigde preferences of sleutels.
|
||||
|
||||
Ook additief in dezelfde release: `x.hours` (maximaal acht uren `t`, `c`, `h`,
|
||||
`p`, `r`) en `p`/`r` per dag in `x.days` voor de weerkaart; `x.last` (unix-tijd)
|
||||
voor scènes, scripts en knoppen; de attributen `humidity`, `wind_speed`,
|
||||
`wind_speed_unit`, `apparent_temperature`, `fan_modes`, `swing_modes`, `fan_mode`
|
||||
en `swing_mode`. `supported_features` mag boven de grens van een miljoen. Oudere
|
||||
firmware negeert al deze velden. De bezig-status gebruikt LVGL's spinner; beide
|
||||
bordprofielen bevatten daarvoor een verborgen `spinner` (`busy_spinner_seed`),
|
||||
anders compileert ESPHome `LV_USE_SPINNER` als 0.
|
||||
|
||||
### Compatibiliteit 0.2.12 / firmware 0.2.14
|
||||
|
||||
Opslagversie en tegelprotocol blijven 1. Additief: `tiles[].options.size`
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# Testresultaten app 0.2.23 / firmware 0.2.19 (2026-09-13)
|
||||
|
||||
Directe bediening op dubbelbrede tegels, weerkaart met uren en dagen, klimaatkaart
|
||||
met aan/uit-knop en ventilator-/zwenkstanden, "Laatst"-status voor scènes, scripts
|
||||
en knoppen, bezig-status als spinner, lichter tekenen, donker thema verwijderd.
|
||||
|
||||
## Geautomatiseerd
|
||||
|
||||
- Python: `.venv-portal/bin/python -m unittest discover -s tests` → 82 tests OK
|
||||
(nieuw: `test_tile_controls.py`, `test_rich_cards.py`).
|
||||
- C++: alle `tests/*.cpp` met `c++ -std=c++17 -Wall -Wextra -pedantic -I.` → 11 PASS
|
||||
(nieuw: `test_tile_controls.cpp`; `test_cyd_ui.cpp` dekt `cyd::list_item`).
|
||||
- `tools/generate_icons.py --check` (177 glyphs) en `tools/generate_packages.py --check` groen.
|
||||
- ESPHome 2026.6.2: `easy-guition-device.yaml` en `easy-cyd-device.yaml` compileren
|
||||
(lokale componenten en fonts); beide via OTA geflasht, `device_info` meldt 0.2.19 (build 14:53).
|
||||
|
||||
## Op de borden
|
||||
|
||||
- Guition `ui_self_test` met de demo-indeling `send_layout.py --controls` (18 tegels,
|
||||
6 pagina's): 10/10 `page_check=PASS`, geen `Panel bounds`, `Tile geometry` of
|
||||
`GEOMETRY FAIL`; heap stabiel rond 6,33 MB.
|
||||
- CYD `ui_self_test` met dezelfde demo: 10/10 PASS, heap 20–26 KB vrij.
|
||||
- LVGL-snapshots (Guition, `capture_ui.py`) bekeken: gordijnknoppen, temperatuur-pill,
|
||||
volumeschuif met greep en dempknop, modusknoppen (actieve in accent), playback,
|
||||
stofzuiger (stop/dock grijs in het dock), toggle op pastelkaart, helderheidsschuif,
|
||||
−/+ voor getallen, keuze-chevrons, kookwekker, "Activeren"; weerkaart in twee kaarten
|
||||
(nu + komende uren, komende dagen met regen en hoog/laag); "Laatst 12:09" en
|
||||
"Gisteren 09:17"; spinner-laag op een bezige tegel; moduskiezer met drie chips per rij.
|
||||
- De bezig-status wordt niet meer elke 250 ms herrenderd; stijlzetters in `render()`
|
||||
raken LVGL alleen bij een echte wijziging.
|
||||
|
||||
## Bekend / nog te doen
|
||||
|
||||
- De productie-add-on (0.2.22) stuurt `controls`, `x.hours`, `x.last`, `fan_modes` enz.
|
||||
nog niet; echte tegels tonen de nieuwe onderdelen pas na de add-on-update naar 0.2.23.
|
||||
- De klimaatkaart-snapshot lukte niet in dezelfde run (de manager herstelde de echte
|
||||
indeling); de moduskiezer wel. Fysieke controle door Max: knoppen, −/+ debounce,
|
||||
spinner-vloeiendheid, weerkaart op de CYD.
|
||||
- `capture_ui.py` mist af en toe enkele rijen (snapshot-stream); gewoon opnieuw draaien.
|
||||
Reference in New Issue
Block a user