Turn-off display when screensaver time is disabled
Potentially solves #1620
This commit is contained in:
@@ -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") {
|
||||
|
||||
Reference in New Issue
Block a user