firecrest/firmware/components/display.yaml

272 lines
9.1 KiB
YAML

lvgl:
id: lvgl_comp
displays:
- lcd_display
touchscreens:
- touch_gt911
pages:
- id: page_home
widgets:
- obj:
width: 100%
height: 510px
pad_all: 16
border_width: 0
outline_width: 0
scrollable: false
layout:
type: flex
flex_flow: column
flex_align_cross: center
flex_align_track: center
flex_align_main: space_evenly
widgets:
- label:
id: home_temp_label
text: "-- °C"
text_font: montserrat_48
- label:
id: home_mode_label
text: "Mode: --"
text_font: montserrat_28
- obj:
width: 100%
height: size_content
border_width: 0
outline_width: 0
scrollable: false
layout:
type: flex
flex_flow: row
flex_align_cross: center
flex_align_track: center
flex_align_main: space_evenly
widgets:
- button:
width: 140px
height: 100px
on_click:
climate.control:
id: main_thermostat
target_temperature_low: !lambda "return id(main_thermostat).target_temperature_low - 0.5f;"
target_temperature_high: !lambda "return id(main_thermostat).target_temperature_high - 0.5f;"
widgets:
- label:
text: "-"
text_font: montserrat_40
- button:
width: 140px
height: 100px
on_click:
climate.control:
id: main_thermostat
target_temperature_low: !lambda "return id(main_thermostat).target_temperature_low + 0.5f;"
target_temperature_high: !lambda "return id(main_thermostat).target_temperature_high + 0.5f;"
widgets:
- label:
text: "+"
text_font: montserrat_40
- id: page_sensors
widgets:
- obj:
width: 100%
height: 510px
pad_all: 16
border_width: 0
outline_width: 0
scrollable: false
layout:
type: flex
flex_flow: column
flex_align_cross: center
flex_align_track: center
flex_align_main: space_evenly
widgets:
- label:
id: sensors_temp_label
text: "Temperature: -- °C"
text_font: montserrat_28
- label:
id: sensors_humidity_label
text: "Humidity: -- %"
text_font: montserrat_28
- label:
id: sensors_pressure_label
text: "Pressure: -- hPa"
text_font: montserrat_28
- id: page_settings
widgets:
- obj:
width: 100%
height: 510px
pad_all: 16
border_width: 0
outline_width: 0
scrollable: false
layout:
type: flex
flex_flow: column
flex_align_cross: center
flex_align_track: start
flex_align_main: start
widgets:
- label:
id: settings_ip_label
text: "IP: --"
text_font: montserrat_20
- label:
id: settings_uptime_label
text: "Uptime: -- min"
text_font: montserrat_20
- label:
text: "Manual relay override (bypasses thermostat):"
text_font: montserrat_16
- obj:
width: 100%
height: size_content
border_width: 0
outline_width: 0
scrollable: false
layout:
type: flex
flex_flow: row_wrap
flex_align_cross: start
flex_align_track: start
flex_align_main: start
widgets:
- checkbox:
text: "Fan"
on_click:
switch.toggle: relay_fan
- checkbox:
text: "Cool 1"
on_click:
switch.toggle: relay_cool1
- checkbox:
text: "Cool 2"
on_click:
switch.toggle: relay_cool2
- checkbox:
text: "Heat 1"
on_click:
switch.toggle: relay_heat1
- checkbox:
text: "Heat 2"
on_click:
switch.toggle: relay_heat2
- id: page_schedule
widgets:
- obj:
width: 100%
height: 510px
pad_all: 16
border_width: 0
outline_width: 0
scrollable: false
layout:
type: flex
flex_flow: column
flex_align_cross: center
flex_align_track: center
flex_align_main: space_evenly
widgets:
- label:
text: "Preset"
text_font: montserrat_28
- obj:
width: 100%
height: size_content
border_width: 0
outline_width: 0
scrollable: false
layout:
type: flex
flex_flow: row
flex_align_cross: center
flex_align_track: center
flex_align_main: space_evenly
widgets:
- button:
width: 300px
height: 100px
on_click:
climate.control:
id: main_thermostat
preset: home
widgets:
- label:
text: "Home"
text_font: montserrat_28
- button:
width: 300px
height: 100px
on_click:
climate.control:
id: main_thermostat
preset: away
widgets:
- label:
text: "Away"
text_font: montserrat_28
- label:
text: "Time-based scheduling runs in Home Assistant, not on this device."
text_font: montserrat_16
top_layer:
widgets:
- obj:
id: nav_bar
align: bottom_mid
width: 100%
height: 90px
pad_all: 4
radius: 0
border_width: 0
outline_width: 0
scrollable: false
layout:
type: flex
flex_flow: row
flex_align_cross: center
flex_align_track: center
flex_align_main: space_evenly
widgets:
- button:
id: nav_btn_home
width: 220px
height: 78px
on_click:
lvgl.page.show: page_home
widgets:
- label:
text: "Home"
text_font: montserrat_20
- button:
id: nav_btn_sensors
width: 220px
height: 78px
on_click:
lvgl.page.show: page_sensors
widgets:
- label:
text: "Sensors"
text_font: montserrat_20
- button:
id: nav_btn_settings
width: 220px
height: 78px
on_click:
lvgl.page.show: page_settings
widgets:
- label:
text: "Settings"
text_font: montserrat_20
- button:
id: nav_btn_schedule
width: 220px
height: 78px
on_click:
lvgl.page.show: page_schedule
widgets:
- label:
text: "Schedule"
text_font: montserrat_20