* Add get_radio helper function
This is defined here primarily for use in simplifying otherwise repetitive
logic in the lambdas for entity descriptions.
* Get firmware manifests for second radio
* Create optional update entity for radio 2
* Add info fixture for SLZB-MR1
* Test for firmware updates of second radio
* Remove use of entity description creating entities
* Add idx to lambda functions
* Add latest_version lambda to ED
* Use Single zb_update description
* test radio2 update
* device type heading for release notes
* fix failing no internet test
* update release note tests
* assert radios
* fix return type installed_version
* refactor latest_version code
* update listener
* Dont create update entities for legacy firmware that can't upgrade
* Address review comments for update listener
* Bump paho-mqtt client to version 2.1.0
* Remove commented code
* Bump pyeconet==0.1.26
* Ensure types-paho-mqtt==1.6.0.20240321 is uninstalled if test requirements are updated
* Update roombapy dependency
* Remove pyeconet from exceptions list
* Revert changes to install test requirements task
Co-authored-by: Christopher Fenner <9592452+CFenner@users.noreply.github.com>
Co-authored-by: kurens <migrzyb@users.noreply.github.com>
Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>
Co-authored-by: Christopher Fenner <Christopher.Fenner@me.com>
* Add exception translations to ring integration
* Do not include exception details in exception translations
* Don't check last_update_success for auth errors and update tests
* Do not log errors twice
* Update post review
* When an event is received from a script component on a shelly device, this event is send to the hass event bus
* Event emitted from a script will be send to the corresponding event entity
* Added tests for the shelly script event
* The event entity for script are now hidden by default
* Forgot to enable script event entities by default for the test
* Made serveral improvement for the shelly script event entity
- Added device name to event entity
- The event entity is now only created when a script has any event types
- The test for this entity now uses snapshots
* Shelly script event entities will not be create for the BLE scanning script and will now be automatically removed when the script no longer exsists
* Changed variable name to avoid confusion with _id
* Removed old const from first implementation and removed _script_event_listeners and used _event_listeners instead to listen for script events
* Clear extra system prompt on start_conversation error
* Update homeassistant/components/assist_satellite/entity.py
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
* Add support for OpenAI reasoning models
* Apply suggestions from code review
* Remove o1-mini* and o1-preview* model support
* List unsupported models
* Reenable audio models (they also support text)
* 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
* Create a stateless assist API for MCP server
* Update stateless API
* Fix areas in exposed entity fields
* Add tests that verify areas are returned
* Revert the getstate intent
* Revert whitespace change
* Revert whitespace change
* Revert method name changes to avoid breaking openai and google tests
Every few days we get an issue report about a device a user ignored and forgot about, and than can no longer get set up. Sometimes its a govee device, sometimes its a switchbot device, but the pattern is consistent.
Allow ignored devices to be selected in the user step and replace the ignored entry.
Same as #137056 and #137052 but for airthings
Every few days we get an issue report about a device a user ignored and forgot about, and than can no longer get set up. Sometimes its a govee device, sometimes its a switchbot device, but the pattern is consistent.
Allow ignored devices to be selected in the user step and replace the ignored entry.
Same as #137056 and #137052 but for yalexs_ble
Every few days we get an issue report about a device a user ignored and forgot about, and than can no longer get set up. Sometimes its a govee device, sometimes its a switchbot device, but the pattern is consistent.
Allow ignored devices to be selected in the user step and replace the ignored entry.
Same as #137056 and #137052 but for thermopro
Every few days we get an issue report about a device a user ignored and forgot about, and than can no longer get set up. Sometimes its a govee device, sometimes its a switchbot device, but the pattern is consistent.
Allow ignored devices to be selected in the user step and replace the ignored entry.
Same as #137056 and #137052 but for inkbird
Every few days we get an issue report about a device a user ignored and forgot about, and than can no longer get set up. Sometimes its a govee device, sometimes its a switchbot device, but the pattern is consistent.
Allow ignored devices to be selected in the user step and replace the ignored entry.
Same as #137056 and #137052 but for mopeka
Every few days we get an issue report about a device a user ignored and forgot about, and than can no longer get set up. Sometimes its a govee device, sometimes its a switchbot device, but the pattern is consistent.
Allow ignored devices to be selected in the user step and replace the ignored entry.
Same as #137056 and #137052 but for oralb
Every few days we get an issue report about a device a user ignored and forgot about, and than can no longer get set up. Sometimes its a govee device, sometimes its a switchbot device, but the pattern is consistent.
Allow ignored devices to be selected in the user step and replace the ignored entry.
Same as #137056 and #137052 but for qingping
Every few days we get an issue report about a device a user ignored and forgot about, and than can no longer get set up. Sometimes its a govee device, sometimes its a switchbot device, but the pattern is consistent.
Allow ignored devices to be selected in the user step and replace the ignored entry.
Same as #137056 and #137052 but for sensorpush
* 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>
* Allow ignored govee-ble devices to be setup up from the user flow
Every few days we get an issue report about a device
a user ignored and forgot about, and than can no longer
get set up. Allow ignored devices to be selected in
the user step and replace the ignored entry.
* Add the ability to skip ignored config entries when calling _abort_if_unique_id_configured
see https://github.com/home-assistant/core/pull/137052
* coverage
* revert
* Allow startup when privacy mode is enabled
* Add tests
* remove duplicate privacy_mode
* fix tests
* Apply suggestions from code review
Co-authored-by: Robert Resch <robert@resch.dev>
* Store in subfolder and cleanup when removed
* Add tests and fixes
* fix styling
* rename CONF_PRIVACY to CONF_SUPPORTS_PRIVACY_MODE
* use helper store
---------
Co-authored-by: Robert Resch <robert@resch.dev>
* Persist roborock maps to disk only on shutdown
* Rename on_unload to on_stop
* Spawn 1 executor thread and block writes to disk
* Update tests/components/roborock/test_image.py
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Use config entry setup instead of component setup
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
* Show name of the backup agents in issue
* Show name of the backup agents in issue
* Update homeassistant/components/backup/manager.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fix handling of renamed backup files in the core writer
* Adjust mocking
* Raise BackupAgentError instead of KeyError in get_backup_path
* Add specific error indicating backup not found
* Fix tests
* Ensure backups are loaded
* Fix tests
* Add start_conversation service to Assist Satellite
* Fix tests
* Implement start_conversation in voip
* Update homeassistant/components/assist_satellite/entity.py
---------
Co-authored-by: Michael Hansen <mike@rhasspy.org>
* 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>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Allen Porter <allen.porter@gmail.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Allen Porter <allen@thebends.org>
Co-authored-by: Robert Resch <robert@resch.dev>
* Add support for per-backup agent encryption flag
* Adjust
* Don't attempt decrypting an unprotected backup
* Address review comments
* Add some tests
* Add fixture
* Rename fixture
* Correct condition for when we should encrypt or decrypt
* Update tests in integrations
* Improve test coverage
* Fix onedrive tests
* Add test
* Improve cipher worker shutdown
* Improve test coverage
* Fix google_drive tests
* Move inner class _CipherBackupStreamer._WorkerStatus to module scope
* Add backup endpoints to the onboarding integration
* Add backup as after dependency of onboarding
* Add test snapshots
* Fix stale docstrings
* Add utility function for getting the backup manager instance
* Return backup_id when uploading backup
* Change /api/onboarding/backup/restore to accept a JSON body
* Fix with_backup_manager
* Add Google Drive integration for backup
* Add test_config_flow
* Stop using aiogoogle
* address a few comments
* Check folder exists in setup
* fix test
* address comments
* fix
* fix
* Use ChunkAsyncStreamIterator in helpers
* repair-issues: todo
* Remove check if folder exists in the reatuh flow. This is done in setup.
* single_config_entry": true
* Add test_init.py
* Store into backups.json to avoid 124 bytes per property limit
* Address comments
* autouse=True on setup_credentials
* Store metadata in description and remove backups.json
* improvements
* timeout downloads
* library
* fixes
* strings
* review
* ruff
* fix test
* Set unique_id
* Use slugify in homeassistant.util
* Fix
* Remove RefreshError
* review
* push more fields to the test constant
---------
Co-authored-by: Joostlek <joostlek@outlook.com>
* move service setup into integrations async_setup
* move back to own module
* add service test
* remove unneccessary CONFIG_SCHEMA
* remove unused constant FRITZ_SERVICES
* Revert "remove unneccessary CONFIG_SCHEMA"
This reverts commit cce1ba76a0.
* remove useless CONFIG_SCHEMA from services.py
* move logic of `service_fritzbox` into services.py
* add more service tests
* simplify logic, use ServiceValidationError
* Migrate usb to use aiousbwatcher
aiousbwatcher uses inotify on /dev/bus/usb to look for devices
added and being removed which works on a lot more systems
* bump asyncinotify
* bump aiousbwatcher to 1.1.1
* tweaks
* tweaks
* tweaks
* fixes
* debugging
* Update homeassistant/components/usb/__init__.py
* Update homeassistant/components/usb/__init__.py
---------
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>