Files
Max Gramser ef0ca8b350 Custom icon per tile: 150 MDI icons in firmware and editor
- screen_manager/app/tile_icons.py is the single icon list (12 groups, 20 media
  and music icons); tools/generate_icons.py writes it into the three icon fonts
  of both boards and builds the editor's subset font.
- Firmware 0.2.18 shows o.icon when its fonts carry the glyph, else the domain
  icon. The app sends the chosen icon, or Home Assistant's own mdi icon on auto.
- Tile sheet gets an icon picker with search; the mockup shows the icon the
  screen actually draws.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 11:16:57 +02:00

1.8 KiB

App 0.2.18 / firmware 0.2.18 — eigen icoon per tegel

Wijzigingen

  • screen_manager/app/tile_icons.py: 150 kiesbare MDI-iconen in twaalf groepen (20 voor media en muziek) plus 9 vaste firmwareglyphs; codepoints gecontroleerd tegen fonts/materialdesignicons-webfont.ttf.
  • Firmware: tile_icon.h (hex → codepoint → UTF-8), Tile::icon, icon_for() gebruikt een gekozen icoon als de font de glyph bevat.
  • App: validatie van options.icon, o.icon met codepoint (gekozen of uit HA), entiteiticonen in de inventaris, icoonkiezer met zoeken in het tegelpaneel.

Tests

  • .venv-portal/bin/python -m unittest discover -s tests: 69 tests OK, waaronder tests/test_tile_icons.py (set in alle zes fonts en beide pakketten, elke firmwareglyph in de set, editorvoorspelling gelijk aan icon_for/weather_icon, validatie, draadformaat, discovery, oude editor behoudt icoon).
  • Alle tests/*.cpp OK, waaronder test_tile_icon.cpp.
  • tools/generate_packages.py --check en tools/generate_icons.py --check: actueel.
  • esphome compile: CYD 1.361.735 bytes flash (74,2%, was 1.339.824), RAM 30,2%; Guition 1.454.503 bytes (17,9%).
  • USB-flash na esptool chip_id (usbserial-130 = ESP32/CYD, usbserial-210 = ESP32-S3/Guition); uploadlog toont de juiste firmware.bin. device_info: beide 0.2.18, gecompileerd 11:10:02 (CYD) en 11:10:52 (Guition).
  • Guition-render via send_layout.py + capture_ui.py: thermometer in de grafiekstrook (mini-font), account-child automatisch uit HA, koksmuts op de timer, lamp op de dubbelbrede grote waarde (watch-font). Max bevestigde dat het op de schermen goed werkt.
  • Lokale editor met nep-HA: kiezer, zoeken op "muziek", live mockup en kop, opslaan stuurt F04C3/F0769/F0FCE; hint bij firmware 0.2.17. Iconen in de browser gemeten gecentreerd na de bearing-fix (gemiddeld 0,3 px op 100 px).