Turn-off display when screensaver time is disabled

Potentially solves #1620
This commit is contained in:
Edward Firmo
2024-01-17 00:41:23 +01:00
parent 01c898b98c
commit 0e35bae534
33 changed files with 184 additions and 56 deletions

View File

@@ -50,7 +50,7 @@ esp32:
##### WIFI SETUP #####
wifi:
id: wifi_component
power_save_mode: NONE
power_save_mode: LIGHT
networks:
- id: wifi_default
ssid: ${wifi_ssid}
@@ -820,13 +820,6 @@ globals:
restore_value: true
initial_value: '10'
##### Remember last brighness value sent to Nextion #####
- id: display_last_brightness
type: uint
restore_value: false
initial_value: '100'
##### Temperature unit #####
##### Is embedded sensor used for indoor temperature? #####
- id: embedded_indoor_temp
type: bool
@@ -1114,6 +1107,7 @@ number:
if (current_page->state != "screensaver")
{
disp1->set_backlight_brightness(x/100);
current_brightness->update();
timer_dim->execute(current_page->state.c_str(), int(timeout_dim->state));
timer_sleep->execute(current_page->state.c_str(), int(timeout_sleep->state));
if (current_page->state == "settings") disp1->set_component_text_printf("bright_text", "%i%%", int(x));
@@ -1137,7 +1131,7 @@ number:
id(display_dim_brightness_global) = int(x);
disp1->send_command_printf("brightness_dim=%i", int(x));
disp1->send_command_printf("settings.dimslider.val=%i", int(x));
if (current_page->state != "screensaver" and (id(display_last_brightness) <= id(display_dim_brightness_global)))
if (current_page->state != "screensaver" and (current_brightness->state <= id(display_dim_brightness_global)))
{
set_brightness->execute(x);
timer_sleep->execute(current_page->state.c_str(), int(timeout_sleep->state));
@@ -1352,6 +1346,24 @@ sensor:
- lambda: |-
timer_reset_all->execute("settings");
###### Display Brightness - Current value (%) #####
- id: current_brightness
name: ${name} Display Current brightness
platform: nextion
variable_name: dim
precision: 0
unit_of_measurement: "%"
icon: mdi:brightness-percent
#update_interval: 60s
internal: false
disabled_by_default: true
on_value:
then:
- lambda: |-
static const char *const TAG = "sensor.current_brightness";
ESP_LOGD(TAG, "Current brightness: %i%%", int(x));
###### Page Id - Current #####
- id: page_id
name: ${name} Page Id
platform: nextion
@@ -2223,8 +2235,14 @@ script:
static const char *const TAG = "script.page_screensaver";
ESP_LOGV(TAG, "Updating screensaver page");
disp1->send_command_printf("back_page_id=%i", id(wakeup_page_id));
set_component_color->execute("screensaver.text",id(screensaver_display_time_color));
refresh_datetime->execute();
if (id(screensaver_display_time)) {
disp1->show_component("text");
set_component_color->execute("screensaver.text",id(screensaver_display_time_color));
refresh_datetime->execute();
} else {
disp1->set_backlight_brightness(0.0f);
}
current_brightness->update();
}
- id: page_settings
@@ -2483,7 +2501,9 @@ script:
disp1->send_command_printf("wakeup_timer.en=1");
else
disp1->set_backlight_brightness(static_cast<float>(brightness) / 100.0f);
id(display_last_brightness) = brightness;
current_brightness->update();
- delay: 5s
- lambda: current_brightness->update();
- id: set_climate
mode: restart
@@ -2901,7 +2921,7 @@ script:
then:
- lambda: |-
ESP_LOGV("script.timer_dim", "Reset timer: %is", timeout);
if (id(display_last_brightness) <= id(display_dim_brightness_global)
if (current_brightness->state <= id(display_dim_brightness_global)
and page != "screensaver"
and page != "boot"
and page != "blank-screensaver") {