Edit esp-bedside-panel.yaml
This commit is contained in:
+232
-230
@@ -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
|
||||
#:################################################################################:#
|
||||
|
||||
Reference in New Issue
Block a user