Edit esp-bedside-panel.yaml

This commit is contained in:
ESPHome Device Builder
2026-07-15 20:06:42 +12:00
parent d27ba8bd14
commit 79054490d0
+236 -88
View File
@@ -6,6 +6,8 @@
# 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:
# V0.9 2026-07-15 Added four environmental/status readings to Bedroom and Clock pages
# Changed clock to 24-hour format and increased clock font to 220px
# V0.8a 2026-07-14 Reduced LVGL memory load after V0.8 OTA rollback # V0.8a 2026-07-14 Reduced LVGL memory load after V0.8 OTA rollback
# Added lean large-clock idle page and Bedroom controls # Added lean large-clock idle page and Bedroom controls
# V0.8 2026-07-14 Added large bedside clock, idle dimming and first bedroom control page # V0.8 2026-07-14 Added large bedside clock, idle dimming and first bedroom control page
@@ -40,22 +42,27 @@
# - Touch I2C address: 0x5D # - Touch I2C address: 0x5D
#:########################################################################################:# #:########################################################################################:#
# OPERATION NOTES: # OPERATION NOTES:
# - This is a reduced-load test build after V0.8 rolled back during startup.
# - 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 Bedroom and Clock pages display:
# - Moon phase percentage
# - Outdoor temperature
# - Indoor temperature
# - Indoor humidity
# - The clock uses 24-hour HH:MM format.
# - After the configured idle period: # - After the configured idle period:
# - The large clock page is displayed. # - The large clock page is displayed.
# - Backlight brightness is reduced. # - Backlight brightness is reduced.
# - Touching the clock: # - Touching the clock:
# - Returns to the Bedroom controls. # - Returns to the Bedroom controls.
# - Restores normal brightness. # - Restores normal brightness.
# - Climate and Downstairs pages are intentionally omitted from this version. # - Climate and Downstairs pages remain omitted from this version.
# - They will be restored after the clock framework is proven stable.
#:########################################################################################:# #:########################################################################################:#
# OFFLINE NOTES: # OFFLINE NOTES:
# - LVGL, the clock, touch and backlight operate locally. # - LVGL, the clock, touch and backlight operate locally.
# - Home Assistant control buttons require an API connection. # - Home Assistant control buttons require an API connection.
# - The clock continues using the most recently synchronised time. # - The clock continues using the most recently synchronised time.
# - Imported readings may display their most recently received values while HA is offline.
#:########################################################################################:# #:########################################################################################:#
#:########################################################################################:# #:########################################################################################:#
@@ -67,12 +74,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 clock and Home Assistant control panel. Reduced-load LVGL test. (Layout V1.1)" description_comment: "Guition JC1060P470C_I_W_Y ESP32-P4 bedside clock and Home Assistant control panel. Four status readings and 24-hour clock. (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: "v0.8a" project_version: "v0.9"
# Passwords & Secrets # Passwords & Secrets
api_key: !secret esp-api_key api_key: !secret esp-api_key
@@ -97,9 +104,11 @@ substitutions:
control_brightness: "80%" control_brightness: "80%"
clock_brightness: "4%" clock_brightness: "4%"
# Home Assistant Entities - Environment # Home Assistant Entities - Status / Environment
bedroom_temperature_entity: "sensor.master_bedroom_environment_zth01_temperature_2" moon_phase_entity: "sensor.astroweather_moon_phase"
bedroom_humidity_entity: "sensor.master_bedroom_environment_zth01_humidity_2" outdoor_temperature_entity: "sensor.lounge_outside_temperature"
indoor_temperature_entity: "sensor.master_bedroom_master_bedroom_environment_z01th_temperature"
indoor_humidity_entity: "sensor.master_bedroom_master_bedroom_environment_z01th_humidity"
# Home Assistant Entities - Bedroom / Nearby Controls # Home Assistant Entities - Bedroom / Nearby Controls
north_lights_entity: "light.tasmo_ifan02_3793_bedrm1_1" north_lights_entity: "light.tasmo_ifan02_3793_bedrm1_1"
@@ -353,7 +362,7 @@ touchscreen:
font: font:
- file: "gfonts://Roboto" - file: "gfonts://Roboto"
id: font_clock id: font_clock
size: 170 size: 220
glyphs: glyphs:
- "0123456789:" - "0123456789:"
@@ -397,37 +406,73 @@ sensor:
update_interval: "${update_interval}" update_interval: "${update_interval}"
- platform: homeassistant - platform: homeassistant
id: bedroom_temperature id: moon_phase
entity_id: "${bedroom_temperature_entity}" entity_id: "${moon_phase_entity}"
internal: true internal: true
on_value: on_value:
then: then:
- lvgl.label.update: - lvgl.label.update:
id: clock_temperature_label id: bedroom_moon_value_label
text:
format: "%.1f%%"
args: [x]
- lvgl.label.update:
id: clock_moon_value_label
text:
format: "%.1f%%"
args: [x]
- platform: homeassistant
id: outdoor_temperature
entity_id: "${outdoor_temperature_entity}"
internal: true
on_value:
then:
- lvgl.label.update:
id: bedroom_outdoor_value_label
text: text:
format: "%.1f°C" format: "%.1f°C"
args: [x] args: [x]
- lvgl.label.update: - lvgl.label.update:
id: bedroom_temperature_label id: clock_outdoor_value_label
text: text:
format: "%.1f°C" format: "%.1f°C"
args: [x] args: [x]
- platform: homeassistant - platform: homeassistant
id: bedroom_humidity id: indoor_temperature
entity_id: "${bedroom_humidity_entity}" entity_id: "${indoor_temperature_entity}"
internal: true internal: true
on_value: on_value:
then: then:
- lvgl.label.update: - lvgl.label.update:
id: clock_humidity_label id: bedroom_indoor_value_label
text:
format: "%.1f°C"
args: [x]
- lvgl.label.update:
id: clock_indoor_value_label
text:
format: "%.1f°C"
args: [x]
- platform: homeassistant
id: indoor_humidity
entity_id: "${indoor_humidity_entity}"
internal: true
on_value:
then:
- lvgl.label.update:
id: bedroom_humidity_value_label
text: text:
format: "%.0f%%" format: "%.0f%%"
args: [x] args: [x]
- lvgl.label.update: - lvgl.label.update:
id: bedroom_humidity_label id: clock_humidity_value_label
text: text:
format: "%.0f%%" format: "%.0f%%"
args: [x] args: [x]
@@ -614,23 +659,7 @@ interval:
auto now = id(ha_time).now(); auto now = id(ha_time).now();
char buffer[8]; char buffer[8];
now.strftime(buffer, sizeof(buffer), "%I:%M"); now.strftime(buffer, sizeof(buffer), "%H:%M");
std::string value(buffer);
if (!value.empty() && value.front() == '0') {
value.erase(0, 1);
}
return value;
- lvgl.label.update:
id: clock_ampm_label
text: !lambda |-
auto now = id(ha_time).now();
char buffer[4];
now.strftime(buffer, sizeof(buffer), "%p");
return std::string(buffer); return std::string(buffer);
@@ -728,40 +757,101 @@ lvgl:
widgets: widgets:
- label: - label:
x: 35 x: 35
y: 18 y: 14
text: "Bedroom" text: "Bedroom"
text_font: font_title text_font: font_title
text_color: 0xFFFFFF text_color: 0xFFFFFF
- label:
id: bedroom_temperature_label
x: 700
y: 25
text: "--.-°C"
text_font: font_title
text_color: 0x8FC6EE
- label:
id: bedroom_humidity_label
x: 865
y: 25
text: "--%"
text_font: font_title
text_color: 0x83C7AA
- label: - label:
id: bedroom_connection_label id: bedroom_connection_label
x: 38 x: 38
y: 67 y: 57
text: "Waiting for HA" text: "Waiting for HA"
text_font: font_small text_font: font_small
text_color: 0xF0A45D text_color: 0xF0A45D
# Four status readings across the top
- label:
x: 355
y: 12
width: 150
text: "Moon"
text_font: font_small
text_align: CENTER
text_color: 0xA9A0D4
- label:
id: bedroom_moon_value_label
x: 355
y: 39
width: 150
text: "--.-%"
text_font: font_button
text_align: CENTER
text_color: 0xC6BDEC
- label:
x: 510
y: 12
width: 150
text: "Outdoor"
text_font: font_small
text_align: CENTER
text_color: 0x84B5D8
- label:
id: bedroom_outdoor_value_label
x: 510
y: 39
width: 150
text: "--.-°C"
text_font: font_button
text_align: CENTER
text_color: 0x9CCBEA
- label:
x: 665
y: 12
width: 150
text: "Indoor"
text_font: font_small
text_align: CENTER
text_color: 0xD6B78F
- label:
id: bedroom_indoor_value_label
x: 665
y: 39
width: 150
text: "--.-°C"
text_font: font_button
text_align: CENTER
text_color: 0xE8C79D
- label:
x: 820
y: 12
width: 165
text: "Humidity"
text_font: font_small
text_align: CENTER
text_color: 0x80BDA4
- label:
id: bedroom_humidity_value_label
x: 820
y: 39
width: 165
text: "--%"
text_font: font_button
text_align: CENTER
text_color: 0x97D2B7
# Row 1 # Row 1
- button: - button:
id: north_lights_button id: north_lights_button
x: 35 x: 35
y: 105 y: 95
width: 300 width: 300
height: 105 height: 105
text: "North Lights" text: "North Lights"
@@ -782,7 +872,7 @@ lvgl:
- button: - button:
id: south_lights_button id: south_lights_button
x: 362 x: 362
y: 105 y: 95
width: 300 width: 300
height: 105 height: 105
text: "South Lights" text: "South Lights"
@@ -803,7 +893,7 @@ lvgl:
- button: - button:
id: bedside_lamp_button id: bedside_lamp_button
x: 689 x: 689
y: 105 y: 95
width: 300 width: 300
height: 105 height: 105
text: "Bedside Lamp" text: "Bedside Lamp"
@@ -825,7 +915,7 @@ lvgl:
- button: - button:
id: hall_floor_button id: hall_floor_button
x: 35 x: 35
y: 228 y: 218
width: 300 width: 300
height: 105 height: 105
text: "Hall Floor" text: "Hall Floor"
@@ -846,7 +936,7 @@ lvgl:
- button: - button:
id: hall_lights_button id: hall_lights_button
x: 362 x: 362
y: 228 y: 218
width: 300 width: 300
height: 105 height: 105
text: "Hall Lights" text: "Hall Lights"
@@ -867,7 +957,7 @@ lvgl:
- button: - button:
id: bathroom_lights_button id: bathroom_lights_button
x: 689 x: 689
y: 228 y: 218
width: 300 width: 300
height: 105 height: 105
text: "Bathroom Lights" text: "Bathroom Lights"
@@ -889,7 +979,7 @@ lvgl:
- button: - button:
id: patio_lights_button id: patio_lights_button
x: 35 x: 35
y: 351 y: 341
width: 300 width: 300
height: 105 height: 105
text: "Patio Lights" text: "Patio Lights"
@@ -910,7 +1000,7 @@ lvgl:
- button: - button:
id: garage_lights_button id: garage_lights_button
x: 362 x: 362
y: 351 y: 341
width: 300 width: 300
height: 105 height: 105
text: "Garage Lights" text: "Garage Lights"
@@ -931,7 +1021,7 @@ lvgl:
- button: - button:
id: bathroom_fan_button id: bathroom_fan_button
x: 689 x: 689
y: 351 y: 341
width: 300 width: 300
height: 105 height: 105
text: "Bathroom Fan" text: "Bathroom Fan"
@@ -953,9 +1043,9 @@ lvgl:
- button: - button:
id: clock_now_button id: clock_now_button
x: 35 x: 35
y: 485 y: 475
width: 280 width: 280
height: 82 height: 92
text: "Show Clock" text: "Show Clock"
text_font: font_button text_font: font_button
bg_color: 0x214F72 bg_color: 0x214F72
@@ -977,9 +1067,9 @@ lvgl:
- button: - button:
id: spare_navigation_button id: spare_navigation_button
x: 340 x: 340
y: 485 y: 475
width: 280 width: 280
height: 82 height: 92
text: "More Soon" text: "More Soon"
text_font: font_button text_font: font_button
bg_color: 0x315843 bg_color: 0x315843
@@ -991,9 +1081,9 @@ lvgl:
- button: - button:
id: bedtime_button id: bedtime_button
x: 645 x: 645
y: 485 y: 475
width: 344 width: 344
height: 82 height: 92
text: "Hold for Bedtime" text: "Hold for Bedtime"
text_font: font_button text_font: font_button
bg_color: 0x3B3048 bg_color: 0x3B3048
@@ -1055,46 +1145,104 @@ lvgl:
- label: - label:
id: clock_time_label id: clock_time_label
align: TOP_MID align: TOP_MID
y: 70 y: 30
text: "--:--" text: "--:--"
text_font: font_clock text_font: font_clock
text_color: 0xE4DDD2 text_color: 0xE4DDD2
clickable: false clickable: false
- label:
id: clock_ampm_label
x: 790
y: 250
text: ""
text_font: font_title
text_color: 0x938D85
clickable: false
- label: - label:
id: clock_date_label id: clock_date_label
align: TOP_MID align: TOP_MID
y: 325 y: 265
text: "Waiting for time" text: "Waiting for time"
text_font: font_title text_font: font_title
text_color: 0xA8A198 text_color: 0xA8A198
clickable: false clickable: false
# Four status readings
- label: - label:
id: clock_temperature_label x: 80
x: 335 y: 355
y: 420 width: 205
text: "--.-°C" text: "Moon"
text_font: font_title text_font: font_small
text_color: 0x8FAFC8 text_align: CENTER
text_color: 0xA9A0D4
clickable: false clickable: false
- label: - label:
id: clock_humidity_label id: clock_moon_value_label
x: 600 x: 80
y: 420 y: 387
width: 205
text: "--.-%"
text_font: font_title
text_align: CENTER
text_color: 0xC6BDEC
clickable: false
- label:
x: 285
y: 355
width: 205
text: "Outdoor"
text_font: font_small
text_align: CENTER
text_color: 0x84B5D8
clickable: false
- label:
id: clock_outdoor_value_label
x: 285
y: 387
width: 205
text: "--.-°C"
text_font: font_title
text_align: CENTER
text_color: 0x9CCBEA
clickable: false
- label:
x: 490
y: 355
width: 205
text: "Indoor"
text_font: font_small
text_align: CENTER
text_color: 0xD6B78F
clickable: false
- label:
id: clock_indoor_value_label
x: 490
y: 387
width: 205
text: "--.-°C"
text_font: font_title
text_align: CENTER
text_color: 0xE8C79D
clickable: false
- label:
x: 695
y: 355
width: 245
text: "Humidity"
text_font: font_small
text_align: CENTER
text_color: 0x80BDA4
clickable: false
- label:
id: clock_humidity_value_label
x: 695
y: 387
width: 245
text: "--%" text: "--%"
text_font: font_title text_font: font_title
text_color: 0x7FAE9B text_align: CENTER
text_color: 0x97D2B7
clickable: false clickable: false
- label: - label: