Edit esp-bedside-panel.yaml
This commit is contained in:
+195
-77
@@ -6,6 +6,7 @@
|
|||||||
# https://home.fox.co.nz/gitea/zorruno/zorruno-homeassistant/src/branch/master/esphome/esp-bedside-panel.yaml
|
# https://home.fox.co.nz/gitea/zorruno/zorruno-homeassistant/src/branch/master/esphome/esp-bedside-panel.yaml
|
||||||
#:########################################################################################:#
|
#:########################################################################################:#
|
||||||
# VERSIONS:
|
# VERSIONS:
|
||||||
|
# V1.20 2026-07-18 Swapped Bedtime/Jobs, defaulted Doorbell and refined Climate icons
|
||||||
# V1.18 2026-07-18 Added Lounge Fire, six Security cameras, Jobs page and weather/tide header
|
# V1.18 2026-07-18 Added Lounge Fire, six Security cameras, Jobs page and weather/tide header
|
||||||
# V1.17 2026-07-18 Swapped Bedroom Climate/Atto buttons and removed Garage test logs
|
# V1.17 2026-07-18 Swapped Bedroom Climate/Atto buttons and removed Garage test logs
|
||||||
# V1.16 2026-07-17 Removed garage-door influence from Garage Lights button state
|
# V1.16 2026-07-17 Removed garage-door influence from Garage Lights button state
|
||||||
@@ -89,7 +90,8 @@
|
|||||||
# - Moon, Outdoor, Indoor and Humidity readings are positioned near the bottom.
|
# - Moon, Outdoor, Indoor and Humidity readings are positioned near the bottom.
|
||||||
# - The display remains in its native 1024x600 landscape orientation.
|
# - The display remains in its native 1024x600 landscape orientation.
|
||||||
# - The default page contains nine Bedroom / nearby controls.
|
# - The default page contains nine Bedroom / nearby controls.
|
||||||
# - The bottom navigation row contains Bedtime, Atto, Climate, Security and Clock.
|
# - Compact Bedtime control is positioned beside the API connection indicator.
|
||||||
|
# - The bottom navigation row contains Jobs Summary, Atto, Climate, Security and Clock.
|
||||||
# - Jobs Summary opens a reserved Jobs page with Back and Clock navigation.
|
# - Jobs Summary opens a reserved Jobs page with Back and Clock navigation.
|
||||||
# - The Security page supports six selectable camera views.
|
# - The Security page supports six selectable camera views.
|
||||||
# - After the configured idle period:
|
# - After the configured idle period:
|
||||||
@@ -119,12 +121,12 @@ substitutions:
|
|||||||
# Device Naming
|
# Device Naming
|
||||||
device_name: "esp-bedside-panel"
|
device_name: "esp-bedside-panel"
|
||||||
friendly_name: "ESP Bedside Panel"
|
friendly_name: "ESP Bedside Panel"
|
||||||
description_comment: "Guition JC1060P470C_I_W_Y ESP32-P4 bedside control panel. Lounge Fire, six-camera Security, Jobs page and expanded weather/tide status. (Layout V1.1)"
|
description_comment: "Guition JC1060P470C_I_W_Y ESP32-P4 bedside control panel. Compact Bedtime, bottom Jobs Summary, Doorbell default and icon-refined Climate controls. (Layout V1.1)"
|
||||||
device_area: "Bedroom"
|
device_area: "Bedroom"
|
||||||
|
|
||||||
# Project Naming
|
# Project Naming
|
||||||
project_name: "Guition.JC1060P470C_I_W_Y"
|
project_name: "Guition.JC1060P470C_I_W_Y"
|
||||||
project_version: "v1.18"
|
project_version: "v1.20"
|
||||||
|
|
||||||
# Passwords & Secrets
|
# Passwords & Secrets
|
||||||
api_key: !secret esp-api_key
|
api_key: !secret esp-api_key
|
||||||
@@ -579,6 +581,22 @@ font:
|
|||||||
- "\U000F0238" # mdi-fire
|
- "\U000F0238" # mdi-fire
|
||||||
- "\U000F0717" # mdi-snowflake
|
- "\U000F0717" # mdi-snowflake
|
||||||
|
|
||||||
|
# Compact Climate-page icons.
|
||||||
|
- file: "https://raw.githubusercontent.com/Templarian/MaterialDesign-Webfont/master/fonts/materialdesignicons-webfont.ttf"
|
||||||
|
id: font_mdi_climate
|
||||||
|
size: 30
|
||||||
|
bpp: 4
|
||||||
|
glyphs:
|
||||||
|
- "\U000F0425" # mdi-power
|
||||||
|
- "\U000F0238" # mdi-fire
|
||||||
|
- "\U000F0717" # mdi-snowflake
|
||||||
|
- "\U000F0E0A" # mdi-water-outline
|
||||||
|
- "\U000F032A" # mdi-leaf
|
||||||
|
- "\U000F04C5" # mdi-speedometer
|
||||||
|
- "\U000F0768" # mdi-atom
|
||||||
|
- "\U000F1797" # mdi-ceiling-fan
|
||||||
|
- "\U000F0D43" # mdi-air-filter
|
||||||
|
|
||||||
# Bold Atto status/value font used for prominent second-line values.
|
# Bold Atto status/value font used for prominent second-line values.
|
||||||
- file:
|
- file:
|
||||||
type: gfonts
|
type: gfonts
|
||||||
@@ -1746,20 +1764,20 @@ script:
|
|||||||
id: ceiling_fan_cycle_label
|
id: ceiling_fan_cycle_label
|
||||||
text: !lambda |-
|
text: !lambda |-
|
||||||
if (!id(ha_ceiling_fan_on).state) {
|
if (!id(ha_ceiling_fan_on).state) {
|
||||||
return std::string("Ceiling Fan: Off");
|
return std::string("Fan:Off");
|
||||||
}
|
}
|
||||||
|
|
||||||
const float percentage = id(ha_ceiling_fan_percentage).state;
|
const float percentage = id(ha_ceiling_fan_percentage).state;
|
||||||
|
|
||||||
if (isnan(percentage) || percentage < 50.0f) {
|
if (isnan(percentage) || percentage < 50.0f) {
|
||||||
return std::string("Ceiling Fan: Low");
|
return std::string("Fan:Low");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (percentage < 85.0f) {
|
if (percentage < 85.0f) {
|
||||||
return std::string("Ceiling Fan: Medium");
|
return std::string("Fan:Medium");
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::string("Ceiling Fan: High");
|
return std::string("Fan:High");
|
||||||
|
|
||||||
- lvgl.widget.update:
|
- lvgl.widget.update:
|
||||||
id: ceiling_fan_cycle_button
|
id: ceiling_fan_cycle_button
|
||||||
@@ -1768,7 +1786,29 @@ script:
|
|||||||
? lv_color_hex(0x315E82)
|
? lv_color_hex(0x315E82)
|
||||||
: lv_color_hex(0x28313D);
|
: lv_color_hex(0x28313D);
|
||||||
|
|
||||||
# Air Filter Quiet is highlighted for filter levels 0, 1 or 2.
|
# Air-filter text and Quiet highlighting.
|
||||||
|
- lvgl.label.update:
|
||||||
|
id: air_filter_quiet_label
|
||||||
|
text: !lambda |-
|
||||||
|
const float level = id(ha_air_filter_level).state;
|
||||||
|
|
||||||
|
if (isnan(level)) {
|
||||||
|
return std::string("Filter:--");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (level >= 0.0f && level <= 2.0f) {
|
||||||
|
return std::string("Filter:Quiet");
|
||||||
|
}
|
||||||
|
|
||||||
|
char buffer[24];
|
||||||
|
snprintf(
|
||||||
|
buffer,
|
||||||
|
sizeof(buffer),
|
||||||
|
"Filter:%.0f",
|
||||||
|
level
|
||||||
|
);
|
||||||
|
return std::string(buffer);
|
||||||
|
|
||||||
- lvgl.widget.update:
|
- lvgl.widget.update:
|
||||||
id: air_filter_quiet_button
|
id: air_filter_quiet_button
|
||||||
bg_color: !lambda |-
|
bg_color: !lambda |-
|
||||||
@@ -2621,46 +2661,47 @@ lvgl:
|
|||||||
shadow_width: 0
|
shadow_width: 0
|
||||||
clickable: false
|
clickable: false
|
||||||
|
|
||||||
# Jobs Summary opens the future Jobs page.
|
# Compact Bedtime control beside the API connection indicator.
|
||||||
- button:
|
- button:
|
||||||
id: jobs_summary_navigation_button
|
id: bedtime_button
|
||||||
x: 50
|
x: 50
|
||||||
y: 8
|
y: 8
|
||||||
width: 210
|
width: 210
|
||||||
height: 68
|
height: 68
|
||||||
bg_color: 0x263443
|
bg_color: 0x3B3048
|
||||||
bg_opa: COVER
|
bg_opa: COVER
|
||||||
border_width: 2
|
border_width: 2
|
||||||
border_color: 0x52677B
|
border_color: 0x735E88
|
||||||
radius: 13
|
radius: 13
|
||||||
pressed:
|
pressed:
|
||||||
bg_color: 0x34495C
|
bg_color: 0x584668
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
x: 10
|
id: bedtime_button_label
|
||||||
y: 6
|
align: CENTER
|
||||||
width: 190
|
text: "Bedtime\n(Hold)"
|
||||||
text: "Jobs Summary"
|
text_font: font_small
|
||||||
text_font: font_header
|
|
||||||
text_align: CENTER
|
|
||||||
text_color: 0xAFC7DC
|
|
||||||
|
|
||||||
- label:
|
|
||||||
id: bedroom_jobs_summary_value_label
|
|
||||||
x: 10
|
|
||||||
y: 32
|
|
||||||
width: 190
|
|
||||||
text: "--"
|
|
||||||
text_font: font_header
|
|
||||||
text_align: CENTER
|
text_align: CENTER
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
on_click:
|
|
||||||
- lvgl.page.show:
|
|
||||||
id: jobs_page
|
|
||||||
animation: MOVE_LEFT
|
|
||||||
time: 220ms
|
|
||||||
|
|
||||||
# Divider between Jobs Summary and the compact status strip.
|
on_long_press:
|
||||||
|
then:
|
||||||
|
- homeassistant.action:
|
||||||
|
action: input_button.press
|
||||||
|
data:
|
||||||
|
entity_id: "${bedtime_button_entity}"
|
||||||
|
|
||||||
|
- lvgl.label.update:
|
||||||
|
id: bedtime_button_label
|
||||||
|
text: "Activated"
|
||||||
|
|
||||||
|
- delay: 2s
|
||||||
|
|
||||||
|
- lvgl.label.update:
|
||||||
|
id: bedtime_button_label
|
||||||
|
text: "Bedtime\n(Hold)"
|
||||||
|
|
||||||
|
# Divider between Bedtime and the compact status strip.
|
||||||
- obj:
|
- obj:
|
||||||
x: 268
|
x: 268
|
||||||
y: 11
|
y: 11
|
||||||
@@ -3172,42 +3213,45 @@ lvgl:
|
|||||||
# BEDROOM PAGE BOTTOM NAVIGATION
|
# BEDROOM PAGE BOTTOM NAVIGATION
|
||||||
#:################################################################################:#
|
#:################################################################################:#
|
||||||
- button:
|
- button:
|
||||||
id: bedtime_button
|
id: jobs_summary_navigation_button
|
||||||
x: 18
|
x: 18
|
||||||
y: 475
|
y: 475
|
||||||
width: 190
|
width: 190
|
||||||
height: 92
|
height: 92
|
||||||
widgets:
|
bg_color: 0x263443
|
||||||
- label:
|
|
||||||
id: bedtime_button_label
|
|
||||||
align: CENTER
|
|
||||||
text: "Bedtime (Hold)"
|
|
||||||
text_font: font_button
|
|
||||||
text_color: 0xFFFFFF
|
|
||||||
bg_color: 0x3B3048
|
|
||||||
bg_opa: COVER
|
bg_opa: COVER
|
||||||
border_width: 2
|
border_width: 2
|
||||||
border_color: 0x735E88
|
border_color: 0x52677B
|
||||||
radius: 16
|
radius: 16
|
||||||
pressed:
|
pressed:
|
||||||
bg_color: 0x584668
|
bg_color: 0x34495C
|
||||||
|
widgets:
|
||||||
|
- label:
|
||||||
|
x: 10
|
||||||
|
y: 7
|
||||||
|
width: 170
|
||||||
|
text: "Jobs Summary"
|
||||||
|
text_font: font_header
|
||||||
|
text_align: CENTER
|
||||||
|
text_color: 0xAFC7DC
|
||||||
|
|
||||||
on_long_press:
|
- label:
|
||||||
then:
|
id: bedroom_jobs_summary_value_label
|
||||||
- homeassistant.action:
|
x: 10
|
||||||
action: input_button.press
|
y: 29
|
||||||
data:
|
width: 170
|
||||||
entity_id: "${bedtime_button_entity}"
|
height: 54
|
||||||
|
text: "--"
|
||||||
|
text_font: font_header
|
||||||
|
text_align: CENTER
|
||||||
|
text_color: 0xFFFFFF
|
||||||
|
long_mode: WRAP
|
||||||
|
|
||||||
- lvgl.label.update:
|
on_click:
|
||||||
id: bedtime_button_label
|
- lvgl.page.show:
|
||||||
text: "Activated"
|
id: jobs_page
|
||||||
|
animation: MOVE_LEFT
|
||||||
- delay: 2s
|
time: 220ms
|
||||||
|
|
||||||
- lvgl.label.update:
|
|
||||||
id: bedtime_button_label
|
|
||||||
text: "Bedtime (Hold)"
|
|
||||||
|
|
||||||
- button:
|
- button:
|
||||||
id: climate_navigation_button
|
id: climate_navigation_button
|
||||||
@@ -3295,6 +3339,7 @@ lvgl:
|
|||||||
on_click:
|
on_click:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
id(security_page_active) = true;
|
id(security_page_active) = true;
|
||||||
|
id(security_camera_selection) = 1;
|
||||||
|
|
||||||
- lvgl.page.show:
|
- lvgl.page.show:
|
||||||
id: security_page
|
id: security_page
|
||||||
@@ -4106,7 +4151,7 @@ lvgl:
|
|||||||
x: 220
|
x: 220
|
||||||
y: 41
|
y: 41
|
||||||
width: 782
|
width: 782
|
||||||
text: "Heat Pump"
|
text: "Master Bedroom Heat Pump"
|
||||||
text_font: font_small
|
text_font: font_small
|
||||||
text_align: CENTER
|
text_align: CENTER
|
||||||
text_color: 0x8FA0B3
|
text_color: 0x8FA0B3
|
||||||
@@ -4154,9 +4199,17 @@ lvgl:
|
|||||||
bg_color: 0x548C6C
|
bg_color: 0x548C6C
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: CENTER
|
align: TOP_MID
|
||||||
|
y: 9
|
||||||
|
text: "\U000F0425"
|
||||||
|
text_font: font_mdi_climate
|
||||||
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
|
- label:
|
||||||
|
align: BOTTOM_MID
|
||||||
|
y: -10
|
||||||
text: "Off"
|
text: "Off"
|
||||||
text_font: font_button
|
text_font: font_small
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
on_click:
|
on_click:
|
||||||
- homeassistant.action:
|
- homeassistant.action:
|
||||||
@@ -4179,9 +4232,17 @@ lvgl:
|
|||||||
bg_color: 0xB76822
|
bg_color: 0xB76822
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: CENTER
|
align: TOP_MID
|
||||||
|
y: 9
|
||||||
|
text: "\U000F0238"
|
||||||
|
text_font: font_mdi_climate
|
||||||
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
|
- label:
|
||||||
|
align: BOTTOM_MID
|
||||||
|
y: -10
|
||||||
text: "Heat"
|
text: "Heat"
|
||||||
text_font: font_button
|
text_font: font_small
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
on_click:
|
on_click:
|
||||||
- homeassistant.action:
|
- homeassistant.action:
|
||||||
@@ -4204,9 +4265,17 @@ lvgl:
|
|||||||
bg_color: 0x2E6A96
|
bg_color: 0x2E6A96
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: CENTER
|
align: TOP_MID
|
||||||
|
y: 9
|
||||||
|
text: "\U000F0717"
|
||||||
|
text_font: font_mdi_climate
|
||||||
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
|
- label:
|
||||||
|
align: BOTTOM_MID
|
||||||
|
y: -10
|
||||||
text: "Cool"
|
text: "Cool"
|
||||||
text_font: font_button
|
text_font: font_small
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
on_click:
|
on_click:
|
||||||
- homeassistant.action:
|
- homeassistant.action:
|
||||||
@@ -4229,9 +4298,17 @@ lvgl:
|
|||||||
bg_color: 0x32677F
|
bg_color: 0x32677F
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: CENTER
|
align: TOP_MID
|
||||||
|
y: 9
|
||||||
|
text: "\U000F0E0A"
|
||||||
|
text_font: font_mdi_climate
|
||||||
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
|
- label:
|
||||||
|
align: BOTTOM_MID
|
||||||
|
y: -10
|
||||||
text: "Dehumid"
|
text: "Dehumid"
|
||||||
text_font: font_button
|
text_font: font_small
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
on_click:
|
on_click:
|
||||||
- homeassistant.action:
|
- homeassistant.action:
|
||||||
@@ -4266,9 +4343,17 @@ lvgl:
|
|||||||
bg_color: 0x315843
|
bg_color: 0x315843
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: CENTER
|
align: TOP_MID
|
||||||
|
y: 10
|
||||||
|
text: "\U000F032A"
|
||||||
|
text_font: font_mdi_climate
|
||||||
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
|
- label:
|
||||||
|
align: BOTTOM_MID
|
||||||
|
y: -12
|
||||||
text: "Quiet"
|
text: "Quiet"
|
||||||
text_font: font_button
|
text_font: font_small
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
on_click:
|
on_click:
|
||||||
# Quiet toggles between Quiet and Normal.
|
# Quiet toggles between Quiet and Normal.
|
||||||
@@ -4351,9 +4436,17 @@ lvgl:
|
|||||||
bg_color: 0x6B4A86
|
bg_color: 0x6B4A86
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: CENTER
|
align: TOP_MID
|
||||||
|
y: 10
|
||||||
|
text: "\U000F04C5"
|
||||||
|
text_font: font_mdi_climate
|
||||||
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
|
- label:
|
||||||
|
align: BOTTOM_MID
|
||||||
|
y: -12
|
||||||
text: "Boost"
|
text: "Boost"
|
||||||
text_font: font_button
|
text_font: font_small
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
on_click:
|
on_click:
|
||||||
# Boost toggles between Boost and Normal.
|
# Boost toggles between Boost and Normal.
|
||||||
@@ -4436,9 +4529,17 @@ lvgl:
|
|||||||
bg_color: 0x315E82
|
bg_color: 0x315E82
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: CENTER
|
align: TOP_MID
|
||||||
|
y: 10
|
||||||
|
text: "\U000F0768"
|
||||||
|
text_font: font_mdi_climate
|
||||||
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
|
- label:
|
||||||
|
align: BOTTOM_MID
|
||||||
|
y: -12
|
||||||
text: "Nanoe-X"
|
text: "Nanoe-X"
|
||||||
text_font: font_button
|
text_font: font_small
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
on_click:
|
on_click:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
@@ -4557,10 +4658,18 @@ lvgl:
|
|||||||
pressed:
|
pressed:
|
||||||
bg_color: 0x315E82
|
bg_color: 0x315E82
|
||||||
widgets:
|
widgets:
|
||||||
|
- label:
|
||||||
|
align: LEFT_MID
|
||||||
|
x: 18
|
||||||
|
text: "\U000F1797"
|
||||||
|
text_font: font_mdi_climate
|
||||||
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- label:
|
- label:
|
||||||
id: ceiling_fan_cycle_label
|
id: ceiling_fan_cycle_label
|
||||||
align: CENTER
|
align: CENTER
|
||||||
text: "Ceiling Fan: Off"
|
x: 18
|
||||||
|
text: "Fan:Off"
|
||||||
text_font: font_small
|
text_font: font_small
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
on_click:
|
on_click:
|
||||||
@@ -4636,8 +4745,17 @@ lvgl:
|
|||||||
bg_color: 0x315843
|
bg_color: 0x315843
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
|
align: LEFT_MID
|
||||||
|
x: 18
|
||||||
|
text: "\U000F0D43"
|
||||||
|
text_font: font_mdi_climate
|
||||||
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
|
- label:
|
||||||
|
id: air_filter_quiet_label
|
||||||
align: CENTER
|
align: CENTER
|
||||||
text: "Air Filter: Quiet"
|
x: 18
|
||||||
|
text: "Filter:Quiet"
|
||||||
text_font: font_small
|
text_font: font_small
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
on_click:
|
on_click:
|
||||||
|
|||||||
Reference in New Issue
Block a user