various tidyups
This commit is contained in:
+2170
-2108
File diff suppressed because it is too large
Load Diff
+223
@@ -0,0 +1,223 @@
|
||||
--- a/esp-bedside-panel.yaml
|
||||
+++ b/esp-bedside-panel.yaml
|
||||
@@ -5,6 +5,7 @@
|
||||
# https://home.fox.co.nz/gitea/zorruno/zorruno-homeassistant/src/branch/master/esphome/esp-bedside-panel.yaml
|
||||
#:########################################################################################:#
|
||||
# VERSIONS:
|
||||
+# V1.56 2026-09-04 Added latched blackout after 10 seconds below 1 lx with immediate exit
|
||||
# V1.55 2026-08-16 Show only Clock time and date in Blackout ambient-light mode
|
||||
# V1.54 2026-08-16 Dimmed Clock time and date palette in Blackout ambient-light mode
|
||||
@@ -248,7 +249,6 @@
|
||||
# Bright light: approximately 642-643 lx
|
||||
ambient_lux_multiplier_default: "200"
|
||||
-
|
||||
- display_blackout_lux_threshold_default: "2"
|
||||
display_dark_lux_threshold_default: "20"
|
||||
display_bright_lux_threshold_default: "250"
|
||||
@@ -921,21 +921,6 @@
|
||||
step: 5
|
||||
mode: box
|
||||
|
||||
- - platform: template
|
||||
- id: display_blackout_lux_threshold
|
||||
- name: "${friendly_name} Blackout Lux Threshold"
|
||||
- icon: mdi:brightness-1
|
||||
- entity_category: config
|
||||
- optimistic: true
|
||||
- restore_value: true
|
||||
- initial_value: "${display_blackout_lux_threshold_default}"
|
||||
- unit_of_measurement: "lx"
|
||||
- min_value: 0
|
||||
- max_value: 20
|
||||
- step: 0.5
|
||||
- mode: box
|
||||
-
|
||||
- platform: template
|
||||
id: display_dark_lux_threshold
|
||||
@@ -1228,6 +1213,45 @@
|
||||
update_interval: 3s
|
||||
lambda: |-
|
||||
const float voltage = id(ambient_light_voltage).state;
|
||||
+
|
||||
+ if (isnan(voltage)) {
|
||||
+ return NAN;
|
||||
+ }
|
||||
+
|
||||
+ float multiplier = id(ambient_lux_multiplier).state;
|
||||
+
|
||||
+ if (isnan(multiplier) || multiplier <= 0.0f) {
|
||||
+ multiplier = 200.0f;
|
||||
+ }
|
||||
+
|
||||
+ return voltage * multiplier;
|
||||
+ on_value:
|
||||
+ then:
|
||||
+ - if:
|
||||
+ condition:
|
||||
+ lambda: |-
|
||||
+ return !isnan(x) && x >= 1.0f;
|
||||
+ then:
|
||||
+ - script.stop: latch_display_blackout
|
||||
+ - lambda: |-
|
||||
+ id(display_blackout_active) = false;
|
||||
+ - if:
|
||||
+ condition:
|
||||
+ lambda: |-
|
||||
+ return id(lvgl_ready) && id(display_is_dimmed);
|
||||
+ then:
|
||||
+ - script.execute: apply_dim_backlight
|
||||
+ else:
|
||||
+ - if:
|
||||
+ condition:
|
||||
+ lambda: |-
|
||||
+ return id(lvgl_ready);
|
||||
+ then:
|
||||
+ - script.execute: apply_active_backlight
|
||||
+ else:
|
||||
+ - if:
|
||||
+ condition:
|
||||
+ lambda: |-
|
||||
+ return !isnan(x) && x < 1.0f && !id(display_blackout_active);
|
||||
+ then:
|
||||
+ - script.execute: latch_display_blackout
|
||||
- float multiplier = id(ambient_lux_multiplier).state;
|
||||
-
|
||||
- if (isnan(voltage)) {
|
||||
- return NAN;
|
||||
- }
|
||||
-
|
||||
- if (isnan(multiplier) || multiplier <= 0.0f) {
|
||||
- multiplier = 200.0f;
|
||||
- }
|
||||
-
|
||||
- return voltage * multiplier;
|
||||
|
||||
- platform: homeassistant
|
||||
@@ -1918,6 +1942,12 @@
|
||||
restore_value: false
|
||||
initial_value: "false"
|
||||
|
||||
+ # True after ambient light remains below 1 lx for 10 continuous seconds.
|
||||
+ - id: display_blackout_active
|
||||
+ type: bool
|
||||
+ restore_value: false
|
||||
+ initial_value: "false"
|
||||
+
|
||||
# True only while the Security page is visible.
|
||||
@@ -3133,31 +3163,52 @@
|
||||
- # Four ambient ranges are used:
|
||||
- # Blackout: lux < Blackout Lux Threshold
|
||||
- # Dark: Blackout threshold to Dark Lux Threshold
|
||||
- # Normal: between Dark and Bright thresholds
|
||||
- # Bright: lux >= Bright Lux Threshold
|
||||
+ # Blackout latches after ambient light remains below 1 lx for 10 seconds and
|
||||
+ # exits immediately when ambient light reaches 1 lx. The remaining ranges are:
|
||||
+ # Dark: lux <= Dark Lux Threshold
|
||||
+ # Normal: between Dark and Bright thresholds
|
||||
+ # Bright: lux >= Bright Lux Threshold
|
||||
#
|
||||
# The active and clock/idle brightness levels are independently adjustable
|
||||
# and restored after reboot.
|
||||
|
||||
+ - id: latch_display_blackout
|
||||
+ mode: single
|
||||
+ then:
|
||||
+ - delay: 10s
|
||||
+ - if:
|
||||
+ condition:
|
||||
+ lambda: |-
|
||||
+ const float lux = id(ambient_light_illuminance).state;
|
||||
+ return !isnan(lux) && lux < 1.0f;
|
||||
+ then:
|
||||
+ - lambda: |-
|
||||
+ id(display_blackout_active) = true;
|
||||
+ - if:
|
||||
+ condition:
|
||||
+ lambda: |-
|
||||
+ return id(lvgl_ready) && id(display_is_dimmed);
|
||||
+ then:
|
||||
+ - script.execute: apply_dim_backlight
|
||||
+ else:
|
||||
+ - if:
|
||||
+ condition:
|
||||
+ lambda: |-
|
||||
+ return id(lvgl_ready);
|
||||
+ then:
|
||||
+ - script.execute: apply_active_backlight
|
||||
+
|
||||
# Keep the idle Clock unobtrusive at the minimum usable backlight level.
|
||||
- id: apply_clock_blackout_palette
|
||||
@@ -3146,15 +3197,7 @@
|
||||
- if:
|
||||
condition:
|
||||
lambda: |-
|
||||
- const float lux = id(ambient_light_illuminance).state;
|
||||
- float blackout_threshold =
|
||||
- id(display_blackout_lux_threshold).state;
|
||||
-
|
||||
- if (isnan(blackout_threshold)) {
|
||||
- blackout_threshold = 2.0f;
|
||||
- }
|
||||
-
|
||||
- return !isnan(lux) && lux < blackout_threshold;
|
||||
+ return id(display_blackout_active);
|
||||
@@ -3212,22 +3255,12 @@
|
||||
brightness: !lambda |-
|
||||
const float lux = id(ambient_light_illuminance).state;
|
||||
|
||||
- float blackout_threshold =
|
||||
- id(display_blackout_lux_threshold).state;
|
||||
float dark_threshold =
|
||||
id(display_dark_lux_threshold).state;
|
||||
float bright_threshold =
|
||||
id(display_bright_lux_threshold).state;
|
||||
|
||||
- if (isnan(blackout_threshold)) {
|
||||
- blackout_threshold = 2.0f;
|
||||
- }
|
||||
-
|
||||
if (
|
||||
isnan(dark_threshold) ||
|
||||
- dark_threshold <= blackout_threshold
|
||||
+ dark_threshold <= 0.0f
|
||||
) {
|
||||
dark_threshold = 20.0f;
|
||||
}
|
||||
@@ -3239,7 +3272,7 @@
|
||||
|
||||
float brightness_percent;
|
||||
|
||||
- if (!isnan(lux) && lux < blackout_threshold) {
|
||||
+ if (id(display_blackout_active)) {
|
||||
brightness_percent =
|
||||
id(display_blackout_brightness).state;
|
||||
@@ -3280,22 +3313,12 @@
|
||||
brightness: !lambda |-
|
||||
const float lux = id(ambient_light_illuminance).state;
|
||||
|
||||
- float blackout_threshold =
|
||||
- id(display_blackout_lux_threshold).state;
|
||||
float dark_threshold =
|
||||
id(display_dark_lux_threshold).state;
|
||||
float bright_threshold =
|
||||
id(display_bright_lux_threshold).state;
|
||||
|
||||
- if (isnan(blackout_threshold)) {
|
||||
- blackout_threshold = 2.0f;
|
||||
- }
|
||||
-
|
||||
if (
|
||||
isnan(dark_threshold) ||
|
||||
- dark_threshold <= blackout_threshold
|
||||
+ dark_threshold <= 0.0f
|
||||
) {
|
||||
dark_threshold = 20.0f;
|
||||
}
|
||||
@@ -3307,7 +3330,7 @@
|
||||
|
||||
float brightness_percent;
|
||||
|
||||
- if (!isnan(lux) && lux < blackout_threshold) {
|
||||
+ if (id(display_blackout_active)) {
|
||||
brightness_percent =
|
||||
id(display_blackout_brightness).state;
|
||||
Reference in New Issue
Block a user