classic+ UX: on-device weather condition icons #1

Open
opened 2026-07-12 22:31:20 -07:00 by pyr0ball · 0 comments
Owner

Gap: status_condition_label in the classic+ weather rail shows plain text ("Partly Cloudy", "Sunny", etc.) for all 15 HA weather condition strings. No icon rendering exists anywhere in the project yet.

Spike done 2026-07-12: validated both viable ESPHome techniques for on-device icons on this exact board/ESPHome version, both compile clean, no resource constraints (16MB flash with ~6.7MB headroom, 8MB PSRAM):

  • Bitmap: image: component (local PNG, type: RGB + transparency: alpha_channel — note type: RGBA is deprecated in current ESPHome), rendered via LVGL image: widget.
  • Icon font: font: component pulling glyphs via gfonts:// by Unicode codepoint (e.g. Material Symbols), rendered via a normal LVGL label: — glyphs recolor at runtime like text.

Xander and Neon can produce the actual artwork, so the decision is really about workflow fit, not resource budget: bitmap needs exported PNGs at a specified resolution (full color/detail); icon font needs a font file with specific glyphs (simpler for single-color/state-recolored icons).

Scope: map all 15 HA condition strings (clear-night, cloudy, exceptional, fog, hail, lightning, lightning-rainy, partlycloudy, pouring, rainy, snowy, snowy-rainy, sunny, windy, windy-variant) to icons, wire into weather.yaml's existing weather_condition text_sensor trigger (currently maps to display text only).

Related: Dial/color theme and Relay/mode icons issues share the same technical foundation once one icon technique is chosen.

**Gap:** `status_condition_label` in the classic+ weather rail shows plain text ("Partly Cloudy", "Sunny", etc.) for all 15 HA weather condition strings. No icon rendering exists anywhere in the project yet. **Spike done 2026-07-12:** validated both viable ESPHome techniques for on-device icons on this exact board/ESPHome version, both compile clean, no resource constraints (16MB flash with ~6.7MB headroom, 8MB PSRAM): - Bitmap: `image:` component (local PNG, `type: RGB` + `transparency: alpha_channel` — note `type: RGBA` is deprecated in current ESPHome), rendered via LVGL `image:` widget. - Icon font: `font:` component pulling glyphs via `gfonts://` by Unicode codepoint (e.g. Material Symbols), rendered via a normal LVGL `label:` — glyphs recolor at runtime like text. Xander and Neon can produce the actual artwork, so the decision is really about workflow fit, not resource budget: bitmap needs exported PNGs at a specified resolution (full color/detail); icon font needs a font file with specific glyphs (simpler for single-color/state-recolored icons). **Scope:** map all 15 HA condition strings (clear-night, cloudy, exceptional, fog, hail, lightning, lightning-rainy, partlycloudy, pouring, rainy, snowy, snowy-rainy, sunny, windy, windy-variant) to icons, wire into `weather.yaml`'s existing `weather_condition` text_sensor trigger (currently maps to display text only). Related: [[Dial/color theme]] and [[Relay/mode icons]] issues share the same technical foundation once one icon technique is chosen.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Circuit-Forge/firecrest#1
No description provided.