Edit esp-bedside-panel.yaml
This commit is contained in:
+176
-121
@@ -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.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
|
# V1.9 2026-07-17 Corrected Atto lock/climate/setpoint controls and added vehicle icons
|
||||||
# V1.8 2026-07-17 Added hold-to-open Atto Vehicles page and vehicle controls
|
# V1.8 2026-07-17 Added hold-to-open Atto Vehicles page and vehicle controls
|
||||||
# V1.7 2026-07-17 Added Bedroom button icons and corrected Panasonic Nanoe-X naming
|
# V1.7 2026-07-17 Added Bedroom button icons and corrected Panasonic Nanoe-X naming
|
||||||
@@ -107,12 +108,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. Vehicles page with corrected BYD lock, climate and setpoint controls. (Layout V1.1)"
|
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)"
|
||||||
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.9"
|
project_version: "v1.10"
|
||||||
|
|
||||||
# Passwords & Secrets
|
# Passwords & Secrets
|
||||||
api_key: !secret esp-api_key
|
api_key: !secret esp-api_key
|
||||||
@@ -159,7 +160,7 @@ substitutions:
|
|||||||
hall_lights_entity: "switch.main_hallway_lightswitch_relay_1_main_hallway_lights"
|
hall_lights_entity: "switch.main_hallway_lightswitch_relay_1_main_hallway_lights"
|
||||||
bathroom_lights_entity: "switch.main_bathroom_lightswitch_3_2_all_main_bathroom_lights"
|
bathroom_lights_entity: "switch.main_bathroom_lightswitch_3_2_all_main_bathroom_lights"
|
||||||
patio_lights_entity: "switch.esp_garageentrylights_relay_2_patio_lights"
|
patio_lights_entity: "switch.esp_garageentrylights_relay_2_patio_lights"
|
||||||
garage_lights_entity: "switch.esp_garageentrylights_relay_3_garage_lights"
|
garage_lights_entity: "switch.esp_garagelights_garage_lights"
|
||||||
bathroom_fan_entity: "switch.esp_mainbathfancombo_relay_1_extract_fan"
|
bathroom_fan_entity: "switch.esp_mainbathfancombo_relay_1_extract_fan"
|
||||||
|
|
||||||
# Home Assistant Entities - Status
|
# Home Assistant Entities - Status
|
||||||
@@ -545,6 +546,19 @@ font:
|
|||||||
- "\U000F0238" # mdi-fire
|
- "\U000F0238" # mdi-fire
|
||||||
- "\U000F0717" # mdi-snowflake
|
- "\U000F0717" # mdi-snowflake
|
||||||
|
|
||||||
|
# Bold Atto status/value font used for prominent second-line values.
|
||||||
|
- file:
|
||||||
|
type: gfonts
|
||||||
|
family: Roboto
|
||||||
|
weight: 700
|
||||||
|
id: font_vehicle_bold
|
||||||
|
size: 27
|
||||||
|
bpp: 4
|
||||||
|
glyphs:
|
||||||
|
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
- "abcdefghijklmnopqrstuvwxyz"
|
||||||
|
- "0123456789 .:/-%°()"
|
||||||
|
|
||||||
#:########################################################################################:#
|
#:########################################################################################:#
|
||||||
# HOME ASSISTANT NUMERIC SENSORS:
|
# HOME ASSISTANT NUMERIC SENSORS:
|
||||||
# https://esphome.io/components/sensor/homeassistant.html
|
# https://esphome.io/components/sensor/homeassistant.html
|
||||||
@@ -696,7 +710,16 @@ sensor:
|
|||||||
on_value:
|
on_value:
|
||||||
then:
|
then:
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
if (!isnan(x)) {
|
if (isnan(x)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
# BYD cloud polling can briefly return the previous target after
|
||||||
|
# a command. Do not let that stale value reverse the display.
|
||||||
|
if (
|
||||||
|
!id(atto_setpoint_optimistic) ||
|
||||||
|
fabsf(x - id(atto_setpoint_local)) < 0.1f
|
||||||
|
) {
|
||||||
id(atto_setpoint_local) = x;
|
id(atto_setpoint_local) = x;
|
||||||
id(atto_setpoint_optimistic) = false;
|
id(atto_setpoint_optimistic) = false;
|
||||||
}
|
}
|
||||||
@@ -1175,21 +1198,29 @@ script:
|
|||||||
? lv_color_hex(0x315843)
|
? lv_color_hex(0x315843)
|
||||||
: lv_color_hex(0x6B3A3A);
|
: lv_color_hex(0x6B3A3A);
|
||||||
|
|
||||||
# Charging and schedule status.
|
# Charging: prominent status and bright red active button.
|
||||||
- lvgl.label.update:
|
- lvgl.label.update:
|
||||||
id: atto_charging_label
|
id: atto_charging_state_label
|
||||||
text: !lambda |-
|
text: !lambda |-
|
||||||
return id(ha_atto_charging).state
|
return id(ha_atto_charging).state
|
||||||
? std::string("Atto Charging\nCharging")
|
? std::string("CHARGING")
|
||||||
: std::string("Atto Charging\nNot Charging");
|
: std::string("NOT CHARGING");
|
||||||
|
|
||||||
- lvgl.widget.update:
|
- lvgl.widget.update:
|
||||||
id: atto_charging_status
|
id: atto_charging_status
|
||||||
bg_color: !lambda |-
|
bg_color: !lambda |-
|
||||||
return id(ha_atto_charging).state
|
return id(ha_atto_charging).state
|
||||||
? lv_color_hex(0x315843)
|
? lv_color_hex(0xD32F2F)
|
||||||
: lv_color_hex(0x28313D);
|
: lv_color_hex(0x28313D);
|
||||||
|
|
||||||
|
# Charging schedule state.
|
||||||
|
- lvgl.label.update:
|
||||||
|
id: atto_schedule_state_label
|
||||||
|
text: !lambda |-
|
||||||
|
return id(ha_atto_schedule_enabled).state
|
||||||
|
? std::string("ENABLED")
|
||||||
|
: std::string("NOT ENABLED");
|
||||||
|
|
||||||
- lvgl.widget.update:
|
- lvgl.widget.update:
|
||||||
id: atto_schedule_button
|
id: atto_schedule_button
|
||||||
bg_color: !lambda |-
|
bg_color: !lambda |-
|
||||||
@@ -1199,102 +1230,74 @@ script:
|
|||||||
|
|
||||||
# Vehicle values.
|
# Vehicle values.
|
||||||
- lvgl.label.update:
|
- lvgl.label.update:
|
||||||
id: atto_range_label
|
id: atto_range_value_label
|
||||||
text: !lambda |-
|
text: !lambda |-
|
||||||
const float value = id(ha_atto_range).state;
|
const float value = id(ha_atto_range).state;
|
||||||
|
|
||||||
if (isnan(value)) {
|
if (isnan(value)) {
|
||||||
return std::string("Atto Range\n-- km");
|
return std::string("-- km");
|
||||||
}
|
}
|
||||||
|
|
||||||
char buffer[32];
|
char buffer[20];
|
||||||
snprintf(buffer, sizeof(buffer), "Atto Range\n%.0f km", value);
|
snprintf(buffer, sizeof(buffer), "%.0f km", value);
|
||||||
return std::string(buffer);
|
return std::string(buffer);
|
||||||
|
|
||||||
- lvgl.label.update:
|
- lvgl.label.update:
|
||||||
id: atto_battery_label
|
id: atto_battery_value_label
|
||||||
text: !lambda |-
|
text: !lambda |-
|
||||||
const float value = id(ha_atto_battery_level).state;
|
const float value = id(ha_atto_battery_level).state;
|
||||||
|
|
||||||
if (isnan(value)) {
|
if (isnan(value)) {
|
||||||
return std::string("Battery Level\n--%");
|
return std::string("--%");
|
||||||
}
|
}
|
||||||
|
|
||||||
char buffer[32];
|
char buffer[20];
|
||||||
snprintf(buffer, sizeof(buffer), "Battery Level\n%.0f%%", value);
|
snprintf(buffer, sizeof(buffer), "%.0f%%", value);
|
||||||
return std::string(buffer);
|
return std::string(buffer);
|
||||||
|
|
||||||
- lvgl.label.update:
|
- lvgl.label.update:
|
||||||
id: atto_cabin_temperature_label
|
id: atto_cabin_temperature_value_label
|
||||||
text: !lambda |-
|
text: !lambda |-
|
||||||
const float value = id(ha_atto_cabin_temperature).state;
|
const float value = id(ha_atto_cabin_temperature).state;
|
||||||
|
|
||||||
if (isnan(value)) {
|
if (isnan(value)) {
|
||||||
return std::string("Cabin Temp\n--.-°C");
|
return std::string("--.-°C");
|
||||||
}
|
}
|
||||||
|
|
||||||
char buffer[32];
|
char buffer[20];
|
||||||
snprintf(buffer, sizeof(buffer), "Cabin Temp\n%.1f°C", value);
|
snprintf(buffer, sizeof(buffer), "%.1f°C", value);
|
||||||
return std::string(buffer);
|
return std::string(buffer);
|
||||||
|
|
||||||
# Seat-heating states.
|
# Seat-heating colour only; the label remains clean and fixed.
|
||||||
- lvgl.label.update:
|
|
||||||
id: atto_passenger_seat_button_label
|
|
||||||
text: !lambda |-
|
|
||||||
const auto value = id(ha_atto_passenger_seat_heating).state;
|
|
||||||
|
|
||||||
if (value == "low" || value == "Low") {
|
|
||||||
return std::string("Passenger Seat (Hold)\nLow");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (value == "high" || value == "High") {
|
|
||||||
return std::string("Passenger Seat (Hold)\nHigh");
|
|
||||||
}
|
|
||||||
|
|
||||||
return std::string("Passenger Seat (Hold)\nOff");
|
|
||||||
|
|
||||||
- lvgl.widget.update:
|
- lvgl.widget.update:
|
||||||
id: atto_passenger_seat_button
|
id: atto_passenger_seat_button
|
||||||
bg_color: !lambda |-
|
bg_color: !lambda |-
|
||||||
const auto value = id(ha_atto_passenger_seat_heating).state;
|
const auto value = id(ha_atto_passenger_seat_heating).state;
|
||||||
|
|
||||||
return (
|
if (value == "high" || value == "High") {
|
||||||
value == "low" ||
|
return lv_color_hex(0xB76822);
|
||||||
value == "Low" ||
|
}
|
||||||
value == "high" ||
|
|
||||||
value == "High"
|
|
||||||
)
|
|
||||||
? lv_color_hex(0x7A4A22)
|
|
||||||
: lv_color_hex(0x28313D);
|
|
||||||
|
|
||||||
- lvgl.label.update:
|
|
||||||
id: atto_driver_seat_button_label
|
|
||||||
text: !lambda |-
|
|
||||||
const auto value = id(ha_atto_driver_seat_heating).state;
|
|
||||||
|
|
||||||
if (value == "low" || value == "Low") {
|
if (value == "low" || value == "Low") {
|
||||||
return std::string("Driver Seat (Hold)\nLow");
|
return lv_color_hex(0x7A4A22);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value == "high" || value == "High") {
|
return lv_color_hex(0x28313D);
|
||||||
return std::string("Driver Seat (Hold)\nHigh");
|
|
||||||
}
|
|
||||||
|
|
||||||
return std::string("Driver Seat (Hold)\nOff");
|
|
||||||
|
|
||||||
- lvgl.widget.update:
|
- lvgl.widget.update:
|
||||||
id: atto_driver_seat_button
|
id: atto_driver_seat_button
|
||||||
bg_color: !lambda |-
|
bg_color: !lambda |-
|
||||||
const auto value = id(ha_atto_driver_seat_heating).state;
|
const auto value = id(ha_atto_driver_seat_heating).state;
|
||||||
|
|
||||||
return (
|
if (value == "high" || value == "High") {
|
||||||
value == "low" ||
|
return lv_color_hex(0xB76822);
|
||||||
value == "Low" ||
|
}
|
||||||
value == "high" ||
|
|
||||||
value == "High"
|
if (value == "low" || value == "Low") {
|
||||||
)
|
return lv_color_hex(0x7A4A22);
|
||||||
? lv_color_hex(0x7A4A22)
|
}
|
||||||
: lv_color_hex(0x28313D);
|
|
||||||
|
return lv_color_hex(0x28313D);
|
||||||
|
|
||||||
# BYD heating/cooling intent is represented by max presets.
|
# BYD heating/cooling intent is represented by max presets.
|
||||||
- lvgl.widget.update:
|
- lvgl.widget.update:
|
||||||
@@ -1374,7 +1377,7 @@ script:
|
|||||||
- id: release_atto_setpoint_optimistic
|
- id: release_atto_setpoint_optimistic
|
||||||
mode: restart
|
mode: restart
|
||||||
then:
|
then:
|
||||||
- delay: 12s
|
- delay: 30s
|
||||||
- lambda: |-
|
- lambda: |-
|
||||||
id(atto_setpoint_optimistic) = false;
|
id(atto_setpoint_optimistic) = false;
|
||||||
|
|
||||||
@@ -2786,9 +2789,9 @@ lvgl:
|
|||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
id: atto_lock_icon_label
|
id: atto_lock_icon_label
|
||||||
align: TOP_LEFT
|
align: LEFT_MID
|
||||||
x: 10
|
x: 14
|
||||||
y: 8
|
y: 5
|
||||||
text: "\U000F033E"
|
text: "\U000F033E"
|
||||||
text_font: font_mdi_vehicle
|
text_font: font_mdi_vehicle
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
@@ -2796,7 +2799,7 @@ lvgl:
|
|||||||
- label:
|
- label:
|
||||||
id: atto_lock_button_label
|
id: atto_lock_button_label
|
||||||
align: CENTER
|
align: CENTER
|
||||||
x: 10
|
x: 14
|
||||||
text: "Locked (Hold)"
|
text: "Locked (Hold)"
|
||||||
text_font: font_small
|
text_font: font_small
|
||||||
text_align: CENTER
|
text_align: CENTER
|
||||||
@@ -2845,26 +2848,36 @@ lvgl:
|
|||||||
bg_color: 0x28313D
|
bg_color: 0x28313D
|
||||||
bg_opa: COVER
|
bg_opa: COVER
|
||||||
border_width: 2
|
border_width: 2
|
||||||
border_color: 0x548C6C
|
border_color: 0xA96363
|
||||||
radius: 17
|
radius: 17
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: TOP_LEFT
|
align: LEFT_MID
|
||||||
x: 10
|
x: 13
|
||||||
y: 8
|
y: 5
|
||||||
text: "\U000F0084"
|
text: "\U000F0084"
|
||||||
text_font: font_mdi_vehicle
|
text_font: font_mdi_vehicle
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- label:
|
- label:
|
||||||
id: atto_charging_label
|
x: 48
|
||||||
align: CENTER
|
y: 10
|
||||||
x: 10
|
width: 162
|
||||||
text: "Atto Charging\nNot Charging"
|
text: "Atto Charging"
|
||||||
text_font: font_small
|
text_font: font_small
|
||||||
text_align: CENTER
|
text_align: CENTER
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
|
- label:
|
||||||
|
id: atto_charging_state_label
|
||||||
|
x: 48
|
||||||
|
y: 42
|
||||||
|
width: 162
|
||||||
|
text: "NOT CHARGING"
|
||||||
|
text_font: font_vehicle_bold
|
||||||
|
text_align: CENTER
|
||||||
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- button:
|
- button:
|
||||||
id: atto_schedule_button
|
id: atto_schedule_button
|
||||||
x: 519
|
x: 519
|
||||||
@@ -2880,20 +2893,31 @@ lvgl:
|
|||||||
bg_color: 0x315E82
|
bg_color: 0x315E82
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: TOP_LEFT
|
align: LEFT_MID
|
||||||
x: 10
|
x: 13
|
||||||
y: 8
|
y: 5
|
||||||
text: "\U000F00F0"
|
text: "\U000F00F0"
|
||||||
text_font: font_mdi_vehicle
|
text_font: font_mdi_vehicle
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- label:
|
- label:
|
||||||
align: CENTER
|
x: 48
|
||||||
x: 10
|
y: 10
|
||||||
text: "Schedule Enabled"
|
width: 162
|
||||||
|
text: "Schedule"
|
||||||
text_font: font_small
|
text_font: font_small
|
||||||
text_align: CENTER
|
text_align: CENTER
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
|
- label:
|
||||||
|
id: atto_schedule_state_label
|
||||||
|
x: 48
|
||||||
|
y: 42
|
||||||
|
width: 162
|
||||||
|
text: "NOT ENABLED"
|
||||||
|
text_font: font_vehicle_bold
|
||||||
|
text_align: CENTER
|
||||||
|
text_color: 0xFFFFFF
|
||||||
on_click:
|
on_click:
|
||||||
- homeassistant.action:
|
- homeassistant.action:
|
||||||
action: switch.toggle
|
action: switch.toggle
|
||||||
@@ -2913,20 +2937,30 @@ lvgl:
|
|||||||
radius: 17
|
radius: 17
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: TOP_LEFT
|
align: LEFT_MID
|
||||||
x: 10
|
x: 13
|
||||||
y: 8
|
y: 5
|
||||||
text: "\U000F08F0"
|
text: "\U000F08F0"
|
||||||
text_font: font_mdi_vehicle
|
text_font: font_mdi_vehicle
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- label:
|
- label:
|
||||||
id: atto_range_label
|
x: 48
|
||||||
align: CENTER
|
y: 10
|
||||||
x: 10
|
width: 162
|
||||||
text: "Atto Range\n-- km"
|
text: "Range"
|
||||||
text_font: font_small
|
text_font: font_small
|
||||||
text_align: CENTER
|
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
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
#:################################################################################:#
|
#:################################################################################:#
|
||||||
@@ -2945,20 +2979,30 @@ lvgl:
|
|||||||
radius: 17
|
radius: 17
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: TOP_LEFT
|
align: LEFT_MID
|
||||||
x: 10
|
x: 13
|
||||||
y: 8
|
y: 5
|
||||||
text: "\U000F0079"
|
text: "\U000F0079"
|
||||||
text_font: font_mdi_vehicle
|
text_font: font_mdi_vehicle
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- label:
|
- label:
|
||||||
id: atto_battery_label
|
x: 48
|
||||||
align: CENTER
|
y: 10
|
||||||
x: 10
|
width: 162
|
||||||
text: "Battery Level\n--%"
|
text: "Level"
|
||||||
text_font: font_small
|
text_font: font_small
|
||||||
text_align: CENTER
|
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
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- button:
|
- button:
|
||||||
@@ -2974,23 +3018,32 @@ lvgl:
|
|||||||
radius: 17
|
radius: 17
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: TOP_LEFT
|
align: LEFT_MID
|
||||||
x: 10
|
x: 13
|
||||||
y: 8
|
y: 5
|
||||||
text: "\U000F050F"
|
text: "\U000F050F"
|
||||||
text_font: font_mdi_vehicle
|
text_font: font_mdi_vehicle
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- label:
|
- label:
|
||||||
id: atto_cabin_temperature_label
|
x: 48
|
||||||
align: CENTER
|
y: 10
|
||||||
x: 10
|
width: 162
|
||||||
text: "Cabin Temp\n--.-°C"
|
text: "Cabin"
|
||||||
text_font: font_small
|
text_font: font_small
|
||||||
text_align: CENTER
|
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
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
# Passenger seat is intentionally before Driver seat.
|
|
||||||
- button:
|
- button:
|
||||||
id: atto_passenger_seat_button
|
id: atto_passenger_seat_button
|
||||||
x: 519
|
x: 519
|
||||||
@@ -3006,18 +3059,19 @@ lvgl:
|
|||||||
bg_color: 0x7A4A22
|
bg_color: 0x7A4A22
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: TOP_LEFT
|
align: LEFT_MID
|
||||||
x: 10
|
x: 13
|
||||||
y: 8
|
y: 5
|
||||||
text: "\U000F0FA6"
|
text: "\U000F0FA6"
|
||||||
text_font: font_mdi_vehicle
|
text_font: font_mdi_vehicle
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- label:
|
- label:
|
||||||
id: atto_passenger_seat_button_label
|
id: atto_passenger_seat_button_label
|
||||||
align: CENTER
|
x: 48
|
||||||
x: 10
|
y: 20
|
||||||
text: "Passenger Seat (Hold)\nOff"
|
width: 162
|
||||||
|
text: "Passenger Seat\n(Hold)"
|
||||||
text_font: font_small
|
text_font: font_small
|
||||||
text_align: CENTER
|
text_align: CENTER
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
@@ -3082,18 +3136,19 @@ lvgl:
|
|||||||
bg_color: 0x7A4A22
|
bg_color: 0x7A4A22
|
||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: TOP_LEFT
|
align: LEFT_MID
|
||||||
x: 10
|
x: 13
|
||||||
y: 8
|
y: 5
|
||||||
text: "\U000F0FA6"
|
text: "\U000F0FA6"
|
||||||
text_font: font_mdi_vehicle
|
text_font: font_mdi_vehicle
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- label:
|
- label:
|
||||||
id: atto_driver_seat_button_label
|
id: atto_driver_seat_button_label
|
||||||
align: CENTER
|
x: 48
|
||||||
x: 10
|
y: 20
|
||||||
text: "Driver Seat (Hold)\nOff"
|
width: 162
|
||||||
|
text: "Driver Seat\n(Hold)"
|
||||||
text_font: font_small
|
text_font: font_small
|
||||||
text_align: CENTER
|
text_align: CENTER
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
@@ -3171,14 +3226,14 @@ lvgl:
|
|||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: LEFT_MID
|
align: LEFT_MID
|
||||||
x: 18
|
x: 10
|
||||||
text: "\U000F0238"
|
text: "\U000F0238"
|
||||||
text_font: font_mdi_vehicle
|
text_font: font_mdi_vehicle
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- label:
|
- label:
|
||||||
align: CENTER
|
align: CENTER
|
||||||
x: 15
|
x: 28
|
||||||
text: "Heat (Hold)"
|
text: "Heat (Hold)"
|
||||||
text_font: font_button
|
text_font: font_button
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
@@ -3213,14 +3268,14 @@ lvgl:
|
|||||||
widgets:
|
widgets:
|
||||||
- label:
|
- label:
|
||||||
align: LEFT_MID
|
align: LEFT_MID
|
||||||
x: 18
|
x: 10
|
||||||
text: "\U000F0717"
|
text: "\U000F0717"
|
||||||
text_font: font_mdi_vehicle
|
text_font: font_mdi_vehicle
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|
||||||
- label:
|
- label:
|
||||||
align: CENTER
|
align: CENTER
|
||||||
x: 15
|
x: 28
|
||||||
text: "Cool (Hold)"
|
text: "Cool (Hold)"
|
||||||
text_font: font_button
|
text_font: font_button
|
||||||
text_color: 0xFFFFFF
|
text_color: 0xFFFFFF
|
||||||
|
|||||||
Reference in New Issue
Block a user