Squashed commit of the following:

commit 5b927dbb02
Merge: 78395ee a888afd
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 12:52:46 2023 -0500

    Merge branch 'main' into adjust_adapt_until_sleep

commit 78395eea65
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Mon Apr 10 09:38:11 2023 +0000

    Update README.md, strings.json, and services.yaml

commit bc39f5e977
Merge: e30b7de c4b5067
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 09:36:39 2023 +0000

    Merge c4b5067b05 into e30b7debe5

commit c4b5067b05
Merge: 7244a5f 91d6065
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 04:36:25 2023 -0500

    Merge branch 'adjust_adapt_until_sleep' of https://github.com/basnijholt/adaptive-lighting into adjust_adapt_until_sleep

commit 7244a5f483
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 04:36:14 2023 -0500

    Update const.py

commit 91d606586f
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Mon Apr 10 09:28:58 2023 +0000

    Update README.md, strings.json, and services.yaml

commit 4509c0a0f1
Merge: e30b7de e46d867
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 09:27:02 2023 +0000

    Merge e46d867854 into e30b7debe5

commit e46d867854
Merge: e7e266b 3b61f49
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 04:26:56 2023 -0500

    Merge branch 'adjust_adapt_until_sleep' of https://github.com/basnijholt/adaptive-lighting into adjust_adapt_until_sleep

commit e7e266b5a1
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 04:26:47 2023 -0500

    Update const.py

commit 3b61f49fb3
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Mon Apr 10 09:26:09 2023 +0000

    Update README.md, strings.json, and services.yaml

commit 7f952e0658
Merge: e30b7de a4d5f86
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 09:24:27 2023 +0000

    Merge a4d5f861ff into e30b7debe5

commit a4d5f861ff
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 04:24:20 2023 -0500

    autofill workaround

commit 06dd2a5c9a
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 04:23:01 2023 -0500

    Revert "Merge branch 'adjust_adapt_until_sleep' of https://github.com/basnijholt/adaptive-lighting into adjust_adapt_until_sleep"

    This reverts commit bca9f1bd3d, reversing
    changes made to 840aab6158.

commit bca9f1bd3d
Merge: 840aab6 2d74a31
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 04:22:19 2023 -0500

    Merge branch 'adjust_adapt_until_sleep' of https://github.com/basnijholt/adaptive-lighting into adjust_adapt_until_sleep

commit 840aab6158
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 04:22:07 2023 -0500

    add `adapt_color_temp_until_sleep`

    supports backward-compatibility

commit 2d74a313bb
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Mon Apr 10 09:14:31 2023 +0000

    Update README.md, strings.json, and services.yaml

commit 553265a1e8
Merge: e30b7de b53a5af
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 09:12:53 2023 +0000

    Merge b53a5aff68 into e30b7debe5

commit b53a5aff68
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 04:11:48 2023 -0500

    add new config option

commit 4e1c769feb
Author: Benjamin Auquite <halomastar@gmail.com>
Date:   Mon Apr 10 04:06:09 2023 -0500

    initial commit
This commit is contained in:
Benjamin Auquite 2023-04-11 19:10:37 -05:00
commit f0b487320d
4 changed files with 35 additions and 4 deletions

View file

@ -104,6 +104,8 @@ from .const import (
ATTR_ADAPT_BRIGHTNESS,
ATTR_ADAPT_COLOR,
ATTR_TURN_ON_OFF_LISTENER,
CONF_ADAPT_BRIGHTNESS_UNTIL_SLEEP,
CONF_ADAPT_COLOR_TEMP_UNTIL_SLEEP,
CONF_ADAPT_DELAY,
CONF_ADAPT_UNTIL_SLEEP,
CONF_ALT_DETECT_METHOD,
@ -1086,6 +1088,8 @@ class AdaptiveSwitch(SwitchEntity, RestoreEntity):
self._sun_light_settings = SunLightSettings(
name=self._name,
astral_location=location,
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],
flat_limits=data[CONF_FLAT_LIMITS],
max_brightness=data[CONF_MAX_BRIGHTNESS],
@ -1635,6 +1639,8 @@ class SunLightSettings:
name: str
astral_location: astral.Location
adapt_brightness_until_sleep: bool
adapt_color_temp_until_sleep: bool
adapt_until_sleep: bool
flat_limits: bool
max_brightness: int
@ -1776,6 +1782,10 @@ class SunLightSettings:
return self.sleep_brightness
if percent > 0:
return self.max_brightness
if self.adapt_until_sleep and self.adapt_brightness_until_sleep and percent < 0:
delta_brightness = abs(self.min_brightness - self.sleep_brightness)
return (delta_brightness * abs(1 + percent)) + self.sleep_brightness
delta_brightness = self.max_brightness - self.min_brightness
percent = 1 + percent
if self.flat_limits:
if percent * 100 > self.max_brightness:
@ -1794,7 +1804,7 @@ class SunLightSettings:
return 5 * round(ct / 5) # round to nearest 5
if percent == 0 or not self.adapt_until_sleep:
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)
ct = (delta * abs(1 + percent)) + self.sleep_color_temp
return 5 * round(ct / 5) # round to nearest 5