Edit esp-bedside-panel.yaml

This commit is contained in:
ESPHome Device Builder
2026-07-17 23:03:40 +12:00
parent 38281df1dd
commit cafc856a3c
+232 -230
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.11 2026-07-17 Refined Atto button centring and rearranged vehicle status tiles
# V1.10a 2026-07-17 Compile fix: use C++ comments inside lambda blocks
# V1.10 2026-07-17 Refined Atto status layout and updated Garage Lights entity
# V1.9 2026-07-17 Corrected Atto lock/climate/setpoint controls and added vehicle icons
@@ -109,12 +110,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. Refined Atto status layout, optimistic controls and corrected Garage Lights entity. (Layout V1.1)"
description_comment: "Guition JC1060P470C_I_W_Y ESP32-P4 bedside control panel. Refined Atto centring and rearranged vehicle controls. (Layout V1.1)"
device_area: "Bedroom"
# Project Naming
project_name: "Guition.JC1060P470C_I_W_Y"
project_version: "v1.10a"
project_version: "v1.11"
# Passwords & Secrets
api_key: !secret esp-api_key
@@ -1148,17 +1149,17 @@ script:
id: atto_lock_button_label
text: !lambda |-
if (id(atto_lock_optimistic) == 1) {
return std::string("Locked (Hold)");
return std::string("Locked\n(Hold)");
}
if (id(atto_lock_optimistic) == 0) {
return std::string("Unlocked (Hold)");
return std::string("Unlocked\n(Hold)");
}
const auto state = id(ha_atto_lock_state).state;
if (state == "locked") {
return std::string("Locked (Hold)");
return std::string("Locked\n(Hold)");
}
if (state == "locking") {
@@ -1169,7 +1170,7 @@ script:
return std::string("Unlocking...");
}
return std::string("Unlocked (Hold)");
return std::string("Unlocked\n(Hold)");
- lvgl.label.update:
id: atto_lock_icon_label
@@ -2791,17 +2792,18 @@ lvgl:
- label:
id: atto_lock_icon_label
align: LEFT_MID
x: 14
y: 5
x: 18
y: 0
text: "\U000F033E"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
id: atto_lock_button_label
align: CENTER
x: 14
text: "Locked (Hold)"
x: 60
y: 19
width: 142
text: "Locked\n(Hold)"
text_font: font_small
text_align: CENTER
text_color: 0xFFFFFF
@@ -2854,16 +2856,16 @@ lvgl:
widgets:
- label:
align: LEFT_MID
x: 13
y: 5
x: 18
y: 0
text: "\U000F0084"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
x: 48
y: 10
width: 162
x: 60
y: 11
width: 142
text: "Atto Charging"
text_font: font_small
text_align: CENTER
@@ -2871,9 +2873,9 @@ lvgl:
- label:
id: atto_charging_state_label
x: 48
y: 42
width: 162
x: 60
y: 43
width: 142
text: "NOT CHARGING"
text_font: font_vehicle_bold
text_align: CENTER
@@ -2895,16 +2897,16 @@ lvgl:
widgets:
- label:
align: LEFT_MID
x: 13
y: 5
x: 18
y: 0
text: "\U000F00F0"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
x: 48
y: 10
width: 162
x: 60
y: 11
width: 142
text: "Schedule"
text_font: font_small
text_align: CENTER
@@ -2912,9 +2914,9 @@ lvgl:
- label:
id: atto_schedule_state_label
x: 48
y: 42
width: 162
x: 60
y: 43
width: 142
text: "NOT ENABLED"
text_font: font_vehicle_bold
text_align: CENTER
@@ -2926,131 +2928,11 @@ lvgl:
entity_id: "${atto_schedule_enabled_entity}"
- button:
id: atto_range_status
id: atto_driver_seat_button
x: 766
y: 22
width: 220
height: 92
bg_color: 0x1C2632
bg_opa: COVER
border_width: 2
border_color: 0x526276
radius: 17
widgets:
- label:
align: LEFT_MID
x: 13
y: 5
text: "\U000F08F0"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
x: 48
y: 10
width: 162
text: "Range"
text_font: font_small
text_align: CENTER
text_color: 0xAEB8C4
- label:
id: atto_range_value_label
x: 48
y: 41
width: 162
text: "-- km"
text_font: font_vehicle_bold
text_align: CENTER
text_color: 0xFFFFFF
#:################################################################################:#
# VEHICLE VALUES / SEAT HEATING
#:################################################################################:#
- button:
id: atto_battery_status
x: 25
y: 130
width: 220
height: 92
bg_color: 0x1C2632
bg_opa: COVER
border_width: 2
border_color: 0x526276
radius: 17
widgets:
- label:
align: LEFT_MID
x: 13
y: 5
text: "\U000F0079"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
x: 48
y: 10
width: 162
text: "Level"
text_font: font_small
text_align: CENTER
text_color: 0xAEB8C4
- label:
id: atto_battery_value_label
x: 48
y: 41
width: 162
text: "--%"
text_font: font_vehicle_bold
text_align: CENTER
text_color: 0xFFFFFF
- button:
id: atto_cabin_temperature_status
x: 272
y: 130
width: 220
height: 92
bg_color: 0x1C2632
bg_opa: COVER
border_width: 2
border_color: 0x526276
radius: 17
widgets:
- label:
align: LEFT_MID
x: 13
y: 5
text: "\U000F050F"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
x: 48
y: 10
width: 162
text: "Cabin"
text_font: font_small
text_align: CENTER
text_color: 0xAEB8C4
- label:
id: atto_cabin_temperature_value_label
x: 48
y: 41
width: 162
text: "--.-°C"
text_font: font_vehicle_bold
text_align: CENTER
text_color: 0xFFFFFF
- button:
id: atto_passenger_seat_button
x: 519
y: 130
width: 220
height: 92
bg_color: 0x28313D
bg_opa: COVER
border_width: 2
@@ -3061,94 +2943,17 @@ lvgl:
widgets:
- label:
align: LEFT_MID
x: 13
y: 5
text: "\U000F0FA6"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
id: atto_passenger_seat_button_label
x: 48
y: 20
width: 162
text: "Passenger Seat\n(Hold)"
text_font: font_small
text_align: CENTER
text_color: 0xFFFFFF
on_long_press:
then:
- if:
condition:
lambda: |-
const auto value =
id(ha_atto_passenger_seat_heating).state;
return (
value == "off" ||
value == "Off" ||
value == "unknown" ||
value == "unavailable" ||
value.empty()
);
then:
- homeassistant.action:
action: select.select_option
data:
entity_id: "${atto_passenger_seat_heating_entity}"
option: "low"
else:
- if:
condition:
lambda: |-
const auto value =
id(ha_atto_passenger_seat_heating).state;
return value == "low" || value == "Low";
then:
- homeassistant.action:
action: select.select_option
data:
entity_id: "${atto_passenger_seat_heating_entity}"
option: "high"
else:
- homeassistant.action:
action: select.select_option
data:
entity_id: "${atto_passenger_seat_heating_entity}"
option: "off"
- button:
id: atto_driver_seat_button
x: 766
y: 130
width: 220
height: 92
bg_color: 0x28313D
bg_opa: COVER
border_width: 2
border_color: 0xA6672B
radius: 17
pressed:
bg_color: 0x7A4A22
widgets:
- label:
align: LEFT_MID
x: 13
y: 5
x: 18
y: 0
text: "\U000F0FA6"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
id: atto_driver_seat_button_label
x: 48
y: 20
width: 162
x: 60
y: 19
width: 142
text: "Driver Seat\n(Hold)"
text_font: font_small
text_align: CENTER
@@ -3199,6 +3004,203 @@ lvgl:
entity_id: "${atto_driver_seat_heating_entity}"
option: "off"
#:################################################################################:#
# VEHICLE VALUES / SEAT HEATING
#:################################################################################:#
- button:
id: atto_cabin_temperature_status
x: 25
y: 130
width: 220
height: 92
bg_color: 0x1C2632
bg_opa: COVER
border_width: 2
border_color: 0x526276
radius: 17
widgets:
- label:
align: LEFT_MID
x: 18
y: 0
text: "\U000F050F"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
x: 60
y: 11
width: 142
text: "Cabin"
text_font: font_small
text_align: CENTER
text_color: 0xAEB8C4
- label:
id: atto_cabin_temperature_value_label
x: 60
y: 43
width: 142
text: "--.-°C"
text_font: font_vehicle_bold
text_align: CENTER
text_color: 0xFFFFFF
- button:
id: atto_battery_status
x: 272
y: 130
width: 220
height: 92
bg_color: 0x1C2632
bg_opa: COVER
border_width: 2
border_color: 0x526276
radius: 17
widgets:
- label:
align: LEFT_MID
x: 18
y: 0
text: "\U000F0079"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
x: 60
y: 11
width: 142
text: "Level"
text_font: font_small
text_align: CENTER
text_color: 0xAEB8C4
- label:
id: atto_battery_value_label
x: 60
y: 43
width: 142
text: "--%"
text_font: font_vehicle_bold
text_align: CENTER
text_color: 0xFFFFFF
- button:
id: atto_range_status
x: 519
y: 130
width: 220
height: 92
bg_color: 0x1C2632
bg_opa: COVER
border_width: 2
border_color: 0x526276
radius: 17
widgets:
- label:
align: LEFT_MID
x: 18
y: 0
text: "\U000F08F0"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
x: 60
y: 11
width: 142
text: "Range"
text_font: font_small
text_align: CENTER
text_color: 0xAEB8C4
- label:
id: atto_range_value_label
x: 60
y: 43
width: 142
text: "-- km"
text_font: font_vehicle_bold
text_align: CENTER
text_color: 0xFFFFFF
- button:
id: atto_passenger_seat_button
x: 766
y: 130
width: 220
height: 92
bg_color: 0x28313D
bg_opa: COVER
border_width: 2
border_color: 0xA6672B
radius: 17
pressed:
bg_color: 0x7A4A22
widgets:
- label:
align: LEFT_MID
x: 18
y: 0
text: "\U000F0FA6"
text_font: font_mdi_vehicle
text_color: 0xFFFFFF
- label:
id: atto_passenger_seat_button_label
x: 60
y: 19
width: 142
text: "Passenger Seat\n(Hold)"
text_font: font_small
text_align: CENTER
text_color: 0xFFFFFF
on_long_press:
then:
- if:
condition:
lambda: |-
const auto value =
id(ha_atto_passenger_seat_heating).state;
return (
value == "off" ||
value == "Off" ||
value == "unknown" ||
value == "unavailable" ||
value.empty()
);
then:
- homeassistant.action:
action: select.select_option
data:
entity_id: "${atto_passenger_seat_heating_entity}"
option: "low"
else:
- if:
condition:
lambda: |-
const auto value =
id(ha_atto_passenger_seat_heating).state;
return value == "low" || value == "Low";
then:
- homeassistant.action:
action: select.select_option
data:
entity_id: "${atto_passenger_seat_heating_entity}"
option: "high"
else:
- homeassistant.action:
action: select.select_option
data:
entity_id: "${atto_passenger_seat_heating_entity}"
option: "off"
#:################################################################################:#
# ATTO CLIMATE / SETPOINT
#:################################################################################:#