* Handle errors when obtaining options definitions
* Don't fetch program options if the program key is unknown
* Test to ensure that available program endpoint is not called on unknown program
* Add program options as entities
* Use program options constraints
* Only fetch the available options on refresh
* Extract the option definitions getter from the loop
* Add the option entities only when it is required
* Fix typo
* Added recognized options to Home Connect actions
* Fix ruff
* Fix strings.json
* Fix dishwasher typo
* Improved test_bsh_key_transformations
* Add missing return types
* Added descriptions
* Remove custom options
* Fixes
* Merge the 4 services (select, start, set options for active or selected program)
And deprecate the original ones
* Delete stale snapshots
* Clean up logic after service validation
* Make deprecated actions issues fixable
And delete issue on entry unload
* Fixes and improvements
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Improvements
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fix name and descriptions
* Add `affects_to` to strings and service.yaml
* Add missing periods at strings
* Fix
Co-authored-by: Norbert Rittel <norbert@rittel.de>
* Add tests to check if the flow removes the deprecated action issue
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Norbert Rittel <norbert@rittel.de>
* Make Home Connect config entry unique
* Use unique ID for Home connect config entry
* Remove unnecessary code
* Revert "Use unique ID for Home connect config entry"
This reverts commit 4241317469.
* Added tests
* Add and delete devices on CONNECT/PAIRED and DEPAIRED events
* Simplify device depairing
* small fixes
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add always the devices
* kind of revert changes
to simplify the entity fetch and removing on connected/paired and depaired
* cache `ha_id`
* Fix typo
* Remove unnecessary device info at HomeConnectEntity
* Move common code of each platform to `common.py`
* Added docstring to clarify usage
* Apply suggestions
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fetch current active and selected programs
* Intialize HomeConnectEntity first at SelectProgramEntity
* Use the right exception
* Use active/selected program from `get_all_programs`
This will allow us to reduce the number of requests that we need to perform to get all the data ready (only one requests vs. three requests)
* Remove no longer required mocks
* Fix
* Base the entity availability on the connected state of the appliance
* cache `ha_id`
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Inlcude coordinator `available` property at entity
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Filter programs by execution type at select program entities
* Suggestions and improvements
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Use function and translation key at select program entity description
* Fix select entity description docstring
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Migrate from homeconnect dependency to aiohomeconnect
* Reload the integration if there is an API error on event stream
* fix typos at coordinator tests
* Setup config entry at coordinator tests
* fix ruff
* Bump aiohomeconnect to version 0.11.4
* Fix set program options
* Use context based updates at coordinator
* Improved how `context_callbacks` cache is invalidated
* fix
* fixes and improvements at coordinator
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remove stale Entity inheritance
* Small improvement for light subscriptions
* Remove non-needed function
It had its purpose before some refactoring before the firs commit, no is no needed as is only used at HomeConnectEntity constructor
* Static methods and variables at conftest
* Refresh the data after an event stream interruption
* Cleaned debug logs
* Fetch programs at coordinator
* Improvements
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Simplify obtaining power settings from coordinator data
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Remove unnecessary statement
* use `is UNDEFINED` instead of `isinstance`
* Request power setting only when it is strictly necessary
* Bump aiohomeconnect to 0.12.1
* use raw keys for diagnostics
* Use keyword arguments where needed
* Remove unnecessary statements
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Home connect selector for programs
* Mark program switches as deprecated
* Simplified translation keys
* Improvements for program select entity
* Revert mark program switches as deprecated
* Return `None` if program is `None` or empty string
* Fix program format
* Use `is` instead of `==`
* Program selector entity selects program instead of start the selected program
* Fix typo
* Active and selected program
* Added ServiceValidationError
* Delete unnecessary `service` param at tests
* Use full program keys
* Fix again typos in programs states
* Use map for translations
* Add error handling for when the selected program is not registered on the program map
* Reverse map for programs and translation keys
* Remove stale string
* Log only once that the program is not part of the official Home Connect API specification
* pop programs
* Move `RE_CAMEL_CASE` to a better place
* Added warning if updated program is not valid
* Stale test function name
* Improve log about unknown program at update
* Add underscore before numbers in translation keys
* Added suggested changes
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Use target for adding an executor job
* Apply suggestions from code review
* Clean whitespace
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add diagnostics per device to Home Connect
* Include programs at device diagnostics
* Applied suggestions from epenet
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Applied more suggestions from epenet
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
* Test naming consistency
Co-authored-by: abmantis <amfcalt@gmail.com>
* Add return type to `_generate_entry_diagnostics`
---------
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: abmantis <amfcalt@gmail.com>
* Use BSH keys as as unique id suffix instead of the simple description
* Update tests/components/home_connect/test_init.py
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>