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
#:########################################################################################:#
# 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.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
@@ -89,7 +90,8 @@
# - Moon, Outdoor, Indoor and Humidity readings are positioned near the bottom.
# - The display remains in its native 1024x600 landscape orientation.
# - 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.
# - The Security page supports six selectable camera views.
# - After the configured idle period:
@@ -119,12 +121,12 @@ substitutions:
# Device Naming
device_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"
# Project Naming
project_name: "Guition.JC1060P470C_I_W_Y"
project_version: "v1.18"
project_version: "v1.20"
# Passwords & Secrets
api_key: !secret esp-api_key
@@ -579,6 +581,22 @@ font:
- "\U000F0238" # mdi-fire
- "\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.
- file:
type: gfonts
@@ -1746,20 +1764,20 @@ script:
id: ceiling_fan_cycle_label
text: !lambda |-
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;
if (isnan(percentage) || percentage < 50.0f) {
return std::string("Ceiling Fan: Low");
return std::string("Fan:Low");
}
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:
id: ceiling_fan_cycle_button
@@ -1768,7 +1786,29 @@ script:
? lv_color_hex(0x315E82)
: 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:
id: air_filter_quiet_button
bg_color: !lambda |-
@@ -2621,46 +2661,47 @@ lvgl:
shadow_width: 0
clickable: false
# Jobs Summary opens the future Jobs page.
# Compact Bedtime control beside the API connection indicator.
- button:
id: jobs_summary_navigation_button
id: bedtime_button
x: 50
y: 8
width: 210
height: 68
bg_color: 0x263443
bg_color: 0x3B3048
bg_opa: COVER
border_width: 2
border_color: 0x52677B
border_color: 0x735E88
radius: 13
pressed:
bg_color: 0x34495C
bg_color: 0x584668
widgets:
- label:
x: 10
y: 6
width: 190
text: "Jobs Summary"
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
id: bedtime_button_label
align: CENTER
text: "Bedtime\n(Hold)"
text_font: font_small
text_align: CENTER
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:
x: 268
y: 11
@@ -3172,42 +3213,45 @@ lvgl:
# BEDROOM PAGE BOTTOM NAVIGATION
#:################################################################################:#
- button:
id: bedtime_button
id: jobs_summary_navigation_button
x: 18
y: 475
width: 190
height: 92
widgets:
- label:
id: bedtime_button_label
align: CENTER
text: "Bedtime (Hold)"
text_font: font_button
text_color: 0xFFFFFF
bg_color: 0x3B3048
bg_color: 0x263443
bg_opa: COVER
border_width: 2
border_color: 0x735E88
border_color: 0x52677B
radius: 16
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:
then:
- homeassistant.action:
action: input_button.press
data:
entity_id: "${bedtime_button_entity}"
- label:
id: bedroom_jobs_summary_value_label
x: 10
y: 29
width: 170
height: 54
text: "--"
text_font: font_header
text_align: CENTER
text_color: 0xFFFFFF
long_mode: WRAP
- lvgl.label.update:
id: bedtime_button_label
text: "Activated"
- delay: 2s
- lvgl.label.update:
id: bedtime_button_label
text: "Bedtime (Hold)"
on_click:
- lvgl.page.show:
id: jobs_page
animation: MOVE_LEFT
time: 220ms
- button:
id: climate_navigation_button
@@ -3295,6 +3339,7 @@ lvgl:
on_click:
- lambda: |-
id(security_page_active) = true;
id(security_camera_selection) = 1;
- lvgl.page.show:
id: security_page
@@ -4106,7 +4151,7 @@ lvgl:
x: 220
y: 41
width: 782
text: "Heat Pump"
text: "Master Bedroom Heat Pump"
text_font: font_small
text_align: CENTER
text_color: 0x8FA0B3
@@ -4154,9 +4199,17 @@ lvgl:
bg_color: 0x548C6C
widgets:
- 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_font: font_button
text_font: font_small
text_color: 0xFFFFFF
on_click:
- homeassistant.action:
@@ -4179,9 +4232,17 @@ lvgl:
bg_color: 0xB76822
widgets:
- 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_font: font_button
text_font: font_small
text_color: 0xFFFFFF
on_click:
- homeassistant.action:
@@ -4204,9 +4265,17 @@ lvgl:
bg_color: 0x2E6A96
widgets:
- 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_font: font_button
text_font: font_small
text_color: 0xFFFFFF
on_click:
- homeassistant.action:
@@ -4229,9 +4298,17 @@ lvgl:
bg_color: 0x32677F
widgets:
- 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_font: font_button
text_font: font_small
text_color: 0xFFFFFF
on_click:
- homeassistant.action:
@@ -4266,9 +4343,17 @@ lvgl:
bg_color: 0x315843
widgets:
- 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_font: font_button
text_font: font_small
text_color: 0xFFFFFF
on_click:
# Quiet toggles between Quiet and Normal.
@@ -4351,9 +4436,17 @@ lvgl:
bg_color: 0x6B4A86
widgets:
- 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_font: font_button
text_font: font_small
text_color: 0xFFFFFF
on_click:
# Boost toggles between Boost and Normal.
@@ -4436,9 +4529,17 @@ lvgl:
bg_color: 0x315E82
widgets:
- 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_font: font_button
text_font: font_small
text_color: 0xFFFFFF
on_click:
- lambda: |-
@@ -4557,10 +4658,18 @@ lvgl:
pressed:
bg_color: 0x315E82
widgets:
- label:
align: LEFT_MID
x: 18
text: "\U000F1797"
text_font: font_mdi_climate
text_color: 0xFFFFFF
- label:
id: ceiling_fan_cycle_label
align: CENTER
text: "Ceiling Fan: Off"
x: 18
text: "Fan:Off"
text_font: font_small
text_color: 0xFFFFFF
on_click:
@@ -4636,8 +4745,17 @@ lvgl:
bg_color: 0x315843
widgets:
- label:
align: LEFT_MID
x: 18
text: "\U000F0D43"
text_font: font_mdi_climate
text_color: 0xFFFFFF
- label:
id: air_filter_quiet_label
align: CENTER
text: "Air Filter: Quiet"
x: 18
text: "Filter:Quiet"
text_font: font_small
text_color: 0xFFFFFF
on_click: