Commit Graph

182 Commits (985e42e50c2205f7dbaaac4d369d67bd9c97f758)

Author SHA1 Message Date
Erik J. Olson d228df6d81
Fix Notify Group payload data mis-merge (#90253)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2023-03-28 14:56:10 +02:00
G Johansson 706e8d5612
Add product calculation to Group sensor (#87373)
* Group product

* config flow
2023-03-28 09:35:09 +02:00
J. Nick Koston 1c57339ec3
Refactor recorder tests to use recorder history API (#89565) 2023-03-11 21:51:16 -05:00
Franck Nijhof 1e05697080
Enable Ruff B007 (#88356)
* Enable Ruff B007

* Adjust existing cases
2023-02-17 21:08:18 -05:00
Erik Montnemery 9989a4787b
Fix recorder platform tests (#88330) 2023-02-17 08:22:15 -06:00
Franck Nijhof d3ed8de232
Update Ruff to v0.0.247 (#88210)
* Update Ruff to v0.0.247

* Fix new found violations
2023-02-15 16:46:03 -05:00
Franck Nijhof ed79265843
Enable Ruff PT006 (#88165)
* Enable Ruff PT006

* Adjust existing cases

* Fix tests

* Remove unneeded parentheses
2023-02-15 14:09:50 +01:00
Franck Nijhof 9030ca05b1
Enable Ruff SIM118 (#87772) 2023-02-15 12:39:12 +01:00
epenet 89e4ee5320
Add type hints to integration tests (part 8) (#87982) 2023-02-13 11:13:48 +01:00
G Johansson 7aa79415c1
Fix unbound variable in Group sensor (#87878)
* group bound last

* Add test
2023-02-11 16:27:22 +01:00
epenet 7a4d15a657
Add type hints to integration tests (f-g) (#87700) 2023-02-08 13:33:52 +01:00
Franck Nijhof 1b4f4edce2
Don't override icon in sensor group when device class is set (#87304) 2023-02-03 16:38:05 +01:00
J. Nick Koston c612a92cfb
Use python defaults for comparing State, LazyState, and Event objects (#86856)
* Speed up comparing State and Event objects

Use default python implementation for State and Event __hash__ and __eq__

The default implementation compared based on the id() of the object
which is effectively what we want here anyways. These overrides are
left over from the days when these used to be attrs objects

By avoiding implementing these ourselves all of the equality checks
can happen in native code

* tweak

* adjust tests

* write out some more

* fix test to not compare objects

* more test fixes

* more test fixes

* correct stats tests

* fix more tests

* fix more tests

* update sensor recorder tests
2023-01-29 13:31:43 -05:00
Franck Nijhof e4a78420b8
Enable Ruff PT013 (#86757)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-01-27 09:09:46 +01:00
G Johansson b3c5c6ae9c
Add sensor to group (#83186) 2023-01-24 20:12:27 +01:00
Jan Bouwhuis 33fb27eb1a
Rename fake kitchen_sink demo locks to more common name (#86452) 2023-01-23 16:31:02 +01:00
G Johansson 68dd2802a1
Add remove entity in group.set service (#79401)
* Group set remove entities

* simplify

* Add test

* Fix test
2023-01-23 15:00:40 +01:00
Jan Bouwhuis b03677db1c
Add validation for lock component (#85842)
* Add validation for lock integration

* Add LockEntityFeature.OPEN for lock group

* Correct tests google_assistant for extra entity

* Validate feature when registering service

* Update tests

* Add LockFeature.OPEN with group
2023-01-23 13:08:00 +01:00
epenet 30bf0634fe
Add per-file-ignore to pylint (#86289) 2023-01-22 17:26:24 +01:00
epenet 200f29563a
Enforce MediaPlayerState in group (#78465)
* Enforce MediaPlayerState in group

* Adjust

* Use self._attr_state

* Add warning

* Add group name to logger warning

* Remove logger warning

* Remove duplicate code

* Add type hints to tests

* Improve coverage

* Improve coverage

* suppress ValueError
2022-11-30 10:13:14 +01:00
Erik Montnemery 31a787558f
Ensure recorder test fixture is setup before hass fixture (#80528)
* Ensure recorder test fixture is setup before hass fixture

* Adjust more tests
2022-10-19 07:58:47 +02:00
Erik Montnemery 7b247a79cf
Correct min/max mireds for lights which use K for color temp (#79998) 2022-10-10 16:45:38 +03:00
Erik Montnemery 2ee6ea9877
Adapt group to color temperature in K (#79719)
* Adapt group to color temperature in K

* Adjust tests

* Adjust tests
2022-10-10 14:57:22 +02:00
epenet 0ac581a0b1
Cleanup EntityFeature in tests (#78859) 2022-09-21 10:48:55 +02:00
epenet a809e18559
Apply hass-relative-import to tests (d-h) (#78730) 2022-09-19 09:31:57 +02:00
Erik Montnemery 60c8d95a77
Remove white_value support from light (#76926) 2022-08-18 08:21:05 -04:00
Erik Montnemery 05e33821fd
Remove white_value support from group light (#76924) 2022-08-17 08:01:50 -04:00
Franck Nijhof 00c0ea8869
Remove stale debug prints (#76865) 2022-08-16 09:33:33 -04:00
Franck Nijhof a6244eea28
Search/replace RESULT_TYPE_* by FlowResultType enum (#74656) 2022-07-07 21:28:18 +02:00
Erik Montnemery ae63cd8677
Add support for unavailable to cover groups (#74053) 2022-06-28 11:12:14 +02:00
Erik Montnemery 7d709c074d
Add support for unavailable and unknown to fan groups (#74054) 2022-06-28 10:58:52 +02:00
Erik Montnemery 824de2ef4c
Modify behavior of lock groups (#74055) 2022-06-28 10:29:56 +02:00
Erik Montnemery 9a613aeb96
Modify behavior of media_player groups (#74056) 2022-06-28 10:22:46 +02:00
Erik Montnemery 9b8c3e37bb
Improve group tests (#73630) 2022-06-23 21:38:17 +02:00
Erik Montnemery 4435c641de
Enforce RegistryEntryHider in entity registry (#73219) 2022-06-08 12:36:43 -07:00
Erik Montnemery 5f2b4001f3
Separate recorder database schema from other classes (#72977)
* Separate recorder database schema from other classes

* fix logbook imports

* migrate new tests

* few more

* last one

* fix merge

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-06-07 14:41:43 +02:00
J. Nick Koston 236d8aa277
Avoid recording static attributes for group entities (#71256) 2022-05-03 13:22:49 -05:00
epenet 7d2363ad22
Use light enums in tests (#70801) 2022-04-26 16:32:00 +02:00
Erik Montnemery 2c92d19058
Exclude own entity from group entity selector (#68782) 2022-03-30 18:07:47 +02:00
Jason Hunter 94df0844b3
Add lock groups (#68857) 2022-03-29 17:07:23 -07:00
Franck Nijhof 01980f0445
Add switch groups (#68528) 2022-03-28 12:27:26 +02:00
Erik Montnemery 76103752b8
Only show light group all option in advanced mode (#68610) 2022-03-24 16:51:31 +01:00
Franck Nijhof eca5fb5d54
Move remove all light option from group config flow (#68609) 2022-03-24 12:17:52 +01:00
Erik Montnemery a50bac5cc2
Make initial group config flow step a menu (#68565) 2022-03-23 08:34:44 -07:00
Jeff Rescignano 0720b0f891
Add all option to light group (#68447)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2022-03-22 16:09:18 +01:00
Erik Montnemery 1b955970f8
Allow hiding and unhiding group members (#68192) 2022-03-22 12:14:34 +01:00
Erik Montnemery b99934f62f
Small tweaks of group tests (#68196) 2022-03-15 18:39:18 +01:00
Erik Montnemery 5ae48bcf74
Add config flow for binary_sensor group (#67802)
* Add config flow for binary_sensor group

* Address review comments

* Remove device class selection from flow

* Update translation strings
2022-03-10 10:39:51 +01:00
Erik Montnemery e7fba46a06
Refactor helper_config_entry_flow (#67895) 2022-03-09 13:18:19 +01:00
Erik Montnemery a9cc2d2322
Add config flow for cover, fan, light and media_player groups (#67660)
* Add options flow support to HelperConfigFlowHandler

* Add config flow for cover, fan, light and media_player groups

* Update according to review comments

* Update translation strings

* Update translation strings

* Copy schema before adding suggested values
2022-03-07 13:05:04 +01:00
Erik Montnemery c5dd5e18c0
Improve binary sensor group when member is unknown or unavailable (#67468) 2022-03-02 07:53:13 -08:00
Erik Montnemery 3f7b7187ab
Fix controlling nested groups (#66176) 2022-02-09 14:27:46 +01:00
Franck Nijhof 60b2cdd069
Allow binary sensor state to be None (#60193) 2021-12-22 12:24:29 +01:00
Erik Montnemery 3323263c94
Flip behavior for grouped locks (#62580) 2021-12-22 12:14:45 +01:00
Erik Montnemery 49a27e12ad
Add support to entity registry for overriding device_class (#59985) 2021-11-22 08:38:06 -08:00
Paulus Schoutsen 31153ac155
Move fixtures part 1 (#58902) 2021-11-01 20:47:05 -07:00
Erik Montnemery 72d7817dbf
Update light turn_on schema to coerce colors to tuple before asserting sequence type (#58670)
* Make color_name_to_rgb return a tuple

* Tweak

* Tweak

* Update test

* Tweak test
2021-10-29 15:51:14 +02:00
J. Nick Koston def7c80e71
Add support for fan groups (#57941)
* Add support for fan groups

* dry

* dry

* fix refactor error

* tweaks

* wip

* tweaks

* tweaks

* fix

* fixes

* coverage

* tweaks
2021-10-26 10:32:49 +02:00
Erik Montnemery 7e34860615
Improve state of cover groups (#57313)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-10-08 09:52:58 -07:00
Regev Brody 115bb39c10
Fix cover group to handle unknown state properly (#56739)
* fix cover group unknown state

* fix cover grup state

* fix cover group issue
2021-09-29 08:37:16 +02:00
Brian Egge e638e5bb42
Add component for binary sensor groups (#55365)
* Add component for binary sensor groups
https://github.com/home-assistant/home-assistant.io/pull/19239

* Accidental push over prior commit

* Add test for any case

* Add unavailable attribute and tests for unique_id

* Added tests for attributes

link to documentation: https://github.com/home-assistant/home-assistant.io/pull/19297
2021-09-13 15:28:37 +02:00
J. Nick Koston e6e8d7eded
Convert color temperature to visible color in lights (#55219) 2021-08-25 21:56:36 +02:00
Erik Montnemery 20d8c4da90
Report average of position and tilt_position for cover groups (#52713) 2021-08-25 16:12:29 +02:00
Erik Montnemery ee3e27c82a
Add support for white to light groups (#55082) 2021-08-23 18:29:44 +02:00
Franck Nijhof b4a50f5459
Add unique ID support to light, cover and media player groups (#53225) 2021-07-20 13:56:23 +02:00
definitio 132ee972bd
Add media_player.group (#38855)
* Add media group

* Minor improvements

* Use the async api for all methods

* Improve type hints

* Add missing methods

* Add tests

* Rename HomeAssistantType —> HomeAssistant

* Add more tests

* Fix unknown state

* Make some callbacks

* Add more tests

* Fix unknown state properly

* Fix names for callbacks

* Fix stop service test

* Improve tests
2021-06-02 21:25:15 +02:00
Erik Montnemery d2804433d3
Select onoff and brightness color modes last for light groups (#51054) 2021-05-25 08:49:24 -07:00
Joakim Sørensen 2f10f59717
Block custom integrations with missing or invalid version (#49916) 2021-05-17 15:48:41 +02:00
Franck Nijhof 7221b1e09d
Sort effect lists in light groups (#50620) 2021-05-14 21:43:43 -07:00
Erik Montnemery c2663d61d7
Add color_mode support to group light (#50165)
* Add color_mode support to group light

* Lint

* Update tests
2021-05-06 22:34:51 -07:00
Franck Nijhof 5a2b5fe7c5
Yoda assertion style removed is (#48142) 2021-03-20 13:55:10 +01:00
Franck Nijhof 8a56dbf587
Add flake8 comprehensions checks to pre-commit & CI (#48111) 2021-03-19 13:41:09 +01:00
Ville Skyttä dc880118a4
Lint suppression cleanups (#47248)
* Unused pylint suppression cleanups

* Remove outdated pylint bug references

* Add flake8-noqa config and note to run it every now and then

* Add codes to noqa's

* Unused noqa cleanups
2021-03-02 09:02:04 +01:00
Franck Nijhof 65cf2fcb6f
Drop asynctest (#44746) 2021-01-01 22:31:56 +01:00
J. Nick Koston 8b63e22c99
Bypass the slow update warning for group updates (#43209) 2020-11-14 21:46:24 +01:00
Paulus Schoutsen 5dac3883b0
Stub light profiles (#42232) 2020-10-23 16:28:21 +02:00
Tim Werner 3f623ad453
Rewrite group unittest to pytest style (#42159) 2020-10-23 12:05:07 +02:00
Franck Nijhof 64d3cdfb41
Add nested light group test (#41764) 2020-10-13 08:37:16 -05:00
J. Nick Koston e03b3e2310
Restore group support to plant entities (#41519) 2020-10-09 08:37:27 +02:00
J. Nick Koston 896f64d02b
Fix group tests when run in parallel (#41446) 2020-10-08 00:01:33 -05:00
J. Nick Koston f50976a0b3
Switch to asyncio.wait for slow update warning implementation (#41184) 2020-10-05 15:28:15 +02:00
J. Nick Koston 78dfaa72a2
Ensure lights added after group is created have the correct state (#41034) 2020-10-03 21:29:41 +02:00
J. Nick Koston 42ad36e9f8
Switch group to use None for the state unknown case (#40792) 2020-09-30 17:25:50 +02:00
J. Nick Koston 9ccebdb8d5
Refactor group to extend domains that can be grouped (#40607)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-09-30 09:13:53 -05:00
J. Nick Koston 3880ac0b0d
Ensure group state is recalculated when re-adding on reload (#40497) 2020-09-23 20:55:32 +02:00
J. Nick Koston a778690b64
Support reloading the group notify platform (#39511) 2020-09-03 00:12:07 +02:00
Paulus Schoutsen 6de02fc1b9
Fix some more usages of asynctest (#39570) 2020-09-02 14:53:07 +02:00
J. Nick Koston 3e9963a216
Overcome group concurrent setup limitation (#39483)
With a lot of groups the limitation that groups
had to be setup one at a time could account for
the bulk of startup time.
2020-09-02 10:14:16 +02:00
Franck Nijhof 1c2ebdf307
Upgrade black to 20.8b1 (#39287) 2020-08-27 13:56:20 +02:00
J. Nick Koston 810df38f0d
Add the ability to reload light/cover groups from yaml (#39250)
* Add the ability to reload light/cover groups from yaml

Update previous usage to reduce code duplication.

* Fix conflict from rebase
2020-08-25 18:13:43 -05:00
J. Nick Koston 63ebea1706
Ensure the context is passed to group changes (#39221) 2020-08-26 00:22:10 +02:00
Matthew Garrett 34e2a1825b
Add support for exposing light effects via Google Assistant (#38575)
* Don't set SUPPORT_EFFECT on DemoLight if there are no effects

This requires an update to the group test - previously the other lights
instantiated by the DemoLight component had nothing in ATTR_EFFECT_LIST, but
still had SUPPORT_EFFECT set. This appears to have resulted in the light
group test code setting an effect on the group and expecting it to apply to
all lights, but given that two of the bulbs didn't actually support any
effects (due to the empty ATTR_EFFECT_LIST) this seems like a broken
assumption and updating the test to verify only the bulb that supports
effects has had one applied seems reasonable.

* Add support for exposing light effects via Google Assistant

The LightEffects trait only supports a fixed (and small) list of lighting
effects, but we can expose them via the Modes trait - this requires saying
"Set (foo) effect to (bar)" which is a little clumsy, but at least makes it
possible.
2020-08-08 14:28:04 -07:00
J. Nick Koston 4a5a09a0e9
Speed up group setup (#38048) 2020-07-21 17:29:57 -07:00
J. Nick Koston 4acc6f333e
Improve scalability of state change event routing (#37174) 2020-06-27 14:46:45 -07:00
Franck Nijhof f42eb0d5ca
Fix missing service call context in multiple locations (#37094) 2020-06-25 17:09:52 -07:00
Paulus Schoutsen c33edbe5bb
Use TestCase.addCleanup (#36560) 2020-06-08 12:26:40 -07:00
Thomas Lovén bdc098645b
Add entity list to light and cover group attributes (#36477)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2020-06-05 21:23:52 -07:00
Andre Lengwenus 2b5bb8dac0
Cover group considers opening and closing states (#36203) 2020-06-03 18:44:04 +02:00
Paulus Schoutsen 276f3afb00
Do async_setup_platform in background (#36244)
Co-authored-by: J. Nick Koston <nick@koston.org>
2020-05-31 22:18:30 -07:00
Paulus Schoutsen 2af984917e
Use asynctest-mock in most places (#35109)
* Use asynctest-mock in most places

* Fix broken patch in pilight
2020-05-03 11:27:19 -07:00