* Support loading different config store fixtures
* Add config store test for binary sensor
* Update README.md
* remove unused fixture
* AddAdd config store test for switch
* Replace `FirmwareGuess` with `FirmwareInfo` with owner tracking
* Fix up config flow
* Account for OTBR addon existing independent of integration
* Fix remaining unit tests
* Add some tests for ownership
* Unit test `get_zha_firmware_info`
* ZHA `homeassistant_hardware` platform
* OTBR `homeassistant_hardware` platform
* Rework imports
* Fix unit tests
* Add OTBR unit tests
* Add hassfest exemption for `homeassistant_hardware` and `otbr`
* Invert registration to decouple the hardware integration
* Revert "Add hassfest exemption for `homeassistant_hardware` and `otbr`"
This reverts commit c8c6e7044f.
* Fix circular imports
* Fix unit tests
* Address review comments
* Simplify API a little
* Fix `| None` mypy issues
* Remove the `unregister_firmware_info_provider` API
* 100% coverage
* Add `HardwareInfoDispatcher.register_firmware_info_callback`
* Unit test `register_firmware_info_callback` (zha)
* Unit test `register_firmware_info_callback` (otbr)
* Update existing hardware helper tests to use the new function
* Add `async_` prefix to helper function names
* Move OTBR implementation to a separate PR
* Update ZHA diagnostics snapshot
* Switch from `dict.setdefault` to `defaultdict`
* Add some error handling to `iter_firmware_info` and increase test coverage
* Oops
* 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>