Commit graph

437 commits

Author SHA1 Message Date
Bas Nijholt
bb84684bce
Style with ruff and logging (#643)
* Formatting with ruff

* more logging

* Require on_only

* Different implementation

* More ruff

* Remove new logging statements

* Remove 'pylint: disable=protected'

* style

* fixes

* ruff

* Switch to ruff

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix .github

* Fix

* Add ignores

* fix arg

* fix B905

* Fix D

* Fix more

* Fix more

* order

* use path

* moer path

* Remove unused ignores

* fix tes deps

* fix typo

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-07-23 14:24:22 -07:00
Bas Nijholt
97f388608a
With transition_until_sleep and sleep_rgb, after sunset, use RGB colors (#656)
* With transition_until_sleep and sleep_rgb, after sunset, use RGB colors

Closes #624

* Add comment

* Add test
2023-07-23 13:40:03 -07:00
Bas Nijholt
c1528ec10a
Refactor, simplify code, rename, and set minimal HA core ≥2022.11 (#655)
* Rename TurnOnOffListener to AdaptiveLightingManager

* Bump Python version

* Refactor and unify methods that are called once

* Simplify adaptation_utils.py

* Improve readability in adaptation_utils.py

* More renames

* Simplify

* More renames and simplifications

* fix test

* simplify _supported_features

* rename

* walrus

* drop old astral support

* Only support HA  ≥2021.06

* Require 2016.06

* Try 2023.1

* even more old versions

* test

* more versions

* verify that only ≥2022.11 works

* named args

* setdefault

* no astral v1

* var

* simplify

* no need to pass adapt_brightness and adapt_color

* Add comment
2023-07-22 21:19:01 -07:00
Bas Nijholt
69592938db
Rename TurnOnOffListener to AdaptiveLightingManager (#654)
* Rename TurnOnOffListener to AdaptiveLightingManager

* Bump Python version
2023-07-22 17:57:49 -07:00
Bas Nijholt
fee90250ee
Better logging and prevent KeyError in state_changed_event_listener (#650)
* Better logging

* Remove useless and erroneous logging statement

* Bump to 1.16.3
2023-07-22 12:34:20 -07:00
Bas Nijholt
52c7e4b1d5
Bump to v1.16.2 in manifest.json (#647) 2023-07-21 14:56:44 -07:00
Mario Guggenberger
30a310c514
fix: overlapping adaptations (#646)
Co-authored-by: Bas Nijholt <bas@nijho.lt>
2023-07-21 14:54:38 -07:00
Bas Nijholt
49857632cc
Fix multiple switches controlling one light (reactive path) (#644)
* Fix multiple switches controlling one light

* WIP

* Keep length in AdaptationData

* Do not proceed if there is nothing to do

* Simplify

* Set tasks correctly

* log more

* WIP

* realize that intercept and double switch not possible

* Remove which from find_switch_for_lights

* Rephrase

* Check which one to cancel

* length -> max_length

* Implement test_two_switches_for_single_light

* Clean up

* Simplify is_color_brightness_or_both

* Improve test

* no wait

* logging

* just block

* make test such that it fails on main
2023-07-21 14:46:18 -07:00
Bas Nijholt
2575f4ec30
Only adapt if switch if on in _service_interceptor_turn_on_handler (#642)
* Do not adapt if switch is off in _service_interceptor_turn_on_handler

* Bump to 1.16.1
2023-07-20 17:12:41 -07:00
Bas Nijholt
6c001b4132
Update version to 1.16.0 in manifest.json (#640) 2023-07-20 14:42:36 -07:00
Bas Nijholt
19d503b4d7
Revert supported_features from #565 and #575, fixes #601 (#637) 2023-07-20 13:59:19 -07:00
Bas Nijholt
fd5f6bf310
Pass on lights that are not managed by AL, closes #638 (#639)
* Pass on lights that are not managed by AL, closes #638

* Rename exception
2023-07-20 11:53:38 -07:00
Bas Nijholt
1b31b26938
Add @protyposis to codeowners (#636) 2023-07-20 08:53:11 -07:00
Bas Nijholt
1133f0defa
Find adaptive_switch in TurnOnOffListener (#635)
* Find adaptive_switch in TurnOnOffListener

* remove unused argument

* Bump to 1.15.1
2023-07-20 08:52:14 -07:00
Mario Guggenberger
1cedb3fbc7
chore: bump manifest version to 1.15.0 (#634) 2023-07-19 18:53:42 +02:00
Mario Guggenberger
ed80bd7829
feat: service call adaptation (#628)
* feat: service call adaptation

* feat: toggle-on service call adaptation

* feat: prefer service call transition
2023-07-19 09:10:21 +02:00
pre-commit-ci[bot]
d16a9a5751
[pre-commit.ci] pre-commit autoupdate (#620)
* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/asottile/pyupgrade: v3.6.0 → v3.7.0](https://github.com/asottile/pyupgrade/compare/v3.6.0...v3.7.0)

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

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Bas Nijholt <basnijholt@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-07-02 15:32:44 -07:00
Mario Guggenberger
72e140e293
feat: skip redundant adaptation commands (#615)
* feat: skip redundant adaptation commands

* update README

* style

* Remove "experimental"

---------

Co-authored-by: Bas Nijholt <basnijholt@gmail.com>
Co-authored-by: Bas Nijholt <bas@nijho.lt>
2023-07-02 15:26:07 -07:00
Bas Nijholt
68d500bd12
Update manifest.json (#613) 2023-06-12 16:13:29 -07:00
Mario Guggenberger
12dae4b6a6
fix: 2023.6 compatibility (#607)
* fix: 2023.6.0 compatibility

* ci: test with Python 3.11 against 2023.6.0b4

* Set 2023.06.0

* Bump to 2023.06.1

---------

Co-authored-by: Bas Nijholt <basnijholt@gmail.com>
2023-06-11 14:12:37 -07:00
Bas Nijholt
90b8d6089d
Bump to 1.13.0 in manifest.json (#610) 2023-06-08 16:09:57 -07:00
Mario Guggenberger
2c8a45604a
feat: brightness prioritization (#598)
* feat: optional brightness prioritization

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Remove config flag and change default split order

* Fix test

* Fix edge case

* Add tests

* Backwards compatiblity

* Fix another edge case

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-06-08 16:01:19 -07:00
Bas Nijholt
4683f083f6
Update version to 1.12.0 in manifest.json (#596) 2023-05-22 12:16:40 -07:00
Mario Guggenberger
2033fcebe9
fix: lights unexpectedly turn back on after switch-off (#590) 2023-05-21 10:36:16 -07:00
Benjamin Auquite
47c5ea93e0
Add test_supported_features and fix the problem introduced in #565 (#575)
* Update test_switch.py

* Update test_switch.py

* test is now done.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix the test only.

test is backwards compatible with the old method.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix _supported_to_attributes

everything works now.

* pre-commit fixes

cannot fix the `function too complex` problem.

* ignore test_switch.py in `pre-commit-config.yaml`

* Add ignore C901 to test_supported_features

* remove commented out code

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Bas Nijholt <basnijholt@gmail.com>
Co-authored-by: Bas Nijholt <bas@nijho.lt>
2023-04-27 12:56:49 -07:00
Benjamin Auquite
adf0d0cf30
Auto reload YAML config changes (#573)
* Update __init__.py

* Update __init__.py

* skip installing codecov

* remove in CI

* test 2023.4.6

---------

Co-authored-by: Bas Nijholt <bas@nijho.lt>
2023-04-26 19:10:52 -07:00
Benjamin Auquite
a888afd6dc
Refactor _supported_features (#565)
* initial commit

* change features to dict

* another slight refactor
2023-04-10 10:07:31 -07:00
Benjamin Auquite
e30b7debe5
Refactor _adapt_lights into _update_manual_control_and_maybe_adapt (#513)
* Add auto_reset_manual_control with async timer

* cherry-pick wait for transition stuff

* Update switch.py

* merge wait_for_transition

* Update switch.py

* not renamed in this branch yet.

* Update switch.py

* update tests

* Update switch.py

* Update switch.py

* merge related fix

* cleanup

* Revert "cleanup"

This reverts commit 3aa2f3242b.

* 0.1 sometimes fails the test

* not in this pr yet

* Update switch.py

* Update switch.py

* Update switch.py

* Update switch.py

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

* slight refactor

* Update switch.py

* Update switch.py

* Possible refactor of _update_attrs_and_maybe_adapt_lights

* cleaned up

* Revert "cleaned up"

This reverts commit 441cb1ff5c.

* Possible refactor of _update_attrs_and_maybe_adapt_lights (#537)

Co-authored-by: Benjamin Auquite <halomastar@gmail.com>

* Revert "Revert "cleaned up""

This reverts commit 11b268148b.

* remove bad merge conflict

* revert permissions

* Bump to 1.11.0

* Undo unrelated test changes

* 'else' instead of 'continue'

---------

Co-authored-by: Bas Nijholt <bas@nijho.lt>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bas Nijholt <basnijholt@gmail.com>
2023-04-08 18:54:06 -07:00
Bas Nijholt
fe7bdd3940
Add auto_reset_time_remaining attribute (#558)
* Add auto_reset_time_remaining attribute

* fix attr

* Add test
2023-04-08 05:39:08 -05:00
Benjamin Auquite
a01fec0211
Bump to 1.10.1 (#551)
* Update manifest.json

* undo merge mistake

* Version 1.10.1
2023-04-06 13:29:32 -07:00
Bas Nijholt
59877a0343
Make sure context_id is 26 chars and partially conform to ULID standard (#550) 2023-04-06 12:37:02 -07:00
Benjamin Auquite
cb967aeeb7
Create intentionally over-redundant state_change tests and fix #541 (#544)
* add transition_timer test and debug

* syntax error

* test

* Update switch.py

* Revert "test"

This reverts commit b8009e0a1a.

* Update test_switch.py

* add `create_transition_events` to tests.

nearly done

* tests are done!

* pop is for dictionaries

* Update test_switch.py

* combine the tests

* pin markdown-code-runner

* Pin with '=='

* Update test_switch.py

* pin in the correct place 😅

* Update test_switch.py

* Use timer.is_running

* Update test_switch.py

* ensure timer is running in tests

* this passes the test

* Update test_switch.py

* Do not create new list when not needed

* Remove empty deps

* Remove CONF_ULID_MAX_LENGTH (which is not configurable)

* this shouldn't pass the test but it does.

---------

Co-authored-by: Bas Nijholt <basnijholt@gmail.com>
Co-authored-by: Bas Nijholt <bas@nijho.lt>
2023-04-06 13:53:23 -05:00
Benjamin Auquite
03a2d9cbf6
Fix RGB Color Temp Swaps (#514)
* cherry pick from 486

* Refactor `_add_missing_attributes`

---------

Co-authored-by: Bas Nijholt <bas@nijho.lt>
2023-04-05 18:39:31 -05:00
Benjamin Auquite
c7f44e472f
Correctly wait for transitions (#510)
* Add auto_reset_manual_control with async timer

* cherry-pick wait for transition stuff

* Update switch.py

* not renamed in this branch yet.

* Update switch.py

* update tests

* Update switch.py

* merge related fix

* cleanup

* Revert "cleanup"

This reverts commit 3aa2f3242b.

* Update switch.py

* Update switch.py

* Update switch.py

* Small refactor

* Move test to old position for better diffs

* Revert "Small refactor"

This reverts commit b986b3f77c.

* Update README.md

* fix the test

last_state_change isn't updated quick enough.

* #510 changes (#516)

* Change (WIP)

* Update test_switch.py

* Refactor

* Revert "Revert "Small refactor""

This reverts commit 3731c99936.

* Update README.md

* Fix the test

* Bump to 1.9.0 (#518)

* Basic community fixes PR (#460)

* Fixes #423

#423

* Do not adapt lights turned on with custom payloads.

* Update switch.py

* Issue fixes

#423, #378, #403, #449

* quickly test #274

* Revert feature requests, this branch only has fixes.

Reverted FR 274

* pre-commit fix

* Create automerge.yaml

* test

* Delete automerge.yaml

My bad.

* Fix #460 and #408

* see @basnijholt 's comment in #450.

* @basnijholt requested changes.

---------

Co-authored-by: Bas Nijholt <bas@nijho.lt>

* Undo accidental changes introduced in #509, but adds the changes from #460 (#521)

* Release 1.9.1 (#522)

* Bump to 1.9.1

* Add CODEOWNERS

---------

Co-authored-by: Benjamin Auquite <halomastar@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* No need to wrap the reset

* Remove unused attrs

* Shorter log message

* revert unrelated tests change

* remove unused function

* Use patch

* Bump to 1.10.0

---------

Co-authored-by: Bas Nijholt <bas@nijho.lt>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bas Nijholt <basnijholt@gmail.com>
2023-04-03 17:04:06 -07:00
Bas Nijholt
b730c7cc90
Add scripts to auto update en.json, strings.json and services.yaml (#520)
* Add scripts to auto update strings.json and services.yaml

* Run services

* simplify

* Run strings

* rerun

* revert

* allow unicode

* Add CODEOWNERS

* Update CODEOWNERS

* set CONF_USE_DEFAULTS docs

* add field_name

* Auto run scripts

* Update desc

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

* double quotes

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

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

* Add newline

* sync changes between en.json and strings.json

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

* double quotes

* fix

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

* Add comments

* Remove comments

* shorter

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

* Rephrase

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

* remove key from desc

---------

Co-authored-by: Benjamin Auquite <halomastar@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-04-03 14:59:14 -07:00
Bas Nijholt
26974c8fd5
Simplify if-statement, (small #460 fix) (#526) 2023-04-03 13:32:38 -05:00
Bas Nijholt
d768a1e825
Release 1.9.1 (#522)
* Bump to 1.9.1

* Add CODEOWNERS
2023-04-03 02:07:05 -07:00
Bas Nijholt
0958feb744
Undo accidental changes introduced in #509, but adds the changes from #460 (#521) 2023-04-03 03:47:01 -05:00
Benjamin Auquite
c6a6cd323f
Basic community fixes PR (#460)
* Fixes #423

#423

* Do not adapt lights turned on with custom payloads.

* Update switch.py

* Issue fixes

#423, #378, #403, #449

* quickly test #274

* Revert feature requests, this branch only has fixes.

Reverted FR 274

* pre-commit fix

* Create automerge.yaml

* test

* Delete automerge.yaml

My bad.

* Fix #460 and #408

* see @basnijholt 's comment in #450.

* @basnijholt requested changes.

---------

Co-authored-by: Bas Nijholt <bas@nijho.lt>
2023-04-03 08:02:06 +00:00
Bas Nijholt
87391e6d24
Bump to 1.9.0 (#518) 2023-04-03 01:01:58 -07:00
Bas Nijholt
19fcb1d6b9
Automatically generate more service tables in the README (#509)
* Automatically sync more data

* Automatically generate apply table

* Generate manual control

* Add manual control docs

* Update README.md

* Move docs functions to separate file

* Update code

* simple

* no path

* link paths

* Fix link

* missed

* cd core

* Update README.md

* Allow alternative docs

* update readme

* More special

* Fx

* Update README.md

* Remove common descriptions

* Update README.md

* Update README.md

* Rephrase

* Update README.md

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-04-03 00:58:39 -07:00
igiannakas
9caf3048f1
Continue to adapt color temperature down to the sleep temperature after sunset (#87)
* Update switch.py

Continue to adapt color temperature down to the sleep temperature after sunset. Results in a gradually warming light during the night time rather than a fixed color temperature throughout the night time.

* Run pre-commit

* Merge branch 'master' into pr/87

* add config option bool `adapt_until_sleep` defaulting to `false`

---------

Co-authored-by: Bas Nijholt <bas@nijho.lt>
Co-authored-by: Bas Nijholt <basnijholt@gmail.com>
Co-authored-by: Benjamin Auquite <halomastar@gmail.com>
2023-04-03 07:27:07 +00:00
Benjamin Auquite
c915bda9b9
Autoreset_Control_Time - small changes (#515)
* small changes

* Update README.md

* trivial comment change

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bas Nijholt <basnijholt@gmail.com>
2023-04-03 06:57:12 +00:00
Bas Nijholt
ea2a6b0173
Add auto_reset_manual_control with async timer (#487)
* Add auto_reset_manual_control with async timer

* Add failing test

* Debugging

* Refactor find_switch_for_lights

* Revert changes in is_manually_controlled

* style

* Fix test_manual_control

* add types

* fixes

* dict

* make all tests pass

* text

* Rework find_switch_for_lights

* Style

* Better check

* revert, do in other test!

* No need to log when raising

* Add type hint

* Suggestion https://github.com/basnijholt/adaptive-lighting/pull/488/files#r1152408541 by @th3w1zard1

* Small fixes

* document new config everywhere (#496)

* chore(docs): update TOC

* undo change

* fi

* Update README.md

* Update README.md

* chore(docs): update TOC

* Update README.md

* Use markdown-code-runner

* Remove

* Use markdown-code-runner instead of packaged solution

* fix comment

* Only commit when needed

---------

Co-authored-by: Benjamin Auquite <halomastar@gmail.com>
Co-authored-by: basnijholt <basnijholt@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-04-03 02:22:23 +00:00
Bas Nijholt
ccf18c3879
Bump to 1.8.0 (#508) 2023-04-02 19:17:35 -07:00
Benjamin Auquite
b081d79b86
Update services.yaml (#497)
Co-authored-by: Bas Nijholt <basnijholt@gmail.com>
2023-04-02 18:57:11 -07:00
Bas Nijholt
cc8ce29a8a
Auto-generate the configuration options documentation (#498)
* Autogenerate the documentation and strings

* Line limit

* Split

* Happy pre-commit

* Split up workflows

* Generate table function

* raise

* Add gen script

* chore(docs): update TOC

* Add gen script

* path

* Run - name: Install Home Assistant

* chore(docs): update TOC

* add copyright

* Fix branch name

* Run on PRs

* dev

* remove steps

* use matrix

* Run script

* chore(docs): update TOC

* Try fixing CI

* fix

* test

* refactor

* chore(docs): update TOC

* fix

* update

* use v3

* rename

* Fix input

* fix pytest

* fix path

* paths

* Change to github.head_ref

* More backticks

* Add extra text

* chore(docs): update TOC

* backticks

* Update README.md

---------

Co-authored-by: basnijholt <basnijholt@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-04-01 23:43:20 -07:00
Benjamin Auquite
ec558e5616
Move include_config_in_attributes 2023-04-01 16:35:01 -07:00
Bas Nijholt
2de4b7415b
Refactor find_switch_for_lights and more small refactors (#488)
* Refactor find_switch_for_lights

* Refactor

* style

* renames
2023-03-29 23:47:57 -05:00
Bas Nijholt
1ca3bf0f6a
Retroactive review changes for #443 (#485)
* Retroactive review changes for #443

* Move up __init__

* Add test for test_change_switch_settings_service

* Add docs

* Add test for defaults

* Remove unused function

* Add skip var

* move pylint marker

* Refactor validate

* Update README.md

---------

Co-authored-by: Benjamin Auquite <halomastar@gmail.com>
2023-03-27 20:56:54 -05:00