Edit esp-bedside-panel.yaml

This commit is contained in:
ESPHome Device Builder
2026-07-18 20:23:54 +12:00
parent ec195d33ce
commit 347e20f552
+195 -77
View File
@@ -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: