🏡 Open source home automation that puts local control and privacy first.
Go to file
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
.devcontainer Update default pylint.importStrategy in dev container (#119900) 2024-06-19 11:27:01 +02:00
.github Bump github/codeql-action from 3.25.14 to 3.25.15 (#122753) 2024-07-29 09:58:15 +02:00
.vscode Generate translation in vscode taks: Code Coverage (#120434) 2024-07-07 17:05:44 +02:00
homeassistant Add Bryant Evolution Integration (#119788) 2024-07-29 11:25:04 +02:00
machine Fix Raspberry Pi utilities installation on Alpine 3.19 (#110463) 2024-02-13 15:07:37 +01:00
pylint Add monkeypatch to enforce-type-hints plugin (#121051) 2024-07-05 11:35:56 +02:00
rootfs Stop the Home Assistant Core container by default (#101105) 2023-09-30 10:43:07 +02:00
script Bump pyElectra to 1.2.4 (#122724) 2024-07-28 10:18:21 +02:00
tests Add Bryant Evolution Integration (#119788) 2024-07-29 11:25:04 +02:00
.core_files.yaml Add valve to base platform (#121313) 2024-07-05 17:41:13 +02:00
.dockerignore
.git-blame-ignore-revs Add ruff commit to git-blame-ignore-revs (#114229) 2024-03-26 12:16:55 +01:00
.gitattributes Ensure .pcm binary files do not have line endings changed (#91881) 2023-04-22 22:22:30 -04:00
.gitignore Add `__pycache__` to gitignore (#114056) 2024-05-18 13:30:03 +02:00
.hadolint.yaml Update base image to 2023.10.0 (#102126) 2023-10-18 19:11:41 +02:00
.pre-commit-config.yaml Bump ruff to 0.5.5 (#122722) 2024-07-28 09:37:38 +02:00
.prettierignore Remove outdated prettier and yamllint `azure-*.yml` ignores (#112819) 2024-03-09 14:44:05 +02:00
.strict-typing Add Bryant Evolution Integration (#119788) 2024-07-29 11:25:04 +02:00
.yamllint Remove outdated prettier and yamllint `azure-*.yml` ignores (#112819) 2024-03-09 14:44:05 +02:00
CLA.md
CODEOWNERS Add Bryant Evolution Integration (#119788) 2024-07-29 11:25:04 +02:00
CODE_OF_CONDUCT.md Update codespell to 2.3.0 (#118001) 2024-05-24 08:22:29 +02:00
CONTRIBUTING.md
Dockerfile Update uv to 0.2.27 (#122246) 2024-07-20 13:24:21 +02:00
Dockerfile.dev Use uv instead of pip in development env (#113517) 2024-05-21 09:56:31 +02:00
LICENSE.md
MANIFEST.in
README.rst Add Open Home Foundation link (#116405) 2024-04-29 21:28:47 +02:00
build.yaml Update Home Assistant base image to 2024.06.1 (#120168) 2024-06-22 18:52:44 +02:00
codecov.yml Remove coveragerc (#121286) 2024-07-05 11:03:31 +02:00
mypy.ini Add Bryant Evolution Integration (#119788) 2024-07-29 11:25:04 +02:00
pyproject.toml Update pylutron to 0.2.15 (#122455) 2024-07-23 22:41:16 +03:00
requirements.txt Bump aiohttp to 3.10.0b1 (#122409) 2024-07-23 12:10:22 -05:00
requirements_all.txt Add Bryant Evolution Integration (#119788) 2024-07-29 11:25:04 +02:00
requirements_test.txt Update mypy-dev to 1.12.0a2 (#122613) 2024-07-25 21:48:10 +02:00
requirements_test_all.txt Add Bryant Evolution Integration (#119788) 2024-07-29 11:25:04 +02:00
requirements_test_pre_commit.txt Bump ruff to 0.5.5 (#122722) 2024-07-28 09:37:38 +02:00

README.rst

Home Assistant |Chat Status|
=================================================================================

Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.

Check out `home-assistant.io <https://home-assistant.io>`__ for `a
demo <https://demo.home-assistant.io>`__, `installation instructions <https://home-assistant.io/getting-started/>`__,
`tutorials <https://home-assistant.io/getting-started/automation/>`__ and `documentation <https://home-assistant.io/docs/>`__.

This is a project of the `Open Home Foundation <https://www.openhomefoundation.org/>`__.

|screenshot-states|

Featured integrations
---------------------

|screenshot-integrations|

The system is built using a modular approach so support for other devices or actions can be implemented easily. See also the `section on architecture <https://developers.home-assistant.io/docs/architecture_index/>`__ and the `section on creating your own
components <https://developers.home-assistant.io/docs/creating_component_index/>`__.

If you run into issues while using Home Assistant or during development
of a component, check the `Home Assistant help section <https://home-assistant.io/help/>`__ of our website for further help and information.

.. |Chat Status| image:: https://img.shields.io/discord/330944238910963714.svg
   :target: https://www.home-assistant.io/join-chat/
.. |screenshot-states| image:: https://raw.githubusercontent.com/home-assistant/core/dev/.github/assets/screenshot-states.png
   :target: https://demo.home-assistant.io
.. |screenshot-integrations| image:: https://raw.githubusercontent.com/home-assistant/core/dev/.github/assets/screenshot-integrations.png
   :target: https://home-assistant.io/integrations/