Updated icons, buttons, and display; issues still with Main Room button, and sliders.

This commit is contained in:
matt committed 2026-08-04 18:40:46 -07:00
1 parent b5d6b4a897
commit 45998b6176
15 files changed
+973 -77

No files matched your search

+11
View File
@@ -24,6 +24,7 @@ forecast, and on/off plus brightness control for six lights. Thermostat control
| `main/drivers/touch` | GT911 capacitive touch over I2C, registered as an LVGL input device |
| `main/ui/lvgl_port.c` | LVGL tick source, service task, and locking |
| `main/ui/ui_manager.c` | Screen layout and update entry points |
| `main/ui/icon_font.c` | Generated ~6KB MDI icon subset — see `tools/make_icon_font.py` |
| `main/wifi` | WiFi station bring-up |
| `main/api/ha_client.c` | Home Assistant REST transport (device only) |
| `main/api/ha_data.c` | Response parsing and presentation helpers (**shared with the simulator**) |
@@ -211,6 +212,16 @@ about PSRAM bandwidth or panel timing.
- **`LV_LABEL_LONG_DOT` needs an explicit height** to truncate. With a
content-sized height the label wraps to a second line first and only then
adds dots — landing on top of whatever is below it.
- **Icons are label text**, not images: single glyphs from a subset MDI TTF
rasterised by tiny_ttf (`tools/make_icon_font.py` regenerates
`main/ui/icon_font.c` / `ui_icons.h`; needs network + fonttools, so the
generated files are committed). Codepoints are resolved from the MDI CSS at
generation time — never hardcode one, MDI reassigns them between majors.
- **Light tiles are optimistic.** A tap flips the tile immediately and holds
against poll data for up to 5s until HA confirms (`light_hold_t`); commands
are sent on finger-lift only, and poll updates never touch a pressed
slider. Breaking any of those three rules brings back the "button waits a
second, then the knob jumps out from under your finger" feel.
- **`lv_label_set_text()` invalidates unconditionally**, even when the text is
identical — so setting an unchanged value still forces a repaint. All label
updates go through `label_set_if_changed()`.