mirror of
https://github.com/basnijholt/adaptive-lighting.git
synced 2026-09-14 07:44:04 +02:00
add adapt_color_temp_until_sleep
supports backward-compatibility
This commit is contained in:
parent
b53a5aff68
commit
840aab6158
2 changed files with 14 additions and 4 deletions
|
|
@ -157,9 +157,14 @@ DOCS[CONF_ADAPT_UNTIL_SLEEP] = (
|
||||||
"When enabled, Adaptive Lighting will treat sleep settings as the minimum, "
|
"When enabled, Adaptive Lighting will treat sleep settings as the minimum, "
|
||||||
"transitioning color temperature to these values after sunset. 🌙"
|
"transitioning color temperature to these values after sunset. 🌙"
|
||||||
)
|
)
|
||||||
|
CONF_ADAPT_COLOR_TEMP_UNTIL_SLEEP, DEFAULT_ADAPT_COLOR_TEMP_UNTIL_SLEEP = (
|
||||||
|
"adapt_color_temp_until_sleep",
|
||||||
|
True,
|
||||||
|
)
|
||||||
|
DOCS[CONF_ADAPT_COLOR_TEMP_UNTIL_SLEEP] = "See " + CONF_ADAPT_UNTIL_SLEEP + "."
|
||||||
CONF_ADAPT_BRIGHTNESS_UNTIL_SLEEP, DEFAULT_ADAPT_BRIGHTNESS_UNTIL_SLEEP = (
|
CONF_ADAPT_BRIGHTNESS_UNTIL_SLEEP, DEFAULT_ADAPT_BRIGHTNESS_UNTIL_SLEEP = (
|
||||||
"transition_brightness_until_sleep",
|
"adapt_brightness_until_sleep",
|
||||||
False,
|
True,
|
||||||
)
|
)
|
||||||
DOCS[CONF_ADAPT_BRIGHTNESS_UNTIL_SLEEP] = "See " + CONF_ADAPT_UNTIL_SLEEP + "."
|
DOCS[CONF_ADAPT_BRIGHTNESS_UNTIL_SLEEP] = "See " + CONF_ADAPT_UNTIL_SLEEP + "."
|
||||||
|
|
||||||
|
|
@ -236,6 +241,8 @@ VALIDATION_TUPLES = [
|
||||||
(CONF_SLEEP_TRANSITION, DEFAULT_SLEEP_TRANSITION, VALID_TRANSITION),
|
(CONF_SLEEP_TRANSITION, DEFAULT_SLEEP_TRANSITION, VALID_TRANSITION),
|
||||||
(CONF_TRANSITION, DEFAULT_TRANSITION, VALID_TRANSITION),
|
(CONF_TRANSITION, DEFAULT_TRANSITION, VALID_TRANSITION),
|
||||||
(CONF_ADAPT_UNTIL_SLEEP, DEFAULT_ADAPT_UNTIL_SLEEP, bool),
|
(CONF_ADAPT_UNTIL_SLEEP, DEFAULT_ADAPT_UNTIL_SLEEP, bool),
|
||||||
|
(CONF_ADAPT_BRIGHTNESS_UNTIL_SLEEP, DEFAULT_ADAPT_BRIGHTNESS_UNTIL_SLEEP, bool),
|
||||||
|
(CONF_ADAPT_COLOR_TEMP_UNTIL_SLEEP, DEFAULT_ADAPT_COLOR_TEMP_UNTIL_SLEEP, bool),
|
||||||
(CONF_INTERVAL, DEFAULT_INTERVAL, cv.positive_int),
|
(CONF_INTERVAL, DEFAULT_INTERVAL, cv.positive_int),
|
||||||
(CONF_MIN_BRIGHTNESS, DEFAULT_MIN_BRIGHTNESS, int_between(1, 100)),
|
(CONF_MIN_BRIGHTNESS, DEFAULT_MIN_BRIGHTNESS, int_between(1, 100)),
|
||||||
(CONF_MAX_BRIGHTNESS, DEFAULT_MAX_BRIGHTNESS, int_between(1, 100)),
|
(CONF_MAX_BRIGHTNESS, DEFAULT_MAX_BRIGHTNESS, int_between(1, 100)),
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,7 @@ from .const import (
|
||||||
ATTR_ADAPT_COLOR,
|
ATTR_ADAPT_COLOR,
|
||||||
ATTR_TURN_ON_OFF_LISTENER,
|
ATTR_TURN_ON_OFF_LISTENER,
|
||||||
CONF_ADAPT_BRIGHTNESS_UNTIL_SLEEP,
|
CONF_ADAPT_BRIGHTNESS_UNTIL_SLEEP,
|
||||||
|
CONF_ADAPT_COLOR_TEMP_UNTIL_SLEEP,
|
||||||
CONF_ADAPT_DELAY,
|
CONF_ADAPT_DELAY,
|
||||||
CONF_ADAPT_UNTIL_SLEEP,
|
CONF_ADAPT_UNTIL_SLEEP,
|
||||||
CONF_AUTORESET_CONTROL,
|
CONF_AUTORESET_CONTROL,
|
||||||
|
|
@ -898,6 +899,7 @@ class AdaptiveSwitch(SwitchEntity, RestoreEntity):
|
||||||
name=self._name,
|
name=self._name,
|
||||||
astral_location=location,
|
astral_location=location,
|
||||||
adapt_brightness_until_sleep=data[CONF_ADAPT_BRIGHTNESS_UNTIL_SLEEP],
|
adapt_brightness_until_sleep=data[CONF_ADAPT_BRIGHTNESS_UNTIL_SLEEP],
|
||||||
|
adapt_color_temp_until_sleep=data[CONF_ADAPT_COLOR_TEMP_UNTIL_SLEEP],
|
||||||
adapt_until_sleep=data[CONF_ADAPT_UNTIL_SLEEP],
|
adapt_until_sleep=data[CONF_ADAPT_UNTIL_SLEEP],
|
||||||
max_brightness=data[CONF_MAX_BRIGHTNESS],
|
max_brightness=data[CONF_MAX_BRIGHTNESS],
|
||||||
max_color_temp=data[CONF_MAX_COLOR_TEMP],
|
max_color_temp=data[CONF_MAX_COLOR_TEMP],
|
||||||
|
|
@ -1439,6 +1441,7 @@ class SunLightSettings:
|
||||||
name: str
|
name: str
|
||||||
astral_location: astral.Location
|
astral_location: astral.Location
|
||||||
adapt_brightness_until_sleep: bool
|
adapt_brightness_until_sleep: bool
|
||||||
|
adapt_color_temp_until_sleep: bool
|
||||||
adapt_until_sleep: bool
|
adapt_until_sleep: bool
|
||||||
max_brightness: int
|
max_brightness: int
|
||||||
max_color_temp: int
|
max_color_temp: int
|
||||||
|
|
@ -1579,7 +1582,7 @@ class SunLightSettings:
|
||||||
return self.sleep_brightness
|
return self.sleep_brightness
|
||||||
if percent > 0:
|
if percent > 0:
|
||||||
return self.max_brightness
|
return self.max_brightness
|
||||||
if self.adapt_until_sleep and percent < 0:
|
if self.adapt_until_sleep and self.adapt_brightness_until_sleep and percent < 0:
|
||||||
delta_brightness = abs(self.min_brightness - self.sleep_brightness)
|
delta_brightness = abs(self.min_brightness - self.sleep_brightness)
|
||||||
return (delta_brightness * abs(1 + percent)) + self.sleep_brightness
|
return (delta_brightness * abs(1 + percent)) + self.sleep_brightness
|
||||||
delta_brightness = self.max_brightness - self.min_brightness
|
delta_brightness = self.max_brightness - self.min_brightness
|
||||||
|
|
@ -1594,7 +1597,7 @@ class SunLightSettings:
|
||||||
return 5 * round(ct / 5) # round to nearest 5
|
return 5 * round(ct / 5) # round to nearest 5
|
||||||
if percent == 0 or not self.adapt_until_sleep:
|
if percent == 0 or not self.adapt_until_sleep:
|
||||||
return self.min_color_temp
|
return self.min_color_temp
|
||||||
if self.adapt_until_sleep and percent < 0:
|
if self.adapt_until_sleep and self.adapt_color_temp_until_sleep and percent < 0:
|
||||||
delta = abs(self.min_color_temp - self.sleep_color_temp)
|
delta = abs(self.min_color_temp - self.sleep_color_temp)
|
||||||
ct = (delta * abs(1 + percent)) + self.sleep_color_temp
|
ct = (delta * abs(1 + percent)) + self.sleep_color_temp
|
||||||
return 5 * round(ct / 5) # round to nearest 5
|
return 5 * round(ct / 5) # round to nearest 5
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue