danielsmyers fa61ad072d
Add Bryant Evolution Integration (#119788)
* Add an integration for Bryant Evolution HVAC systems.

* Update newly created tests so that they pass.

* Improve compliance with home assistant guidelines.

* Added tests

* remove xxx

* Minor test cleanups

* Add a test for reading HVAC actions.

* Update homeassistant/components/bryant_evolution/__init__.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/climate.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/climate.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/climate.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/climate.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/climate.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/bryant_evolution/config_flow.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Address reviewer comments.

* Address additional reviewer comments.

* Use translation for exception error messages.

* Simplify config flow.

* Continue addressing comments

* Use mocking rather than DI to provide a for-test client in tests.

* Fix a failure in test_config_flow.py

* Track host->filename in strings.json.

* Use config entry ID for climate entity unique id

* Guard against fan mode returning None in async_update.

* Move unavailable-client check from climate.py to init.py.

* Improve test coverage

* Bump evolutionhttp version

* Address comments

* update comment

* only have one _can_reach_device fn

* Auto-detect which systems and zones are attached.

* Add support for reconfiguration

* Fix a few review comments

* Introduce multiple devices

* Track evolutionhttp library change that returns additional per-zone information during enumeration

* Move construction of devices to init

* Avoid triplicate writing

* rework tests to use mocks

* Correct attribute name to unbreak test

* Pull magic tuple of system-zone into a constant

* Address some test comments

* Create test_init.py

* simplify test_reconfigure

* Replace disable_auto_entity_update with mocks.

* Update tests/components/bryant_evolution/test_climate.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update tests/components/bryant_evolution/test_climate.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update tests/components/bryant_evolution/test_config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/bryant_evolution/config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update tests/components/bryant_evolution/test_config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update tests/components/bryant_evolution/test_config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* fix test errors

* do not access runtime_data in tests

* use snapshot_platform and type fixtures

---------

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-07-29 11:25:04 +02:00
..
2024-07-27 12:36:48 +02:00
2024-07-06 08:39:24 +02:00
2024-06-28 12:14:44 +02:00
2024-07-15 16:53:21 +02:00
2024-07-26 16:59:28 +02:00
2024-07-07 16:34:05 +02:00
2024-06-30 15:28:01 +02:00
2024-07-20 12:58:49 +02:00
2024-07-24 21:40:05 +02:00
2024-07-16 08:47:46 +02:00
2024-06-29 21:35:48 -07:00
2024-07-20 12:58:49 +02:00
2024-07-01 17:52:19 +02:00
2024-07-10 21:09:47 +02:00
2024-07-19 18:25:07 +02:00
2024-06-25 20:08:04 +02:00
2024-06-24 11:07:22 +02:00
2024-07-23 12:10:22 -05:00
2024-06-21 08:47:50 +02:00
2024-06-24 17:51:30 +02:00
2024-07-01 10:46:10 +02:00
2024-07-20 12:58:49 +02:00
2024-07-07 14:54:29 +02:00
2024-07-15 17:51:41 +02:00
2024-06-24 14:32:52 +02:00
2024-07-05 11:10:48 +02:00
2024-07-26 20:19:58 +02:00
2024-06-22 10:37:37 +02:00
2024-06-29 11:10:35 -05:00
2024-07-19 12:06:53 +02:00
2024-07-20 12:58:49 +02:00
2024-07-10 23:08:25 +02:00
2024-07-20 12:58:49 +02:00
2024-07-09 08:30:10 +02:00
2024-07-17 10:29:41 +02:00
2024-07-19 12:06:53 +02:00
2024-07-10 21:47:40 +02:00
2024-06-26 02:25:30 +02:00
2024-07-10 20:16:36 +02:00
2024-06-27 22:09:33 +02:00
2024-07-20 21:29:51 +02:00
2024-07-27 10:19:53 +02:00
2024-07-22 13:09:08 +02:00
2024-06-25 18:54:06 +02:00
2024-06-28 17:54:20 +02:00
2024-07-24 20:37:38 +02:00
2024-06-21 10:16:36 +02:00