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:
parent
c9df881066
commit
9e1a9ebe9f
1 changed files with 47 additions and 0 deletions
|
|
@ -222,6 +222,8 @@ lvgl:
|
||||||
id: home_mode_label
|
id: home_mode_label
|
||||||
text: "Mode: --"
|
text: "Mode: --"
|
||||||
text_font: montserrat_20
|
text_font: montserrat_20
|
||||||
|
on_click:
|
||||||
|
lvgl.widget.show: mode_select_overlay
|
||||||
- label:
|
- label:
|
||||||
id: home_temp_label
|
id: home_temp_label
|
||||||
text: "-- °F"
|
text: "-- °F"
|
||||||
|
|
@ -528,3 +530,48 @@ lvgl:
|
||||||
- label:
|
- label:
|
||||||
text: "Schedule"
|
text: "Schedule"
|
||||||
text_font: montserrat_20
|
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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue