* Add issues for data cap to onedrive
* brackets
* Fix double space
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
---------
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
* 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>
* Implement `async_register_firmware_info_provider` for OTBR
* Keep track of the current device for OTBR
Keep track of the current device, part 2
* Fix unit tests
* Revert keeping track of the current device
* Fix existing unit tests
* Increase test coverage
* Remove unused code from tests
* Reload OTBR when the addon reloads
* Only reload if the current entry is running
* Runtime test
* Add a unit test for the reloading
* Clarify the purpose of `ConfigEntryState.SETUP_IN_PROGRESS`
* Simplify typing
* Fixes https://github.com/home-assistant/core/issues/116105
* Fixes unit test in accordance to documentation
Timer needs to be active before it can be canceled
* Allow canceling of paused timers
* Add test for canceling/finishing already canceled/finished timers
* Add test for finishing a paused timer, this should not be possible
* Revert finish related tests
* Merge branch 'timer.cancelled_fix' of
git@github.com:rrooggiieerr/homeassistant-core.git into
timer.cancelled_fix
---------
Co-authored-by: Franck Nijhof <git@frenck.dev>
* Allow specifying SIP username for outgoing calls
Allow configuring a SIP username to be sent in outgoing call requests to
identify the home assistant source endpoint.
* Remove advanced options section
* Add test for removing user
* Allow unsetting SIP user
Make previous SIP user value a suggested value rather than default to
allow unsetting by submitting an empty value in the form.
* Remove unnecessary checks
Remove user check from main flow and remove none or empty check.
* Reapply "Add support for subentries to config entries" (#133470) (#136061)
* Reapply "Add support for subentries to config entries" (#133470)
This reverts commit ecb3bf79f3.
* Update test snapshot
* Add config subentry support to device registry (#128157)
* Add config subentry support to device registry
* Apply suggestions from code review
* Update syrupy serializer
* Update snapshots
* Address review comments
* Allow a device to be connected to no or a single subentry of a config entry
* Update snapshots
* Revert "Allow a device to be connected to no or a single subentry of a config entry"
This reverts commit ec6f613151cb4a806b7961033c004b71b76510c2.
* Update test snapshots
* Bump release version in comments
* Rename config_subentries to config_entries_subentries
* Add config subentry support to entity registry (#128155)
* Add config subentry support to entity registry
* Update syrupy serializer
* Update snapshots
* Update snapshots
* Accept suggested changes
* Clean registries when removing subentry (#136671)
* Clean up registries when removing subentry
* Update tests
* Clean up subentries from deleted devices when removing config entry (#136669)
* Clean up subentries from deleted devices when removing config entry
* Move
* Add config subentry support to entity platform (#128161)
* Add config subentry support to entity platform
* Rename subentry_id to config_subentry_id
* Store subentry type in subentry (#136687)
* Add reconfigure support to config subentries (#133353)
* Add reconfigure support to config subentries
* Update test
* Minor adjustment
* Rename supported_subentry_flows to supported_subentry_types
* Address review comments
* Add subentry support to kitchen sink (#136755)
* Add subentry support to kitchen sink
* Add subentry reconfigure support to kitchen_sink
* Update kitchen_sink tests with subentry type stored in config entry
* Update kitchen_sink
* Update kitchen_sink
* Adjust kitchen sink tests
* Fix hassfest
* Apply suggestions from code review
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Improve docstrings and strings.json
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
* Update snapshots
---------
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Add PG LAB Electronics integration
* Add time from last boot sensor diagnostic
* Limit the initial new pglab integration to only one platform
* Update FlowHandler with the new return type ConfigFlowResult
* Fix docstring file with the right integration name to PG LAB.
* There is no need for default value in the callback definition.
* Move all mqtt callbacks to be global and also renamed with a better name.
* Removed unused member variables.
* Renaming functions with a better name.
* Adding miss docstring to __build_device.
* Renamed CreateDiscovery with a better name.
* Removing not so meaning comment.
* Avoid to populate hass.data with pglab discovery information. Use hass.data[DOMAIN] instead.
* Revert "Removed unused member variables."
This reverts commit 4193c491ec.
* Removed unused member variables.
* Refactoring of const. Be sure to have in const.py constant that are used in at least two other modules
* Restoring back the process to unregister the plaform when unload the integration.
* fix spelling mistake
* Revert "Move all mqtt callbacks to be global and also renamed with a better name."
This reverts commit d94d8010d5.
* Main refactoring to avoid to store PG Lab discovery in hass.data
* Change class name BaseEntity in PGLabEntity. And named PyPGLab... what imported from external python module pypglab.
* Avoid to use dict to create DeviceInfo
* Removing unused parameter
* Removing not necessary call to base class
* Update entity name/id to be compatible with the new integration policy.
* Upate test to new entity id
* Add new line after file description
* avoid to store in local variable data for calling function
* Move PGLABConfigEntry in __init__.py
* change function to pure callback
* to avoid hang, dont' trust the split of the discovery topic... introduce a max split count
* rename method with a more meaning name
* use assignment operator
* rename variable with a better name
* removing unecessary test
* Raise exception in case of unexpected error during discovery
* Review comments all other the intergration.
* Rename classes to be consistent in integration
* Using new feature single_config_entry to allow single instance integration
* rename class FlowHandler to PGLabFlowHandler
* using __package__ to initialize integration logger
* missing to catch the exception when for some reason is not possible to create the discovery instance. This can happen when the discovery MQTT message is not in valid json format.
* using ATTR_ENTITY_ID instead of the string
* using SOURCE_MQTT, SOURCE_USER instead of config_entries.SOURCE_MQTT, config_entries.SOURCE_USER
* Using FlowResultType.ABORT instead of the string value
* Code refactoring for tests of configuration from USER and MQTT
* Remove to the user the possibility to add PGLab integration manually, and remove not needed tests.
* Change test_device_update to use snapshot to check test result
* Raise exeception in case of unexpected device and entity_id
* Avoid to log on info channel.
* Renamed _LOGGER in LOGGER
* Propage the call to the base class
* Remove not needed code because from the manifest it's only allows a single instance
* Using specific type for result test instead of string value
* Code refactoring, avoid not necessary function
* update to the new way to import mqtt components
* Avoid runtime check
* add err variable for catching the exception
* add doc string to mqtt_publish
* add doc string to mqtt_subscribe
* Rename DiscoverDeviceInfo.add_entity_id in add_entity
* add doc string
* removing not meaning documentation string
* fix spelling
* fix wrong case in docstring
* fix spelling mistake in PyPGLab callback name
* rename mqtt message received callback
* Avoid to store hard coded discovery_prefix
* Removing unused strings from strings.json
* Give to the user more information during config_flow, and add the possibility to add manually the integration
* Fix to avoid fails of auto test
* update discovery test
* Be sure to always subscribe to MQTT topic when entity is added to HA
* Update codeowner of PGLAB integration and test
* Add control to check if mqtt is available during integration setup
* New test for check no state change for disable entity switch
* Remore not more used file
* update pypglab to version 0.0.3 and improve the symmetry to subscribe/unsubscribe to mqtt entity topic and to register/deregister the status update callback
* Update codeowner of pglab integration
* Adding quality_scale
* removing async_setup
* Fix spelling mistake
* Added test to cover config_flow.async_step_user
---------
Co-authored-by: Pierluigi <p.garaventa@gmail.com>
* Update anthropic to use the new chatlog API
* Remove conversation id logging
* Add back whitespace
* Reduce unnecessary diffs
* Revert diffs to conversation component
* Replace types with union type
* Update ollama to use the ChatLog/ChatSession APIs
* Add documentation about history trimming.
* Revert changes to chat_log.py
* Explicitly check for SystemContent when converting system messages
* Remove half of a comment
* Refresh the nest authentication token on integration start before invoking the pub/sub subscriber
* Apply suggestions from code review
---------
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
* 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
* 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>