feat: add mode selector modal (Heat/Cool/Off) to classic Home screen

The thermostat had no way to actually set its operating mode: home_mode_label
was read-only, and no widget anywhere called climate.control with a mode.
Tapping the mode label now shows a modal (mirrors the existing
nav_menu_overlay pattern) with explicit Heat/Cool/Off choices.
This commit is contained in:
pyr0ball 2026-07-12 16:35:05 -07:00
parent c9df881066
commit 9e1a9ebe9f

View file

@ -222,6 +222,8 @@ lvgl:
id: home_mode_label
text: "Mode: --"
text_font: montserrat_20
on_click:
lvgl.widget.show: mode_select_overlay
- label:
id: home_temp_label
text: "-- °F"
@ -528,3 +530,48 @@ lvgl:
- label:
text: "Schedule"
text_font: montserrat_20
- obj:
id: mode_select_overlay
hidden: true
align: center
width: 280px
height: size_content
pad_all: 8
radius: 8
layout:
type: flex
flex_flow: column
flex_align_cross: stretch
flex_align_track: start
flex_align_main: start
widgets:
- button:
on_click:
- climate.control:
id: main_thermostat
mode: HEAT
- lvgl.widget.hide: mode_select_overlay
widgets:
- label:
text: "Heat"
text_font: montserrat_20
- button:
on_click:
- climate.control:
id: main_thermostat
mode: COOL
- lvgl.widget.hide: mode_select_overlay
widgets:
- label:
text: "Cool"
text_font: montserrat_20
- button:
on_click:
- climate.control:
id: main_thermostat
mode: "OFF"
- lvgl.widget.hide: mode_select_overlay
widgets:
- label:
text: "Off"
text_font: montserrat_20