Compare commits

...

1308 Commits

Author SHA1 Message Date
Erik 1a1a298c3b Fix tests leaving files behind 2025-02-17 09:35:33 +01:00
Erik 14c8c54283 Don't fail automatic backups after migration from HassOS/Supervised to Core/Container 2025-02-17 08:42:15 +01:00
Michael fa4ebeb680 Bump py-synologydsm-api to 2.6.3 (#138516)
bump py-synologydsm-api to 2.6.3
2025-02-14 13:11:32 +01:00
Erik Montnemery efd7ddeb89 Improve tests of removing and unloading config entries (#138432)
* Improve tests of removing and unloading config entries

* Fix unnecessary coroutine
2025-02-14 13:06:07 +01:00
RJPoelstra f407dbd35c Disable less used entities by default in MotionMount integration (#138509)
* Mark sensors as disabled by default as most users won't need them

* Mark entity-disabled-by-default as done

* Enable disabled entities during tests
2025-02-14 12:46:41 +01:00
Manu 4d3a4015ed Update quality scale to platinum 🏆️ for Bring! integration (#138202)
* Update documentation status in bring quality_scale.yaml

* Update quality scale

* options flow exempt
2025-02-14 11:39:04 +01:00
RJPoelstra 9f9aeb4cce Add entity category to non primary entities for motionmount integration (#138436)
Add entity category to non primary entities
2025-02-14 11:10:08 +01:00
Norbert Rittel b9148d6368 Improve descriptions of snooz.transition_xx actions (#138403)
The current action descriptions of the snooz integration are easy to misunderstand and result in wrong translations.

This commit replaces them with the wording from the online docs, slightly adapted for the UI that already displays the units and ranges.
2025-02-14 10:37:56 +01:00
Shai Ungar d82dd9e7e6 Bump pyseventeentrack to 1.0.2 (#138506)
Bump pyseventeentrack version
2025-02-14 10:25:04 +01:00
Erik Montnemery 51beb21fe4 Bump hass-nabucasa from 0.91.0 to 0.92.0 (#138510) 2025-02-14 10:19:00 +01:00
Phill (pssc) 83f8a4454d squeezebox bump pysqueezebox to 0.12.0 (#138205)
* bump pysqueezebox to 0.12.0

* python3 -m script.gen_requirements_all
2025-02-14 10:14:44 +01:00
Christopher Fenner 6a4f5188b1 Bump PyViCare to 2.42.1 (#138494) 2025-02-14 02:30:53 +02:00
TheJulianJES 099adebcb6 Bump ZHA to 0.0.49 to fix Tuya TRV issues (#138492)
Bump ZHA to 0.0.49
2025-02-14 02:04:39 +02:00
Shay Levy 00e98954e4 Bump aiowebostv to 0.6.2 (#138488) 2025-02-14 01:52:33 +02:00
Michael 621bcccef7 Remove scan interval option from Synology DSM (#138490)
remove scan interval option
2025-02-13 22:51:14 +01:00
Jan Bouwhuis d6b7762dd6 Upgrade paho-mqtt API to v2 (#137613)
* Upgrade paho-mqtt API to v2

* Refactor on_connect callback

* Add tests

* Fix Tasmota tests
2025-02-13 22:13:19 +01:00
J. Nick Koston bbbad90ca2 Fix race configuring zeroconf (#138425) 2025-02-13 14:17:06 -06:00
tronikos ab2e075b41 Bump opower to 0.9.0 (#138433)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2025-02-13 21:35:58 +02:00
Norbert Rittel 2ea648f8ae Replace config.yaml with correct configuration.yaml in folder_watcher (#138434) 2025-02-13 20:55:04 +02:00
Pete Sage bf27eeb861 Add sonos_websocket to Sonos loggers (#138470) 2025-02-13 18:46:50 +00:00
Maghiel Dijksman d4c5479e50 Fix Tuya unsupported cameras (#136960) 2025-02-13 16:14:56 +00:00
RJPoelstra a03c588002 Mark entity-device-class as done for motionmount integration (#138459)
All entities where a device class is available have a device class
2025-02-13 16:54:29 +01:00
David Rapan 82074a8940 Starlink migration to StarlinkConfigEntry (#137896)
* refactor: Utilize custom StarlinkConfigEntry

* fix: ruff-format

* fix: Init tests

* fix: StarlinkConfigEntry in coordinator after recent PRs

* fix: CONF_IP_ADDRESS constant

* fix: After merge clean up

* fix: Naming conventions

* feat: Add runtime_data into init test

* refactor: Remove runtime_data assert in unload entry test
2025-02-13 16:36:07 +01:00
Artur Pragacz 7021175e0d Simplify stage 1 in bootstrap (#137668)
* Simplify stage 1 in bootstrap

* Add timeouts to STAGE 0

* Fix test

* Clarify pre import language

* Remove timeout for frontend and recorder

* Address review

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-13 13:07:24 +01:00
Norbert Rittel e9138a427d Replace wrong description reference of isy994.send_node_command (#138385) 2025-02-13 06:00:38 -06:00
Indu Prakash 6a26d59142 Add night light brightness level setting to VeSync (#137544) 2025-02-13 11:45:09 +00:00
Joakim Sørensen a8f4ab73ae Bump hass-nabucasa from 0.90.0 to 0.91.0 (#138441) 2025-02-13 11:40:55 +00:00
Norbert Rittel 0a9d134f49 Make descriptions of data fields in notify actions UI-friendly (#138431)
Also fixes a duplicated period at the end of the second string.
2025-02-13 10:28:55 +01:00
Arie Catsman 07c304125a Add error handling to enphase_envoy select platform action (#136698)
* Add error handling to enphase_envoy select platform action

* Add translation key parameter to exception_handler decorator
2025-02-13 09:37:52 +01:00
IceBotYT 6bc4f04a07 Handle no_readings in La Crosse View (#138354)
* Handle no_readings in La Crosse View

* Fixes
2025-02-13 09:24:28 +01:00
Joris Pelgröm 737baaef2b Improve test coverage for letpot (#138420) 2025-02-13 09:22:05 +01:00
IceBotYT 1ac16f6dbf Set suggested display precision in La Crosse View (#138355)
* Set suggested display precision in La Crosse View

* Switch to entity descriptions
2025-02-13 08:37:46 +01:00
puddly 81cac25bd0 OTBR firmware API for Home Assistant Hardware (#138330)
* 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
2025-02-12 15:48:09 -05:00
Steven B. c0068e0891 Bump python-kasa to 0.10.2 (#138381) 2025-02-12 21:42:07 +01:00
Josef Zweck 641b487196 Improve test coverage for onedrive (#138410)
* Improve test coverage for onedrive

* set done in quality scale
2025-02-12 20:44:39 +01:00
Erik Montnemery 03b3097c34 Update cloud backup agent to use calculate_b64md5 from lib (#138391)
* Update cloud backup agent to use calculate_b64md5 from lib

* Catch error, add test

* Address review comments

* Update tests/components/cloud/test_backup.py

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>

---------

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2025-02-12 19:11:20 +01:00
jdanders 400dbc8d1b Add missing thermostat state EMERGENCY_HEAT to econet (#137623)
* Add missing thermostat state EMERGENCY_HEAT to econet

* econet: fix overloaded reverse dictionary

* Update homeassistant/components/econet/climate.py

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2025-02-12 18:56:42 +01:00
Steven B. d9108cc003 Fix tplink iot strip sensor refresh (#138375) 2025-02-12 11:46:11 -06:00
Josef Zweck ff5ddce7b0 Add sensor platform to OneDrive for drive usage (#138232) 2025-02-12 18:37:30 +01:00
Andre W. 620141cfb1 Fix version extraction for APsystems (#138023)
Co-authored-by: Marlon <mawol@protonmail.com>
2025-02-12 17:24:39 +00:00
J. Nick Koston 8bf870f296 Bump zeroconf to 0.144.1 (#138353)
* Bump zeroconf to 0.143.1

changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.143.0...0.143.1

fixes #138324
fixes https://github.com/home-assistant/core/issues/137731
fixes https://github.com/home-assistant/core/issues/138298

* one more
2025-02-12 15:57:26 +01:00
Erik Montnemery 281c2bfb7b Bump hass-nabucasa from 0.89.0 to 0.90.0 (#138387)
* Bump hass-nabucasa from 0.89.0 to 0.90.0

* Use new shiny enum
2025-02-12 15:29:42 +01:00
Dan Raper 910711ecba Bump ohmepy to 1.3.0 (#138380)
* Bump ohmepy to 1.3.0

* CI fix for enum change
2025-02-12 14:54:21 +01:00
epenet 4807682fc5 Remove unused arguments in forked_daapd initialisation (#138289) 2025-02-12 14:18:10 +01:00
fwestenberg 327bb34be1 Bump stookwijzer to 1.5.2 (#138384)
Bump stookwijzer==1.5.2
2025-02-12 15:15:32 +02:00
Robert Resch 6084bee2d5 Bump deebot-client to 12.1.0 (#138382) 2025-02-12 15:14:52 +02:00
Abílio Costa bc11444fb2 Add missing loggers to Cloud (#138374) 2025-02-12 13:14:31 +01:00
epenet e12b100a37 Use runtime_data in fireservicerota (#138361) 2025-02-12 12:49:26 +01:00
Robert Resch ef9d5dd568 Bump cryptography to 44.0.1 (#138371) 2025-02-12 12:46:53 +01:00
epenet 2bb582f8e6 Use runtime_data in geo_json_events (#138366)
* Use runtime_data in geo_json_events

* Update __init__.py
2025-02-12 12:42:22 +01:00
jdanders f1471f143c Fix broken issue creation in econet (#137773)
* econet: Fix broken issue creation

* econet: fix broken issue creation with create_issue
2025-02-12 12:41:52 +01:00
Norbert Rittel 64fa9b78f8 Fix typos in user-facing strings of Bayesian integration (#138364) 2025-02-12 12:39:43 +01:00
Markus Adrario 88b444fa5b Add Homee sensor tests (#137200) 2025-02-12 11:35:36 +00:00
Norbert Rittel 487a4ac5c4 Improve field names and descriptions of easyEnergy actions (#138319)
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2025-02-12 11:28:15 +00:00
TimL a3cde3d8ab Fix authentication error when adding new devices to SMLIGHT (#138373)
* Fix authentication issue

Fixes #138216

* Fix incorrect mocks in unsupported device tests

* set _device_name in auth flow also

* Update get_info Mock to handle authentication

* Update tests
2025-02-12 12:22:58 +01:00
Erik Montnemery 6ef1178a35 Use setup_backup_integration test helper in backup tests (#138362) 2025-02-12 09:49:01 +01:00
epenet 2033dbdd90 Use entry.async_on_unload in fireservicerota (#138360) 2025-02-12 09:22:35 +01:00
Erik Montnemery a6c51440e5 Use test helper for creating a mocked backup agent in backup tests (#138312)
* Use test helper for creating a mocked backup agent in backup tests

* Adjust according to discussion
2025-02-12 08:55:16 +01:00
Pete Sage 1393f417ed Expose media_player async_browse_media as service (#116452)
* initial commit

* make fields optional

* x

* ruff issues

* ruff issues

* ruff issues

* ruff issues

* update example

* update description

* use constants

* Update homeassistant/components/media_player/strings.json

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* update service call metadata

* update description

* patch the demo

* Update homeassistant/components/media_player/strings.json

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* revert unrelated change

* update test metadata

* update test metadata

* change patch target to be more specific

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-12 01:06:13 +01:00
Allen Porter da1e3c29ed Update anthropic to use the streaming API (#138256) 2025-02-12 01:05:23 +01:00
Robert Resch 117a71cb67 Bump sentry-sdk to 1.45.1 (#138349) 2025-02-12 01:04:05 +01:00
Abílio Costa 48b8ec01e3 Add logs to Cloud component support package (#138230)
* Add logs to Cloud component support package

* Add section for logs

* Replace list with deque

* Copy the deque to avoid mutation during iteration
2025-02-11 23:05:19 +01:00
rrooggiieerr 0ffbe076be Fix timer.cancel action fires timer.cancelled event even on canceled timers (#134507)
* 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>
2025-02-11 22:08:18 +01:00
Allen Porter 8d5f927b42 Fix next authentication token error handling (#138299) 2025-02-11 21:47:36 +01:00
Erik Montnemery 6abf7b525a Improve test coverage of config subentries and fix related issues (#138321)
Improve test coverage of config subentries
2025-02-11 21:46:56 +01:00
Arie Catsman 6115def083 Bump pyenphase to 1.25.1 (#138327)
* Bump pyenphase to 1.25.1

* Add new opt_schedules to nephase_envoy test fixtures
2025-02-11 21:35:03 +01:00
rrooggiieerr 17089e822e Allow timer.finish on paused timers (#134552)
* Add test for finishing already finished timer

* Add test for finishing a paused timer

* Allow canceled timer to be finished
2025-02-11 21:26:13 +01:00
Norbert Rittel 7a556ac3ec Remove "true" / "false" and key name from yeelight.set_music_mode action (#138334) 2025-02-11 20:48:50 +01:00
Norbert Rittel 857e35b7fd Remove remaining occurrences of "true" / "false" in telegram_bot (#138329)
Make the field description UI-friendly.
2025-02-11 20:22:22 +01:00
epenet 2cea2258a2 Improve type hints in forked_daapd coordinator (#138287) 2025-02-11 18:27:27 +00:00
Norbert Rittel 444b9a9579 Improve user-facing strings of denonavr for better translations (#138322)
- fix sentence-casing for "network receiver" as this should be translated
- change "Ethernet" to upper-case
- replace "True/false for enable/disable" with UI-friendly description
2025-02-11 19:26:59 +01:00
Erik Montnemery fe3d6f93d7 Fix data_entry_flow.UnknownStep error message (#138288) 2025-02-11 18:56:18 +01:00
Joost Lekkerkerker 3489b20e86 Refactor SmartThings sensor platform (#138313) 2025-02-11 18:14:13 +01:00
epenet 8e7f35aa7d Use runtime_data in flo (#138307) 2025-02-11 17:42:58 +01:00
epenet 14e1b55b5a Do not test internals in flo tests (#138306)
* Do not test internals in flo tests

* fix
2025-02-11 17:26:58 +01:00
balazs92117 a85bb98743 Dsmr eon hungary (#138162)
Add EON hungary
2025-02-11 17:25:57 +01:00
RJPoelstra ab1e1c06b6 Set PARALLEL_UPDATES for MotionMount integration (#138264)
Set PARALLEL_UPDATES
2025-02-11 17:22:51 +01:00
Michael Hansen 6226542e4d Keep responding state on wake word start (#138244)
* Keep responding state on wake word start

* Add comment
2025-02-11 10:21:41 -06:00
epenet 7f376ff004 Use runtime_data in flux_led (#138279) 2025-02-11 17:09:06 +01:00
epenet 62b563eb60 Use runtime_data in flexit_bacnet (#138280) 2025-02-11 17:08:39 +01:00
epenet df4c718bac Use runtime_data in fjaraskupan (#138281) 2025-02-11 17:00:44 +01:00
Steven Hartland 1a4738b1d4 Fix scaffolding integration generation (#138247)
* fix(scaffold): integration generation

Fix script.scaffold integration generation which was failing due to
hassfest quality check.

Add the required `quality_scale` to the generated integration
manifest.json.

Use the new `--skip-plugins` flag to skip the hassfest quality check
when generating integrations, as the quality scale rules are marked as
todo, and only run against the generated integration.

Correct typo in help for hassfest command `--plugins` flag.

Update Integration.core method to use absolute path to ensure it returns
the true if the integration is a core integration, which was causing
other checks to fail, as the integration was not being marked as core.

Always output subprocess output as it contains the error message when a
command fails, without this the user would not know why the command
failed.

Fixes: #128639

* Adjust comment language

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-11 16:24:04 +01:00
Erik Montnemery 8b3421deb7 Add test helper for creating a mocked backup agent (#138294)
* Add test helper for creating a mocked backup agent

* Address review comments
2025-02-11 16:21:24 +01:00
Erik Montnemery 10180cd464 Fix BackupManager.async_delete_backup (#138286) 2025-02-11 14:53:07 +01:00
Piotr Buliński 2784a28ef7 Flexit BACnet: Cooker hood mode support (#138229) 2025-02-11 14:39:42 +01:00
Erik Montnemery 31ea2e1714 Improve error reporting in onboarding backup API (#138203) 2025-02-11 13:48:13 +01:00
Erik Montnemery 77486b9306 Improve config_entries tests (#138274)
* Improve config_entries tests

* Drop unnecessary use of OrderedDict
2025-02-11 13:17:54 +01:00
Erik Montnemery 428cc1a951 Update signature of platforms' async_setup_entry in tests (#138271) 2025-02-11 13:17:39 +01:00
Norbert Rittel 89f157592d Simplify the description of insteon.load_all_link_database action (#138275)
This also replaces "true" with "enabled" to better it match the toggle in the UI.
2025-02-11 13:15:11 +02:00
Allen Porter 3578f4ebbf Refresh nest access token before before building subscriber Credentials (#138259) 2025-02-11 11:51:30 +01:00
Christopher Fenner 0d605f9f74 Improve device naming for ViCare integration (#138240)
Update entity.py
2025-02-11 11:42:21 +01:00
Manu e71f8c444b Add user profile info to Habitica sensor and device URL (#137152)
Add user profile attributes to Habitica sensor and device URL
2025-02-11 11:41:11 +01:00
Norbert Rittel d46e29d7a9 Make field descriptions in knx actions UI-friendly (#138268)
- drop `true` / `false` to match the toggle in the UI
- replace `address` key with its friendly name in the UI
2025-02-11 11:36:18 +01:00
Norbert Rittel 24293c5bfe Remove "true" / "false" from field descriptions in osoenergy (#138267)
Make two fields descriptions UI-friendly as there is now a toggle to turn the options on or off.
2025-02-11 11:35:13 +01:00
Norbert Rittel a4decabf3b Remove question marks and "true/false" from action fields in zwave_js (#138263)
- change three field names from a question to just a name
- remove "true" / "false" to reflect that these are toggles in the UI
2025-02-11 09:54:49 +01:00
Erik Montnemery ec0cef0611 Unify error reporting in onboarding backup API (#138200) 2025-02-11 09:47:09 +01:00
Paulus Schoutsen 35416189f2 Remove some unused tests from Google Generative AI (#138249)
* Remove some unused tests from Google Generative AI

* Remove unused snapshots
2025-02-10 18:25:34 -08:00
Diogo Gomes 6102c2b451 Bump pyipma to 3.0.9 (#138238) 2025-02-10 21:03:31 -05:00
Jamin 97a8f24f8e Allow specifying SIP username for outgoing calls (#137059)
* 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.
2025-02-10 19:24:59 -05:00
Erik Montnemery ba583cc669 Add test for trying to add an entity to an unknown config subentry (#138211) 2025-02-10 19:21:43 -05:00
J. Nick Koston b8ec8ab3cc Bump aiodiscover to 2.6.0 (#138239) 2025-02-10 16:25:39 -06:00
Michael Hansen 6bc6111771 Add Wyoming satellite announce (#138221)
* Add Wyoming satellite announce

* Initialize when necessary
2025-02-10 14:36:20 -06:00
Erik Montnemery f83c8de8d3 Update signature of platforms' async_setup_entry (#138201) 2025-02-10 21:08:03 +01:00
Manu dc07f72fc2 Bump habiticalib to v0.3.7 (#137993)
* bump habiticalib to 0.3.6

* bump to v0.3.7
2025-02-10 20:37:54 +01:00
Martin Hjelmare a62619894a Rework ondilo ico coordinator (#138204)
Rework ondilo ico coordinators
2025-02-10 20:36:10 +01:00
Norbert Rittel 20f6bd309e Change light.turn_on and light.turn_off descriptions to match HA style (#138213)
Change light.turn_on and turn_off descriptions to match HA style

Also remove one excessive comma from the light.toggle action description.
2025-02-10 20:34:38 +01:00
Norbert Rittel 12173a9d62 Replace (wrong) xiaomi vacuum action key names with friendly names (#138214)
Replace (wrong) xiaomi action key names with friendly names
2025-02-10 20:34:12 +01:00
Shay Levy 68eb0d81c8 Fix LG webOS TV fails to setup when device is off (#137870) 2025-02-10 20:32:41 +01:00
Manu 5529fbdc94 Allow ignored IronOS devices to be set up from the user flow (#138223) 2025-02-10 21:18:31 +02:00
Andrew Sayre 7aab1de72d Bump pyheos to v1.0.2 (#138224)
Bump pyheos
2025-02-10 21:18:12 +02:00
Bram Kragten c06ad5d799 Update frontend to 20250210.0 (#138227) 2025-02-10 20:11:39 +01:00
dependabot[bot] 21d5c5199c Bump github/codeql-action from 3.28.8 to 3.28.9 (#138184)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.8 to 3.28.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3.28.8...v3.28.9)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-10 20:08:16 +01:00
Markus Adrario 9ca93ebf12 bump pyHomee to 1.2.7 (#138212) 2025-02-10 20:04:57 +01:00
Josef Zweck e3fa739446 Add caching to onedrive (#137950)
* Add caching to onedrive

* Move cache invalidation
2025-02-10 19:52:28 +01:00
Jan Bouwhuis 663860e9c2 Improve description in Intergas entry setup form (#138225)
Improve description in  Intergas entrry setup form
2025-02-10 19:47:41 +01:00
Nathan Spencer 5c0ea9e845 Convert coinbase account amounts as floats to properly add them together (#137588)
Convert coinbase account amounts as floats to properly add
2025-02-10 18:11:40 +02:00
Erik Montnemery e1817d466e Keep one backup per backup agent when executing retention policy (#138189)
* Keep one backup per backup agent when executing retention policy

* Add tests

* Use defaultdict instead of dict.setdefault

* Update hassio tests
2025-02-10 18:09:57 +02:00
Jan-Philipp Benecke 53d011f345 Improve inexogy logging when failed to update (#138210) 2025-02-10 17:59:18 +02:00
Erik Montnemery 4b34d1bbb5 Merge config subentry feature branch to dev (#136121)
* 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>
2025-02-10 16:40:07 +01:00
Nathan Spencer 854af1449b Bump pybalboa to 1.1.2 (#138139)
* Bump pybalboa to 1.1.1

* Bump pybalboa to 1.1.2
2025-02-10 13:50:35 +01:00
epenet 9e04f618b8 Adjust 'Install all test requirements' task to include base requirements (#137642) 2025-02-10 12:11:33 +00:00
Marc Mueller e1d3549ce3 Improve blueprint importer typing (#138194) 2025-02-10 12:53:44 +01:00
Josef Zweck b89f9a5961 Bump onedrive-personal-sdk to 0.0.10 (#138186) 2025-02-10 13:41:28 +02:00
kiran Bhakre de86e4bd3c Add authorities to london_air (#137349)
* Update sensor.py

added Hounslow and hammersmith

* Update sensor.py

maintain the alphabetical order

* Update homeassistant/components/london_air/sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2025-02-10 11:39:48 +01:00
Daniel O'Connor 38b8df8f6f Prevent crash if telegram message failed and did not generate an ID (#137989)
Fix #137901 - Regression introduced in 6fdccda225
2025-02-10 11:47:02 +02:00
pglab-electronics 8c602d74f3 Add pglab integration (#109725)
* 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>
2025-02-10 08:19:42 +01:00
Allen Porter 15223b3679 Update Ollama to use streaming API (#138177)
* Update ollama to use streaming APIs

* Remove unnecessary logging

* Update ollama to use streaming APIs

* Remove unnecessary logging

* Update homeassistant/components/ollama/conversation.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2025-02-09 21:05:41 -08:00
Allen Porter ae38f89728 Update anthropic to use the new chatlog API (#138178)
* 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
2025-02-09 20:42:15 -08:00
Paulus Schoutsen 29c6a2ec13 Add pipeline intent-progress events based on deltas (#138095)
Add intent progress Assist event
2025-02-09 18:09:52 -08:00
Paulus Schoutsen fa3acde684 Make MockChatLog reusable for other integrations (#138112)
* Make MockChatLog reusable for other integrations

* Update tests/components/conversation/__init__.py
2025-02-09 20:19:28 -05:00
Paulus Schoutsen cabb406270 Fix user input not added to chat log from contextvar (#138173) 2025-02-09 16:34:25 -08:00
Abílio Costa c2bb376c43 Handle generic agent exceptions when getting and deleting backups (#138145)
* Handle generic agent exceptions when getting backups

* Update hassio test

* Update delete_backup
2025-02-10 01:31:55 +01:00
Norbert Rittel 2f12187498 Replace duplicate keys with reference, improve field description (#138123)
- replace two fan_speed.name fields with references (analog to the fan_speed.description fields)
- make the description field a little more informative (it presents a slider from 0 to 100 %)
2025-02-10 00:04:00 +01:00
Andrew Jackson 31d2d968c4 Add optional media description to Mastodon post action (#137224)
Add optional media description
2025-02-10 00:01:53 +01:00
Christopher Fenner c8b4e62710 Add battery level sensor for ViCare zigbee devices (#137813)
* add battery level sensor

* add uom

* adapt test case
2025-02-09 23:50:03 +01:00
William Scanlon dafc331e85 Bump pyeconet to 0.1.27 (#136400) 2025-02-09 23:45:33 +01:00
J. Nick Koston 0017192ca4 Bump google-cloud-pubsub to 2.28.0 (#137742)
changelog: https://github.com/googleapis/python-pubsub/compare/v2.23.0...v2.28.0

getting this updates so it will be a smaller bump once
protobuf 6 is supported https://github.com/home-assistant/core/pull/137736
2025-02-09 23:44:17 +01:00
Brynley McDonald 0408e732d7 Add extra tests to flick_electric (#138017)
Add extra tests to flick_electric
2025-02-09 23:40:34 +01:00
Marc Mueller 9467709068 Use generics for deprecation helpers (#138171) 2025-02-09 23:38:58 +01:00
Allen Porter 57ab567d08 Update ollama to use the ChatLog/ChatSession APIs (#138167)
* 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
2025-02-09 16:52:01 -05:00
Regev Brody 379bf10675 Add scene support to roborock (#137203)
* feature: add scene buttons to roborock

* feature: upgrade python-roborock

* feature: upgrade python-roborock

* feature: upgrade python-roborock

* feature: upgrade python-roborock

* feature: upgrade python-roborock

* feature: upgrade python-roborock

* feature: upgrade python-roborock

* feature: upgrade python-roborock

* feature: upgrade python-roborock
2025-02-09 13:39:38 -08:00
jdelaney72 e8e4d2a83c Add unique ID for NOAA Tides sensor (#137988) 2025-02-09 22:32:11 +01:00
Jan Bouwhuis 7678f8fddd Revert "Clear statistics when you unload the Opower integration (#135908)" (#138163)
* Revert "Clear statistics when you unload the Opower integration (#135908)"

This reverts commit aa19207ea4.

* Fix OpowerConfigEntry imports

* Re-add entry type hint  to coordinator
2025-02-09 13:12:04 -08:00
Michael 49968904b2 Explicitly pass in the config_entry in homeassistant_alerts coordinator (#138153)
explicitly pass in the config_entry in coordinator
2025-02-09 22:44:13 +02:00
Michael 08dbd83a55 Explicitly pass in the config_entry in ipp coordinator (#138138)
explicitly pass in the config_entry in coordinator
2025-02-09 22:43:46 +02:00
Michael 427013124c Explicitly pass in the config_entry in iron_os coordinator (#138137)
explicitly pass in the config_entry in coordinator
2025-02-09 22:42:15 +02:00
Michael 5dea4164a5 Explicitly pass in the config_entry in hydrawise coordinator (#138148)
explicitly pass in the config_entry in coordinator
2025-02-09 22:27:47 +02:00
Michael a27dd08a7c Explicitly pass in the config_entry in habitica coordinator (#138156)
explicitly pass in the config_entry in coordinator
2025-02-09 22:26:11 +02:00
Michael 6b24bae084 Explicitly pass in the config_entry in hunterdouglas_powerview coordinator (#138151)
explicitly pass in the config_entry in coordinator
2025-02-09 21:19:57 +01:00
Michael 39bcef63bd Explicitly pass in the config_entry in hko coordinator (#138154)
explicitly pass in the config_entry in coordinator
2025-02-09 22:17:11 +02:00
Michael d9a17506f5 Explicitly pass in the config_entry in here_travel_time coordinator (#138155)
explicitly pass in the config_entry in coordinator
2025-02-09 22:16:05 +02:00
Michael 7c9d30eb06 Explicitly pass in the config_entry in intellifire coordinator (#138143)
explicitly pass in the config_entry in coordinator
2025-02-09 22:14:19 +02:00
Michael 15af006fbe Explicitly pass in the config_entry in iometer coordinator (#138142)
explicitly pass in the config_entry in coordinator
2025-02-09 22:13:54 +02:00
Michael 8c3dab199e Explicitly pass in the config_entry in homewizard coordinator (#138152)
explicitly pass in the config_entry in coordinator
2025-02-09 22:10:21 +02:00
Michael 8c27a75d6b Explicitly pass in the config_entry in husqvarna_automower_ble coordinator (#138150)
explicitly pass in the config_entry in coordinator
2025-02-09 22:08:49 +02:00
IceBotYT 1dbd23eae1 Remove non-existing via_device in La Crosse View (#137995) 2025-02-09 15:06:35 -05:00
Michael ec3e888372 Explicitly pass in the config_entry in husqvarna_automower coordinator (#138149)
explicitly pass in the config_entry in coordinator
2025-02-09 22:05:42 +02:00
Michael b65403f332 Explicitly pass in the config_entry in idasen_desk coordinator (#138146)
explicitly pass in the config_entry in coordinator
2025-02-09 22:04:46 +02:00
Michael 0decb0cfba Explicitly pass in the config_entry in iotawatt coordinator (#138141)
explicitly pass in the config_entry in coordinator
2025-02-09 22:03:19 +02:00
Michael e7d49823e4 Explicitly pass in the config_entry in islamic_prayer_times coordinator (#138133)
explicitly pass in the config_entry in coordinator
2025-02-09 22:01:44 +02:00
Michael 4eccc9d9a4 Explicitly pass in the config_entry in iotty coordinator (#138140)
explicitly pass in the config_entry in coordinator
2025-02-09 22:01:13 +02:00
Michael 733d9de042 Explicitly pass in the config_entry in israel_rail coordinator (#138132)
explicitly pass in the config_entry in coordinator
2025-02-09 21:58:09 +02:00
Michael 52363d5369 Explicitly pass in the config_entry in ialarm coordinator (#138147)
explicitly pass in the config_entry in coordinator
2025-02-09 21:57:24 +02:00
Michael 284a70932e Explicitly pass in the config_entry in lacrosse_view coordinator (#138122)
explicitly pass in the config_entry in coordinator
2025-02-09 20:51:15 +01:00
Michael 4705df9ec8 Explicitly pass in the config_entry in kostal_plenticore coordinator (#138124)
explicitly pass in the config_entry in coordinator
2025-02-09 20:51:02 +01:00
Michael ca77b94565 Explicitly pass in the config_entry in jvc_projector coordinator (#138127)
explicitly pass in the config_entry in coordinator
2025-02-09 20:50:52 +01:00
Michael b9828c5edd Explicitly pass in the config_entry in justnimbus coordinator (#138128)
explicitly pass in the config_entry in coordinator
2025-02-09 20:50:38 +01:00
Michael b533cd3107 Explicitly pass in the config_entry in imgw_pib coordinator (#138144)
explicitly pass in the config_entry in coordinator
2025-02-09 20:50:05 +01:00
Michael 6d2f8b1076 Explicitly pass in the config_entry in jellyfin coordinator (#138129)
explicitly pass in the config_entry in coordinator
2025-02-09 21:30:53 +02:00
Michael fd57803b15 Explicitly pass in the config_entry in ista_ecotrend coordinator (#138130)
explicitly pass in the config_entry in coordinator
2025-02-09 21:29:30 +02:00
Michael db5605223f Explicitly pass in the config_entry in knocki coordinator (#138125)
explicitly pass in the config_entry in coordinator
2025-02-09 21:28:56 +02:00
Michael b6afe130fc Explicitly pass in the config_entry in iskra coordinator (#138134)
explicitly pass in the config_entry in coordinator
2025-02-09 21:27:28 +02:00
Jan Bouwhuis 2dbf475d6f Explicitly pass in the config_entry in incomfort coordinator (#138131) 2025-02-09 20:19:09 +01:00
Michael 56eecf05e7 Explicitly pass in the config_entry in lifx coordinator (#138110)
explicitly pass in the config_entry in coordinator
2025-02-09 21:17:48 +02:00
Michael faf4ad07fc Explicitly pass in the config_entry in lametric coordinator (#138120)
explicitly pass in the config_entry in coordinator
2025-02-09 14:09:11 -05:00
Michael 9e7f8b7bff Explicitly pass in the config_entry in landisgyr_heat_meter coordinator (#138119)
explicitly pass in the config_entry in coordinator
2025-02-09 14:08:59 -05:00
Michael b9fd5d01dd Explicitly pass in the config_entry in lastfm coordinator (#138117)
explicitly pass in the config_entry in coordinator
2025-02-09 14:08:44 -05:00
Michael 8234c9a183 Explicitly pass in the config_entry in laundrify coordinator (#138116)
explicitly pass in the config_entry in coordinator
2025-02-09 14:08:33 -05:00
Michael 9244e84326 Explicitly pass in the config_entry in ld2410_ble coordinator (#138115)
explicitly pass in the config_entry in coordinator
2025-02-09 14:08:23 -05:00
Michael 75cf47be2b Explicitly pass in the config_entry in lektrico coordinator (#138114)
explicitly pass in the config_entry in coordinator
2025-02-09 14:08:13 -05:00
Michael 12c5ad7249 Explicitly pass in the config_entry in lg_thinq coordinator (#138113)
explicitly pass in the config_entry in coordinator
2025-02-09 19:51:13 +01:00
Michael 9be5976807 Explicitly pass in the config_entry in lidarr coordinator (#138111)
explicitly pass in the config_entry in coordinator
2025-02-09 19:41:44 +01:00
Michael e1ed46f593 Explicitly pass in the config_entry in livisi coordinator (#138108)
explicitly pass in the config_entry in coordinator
2025-02-09 19:41:33 +01:00
Michael c81963f464 Explicitly pass in the config_entry in lookin coordinator (#138107)
explicitly pass in the config_entry in coordinator
2025-02-09 18:59:44 +01:00
Michael 0d0e751700 Explicitly pass in the config_entry in squeezebox coordinator (#138105)
explicitly pass in the config_entry in coordinator
2025-02-09 18:59:20 +01:00
Michael eebe182001 Explicitly pass in the config_entry in linear_garage_door coordinator (#138109)
explicitly pass in the config_entry in coordinator
2025-02-09 18:59:00 +01:00
Marc Mueller cd8e1beb37 Limit nordpool ConfigEntrySelect to integration domain (#137768) 2025-02-09 18:57:25 +01:00
Michael 7beb1c0921 Explicitly pass in the config_entry in loqed coordinator (#138106)
explicitly pass in the config_entry in coordinator
2025-02-09 18:53:36 +01:00
Michael 3175cb9c4d Explicitly pass in the config_entry in starlink coordinator (#138103)
explicitly pass in the config_entry in coordinator
2025-02-09 18:52:22 +01:00
Michael 974e1c17d6 Explicitly pass in the config_entry in teslemetry coordinator (#138102)
explicitly pass in the config_entry in coordinator
2025-02-09 18:51:43 +01:00
Michael 233f6416f2 Explicitly pass in the config_entry in nina coordinator (#138069)
* explicitly pass in the config_entry in coordinator

* add accidential removed typing
2025-02-09 18:32:34 +01:00
Allen Porter b1f3068b41 Refresh the nest authentication token on integration start before invoking the pub/sub subsciber (#138003)
* 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>
2025-02-09 12:31:18 -05:00
tronikos 0bd161a45a Use resumable uploads in Google Drive (#138010)
* Use resumable uploads in Google Drive

* tests
2025-02-09 12:30:52 -05:00
Michael 6fe47a0f1b Explicitly pass in the config_entry in overkiz coordinator (#138046)
explicitly pass in the config_entry in coordinator
2025-02-09 17:37:07 +01:00
Michael d0e2a9e0bf Explicitly pass in the config_entry in p1_monitor coordinator (#138045)
explicitly pass in the config_entry in coordinator
2025-02-09 17:36:48 +01:00
Michael 0e4db4265a Explicitly pass in the config_entry in permobil coordinator (#138043)
explicitly pass in the config_entry in coordinator
2025-02-09 17:36:04 +01:00
Michael e3822ed277 Explicitly pass in the config_entry in mastodon coordinator (#138094)
explicitly pass in the config_entry in coordinator
2025-02-09 11:34:20 -05:00
Michael f8d4a63644 Explicitly pass in the config_entry in mealie coordinator (#138093)
explicitly pass in the config_entry in coordinator
2025-02-09 11:34:10 -05:00
Michael af8efadd1b Explicitly pass in the config_entry in melnor coordinator (#138092)
explicitly pass in the config_entry in coordinator
2025-02-09 11:34:00 -05:00
Michael c8f035b5c5 Explicitly pass in the config_entry in met coordinator (#138091)
explicitly pass in the config_entry in coordinator
2025-02-09 11:33:52 -05:00
Michael bd3eec90ba Explicitly pass in the config_entry in microbees coordinator (#138090)
explicitly pass in the config_entry in coordinator
2025-02-09 11:33:38 -05:00
Michael de19f8550f Explicitly pass in the config_entry in mikrotik coordinator (#138089)
explicitly pass in the config_entry in coordinator
2025-02-09 11:33:26 -05:00
Michael e1c222c54e Explicitly pass in the config_entry in mill coordinator (#138088)
explicitly pass in the config_entry in coordinator
2025-02-09 11:33:16 -05:00
Michael 200eb9a63d Explicitly pass in the config_entry in minecraft_server coordinator (#138086)
explicitly pass in the config_entry in coordinator
2025-02-09 11:33:05 -05:00
Michael a60f30509a Explicitly pass in the config_entry in modern_forms coordinator (#138085)
explicitly pass in the config_entry in coordinator
2025-02-09 11:32:55 -05:00
Michael 659032c4d8 Explicitly pass in the config_entry in motion_blinds coordinator (#138080)
explicitly pass in the config_entry in coordinator
2025-02-09 11:32:39 -05:00
Michael 474d8bbd65 Explicitly pass in the config_entry in qbittorrent coordinator (#138029)
explicitly pass in the config_entry in coordinator
2025-02-09 11:32:22 -05:00
Michael 685e882847 Explicitly pass in the config_entry in prusalink coordinator (#138036)
explicitly pass in the config_entry in coordinator
2025-02-09 11:31:52 -05:00
Michael f8169f1110 Explicitly pass in the config_entry in powerfox coordinator (#138037)
explicitly pass in the config_entry in coordinator
2025-02-09 11:31:38 -05:00
Michael cb3a7dc503 Explicitly pass in the config_entry in poolsense coordinator (#138038)
explicitly pass in the config_entry in coordinator
2025-02-09 11:31:24 -05:00
Michael ed3160344d Explicitly pass in the config_entry in plugwise coordinator (#138039)
explicitly pass in the config_entry in coordinator
2025-02-09 11:31:12 -05:00
Michael 8382577ccb Explicitly pass in the config_entry in monzo coordinator (#138081)
explicitly pass in the config_entry in coordinator
2025-02-09 16:34:39 +01:00
Michael 63735da5a0 Explicitly pass in the config_entry in monarch_money coordinator (#138082)
explicitly pass in the config_entry in coordinator
2025-02-09 16:34:30 +01:00
Michael fa1a03ded1 Explicitly pass in the config_entry in moehlenhoff_alpha2 coordinator (#138083)
explicitly pass in the config_entry in coordinator
2025-02-09 16:34:17 +01:00
Michael 020e8fe939 Explicitly pass in the config_entry in opower coordinator (#138048)
explicitly pass in the config_entry in coordinator
2025-02-09 16:33:51 +01:00
Michael 8241429c5e Explicitly pass in the config_entry in nzbget coordinator (#138061)
explicitly pass in the config_entry in coordinator
2025-02-09 16:33:38 +01:00
Michael 7097faa950 Explicitly pass in the config_entry in nyt_games coordinator (#138062)
explicitly pass in the config_entry in coordinator
2025-02-09 16:33:24 +01:00
Michael d66ac97c34 Explicitly pass in the config_entry in nws coordinator (#138063)
explicitly pass in the config_entry in coordinator
2025-02-09 16:33:13 +01:00
Michael 9d6b031bf9 Explicitly pass in the config_entry in nuki coordinator (#138064)
explicitly pass in the config_entry in coordinator
2025-02-09 16:33:03 +01:00
Michael 2bea300a7b Explicitly pass in the config_entry in notion coordinator (#138066)
explicitly pass in the config_entry in coordinator
2025-02-09 16:32:41 +01:00
Michael af3e38a11b Explicitly pass in the config_entry in palazzetti coordinator (#138044)
explicitly pass in the config_entry in coordinator
2025-02-09 16:32:12 +01:00
Michael ac9444a9ba Explicitly pass in the config_entry in nice_go coordinator (#138070)
explicitly pass in the config_entry in coordinator
2025-02-09 16:31:48 +01:00
Michael b7949dba44 Explicitly pass in the config_entry in nibe_heatpump coordinator (#138071)
explicitly pass in the config_entry in coordinator
2025-02-09 16:31:37 +01:00
Michael 2e496411a1 Explicitly pass in the config_entry in nextdns coordinator (#138072)
explicitly pass in the config_entry in coordinator
2025-02-09 16:31:24 +01:00
Michael 5dba229c67 Explicitly pass in the config_entry in netgear_lte coordinator (#138074)
explicitly pass in the config_entry in coordinator
2025-02-09 16:31:11 +01:00
Michael 711d423877 Explicitly pass in the config_entry in nanoleaf coordinator (#138075)
explicitly pass in the config_entry in coordinator
2025-02-09 16:30:55 +01:00
Michael 41532ed509 Explicitly pass in the config_entry in nam coordinator (#138076)
explicitly pass in the config_entry in coordinator
2025-02-09 16:30:41 +01:00
Michael 3792888e9d Explicitly pass in the config_entry in myuplink coordinator (#138078)
explicitly pass in the config_entry in coordinator
2025-02-09 16:30:30 +01:00
Michael 18ea407276 Explicitly pass in the config_entry in nexia coordinator (#138073) 2025-02-09 09:24:28 -06:00
Michael e496270c6b Explicitly pass in the config_entry in qnap coordinator (#138028)
explicitly pass in the config_entry in coordinator
2025-02-09 15:52:58 +01:00
Michael a8c4cc7269 Explicitly pass in the config_entry in rabbitair coordinator (#137985)
explicitly pass in the config_entry in coordinator
2025-02-09 15:52:46 +01:00
Michael 106c5c661e Explicitly pass in the config_entry in radarr coordinator (#137984)
explicitly pass in the config_entry in coordinator
2025-02-09 15:51:10 +01:00
Michael a90d471be0 Explicitly pass in the config_entry in radiotherm coordinator (#137983)
explicitly pass in the config_entry in coordinator
2025-02-09 15:50:57 +01:00
Michael f30018d89e Explicitly pass in the config_entry in rainforest_eagle coordinator (#137981)
explicitly pass in the config_entry in coordinator
2025-02-09 15:50:46 +01:00
Michael 133fdb0ed2 Explicitly pass in the config_entry in teslemetry coordinator (#137907)
explicitly pass in the config_entry in coordinator
2025-02-09 15:50:04 +01:00
Michael 8a7d96919d Explicitly pass in the config_entry in speedtestdotnet coordinator (#137936)
explicitly pass in the config_entry in coordinator
2025-02-09 15:47:19 +01:00
Michael 60a3dbae41 Explicitly pass in the config_entry in sonarr coordinator (#137938)
explicitly pass in the config_entry in coordinator
2025-02-09 15:47:07 +01:00
Michael e4ec217cfa Explicitly pass in the config_entry in tesla_fleet coordinator (#137909)
explicitly pass in the config_entry in coordinator
2025-02-09 15:46:54 +01:00
Michael 017af4fcf8 Explicitly pass in the config_entry in solarlog coordinator (#137939)
explicitly pass in the config_entry in coordinator
2025-02-09 15:46:31 +01:00
Michael d522af729a Explicitly pass in the config_entry in rainmachine coordinator (#137979)
explicitly pass in the config_entry in coordinator
2025-02-09 15:46:12 +01:00
Michael dacb29e7fc Explicitly pass in the config_entry in snapcast coordinator (#137942)
* explicitly pass in the config_entry in coordinator

* break up error message
2025-02-09 15:46:03 +01:00
Michael 2418ef8e8e Explicitly pass in the config_entry in refoss coordinator (#137978)
explicitly pass in the config_entry in coordinator
2025-02-09 15:45:51 +01:00
Michael 4706beb6ef Explicitly pass in the config_entry in renault coordinator (#137977)
explicitly pass in the config_entry in coordinator
2025-02-09 15:44:48 +01:00
Michael 8afc3568fb Explicitly pass in the config_entry in renson coordinator (#137974)
explicitly pass in the config_entry in coordinator
2025-02-09 15:44:31 +01:00
Michael 7b42dc5c35 Explicitly pass in the config_entry in risco coordinator (#137972)
explicitly pass in the config_entry in coordinator
2025-02-09 15:44:18 +01:00
Michael 8f4a466c3d Explicitly pass in the config_entry in rituals_perfume_genie coordinator (#137971)
explicitly pass in the config_entry in coordinator
2025-02-09 15:44:06 +01:00
Michael fa35f29c27 Explicitly pass in the config_entry in roku coordinator (#137968)
explicitly pass in the config_entry in coordinator
2025-02-09 15:43:56 +01:00
Jan Bouwhuis 96b4a71f6f Explicitly pass in the config_entry in imap coordinator (#138068) 2025-02-09 15:43:43 +01:00
Michael 42adc5c1e0 Explicitly pass in the config_entry in schlage coordinator (#137959)
explicitly pass in the config_entry in coordinator
2025-02-09 15:41:52 +01:00
Michael 7d4888920a Explicitly pass in the config_entry in ruckus_unleashed coordinator (#137965)
explicitly pass in the config_entry in coordinator
2025-02-09 15:35:46 +01:00
Michael 5464e245a2 Explicitly pass in the config_entry in ruuvi_gateway coordinator (#137964)
explicitly pass in the config_entry in coordinator
2025-02-09 15:35:34 +01:00
Michael 71d47aef2e Explicitly pass in the config_entry in sense coordinator (#137958)
explicitly pass in the config_entry in coordinator
2025-02-09 15:33:43 +01:00
Michael 7fec225e79 Explicitly pass in the config_entry in sensoterra coordinator (#137957)
explicitly pass in the config_entry in coordinator
2025-02-09 15:33:29 +01:00
Michael 00803f98d4 Explicitly pass in the config_entry in sfr_box coordinator (#137955)
explicitly pass in the config_entry in coordinator
2025-02-09 15:33:09 +01:00
Michael 8073bccc87 Explicitly pass in the config_entry in sharkiq coordinator (#137954)
explicitly pass in the config_entry in coordinator
2025-02-09 15:32:56 +01:00
Michael e163c15bb9 Explicitly pass in the config_entry in ourgroceries coordinator (#138047)
explicitly pass in the config_entry in coordinator
2025-02-09 15:32:31 +01:00
Michael 9110557e36 Explicitly pass in the config_entry in smlight coordinator (#137943)
explicitly pass in the config_entry in coordinator
2025-02-09 15:32:18 +01:00
Michael cc37ff9221 Bump py-synologydsm-api to 2.6.2 (#138060)
bump py-synologydsm-api to 2.6.2
2025-02-09 15:30:48 +01:00
Michael c3fae96bcf Explicitly pass in the config_entry in openweathermap coordinator (#138049)
explicitly pass in the config_entry in coordinator
2025-02-09 16:07:10 +02:00
Michael 6cdc3acffb Explicitly pass in the config_entry in plaato coordinator (#138040)
explicitly pass in the config_entry in coordinator
2025-02-09 16:02:55 +02:00
Michael 15b8687c53 Explicitly pass in the config_entry in pure_energie coordinator (#138035)
explicitly pass in the config_entry in coordinator
2025-02-09 16:02:18 +02:00
Michael 7e2eef7079 Explicitly pass in the config_entry in pvoutput coordinator (#138033)
explicitly pass in the config_entry in coordinator
2025-02-09 16:01:28 +02:00
Michael 552a5b1bb1 Explicitly pass in the config_entry in pyload coordinator (#138031)
explicitly pass in the config_entry in coordinator
2025-02-09 15:56:17 +02:00
Michael 62461d7525 Explicitly pass in the config_entry in spotify coordinator (#137935)
explicitly pass in the config_entry in coordinator
2025-02-09 14:55:16 +01:00
Michael 1976fdfa55 Explicitly pass in the config_entry in squeezebox coordinator (#137934)
explicitly pass in the config_entry in coordinator
2025-02-09 14:54:46 +01:00
Michael 51d3e449ab Explicitly pass in the config_entry in srp_energy coordinator (#137933)
explicitly pass in the config_entry in coordinator
2025-02-09 14:54:26 +01:00
Michael 9c5928c2d0 Explicitly pass in the config_entry in opensky coordinator (#138051)
explicitly pass in the config_entry in coordinator
2025-02-09 15:54:04 +02:00
Michael 64cbf44da7 Explicitly pass in the config_entry in purpleair coordinator (#138034)
explicitly pass in the config_entry in coordinator
2025-02-09 15:53:52 +02:00
Michael 91c95efb96 Explicitly pass in the config_entry in openuv coordinator (#138050)
explicitly pass in the config_entry in coordinator
2025-02-09 15:53:00 +02:00
Michael 906beb48a4 Explicitly pass in the config_entry in starlink coordinator (#137932)
explicitly pass in the config_entry in coordinator
2025-02-09 14:52:37 +01:00
Michael 6d776469d2 Explicitly pass in the config_entry in opengarage coordinator (#138052)
explicitly pass in the config_entry in coordinator
2025-02-09 15:52:19 +02:00
Michael e050238106 Explicitly pass in the config_entry in ondilo_ico coordinator (#138054)
explicitly pass in the config_entry in coordinator
2025-02-09 15:51:58 +02:00
Michael a0e7560b1e Explicitly pass in the config_entry in switchbot_cloud coordinator (#137922)
explicitly pass in the config_entry in coordinator
2025-02-09 14:51:29 +01:00
Michael 7eb0171657 Explicitly pass in the config_entry in system_bridge coordinator (#137921)
explicitly pass in the config_entry in coordinator
2025-02-09 14:51:12 +01:00
Michael fb0db36886 Explicitly pass in the config_entry in tailscale coordinator (#137913)
explicitly pass in the config_entry in coordinator
2025-02-09 14:50:57 +01:00
Michael 390af71c49 Explicitly pass in the config_entry in ohme coordinator (#138055)
explicitly pass in the config_entry in coordinator
2025-02-09 15:49:55 +02:00
Michael d92e2194d0 Explicitly pass in the config_entry in tami4 coordinator (#137912)
explicitly pass in the config_entry in coordinator
2025-02-09 14:48:38 +01:00
Michael 583b2e285b Explicitly pass in the config_entry in tautulli coordinator (#137911)
explicitly pass in the config_entry in coordinator
2025-02-09 14:48:27 +01:00
Michael 242bbaeff9 Explicitly pass in the config_entry in technove coordinator (#137910)
explicitly pass in the config_entry in coordinator
2025-02-09 14:48:15 +01:00
Michael ac3eead8ac Explicitly pass in the config_entry in ping coordinator (#138041)
explicitly pass in the config_entry in coordinator
2025-02-09 14:44:37 +01:00
Michael 4c331d3942 Explicitly pass in the config_entry in qnap_qsw coordinator (#138027)
explicitly pass in the config_entry in coordinator
2025-02-09 14:43:29 +01:00
Michael 0baa6b3668 Explicitly pass in the config_entry in tessie coordinator (#137906)
explicitly pass in the config_entry in coordinator
2025-02-09 14:42:04 +01:00
Michael 4646d35054 Explicitly pass in the config_entry in venstar coordinator (#137880)
* explicitly pass in the config_entry in coordinator

* use common name config_entry
2025-02-09 14:37:31 +01:00
Michael 4031f85acc Explicitly pass in the config_entry in thethingsnetwork coordinator (#137905)
explicitly pass in the config_entry in coordinator
2025-02-09 14:34:36 +01:00
Michael 794143c32f Explicitly pass in the config_entry in tibber coordinator (#137904)
explicitly pass in the config_entry in coordinator
2025-02-09 14:33:54 +01:00
Michael eb81c935ce Explicitly pass in the config_entry in tolo coordinator (#137902)
explicitly pass in the config_entry in coordinator
2025-02-09 14:33:40 +01:00
Michael 14733de68c Explicitly pass in the config_entry in tomorrowio coordinator (#137900)
explicitly pass in the config_entry in coordinator
2025-02-09 14:33:25 +01:00
Michael 028c74e488 Explicitly pass in the config_entry in totalconnect coordinator (#137898)
explicitly pass in the config_entry in coordinator
2025-02-09 14:33:13 +01:00
Michael 89e29dd14f Explicitly pass in the config_entry in tplink_omada coordinator (#137895)
explicitly pass in the config_entry in coordinator
2025-02-09 14:32:36 +01:00
Michael d71a539fbc Explicitly pass in the config_entry in touchline_sl coordinator (#137897)
explicitly pass in the config_entry in coordinator
2025-02-09 14:27:04 +01:00
Michael 8a7ee039d1 Explicitly pass in the config_entry in traccar_server coordinator (#137893)
explicitly pass in the config_entry in coordinator
2025-02-09 14:26:39 +01:00
Michael 7986e0fec1 Explicitly pass in the config_entry in tradfri coordinator (#137892)
explicitly pass in the config_entry in coordinator
2025-02-09 14:26:27 +01:00
Michael cce03d2ee7 Explicitly pass in the config_entry in transmission coordinator (#137891)
explicitly pass in the config_entry in coordinator
2025-02-09 14:26:09 +01:00
Michael 3153c54d1a Explicitly pass in the config_entry in twinkly coordinator (#137889)
explicitly pass in the config_entry in coordinator
2025-02-09 14:25:55 +01:00
Michael b54b90a604 Explicitly pass in the config_entry in ukraine_alarm coordinator (#137886)
explicitly pass in the config_entry in coordinator
2025-02-09 14:25:43 +01:00
Michael 0cbec3c4bb Explicitly pass in the config_entry in vallox coordinator (#137881)
explicitly pass in the config_entry in coordinator
2025-02-09 14:25:27 +01:00
Michael e092937c00 Explicitly pass in the config_entry in version coordinator (#137877)
explicitly pass in the config_entry in coordinator
2025-02-09 14:25:06 +01:00
Michael a2f1501943 Explicitly pass in the config_entry in yamaha_musiccast coordinator (#137863)
explicitly pass in the config_entry in coordinator
2025-02-09 14:24:55 +01:00
Michael 282c2c6a29 Explicitly pass in the config_entry in octoprint coordinator (#138056)
explicitly pass in the config_entry in coordinator
2025-02-09 15:24:43 +02:00
Michael f464aee33a Explicitly pass in the config_entry in wemo coordinator (#137867)
explicitly pass in the config_entry in coordinator
2025-02-09 14:04:34 +01:00
Michael 0ecff272f2 Explicitly pass in the config_entry in withings coordinator (#137866)
explicitly pass in the config_entry in coordinator
2025-02-09 14:04:14 +01:00
Michael 4d5987fa80 Explicitly pass in the config_entry in philips_js coordinator (#138042)
explicitly pass in the config_entry in coordinator
2025-02-09 13:56:35 +01:00
Michael 28f83cefda Explicitly pass in the config_entry in openexchangerates coordinator (#138053)
explicitly pass in the config_entry in coordinator
2025-02-09 13:55:55 +01:00
Maciej Bieniek 62f9d9e6d3 Bump aioshelly to version 12.4.2 (#137986) 2025-02-09 13:51:02 +01:00
Michael 6cebc0e25f Explicitly pass in the config_entry in pvpc_hourly_pricing coordinator (#138032)
explicitly pass in the config_entry in coordinator
2025-02-09 12:57:48 +01:00
J. Diego Rodríguez Royo 4a8c96471b Raise ConfigEntryAuthFailed at Home Connect update auth error (#136953)
* Raise `ConfigEntryAuthFailed` on `UnauthorizedError` handling

* Implement reauth flow

* Add tests

* Remove unnecessary code from tests
2025-02-09 12:36:08 +01:00
Norbert Rittel 80cff85c14 Fix sentence-casing in user-facing strings of screenlogic (#138015) 2025-02-09 10:55:27 +01:00
Paulus Schoutsen df307aeb6d Stream OpenAI messages into the chat log (#137400) 2025-02-09 00:01:24 -05:00
Michael a526baa831 Explicitly pass in the config_entry in roborock coordinator (#137970)
explicitly pass in the config_entry in coordinator
2025-02-08 20:53:44 -08:00
Marc Mueller 6e84280e3c Small typing improvements (#137994) 2025-02-09 04:37:49 +01:00
Michael 932c2f794e Explicitly pass in the config_entry in rainbird coordinator (#137982)
explicitly pass in the config_entry in coordinator
2025-02-08 19:29:36 -08:00
Michael 54c4ee7838 Explicitly pass in the config_entry in vizio coordinator (#137876)
explicitly pass in the config_entry in coordinator
2025-02-09 00:40:14 +01:00
Michael 7ec7badef6 Explicitly pass in the config_entry in volvooncall coordinator (#137875)
explicitly pass in the config_entry in coordinator
2025-02-09 00:39:42 +01:00
Michael 17569d8186 Explicitly pass in the config_entry in wallbox coordinator (#137874)
explicitly pass in the config_entry in coordinator
2025-02-09 00:39:11 +01:00
David Knowles 50c15f3056 Bump pydrawise to 2025.2.0 (#137961) 2025-02-08 23:29:18 +02:00
Michael bdcf2a1e56 Explicitly pass in the config_entry in ridwell coordinator (#137973)
explicitly pass in the config_entry in coordinator
2025-02-08 23:18:55 +02:00
Steve Sinchak 20707b94b5 Improve emulated_hue logging to identify bad devices (#137919)
* Improve emulated_hue logging to identify bad devices

* Updated per @bdraco request
2025-02-08 22:12:51 +01:00
Michael 361933091c Explicitly pass in the config_entry in rova coordinator (#137966)
explicitly pass in the config_entry in coordinator
2025-02-08 22:04:38 +01:00
Michael f643f76f1f Explicitly pass in the config_entry in upnp coordinator (#137885)
explicitly pass in the config_entry in coordinator
2025-02-08 22:03:40 +01:00
Michael 999badf675 Explicitly pass in the config_entry in toon coordinator (#137899)
explicitly pass in the config_entry in coordinator
2025-02-08 22:02:30 +01:00
Michael dfa2c218e4 Explicitly pass in the config_entry in verisure coordinator (#137879)
explicitly pass in the config_entry in coordinator
2025-02-08 22:00:36 +01:00
Michael 52fb99f967 Explicitly pass in the config_entry in weatherflow_cloud coordinator (#137871)
explicitly pass in the config_entry in coordinator
2025-02-08 21:58:33 +01:00
Michael a2a55d9ff0 Explicitly pass in the config_entry in weatherkit coordinator (#137869)
explicitly pass in the config_entry in coordinator
2025-02-08 21:57:41 +01:00
Michael b338de9a30 Explicitly pass in the config_entry in tado coordinator (#137916)
explicitly pass in the config_entry in coordinator
2025-02-08 21:57:03 +01:00
Michael c47a97a4f0 Explicitly pass in the config_entry in romy coordinator (#137967)
explicitly pass in the config_entry in coordinator
2025-02-08 22:54:12 +02:00
Michael 2ef4e75014 Explicitly pass in the config_entry in yolink coordinator (#137861)
explicitly pass in the config_entry in coordinator
2025-02-08 21:51:28 +01:00
Michael 07e9d80607 Explicitly pass in the config_entry in weheat coordinator (#137868)
explicitly pass in the config_entry in coordinator
2025-02-08 21:46:05 +01:00
Michael a59d829e6a Explicitly pass in the config_entry in seventeentrack coordinator (#137956)
explicitly pass in the config_entry in coordinator
2025-02-08 22:40:51 +02:00
Michael b512838d1e Explicitly pass in the config_entry in smarty coordinator (#137944)
explicitly pass in the config_entry in coordinator
2025-02-08 22:39:15 +02:00
Michael 13dbeed5c2 Explicitly pass in the config_entry in stookwijzer coordinator (#137928)
explicitly pass in the config_entry in coordinator
2025-02-08 22:36:59 +02:00
Michael 071b46055b Explicitly pass in the config_entry in steam_online coordinator (#137929)
explicitly pass in the config_entry in coordinator
2025-02-08 22:36:14 +02:00
Michael 93dad987f8 Explicitly pass in the config_entry in sanix coordinator (#137960)
explicitly pass in the config_entry in coordinator
2025-02-08 22:35:19 +02:00
Michael 61ce1fc009 Explicitly pass in the config_entry in samsungtv coordinator (#137962)
explicitly pass in the config_entry in coordinator
2025-02-08 22:33:36 +02:00
Michael 12072b625c Explicitly pass in the config_entry in solaredge coordinator (#137941)
explicitly pass in the config_entry in coordinator
2025-02-08 21:28:48 +01:00
Michael beb5c3b838 Explicitly pass in the config_entry in slide_local coordinator (#137945)
explicitly pass in the config_entry in coordinator
2025-02-08 21:27:20 +01:00
Michael c17007e17b Explicitly pass in the config_entry in xbox coordinator (#137864)
explicitly pass in the config_entry in coordinator
2025-02-08 21:25:48 +01:00
Michael 3ec872fbfe Explicitly pass in the config_entry in yardian coordinator (#137862)
explicitly pass in the config_entry in coordinator
2025-02-08 21:25:10 +01:00
Michael bcc3e6d31c Explicitly pass in the config_entry in streamlabswater coordinator (#137927)
explicitly pass in the config_entry in coordinator
2025-02-08 22:19:38 +02:00
Michael 43569df537 Explicitly pass in the config_entry in switchbee coordinator (#137923)
explicitly pass in the config_entry in coordinator
2025-02-08 22:19:08 +02:00
Michael a7dbcf72c2 Explicitly pass in the config_entry in swiss_public_transport coordinator (#137924)
explicitly pass in the config_entry in coordinator
2025-02-08 22:14:47 +02:00
Michael 022119e74f Explicitly pass in the config_entry in surepetcare coordinator (#137926)
explicitly pass in the config_entry in coordinator
2025-02-08 22:12:10 +02:00
Michael 5871ece4df Explicitly pass in the config_entry in shelly coordinator (#137951)
explicitly pass in the config_entry in coordinator
2025-02-08 22:11:30 +02:00
Glenn Vandeuren (aka Iondependent) 6eea232a23 Bump nhc to 0.4.10 (#137903) 2025-02-08 20:57:56 +01:00
Piotr Buliński 848ee762a7 Add support for fireplace mode control for flexit_bacnet integration (#137594) 2025-02-08 20:54:13 +01:00
Michael 1374fb23db Explicitly pass in the config_entry in sleepiq coordinator (#137946)
explicitly pass in the config_entry in coordinator
2025-02-08 21:42:44 +02:00
Michael 22d6913bc5 Explicitly pass in the config_entry in simplefin coordinator (#137948)
explicitly pass in the config_entry in coordinator
2025-02-08 21:40:51 +02:00
Norbert Rittel 743873b2e9 Fix spelling of "Wi-Fi" in keenetic_ndms2 integration (#137920) 2025-02-08 21:38:28 +02:00
Norbert Rittel 2db6860b60 Fix three action descriptions in xiaomi_miio (#137918)
* Update strings.json

* Change "a robot" to "the robot"

Co-authored-by: Sebastian Muszynski <basti@linkt.de>

---------

Co-authored-by: Sebastian Muszynski <basti@linkt.de>
2025-02-08 21:36:37 +02:00
Manu 074500dc8a Bump bring-api to version 1.0.2 (#137925) 2025-02-08 21:35:41 +02:00
Michael cfb062a5a4 Explicitly pass in the config_entry in skybell coordinator (#137947)
explicitly pass in the config_entry in coordinator
2025-02-08 21:33:50 +02:00
Michael e698e436d6 Explicitly pass in the config_entry in uptimerobot coordinator (#137883)
explicitly pass in the config_entry in coordinator
2025-02-08 20:25:14 +01:00
Michael 32d13f3356 Explicitly pass in the config_entry in steamist coordinator (#137930)
explicitly pass in the config_entry in coordinator
2025-02-08 20:24:38 +01:00
Norbert Rittel ed8ee34a28 Fix sentence-casing and description of homekit.reload action (#137894) 2025-02-08 12:24:14 -06:00
Michael 8fcc1f7e10 Explicitly pass in the config_entry in v2c coordinator (#137882)
explicitly pass in the config_entry in coordinator
2025-02-08 18:51:39 +01:00
Paulus Schoutsen 907826e909 Fix heos migration (#137887)
* Fix heos migration

* Fix for loop
2025-02-08 11:56:23 -05:00
Martin Hjelmare bd32a6ab83 Prolong ondilo ico update interval (#137888) 2025-02-08 17:54:48 +01:00
Michael 219b5324e9 Explicitly pass in the config_entry in watergate coordinator (#137872)
explicitly pass in the config_entry in coordinator
2025-02-08 17:21:17 +01:00
Michael 3cce2d679c Explicitly pass in the config_entry in waqi coordinator (#137873)
explicitly pass in the config_entry in coordinator
2025-02-08 17:21:09 +01:00
Michael 5ade026b87 Explicitly pass in the config_entry in ws66i coordinator (#137865)
explicitly pass in the config_entry in coordinator
2025-02-08 16:45:57 +01:00
Michael d07c2b8226 Explicitly pass in the config_entry in youtube coordinator (#137859)
explicitly pass in the config_entry in coordinator
2025-02-08 16:45:36 +01:00
Michael 367dafdfe7 Explicitly pass in the config_entry in zeversolar coordinator (#137857)
explicitly pass in the config_entry in coordinator
2025-02-08 16:45:23 +01:00
Michael 8976e7f4ea Explicitly pass in the config_entry in zamg coordinator (#137858)
explicitly pass in the config_entry in coordinator
2025-02-08 17:33:46 +02:00
J. Diego Rodríguez Royo 91dbe3092f Only allow single Home Connect config entry (#137088)
* 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
2025-02-08 16:29:00 +01:00
Bouwe Westerdijk 7f6855045a Bump plugwise to v1.7.1 and adapt (#137599)
* Bump plugwise v1.7.1

* Refresh test-fixtures

* Adapt integration code

* Adapt test code

* Fixes

* Save updated snapshot

* Ruff fixes

* More ruff fixes
2025-02-08 17:02:24 +02:00
jdelaney72 303ab750ab Bump noaa-coops to version 0.4.0 (#137777)
Bump noaa-coops 0.4.0
https://github.com/GClunies/noaa_coops/compare/2cd2fca..0972373
2025-02-08 15:56:54 +01:00
epenet 58eb8e1598 Move ForkedDaapdUpdater to separate module (#137654)
* Move ForkedDaapdUpdater to separate module

* Remove moved constants
2025-02-08 15:52:30 +01:00
Artur Pragacz 8ddae828f7 Fix DAB radio in Onkyo (#137852) 2025-02-08 15:51:05 +01:00
Franck Nijhof 7bf81037c1 Add Peblar charge switch (#137853)
* Add Peblar charge switch

* Update snapshots
2025-02-08 15:48:31 +01:00
J. Nick Koston eab510f440 Fix tplink child updates taking up to 60s (#137782)
* Fix tplink child updates taking up to 60s

fixes #137562

* Fix tplink child updates taking up to 60s

fixes #137562

* Fix tplink child updates taking up to 60s

fixes #137562

* Fix tplink child updates taking up to 60s

fixes #137562

* Fix tplink child updates taking up to 60s

fixes #137562

* Fix tplink child updates taking up to 60s

fixes #137562

* Fix tplink child updates taking up to 60s

fixes #137562

* Revert "Fix tplink child updates taking up to 60s"

This reverts commit 5cd20a120f.
2025-02-08 15:47:01 +01:00
David Bonnes a542a2e021 Refactor evohome for major bump of client to 1.0.2 (#135436)
* working test_init

* update fixtures to be compliant with new schema

* test_storage is now working

* all tests passing

* bump client to 1.0.1b0

* test commit (working tests)

* use only id (not e.g. zoneId), use StrEnums

* mypy, lint

* remove deprecated module

* remove waffle

* improve typing of asserts

* broker is now coordinator

* WIP - test failing

* rename class

* remove unneeded async_dispatcher_send()

* restore missing code

* harden test

* bugfix failing test

* don't capture blind except

* shrink log messages

* doctweak

* rationalize asserts

* remove unneeded listerner

* refactor setup

* bump client to 1.0.2b0

* bump client to 1.0.2b1

* refactor extended state attrs

* pass UpdateFailed to _async_refresh()

* Update homeassistant/components/evohome/entity.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update homeassistant/components/evohome/entity.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* not even lint

* undo not even lint

* remove unused logger

* restore old namespace for e_s_a

* minimize diff

* doctweak

* remove unused method

* lint

* DUC now working

* restore old camelCase keynames

* tweak

* small tweak to _handle_coordinator_update()

* Update homeassistant/components/evohome/coordinator.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* add test of coordinator

* bump client to 1.0.2

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-08 14:45:48 +00:00
Michael 21dd6fa53d Explicitly pass in the config_entry in flick_electric coordinator (#137816)
* explicitly pass in the config_entry in coordinator

* Apply suggestions from code review

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2025-02-08 15:43:03 +01:00
Patrick 97cde37702 Fix manufacturer_id matching for 0 (#137802)
fix manufacturer_id matching for 0
2025-02-08 15:40:59 +01:00
Norbert Rittel dbf403a2d3 Make action descriptions in adguard consistent, remove "true/false" (#137799)
* Make action descriptions in adguard consistent

Change the remaining two to also use third-person singular for consistency.

* Remove "true" and "false" for UI-friendly wording
2025-02-08 15:39:36 +01:00
Michael 11d5628da7 Explicitly pass in the config_entry in google_photos coordinator (#137840)
explicitly pass in the config_entry in coordinator
2025-02-08 15:35:00 +01:00
Michael 9e091f7a73 Explicitly pass in the config_entry in google coordinator (#137839)
explicitly pass in the config_entry in coordinator
2025-02-08 15:34:53 +01:00
Michael 70d5685b72 Explicitly pass in the config_entry in geocaching coordinator (#137831)
explicitly pass in the config_entry in coordinator
2025-02-08 09:34:43 -05:00
Michael 7c9312b3cf Explicitly pass in the config_entry in goodwe coordinator (#137838)
explicitly pass in the config_entry in coordinator
2025-02-08 15:34:34 +01:00
Michael 1179278d50 Explicitly pass in the config_entry in fully_kiosk coordinator (#137827)
explicitly pass in the config_entry in coordinator
2025-02-08 15:34:12 +01:00
Michael bc07598f47 Explicitly pass in the config_entry in fujitsu_fglair coordinator (#137826)
explicitly pass in the config_entry in coordinator
2025-02-08 15:33:55 +01:00
Michael 04c20b9534 Explicitly pass in the config_entry in fyta coordinator (#137828)
explicitly pass in the config_entry in coordinator
2025-02-08 09:33:52 -05:00
Michael e8e4fb296b Explicitly pass in the config_entry in flux_led coordinator (#137823)
explicitly pass in the config_entry in coordinator
2025-02-08 15:33:42 +01:00
Michael 846797a394 Explicitly pass in the config_entry in google_tasks coordinator (#137842)
explicitly pass in the config_entry in coordinator
2025-02-08 09:33:21 -05:00
Michael c9ffeb8007 Explicitly pass in the config_entry in flipr coordinator (#137818)
explicitly pass in the config_entry in coordinator
2025-02-08 15:33:10 +01:00
Michael d97ef67620 Explicitly pass in the config_entry in gios coordinator (#137832)
explicitly pass in the config_entry in coordinator
2025-02-08 15:32:46 +01:00
Michael b22830260c Explicitly pass in the config_entry in filesize coordinator (#137807)
explicitly pass in the config_entry in coordinator
2025-02-08 15:32:32 +01:00
Michael de1a503284 Explicitly pass in the config_entry in enphase envoy coordinator (#137806)
explicitly pass in the config_entry in coordinator
2025-02-08 15:32:20 +01:00
Michael 780e6aa073 Explicitly pass in the config_entry in awair coordinator init (#137717)
explicitly pass in the config_entry in awair coordinator init
2025-02-08 15:32:11 +01:00
tronikos f3aeca5a71 Call backup listener during setup in Google Drive (#137789) 2025-02-08 14:53:15 +01:00
Marc Mueller 60d966f06f Limit transmission ConfigEntrySelect to integration domain (#137769) 2025-02-08 14:20:30 +01:00
Piotr Buliński 37239fca44 Update flexit_bacnet dependecy 2.2.1 -> 2.2.3 (#137730) 2025-02-08 14:13:58 +01:00
Michael daccb3e9b3 Explicitly pass in the config_entry in fitbit coordinator (#137808)
explicitly pass in the config_entry in coordinator
2025-02-08 15:06:50 +02:00
Michael 78fce5112d Explicitly pass in the config_entry in guardian coordinator (#137848)
explicitly pass in the config_entry in coordinator
2025-02-08 14:00:50 +01:00
Dan Raper de79fb26db Bump ohmepy to 1.2.9 (#137695) 2025-02-08 14:52:59 +02:00
Allen Porter ce66b47653 Update fitbit quality scale for runtime-data (#137785) 2025-02-08 14:52:28 +02:00
Christopher Fenner 074d384d27 Bump PyViCare to 2.42.0 (#137804) 2025-02-08 14:51:00 +02:00
Michael ad9d43bc50 Explicitly pass in the config_entry in duke_energy coordinator (#137741)
explicitly pass in the config_entry in coordinator
2025-02-08 13:46:59 +01:00
Michael 9e8f2e81bd Explicitly pass in the config_entry in enphase flexit_bacnet coordinator (#137814)
explicitly pass in the config_entry in coordinator
2025-02-08 13:43:28 +01:00
Joris Pelgröm fae2c94c74 Add snapshot tests for setup of LetPot platforms (#137756) 2025-02-08 13:42:43 +01:00
Michael 1c7bf9f589 Explicitly pass in the config_entry in enigma2 coordinator (#137739)
explicitly pass in the config_entry in coordinator
2025-02-08 13:22:37 +01:00
Michael 88a2b2ab90 Explicitly pass in the config_entry in deluge coordinator (#137733)
explicitly pass in the config_entry in coordinator
2025-02-08 13:22:00 +01:00
Michael 2d72b814d6 Explicitly pass in the config_entry in cert_expiry coordinator init (#137728)
explicitly pass in the config_entry in cert_expiry coordinator init
2025-02-08 13:21:13 +01:00
Marc Mueller 0a842d171b Limit habitica ConfigEntrySelect to integration domain (#137767) 2025-02-08 13:20:30 +01:00
Michael 2f0e661569 Explicitly pass in the config_entry in apsystems coordinator init (#137708)
explicitly pass in the config_entry in apsystems coordinator init
2025-02-08 13:19:06 +01:00
Michael 239408aa5d Explicitly pass in the config_entry in garages_amsterdam coordinator (#137829)
explicitly pass in the config_entry in coordinator
2025-02-08 13:17:42 +01:00
Michael 13f6f045f5 Explicitly pass in the config_entry in github coordinator (#137834)
explicitly pass in the config_entry in coordinator
2025-02-08 13:17:25 +01:00
Michael 0efdceef27 Explicitly pass in the config_entry in glances coordinator (#137835)
explicitly pass in the config_entry in coordinator
2025-02-08 13:17:06 +01:00
Michael 9bdd8d04c5 Explicitly pass in the config_entry in goalzero coordinator (#137836)
explicitly pass in the config_entry in coordinator
2025-02-08 13:16:49 +01:00
Michael 39d6aaf294 Explicitly pass in the config_entry in gogogate2 coordinator (#137837)
explicitly pass in the config_entry in coordinator
2025-02-08 13:16:32 +01:00
Michael 2634f0aba0 Explicitly pass in the config_entry in atag coordinator init (#137716)
explicitly pass in the config_entry in atag coordinator init
2025-02-08 13:16:16 +01:00
Michael 5e99b06126 Explicitly pass in the config_entry in forecast_solar coordinator (#137824)
explicitly pass in the config_entry in coordinator
2025-02-08 13:16:03 +01:00
Michael 0b1afc68b0 Explicitly pass in the config_entry in flume coordinator (#137822)
explicitly pass in the config_entry in coordinator
2025-02-08 13:15:50 +01:00
Michael f8ac48fc78 Explicitly pass in the config_entry in flo coordinator (#137819)
explicitly pass in the config_entry in coordinator
2025-02-08 13:15:37 +01:00
Michael 86e44fc1cf Explicitly pass in the config_entry in govee_light_local coordinator (#137843)
explicitly pass in the config_entry in coordinator
2025-02-08 13:15:24 +01:00
Michael 36a0c49cee Explicitly pass in the config_entry in gree coordinator (#137844)
explicitly pass in the config_entry in coordinator
2025-02-08 13:15:13 +01:00
Michael a797b09bcb Explicitly pass in the config_entry in gardena_bluetooth coordinator (#137830)
explicitly pass in the config_entry in coordinator
2025-02-08 12:47:57 +01:00
Michael 4893cdaa80 Explicitly pass in the config_entry in aurora coordinator init (#137714)
explicitly pass in the config_entry in aurora coordinator init
2025-02-08 12:47:36 +01:00
Michael 92234f86e8 Explicitly pass in the config_entry in aseko_pool_live coordinator init (#137711)
explicitly pass in the config_entry in aseko_pool_live coordinator init
2025-02-08 12:46:51 +01:00
Michael c71116cc12 Explicitly pass in the config_entry in aosmith coordinator init (#137710)
explicitly pass in the config_entry in aosmith coordinator init
2025-02-08 12:46:05 +01:00
Michael af87e36048 Explicitly pass in the config_entry in fjaraskupan coordinator (#137825)
explicitly pass in the config_entry in coordinator
2025-02-08 12:12:07 +01:00
Michael 1522f7b3a8 Explicitly pass in the config_entry in airzone_cloud coordinator init (#137703)
explicitly pass in the config_entry in airzone_cloud coordinator init
2025-02-08 12:03:26 +01:00
Michael 32ef37cd58 Explicitly pass in the config_entry in airq coordinator init (#137704)
explicitly pass in the config_entry in airq coordinator init
2025-02-08 11:48:55 +01:00
Michael 327811c89a Explicitly pass in the config_entry in co2signal coordinator (#137732)
explicitly pass in the config_entry in coordinator
2025-02-08 10:53:13 +01:00
tronikos c370fa0489 Use the external URL set in Settings > System > Network if my is disabled as redirect URL for Google Drive instructions (#137791)
* Use the Assistant URL set in Settings > System > Network if my is disabled

* fix

* Remove async_get_redirect_uri
2025-02-08 01:16:10 -08:00
Artur Pragacz ae55e26546 Group helpers of set_up_integrations in bootstrap (#137673) 2025-02-08 10:07:22 +01:00
Marc Mueller 6cb0201031 Limit google_sheets ConfigEntrySelect to integration domain (#137766) 2025-02-08 09:57:00 +01:00
IceBotYT 332a0c5082 LaCrosse View new endpoint (#137284)
* Switch to new endpoint in LaCrosse View

* Coverage

* Avoid merge conflict

* Switch to UpdateFailed
2025-02-08 09:14:00 +01:00
RJPoelstra 64886f717d Add quality_scale to motionmount (#137012)
* Mark as ready for Bronze

* Add rest of quality scale rules

* Evaluate all quality scale rules

* Exempt repair-issues

* Update dynamic-devices comment

Co-authored-by: Josef Zweck <josef@zweck.dev>

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-02-08 08:59:47 +01:00
tronikos 5f5ad34176 Info log when Android TV Remote is unavailable (#137794) 2025-02-08 08:59:20 +01:00
Milan Meulemans 6c74824ac1 Add discovery for Nanoleaf Blocks and 4D (#137792) 2025-02-08 08:51:33 +01:00
Josef Zweck 0e0129968b Bump onedrive_personal_sdk to 0.0.9 (#137729) 2025-02-08 07:38:49 +01:00
Paulus Schoutsen f64b494282 Conversation chat log cleanup and optimization (#137784) 2025-02-07 22:06:16 -08:00
tronikos aa19207ea4 Clear statistics when you unload the Opower integration (#135908)
* Clear statistics when you remove the Opower integration

* fix
2025-02-07 22:41:09 -05:00
Paulus Schoutsen 7883106e7c Make sure we always have agent_id in ConversationInput (#137679)
* Make sure we always have agent_id in ConversationInput

* fix type
2025-02-07 18:25:21 -08:00
Michael 61d1b34cef Explicitly pass in the config_entry in dwd weather warnings coordinator (#137737) 2025-02-08 00:04:45 +00:00
Michael e9bfb6baee Explicitly pass in the config_entry in emoncms coordinator (#137743) 2025-02-08 00:04:05 +00:00
Michael 7fc92e4c25 Explicitly pass in the config_entry in dremel_3d_printer coordinator (#137740) 2025-02-08 00:02:49 +00:00
Michael 0cbef18b73 Explicitly pass in the config_entry in eheimdigital coordinator (#137738) 2025-02-08 00:01:14 +00:00
Joris Pelgröm 07fdec76e1 Explicitly pass in the config_entry in letpot coordinator (#137759) 2025-02-07 23:56:48 +01:00
Michael fd1213b70d Explicitly pass in the config_entry in apcupsd coordinator init (#137709)
explicitly pass in the config_entry in apcupsd coordinator init
2025-02-07 23:55:41 +01:00
Michael 1d3cef5c6f Explicitly pass in the config_entry in analytics_insight coordinator init (#137706)
explicitly pass in the config_entry in analytics_insight coordinator init
2025-02-07 23:38:52 +01:00
Michael ee80966a10 Explicitly pass in the config_entry in android_ip_webcam coordinator … (#137705)
explicitly pass in the config_entry in android_ip_webcam coordinator init
2025-02-07 23:30:57 +01:00
Michael 2d9db62828 Explicitly pass in the config_entry in arve coordinator init (#137712)
explicitly pass in the config_entry in arve coordinator init
2025-02-07 23:20:08 +01:00
Michael 292409f1d5 Explicitly pass in the config_entry in aurora_abb_powerone coordinator init (#137715) 2025-02-07 21:16:09 +00:00
Michael b9a3cab4b4 Explicitly pass in the config_entry in braviatv coordinator init (#137724)
explicitly pass in the config_entry in braviatv coordinator init
2025-02-07 20:43:54 +01:00
Michael 7007bd121f Explicitly pass in the config_entry in aquacell coordinator init (#137713)
explicitly pass in the config_entry in aquacell coordinator init
2025-02-07 20:42:05 +01:00
Michael c595b12e98 Explicitly pass in the config_entry in airzone coordinator init (#137702)
explicitly pass in the config_entry in airzone coordinator init
2025-02-07 20:41:53 +01:00
Michael c300be5eee Explicitly pass in the config_entry in aussie_broadband coordinator init (#137719)
explicitly pass in the config_entry in aussie_broadband coordinator init
2025-02-07 20:41:40 +01:00
Marc Mueller 55cda68866 Limit flume ConfigEntrySelect to integration domain (#137661) 2025-02-07 20:34:52 +01:00
Michael 3c7b9bec3c Explicitly pass in the config_entry in discovergy coordinator (#137734)
explicitly pass in the config_entry in coordinator
2025-02-07 20:23:42 +01:00
Norbert Rittel 54be256bea Fix wrong reference for description of password field in bring (#137720)
* Fix wrong reference for description of password field in bring

* Fix second occurrence as well
2025-02-07 20:15:04 +01:00
Michael c814f4f307 Explicitly pass in the config entry in amberelectric coordinator init (#137700)
* explicitly pass in the config_entry in amberelectric coordinator init

* fix amberelectric tests
2025-02-07 20:11:04 +01:00
Michael 1ff9ec661c Explicitly pass in the config_entry in ambient_network coordinator init (#137707)
explicitly pass in the config_entry in ambient_network coordinator init
2025-02-07 20:07:01 +01:00
J. Nick Koston 684d8dac0d Bump SQLAlchemy to 2.0.38 (#137693) 2025-02-07 13:03:19 -06:00
Michael c85f7d0794 Explicitly pass in the config_entry in blink coordinator init (#137727)
explicitly pass in the config_entry in blink coordinator init
2025-02-07 19:52:50 +01:00
Michael 8f1a0eadc0 Pass in the config_entry in brother coordinator init (#137726)
explicitly pass in the config_entry in brother coordinator init
2025-02-07 19:52:13 +01:00
Michael babb1c5589 Explicitly pass in the config_entry in bsblan coordinator init (#137725)
explicitly pass in the config_entry in bsblan coordinator init
2025-02-07 19:51:05 +01:00
Michael 2b7e67aa0c Explicitly pass in the config entry in anova coordinator init (#137701)
* explicitly pass in the config_entry in anova coordinator init

* fix anova
2025-02-07 19:47:39 +01:00
Michael a8de073076 Explicitly pass in the config_entry in airly coordinator init (#137698)
explicitly pass in the config_entry in airly coordinator init
2025-02-07 19:46:21 +01:00
Michael 42169e28a4 Explicitly pass in the config_entry in airnow coordinator init (#137699)
explicitly pass in the config_entry in airnow coordinator init
2025-02-07 19:45:23 +01:00
Michael 1f0f1ac388 Explicitly pass in the config_entry in autarco coordinator init (#137718)
explicitly pass in the config_entry in autarco coordinator init
2025-02-07 19:39:21 +01:00
Michael 2eb6a03640 Pass in the config_entry in azure_devops coordinator init (#137722)
explicitly pass in the config_entry in azure_devops coordinator init
2025-02-07 19:38:41 +01:00
Norbert Rittel 9a202b5e56 Fix spelling of "AccuWeather" and sentence-casing plus grammar (#137696) 2025-02-07 19:47:05 +02:00
Maciej Bieniek 6ff733b225 Set the device class for the Shelly virtual sensor (#137068)
* Map sensor role to the device class

* Add test

* Fix docstring
2025-02-07 17:36:26 +02:00
puddly b3205ea1cd Do not rely on pyserial for port scanning with the CM5 + ZHA (#137585)
Do not rely on pyserial for port scanning with the CM5
2025-02-07 16:33:40 +01:00
Maciej Bieniek aa6fa3cdad Don't use the current temperature from Shelly BLU TRV as a state for External Temperature number entity (#137658)
Introduce RpcBluTrvExtTempNumber for External Temperature entity
2025-02-07 16:32:28 +01:00
Norbert Rittel b9dccb9125 Fix spelling of "SwitchBot", "ID" plus sentence-casing in switchbot (#137684)
Fix spelling of "SwitchBot", "ID" and sentence-case "encryption"
2025-02-07 16:32:03 +01:00
epenet 1d6aec44df Use config_entry.async_on_unload in forked_daapd (#137656) 2025-02-07 16:30:58 +01:00
Josef Zweck 040e1ff5fb Use separate metadata files for onedrive (#137549) 2025-02-07 16:06:33 +01:00
Andrew Sayre dd82212e45 Handle previously migrated HEOS device identifier (#137596) 2025-02-07 09:04:34 -06:00
Norbert Rittel 600269ad0a Replace key names with friendly names in todoist actions (#137667)
* Replace key names with friendly names in todoist actions

Also fix the grammar mistake in "A members username …" by rewordings.

* Fix grammar in reminder_date and reminder_date_string descriptions

* Fix description of due_date_string, replacing "date" with "time"

According to the online docs this is not the day but the time when this is due. Just like the reminder_date_string.

Example in the docs: "tomorrow at 14:00"
2025-02-07 15:33:38 +01:00
Shay Levy 239f2dcb3e Fix LG webOS TV turn off when device is already off (#137675) 2025-02-07 15:25:09 +01:00
Artur Pragacz 6d6961ae6e Clean up colliding deleted devices when updating non-deleted devices (#135592)
* Fix Schrödinger's devices

* Address feedback

* Add comment with broader context
2025-02-07 14:44:44 +01:00
epenet e340f5af8d Use runtime_data in flume (#137660) 2025-02-07 13:06:13 +01:00
Norbert Rittel da0481852e Make all occurrences of "Home Guard" in lg_thinq consistent (#137662)
LQ uses "Home Guard" as a trademark, so all occurrences in the integration should be consistent in spelling.
2025-02-07 13:05:32 +01:00
Erwin Douna d6d9c9f01a Bump PyTado to version 0.18.6 (#137655) 2025-02-07 12:49:45 +01:00
Marc Mueller 4c9127a0ea Remove unnecessary type casts (#137657) 2025-02-07 12:28:44 +01:00
Andre Lengwenus d9726ab08c Use snapshots for ConfigEntry migration tests (#136093)
* Add snapshots for migration

* Reduce fixtures specific to migration

* Explicitly test versions of migrated entries
2025-02-07 11:32:47 +01:00
epenet bdc847c7ac Use runtime_data in firmata (#137630) 2025-02-07 11:30:13 +01:00
epenet ff42353e61 Use runtime_data in fivem (#137632) 2025-02-07 11:27:41 +01:00
epenet 60fd07f501 Use runtime_data in frontier_silicon (#137633) 2025-02-07 11:26:25 +01:00
epenet f06d209b2d Improve type hints in fireservicerota (#137628) 2025-02-07 11:14:45 +01:00
Norbert Rittel 4323968222 Replace "HassOS" with "Home Assistant OS" in homeassistant_hardware (#137637)
Makes it consistent with all other occurrences.
Also change "otbr" and "zha" to uppercase.
2025-02-07 11:13:55 +01:00
Bouwe Westerdijk 8f83a4c485 Plugwise: fix double CONF_PASSWORD occurrence (#137641)
Fix double CONF_PASSWORD occurrence
2025-02-07 10:09:56 +01:00
epenet 2639a3bce8 Fix missing type annotation in bring (#137647) 2025-02-07 10:08:50 +01:00
Manu 448a24802d Add reconfiguration flow to Bring! integration (#137529) 2025-02-07 10:08:02 +01:00
epenet 5b8ef05bc2 Use runtime_data in foscam (#137646) 2025-02-07 10:06:44 +01:00
epenet 27cb88db1a Use runtime_data in fitbit (#137631) 2025-02-07 09:53:39 +01:00
epenet 0e443bf748 Fix fireservicerota unload (#137629) 2025-02-07 09:53:16 +01:00
epenet b6c1c10035 Use runtime_data in freedompro (#137635) 2025-02-07 09:52:52 +01:00
Michael 734f531a56 Pass in the config_entry in youless coordinator init (#137471)
explicitly pass in the config_entry in coordinator init
2025-02-07 09:46:53 +01:00
Manu b9a9da1e1d Add event platform to Bring! integration (#136935)
* Add event platform

* update
2025-02-07 09:44:14 +01:00
Nathan Spencer eaf31051c5 Add HNT wallet/rate to coinbase (#137592) 2025-02-07 09:43:32 +01:00
Michael Arthur 2af3a56ab3 Bump Electrickiwi-api to 0.9.14 (#137614)
* bump library to fix bug with post

* rebuild
2025-02-07 09:36:30 +01:00
Allen Porter 0e0bc4bfe9 Update google-nest-sdm to 7.1.3 (#137625)
* Update google-nest-sdm to 7.1.2

* Bump nest to 7.1.3
2025-02-07 09:33:58 +01:00
Marc Mueller f2e6231aa2 Remove redundant dependency markers (#137608) 2025-02-07 05:12:02 +01:00
TheJulianJES c89b416f85 Bump ZHA to 0.0.48 (#137610) 2025-02-07 00:33:07 +00:00
Andrew Sayre a0b8ad16ba Add remaining HEOS exception translations (#136878)
Add coordinator exc translations
2025-02-06 23:41:09 +01:00
Duco Sebel fd6e2a6e19 Add Wi-Fi RSSI sensor in HomeWizard (#136754) 2025-02-06 23:37:26 +01:00
Matthias Alphart 8a08a87a25 KNX tests: Support loading different config store fixtures (#136961)
* 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
2025-02-06 23:24:09 +01:00
Michael Arthur 609188bb33 Bump electrickiwi-api to 0.9.13 (#137601)
* bump ek api version to fix deps

* Revert "Skip building wheels for electrickiwi-api (#137556)"

This reverts commit 5f6068eea4.

---------

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2025-02-06 22:47:53 +01:00
Jan Rieger c8bafe9c46 Remove deprecated state attributes from GPSd (#137600) 2025-02-06 21:36:58 +01:00
Maciej Bieniek d2d7d696ec Bump aioshelly to version 12.4.1 (#137598)
* Bump aioshelly to 12.4.0

* Bump to 12.4.1
2025-02-06 21:34:11 +01:00
Jan Bouwhuis d3d00357aa Allow to omit the payload attribute to MQTT publish action to allow an empty payload to be sent by default (#137595)
Allow to omit the payload attribute to MQTT publish actionto allow an empty payload to be sent by default
2025-02-06 22:11:39 +02:00
puddly 2e8bc56be4 Keep track of addons and integrations when determining HA radio firmware type (#134598)
* 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
2025-02-06 14:46:07 -05:00
Norbert Rittel 75772ae40f Fix sentence-casing in user-facing strings of here_travel_time (#137593) 2025-02-06 20:36:17 +01:00
Sid b4ecd9739a Bump eheimdigital to 1.0.6 (#137587) 2025-02-06 20:29:47 +01:00
starkillerOG 89d489b391 Bump reolink-aio to 0.11.10 (#137591) 2025-02-06 20:23:28 +01:00
Ron 981f3945c8 Bump pyfireservicerota to 0.0.46 (#137589) 2025-02-06 20:19:42 +01:00
Joost Lekkerkerker d0bca12632 Bump python-overseerr to 0.7.0 (#137590) 2025-02-06 20:19:23 +01:00
Manu 21b18d8449 Add exception translations to Bring! integration (#137515) 2025-02-06 19:51:40 +01:00
G Johansson 167fb37929 Update library for smhi (#136375)
* Update library for smhi

* Imports

* Fixes
2025-02-06 19:45:53 +01:00
Jasper Wiegratz 603a1ed69c Fix sending polls to Telegram threads (#137553)
Fix sending poll to Telegram thread
2025-02-06 19:42:28 +01:00
cdnninja 3297b27dce Explicitly pass in the config_entry in vesync (#137498)
* Explicitly pass in the config_entry in vesync

* Feedback
2025-02-06 19:40:12 +01:00
Christopher Fenner 44c79f4b9c Correct state and icon if fan is in standby mode in ViCare integration (#137565)
* handle standby mode

* update snapshot
2025-02-06 19:32:41 +01:00
Norbert Rittel ec587e60e3 Fix sentence-casing in user-facing strings of Coinbase integration (#137586) 2025-02-06 19:25:02 +01:00
Bouwe Westerdijk b6d9e4f1b1 Plugwise: remove user-config of port (#137584) 2025-02-06 19:12:57 +01:00
Abílio Costa 9a9822140e Replace string literal with existing const in ZHA (#137576) 2025-02-06 18:54:59 +01:00
Michael 711dd7f05b Explicitly pass in the config_entry in madvr coordinator init (#137468)
explicitly pass in the config_entry in coordinator init
2025-02-06 18:42:22 +01:00
Michael Hansen 16390d56b6 Add excluded domains to broadcast intent (#137566) 2025-02-06 11:53:55 -05:00
Dennis Effing 634b754168 Fix Overseerr webhook configuration JSON (#137572)
Co-authored-by: Lars Jouon <schm.lars@googlemail.com>
2025-02-06 17:37:10 +01:00
Norbert Rittel b4559e0342 Several fixes in user-facing strings of the SQL integration (#137438)
- use proper sentence-casing for all strings
- replace "unit of measure" with correct "unit of measurement"
- replace "HA recorder" with "Home Assistant Recorder" as this is a name that is not translated
- add some details from the online docs to descriptions
2025-02-06 18:05:04 +02:00
Norbert Rittel 57133c199f Fix spelling of "Roborock" and adapt action descriptions to HA standards (#137570)
- change two occurrences of "roborock" to "Roborock"
- change "url" to "URL
- Reword three action descriptions to use third-person plural, following HA standards
2025-02-06 18:01:19 +02:00
J. Nick Koston ba14933ae7 Revert "Add PaddleSwitchPico (Pico Paddle Remote) device trigger to Lutron Caseta" (#137571) 2025-02-06 10:00:29 -06:00
Marc Mueller af0f9dec1f Prevent packages from accidentally installing poetry (#137560)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-06 16:42:29 +01:00
Marc Mueller 5f6068eea4 Skip building wheels for electrickiwi-api (#137556) 2025-02-06 16:41:27 +01:00
Nathan Spencer da162676ab Fix translation key typo in coinbase options (#137543)
Fix translation key in coinbase
2025-02-06 15:30:35 +01:00
Erik Montnemery 7822e11894 Don't overwrite setup state in async_set_domains_to_be_loaded (#137547) 2025-02-06 15:18:37 +01:00
Galorhallen 03d709f162 Update govee-local-api to 2.0.1 (#137546) 2025-02-06 14:08:30 +01:00
Marc Mueller a4fe0cbe7a Update mypy-dev to 1.16.0a2 (#137542) 2025-02-06 13:43:53 +01:00
LG-ThinQ-Integration f56d058443 Add switch to LG ThinQ for power control (#137512)
Add switch for convenient power control

Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-02-06 11:39:58 +01:00
Manu 84d7cb3a76 Enable strict-typing for Bring! integration (#137518)
* Enable strict-typing for Bring! integration

* Explicitly pass in the config_entry in coordinator init
2025-02-06 11:35:41 +01:00
Manu 9ca8af0a00 Add data_description to Bring! integration (#137513) 2025-02-06 10:10:47 +01:00
Daniel Hjelseth Høyer 4deffb233d Fix Mill issue, where no sensors were shown (#137521)
Fix mill issue #137477

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2025-02-06 10:09:29 +01:00
Joakim Sørensen 8654597e25 Handle non-retryable errors when uploading cloud backup (#137517) 2025-02-06 09:57:10 +01:00
Norbert Rittel 836ad8543b Fix typo in keba and replace key references with UI-friendly descriptions (#137527) 2025-02-06 09:52:13 +01:00
IceBotYT e93451a195 Deprecate Linear Garage Door integration (#137502) 2025-02-06 08:38:21 +01:00
Manu c4454ad5ea Bump habiticalib to v0.3.5 (#137510) 2025-02-06 08:32:56 +01:00
J. Nick Koston c0061dba77 Bump govee-ble to 0.43.0 to fix compat with new H5179 firmware (#137508)
changelog: https://github.com/Bluetooth-Devices/govee-ble/compare/v0.42.1...v0.43.0

fixes #136969
2025-02-06 08:31:23 +01:00
Manu 12b3665872 Bump bring-api version to 1.0.1 (#137496) 2025-02-06 08:30:41 +01:00
Joakim Sørensen 283b0908c8 Move cloud backup upload/download handlers to lib (#137416)
* Move cloud backup upload/download handlers to lib

* Update backup.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-06 07:32:46 +01:00
Paulus Schoutsen 3b871afcc4 Update default Google model to Gemini Flash 2.0 (#137505) 2025-02-05 23:27:13 -05:00
J. Nick Koston 39b46baeaa Bump aiohttp to 3.11.12 (#137494)
changelog: https://github.com/aio-libs/aiohttp/compare/v3.11.11...v3.11.12
2025-02-05 22:05:12 -05:00
J. Nick Koston d1b22312ac Bump aiohttp-asyncmdnsresolver to 0.1.0 (#137492)
changelog: https://github.com/aio-libs/aiohttp-asyncmdnsresolver/compare/v0.0.3...v0.1.0

Switches to the new AsyncDualMDNSResolver class to which
tries via mDNS and DNS for .local domains since we have
so many different user DNS configurations to support

fixes #137479
fixes #136922
2025-02-05 22:04:52 -05:00
Franck Nijhof 38b5dff2ef Merge branch 'master' into dev 2025-02-05 23:19:24 +00:00
Renat Sibgatulin 2946fbad00 Bump aioairq version to 0.4.4 (#137454) 2025-02-05 22:15:18 +00:00
Michael bf0080cbb0 Explicitly pass in the config_entry in supervisor coordinator init (#137472) 2025-02-05 22:09:54 +00:00
Michael b0a82a9913 Explicitly pass in the config_entry in airgradient coordinator init (#137469) 2025-02-05 22:11:17 +01:00
Michael 2aea078d9a Explicitly pass in the config_entry in rympro coordinator init (#137464)
explicitly pass in the config_entry in coordinator init
2025-02-05 22:00:50 +01:00
Michael db6bd6aad1 Explicitly pass in the config_entry in Bluesound coordinator init (#137461)
* explicitly pass in the config_entry in coordinator init

* remove unneccessary assert
2025-02-05 21:59:50 +01:00
Michael 12095df4fa Explicitly pass in the config_entry in webmin coordinator init (#137462)
explicitly pass in the config_entry in coordinator init
2025-02-05 21:59:26 +01:00
Michael 6d13aa3741 Explicitly pass in the config_entry in picnic coordinator init (#137465)
explicitly pass in the config_entry in coordinator init
2025-02-05 21:58:01 +01:00
Michael 0248252906 Explicitly pass in the config_entry in omnilogic coordinator init (#137466)
explicitly pass in the config_entry in coordinator init
2025-02-05 21:57:41 +01:00
Michael ab80770252 Explicitly pass in the config_entry in screenlogic coordinator init (#137463)
explicitly pass in the config_entry in coordinator init
2025-02-05 21:57:15 +01:00
G Johansson c222ffb4ec Bump holidays to 0.66 (#137449) 2025-02-05 22:13:42 +02:00
Franck Nijhof 5c383f3d88 2025.2.0 (#137448) 2025-02-05 20:11:04 +01:00
Michael Arthur 94614e0376 Change Electric Kiwi authentication (#135231)
Co-authored-by: Joostlek <joostlek@outlook.com>
2025-02-05 20:01:45 +01:00
Franck Nijhof 3a88c9d6f4 Bump version to 2025.2.0 2025-02-05 17:35:07 +00:00
Jan Rieger 15bc29f8ca Add GPSd satellites sensors (#137320) 2025-02-05 18:34:43 +01:00
Franck Nijhof 5c7cabed1e Bump version to 2025.2.0b12 2025-02-05 17:30:55 +00:00
J. Nick Koston 65fde6042f Bump dbus-fast to 2.33.0 (#137446)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.32.0...v2.33.0
2025-02-05 17:30:19 +00:00
Michael Hansen d5dd0f6ec1 Bump hassil and intents (#137440) 2025-02-05 17:28:33 +00:00
epenet 09483d2cef Move fireservicerota coordinator to own module (#137304) 2025-02-05 18:27:13 +01:00
Marc Mueller 95410586b1 Update bluetooth-data-tools to 1.23.4 (#137374)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-05 17:24:18 +00:00
Marc Mueller d5ad91fce3 Update bluetooth dependencies (#137353) 2025-02-05 17:21:28 +00:00
J. Nick Koston 164f43a71b Bump dbus-fast to 2.33.0 (#137446)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.32.0...v2.33.0
2025-02-05 18:17:02 +01:00
Michael Hansen a1c675b5ee Bump hassil and intents (#137440) 2025-02-05 18:02:01 +01:00
Arkadiusz Wahlig c9ab75a02d Add support for Switchbot Remote (#137443) 2025-02-05 10:38:34 -06:00
Galorhallen 830636df07 Govee light local bump (#137436) 2025-02-05 16:18:32 +00:00
Franck Nijhof 04b0d587c5 Bump version to 2025.2.0b11 2025-02-05 16:18:01 +00:00
Bram Kragten 72a3c5296c Update frontend to 20250205.0 (#137441) 2025-02-05 16:16:12 +00:00
Erik Montnemery d6414b9849 Bump aiohasupervisor to version 0.3.0 (#137437) 2025-02-05 16:14:42 +00:00
starkillerOG c4e2ddd28b Bump reolink_aio to 0.11.9 (#137430)
* Add push callbacks

* Bump reolink_aio to 0.11.9
2025-02-05 16:14:39 +00:00
Josef Zweck 5687a4d718 Bump onedrive to 0.0.8 (#137423)
* Bump onedrive to 0.0.6

* bump to 0.0.7

* bump to 0.0.8

* Improve coverage
2025-02-05 16:14:06 +00:00
cdnninja 4694240cfa Refactor switch for vesync (#134409)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-05 17:07:35 +01:00
Bram Kragten 078996effd Update frontend to 20250205.0 (#137441) 2025-02-05 17:07:19 +01:00
Erik Montnemery 3f2e6d102c Bump aiohasupervisor to version 0.3.0 (#137437) 2025-02-05 16:58:39 +01:00
Ludovic BOUÉ 9abea5c5bb Add translation key for Matter Energy management mode (#137259) 2025-02-05 16:57:10 +01:00
Brett Adams d48d4284c5 Add streaming select entities to Teslemetry (#137210) 2025-02-05 16:48:50 +01:00
Arkadiusz Wahlig 86a4f7188d Update PySwitchbot to 0.56.0 (#137432) 2025-02-05 16:32:05 +01:00
Marc Mueller cc59f5812b Disable annotations for pytest warnings [ci] (#137434) 2025-02-05 15:36:05 +01:00
Norbert Rittel 4613469eb7 Fix spelling of "PowerView Hub" in user-facing strings (#137435) 2025-02-05 16:28:30 +02:00
Josef Zweck 4d7bd1291d Bump onedrive to 0.0.8 (#137423)
* Bump onedrive to 0.0.6

* bump to 0.0.7

* bump to 0.0.8

* Improve coverage
2025-02-05 16:26:58 +02:00
Norbert Rittel c4411914c2 Replace "Ota" with "OTA update" in anova integration (#137431) 2025-02-05 14:30:31 +01:00
Paulus Schoutsen 417a595b73 Only clean up chat log if it was stored (#137399) 2025-02-05 08:25:05 -05:00
Mick Montorier-Aberman eded99a059 Add tests for sensors in SwitchBot Cloud (#137319) 2025-02-05 12:51:27 +00:00
starkillerOG 0236f2434e Bump reolink_aio to 0.11.9 (#137430)
* Add push callbacks

* Bump reolink_aio to 0.11.9
2025-02-05 13:48:12 +01:00
RJPoelstra fcb8d25b46 Show new errors from the MotionMount (#137006) 2025-02-05 12:40:33 +00:00
Franck Nijhof a4474b2794 Bump version to 2025.2.0b10 2025-02-05 12:26:27 +00:00
Erik Montnemery 72a69d7e41 Adjust backup filename scheme (#137424)
* Adjust backup filename scheme

* Update tests
2025-02-05 12:16:11 +00:00
Erik Montnemery e8314fb286 Adjust logic for per-backup agent encryption (#137420) 2025-02-05 12:16:07 +00:00
Erik Montnemery 30c099ef4e Allow creating backup if at least one agent is available (#137409) 2025-02-05 12:16:04 +00:00
Paulus Schoutsen c506c9080a Simplify llm calendar tool (#137402)
* Simplify calendar tool

* Clean up exposed entities
2025-02-05 12:16:01 +00:00
Brett Adams 79563f3746 Handle powerwall at zero percent in Tesla Fleet and Tessie (#137393)
* Handle powerwall zero

* Add missing value_fn call
2025-02-05 12:15:56 +00:00
Brett Adams 0764c7e773 Bump Tesla Fleet API to v0.9.8 (#137379)
* v0.9.7

* v0.9.8
2025-02-05 12:14:14 +00:00
IceBotYT 41490dffad Bump lacrosse-view to 1.1.1 (#137282) 2025-02-05 12:09:59 +00:00
Norbert Rittel 83edee47ff Replace wrong name reference of binary jvc_power sensor in jvc_projector (#137271) 2025-02-05 13:09:22 +01:00
J. Nick Koston fa83591148 Allow ignored Bluetooth adapters to be set up from the user flow (#137373) 2025-02-05 11:57:16 +00:00
J. Nick Koston df2b29aef1 Bump led-ble to 1.1.6 (#137369) 2025-02-05 11:57:13 +00:00
Jan-Philipp Benecke da8d300f29 Fix sqlalchemy deprecation warning that declarative_base has moved (#137360) 2025-02-05 11:57:09 +00:00
Marc Mueller 2c5fd4ee2a Update led-ble to 1.1.5 (#137347) 2025-02-05 11:57:06 +00:00
J. Nick Koston 16d9270833 Fix memory leak when unloading DataUpdateCoordinator (#137338)
* check wiz

* Fix memory leak when unloading DataUpdateCoordinator

fixes #137237

* handle namespace conflict

* handle namespace conflict

* address review comments
2025-02-05 11:57:02 +00:00
Erik Montnemery d8179dacc6 Report progress while restoring supervisor backup (#137313) 2025-02-05 11:56:56 +00:00
LG-ThinQ-Integration 1445e17521 Bump thinqconnect to 1.0.4 (#137395)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-02-05 12:18:14 +01:00
Norbert Rittel a1655d28ba Fix sentence-casing and action names/descriptions in unifiprotect (#137418) 2025-02-05 12:14:40 +01:00
Erik Montnemery 2f116eab9e Adjust logic for per-backup agent encryption (#137420) 2025-02-05 12:14:06 +01:00
Norbert Rittel 28cedc4c13 Improve action descriptions in rainmachine, fix casing (#137428) 2025-02-05 12:13:58 +01:00
Erik Montnemery 27b96160e2 Adjust backup filename scheme (#137424)
* Adjust backup filename scheme

* Update tests
2025-02-05 12:02:58 +01:00
Paulus Schoutsen ac42c9386c Simplify llm calendar tool (#137402)
* Simplify calendar tool

* Clean up exposed entities
2025-02-05 11:42:41 +01:00
epenet 4d2c46959e Add coordinator unsubscribe listener test (#137422) 2025-02-05 11:15:25 +01:00
Erik Montnemery bfbf95f515 Allow creating backup if at least one agent is available (#137409) 2025-02-05 10:14:39 +01:00
TimL 3dc075f287 Bump pysmlight to v0.1.7 (#137390) 2025-02-05 09:43:38 +01:00
Brett Adams 7ad0438a4e Handle powerwall at zero percent in Tesla Fleet and Tessie (#137393)
* Handle powerwall zero

* Add missing value_fn call
2025-02-05 09:43:22 +01:00
J. Nick Koston 3fc13db7e0 Fix memory leak when unloading DataUpdateCoordinator (#137338)
* check wiz

* Fix memory leak when unloading DataUpdateCoordinator

fixes #137237

* handle namespace conflict

* handle namespace conflict

* address review comments
2025-02-05 09:29:23 +01:00
dependabot[bot] 03de3aec15 Bump sigstore/cosign-installer from 3.7.0 to 3.8.0 (#137404)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.7.0...v3.8.0)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-05 09:21:52 +01:00
TimL 5ef3cad89a Bump pysmlight to v0.2.3 (#137386) 2025-02-05 10:14:32 +02:00
Brett Adams 8349ea8125 Bump Tesla Fleet API to v0.9.8 (#137379)
* v0.9.7

* v0.9.8
2025-02-05 10:09:33 +02:00
Norbert Rittel b75a9d15d0 Fix spelling of "YoLink" and improve action descriptions (#137412)
Make one occurrence of "yolink" consistent, using "YoLink" instead.

Reword the descriptions of the play_on_speaker_hub action to improve translations by using more descriptive language.
2025-02-05 09:05:50 +01:00
Marc Mueller e134c862cd Update discovergy30303 to 0.3.3 (#137396) 2025-02-05 07:51:24 +01:00
Marc Mueller e6e42af8b6 Update ismartgate to 5.0.2 (#137394) 2025-02-05 07:50:49 +01:00
TimL 280f61dd77 Add update entity for second Zigbee radio (#136918)
* 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
2025-02-04 20:34:18 -06:00
Marc Mueller 369f897f41 Update aiooncue to 0.3.9 (#137392) 2025-02-05 03:32:11 +01:00
Marc Mueller ec6896c819 Update aiosteamist to 1.0.1 (#137391) 2025-02-05 03:18:50 +01:00
Marc Mueller d89412ca75 Update aionut to 4.3.4 (#137389) 2025-02-05 03:18:10 +01:00
Marc Mueller 1bbd5d7954 Update async-interrupt to 1.2.1 (#137388) 2025-02-05 03:17:47 +01:00
Marc Mueller 4111ca1a46 Update aiohttp-fast-zlib to 0.2.2 (#137387) 2025-02-05 03:17:26 +01:00
Marc Mueller 4d567c6216 Update bthome-ble to 3.12.4 (#137385) 2025-02-05 03:17:04 +01:00
Marc Mueller bbe6804572 Update dhcp dependencies (#137384) 2025-02-05 03:16:43 +01:00
J. Nick Koston 8e439cbf47 Bump nexia to 2.0.9 (#137383) 2025-02-04 19:55:45 -06:00
Stephan Jauernick c965dfb619 Bump thermopro-ble to 0.11.0 (#137381)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-04 18:53:20 -06:00
J. Nick Koston 6b32587d10 Allow ignored Bluetooth adapters to be set up from the user flow (#137373) 2025-02-04 17:11:05 -06:00
jukrebs 1e99b87868 Add iometer integration (#135513) 2025-02-04 22:36:47 +00:00
Marc Mueller 4cb9d28289 Update bluetooth-data-tools to 1.23.4 (#137374)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-04 23:02:17 +01:00
Marc Mueller 9c9a06caa0 Update govee-ble to 0.42.1 (#137371) 2025-02-04 23:01:46 +01:00
Marc Mueller 4e7cc330c6 Update aiozoneinfo to 0.2.3 (#137370) 2025-02-04 22:57:47 +01:00
J. Nick Koston 185edc371e Bump led-ble to 1.1.6 (#137369) 2025-02-04 22:37:33 +01:00
epenet d2b9a3b106 Add sensor and weather tests to meteo_france (#137318) 2025-02-04 22:36:39 +01:00
Jan-Philipp Benecke 4ceced6405 Fix sqlalchemy deprecation warning that declarative_base has moved (#137360) 2025-02-04 15:31:05 -06:00
Bram Kragten b5e4fee9aa Bump version to 2025.2.0b9 2025-02-04 21:42:50 +01:00
Shay Levy 1c8ced2c2d Fix Tado missing await (#137364) 2025-02-04 21:41:27 +01:00
Robert Resch 1a5b8cf854 Bump deebot-client to 12.0.0 (#137361) 2025-02-04 21:41:26 +01:00
Shay Levy af40bb39ad Bump aranet4 to 2.5.1 (#137359) 2025-02-04 21:41:25 +01:00
Teemu R. 14034ed7f8 Polish tplink vacuum sensors (#137355) 2025-02-04 21:41:24 +01:00
Glenn Waters d7f0a55568 Fix incorrect UPB service entity type (#137346) 2025-02-04 21:41:24 +01:00
J. Nick Koston 1038a849c4 Bump uiprotect to 7.5.1 (#137343) 2025-02-04 21:41:23 +01:00
Bram Kragten c4b08d3d57 Update frontend to 20250204.0 (#137342) 2025-02-04 21:39:32 +01:00
J. Nick Koston 0e9658b5ff Copy area from remote parent device when creating Bluetooth devices (#137340) 2025-02-04 21:36:43 +01:00
Duco Sebel 0463b90d36 Fix HomeWizard reconfigure flow throwing error for v2-API devices (#137337)
Fix reconfigure flow not working for v2
2025-02-04 21:36:42 +01:00
Jan Bouwhuis 37f0832c8b Don't show active user initiated data entry config flows (#137334)
Do not show active user initiated  data entry config flows
2025-02-04 21:36:41 +01:00
Erik Montnemery 2005e14d5f Improve error handling when supervisor backups are deleted (#137331)
* Improve error handling when supervisor backups are deleted

* Move exception definitions
2025-02-04 21:36:41 +01:00
Josef Zweck 99219a9a73 Bump onedrive-personal-sdk to 0.0.4 (#137330) 2025-02-04 21:36:40 +01:00
Bram Kragten 1f967f7f77 Minor adjustments of hassio backup tests (#137324) 2025-02-04 21:35:04 +01:00
Robert Resch b4d8069656 Bump deebot-client to 12.0.0 (#137361) 2025-02-04 21:34:21 +01:00
Kevin Worrel 8de64b8b1f Allow ignored screenlogic devices to be set up from the user flow (#137315)
Allow ignored ScreenLogic devices to be set up from the user flow
2025-02-04 21:25:18 +01:00
Matthias Lohr 48c88d8fa1 Bump tololib to 1.2.2 (#137303) 2025-02-04 21:25:18 +01:00
Erik Montnemery d478f906df Include extra metadata in backup WS API (#137296)
* Include extra metadata in backup WS API

* Update onboarding backup view

* Update google_drive tests
2025-02-04 21:25:17 +01:00
Michael 09e02493b7 Improve backup file naming in Synology DSM backup agent (#137278)
* improve backup file naming

* use built-in suggested_filename
2025-02-04 21:25:16 +01:00
Abílio Costa 55c746f909 Add view to download support package to Cloud component (#135856) 2025-02-04 21:25:15 +01:00
Shay Levy d99305513c Fix Tado missing await (#137364) 2025-02-04 21:13:50 +01:00
Kevin Worrel b8d74a11ae Allow ignored screenlogic devices to be set up from the user flow (#137315)
Allow ignored ScreenLogic devices to be set up from the user flow
2025-02-04 21:12:49 +01:00
Shay Levy b28ae554e2 Bump aranet4 to 2.5.1 (#137359) 2025-02-04 21:12:18 +01:00
Marc Mueller 20e08bf0ed Update bluetooth dependencies (#137353) 2025-02-04 15:03:54 -05:00
Teemu R. 0e1ae89f12 Polish tplink vacuum sensors (#137355) 2025-02-04 14:03:28 -06:00
Marc Mueller 3984706459 Update bleak-esphome to 2.7.1 (#137354) 2025-02-04 15:03:09 -05:00
Bram Kragten 7914724492 Update frontend to 20250204.0 (#137342) 2025-02-04 21:02:28 +01:00
Jan Bouwhuis 7fa6f7e875 Bump paho-mqtt client to version 2.1.0 (#136130)
* 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
2025-02-04 20:59:28 +01:00
J. Nick Koston 56e07efe31 Copy area from remote parent device when creating Bluetooth devices (#137340) 2025-02-04 13:48:59 -06:00
Norbert Rittel efe8a3f530 Fix spelling of "ID" and sentence-casing in ovo_energy strings (#137329) 2025-02-04 21:47:29 +02:00
Duco Sebel ec3127f561 Fix HomeWizard reconfigure flow throwing error for v2-API devices (#137337)
Fix reconfigure flow not working for v2
2025-02-04 21:46:01 +02:00
Matthias Lohr 8da25fc270 Bump tololib to 1.2.2 (#137303) 2025-02-04 19:37:59 +00:00
Norbert Rittel 94f6daa09c Make Sonos action descriptions more UI- and translation-friendly (#137356) 2025-02-04 19:26:32 +00:00
Marc Mueller 79a9f3f2c6 Update home-assistant-bluetooth to 1.13.1 (#137350) 2025-02-04 19:22:36 +00:00
Marc Mueller 54751ef0c7 Update led-ble to 1.1.5 (#137347) 2025-02-04 19:59:59 +01:00
Marc Mueller c203307b0d Update yalexs-ble to 2.5.7 (#137345) 2025-02-04 19:59:45 +01:00
Erik Montnemery eb5036854f Improve error handling when supervisor backups are deleted (#137331)
* Improve error handling when supervisor backups are deleted

* Move exception definitions
2025-02-04 19:49:55 +01:00
Glenn Waters 6ff9b0541e Fix incorrect UPB service entity type (#137346) 2025-02-04 12:27:46 -06:00
J. Nick Koston fed36d5756 Bump uiprotect to 7.5.1 (#137343) 2025-02-04 12:24:42 -06:00
Jan Bouwhuis 24ca7d95ac Bump roombapy to 1.9.0 (#137336) 2025-02-04 11:49:10 -06:00
Michael 0895ac6a82 Improve backup file naming in Synology DSM backup agent (#137278)
* improve backup file naming

* use built-in suggested_filename
2025-02-04 18:20:54 +01:00
Glenn Waters f19404991c Bump upb-lib to 0.6.0 (#137339) 2025-02-04 11:20:05 -06:00
kurens 0c56791d94 Added support for One Time Charge Status to Vicare (#135984)
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>
2025-02-04 17:16:59 +00:00
Josef Zweck 5dd03c037e Bump onedrive-personal-sdk to 0.0.4 (#137330) 2025-02-04 11:11:55 -06:00
Jan Bouwhuis 1f7d620d6b Don't show active user initiated data entry config flows (#137334)
Do not show active user initiated  data entry config flows
2025-02-04 17:54:05 +01:00
Abílio Costa 9a9374bf45 Add view to download support package to Cloud component (#135856) 2025-02-04 16:52:40 +00:00
Steven B. 2f5816c5b6 Add exception translations to ring integration (#136468)
* 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
2025-02-04 09:14:48 -06:00
Erik Montnemery 5629b995ce Include extra metadata in backup WS API (#137296)
* Include extra metadata in backup WS API

* Update onboarding backup view

* Update google_drive tests
2025-02-04 15:57:30 +01:00
Erik Montnemery 345cbc62a7 Minor adjustments of hassio backup tests (#137324) 2025-02-04 14:19:48 +01:00
Glenn Vandeuren (aka Iondependent) a4f0194786 Convert Niko home control to async (#137174) 2025-02-04 14:10:27 +01:00
Erik Montnemery ffc6aa0035 Report progress while restoring supervisor backup (#137313) 2025-02-04 12:55:36 +00:00
Joakim Sørensen 3e45af9995 Bump hass-nabucasa from 0.88.1 to 0.89.0 (#137321) 2025-02-04 13:54:50 +01:00
Marc Mueller cd028f8d21 Update types packages (#137317) 2025-02-04 13:37:38 +01:00
Joakim Sørensen dd1def3c5d Add default voice for languages in cloud TTS (#137300)
* Add default voice for languages in cloud TTS

* Add test

* use defined voice

* Add test to ensure all default voices are valid
2025-02-04 13:32:33 +01:00
Franck Nijhof 834a04ac49 Bump version to 2025.2.0b8 2025-02-04 12:26:19 +00:00
Josef Zweck fa9b4c3524 Bump onedrive-personal-sdk to 0.0.3 (#137309) 2025-02-04 12:25:47 +00:00
Erik Montnemery 13bfa82038 Report progress while creating supervisor backup (#137301)
* Report progress while creating supervisor backup

* Use enum util
2025-02-04 12:25:44 +00:00
epenet 0766b47161 Fix data update coordinator garbage collection (#137299) 2025-02-04 12:25:36 +00:00
Brett Adams fa8225d0a2 Bump tesla-fleet-api to 0.9.2 (#137295) 2025-02-04 12:23:23 +00:00
Daniel Hjelseth Høyer 623c82e5d1 Bump pymill to 0.12.3 (#137264)
Mill lib 0.12.3

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2025-02-04 12:11:18 +00:00
Bram Kragten 728a1a4be5 Update frontend to 20250203.0 (#137263) 2025-02-04 12:11:15 +00:00
Duco Sebel 4bbb3e351b Remove v2 API support for HomeWizard P1 Meter (#137261) 2025-02-04 12:11:12 +00:00
Erik Montnemery 044bafd6aa Improve shutdown of _CipherBackupStreamer (#137257)
* Improve shutdown of _CipherBackupStreamer

* Catch the right exception
2025-02-04 12:11:08 +00:00
Abílio Costa 1e1069b647 Allow ignored idasen_desk devices to be set up from the user flow (#137253) 2025-02-04 12:11:04 +00:00
Josef Zweck 455af9179b Bump onedrive-personal-sdk to 0.0.2 (#137252) 2025-02-04 12:10:59 +00:00
Regev Brody 30b309d7a1 Bump python-roborock to 2.11.1 (#137244) 2025-02-04 12:10:55 +00:00
Markus Adrario 7e32342eb2 Fix minor issues in Homee (#137239) 2025-02-04 12:10:51 +00:00
RJPoelstra bb9740991e Fix retrieving PIN when no pin is set on mount in motionmount integration (#137230) 2025-02-04 12:10:47 +00:00
Erik Montnemery 88e5d1c18f Check for errors when creating backups using supervisor (#137220)
* Check for errors when creating backups using supervisor

* Improve error reporting when there's no backup reference
2025-02-04 12:10:43 +00:00
Erik Montnemery e960053226 Check for errors when restoring backups using supervisor (#137217)
* Check for errors when restoring backups using supervisor

* Break long line in test

* Improve comments
2025-02-04 12:10:39 +00:00
cdnninja b318fb46a0 Vesync bump pyvesync library (#137208) 2025-02-04 12:10:36 +00:00
Andre Lengwenus 523835080b Bump pypck to 0.8.5 (#137176) 2025-02-04 12:10:32 +00:00
Norbert Rittel 5a63138581 Fixes in user-facing strings of Tado integration (#137158) 2025-02-04 12:10:28 +00:00
Indu Prakash 90ddb6cce1 Humidifier turn display off for sleep mode (#137133) 2025-02-04 12:10:25 +00:00
Josef Zweck 81783dcfd3 Migrate OneDrive to onedrive_personal_sdk library (#137064) 2025-02-04 12:10:21 +00:00
Michael 405cc47157 Don't blow up when a backup doesn't exist on Synology DSM (#136913)
* don't raise while delte not existing backup

* only raise when error ne 408
2025-02-04 12:10:17 +00:00
Aaron Godfrey 809f5eea49 Bump todist-api-python to 2.1.7 (#136549)
Co-authored-by: Allen Porter <allen@thebends.org>
Co-authored-by: J. Diego Rodríguez Royo <jdrr1998@hotmail.com>
2025-02-04 12:10:12 +00:00
Marc Mueller 0a32a9d6db Update attrs to 25.1.0 (#137316) 2025-02-04 12:59:53 +01:00
Duco Sebel d1d498e27d Remove v2 API support for HomeWizard P1 Meter (#137261) 2025-02-04 12:47:50 +01:00
Indu Prakash 9a565885cb Humidifier turn display off for sleep mode (#137133) 2025-02-04 12:46:14 +01:00
Josef Zweck 7f69c689bf Bump onedrive-personal-sdk to 0.0.3 (#137309) 2025-02-04 12:39:00 +01:00
Jan Bouwhuis efc515ff4e Remove legacy color_mode support for legacy mqtt json light (#136996) 2025-02-04 12:34:36 +01:00
Marc Mueller 64a40a3396 Improve frontier_silicon media_player typing (#137080) 2025-02-04 12:25:09 +01:00
Erik Montnemery ca53d97a6d Improve shutdown of _CipherBackupStreamer (#137257)
* Improve shutdown of _CipherBackupStreamer

* Catch the right exception
2025-02-04 12:24:30 +01:00
Norbert Rittel e18062bce4 Improve descriptions of Bluesound actions (#137156) 2025-02-04 12:17:49 +01:00
Marc Mueller 30c0a1492c Update codespell to 2.4.1 (#137312) 2025-02-04 12:16:24 +01:00
Marc Mueller 43b034b8bb Update pyoverkiz to 1.16.0 (#137310) 2025-02-04 12:03:10 +01:00
Marc Mueller b98b38b3f0 Update pytest-aiohttp to 1.1.0 (#137311) 2025-02-04 12:01:09 +01:00
epenet 09cea6ce96 Cleanup runtime warnings in async unit tests (#137308) 2025-02-04 11:44:17 +01:00
Erik Montnemery 650351a7f3 Report progress while creating supervisor backup (#137301)
* Report progress while creating supervisor backup

* Use enum util
2025-02-04 11:36:03 +01:00
epenet c3b40e681d Fix data update coordinator garbage collection (#137299) 2025-02-04 11:20:06 +01:00
Sid 4ce3fa8813 Allow integrations with digits in hassfest QS runtime_data (#136479) 2025-02-04 10:57:02 +01:00
Robert Resch ea3ccc02d7 Bump uv to 0.5.27 (#137297) 2025-02-04 09:20:28 +01:00
epenet 0c55538370 Use runtime_data in faa_delays (#137292) 2025-02-04 09:02:50 +01:00
Brett Adams 6bd3792e9f Bump tesla-fleet-api to 0.9.2 (#137295) 2025-02-04 08:51:13 +01:00
epenet 5e0312ca60 Use HassKey in file_upload (#137294) 2025-02-04 08:45:41 +01:00
epenet 0f57347797 Use runtime_data in fastdotcom (#137293) 2025-02-04 08:44:24 +01:00
Daniel Hjelseth Høyer 82369535c4 Bump pymill to 0.12.3 (#137264)
Mill lib 0.12.3

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2025-02-04 08:25:18 +01:00
Michael f9cc3361e3 Don't blow up when a backup doesn't exist on Synology DSM (#136913)
* don't raise while delte not existing backup

* only raise when error ne 408
2025-02-03 17:42:30 -05:00
Jan Stienstra 42cab208d0 Update Jellyfin codeowner (#137270) 2025-02-03 17:38:01 -05:00
Ernst Klamer 7fe89ea329 Add channel sensor to bthome (#137072) 2025-02-03 22:21:58 +00:00
Simone Chemelli 1654c28d74 Pass config_entry as param to Shelly coordinator (#137276)
* Pass config_entry as param

* diff approach
2025-02-03 22:58:50 +01:00
Wouter 6fa87da5bd Add Shelly script events entities (#135979)
* 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
2025-02-03 22:41:39 +02:00
Paulus Schoutsen 649319f4ee Introduce async_add_assistant_content to conversation chat log (#137273)
introduce async_add_assistant_content_without_tools to conversation chat log
2025-02-03 14:27:55 -06:00
Abílio Costa 282560acf8 Allow ignored idasen_desk devices to be set up from the user flow (#137253) 2025-02-03 13:54:09 -06:00
Simone Chemelli 1680adf158 Add device cleanup to Vodafone Station (#116024)
* add device cleanup

* apply review comments

* fix description

* make cleanup automatic

* .

* rework approach based on IQS021 rule

* add initial devices list from registry

* use connections instead of identifiers

* apply review comment

* add some coordinator tests

* one more test

* cleanup tests

* allign tests

* apply review comment

* removed sensor test

* cleanup test

* align test to latest code

* typo

* fix after rebase

* introduce generic helper

* apply some review comments

* add comments to clarify design

* apply latest review comment

* ruff

* improved coverage

* more coverage

* 100% helpers.py test coverage

* improve test

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-03 20:48:50 +01:00
Marc Mueller 5a14409dda Update tqdm to 4.67.1 (#137241) 2025-02-03 19:37:38 +01:00
Bram Kragten 3bfc1a87c8 Update frontend to 20250203.0 (#137263) 2025-02-03 19:37:12 +01:00
Michael Hansen 28edbdc107 Clear extra system prompt on start_conversation error (#137254)
* 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>
2025-02-03 12:07:45 -05:00
Erik Montnemery 58b7be7c2f Check for errors when creating backups using supervisor (#137220)
* Check for errors when creating backups using supervisor

* Improve error reporting when there's no backup reference
2025-02-03 17:33:03 +01:00
Josef Zweck a41566611e Bump onedrive-personal-sdk to 0.0.2 (#137252) 2025-02-03 17:30:27 +01:00
Martin Hjelmare b660703117 Fix eheimdigital sw_version mock (#137255) 2025-02-03 17:28:54 +01:00
starkillerOG c5e60045b4 Add Smart Rollos virtual motionblinds integration (#137190) 2025-02-03 17:21:28 +01:00
starkillerOG ce5be8686a Add Heicko virtual motionblinds integration (#137191) 2025-02-03 17:18:30 +01:00
starkillerOG 94daeffe44 Add Ublockout virtual integration of MotionBlinds (#137179) 2025-02-03 17:10:39 +01:00
Aaron Godfrey 9856340a33 Bump todist-api-python to 2.1.7 (#136549)
Co-authored-by: Allen Porter <allen@thebends.org>
Co-authored-by: J. Diego Rodríguez Royo <jdrr1998@hotmail.com>
2025-02-03 17:06:21 +01:00
Jan Bouwhuis 30af9057d1 Ensure random temp dir is used during MQTT CI tests (#137221) 2025-02-03 16:06:02 +00:00
Regev Brody a5eda3faf1 Bump python-roborock to 2.11.1 (#137244) 2025-02-03 17:00:36 +01:00
Shay Levy 2682f4a323 Add tests for Shelly Flood gen4 (#137246) 2025-02-03 17:34:02 +02:00
Josef Zweck 628e1ffb84 Migrate OneDrive to onedrive_personal_sdk library (#137064) 2025-02-03 16:25:58 +01:00
Paulus Schoutsen 05ca80f4ba Assist Pipeline to use ChatSession for conversation ID (#137143)
* Assist Pipeline to use ChatSession for conversation ID

* Adjust to latest changes
2025-02-03 09:18:15 -06:00
Paulus Schoutsen 8acab6c646 Assist Satellite to use ChatSession for conversation ID (#137142)
* Assist Satellite to use ChatSession for conversation ID

* Adjust for changes main branch

* Ensure the initial message is in the chat log
2025-02-03 09:13:09 -06:00
Joost Lekkerkerker 4531a46557 Bump python-homeassistant-analytics to 0.9.0 (#137240) 2025-02-03 16:03:13 +01:00
cdnninja 37461d727a Migrate unique ID in vesync switches (#137099) 2025-02-03 15:44:49 +01:00
Marc Mueller b5662ded2c Update pylint-per-file-ignores to 1.4.0 (#137242) 2025-02-03 15:42:21 +01:00
Richard Kroegel 71e28a4af3 Add service to retrieve schedule configuration (#121904) 2025-02-03 14:41:25 +00:00
Marc Mueller dba4637aa9 Update pytest-github-actions-annotate-failures to 0.3.0 (#137243) 2025-02-03 15:40:38 +01:00
Marc Mueller e24564147d Update pytest-asyncio to 0.25.3 (#137231) 2025-02-03 14:52:56 +01:00
Marc Mueller 9bc110104d Update pyOpenSSL to 25.0.0 (#137236) 2025-02-03 14:46:49 +01:00
Marc Mueller c903658aa8 Update syrupy to 4.8.1 (#137235) 2025-02-03 14:46:22 +01:00
Conor Eager 34a229af52 Add Starlink connectivity binary sensor (#133184)
Co-authored-by: David Rapan <david@rapan.cz>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-03 14:34:25 +01:00
Marc Mueller 8579456895 Update pytest-picked to 0.5.1 (#137233) 2025-02-03 14:25:06 +01:00
Marc Mueller 1d7e485aa3 Update pytest-freezer to 0.4.9 (#137232) 2025-02-03 14:11:03 +01:00
TimL 0e73363d04 Bump pysmlight to v0.2.2 (#137218) 2025-02-03 14:06:27 +01:00
Markus Adrario 48184e742a Fix minor issues in Homee (#137239) 2025-02-03 14:05:51 +01:00
RJPoelstra 0034055ac8 Fix retrieving PIN when no pin is set on mount in motionmount integration (#137230) 2025-02-03 14:05:11 +01:00
Marc Mueller 52d7cfbe32 Update coverage to 7.6.10 (#137229) 2025-02-03 14:03:41 +01:00
Marc Mueller a9e73d9253 Update pylint to 3.3.4 (#137227) 2025-02-03 14:01:20 +01:00
Marc Mueller a5c01a4d4f Update pipdeptree to 2.25.0 (#137228) 2025-02-03 14:01:04 +01:00
Marc Mueller 6d31530811 Update license-expression to 30.4.1 (#137226) 2025-02-03 14:00:16 +01:00
Markus Jacobsen c950c69cb3 Add parallel updates setting to Bang & Olufsen Event platform (#135850) 2025-02-03 13:42:47 +01:00
Norbert Rittel c2f94542aa Fix uppercase / lowercase setup strings in Generic Camera (#137219) 2025-02-03 12:38:38 +00:00
Simone Chemelli cce6c735ad Add support for Shelly Flood gen4 (#136981) 2025-02-03 13:04:14 +01:00
Erik Montnemery 9cfe109210 Check for errors when restoring backups using supervisor (#137217)
* Check for errors when restoring backups using supervisor

* Break long line in test

* Improve comments
2025-02-03 11:51:29 +01:00
Norbert Rittel 0b2b222fca Fixes in user-facing strings of Tado integration (#137158) 2025-02-03 10:54:32 +01:00
Norbert Rittel d2092315f5 Fix spelling of "SharkClean" and sentence-casing of some words (#137183) 2025-02-03 09:06:51 +01:00
cdnninja d18fb4e6f9 Vesync bump pyvesync library (#137208) 2025-02-03 08:58:33 +01:00
Andre Lengwenus 00e0a5bc10 Bump pypck to 0.8.5 (#137176) 2025-02-03 08:26:08 +01:00
Paulus Schoutsen 9679fc7878 Chat session rev2 (#137209)
* Chat Session rev 2

* Rename session to chat_log

* Simplify typing

* Typing

* Address comments

* Fix anthropic and ollama
2025-02-03 00:05:20 -05:00
Paulus Schoutsen 63c153d671 Bump version to 2025.2.0b7 2025-02-03 02:27:53 +00:00
TimL c8c6eddc65 Simplify config entry title for SMLIGHT (#137206) 2025-02-03 02:27:42 +00:00
J. Nick Koston ddb40cb4a8 Bump dbus-fast to 2.23.0 (#137205)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.31.0...v2.32.0
2025-02-03 02:27:42 +00:00
TimL 38975775ac Switch to using IP Addresses for connecting to smlight devices (#137204) 2025-02-03 02:27:41 +00:00
J. Nick Koston 4fa043e6ff Bump bleak-esphome to 2.7.0 (#137199)
changelog: https://github.com/Bluetooth-Devices/bleak-esphome/compare/v2.6.0...v2.7.0
2025-02-03 02:27:40 +00:00
J. Nick Koston 433a51f6d5 Bump aiodhcpwatcher to 1.0.3 (#137188)
changelog: https://github.com/bdraco/aiodhcpwatcher/compare/v1.0.2...v1.0.3
2025-02-03 02:27:40 +00:00
J. Nick Koston 48511986bb Bump dbus-fast to 2.31.0 (#137180)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.30.4...v2.31.0
2025-02-03 02:27:39 +00:00
Steven B. f1128adec4 Bump python-kasa to 0.10.1 (#137173) 2025-02-03 02:27:38 +00:00
Jan Bouwhuis 54a718c1d7 Fix mqtt reconfigure does not use broker entry password when it is not changed (#137169) 2025-02-03 02:27:38 +00:00
Jeef 63d1dddc76 Bump monarchmoney to 0.4.4 (#137168)
feat: update to backing lib to update backing lib
2025-02-03 02:27:37 +00:00
Manu 7d1b72a581 Bump habiticalib to v0.3.4 (#137148)
Bump habiticalib to version 0.3.4
2025-02-03 02:27:36 +00:00
J. Nick Koston 6c172705d1 Bump bluetooth-data-tools to 1.23.3 (#137147) 2025-02-03 02:27:36 +00:00
J. Nick Koston 505f089a73 Bump dbus-fast to 2.30.4 (#137151)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.30.2...v2.30.4
2025-02-03 02:26:40 +00:00
TimL dbf9e370a8 Allow manual smlight user setup to override discovery (#137136)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-03 02:25:22 +00:00
J. Nick Koston ce93cb9467 Bump dbus-fast to 2.23.0 (#137205)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.31.0...v2.32.0
2025-02-02 21:22:58 -05:00
J. Nick Koston 1860794cac Bump bleak-esphome to 2.7.0 (#137199)
changelog: https://github.com/Bluetooth-Devices/bleak-esphome/compare/v2.6.0...v2.7.0
2025-02-02 21:22:49 -05:00
TimL f846aa4705 Simplify config entry title for SMLIGHT (#137206) 2025-02-02 17:46:27 -06:00
TimL 0f641fcb74 Switch to using IP Addresses for connecting to smlight devices (#137204) 2025-02-02 17:08:32 -06:00
Denis Shulyaka 0f36759a38 Add support for OpenAI reasoning models (#137139)
* 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)
2025-02-02 16:55:16 -05:00
starkillerOG a6781107df Add Linx virtual motionblinds integration (#137184) 2025-02-02 21:22:04 +01:00
J. Nick Koston 6afaeee0fd Bump aiodhcpwatcher to 1.0.3 (#137188)
changelog: https://github.com/bdraco/aiodhcpwatcher/compare/v1.0.2...v1.0.3
2025-02-02 21:17:58 +02:00
J. Nick Koston 1a394876b1 Bump dbus-fast to 2.31.0 (#137180)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.30.4...v2.31.0
2025-02-02 12:10:24 -05:00
TimL a98109614e Allow manual smlight user setup to override discovery (#137136)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-02 10:37:08 -06:00
J. Nick Koston a3d0ec4e6e Bump bluetooth-data-tools to 1.23.3 (#137147) 2025-02-02 10:25:59 -06:00
Jan Bouwhuis 839e2881e0 Fix mqtt reconfigure does not use broker entry password when it is not changed (#137169) 2025-02-02 16:21:40 +01:00
Steven B. cb3ed506ad Bump python-kasa to 0.10.1 (#137173) 2025-02-02 17:19:31 +02:00
Brett Adams 9d808a7b5a Bump teslemetry-stream to 0.6.10 (#137159)
* bump

* v0.6.10
2025-02-02 14:29:33 +01:00
Jeef b8237eaa55 Bump monarchmoney to 0.4.4 (#137168)
feat: update to backing lib to update backing lib
2025-02-02 14:11:44 +01:00
starkillerOG 9c747113a2 Reolink styling using walrus operator (#137069) 2025-02-02 13:18:36 +01:00
Indu Prakash 634e1dd9eb fix: sort available modes (#137134) 2025-02-02 10:11:40 +02:00
J. Nick Koston 9fcaf32c9c Bump dbus-fast to 2.30.4 (#137151)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.30.2...v2.30.4
2025-02-02 10:09:52 +02:00
Manu d55a6de01b Bump habiticalib to v0.3.4 (#137148)
Bump habiticalib to version 0.3.4
2025-02-02 10:08:14 +02:00
Paulus Schoutsen dd9bd8ef73 Make get_chat_session a callback context manager (#137146) 2025-02-01 23:37:24 -05:00
Paulus Schoutsen dc1c2f24e6 Bump version to 2025.2.0b6 2025-02-02 02:06:10 +00:00
Robert Resch 78dcf8b18e Bump deebot-client to 12.0.0b0 (#137137) 2025-02-02 02:06:07 +00:00
J. Nick Koston 613168fd62 Add missing brackets to ESPHome configuration URLs with IPv6 addresses (#137132)
fixes #137125
2025-02-02 02:06:06 +00:00
J. Nick Koston 5f28e95bdc Bump habluetooth to 3.21.0 (#137129) 2025-02-02 02:06:05 +00:00
Allen Porter 1db5da4037 Remove entity state from mcp-server prompt (#137126)
* 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
2025-02-02 02:06:05 +00:00
Alex Thompson 6bf5e95089 Allow ignored tilt_ble devices to be set up from user flow (#137123)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-02 02:06:04 +00:00
Shay Levy 1ea23fda10 Allow ignored Aranet devices to be set up from the user flow (#137121) 2025-02-02 02:06:03 +00:00
J. Nick Koston 21a85c014a Allow ignored xiaomi_ble devices to be set up from the user flow (#137115) 2025-02-02 02:06:03 +00:00
J. Nick Koston 4c8f716320 Allow ignored sensorpush devices to be set up from the user flow (#137113)
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
2025-02-02 02:06:02 +00:00
J. Nick Koston 63bd67f6cd Allow ignored qingping devices to be set up from the user flow (#137111)
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
2025-02-02 02:06:01 +00:00
Assaf Inbal 73b874c5e6 Fix Homekit camera profiles schema (#137110) 2025-02-02 02:06:00 +00:00
J. Nick Koston 3b67dc3651 Allow ignored oralb devices to be set up from the user flow (#137109)
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
2025-02-02 02:06:00 +00:00
J. Nick Koston 434a4ebc9f Allow ignored mopeka devices to be set up from the user flow (#137107)
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
2025-02-02 02:05:59 +00:00
J. Nick Koston cb4b7e71af Allow ignored inkbird devices to be set up from the user flow (#137106)
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
2025-02-02 02:05:58 +00:00
J. Nick Koston 4c6fda2096 Allow ignored bthome devices to be set up from the user flow (#137105) 2025-02-02 02:05:58 +00:00
J. Nick Koston 9b5c21524c Allow ignored thermopro devices to be set up from the user flow (#137104)
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
2025-02-02 02:05:57 +00:00
J. Nick Koston 76937541f1 Allow ignored yale_ble devices to be set up from the user flow (#137103)
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
2025-02-02 02:05:56 +00:00
J. Nick Koston bad966f3ab Allow ignored airthings_ble devices to be set up from the user flow (#137102)
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
2025-02-02 02:05:55 +00:00
J. Nick Koston 2d1d9bbe5a Set via_device for remote Bluetooth adapters to link to the parent device (#137091) 2025-02-02 02:05:55 +00:00
Marc Mueller e76ff0a0de Update RestrictedPython to 8.0 (#137075) 2025-02-02 02:05:54 +00:00
IceBotYT fa8d1b4dc4 Bump lacrosse-view to 1.0.4 (#137058) 2025-02-02 02:05:53 +00:00
Martin Hjelmare 2ce585463c Fix home connect manifest logger (#137138) 2025-02-01 21:03:54 -05:00
Robert Resch f9df5b413b Bump deebot-client to 12.0.0b0 (#137137) 2025-02-01 21:02:34 -05:00
J. Nick Koston 39a575dd29 Add missing brackets to ESPHome configuration URLs with IPv6 addresses (#137132)
fixes #137125
2025-02-01 21:02:10 -05:00
Denis Shulyaka 27f89f7710 Bump openai to 1.61.0 (#137130) 2025-02-01 21:01:41 -05:00
Paulus Schoutsen 2f6640707b Extract conversation ID generation to helper (#137062)
* Extract conversation ID generation to helper

* Allow nested get_chat_log calls
2025-02-01 20:54:00 -05:00
J. Diego Rodríguez Royo 30314ca32b Add and delete Home Connect devices on CONNECTED/PAIRED and DEPAIRED events (#136952)
* 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>
2025-02-02 02:02:45 +01:00
J. Diego Rodríguez Royo 147b5f549f Fetch current active and selected programs at Home Connect (#136948)
* 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
2025-02-02 00:12:26 +01:00
Allen Porter bf6f790d09 Remove entity state from mcp-server prompt (#137126)
* 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
2025-02-01 14:26:52 -08:00
J. Nick Koston 2c99e3778e Bump habluetooth to 3.21.0 (#137129) 2025-02-01 15:56:28 -06:00
Alex Thompson 51c16cc808 Allow ignored tilt_ble devices to be set up from user flow (#137123)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-01 15:09:49 -06:00
Markus Adrario f5fd49d8cb Small additions for Homee (#137000)
* fix entity set value error handling

* Translation for node_state sensor

* add entrance gate operator to covers

* fix review comments

* Update tests/components/homee/test_cover.py

* Delete Logging statement

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-01 14:11:53 -06:00
Shay Levy ba427a1054 Allow ignored Aranet devices to be set up from the user flow (#137121) 2025-02-01 14:03:19 -06:00
Marc Mueller 95bcbd2c4f Improve fully_kiosk sensor typing (#137079) 2025-02-01 14:00:00 -06:00
Martin Hjelmare c35cd6fb76 Bump aiohomeconnect to 0.12.3 (#137085) 2025-02-01 21:22:57 +02:00
J. Nick Koston 3b69a2bbd1 Allow ignored airthings_ble devices to be set up from the user flow (#137102)
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
2025-02-01 21:22:13 +02:00
J. Nick Koston d402166d1d Allow ignored yale_ble devices to be set up from the user flow (#137103)
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
2025-02-01 21:21:53 +02:00
J. Nick Koston 9f85756785 Allow ignored thermopro devices to be set up from the user flow (#137104)
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
2025-02-01 21:21:43 +02:00
J. Nick Koston d28a4258a3 Allow ignored inkbird devices to be set up from the user flow (#137106)
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
2025-02-01 21:21:21 +02:00
J. Nick Koston caaa7def2f Allow ignored mopeka devices to be set up from the user flow (#137107)
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
2025-02-01 21:21:09 +02:00
J. Nick Koston bfb9de46fe Allow ignored oralb devices to be set up from the user flow (#137109)
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
2025-02-01 21:20:52 +02:00
J. Nick Koston ced52f64b4 Allow ignored qingping devices to be set up from the user flow (#137111)
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
2025-02-01 13:19:44 -06:00
J. Nick Koston 5967957e0b Allow ignored sensorpush devices to be set up from the user flow (#137113)
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
2025-02-01 21:19:42 +02:00
J. Nick Koston 2888c64da9 Allow ignored xiaomi_ble devices to be set up from the user flow (#137115) 2025-02-01 13:16:39 -06:00
Ілля Піскурьов 4cab773bab Enable Modbus Climate / HVAC on/off to use the coil instead of the register(s) (#135657) 2025-02-01 13:15:20 -06:00
J. Nick Koston d3da3b3470 Allow ignored bthome devices to be set up from the user flow (#137105) 2025-02-01 13:08:24 -06:00
Assaf Inbal 9c4940e915 Fix Homekit camera profiles schema (#137110) 2025-02-01 12:49:09 -06:00
J. Nick Koston d43083e2f9 Set via_device for remote Bluetooth adapters to link to the parent device (#137091) 2025-02-01 12:10:59 -06:00
Marc Mueller 1157a08f72 Improve isy994 sensor typing (#137077) 2025-02-01 16:48:09 +01:00
IceBotYT 278c35f830 Bump lacrosse-view to 1.0.4 (#137058) 2025-02-01 09:16:10 -06:00
Marc Mueller f29b4134d2 Update RestrictedPython to 8.0 (#137075) 2025-02-01 09:15:55 -06:00
Paulus Schoutsen b3c44ca03a Bump version to 2025.2.0b5 2025-02-01 13:58:56 +00:00
Jan-Philipp Benecke 6efa6f9687 Load hassio before backup at frontend stage (#137067) 2025-02-01 13:58:53 +00:00
J. Nick Koston 3588b88cbb Bump habluetooth to 3.20.1 (#137063) 2025-02-01 13:58:52 +00:00
tronikos a51846a8cd For consistency use suggested_filename in Google Drive (#137061)
Use  suggested_filename in Google Drive
2025-02-01 13:58:52 +00:00
J. Nick Koston ec22479733 Allow ignored switchbot devices to be set up from the user flow (#137056) 2025-02-01 13:58:51 +00:00
J. Nick Koston 3a11e8df6a Allow ignored govee-ble devices to be set up from the user flow (#137052)
* 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
2025-02-01 13:58:50 +00:00
Nathan Spencer a4eab35e01 Raise HomeAssistantError from camera snapshot service (#137051)
* Raise HomeAssistantError from camera snapshot service

* Improve error message

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-01 13:58:50 +00:00
Marc Mueller da7ba85ee6 Improve sonos alarms typing (#137078) 2025-02-01 14:48:46 +01:00
J. Nick Koston 37daa57818 Bump habluetooth to 3.20.1 (#137063) 2025-02-01 07:26:31 -06:00
Nathan Spencer ee37bc476f Raise HomeAssistantError from camera snapshot service (#137051)
* Raise HomeAssistantError from camera snapshot service

* Improve error message

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-01 13:53:04 +01:00
tronikos d4586fb2e4 Test config_entry_oauth2_flow.async_get_redirect_uri (#136976)
* Test config_entry_oauth2_flow.async_get_redirect_uri

* review
2025-02-01 12:49:18 +01:00
J. Diego Rodríguez Royo 63ab13681a Home Connect entities availability based on the connected state of the appliance (#136951)
* 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>
2025-02-01 12:46:49 +01:00
J. Diego Rodríguez Royo efcfd97d1b Filter programs by execution type at select program entities at Home Connect (#136950)
* 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>
2025-02-01 12:06:39 +01:00
Jan-Philipp Benecke 889fe05a48 Load hassio before backup at frontend stage (#137067) 2025-02-01 11:43:45 +01:00
Norbert Rittel 123cd92986 Replace keys with translatable friendly names in Statistics helper (#136936) 2025-02-01 10:48:05 +01:00
J. Diego Rodríguez Royo 285a0a6c81 Fix Home Connect actions keys (#137027)
* Fix actions

* Use coerce

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-01 10:47:27 +01:00
Joris Pelgröm 012f7112d7 Add switch platform to LetPot integration (#136383)
* Add switch platform to LetPot integration

* deviceclient -> device_client

* Remove coordinator data None check

* Add exception handling + test
2025-02-01 08:15:36 +01:00
tronikos bb61e31298 For consistency use suggested_filename in Google Drive (#137061)
Use  suggested_filename in Google Drive
2025-01-31 21:40:52 -08:00
TimL 9453b925cd Bump pysmlight to v0.2.1 (#137053) 2025-01-31 20:39:28 -06:00
J. Nick Koston 64d2f84c0d Allow ignored switchbot devices to be set up from the user flow (#137056) 2025-01-31 20:25:16 -06:00
J. Nick Koston 84e15e10ef Allow ignored govee-ble devices to be set up from the user flow (#137052)
* 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
2025-01-31 21:24:01 -05:00
Paulus Schoutsen 829a6271af Bump version to 2025.2.0b4 2025-02-01 01:04:55 +00:00
Jan Bouwhuis 9935528dd3 Bump aioimaplib to version 2.0.1 (#137049) 2025-02-01 01:04:48 +00:00
J. Nick Koston df35d226d6 Bump habluetooth to 3.17.1 (#137045) 2025-02-01 01:04:47 +00:00
J. Nick Koston 2b510caa1c Bump aiohttp-asyncmdnsresolver to 0.0.3 (#137040) 2025-02-01 01:04:47 +00:00
J. Nick Koston 90c357c01f Bump bthome-ble to 3.12.3 (#137036) 2025-02-01 01:04:46 +00:00
J. Nick Koston 321ce698be Bump zeroconf to 0.143.0 (#137035) 2025-02-01 01:04:45 +00:00
Ernst Klamer ea519268b6 Bump bthome-ble to 3.11.0 (#137032)
bump bthome-ble to 3.11.0
2025-02-01 01:04:45 +00:00
Josef Zweck 4687b2e455 Use readable backup names for onedrive (#137031)
* Use readable names for onedrive

* ensure filename is fixed

* fix import
2025-02-01 01:04:44 +00:00
Joost Lekkerkerker bbb03d6731 Update Overseerr string to mention CSRF (#137001)
* Update Overseerr string to mention CSRF

* Update homeassistant/components/overseerr/strings.json

* Update homeassistant/components/overseerr/strings.json

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2025-02-01 01:04:43 +00:00
Jan Bouwhuis b9884f72c3 Shorten the integration name for incomfort (#136930) 2025-02-01 01:04:42 +00:00
Abílio Costa 5da9bfe0e3 Add dev docs and frontend PR links to PR template (#137034) 2025-01-31 20:03:20 -05:00
Jan Bouwhuis e56772d37b Bump aioimaplib to version 2.0.1 (#137049) 2025-01-31 18:38:11 -06:00
J. Nick Koston c35e7715b7 Bump habluetooth to 3.17.1 (#137045) 2025-01-31 18:13:27 -06:00
Norbert Rittel 7040614433 Fix one occurrence of "api" to match all other in sensibo and HA (#137037) 2025-02-01 00:56:45 +02:00
J. Nick Koston 5fa5bd1302 Bump aiohttp-asyncmdnsresolver to 0.0.3 (#137040) 2025-01-31 16:30:20 -06:00
J. Nick Koston dc7f445356 Bump bthome-ble to 3.12.3 (#137036) 2025-01-31 15:18:19 -06:00
J. Nick Koston 7a0400154e Bump zeroconf to 0.143.0 (#137035) 2025-01-31 15:00:39 -06:00
Joost Lekkerkerker d51e72cd95 Update Overseerr string to mention CSRF (#137001)
* Update Overseerr string to mention CSRF

* Update homeassistant/components/overseerr/strings.json

* Update homeassistant/components/overseerr/strings.json

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2025-01-31 22:29:31 +02:00
Joris Pelgröm 7103ea7e8f Add exception handling for updating LetPot time entities (#137033)
* Handle exceptions for entity edits for LetPot

* Set exception-translations: done
2025-01-31 22:28:23 +02:00
Ernst Klamer 164d38ac0d Bump bthome-ble to 3.11.0 (#137032)
bump bthome-ble to 3.11.0
2025-01-31 22:03:17 +02:00
Josef Zweck 4a2e9db9fe Use readable backup names for onedrive (#137031)
* Use readable names for onedrive

* ensure filename is fixed

* fix import
2025-01-31 20:59:34 +01:00
Paulus Schoutsen e1105ef2fa Bump version to 2025.2.0b3 2025-01-31 19:25:16 +00:00
Robert Resch 5450ed8445 Bump deebot-client to 11.1.0b2 (#137030) 2025-01-31 19:24:42 +00:00
J. Nick Koston 7deb1715dd Bump SQLAlchemy to 2.0.37 (#137028)
changelog: https://docs.sqlalchemy.org/en/20/changelog/changelog_20.html#change-2.0.37

There is a bug fix that likely affects us that could lead to corrupted queries
https://docs.sqlalchemy.org/en/20/changelog/changelog_20.html#change-e4d04d8eb1bccee16b74f5662aff8edd
2025-01-31 19:24:41 +00:00
J. Nick Koston ca2a555037 Bump bleak-esphome to 2.6.0 (#137025) 2025-01-31 19:24:41 +00:00
Bram Kragten ae79b09401 Update frontend to 20250131.0 (#137024) 2025-01-31 19:24:40 +00:00
J. Nick Koston e86a633c23 Bump habluetooth to 3.17.0 (#137022) 2025-01-31 19:24:39 +00:00
Erik Montnemery b412164440 Make supervisor backup file names more user friendly (#137020) 2025-01-31 19:24:39 +00:00
Norbert Rittel 4fe76ec78c Revert previous PR and remove URL from error message instead (#137018) 2025-01-31 19:24:38 +00:00
Erik Montnemery f4166c5390 Make sure we load the backup integration before frontend (#137010) 2025-01-31 19:24:37 +00:00
Cyrill Raccaud 3107b81333 Remove the unparsed config flow error from Swiss public transport (#136998) 2025-01-31 19:24:36 +00:00
Joost Lekkerkerker 07b85163d5 Use device name as entity name in Eheim digital climate (#136997) 2025-01-31 19:24:35 +00:00
Duco Sebel c28d465f3b Bumb python-homewizard-energy to 8.3.2 (#136995) 2025-01-31 19:24:34 +00:00
Josef Zweck 00298db465 Call backup listener during setup in onedrive (#136990) 2025-01-31 19:24:34 +00:00
Cyrill Raccaud 6bab5b2c32 Fix missing duration translation for Swiss public transport integration (#136982) 2025-01-31 19:24:33 +00:00
Josef Zweck 0272d37e88 Retry backup uploads in onedrive (#136980)
* Retry backup uploads in onedrive

* no exponential backup on timeout
2025-01-31 19:24:32 +00:00
Erik Montnemery 26ae498974 Delete old addon update backups when updating addon (#136977)
* Delete old addon update backups when updating addon

* Address review comments

* Add tests
2025-01-31 19:24:31 +00:00
J. Nick Koston c77bca1e44 Bump habluetooth to 3.15.0 (#136973) 2025-01-31 19:24:30 +00:00
Michael Hansen ad86f9efd5 Consume extra system prompt in first pipeline (#136958) 2025-01-31 19:24:30 +00:00
Matthias Alphart 71a40d9234 Update knx-frontend to 2025.1.30.194235 (#136954) 2025-01-31 19:24:29 +00:00
J. Nick Koston eb344ba335 Bump aiohttp-asyncmdnsresolver to 0.0.2 (#136942) 2025-01-31 19:22:11 +00:00
J. Nick Koston eca30717a9 Bump zeroconf to 0.142.0 (#136940)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.141.0...0.142.0
2025-01-31 19:22:10 +00:00
Erik Montnemery 6e55ba137a Make backup file names more user friendly (#136928)
* Make backup file names more user friendly

* Strip backup name

* Strip backup name

* Underscores
2025-01-31 19:22:10 +00:00
tronikos a391f0a7cc Bump opower to 0.8.9 (#136911)
* Bump opower to 0.8.9

* mypy
2025-01-31 19:22:09 +00:00
tronikos c9fd27555c Include the redirect URL in the Google Drive instructions (#136906)
* Include the redirect URL in the Google Drive instructions

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-01-31 19:22:08 +00:00
Allen Porter 9cd48dd452 Persist roborock maps to disk only on shutdown (#136889)
* 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>
2025-01-31 19:22:07 +00:00
Avi Miller a74328e600 Suppress color_temp warning if color_temp_kelvin is provided (#136884) 2025-01-31 19:22:06 +00:00
Jan Stienstra 5cec045cac Bump jellyfin-apiclient-python to 1.10.0 (#136872) 2025-01-31 19:22:06 +00:00
Norbert Rittel 04a7c6f15e Fixes to the user-facing strings of energenie_power_sockets (#136844) 2025-01-31 19:22:05 +00:00
Austin Mroczek 833b17a8ee Bump total-connect-client to 2025.1.4 (#136793) 2025-01-31 19:22:04 +00:00
Sid a955901d40 Refactor eheimdigital platform async_setup_entry (#136745) 2025-01-31 19:22:03 +00:00
starkillerOG 9a55b5e3f7 Ensure Reolink can start when privacy mode is enabled (#136514)
* 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>
2025-01-31 19:22:03 +00:00
Robert Resch df166d178c Bump deebot-client to 11.1.0b2 (#137030) 2025-01-31 14:17:14 -05:00
J. Nick Koston f75a61ac90 Bump SQLAlchemy to 2.0.37 (#137028)
changelog: https://docs.sqlalchemy.org/en/20/changelog/changelog_20.html#change-2.0.37

There is a bug fix that likely affects us that could lead to corrupted queries
https://docs.sqlalchemy.org/en/20/changelog/changelog_20.html#change-e4d04d8eb1bccee16b74f5662aff8edd
2025-01-31 13:52:38 -05:00
starkillerOG 92dd18a9be Ensure Reolink can start when privacy mode is enabled (#136514)
* 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>
2025-01-31 13:48:47 -05:00
Allen Porter df59b1d4fa Persist roborock maps to disk only on shutdown (#136889)
* 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>
2025-01-31 13:45:01 -05:00
Martin Hjelmare 9bc3c417ae Add codeowner to Home Connect (#137029) 2025-01-31 12:36:40 -06:00
Erik Montnemery 065cdf421f Delete old addon update backups when updating addon (#136977)
* Delete old addon update backups when updating addon

* Address review comments

* Add tests
2025-01-31 13:33:48 -05:00
Bram Kragten 256157d413 Update frontend to 20250131.0 (#137024) 2025-01-31 19:25:24 +01:00
J. Nick Koston f8f12957b5 Bump bleak-esphome to 2.6.0 (#137025) 2025-01-31 12:15:31 -06:00
J. Nick Koston c4cb94bddd Bump habluetooth to 3.17.0 (#137022) 2025-01-31 11:29:44 -06:00
Erik Montnemery 64f679ba8f Make supervisor backup file names more user friendly (#137020) 2025-01-31 18:20:30 +01:00
Duco Sebel e0bf248867 Bumb python-homewizard-energy to 8.3.2 (#136995) 2025-01-31 10:49:25 -06:00
Nathan Spencer b1c3d0857a Add pets to litterrobot integration (#136865) 2025-01-31 17:35:08 +01:00
Erik Montnemery e18dc063ba Make backup file names more user friendly (#136928)
* Make backup file names more user friendly

* Strip backup name

* Strip backup name

* Underscores
2025-01-31 17:33:30 +01:00
Joris Pelgröm b85b834bdc Bump letpot to 0.4.0 (#137007)
* Bump letpot to 0.4.0

* Fix test item
2025-01-31 10:31:31 -06:00
RJPoelstra f5924146c1 Add data_description's to motionmount integration (#137014)
* Add data_description's

* Use more common terminology
2025-01-31 10:29:59 -06:00
Norbert Rittel fafeedd01b Revert previous PR and remove URL from error message instead (#137018) 2025-01-31 10:26:43 -06:00
Erik Montnemery 64814e086f Make sure we load the backup integration before frontend (#137010) 2025-01-31 15:50:30 +00:00
Joost Lekkerkerker 6f1539f60d Use device name as entity name in Eheim digital climate (#136997) 2025-01-31 15:32:11 +00:00
Jakob Schlyter 84ae476b67 Energy distance units (#136933)
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2025-01-31 14:22:25 +00:00
Josef Zweck 21ffcf853b Call backup listener during setup in onedrive (#136990) 2025-01-31 13:39:59 +01:00
RJPoelstra d4a355e684 Bump python-MotionMount to 2.3.0 (#136985) 2025-01-31 13:29:07 +01:00
Manu 0773e37dab Create/delete lists at runtime in Bring integration (#130098) 2025-01-31 13:23:44 +01:00
Cyrill Raccaud 8eb9cc0e8e Remove the unparsed config flow error from Swiss public transport (#136998) 2025-01-31 13:19:04 +01:00
RJPoelstra b702d88ab7 Use runtime_data in motionmount integration (#136999) 2025-01-31 13:17:22 +01:00
starkillerOG 66f048f49f Make Reolink reboot button always available (#136667) 2025-01-31 13:15:22 +01:00
Steven B. c7041a97be Do not duplicate device class translations in ring integration (#136868) 2025-01-31 13:03:13 +01:00
Josef Zweck f21ab24b8b Add sensors for drink stats per key to lamarzocco (#136582)
* Add sensors for drink stats per key to lamarzocco

* Add icon

* Use UOM translations

* fix tests

* remove translation key

* Update sensor.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-01-31 12:55:51 +01:00
Sid cde59613a5 Refactor eheimdigital platform async_setup_entry (#136745) 2025-01-31 12:52:17 +01:00
Christopher Fenner d83c335ed6 Add support for standby quickmode to ViCare integration (#133156) 2025-01-31 12:45:58 +01:00
Andrew Jackson 50f3d79fb2 Add post action to mastodon (#134788)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-01-31 12:29:23 +01:00
Jan Stienstra a7903d344f Bump jellyfin-apiclient-python to 1.10.0 (#136872) 2025-01-31 12:29:00 +01:00
Gerben Jongerius 010cad08c0 Add tariff sensor and peak sensors (#136919) 2025-01-31 12:12:07 +01:00
Cyrill Raccaud e512ad7a81 Fix missing duration translation for Swiss public transport integration (#136982) 2025-01-31 12:10:44 +01:00
Markus Adrario e578327054 Add more Homee cover tests (#136568) 2025-01-31 11:46:12 +01:00
Josef Zweck 230e101ee4 Retry backup uploads in onedrive (#136980)
* Retry backup uploads in onedrive

* no exponential backup on timeout
2025-01-31 11:23:33 +01:00
Abílio Costa 3fb70316da Fix error messaging for cascading service calls (#136966) 2025-01-31 11:10:57 +01:00
Avi Miller ab5583ed40 Suppress color_temp warning if color_temp_kelvin is provided (#136884) 2025-01-31 10:55:42 +01:00
Norbert Rittel f1c720606f Fixes to the user-facing strings of energenie_power_sockets (#136844) 2025-01-31 10:38:30 +01:00
Austin Mroczek 270108e8e4 Bump total-connect-client to 2025.1.4 (#136793) 2025-01-31 10:36:06 +01:00
J. Nick Koston fc979cd564 Bump habluetooth to 3.15.0 (#136973) 2025-01-31 08:34:39 +01:00
tronikos 99e307fe5a Bump opower to 0.8.9 (#136911)
* Bump opower to 0.8.9

* mypy
2025-01-30 23:33:58 -08:00
J. Diego Rodríguez Royo 4d4e11a0eb Fetch all programs instead of only the available ones at Home Connect (#136949)
Fetch all programs instead of only the available ones
2025-01-31 08:26:57 +01:00
Shay Levy 4613087e86 Add serial number to LG webOS TV device info (#136968) 2025-01-31 08:23:03 +01:00
tronikos 6c93d6a2d0 Include the redirect URL in the Google Drive instructions (#136906)
* Include the redirect URL in the Google Drive instructions

* Apply suggestions from code review

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-01-30 22:59:03 -08:00
Norbert Rittel f93b1cc950 Make assist_satellite action descriptions consistent (#136955)
- use third-person singular for descriptive language, following HA standards
- use "a satellite" in both descriptions to match
- use sentence-casing for "Start conversation" action name
2025-01-30 16:03:56 -06:00
Michael Hansen 00f8afe332 Consume extra system prompt in first pipeline (#136958) 2025-01-30 17:01:24 -05:00
Matthias Alphart ea496290c2 Update knx-frontend to 2025.1.30.194235 (#136954) 2025-01-30 21:59:00 +01:00
epenet acb3f4ed78 Add software version to onewire device info (#136934) 2025-01-30 21:03:47 +01:00
J. Nick Koston b12598d963 Bump aiohttp-asyncmdnsresolver to 0.0.2 (#136942) 2025-01-30 20:38:27 +01:00
J. Nick Koston cf737356fd Bump zeroconf to 0.142.0 (#136940)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.141.0...0.142.0
2025-01-30 12:55:14 -06:00
Bram Kragten 3847057444 Bump version to 2025.2.0b2 2025-01-30 19:28:55 +01:00
Bram Kragten 659a0df9ab Update frontend to 20250130.0 (#136937) 2025-01-30 19:21:55 +01:00
Maciej Bieniek 74f0af1ba1 Fix KeyError for Shelly virtual number component (#136932) 2025-01-30 19:21:54 +01:00
Michael ad6c3f9e10 Fix backup related translations in Synology DSM (#136931)
refernce backup related strings in option-flow strings
2025-01-30 19:21:53 +01:00
Josef Zweck 252b13e63a Pick onedrive owner from a more reliable source (#136929)
* Pick onedrive owner from a more reliable source

* fix
2025-01-30 19:21:52 +01:00
Joost Lekkerkerker 07acabdb36 Create Xbox signed session in executor (#136927) 2025-01-30 19:21:51 +01:00
Joost Lekkerkerker f479ed4ff0 Fix Sonos importing deprecating constant (#136926) 2025-01-30 19:21:51 +01:00
Joost Lekkerkerker b70598673b Show name of the backup agents in issue (#136925)
* 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>
2025-01-30 19:21:50 +01:00
tronikos 08bb027eac Don't log errors when raising a backup exception in Google Drive (#136916) 2025-01-30 19:21:49 +01:00
Maciej Bieniek 613f0add76 Convert valve position to int for Shelly BLU TRV (#136912) 2025-01-30 19:21:48 +01:00
Josef Zweck 9e23ff9a4d Fix onedrive does not fail on delete not found (#136910)
* Fix onedrive does not fail on delete not found

* Fix onedrive does not fail on delete not found
2025-01-30 19:21:47 +01:00
Erik Montnemery fad3d5d293 Don't blow up when a backup doesn't exist on supervisor (#136907) 2025-01-30 19:21:46 +01:00
Erik Montnemery b300fb1fab Fix handling of renamed backup files in the core writer (#136898)
* 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
2025-01-30 19:21:46 +01:00
Erik Montnemery aed779172d Ignore dangling symlinks when restoring backup (#136893) 2025-01-30 19:21:45 +01:00
epenet 5e646a3cb6 Add missing discovery string from onewire (#136892) 2025-01-30 19:21:44 +01:00
Erik Montnemery 0764aca2f1 Poll supervisor job state when creating or restoring a backup (#136891)
* Poll supervisor job state when creating or restoring a backup

* Update tests

* Add tests for create and restore jobs finishing early
2025-01-30 19:21:43 +01:00
Allen Porter 8babdc0b71 Bump nest to 7.1.1 (#136888) 2025-01-30 19:21:43 +01:00
TheJulianJES ff64e5a312 Bump ZHA to 0.0.47 (#136883) 2025-01-30 19:21:42 +01:00
TimL 55ac0b0f37 Fix loading of SMLIGHT integration when no internet is available (#136497)
* Don't fail to load integration if internet unavailable

* Add test case for no internet

* Also test we recover after internet returns
2025-01-30 19:21:41 +01:00
Paulus Schoutsen f391438d0a Add start_conversation service to Assist Satellite (#134921)
* 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>
2025-01-30 19:21:39 +01:00
Bram Kragten 6858f2a3d2 Update frontend to 20250130.0 (#136937) 2025-01-30 18:38:11 +01:00
Joost Lekkerkerker c3b0bc3e0d Show name of the backup agents in issue (#136925)
* 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>
2025-01-30 18:15:54 +01:00
tronikos 3dc52774fc Don't log errors when raising a backup exception in Google Drive (#136916) 2025-01-30 18:15:13 +01:00
Maciej Bieniek f501b55aed Fix KeyError for Shelly virtual number component (#136932) 2025-01-30 18:43:48 +02:00
moritzthecat eca93f1f4e Add DS2450 to onewire integration (#136882)
* add DS2450 to onewire integration

* added tests for DS2450 in const.py

* Update homeassistant/components/onewire/sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* spelling change voltage -> Voltage

* use translation key

* tests run after en.json edited

* Update homeassistant/components/onewire/strings.json

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* naming convention adapted

* Update homeassistant/components/onewire/sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* adatpt owfs namings to HA namings. volt -> voltage

* Apply suggestions from code review

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2025-01-30 17:33:41 +01:00
Erik Montnemery ec53b08e09 Don't blow up when a backup doesn't exist on supervisor (#136907) 2025-01-30 17:32:01 +01:00
Josef Zweck 63af407f8f Pick onedrive owner from a more reliable source (#136929)
* Pick onedrive owner from a more reliable source

* fix
2025-01-30 17:08:35 +01:00
Michael 6dd2d46328 Fix backup related translations in Synology DSM (#136931)
refernce backup related strings in option-flow strings
2025-01-30 16:59:39 +01:00
Jan Bouwhuis 8db6a6cf17 Shorten the integration name for incomfort (#136930) 2025-01-30 17:47:09 +02:00
Josef Zweck d148bd9b0c Fix onedrive does not fail on delete not found (#136910)
* Fix onedrive does not fail on delete not found

* Fix onedrive does not fail on delete not found
2025-01-30 16:33:59 +01:00
Joost Lekkerkerker 773375e7b0 Fix Sonos importing deprecating constant (#136926) 2025-01-30 16:16:39 +01:00
Joost Lekkerkerker 232e99b62e Create Xbox signed session in executor (#136927) 2025-01-30 16:16:22 +01:00
Erik Montnemery bab616fa61 Fix handling of renamed backup files in the core writer (#136898)
* 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
2025-01-30 15:25:16 +01:00
Maciej Bieniek 1c4ddb36d5 Convert valve position to int for Shelly BLU TRV (#136912) 2025-01-30 15:16:51 +02:00
Duco Sebel 76570b5144 Remove stale translation string in HomeWizard (#136917)
Remove stale translation in HomeWizard
2025-01-30 14:47:33 +02:00
epenet 5dd147e83b Add missing discovery string from onewire (#136892) 2025-01-30 11:46:27 +01:00
TimL 9eb383f314 Bump Pysmlight to v0.2.0 (#136886)
* Bump pysmlight to v0.2.0

* Update info.json fixture with radios list

* Update diagnostics snapshot
2025-01-30 12:11:40 +02:00
Erik Montnemery 52feeedd2b Poll supervisor job state when creating or restoring a backup (#136891)
* Poll supervisor job state when creating or restoring a backup

* Update tests

* Add tests for create and restore jobs finishing early
2025-01-30 11:09:31 +01:00
Erik Montnemery 1b5316b269 Ignore dangling symlinks when restoring backup (#136893) 2025-01-30 11:09:07 +01:00
Allen Porter 708ae09c7a Bump nest to 7.1.1 (#136888) 2025-01-30 11:07:55 +02:00
Arie Catsman 97fcbed6e0 Add error handling to enphase_envoy switch platform action (#136837)
* Add error handling to enphase_envoy switch platform action

* Use decorators for exception handling
2025-01-30 11:07:10 +02:00
dependabot[bot] a8175b785f Bump github/codeql-action from 3.28.6 to 3.28.8 (#136890)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.6 to 3.28.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3.28.6...v3.28.8)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-30 08:42:23 +01:00
TheJulianJES 64b056fbe9 Bump ZHA to 0.0.47 (#136883) 2025-01-29 20:57:36 -06:00
Paulus Schoutsen 427c437a68 Add start_conversation service to Assist Satellite (#134921)
* 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>
2025-01-29 21:32:10 -05:00
J. Diego Rodríguez Royo b637129208 Migrate from homeconnect dependency to aiohomeconnect (#136116)
* 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>
2025-01-30 02:42:41 +01:00
TimL 4e3e1e91b7 Fix loading of SMLIGHT integration when no internet is available (#136497)
* Don't fail to load integration if internet unavailable

* Add test case for no internet

* Also test we recover after internet returns
2025-01-30 01:01:39 +00:00
Artur Pragacz 4066289662 Update quality scale in Onkyo (#136710) 2025-01-29 22:32:16 +00:00
Paulus Schoutsen 9c8d31a3d5 Bump version to 2025.2.0b1 2025-01-29 21:18:11 +00:00
Erik Montnemery 49b90fc140 Bump backup store to version 1.3 (#136870)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2025-01-29 21:17:58 +00:00
J. Nick Koston 9c0fa327a6 Fix incorrect Bluetooth source address when restoring data from D-Bus (#136862) 2025-01-29 21:17:58 +00:00
Abílio Costa 0f97747d27 Handle locked account error in Whirlpool (#136861) 2025-01-29 21:17:57 +00:00
Michael Hansen d338b0a2ff Cancel call if user does not pick up (#136858) 2025-01-29 21:17:56 +00:00
Erik Montnemery 6247a847bf Persist hassio backup restore status after core restart (#136857)
* Persist hassio backup restore status after core restart

* Remove useless condition
2025-01-29 21:17:56 +00:00
Erik Montnemery aca9607e2f Bump backup store to version 1.3 (#136870)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2025-01-29 14:58:06 -06:00
J. Nick Koston edabf0f8dd Fix incorrect Bluetooth source address when restoring data from D-Bus (#136862) 2025-01-29 13:09:00 -06:00
Erik Montnemery 5286bd8f0c Persist hassio backup restore status after core restart (#136857)
* Persist hassio backup restore status after core restart

* Remove useless condition
2025-01-29 13:55:02 -05:00
Michael Hansen d206553a0d Cancel call if user does not pick up (#136858) 2025-01-29 13:52:32 -05:00
Abílio Costa b500fde468 Handle locked account error in Whirlpool (#136861) 2025-01-29 13:51:09 -05:00
Bram Kragten 46cef2986c Bump version to 2025.3.0 (#136859) 2025-01-29 19:32:36 +01:00
Bram Kragten 1d196e1b1f Bump version to 2025.2.0b0 2025-01-29 18:28:47 +01:00
Erik Montnemery 8749210d1b Add support for per-backup agent encryption flag to hassio (#136828)
* Add support for per-backup agent encryption flag to hassio

* Improve comment

* Set password to None when supervisor should not encrypt
2025-01-29 18:28:47 +01:00
Erik Montnemery 823df4242d Add support for per-backup agent encryption flag to hassio (#136828)
* Add support for per-backup agent encryption flag to hassio

* Improve comment

* Set password to None when supervisor should not encrypt
2025-01-29 18:23:25 +01:00
Abílio Costa 6a8e45c51e Update whirlpool-sixth-sense to 0.18.12 (#136851) 2025-01-29 18:20:14 +01:00
Luke Lashley 4ce891512e Add ability to cache Roborock maps instead of always reloading (#112047)
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>
2025-01-29 18:16:28 +01:00
Abílio Costa a61399f189 Simplify Whirlpool auth flows (#136856) 2025-01-29 17:09:44 +00:00
epenet 89e6791fee Use runtime_data in control4 (#136403) 2025-01-29 17:50:36 +01:00
Erik Montnemery 660653e226 Interrupt _CipherBackupStreamer workers (#136845)
* Interrupt _CipherBackupStreamer workers

* Fix cleanup

* Only abort live threads
2025-01-29 17:44:29 +01:00
Tomer 3118831557 Ease understanding of integration failures (#134475)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: David Bonnes <zxdavb@bonnes.me>
2025-01-29 17:43:25 +01:00
Marcel van der Veldt 72caf9d5a2 Tweak Matter discovery to ignore empty lists (#136854) 2025-01-29 17:41:28 +01:00
Bram Kragten acbf40c384 Update frontend to 20250129.0 (#136852) 2025-01-29 17:33:31 +01:00
Norbert Rittel 63f34e346a Fix spelling of "API" for consistency in Home Assistant UI (#136843) 2025-01-29 11:28:32 -05:00
Nathan Spencer 35e3952770 Add DHCP discovery to balboa (#136762) 2025-01-29 17:28:09 +01:00
Lars fa6df1cc25 Check for fullcolorsupport in fritzbox light (#136850) 2025-01-29 17:15:54 +01:00
Erik Montnemery b2ec72d75f Persist backup restore status after core restart (#136838)
* Persist backup restore status after core restart

* Don't blow up if restore result file can't be removed

* Update tests
2025-01-29 16:58:33 +01:00
Paulus Schoutsen 8ab6bec746 Migrate Google Gen AI to ChatSession (#136779)
* Migrate Google Gen AI to ChatSession

* Remove unused method
2025-01-29 10:42:39 -05:00
epenet 83b34c6faf Adjust deprecation in water heater (#136577) 2025-01-29 16:15:20 +01:00
Teemu R. 653ff47171 Add cleaning statistics for tplink (#135784)
Co-authored-by: Steven B <51370195+sdb9696@users.noreply.github.com>
2025-01-29 08:56:47 -06:00
Teemu R. c7176f6849 Add consumables for tplink tapo vacuums (#136510)
Co-authored-by: Steven B <51370195+sdb9696@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-01-29 08:23:54 -06:00
Norbert Rittel 6d91f8d86c Fix spelling of "API" for consistency in Home Assistant UI (#136842) 2025-01-29 14:36:05 +01:00
Simon Lamon d9deba3916 Take exclude vias in unique ids for nmbs (#136590) 2025-01-29 14:25:28 +01:00
Ludovic BOUÉ 32829596eb Add select platform discovery schemas for the Matter LaundryWasherControls cluster (#136261) 2025-01-29 14:17:00 +01:00
Erik Montnemery 9a687e7f94 Add support for per-backup agent encryption flag (#136622)
* 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
2025-01-29 14:04:17 +01:00
Tom 3e513dda62 IQS completion of documentation for Plugwise (#134051) 2025-01-29 13:40:05 +01:00
epenet 20ab6e2279 Standardize remaining homeassistant imports (#136836) 2025-01-29 13:39:31 +01:00
Christopher Fenner b6cc5090e4 Update photovoltaic related labels in ViCare (#136430) 2025-01-29 13:39:05 +01:00
Thomas D 40f92b7b6b Bump qbusmqttapi to 1.2.4 (#136835) 2025-01-29 13:02:20 +01:00
Michael c974251faa Fix command latency in AVM Fritz!SmartHome (#136739) 2025-01-29 12:55:59 +01:00
Duco Sebel bc2976904e Rename HomeWizard last restart sensor to Uptime (#136829) 2025-01-29 12:54:08 +01:00
Erik Montnemery 7249c02655 Add backup endpoints to the onboarding integration (#136051)
* 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
2025-01-29 12:32:18 +01:00
epenet 706a01837c Standardize homeassistant imports in component (v-z) (#136834) 2025-01-29 12:25:04 +01:00
epenet 844259bd6c Standardize homeassistant imports in component (s) (#136832) 2025-01-29 12:24:31 +01:00
epenet 1ef809c716 Standardize homeassistant imports in component (q-r) (#136831) 2025-01-29 12:24:09 +01:00
epenet ebda2f9994 Standardize homeassistant imports in component (n-p) (#136830) 2025-01-29 12:23:49 +01:00
dontinelli c486cc8cbb Add image entity for fyta (#135105) 2025-01-29 12:14:39 +01:00
epenet 95c632e283 Standardize homeassistant imports in component (t-u) (#136833) 2025-01-29 12:14:21 +01:00
Nathan Spencer ddb71a85b3 Update quality scale for litterrobot (#136764) 2025-01-29 11:58:14 +01:00
epenet b594c29171 Standardize homeassistant imports in component (g-h) (#136825) 2025-01-29 11:57:01 +01:00
epenet 9046ab0250 Standardize homeassistant imports in component (i-k) (#136826) 2025-01-29 11:56:50 +01:00
epenet ccdcba97b5 Standardize homeassistant imports in component (l-m) (#136827) 2025-01-29 11:56:40 +01:00
Brett Adams ea62da553e Correct the behavior of the Charge switch in Tessie/Teslemetry/Tesla Fleet (#136562) 2025-01-29 11:41:33 +01:00
epenet aa6ffb3da5 Improve type hints in environment_canada camera and weather (#136819) 2025-01-29 11:39:40 +01:00
epenet 3472e0e370 Standardize homeassistant imports in component (a-b) (#136821) 2025-01-29 11:37:48 +01:00
epenet 4f6a5bb65b Standardize homeassistant imports in component (c-d) (#136823) 2025-01-29 11:37:16 +01:00
epenet a9433ca697 Standardize homeassistant imports in component (e-f) (#136824) 2025-01-29 11:36:22 +01:00
epenet bfa7eaa221 Improve type hints in environment_canada sensors (#136813)
* Use TypeVar

* Use bound for TypeVar

* Remove PEP 695 syntax

* Add type alias to use new TypeVar syntax

---------

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2025-01-29 11:31:54 +01:00
Robert Resch 5e6f4a374e Bump deebot-client to 11.1.0b1 (#136818) 2025-01-29 11:13:55 +01:00
David Knowles b73203fdf6 Use the new hybrid Hydrawise client (#136522)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-01-29 11:06:59 +01:00
Cyrill Raccaud 04d1d80917 Add diagnostics for Cookidoo integration (#136770)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-01-29 11:06:39 +01:00
cdnninja ce432555f0 Add binary sensor platform to VeSync (#134221)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-01-29 10:59:34 +01:00
Andrew Onyshchuk e27a980742 vesync: report current humidity (#136799) 2025-01-29 10:57:49 +01:00
Iskra kranj c312796aae Bump pyiskra to 0.1.15 (#136810) 2025-01-29 10:57:22 +01:00
Steven B. 6b4ec3f3f4 Use translations for fan_speed in tplink vacuum entity (#136718) 2025-01-29 10:55:19 +01:00
Duco Sebel 60b6a11d4e Add last restart sensor to HomeWizard (#136763) 2025-01-29 10:51:58 +01:00
Robert Resch fe31dc936c Stop building wheels for 3.12 (#136811) 2025-01-29 10:49:49 +01:00
Erik Montnemery 646e0d4626 Bump aiohasupervisor to version 0.2.2b6 (#136814) 2025-01-29 10:42:30 +01:00
epenet a6d132a337 Simplify device_info access in environment_canada (#136816)
* Simplify device_info access in environment_canada

* Update homeassistant/components/environment_canada/coordinator.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-01-29 10:41:33 +01:00
G Johansson b93c2382ce Add config flow to filter helper (#121522)
Co-authored-by: Robert Resch <robert@resch.dev>
2025-01-29 10:35:01 +01:00
epenet 417003ad35 Rename environment_canada entities (#136817) 2025-01-29 10:23:37 +01:00
epenet 7b1b229718 Standardize homeassistant imports in component tests (a-l) (#136806) 2025-01-29 10:00:45 +01:00
Michael 9169d55cf6 Use ConfigEntry.runtime_data in AVM Fritz!Box tools (#136386)
* implement FritzConfigEntry with runtime_data

* use HassKey for platform global data

* update quality scale

* fix after rebase

* use FritzConfigEntry everywhere possible

* fix import of FritzConfigEntry in services.py

* pass the config_entry explicitly in coordinator init

* improve typing of FritzData

* use FritzConfigEntry in config_flow.py
2025-01-29 09:49:02 +01:00
epenet 11671e1875 Use runtime_data in energenie_power_sockets (#136801)
* Use runtime_data in energenie_power_sockets

* Fix  tests
2025-01-29 09:36:53 +01:00
Marcel van der Veldt 609eb00a26 Add remaining Matter Operational State sensor discovery schemas (#136741) 2025-01-29 09:16:30 +01:00
Brett Adams 447096b295 Fix percentage_charged in Teslemetry (#136798)
Fix percentage_charged
2025-01-29 10:12:36 +02:00
epenet 0c6c9e0ae6 Use runtime_data in elmax (#136803) 2025-01-29 09:04:24 +01:00
epenet 5038847d67 Use runtime_data in environment_canada (#136805) 2025-01-29 09:03:25 +01:00
epenet d0a188b86d Standardize homeassistant imports in component tests (m-z) (#136807) 2025-01-29 08:57:57 +01:00
Andrew Sayre a135b4bb43 Enable strict typing for HEOS (#136797) 2025-01-29 07:28:13 +01:00
tronikos a2b5a96bc9 Add Google Drive integration for backup (#134576)
* 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>
2025-01-28 21:43:30 -08:00
Teemu R. 94e4863cbe Add power protection entities for tplink (#132267)
Co-authored-by: Steven B <51370195+sdb9696@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-01-28 19:34:26 -10:00
Michael Hansen 48dfa037bd Bump intents to 2025.1.28 (#136782)
* Bump intents to 2025.1.28

* Fix snapshots
2025-01-28 22:25:35 -06:00
Petro31 d06b0fe340 Reload template blueprints when reloading templates (#136794) 2025-01-28 22:48:38 -05:00
Duco Sebel f909b54811 Redact stored authentication token in HomeWizard diagnostics (#136766) 2025-01-28 22:46:52 -05:00
Matthias Alphart 688a1f1d52 Add UI to create KNX BinarySensor entities (#136786)
Update knx-frontend to 2025.1.28.225404
2025-01-28 22:46:26 -05:00
Andrew Sayre bc7c5fbc86 Fix typing errors in HEOS tests (#136795)
* Correct typing errors of mocked heos

* Fix player related typing issues

* Sort mocks
2025-01-28 22:44:57 -05:00
J. Nick Koston 9f586ea547 Bump habluetooth to 3.14.0 (#136791) 2025-01-29 02:10:33 +01:00
Michael Hansen 64cda8cdb8 Add VoIP announce (#136781)
* Implement async_announce for VoIP

* Add tests

* Add network to voip dependencies
2025-01-28 19:32:08 -05:00
Michael 7256575c09 Explicitly pass in the config_entry in Nextcloud coordinator init (#136774) 2025-01-29 01:26:20 +01:00
Michael 3638eb1d34 Explicitly pass in the config_entry in Synology DSM coordinator init (#136772) 2025-01-29 01:25:34 +01:00
Teemu R. c2cbbf1e1c Add more vacuum features for tplink (#136580) 2025-01-29 01:23:29 +01:00
Michael e07e8b8706 Explicitly pass in the config_entry in Proximity coordinator init (#136775) 2025-01-29 01:19:16 +01:00
Michael 01b278c547 Explicitly pass in the config_entry in Tankerkoenig coordinator init (#136780) 2025-01-29 01:18:21 +01:00
IceBotYT ba2d1e698d Bump peco to 0.1.2 (#136732) 2025-01-29 01:15:06 +01:00
Michael f98dc160f3 Explicitly pass in the config_entry in AVM Fritz!SmartHome coordinator init (#136769) 2025-01-29 01:13:49 +01:00
Michael 032e17720c Explicitly pass in the config_entry in PEGELONLINE coordinator init (#136773) 2025-01-29 01:11:54 +01:00
Michael 177bb29f69 Explicitly pass in the config_entry in Feedreader coordinator init (#136777) 2025-01-29 01:08:27 +01:00
TheJulianJES fa2aeae30f Bump ZHA to 0.0.46 (#136785) 2025-01-29 01:05:32 +01:00
Shay Levy 898d12aa21 Bump aiowebostv to 0.6.1 (#136784) 2025-01-29 01:05:05 +01:00
Duco Sebel 7d0e314c35 Bumb python-homewizard-energy to 8.3.0 (#136765) 2025-01-29 01:00:46 +01:00
Michael Hansen eb4a05e365 Bump hassil to 2.2.0 (#136787) 2025-01-28 18:58:53 -05:00
J. Nick Koston 68dbe34b89 Add Bluetooth WebSocket API to subscribe to scanner details (#136750) 2025-01-28 13:06:24 -10:00
hahn-th 29a3f0a271 Bump homematicip to 1.1.7 (#136767) 2025-01-29 01:06:19 +02:00
J. Nick Koston c55caabbff Abort Bluetooth options flow if local adapters do not support passive scans (#136748) 2025-01-28 13:05:53 -10:00
Paul Bottein cc4abcadcd Add translations for ZHA pilot wire mode and device mode (#136753) 2025-01-28 23:32:13 +01:00
Richard Polzer 77d9309b81 Add swing support for KNX climate entities (#136752)
* added swing to knx climate

* added tests for climate swing

* removed type ignores

* removed unreachable code
2025-01-28 22:52:39 +01:00
mkmer 814e98f66a Bump AIOSomecomfort to 0.0.32 (#136751) 2025-01-28 21:50:01 +00:00
Abílio Costa c46258fbf7 Add volt/power/power_factor strings and state attrs for ZHA 3 phase meters (#133969) 2025-01-28 22:39:33 +01:00
Richard Polzer 51ce6f0933 Update xknx to 3.5.0 (#136759)
Dependency Bump 3.5.0
2025-01-28 22:24:47 +01:00
J. Nick Koston 1face8df56 Bump habluetooth to 3.13.0 (#136749) 2025-01-28 20:43:00 +01:00
Norbert Rittel ee1d76de9f Capitalize "Velbus", replace "service calls" with "actions" (#136744) 2025-01-28 19:37:01 +00:00
Shay Levy 55fc01be8e Fix LG webOS TV actions not returning responses (#136743) 2025-01-28 20:55:06 +02:00
J. Nick Koston bae9516fc2 Bump yeelight to 0.7.16 (#136679) 2025-01-28 08:44:25 -10:00
Nathan Spencer 404ca283c6 Let platforms decide entity creation in litterrobot (#136738) 2025-01-28 19:28:01 +01:00
Teemu R. 37b23a9691 Add pair/unpair buttons for tplink (#135847) 2025-01-28 19:17:34 +01:00
epenet b7a344fd65 Standardize homeassistant imports in core and base platforms (#136730)
Standardize homeassistant imports in core
2025-01-28 13:11:48 -05:00
epenet d5568ff955 Standardize homeassistant imports in full-CI components (#136731)
Standardize homeassistant imports in components
2025-01-28 13:11:19 -05:00
epenet 0e263aa427 Standardize homeassistant imports in full-CI tests (#136735) 2025-01-28 13:10:20 -05:00
Joost Lekkerkerker cb407bdfc6 Add support for HomeWizard Plug-In Battery and v2 API (#136733) 2025-01-28 19:09:49 +01:00
Michael a8c382566c Register service actions in async_setup of AVM Fritz!Box tools (#136380)
* 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
2025-01-28 17:57:02 +01:00
Steven B. c3db493f34 Mark tplink quality_scale platinum (#136456) 2025-01-28 17:50:06 +01:00
Brett Adams 77d42f6c57 Add streaming to Teslemetry lock platform (#136037) 2025-01-28 17:44:05 +01:00
Brett Adams 941461b427 Add streaming to Teslemetry number platform (#136048) 2025-01-28 17:43:41 +01:00
Joris Pelgröm 3eb1b182f5 Add config entry load/unload tests for LetPot (#136736) 2025-01-28 17:42:26 +01:00
Indu Prakash 9b598ed69c Add more tests to vesync (#135681) 2025-01-28 17:38:53 +01:00
Sid 3680e39c43 Add climate platform to eheimdigital (#135878) 2025-01-28 17:38:28 +01:00
cdnninja 661bacda10 Add SmartTowerFan to VeSync Integration (#136596) 2025-01-28 17:34:25 +01:00
Allen Porter e9ef82f898 Bump python-roborock to 2.9.7 (#136727) 2025-01-28 17:32:09 +01:00
Norbert Rittel 7cbc6f35d2 Fix all occurrences of "PIN" in MotionMount user strings (#136734) 2025-01-28 17:08:55 +01:00
Arie Catsman ae157e8592 Parameterize enphase_envoy number tests. (#136631) 2025-01-28 16:56:14 +01:00
Roman Sivriver 52dc124cfe Fix Telegram webhook registration if deregistration previously failed (#133398) 2025-01-28 16:46:08 +01:00
RJPoelstra b16c3a55a5 Add authentication support to MotionMount integration (#126487) 2025-01-28 16:45:19 +01:00
Ludovic BOUÉ 3f013ab620 Add sensor for Matter OperationalState cluster / CurrentPhase attribute (#129757) 2025-01-28 16:39:41 +01:00
Christopher Fenner 01f63cfefd Add SPF sensor for heat pumps in ViCare integration (#136233)
Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>
2025-01-28 16:34:08 +01:00
Josef Zweck 5695582387 Add OneDrive as backup provider (#135121)
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2025-01-28 14:57:46 +00:00
J. Nick Koston 3d7e3590d4 Migrate usb to use aiousbwatcher (#136676)
* 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>
2025-01-28 09:57:11 -05:00
epenet a05ac6255c Standardize util imports (#136723) 2025-01-28 15:54:06 +01:00
Marcel van der Veldt 22e72953e5 Adjust Matter discovery logic to disallow the primary value(s) to be None (#136712) 2025-01-28 15:24:15 +01:00
epenet 259f57b3aa Use runtime_data in devialet (#136432) 2025-01-28 15:19:54 +01:00
Shay Levy 58f7dd5dcc Fix LG webOS TV external arc volume set action (#136717) 2025-01-28 09:18:37 -05:00
Matthias Alphart 658d3cf06e Add support for KNX UI to create BinarySensor entities (#136703) 2025-01-28 09:16:58 -05:00
Dan Raper 139061afa3 Bump ohmepy to 1.2.8 (#136719) 2025-01-28 15:14:43 +01:00
Erik Montnemery abb58ec785 Include error reason in backup events (#136697)
* Include error reason in backup events

* Update hassio backup tests

* Sort code

* Remove catching BackupError in async_receive_backup
2025-01-28 14:44:09 +01:00
Franck Nijhof 9a4b73a834 Merge branch 'master' into dev 2025-01-28 13:31:50 +00:00
epenet 9897e4d3e4 Use runtime_data in drop_connect (#136442) 2025-01-28 14:10:09 +01:00
Josef Zweck 2c3cd6e119 Fix total coffees sensor for lamarzocco (#135283) 2025-01-28 14:09:22 +01:00
Andrew Sayre c4f8de8fd9 Raise exceptions in HEOS custom actions (#136546) 2025-01-28 14:08:40 +01:00
Norbert Rittel 79de8114d3 Fix spelling errors in user-facing strings of OctoPrint integration (#136644) 2025-01-28 14:07:49 +01:00
Norbert Rittel 5053b203a5 Fix spelling of "Ring" and sentence-casing of "integration" (#136652) 2025-01-28 14:06:59 +01:00
epenet 3dbcdf933e Cleanup ecobee YAML configuration import (#136633) 2025-01-28 14:04:09 +01:00
Andrew Sayre c2da844f76 Add HEOS diagnostics (#136663) 2025-01-28 14:02:15 +01:00
epenet 6278d36981 Use HassKey in diagnostics (#136627) 2025-01-28 13:49:49 +01:00
Åke Strandberg 5a52c77523 Add test for myuplink DeviceInfo (#136360) 2025-01-28 13:48:58 +01:00
Erik Montnemery e120a7b59c Fix deadlock in WS command backup/can_decrypt_on_download (#136707) 2025-01-28 13:48:42 +01:00
Erik Montnemery b1abf50a31 Tag backups created when updating addon with supervisor.addon_update (#136690) 2025-01-28 13:48:28 +01:00
Artur Pragacz be7a7c94f6 Remove unused function in hassio/update (#136701) 2025-01-28 13:43:31 +01:00
IceBotYT 1b78bbaaab Bump nice-go to 1.0.1 (#136649) 2025-01-28 13:25:54 +01:00
Manu fa4b93da2b Bump bring-api to 1.0.0 (#136657) 2025-01-28 13:24:44 +01:00
Steven B. 7f3e56eb58 Update tplink coordinators to update hub-attached children (#135586) 2025-01-28 13:17:35 +01:00
dependabot[bot] 7db6f44f2d Bump github/codeql-action from 3.28.5 to 3.28.6 (#136686)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-28 13:15:41 +01:00
Teemu R. 82ee47ef77 Initial implementation for tplink tapo vacuums (#131965)
Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-01-28 12:44:46 +01:00
epenet 1f35451863 Use runtime_data in epic_games_store (#136709) 2025-01-28 12:24:03 +01:00
Michael 8300fd2de8 Introduce unique_id to BackupAgent (#136651)
* add unique_id to BackupAgent

* adjust tests
2025-01-28 12:06:03 +01:00
epenet 91ff31a3be Use runtime_data in epion (#136708) 2025-01-28 12:01:19 +01:00
epenet 933aec1027 Use runtime_data in epson (#136706) 2025-01-28 11:57:12 +01:00
Christopher Fenner f14f7936eb Support integrated ventilation on heating devices in ViCare integration (#130356) 2025-01-28 11:55:40 +01:00
Allen Porter 3ac062453f Update nest config flow to create pub/sub topics (#136609)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-01-28 11:53:57 +01:00
epenet cd9abacdb2 Use runtime_data in eufylife_ble (#136705) 2025-01-28 11:52:10 +01:00
Christopher Fenner 8b738c919c Correct labels in EnOcean config flow (#136338) 2025-01-28 11:51:07 +01:00
epenet 7fc5a2294d Use runtime_data in evil_genius_labs (#136704) 2025-01-28 11:50:11 +01:00
epenet f1305cd5a3 Improve type hints in econet (#136693)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2025-01-28 11:45:24 +01:00
epenet d9d6308b78 Cleanup use of hass.data in edl21 (#136694) 2025-01-28 11:43:59 +01:00
epenet c7c234c5dd Use runtime_data in electric_kiwi (#136699) 2025-01-28 11:34:57 +01:00
Gerben Jongerius 164078ac69 Add translations for youless sensors (#136349) 2025-01-28 11:29:29 +01:00
epenet edac4b83d9 Use runtime_data in ezviz (#136702) 2025-01-28 11:29:26 +01:00
dependabot[bot] 6ad4dfc070 Bump actions/setup-python from 5.3.0 to 5.4.0 (#136685) 2025-01-28 11:28:21 +01:00
epenet ff73545a86 Use runtime_data in econet (#136691) 2025-01-28 11:25:27 +01:00
Nathan Spencer b1a4ba7b7c Update config flow tests for litterrobot (#136658)
Co-authored-by: Joostlek <joostlek@outlook.com>
2025-01-28 11:21:46 +01:00
epenet 5d55dcf392 Use runtime_data in electrasmart (#136696) 2025-01-28 11:58:10 +02:00
Allen Porter b1fec51e2f Update roborock tests to patch client before test setup (#136587) 2025-01-28 10:54:36 +01:00
epenet 1ad2598c6f Use runtime_data in ecoforest (#136689) 2025-01-28 08:48:59 +01:00
epenet b43379be7d Standardize helpers.xxx_registry imports (#136688)
Standardize registry imports
2025-01-28 08:48:34 +01:00
Artem Sorokin 0cd7aff6ea Add power/energy sensor for Matter draft electrical measurement cluster (#132920) 2025-01-28 08:37:39 +01:00
Paulus Schoutsen 5690516852 ChatSession: Split native content out of message class (#136668)
Split native content out of message class
2025-01-27 21:12:42 -08:00
J. Nick Koston 48a91540e1 Bump aioesphomeapi to 29.0.0 and bleak-esphome to 2.2.0 (#136684) 2025-01-27 19:04:46 -10:00
IceBotYT 517d258fb4 Increase LaCrosse View polling interval to 60 seconds (#136680) 2025-01-27 21:59:40 -05:00
Abílio Costa 5a53ed9e5b Merge Whirlpool tests into a parameterized test (#136490)
* Use fixtures in config flow tests for Whirlpool

* Keep old tests; new one will go to separate PR

* Merge Whirlpool tests into a parameterized test

* Address review comments

* Remove uneeded block wait calls
2025-01-28 00:51:40 +01:00
J. Nick Koston e0ea5bfc51 Add Bluetooth WebSocket API to subscribe to connection allocations (#136215) 2025-01-27 11:49:49 -10:00
Marc Mueller 0b17d11683 Update flux-led to 1.1.3 (#136666) 2025-01-27 22:28:55 +01:00
Michael 50b0abbd7b Bump pyfritzhome to 0.6.14 (#136661)
bump pyfritzhome to 0.6.14
2025-01-27 23:24:14 +02:00
J. Nick Koston 7cf20c95c2 Log the error when the WebSocket receives a error message (#136492)
* Log the error when the WebSocket receives a non-text message

related issue #126754

Right now we only log that it was a non-Text message
and silently swallow the exception

* coverage
2025-01-27 15:38:18 -05:00
Steven B. c12fa34e33 Add support for tplink siren turn on parameters (#136642)
Add support for tplink siren parameters - Allow passing tone, volume, and duration for siren's play action.

---------

Co-authored-by: Teemu Rytilahti <tpr@iki.fi>
2025-01-27 21:27:29 +01:00
J. Nick Koston b79221e666 Make static modbus entity values classvar defaults (#136488) 2025-01-27 21:25:20 +01:00
Michael Hansen b633a0424a Add HassClimateSetTemperature (#136484)
* Add HassClimateSetTemperature

* Use single target constraint
2025-01-27 14:18:31 -06:00
Allen Porter 58b4556a1d Add the Model Context Protocol integration (#135058)
* Add the Model Context Protocol integration

* Improvements to mcp integration

* Move the API prompt constant

* Update config flow error handling

* Update test descriptions

* Update tests/components/mcp/test_config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update tests/components/mcp/test_config_flow.py

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Address PR feedback

* Update homeassistant/components/mcp/coordinator.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Move tool parsing to the coordinator

* Update session handling not to use a context manager

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2025-01-27 14:38:52 -05:00
Denis Shulyaka 85540cea3f Add LLM ActionTool (#136591)
Add ActionTool
2025-01-27 14:21:27 -05:00
Michael Hansen 7497beefed Add single target constraint to async_match_targets (#136643)
Add single target constraint
2025-01-27 14:06:21 -05:00
Marcel van der Veldt 557b9d88b5 Catch and convert MatterError when sending device commands (#136635) 2025-01-27 19:36:16 +01:00
Michael Hansen 3984565084 Bump voip-utils to 0.3.0 (#136648) 2025-01-27 11:42:00 -06:00
Maciej Bieniek ea92523af4 Bump aioshelly to 12.3.2 (#136486)
* Bump aioshelly

* Add timeout parameter for call_rpc

* Increase timeout for BLU TRV

* Log timeout

* Update test

* Use const in test

* Coverage
2025-01-27 18:06:03 +01:00
Norbert Rittel 6bbb857d0f Fix spelling of "Pi-hole" and "API" in user-facing strings (#136645) 2025-01-27 17:59:21 +01:00
Erik Montnemery d2138fe45b Bump securetar to 2025.1.4 (#136639) 2025-01-27 17:28:45 +01:00
Norbert Rittel 5faf2fd66c Replace "bosch_shc" with friendly name of integration (#136410) 2025-01-27 16:15:05 +00:00
Splint77 7c87bb2ffb Twinkly RGBW color fixed (#136593) 2025-01-27 15:53:26 +00:00
Steven B. a2830e7ebb Add config flow data descriptions to ring integration (#136464)
* Add config flow data descriptions to ring integration

* Change Ring cloud to Ring account

* Revert config_flow change
2025-01-27 09:46:32 -06:00
Norbert Rittel fc75d939eb Fix spelling of "Hub" and sentence-casing of "options" (#136573)
* Fix spelling of "Hub" and sentence-casing of "options"

* Change "the change channel command" to "a …"

Co-authored-by: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>

---------

Co-authored-by: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
2025-01-27 09:43:02 -06:00
Marcel van der Veldt b9c3548b5a Change discovery schema for Matter Identify button to ignore type of None (#136621) 2025-01-27 16:42:22 +01:00
Arie Catsman 679b7f4032 Fix test logic flaw in enphase_envoy test_select (#136570)
* Fix test logic flaw in enphase_envoy test_select

* Replace test loops by test parameters

* Implement review feedback to Improve use of parametrize parameters
2025-01-27 09:40:39 -06:00
Steven B. 84561b7446 Use typed ConfigEntry in ring coordinator (#136457)
* Use typed ConfigEntry in ring coordinator

* Make config_entry a positional argument for coordinator
2025-01-27 08:56:04 -06:00
epenet 037a0f25a4 Cleanup hass.data[DOMAIN] in application_credentials (#136625) 2025-01-27 15:06:03 +01:00
epenet e1607344f0 Cleanup unnecessary type hint in assist_satellite (#136626) 2025-01-27 15:05:42 +01:00
epenet 7dc2b92452 Use typed coordinator and runtime_data in eafm (#136629)
* Move coordinator and use runtime_data in eafm

* Add type hints
2025-01-27 15:05:20 +01:00
dependabot[bot] 2878ba601b Bump github/codeql-action from 3.28.4 to 3.28.5 (#136613) 2025-01-27 14:28:04 +01:00
dependabot[bot] ba070b34c8 Bump docker/build-push-action from 6.12.0 to 6.13.0 (#136612) 2025-01-27 14:27:41 +01:00
dependabot[bot] f87d952816 Bump codecov/codecov-action from 5.3.0 to 5.3.1 (#136614) 2025-01-27 14:09:04 +01:00
epenet 55278ebfc8 Use runtime_data in ecobee (#136632) 2025-01-27 13:31:47 +01:00
Avi Miller 6c9ff41b0b Add product IDs for new LIFX Ceiling lights (#136619) 2025-01-27 13:06:01 +01:00
David Rapan 4e29ac8e1b Starlink's energy consumption & usage cumulation fix (#135889)
* refactor: history_stats result indexing

* fix: Energy consumption & Usage cumulation

* fix: typo

* fix: mypy error: Call to untyped function

* refactor: Use generic tuple instead of typing's Tuple

* fix: tuple

* fix: just syntax test

* fix: AttributeError: 'NoneType' object has no attribute 'usage'

* refactor: Return type

* refactor: Merge into single method

* refactor: Complex unpack test
2025-01-27 12:44:59 +01:00
epenet 111906f54e Add missing exclude_integrations in lovelace compatibility code (#136618)
Add missing exclude_integrations in lovelace
2025-01-27 12:41:25 +01:00
Ludovic BOUÉ 6015c936b0 Add a Matter temperature sensor based on Thermostat device LocalTemperature attribute (#133888) 2025-01-27 11:35:33 +01:00
starkillerOG f1dfae6937 Ask for permission to disable Reolink privacy mode during config flow (#136511) 2025-01-27 10:52:48 +01:00
epenet 439a393816 Use runtime_data in deconz (#136412)
* Use runtime_data in deconz

* Adjust master logic

* Simplify

* Move DeconzConfigEntry definition

* More TYPE_CHECKING

* Apply suggestions from code review
2025-01-27 10:16:57 +01:00
epenet acb9d68706 Use runtime_data in dynalite (#136448)
* Use runtime_data in dynalite

* Delay listener
2025-01-27 10:16:33 +01:00
epenet 1e0165c5f7 Add lovelace compatiblity code (#136617)
* Add lovelace compatiblity code

* Docstring

* Add tests
2025-01-27 10:16:13 +01:00
epenet ffdb686363 Use runtime_data in crownstone (#136406)
* Use runtime_data in crownstone

* Move some logic into __init__

* Remove underscore in async_update_listener
2025-01-27 10:15:53 +01:00
Allen Porter 385a078675 Bump nest to python-nest-sdm to 7.1.0 (#136611) 2025-01-27 11:04:27 +02:00
Cyrill Raccaud 33a23ad1c6 Add diagnostic sensors for the active subscription of Cookidoo (#136485)
* add diagnostics for the active subcription

* fix mapping between api and ha states for subscription

* multiline lambda
2025-01-27 08:43:30 +01:00
Erik Montnemery 245ee2498e Update hassio to use the backup integration to make backups before update (#136235)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-01-27 08:25:22 +01:00
Allen Porter 69938545df Push more of the LLM conversation agent loop into ChatSession (#136602)
* Push more of the LLM conversation agent loop into ChatSession

* Revert unnecessary changes

* Revert changes to agent id filtering
2025-01-26 22:16:19 -05:00
Andrew Sayre dfbb48552c Bump pyheos to v1.0.1 (#136604) 2025-01-26 20:49:55 -06:00
Marc Mueller 107184b55f Update mypy-dev to 1.16.0a1 (#136544)
* Update mypy-dev to 1.16.0a1

* Fix

* Use type ignore until fixed upstream
2025-01-26 17:41:05 -06:00
Arie Catsman 642a06b0f0 Optimize enphase_envoy test integration setup. (#136572) 2025-01-26 17:38:45 -06:00
Pete Sage 3582d9b4da Bump SoCo to 0.30.8 - Sonos (#136601)
update soco to 0.30.8
2025-01-26 17:34:16 -06:00
starkillerOG 17e12e6671 Prevent errors when Reolink privacy mode is turned on (#136506) 2025-01-26 22:44:15 +01:00
Jan Bouwhuis 3e0f6562c7 Cleanup stale devices on incomfort integration startup (#136566) 2025-01-26 14:57:32 -06:00
Steven B. 7133eec185 Bump python-kasa to 0.10.0 (#136586)
Bump python-kasa to 0.10.0

Release notes: https://github.com/python-kasa/python-kasa/releases/tag/0.10.0
2025-01-26 21:43:31 +01:00
starkillerOG 40127a5ca4 Add Reolink privacy switch entity (#136521) 2025-01-26 20:03:13 +01:00
Joris Pelgröm db2fed2034 Fix LetPot reauthentication flow tests setting up config entry (#136589)
Fix LetPot reauth tests setting up config entry
2025-01-26 09:42:44 -08:00
Joost Lekkerkerker 647a7ae8e0 Bump yt-dlp to 2025.01.26 (#136581) 2025-01-26 17:46:26 +01:00
epenet feb65c7e9f Fix optional argument in deconz test type definition (#136411) 2025-01-26 17:42:10 +01:00
Norbert Rittel 909af0db82 Fix sentence-casing in action names, spelling of "IDs" (#136576) 2025-01-26 17:33:33 +01:00
Norbert Rittel 363ecde41b Fix spelling of "Home Assistant" and "IDs" in xiaomi_aqara (#136578) 2025-01-26 17:32:09 +01:00
Andrew Sayre b27ee261bb Fix HEOS play media type playlist (#136585) 2025-01-26 17:25:30 +01:00
Andrew Sayre 6a877ec77d Don't cast type in HEOS services (#136583) 2025-01-26 16:53:10 +01:00
Andrew Sayre a2bc260dc1 Bump HEOS quality scale to silver (#136533)
bump heos quality scale
2025-01-26 09:51:29 -06:00
Andrew Sayre b467bb2813 Use typed ConfigEntry throughout HEOS (#136569) 2025-01-26 16:41:04 +01:00
Norbert Rittel c9218b91c1 Make casing of "server" and action descriptions consistent (#136561) 2025-01-26 16:33:43 +01:00
Markus Adrario a9f14ce174 Bump pyHomee to 1.2.5 (#136567) 2025-01-26 07:48:35 -06:00
Dan Raper 7044771876 Add select platform to Ohme (#136536)
* Add select platform

* Formatting

* Add parallel updates to select

* Remove comments
2025-01-26 13:52:01 +01:00
Markus Adrario 93a231fb19 Homee cover-test (#136563)
initial cover-test
2025-01-26 13:49:28 +01:00
tronikos 3adbf75154 Bump opower to 0.8.8 (#136555) 2025-01-26 12:06:05 +01:00
Andrew Sayre f8013655be Move action implementation out of HEOS Coordinator (#136539)
* Move play_source

* Update property docstring

* Correct import location
2025-01-26 11:20:37 +01:00
Dan Raper ee07f1f290 Bump ohmepy version to 1.2.6 (#136547) 2025-01-25 19:05:20 -06:00
Franck Nijhof 6145ea2323 2025.1.4 (#136407)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Matt Doran <mattdoran76@gmail.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: Makrit <sinticlee@gmail.com>
Co-authored-by: Claudio Ruggeri - CR-Tech <41435902+crug80@users.noreply.github.com>
Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com>
Co-authored-by: Yuxin Wang <yuxinwang.dev@gmail.com>
Co-authored-by: Åke Strandberg <ake@strandberg.eu>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Klaas Schoute <klaas_schoute@hotmail.com>
Fix slave id equal to 0 (#136263)
2025-01-24 09:50:20 +01:00
Franck Nijhof 223b437cb9 Bump version to 2025.1.4 2025-01-24 08:02:10 +00:00
Klaas Schoute b9443fa204 Bump powerfox to v1.2.1 (#136366) 2025-01-24 08:01:52 +00:00
Joost Lekkerkerker acbbb19788 Bump aiowithings to 3.1.5 (#136350) 2025-01-24 08:01:49 +00:00
Paul Bottein 7590a868b9 Update frontend to 20250109.2 (#136348) 2025-01-24 08:01:45 +00:00
Paul Bottein 4b13c20e74 Update frontend to 20250109.1 (#136339) 2025-01-24 08:01:42 +00:00
Åke Strandberg 4cf1b1a707 Avoid keyerror on incomplete api data in myuplink (#136333)
* Avoid keyerror

* Inject erroneous value in device point fixture

* Update diagnostics snapshot
2025-01-24 08:01:39 +00:00
Franck Nijhof 1f8129f4b8 Update peblar to v0.4.0 (#136329)
* Update peblar to v0.4.0

* Update snapshots
2025-01-24 08:01:35 +00:00
Yuxin Wang 2e4a19b058 Fallback to None for literal "Blank" serial number for APCUPSD integration (#136297)
* Fallback to None for Blank serial number

* Fix comments
2025-01-24 08:01:32 +00:00
Simon Lamon 0caa1ed825 Handle LinkPlay devices with no mac (#136272)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-01-24 08:01:28 +00:00
Claudio Ruggeri - CR-Tech e7a4f5fd27 Fix slave id equal to 0 (#136263)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-01-24 08:00:49 +00:00
Makrit 0512fc5e0c Handle width and height placeholders in the thumbnail URL (#136227) 2025-01-24 07:52:29 +00:00
G Johansson 8440a27152 Bump holidays to 0.65 (#136122) 2025-01-24 07:52:26 +00:00
Matt Doran 7af7219b01 Update Hydrawise maximum watering duration to meet the app limits (#136050)
Co-authored-by: Robert Resch <robert@resch.dev>
2025-01-24 07:52:22 +00:00
5608 changed files with 96384 additions and 32433 deletions
+2
View File
@@ -46,6 +46,8 @@
- This PR fixes or closes issue: fixes #
- This PR is related to issue:
- Link to documentation pull request:
- Link to developer documentation pull request:
- Link to frontend pull request:
## Checklist
<!--
+6 -6
View File
@@ -32,7 +32,7 @@ jobs:
fetch-depth: 0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -116,7 +116,7 @@ jobs:
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -324,7 +324,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Install Cosign
uses: sigstore/cosign-installer@v3.7.0
uses: sigstore/cosign-installer@v3.8.0
with:
cosign-release: "v2.2.3"
@@ -454,7 +454,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -509,7 +509,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Docker image
uses: docker/build-push-action@67a2d409c0a876cbe6b11854e3e25193efe4e62d # v6.12.0
uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 # v6.13.0
with:
context: . # So action will not pull the repository again
file: ./script/hassfest/docker/Dockerfile
@@ -522,7 +522,7 @@ jobs:
- name: Push Docker image
if: needs.init.outputs.channel != 'dev' && needs.init.outputs.publish == 'true'
id: push
uses: docker/build-push-action@67a2d409c0a876cbe6b11854e3e25193efe4e62d # v6.12.0
uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 # v6.13.0
with:
context: . # So action will not pull the repository again
file: ./script/hassfest/docker/Dockerfile
+23 -19
View File
@@ -40,7 +40,7 @@ env:
CACHE_VERSION: 11
UV_CACHE_VERSION: 1
MYPY_CACHE_VERSION: 9
HA_SHORT_VERSION: "2025.2"
HA_SHORT_VERSION: "2025.3"
DEFAULT_PYTHON: "3.13"
ALL_PYTHON_VERSIONS: "['3.13']"
# 10.3 is the oldest supported version
@@ -234,7 +234,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -279,7 +279,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -319,7 +319,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -359,7 +359,7 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -469,7 +469,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -572,7 +572,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -605,7 +605,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -643,7 +643,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -686,7 +686,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -733,7 +733,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -778,7 +778,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -859,7 +859,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -923,7 +923,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -975,6 +975,7 @@ jobs:
${cov_params[@]} \
-o console_output_style=count \
-p no:sugar \
--exclude-warning-annotations \
$(sed -n "${{ matrix.group }},1p" pytest_buckets.txt) \
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Upload pytest output
@@ -1044,7 +1045,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -1098,6 +1099,7 @@ jobs:
-o console_output_style=count \
--durations=10 \
-p no:sugar \
--exclude-warning-annotations \
--dburl=mysql://root:password@127.0.0.1/homeassistant-test \
tests/components/history \
tests/components/logbook \
@@ -1173,7 +1175,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -1228,6 +1230,7 @@ jobs:
--durations=0 \
--durations-min=10 \
-p no:sugar \
--exclude-warning-annotations \
--dburl=postgresql://postgres:password@127.0.0.1/homeassistant-test \
tests/components/history \
tests/components/logbook \
@@ -1273,7 +1276,7 @@ jobs:
pattern: coverage-*
- name: Upload coverage to Codecov
if: needs.info.outputs.test_full_suite == 'true'
uses: codecov/codecov-action@v5.3.0
uses: codecov/codecov-action@v5.3.1
with:
fail_ci_if_error: true
flags: full-suite
@@ -1319,7 +1322,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -1374,6 +1377,7 @@ jobs:
--durations=0 \
--durations-min=1 \
-p no:sugar \
--exclude-warning-annotations \
tests/components/${{ matrix.group }} \
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Upload pytest output
@@ -1411,7 +1415,7 @@ jobs:
pattern: coverage-*
- name: Upload coverage to Codecov
if: needs.info.outputs.test_full_suite == 'false'
uses: codecov/codecov-action@v5.3.0
uses: codecov/codecov-action@v5.3.1
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
+2 -2
View File
@@ -24,11 +24,11 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Initialize CodeQL
uses: github/codeql-action/init@v3.28.4
uses: github/codeql-action/init@v3.28.9
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.28.4
uses: github/codeql-action/analyze@v3.28.9
with:
category: "/language:python"
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
+3 -3
View File
@@ -36,7 +36,7 @@ jobs:
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.3.0
uses: actions/setup-python@v5.4.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -131,7 +131,7 @@ jobs:
strategy:
fail-fast: false
matrix:
abi: ["cp312", "cp313"]
abi: ["cp313"]
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
@@ -180,7 +180,7 @@ jobs:
strategy:
fail-fast: false
matrix:
abi: ["cp312", "cp313"]
abi: ["cp313"]
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
+1 -1
View File
@@ -8,7 +8,7 @@ repos:
- id: ruff-format
files: ^((homeassistant|pylint|script|tests)/.+)?[^/]+\.(py|pyi)$
- repo: https://github.com/codespell-project/codespell
rev: v2.3.0
rev: v2.4.1
hooks:
- id: codespell
args:
+5
View File
@@ -119,6 +119,7 @@ homeassistant.components.bluetooth_tracker.*
homeassistant.components.bmw_connected_drive.*
homeassistant.components.bond.*
homeassistant.components.braviatv.*
homeassistant.components.bring.*
homeassistant.components.brother.*
homeassistant.components.browser.*
homeassistant.components.bryant_evolution.*
@@ -217,6 +218,7 @@ homeassistant.components.goalzero.*
homeassistant.components.google.*
homeassistant.components.google_assistant_sdk.*
homeassistant.components.google_cloud.*
homeassistant.components.google_drive.*
homeassistant.components.google_photos.*
homeassistant.components.google_sheets.*
homeassistant.components.govee_ble.*
@@ -227,6 +229,7 @@ homeassistant.components.guardian.*
homeassistant.components.habitica.*
homeassistant.components.hardkernel.*
homeassistant.components.hardware.*
homeassistant.components.heos.*
homeassistant.components.here_travel_time.*
homeassistant.components.history.*
homeassistant.components.history_stats.*
@@ -316,6 +319,7 @@ homeassistant.components.manual.*
homeassistant.components.mastodon.*
homeassistant.components.matrix.*
homeassistant.components.matter.*
homeassistant.components.mcp.*
homeassistant.components.mcp_server.*
homeassistant.components.mealie.*
homeassistant.components.media_extractor.*
@@ -358,6 +362,7 @@ homeassistant.components.number.*
homeassistant.components.nut.*
homeassistant.components.onboarding.*
homeassistant.components.oncue.*
homeassistant.components.onedrive.*
homeassistant.components.onewire.*
homeassistant.components.onkyo.*
homeassistant.components.open_meteo.*
+1 -1
View File
@@ -148,7 +148,7 @@
{
"label": "Install all Test Requirements",
"type": "shell",
"command": "uv pip install -r requirements_test_all.txt",
"command": "uv pip install -r requirements.txt -r requirements_test_all.txt",
"group": {
"kind": "build",
"isDefault": true
Generated
+14 -4
View File
@@ -566,6 +566,8 @@ build.json @home-assistant/supervisor
/tests/components/google_assistant_sdk/ @tronikos
/homeassistant/components/google_cloud/ @lufton @tronikos
/tests/components/google_cloud/ @lufton @tronikos
/homeassistant/components/google_drive/ @tronikos
/tests/components/google_drive/ @tronikos
/homeassistant/components/google_generative_ai_conversation/ @tronikos
/tests/components/google_generative_ai_conversation/ @tronikos
/homeassistant/components/google_mail/ @tkdrob
@@ -623,8 +625,8 @@ build.json @home-assistant/supervisor
/tests/components/hlk_sw16/ @jameshilliard
/homeassistant/components/holiday/ @jrieger @gjohansson-ST
/tests/components/holiday/ @jrieger @gjohansson-ST
/homeassistant/components/home_connect/ @DavidMStraub @Diegorro98
/tests/components/home_connect/ @DavidMStraub @Diegorro98
/homeassistant/components/home_connect/ @DavidMStraub @Diegorro98 @MartinHjelmare
/tests/components/home_connect/ @DavidMStraub @Diegorro98 @MartinHjelmare
/homeassistant/components/homeassistant/ @home-assistant/core
/tests/components/homeassistant/ @home-assistant/core
/homeassistant/components/homeassistant_alerts/ @home-assistant/core
@@ -729,6 +731,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/intent/ @home-assistant/core @synesthesiam
/tests/components/intent/ @home-assistant/core @synesthesiam
/homeassistant/components/intesishome/ @jnimmo
/homeassistant/components/iometer/ @MaestroOnICe
/tests/components/iometer/ @MaestroOnICe
/homeassistant/components/ios/ @robbiet480
/tests/components/ios/ @robbiet480
/homeassistant/components/iotawatt/ @gtdiehl @jyavenard
@@ -763,8 +767,8 @@ build.json @home-assistant/supervisor
/tests/components/ituran/ @shmuelzon
/homeassistant/components/izone/ @Swamp-Ig
/tests/components/izone/ @Swamp-Ig
/homeassistant/components/jellyfin/ @j-stienstra @ctalkington
/tests/components/jellyfin/ @j-stienstra @ctalkington
/homeassistant/components/jellyfin/ @RunC0deRun @ctalkington
/tests/components/jellyfin/ @RunC0deRun @ctalkington
/homeassistant/components/jewish_calendar/ @tsvi
/tests/components/jewish_calendar/ @tsvi
/homeassistant/components/juicenet/ @jesserockz
@@ -891,6 +895,8 @@ build.json @home-assistant/supervisor
/tests/components/matrix/ @PaarthShah
/homeassistant/components/matter/ @home-assistant/matter
/tests/components/matter/ @home-assistant/matter
/homeassistant/components/mcp/ @allenporter
/tests/components/mcp/ @allenporter
/homeassistant/components/mcp_server/ @allenporter
/tests/components/mcp_server/ @allenporter
/homeassistant/components/mealie/ @joostlek @andrew-codechimp
@@ -1069,6 +1075,8 @@ build.json @home-assistant/supervisor
/tests/components/oncue/ @bdraco @peterager
/homeassistant/components/ondilo_ico/ @JeromeHXP
/tests/components/ondilo_ico/ @JeromeHXP
/homeassistant/components/onedrive/ @zweckj
/tests/components/onedrive/ @zweckj
/homeassistant/components/onewire/ @garbled1 @epenet
/tests/components/onewire/ @garbled1 @epenet
/homeassistant/components/onkyo/ @arturpragacz @eclair4151
@@ -1130,6 +1138,8 @@ build.json @home-assistant/supervisor
/tests/components/permobil/ @IsakNyberg
/homeassistant/components/persistent_notification/ @home-assistant/core
/tests/components/persistent_notification/ @home-assistant/core
/homeassistant/components/pglab/ @pglab-electronics
/tests/components/pglab/ @pglab-electronics
/homeassistant/components/philips_js/ @elupus
/tests/components/philips_js/ @elupus
/homeassistant/components/pi_hole/ @shenxn
Generated
+1 -1
View File
@@ -13,7 +13,7 @@ ENV \
ARG QEMU_CPU
# Install uv
RUN pip3 install uv==0.5.21
RUN pip3 install uv==0.5.27
WORKDIR /usr/src
@@ -21,7 +21,7 @@ import voluptuous as vol
from homeassistant.core import callback
from homeassistant.exceptions import HomeAssistantError
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.network import is_cloud_connection
from .. import InvalidAuthError
+31 -2
View File
@@ -18,6 +18,7 @@ import securetar
from .const import __version__ as HA_VERSION
RESTORE_BACKUP_FILE = ".HA_RESTORE"
RESTORE_BACKUP_RESULT_FILE = ".HA_RESTORE_RESULT"
KEEP_BACKUPS = ("backups",)
KEEP_DATABASE = (
"home-assistant_v2.db",
@@ -62,7 +63,10 @@ def restore_backup_file_content(config_dir: Path) -> RestoreBackupFileContent |
restore_database=instruction_content["restore_database"],
restore_homeassistant=instruction_content["restore_homeassistant"],
)
except (FileNotFoundError, KeyError, json.JSONDecodeError):
except FileNotFoundError:
return None
except (KeyError, json.JSONDecodeError) as err:
_write_restore_result_file(config_dir, False, err)
return None
finally:
# Always remove the backup instruction file to prevent a boot loop
@@ -142,6 +146,7 @@ def _extract_backup(
config_dir,
dirs_exist_ok=True,
ignore=shutil.ignore_patterns(*(keep)),
ignore_dangling_symlinks=True,
)
elif restore_content.restore_database:
for entry in KEEP_DATABASE:
@@ -159,6 +164,23 @@ def _extract_backup(
)
def _write_restore_result_file(
config_dir: Path, success: bool, error: Exception | None
) -> None:
"""Write the restore result file."""
result_path = config_dir.joinpath(RESTORE_BACKUP_RESULT_FILE)
result_path.write_text(
json.dumps(
{
"success": success,
"error": str(error) if error else None,
"error_type": str(type(error).__name__) if error else None,
}
),
encoding="utf-8",
)
def restore_backup(config_dir_path: str) -> bool:
"""Restore the backup file if any.
@@ -177,7 +199,14 @@ def restore_backup(config_dir_path: str) -> bool:
restore_content=restore_content,
)
except FileNotFoundError as err:
raise ValueError(f"Backup file {backup_file_path} does not exist") from err
file_not_found = ValueError(f"Backup file {backup_file_path} does not exist")
_write_restore_result_file(config_dir, False, file_not_found)
raise file_not_found from err
except Exception as err:
_write_restore_result_file(config_dir, False, err)
raise
else:
_write_restore_result_file(config_dir, True, None)
if restore_content.remove_after_restore:
backup_file_path.unlink(missing_ok=True)
_LOGGER.info("Restore complete, restarting")
+175 -181
View File
@@ -134,14 +134,12 @@ DATA_REGISTRIES_LOADED: HassKey[None] = HassKey("bootstrap_registries_loaded")
LOG_SLOW_STARTUP_INTERVAL = 60
SLOW_STARTUP_CHECK_INTERVAL = 1
STAGE_0_SUBSTAGE_TIMEOUT = 60
STAGE_1_TIMEOUT = 120
STAGE_2_TIMEOUT = 300
WRAP_UP_TIMEOUT = 300
COOLDOWN_TIME = 60
DEBUGGER_INTEGRATIONS = {"debugpy"}
# Core integrations are unconditionally loaded
CORE_INTEGRATIONS = {"homeassistant", "persistent_notification"}
@@ -152,6 +150,10 @@ LOGGING_AND_HTTP_DEPS_INTEGRATIONS = {
"isal",
# Set log levels
"logger",
# Ensure network config is available
# before hassio or any other integration is
# loaded that might create an aiohttp client session
"network",
# Error logging
"system_log",
"sentry",
@@ -161,13 +163,38 @@ FRONTEND_INTEGRATIONS = {
# integrations can be removed and database migration status is
# visible in frontend
"frontend",
# Hassio is an after dependency of backup, after dependencies
# are not promoted from stage 2 to earlier stages, so we need to
# add it here. Hassio needs to be setup before backup, otherwise
# the backup integration will think we are a container/core install
# when using HAOS or Supervised install.
"hassio",
# Backup is an after dependency of frontend, after dependencies
# are not promoted from stage 2 to earlier stages, so we need to
# add it here.
"backup",
}
RECORDER_INTEGRATIONS = {
# Setup after frontend
# To record data
"recorder",
}
DISCOVERY_INTEGRATIONS = ("bluetooth", "dhcp", "ssdp", "usb", "zeroconf")
# Stage 0 is divided into substages. Each substage has a name, a set of integrations and a timeout.
# The substage containing recorder should have no timeout, as it could cancel a database migration.
# Recorder freezes "recorder" timeout during a migration, but it does not freeze other timeouts.
# The substages preceding it should also have no timeout, until we ensure that the recorder
# is not accidentally promoted as a dependency of any of the integrations in them.
# If we add timeouts to the frontend substages, we should make sure they don't apply in recovery mode.
STAGE_0_INTEGRATIONS = (
# Load logging and http deps as soon as possible
("logging, http deps", LOGGING_AND_HTTP_DEPS_INTEGRATIONS, None),
# Setup frontend
("frontend", FRONTEND_INTEGRATIONS, None),
# Setup recorder
("recorder", {"recorder"}, None),
# Start up debuggers. Start these first in case they want to wait.
("debugger", {"debugpy"}, STAGE_0_SUBSTAGE_TIMEOUT),
# Zeroconf is used for mdns resolution in aiohttp client helper.
("zeroconf", {"zeroconf"}, STAGE_0_SUBSTAGE_TIMEOUT),
)
DISCOVERY_INTEGRATIONS = ("bluetooth", "dhcp", "ssdp", "usb")
# Stage 1 integrations are not to be preimported in bootstrap.
STAGE_1_INTEGRATIONS = {
# We need to make sure discovery integrations
# update their deps before stage 2 integrations
@@ -179,9 +206,8 @@ STAGE_1_INTEGRATIONS = {
"mqtt_eventstream",
# To provide account link implementations
"cloud",
# Ensure supervisor is available
"hassio",
}
DEFAULT_INTEGRATIONS = {
# These integrations are set up unless recovery mode is activated.
#
@@ -222,22 +248,12 @@ DEFAULT_INTEGRATIONS_SUPERVISOR = {
# These integrations are set up if using the Supervisor
"hassio",
}
CRITICAL_INTEGRATIONS = {
# Recovery mode is activated if these integrations fail to set up
"frontend",
}
SETUP_ORDER = (
# Load logging and http deps as soon as possible
("logging, http deps", LOGGING_AND_HTTP_DEPS_INTEGRATIONS),
# Setup frontend
("frontend", FRONTEND_INTEGRATIONS),
# Setup recorder
("recorder", RECORDER_INTEGRATIONS),
# Start up debuggers. Start these first in case they want to wait.
("debugger", DEBUGGER_INTEGRATIONS),
)
#
# Storage keys we are likely to load during startup
# in order of when we expect to load them.
@@ -684,7 +700,6 @@ async def async_mount_local_lib_path(config_dir: str) -> str:
return deps_dir
@core.callback
def _get_domains(hass: core.HomeAssistant, config: dict[str, Any]) -> set[str]:
"""Get domains of components to set up."""
# Filter out the repeating and common config section [homeassistant]
@@ -706,109 +721,6 @@ def _get_domains(hass: core.HomeAssistant, config: dict[str, Any]) -> set[str]:
return domains
class _WatchPendingSetups:
"""Periodic log and dispatch of setups that are pending."""
def __init__(
self,
hass: core.HomeAssistant,
setup_started: dict[tuple[str, str | None], float],
) -> None:
"""Initialize the WatchPendingSetups class."""
self._hass = hass
self._setup_started = setup_started
self._duration_count = 0
self._handle: asyncio.TimerHandle | None = None
self._previous_was_empty = True
self._loop = hass.loop
def _async_watch(self) -> None:
"""Periodic log of setups that are pending."""
now = monotonic()
self._duration_count += SLOW_STARTUP_CHECK_INTERVAL
remaining_with_setup_started: defaultdict[str, float] = defaultdict(float)
for integration_group, start_time in self._setup_started.items():
domain, _ = integration_group
remaining_with_setup_started[domain] += now - start_time
if remaining_with_setup_started:
_LOGGER.debug("Integration remaining: %s", remaining_with_setup_started)
elif waiting_tasks := self._hass._active_tasks: # noqa: SLF001
_LOGGER.debug("Waiting on tasks: %s", waiting_tasks)
self._async_dispatch(remaining_with_setup_started)
if (
self._setup_started
and self._duration_count % LOG_SLOW_STARTUP_INTERVAL == 0
):
# We log every LOG_SLOW_STARTUP_INTERVAL until all integrations are done
# once we take over LOG_SLOW_STARTUP_INTERVAL (60s) to start up
_LOGGER.warning(
"Waiting on integrations to complete setup: %s",
self._setup_started,
)
_LOGGER.debug("Running timeout Zones: %s", self._hass.timeout.zones)
self._async_schedule_next()
def _async_dispatch(self, remaining_with_setup_started: dict[str, float]) -> None:
"""Dispatch the signal."""
if remaining_with_setup_started or not self._previous_was_empty:
async_dispatcher_send_internal(
self._hass, SIGNAL_BOOTSTRAP_INTEGRATIONS, remaining_with_setup_started
)
self._previous_was_empty = not remaining_with_setup_started
def _async_schedule_next(self) -> None:
"""Schedule the next call."""
self._handle = self._loop.call_later(
SLOW_STARTUP_CHECK_INTERVAL, self._async_watch
)
def async_start(self) -> None:
"""Start watching."""
self._async_schedule_next()
def async_stop(self) -> None:
"""Stop watching."""
self._async_dispatch({})
if self._handle:
self._handle.cancel()
self._handle = None
async def async_setup_multi_components(
hass: core.HomeAssistant,
domains: set[str],
config: dict[str, Any],
) -> None:
"""Set up multiple domains. Log on failure."""
# Avoid creating tasks for domains that were setup in a previous stage
domains_not_yet_setup = domains - hass.config.components
# Create setup tasks for base platforms first since everything will have
# to wait to be imported, and the sooner we can get the base platforms
# loaded the sooner we can start loading the rest of the integrations.
futures = {
domain: hass.async_create_task_internal(
async_setup_component(hass, domain, config),
f"setup component {domain}",
eager_start=True,
)
for domain in sorted(
domains_not_yet_setup, key=SETUP_ORDER_SORT_KEY, reverse=True
)
}
results = await asyncio.gather(*futures.values(), return_exceptions=True)
for idx, domain in enumerate(futures):
result = results[idx]
if isinstance(result, BaseException):
_LOGGER.error(
"Error setting up integration %s - received exception",
domain,
exc_info=(type(result), result, result.__traceback__),
)
async def _async_resolve_domains_to_setup(
hass: core.HomeAssistant, config: dict[str, Any]
) -> tuple[set[str], dict[str, loader.Integration]]:
@@ -983,69 +895,48 @@ async def _async_set_up_integrations(
domains_to_setup, integration_cache = await _async_resolve_domains_to_setup(
hass, config
)
stage_2_domains = domains_to_setup.copy()
# Initialize recorder
if "recorder" in domains_to_setup:
recorder.async_initialize_recorder(hass)
pre_stage_domains = [
(name, domains_to_setup & domain_group) for name, domain_group in SETUP_ORDER
stage_0_and_1_domains: list[tuple[str, set[str], int | None]] = [
*(
(name, domain_group & domains_to_setup, timeout)
for name, domain_group, timeout in STAGE_0_INTEGRATIONS
),
("stage 1", STAGE_1_INTEGRATIONS & domains_to_setup, STAGE_1_TIMEOUT),
]
# calculate what components to setup in what stage
stage_1_domains: set[str] = set()
_LOGGER.info("Setting up stage 0 and 1")
for name, domain_group, timeout in stage_0_and_1_domains:
if not domain_group:
continue
# Find all dependencies of any dependency of any stage 1 integration that
# we plan on loading and promote them to stage 1. This is done only to not
# get misleading log messages
deps_promotion: set[str] = STAGE_1_INTEGRATIONS
while deps_promotion:
old_deps_promotion = deps_promotion
deps_promotion = set()
_LOGGER.info("Setting up %s: %s", name, domain_group)
to_be_loaded = domain_group.copy()
to_be_loaded.update(
dep
for domain in domain_group
if (integration := integration_cache.get(domain)) is not None
for dep in integration.all_dependencies
)
async_set_domains_to_be_loaded(hass, to_be_loaded)
stage_2_domains -= to_be_loaded
for domain in old_deps_promotion:
if domain not in domains_to_setup or domain in stage_1_domains:
continue
stage_1_domains.add(domain)
if (dep_itg := integration_cache.get(domain)) is None:
continue
deps_promotion.update(dep_itg.all_dependencies)
stage_2_domains = domains_to_setup - stage_1_domains
for name, domain_group in pre_stage_domains:
if domain_group:
stage_2_domains -= domain_group
_LOGGER.info("Setting up %s: %s", name, domain_group)
to_be_loaded = domain_group.copy()
to_be_loaded.update(
dep
for domain in domain_group
if (integration := integration_cache.get(domain)) is not None
for dep in integration.all_dependencies
)
async_set_domains_to_be_loaded(hass, to_be_loaded)
await async_setup_multi_components(hass, domain_group, config)
# Enables after dependencies when setting up stage 1 domains
async_set_domains_to_be_loaded(hass, stage_1_domains)
# Start setup
if stage_1_domains:
_LOGGER.info("Setting up stage 1: %s", stage_1_domains)
try:
async with hass.timeout.async_timeout(
STAGE_1_TIMEOUT, cool_down=COOLDOWN_TIME
):
await async_setup_multi_components(hass, stage_1_domains, config)
except TimeoutError:
_LOGGER.warning(
"Setup timed out for stage 1 waiting on %s - moving forward",
hass._active_tasks, # noqa: SLF001
)
if timeout is None:
await _async_setup_multi_components(hass, domain_group, config)
else:
try:
async with hass.timeout.async_timeout(timeout, cool_down=COOLDOWN_TIME):
await _async_setup_multi_components(hass, domain_group, config)
except TimeoutError:
_LOGGER.warning(
"Setup timed out for %s waiting on %s - moving forward",
name,
hass._active_tasks, # noqa: SLF001
)
# Add after dependencies when setting up stage 2 domains
async_set_domains_to_be_loaded(hass, stage_2_domains)
@@ -1056,7 +947,7 @@ async def _async_set_up_integrations(
async with hass.timeout.async_timeout(
STAGE_2_TIMEOUT, cool_down=COOLDOWN_TIME
):
await async_setup_multi_components(hass, stage_2_domains, config)
await _async_setup_multi_components(hass, stage_2_domains, config)
except TimeoutError:
_LOGGER.warning(
"Setup timed out for stage 2 waiting on %s - moving forward",
@@ -1082,3 +973,106 @@ async def _async_set_up_integrations(
"Integration setup times: %s",
dict(sorted(setup_time.items(), key=itemgetter(1), reverse=True)),
)
class _WatchPendingSetups:
"""Periodic log and dispatch of setups that are pending."""
def __init__(
self,
hass: core.HomeAssistant,
setup_started: dict[tuple[str, str | None], float],
) -> None:
"""Initialize the WatchPendingSetups class."""
self._hass = hass
self._setup_started = setup_started
self._duration_count = 0
self._handle: asyncio.TimerHandle | None = None
self._previous_was_empty = True
self._loop = hass.loop
def _async_watch(self) -> None:
"""Periodic log of setups that are pending."""
now = monotonic()
self._duration_count += SLOW_STARTUP_CHECK_INTERVAL
remaining_with_setup_started: defaultdict[str, float] = defaultdict(float)
for integration_group, start_time in self._setup_started.items():
domain, _ = integration_group
remaining_with_setup_started[domain] += now - start_time
if remaining_with_setup_started:
_LOGGER.debug("Integration remaining: %s", remaining_with_setup_started)
elif waiting_tasks := self._hass._active_tasks: # noqa: SLF001
_LOGGER.debug("Waiting on tasks: %s", waiting_tasks)
self._async_dispatch(remaining_with_setup_started)
if (
self._setup_started
and self._duration_count % LOG_SLOW_STARTUP_INTERVAL == 0
):
# We log every LOG_SLOW_STARTUP_INTERVAL until all integrations are done
# once we take over LOG_SLOW_STARTUP_INTERVAL (60s) to start up
_LOGGER.warning(
"Waiting on integrations to complete setup: %s",
self._setup_started,
)
_LOGGER.debug("Running timeout Zones: %s", self._hass.timeout.zones)
self._async_schedule_next()
def _async_dispatch(self, remaining_with_setup_started: dict[str, float]) -> None:
"""Dispatch the signal."""
if remaining_with_setup_started or not self._previous_was_empty:
async_dispatcher_send_internal(
self._hass, SIGNAL_BOOTSTRAP_INTEGRATIONS, remaining_with_setup_started
)
self._previous_was_empty = not remaining_with_setup_started
def _async_schedule_next(self) -> None:
"""Schedule the next call."""
self._handle = self._loop.call_later(
SLOW_STARTUP_CHECK_INTERVAL, self._async_watch
)
def async_start(self) -> None:
"""Start watching."""
self._async_schedule_next()
def async_stop(self) -> None:
"""Stop watching."""
self._async_dispatch({})
if self._handle:
self._handle.cancel()
self._handle = None
async def _async_setup_multi_components(
hass: core.HomeAssistant,
domains: set[str],
config: dict[str, Any],
) -> None:
"""Set up multiple domains. Log on failure."""
# Avoid creating tasks for domains that were setup in a previous stage
domains_not_yet_setup = domains - hass.config.components
# Create setup tasks for base platforms first since everything will have
# to wait to be imported, and the sooner we can get the base platforms
# loaded the sooner we can start loading the rest of the integrations.
futures = {
domain: hass.async_create_task_internal(
async_setup_component(hass, domain, config),
f"setup component {domain}",
eager_start=True,
)
for domain in sorted(
domains_not_yet_setup, key=SETUP_ORDER_SORT_KEY, reverse=True
)
}
results = await asyncio.gather(*futures.values(), return_exceptions=True)
for idx, domain in enumerate(futures):
result = results[idx]
if isinstance(result, BaseException):
_LOGGER.error(
"Error setting up integration %s - received exception",
domain,
exc_info=(type(result), result, result.__traceback__),
)
+1
View File
@@ -5,6 +5,7 @@
"google_assistant",
"google_assistant_sdk",
"google_cloud",
"google_drive",
"google_generative_ai_conversation",
"google_mail",
"google_maps",
+1
View File
@@ -11,6 +11,7 @@
"microsoft_face",
"microsoft",
"msteams",
"onedrive",
"xbox"
]
}
@@ -11,7 +11,7 @@ from homeassistant.components.alarm_control_panel import (
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AbodeSystem
from .const import DOMAIN
@@ -19,7 +19,9 @@ from .entity import AbodeDevice
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up Abode alarm control panel device."""
data: AbodeSystem = hass.data[DOMAIN]
@@ -12,7 +12,7 @@ from homeassistant.components.binary_sensor import (
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.util.enum import try_parse_enum
from . import AbodeSystem
@@ -21,7 +21,9 @@ from .entity import AbodeDevice
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up Abode binary sensor devices."""
data: AbodeSystem = hass.data[DOMAIN]
+4 -2
View File
@@ -15,7 +15,7 @@ from homeassistant.components.camera import Camera
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import Event, HomeAssistant
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.util import Throttle
from . import AbodeSystem
@@ -26,7 +26,9 @@ MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=90)
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up Abode camera devices."""
data: AbodeSystem = hass.data[DOMAIN]
+4 -2
View File
@@ -7,7 +7,7 @@ from jaraco.abode.devices.cover import Cover
from homeassistant.components.cover import CoverEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AbodeSystem
from .const import DOMAIN
@@ -15,7 +15,9 @@ from .entity import AbodeDevice
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up Abode cover devices."""
data: AbodeSystem = hass.data[DOMAIN]
+4 -2
View File
@@ -18,7 +18,7 @@ from homeassistant.components.light import (
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AbodeSystem
from .const import DOMAIN
@@ -26,7 +26,9 @@ from .entity import AbodeDevice
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up Abode light devices."""
data: AbodeSystem = hass.data[DOMAIN]
+4 -2
View File
@@ -7,7 +7,7 @@ from jaraco.abode.devices.lock import Lock
from homeassistant.components.lock import LockEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AbodeSystem
from .const import DOMAIN
@@ -15,7 +15,9 @@ from .entity import AbodeDevice
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up Abode lock devices."""
data: AbodeSystem = hass.data[DOMAIN]
+4 -2
View File
@@ -16,7 +16,7 @@ from homeassistant.components.sensor import (
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import LIGHT_LUX, PERCENTAGE, UnitOfTemperature
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AbodeSystem
from .const import DOMAIN
@@ -61,7 +61,9 @@ SENSOR_TYPES: tuple[AbodeSensorDescription, ...] = (
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up Abode sensor devices."""
data: AbodeSystem = hass.data[DOMAIN]
+4 -2
View File
@@ -10,7 +10,7 @@ from homeassistant.components.switch import SwitchEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AbodeSystem
from .const import DOMAIN
@@ -20,7 +20,9 @@ DEVICE_TYPES = ["switch", "valve"]
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up Abode switch devices."""
data: AbodeSystem = hass.data[DOMAIN]
@@ -11,7 +11,7 @@ from homeassistant.components.binary_sensor import (
BinarySensorEntityDescription,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from .coordinator import AcaiaConfigEntry
from .entity import AcaiaEntity
@@ -40,7 +40,7 @@ BINARY_SENSORS: tuple[AcaiaBinarySensorEntityDescription, ...] = (
async def async_setup_entry(
hass: HomeAssistant,
entry: AcaiaConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up binary sensors."""
+2 -2
View File
@@ -8,7 +8,7 @@ from aioacaia.acaiascale import AcaiaScale
from homeassistant.components.button import ButtonEntity, ButtonEntityDescription
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from .coordinator import AcaiaConfigEntry
from .entity import AcaiaEntity
@@ -45,7 +45,7 @@ BUTTONS: tuple[AcaiaButtonEntityDescription, ...] = (
async def async_setup_entry(
hass: HomeAssistant,
entry: AcaiaConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up button entities and services."""
+2 -2
View File
@@ -16,7 +16,7 @@ from homeassistant.components.sensor import (
)
from homeassistant.const import PERCENTAGE, UnitOfMass, UnitOfVolumeFlowRate
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from .coordinator import AcaiaConfigEntry
from .entity import AcaiaEntity
@@ -77,7 +77,7 @@ RESTORE_SENSORS: tuple[AcaiaSensorEntityDescription, ...] = (
async def async_setup_entry(
hass: HomeAssistant,
entry: AcaiaConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up sensors."""
@@ -12,8 +12,8 @@ import voluptuous as vol
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from .const import DOMAIN
@@ -25,7 +25,7 @@ from homeassistant.const import (
UnitOfVolumetricFlux,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import (
@@ -375,7 +375,7 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
async def async_setup_entry(
hass: HomeAssistant,
entry: AccuWeatherConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Add AccuWeather entities from a config_entry."""
observation_coordinator: AccuWeatherObservationDataUpdateCoordinator = (
@@ -16,7 +16,7 @@
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]",
"requests_exceeded": "The allowed number of requests to Accuweather API has been exceeded. You have to wait or change API Key."
"requests_exceeded": "The allowed number of requests to the AccuWeather API has been exceeded. You have to wait or change the API key."
}
},
"entity": {
@@ -30,7 +30,7 @@ from homeassistant.const import (
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.util.dt import utc_from_timestamp
from .const import (
@@ -54,7 +54,7 @@ PARALLEL_UPDATES = 1
async def async_setup_entry(
hass: HomeAssistant,
entry: AccuWeatherConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Add a AccuWeather weather entity from a config_entry."""
async_add_entities([AccuWeatherEntity(entry.runtime_data)])
@@ -22,7 +22,7 @@ from homeassistant.const import (
STATE_UNKNOWN,
)
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
+1 -1
View File
@@ -3,7 +3,7 @@
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
import homeassistant.helpers.entity_registry as er
from homeassistant.helpers import entity_registry as er
from .hub import PulseHub
+2 -2
View File
@@ -11,7 +11,7 @@ from homeassistant.components.cover import (
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AcmedaConfigEntry
from .const import ACMEDA_HUB_UPDATE
@@ -22,7 +22,7 @@ from .helpers import async_add_acmeda_entities
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AcmedaConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up the Acmeda Rollers from a config entry."""
hub = config_entry.runtime_data
+2 -2
View File
@@ -9,7 +9,7 @@ from aiopulse import Roller
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from .const import DOMAIN, LOGGER
@@ -23,7 +23,7 @@ def async_add_acmeda_entities(
entity_class: type,
config_entry: AcmedaConfigEntry,
current: set[int],
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Add any new entities."""
hub = config_entry.runtime_data
+2 -2
View File
@@ -6,7 +6,7 @@ from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
from homeassistant.const import PERCENTAGE
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AcmedaConfigEntry
from .const import ACMEDA_HUB_UPDATE
@@ -17,7 +17,7 @@ from .helpers import async_add_acmeda_entities
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AcmedaConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up the Acmeda Rollers from a config entry."""
hub = config_entry.runtime_data
@@ -15,7 +15,7 @@ from homeassistant.components.device_tracker import (
)
from homeassistant.const import CONF_HOST, CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.typing import ConfigType
from .const import LEASES_REGEX
+2 -2
View File
@@ -25,7 +25,7 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from .const import ACCOUNT_ID, CONNECTION_TYPE, DOMAIN, LOCAL
@@ -33,7 +33,7 @@ from .const import ACCOUNT_ID, CONNECTION_TYPE, DOMAIN, LOCAL
async def async_setup_entry(
hass: HomeAssistant,
entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up the Adax thermostat with config flow."""
if entry.data.get(CONNECTION_TYPE) == LOCAL:
+2 -2
View File
@@ -12,7 +12,7 @@ from adguardhome import AdGuardHome
from homeassistant.components.sensor import SensorEntity, SensorEntityDescription
from homeassistant.const import PERCENTAGE, UnitOfTime
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AdGuardConfigEntry, AdGuardData
from .const import DOMAIN
@@ -85,7 +85,7 @@ SENSORS: tuple[AdGuardHomeEntityDescription, ...] = (
async def async_setup_entry(
hass: HomeAssistant,
entry: AdGuardConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AdGuard Home sensor based on a config entry."""
data = entry.runtime_data
@@ -79,7 +79,7 @@
"services": {
"add_url": {
"name": "Add URL",
"description": "Add a new filter subscription to AdGuard Home.",
"description": "Adds a new filter subscription to AdGuard Home.",
"fields": {
"name": {
"name": "[%key:common::config_flow::data::name%]",
@@ -123,11 +123,11 @@
},
"refresh": {
"name": "Refresh",
"description": "Refresh all filter subscriptions in AdGuard Home.",
"description": "Refreshes all filter subscriptions in AdGuard Home.",
"fields": {
"force": {
"name": "Force",
"description": "Force update (bypasses AdGuard Home throttling). \"true\" to force, or \"false\" to omit for a regular refresh."
"description": "Force update (bypasses AdGuard Home throttling), omit for a regular refresh."
}
}
}
+2 -2
View File
@@ -11,7 +11,7 @@ from adguardhome import AdGuardHome, AdGuardHomeError
from homeassistant.components.switch import SwitchEntity, SwitchEntityDescription
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AdGuardConfigEntry, AdGuardData
from .const import DOMAIN, LOGGER
@@ -79,7 +79,7 @@ SWITCHES: tuple[AdGuardHomeSwitchEntityDescription, ...] = (
async def async_setup_entry(
hass: HomeAssistant,
entry: AdGuardConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AdGuard Home switch based on a config entry."""
data = entry.runtime_data
+1 -1
View File
@@ -12,7 +12,7 @@ from homeassistant.const import (
EVENT_HOMEASSISTANT_STOP,
)
from homeassistant.core import HomeAssistant, ServiceCall
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.typing import ConfigType
from .const import CONF_ADS_VAR, DATA_ADS, DOMAIN, AdsType
@@ -13,7 +13,7 @@ from homeassistant.components.binary_sensor import (
)
from homeassistant.const import CONF_DEVICE_CLASS, CONF_NAME
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
+1 -1
View File
@@ -17,7 +17,7 @@ from homeassistant.components.cover import (
)
from homeassistant.const import CONF_DEVICE_CLASS, CONF_NAME
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
+1 -1
View File
@@ -15,7 +15,7 @@ from homeassistant.components.light import (
)
from homeassistant.const import CONF_NAME
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
+1 -1
View File
@@ -11,7 +11,7 @@ from homeassistant.components.select import (
)
from homeassistant.const import CONF_NAME
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
+1 -1
View File
@@ -15,7 +15,7 @@ from homeassistant.components.sensor import (
)
from homeassistant.const import CONF_DEVICE_CLASS, CONF_NAME, CONF_UNIT_OF_MEASUREMENT
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType, StateType
+1 -1
View File
@@ -13,7 +13,7 @@ from homeassistant.components.switch import (
)
from homeassistant.const import CONF_NAME
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
+1 -1
View File
@@ -14,7 +14,7 @@ from homeassistant.components.valve import (
)
from homeassistant.const import CONF_DEVICE_CLASS, CONF_NAME
from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
@@ -8,7 +8,7 @@ from homeassistant.components.binary_sensor import (
)
from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AdvantageAirDataConfigEntry
from .entity import AdvantageAirAcEntity, AdvantageAirZoneEntity
@@ -20,7 +20,7 @@ PARALLEL_UPDATES = 0
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AdvantageAirDataConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AdvantageAir Binary Sensor platform."""
@@ -19,7 +19,7 @@ from homeassistant.components.climate import (
from homeassistant.const import ATTR_TEMPERATURE, PRECISION_WHOLE, UnitOfTemperature
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import ServiceValidationError
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AdvantageAirDataConfigEntry
from .const import (
@@ -76,7 +76,7 @@ _LOGGER = logging.getLogger(__name__)
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AdvantageAirDataConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AdvantageAir climate platform."""
@@ -9,7 +9,7 @@ from homeassistant.components.cover import (
CoverEntityFeature,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AdvantageAirDataConfigEntry
from .const import ADVANTAGE_AIR_STATE_CLOSE, ADVANTAGE_AIR_STATE_OPEN
@@ -22,7 +22,7 @@ PARALLEL_UPDATES = 0
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AdvantageAirDataConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AdvantageAir cover platform."""
@@ -5,7 +5,7 @@ from typing import Any
from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AdvantageAirDataConfigEntry
from .const import ADVANTAGE_AIR_STATE_ON, DOMAIN as ADVANTAGE_AIR_DOMAIN
@@ -16,7 +16,7 @@ from .models import AdvantageAirData
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AdvantageAirDataConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AdvantageAir light platform."""
@@ -2,7 +2,7 @@
from homeassistant.components.select import SelectEntity
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AdvantageAirDataConfigEntry
from .entity import AdvantageAirAcEntity
@@ -14,7 +14,7 @@ ADVANTAGE_AIR_INACTIVE = "Inactive"
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AdvantageAirDataConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AdvantageAir select platform."""
@@ -15,7 +15,7 @@ from homeassistant.components.sensor import (
from homeassistant.const import PERCENTAGE, EntityCategory, UnitOfTemperature
from homeassistant.core import HomeAssistant
from homeassistant.helpers import config_validation as cv, entity_platform
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AdvantageAirDataConfigEntry
from .const import ADVANTAGE_AIR_STATE_OPEN
@@ -32,7 +32,7 @@ PARALLEL_UPDATES = 0
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AdvantageAirDataConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AdvantageAir sensor platform."""
@@ -4,7 +4,7 @@ from typing import Any
from homeassistant.components.switch import SwitchDeviceClass, SwitchEntity
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AdvantageAirDataConfigEntry
from .const import (
@@ -19,7 +19,7 @@ from .models import AdvantageAirData
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AdvantageAirDataConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AdvantageAir switch platform."""
@@ -3,7 +3,7 @@
from homeassistant.components.update import UpdateEntity
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AdvantageAirDataConfigEntry
from .const import DOMAIN as ADVANTAGE_AIR_DOMAIN
@@ -14,7 +14,7 @@ from .models import AdvantageAirData
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AdvantageAirDataConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AdvantageAir update platform."""
+2 -2
View File
@@ -9,7 +9,7 @@ from aemet_opendata.helpers import dict_nested_value
from homeassistant.components.image import Image, ImageEntity, ImageEntityDescription
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from .coordinator import AemetConfigEntry, WeatherUpdateCoordinator
from .entity import AemetEntity
@@ -25,7 +25,7 @@ AEMET_IMAGES: Final[tuple[ImageEntityDescription, ...]] = (
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AemetConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AEMET OpenData image entities based on a config entry."""
domain_data = config_entry.runtime_data
+2 -2
View File
@@ -52,7 +52,7 @@ from homeassistant.const import (
UnitOfVolumetricFlux,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.util import dt as dt_util
from .const import (
@@ -358,7 +358,7 @@ WEATHER_SENSORS: Final[tuple[AemetSensorEntityDescription, ...]] = (
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AemetConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AEMET OpenData sensor entities based on a config entry."""
domain_data = config_entry.runtime_data
+2 -2
View File
@@ -25,7 +25,7 @@ from homeassistant.const import (
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from .const import CONDITIONS_MAP
from .coordinator import AemetConfigEntry, WeatherUpdateCoordinator
@@ -35,7 +35,7 @@ from .entity import AemetEntity
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AemetConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AEMET OpenData weather entity based on a config entry."""
domain_data = config_entry.runtime_data
+1 -1
View File
@@ -7,7 +7,7 @@ from typing import Final
import voluptuous as vol
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
DOMAIN: Final = "aftership"
+3 -3
View File
@@ -9,12 +9,12 @@ from pyaftership import AfterShip, AfterShipException
from homeassistant.components.sensor import SensorEntity
from homeassistant.core import HomeAssistant, ServiceCall
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.dispatcher import (
async_dispatcher_connect,
async_dispatcher_send,
)
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.util import Throttle
from . import AfterShipConfigEntry
@@ -42,7 +42,7 @@ PLATFORM_SCHEMA: Final = cv.removed(DOMAIN, raise_if_present=False)
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AfterShipConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AfterShip sensor entities based on a config entry."""
aftership = config_entry.runtime_data
@@ -9,7 +9,7 @@ from homeassistant.components.alarm_control_panel import (
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AgentDVRConfigEntry
from .const import DOMAIN as AGENT_DOMAIN
@@ -24,7 +24,7 @@ CONST_ALARM_CONTROL_PANEL_NAME = "Alarm Panel"
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AgentDVRConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up the Agent DVR Alarm Control Panels."""
async_add_entities([AgentBaseStation(config_entry.runtime_data)])
+2 -2
View File
@@ -10,7 +10,7 @@ from homeassistant.components.mjpeg import MjpegCamera, filter_urllib3_logging
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import (
AddEntitiesCallback,
AddConfigEntryEntitiesCallback,
async_get_current_platform,
)
@@ -39,7 +39,7 @@ CAMERA_SERVICES = {
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AgentDVRConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up the Agent cameras."""
filter_urllib3_logging()
@@ -4,12 +4,11 @@ from __future__ import annotations
from airgradient import AirGradientClient
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .coordinator import AirGradientCoordinator
from .coordinator import AirGradientConfigEntry, AirGradientCoordinator
PLATFORMS: list[Platform] = [
Platform.BUTTON,
@@ -21,9 +20,6 @@ PLATFORMS: list[Platform] = [
]
type AirGradientConfigEntry = ConfigEntry[AirGradientCoordinator]
async def async_setup_entry(hass: HomeAssistant, entry: AirGradientConfigEntry) -> bool:
"""Set up Airgradient from a config entry."""
@@ -31,7 +27,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: AirGradientConfigEntry)
entry.data[CONF_HOST], session=async_get_clientsession(hass)
)
coordinator = AirGradientCoordinator(hass, client)
coordinator = AirGradientCoordinator(hass, entry, client)
await coordinator.async_config_entry_first_refresh()
@@ -13,7 +13,7 @@ from homeassistant.components.button import (
from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AirGradientConfigEntry
from .const import DOMAIN
@@ -47,7 +47,7 @@ LED_BAR_TEST = AirGradientButtonEntityDescription(
async def async_setup_entry(
hass: HomeAssistant,
entry: AirGradientConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AirGradient button entities based on a config entry."""
coordinator = entry.runtime_data
@@ -4,18 +4,17 @@ from __future__ import annotations
from dataclasses import dataclass
from datetime import timedelta
from typing import TYPE_CHECKING
from airgradient import AirGradientClient, AirGradientError, Config, Measures
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import DOMAIN, LOGGER
if TYPE_CHECKING:
from . import AirGradientConfigEntry
type AirGradientConfigEntry = ConfigEntry[AirGradientCoordinator]
@dataclass
@@ -32,11 +31,17 @@ class AirGradientCoordinator(DataUpdateCoordinator[AirGradientData]):
config_entry: AirGradientConfigEntry
_current_version: str
def __init__(self, hass: HomeAssistant, client: AirGradientClient) -> None:
def __init__(
self,
hass: HomeAssistant,
config_entry: AirGradientConfigEntry,
client: AirGradientClient,
) -> None:
"""Initialize coordinator."""
super().__init__(
hass,
logger=LOGGER,
config_entry=config_entry,
name=f"AirGradient {client.host}",
update_interval=timedelta(minutes=1),
)
@@ -14,7 +14,7 @@ from homeassistant.components.number import (
from homeassistant.const import PERCENTAGE, EntityCategory
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AirGradientConfigEntry
from .const import DOMAIN
@@ -60,7 +60,7 @@ LED_BAR_BRIGHTNESS = AirGradientNumberEntityDescription(
async def async_setup_entry(
hass: HomeAssistant,
entry: AirGradientConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AirGradient number entities based on a config entry."""
@@ -14,7 +14,7 @@ from homeassistant.components.select import (
from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AirGradientConfigEntry
from .const import DOMAIN, PM_STANDARD, PM_STANDARD_REVERSE
@@ -142,7 +142,7 @@ CONTROL_ENTITIES: tuple[AirGradientSelectEntityDescription, ...] = (
async def async_setup_entry(
hass: HomeAssistant,
entry: AirGradientConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AirGradient select entities based on a config entry."""
@@ -27,7 +27,7 @@ from homeassistant.const import (
UnitOfTime,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.typing import StateType
from . import AirGradientConfigEntry
@@ -225,7 +225,7 @@ CONFIG_DISPLAY_SENSOR_TYPES: tuple[AirGradientConfigSensorEntityDescription, ...
async def async_setup_entry(
hass: HomeAssistant,
entry: AirGradientConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AirGradient sensor entities based on a config entry."""
@@ -15,7 +15,7 @@ from homeassistant.components.switch import (
from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AirGradientConfigEntry
from .const import DOMAIN
@@ -45,7 +45,7 @@ POST_DATA_TO_AIRGRADIENT = AirGradientSwitchEntityDescription(
async def async_setup_entry(
hass: HomeAssistant,
entry: AirGradientConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AirGradient switch entities based on a config entry."""
coordinator = entry.runtime_data
@@ -6,7 +6,7 @@ from propcache.api import cached_property
from homeassistant.components.update import UpdateDeviceClass, UpdateEntity
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AirGradientConfigEntry, AirGradientCoordinator
from .entity import AirGradientEntity
@@ -18,7 +18,7 @@ SCAN_INTERVAL = timedelta(hours=1)
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AirGradientConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up Airgradient update platform."""
+9 -5
View File
@@ -6,21 +6,18 @@ from datetime import timedelta
import logging
from homeassistant.components.air_quality import DOMAIN as AIR_QUALITY_PLATFORM
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr, entity_registry as er
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import CONF_USE_NEAREST, DOMAIN, MIN_UPDATE_INTERVAL
from .coordinator import AirlyDataUpdateCoordinator
from .coordinator import AirlyConfigEntry, AirlyDataUpdateCoordinator
PLATFORMS = [Platform.SENSOR]
_LOGGER = logging.getLogger(__name__)
type AirlyConfigEntry = ConfigEntry[AirlyDataUpdateCoordinator]
async def async_setup_entry(hass: HomeAssistant, entry: AirlyConfigEntry) -> bool:
"""Set up Airly as config entry."""
@@ -60,7 +57,14 @@ async def async_setup_entry(hass: HomeAssistant, entry: AirlyConfigEntry) -> boo
update_interval = timedelta(minutes=MIN_UPDATE_INTERVAL)
coordinator = AirlyDataUpdateCoordinator(
hass, websession, api_key, latitude, longitude, update_interval, use_nearest
hass,
entry,
websession,
api_key,
latitude,
longitude,
update_interval,
use_nearest,
)
await coordinator.async_config_entry_first_refresh()
@@ -13,8 +13,8 @@ import voluptuous as vol
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from .const import CONF_USE_NEAREST, DOMAIN, NO_AIRLY_SENSORS
+13 -1
View File
@@ -10,6 +10,7 @@ from aiohttp.client_exceptions import ClientConnectorError
from airly import Airly
from airly.exceptions import AirlyError
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from homeassistant.util import dt as dt_util
@@ -27,6 +28,8 @@ from .const import (
_LOGGER = logging.getLogger(__name__)
type AirlyConfigEntry = ConfigEntry[AirlyDataUpdateCoordinator]
def set_update_interval(instances_count: int, requests_remaining: int) -> timedelta:
"""Return data update interval.
@@ -58,9 +61,12 @@ def set_update_interval(instances_count: int, requests_remaining: int) -> timede
class AirlyDataUpdateCoordinator(DataUpdateCoordinator[dict[str, str | float | int]]):
"""Define an object to hold Airly data."""
config_entry: AirlyConfigEntry
def __init__(
self,
hass: HomeAssistant,
config_entry: AirlyConfigEntry,
session: ClientSession,
api_key: str,
latitude: float,
@@ -76,7 +82,13 @@ class AirlyDataUpdateCoordinator(DataUpdateCoordinator[dict[str, str | float | i
self.airly = Airly(api_key, session, language=language)
self.use_nearest = use_nearest
super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=update_interval)
super().__init__(
hass,
_LOGGER,
config_entry=config_entry,
name=DOMAIN,
update_interval=update_interval,
)
async def _async_update_data(self) -> dict[str, str | float | int]:
"""Update data via library."""
@@ -13,7 +13,7 @@ from homeassistant.const import (
)
from homeassistant.core import HomeAssistant
from . import AirlyConfigEntry
from .coordinator import AirlyConfigEntry
TO_REDACT = {CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_UNIQUE_ID}
+3 -3
View File
@@ -21,10 +21,9 @@ from homeassistant.const import (
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import AirlyConfigEntry, AirlyDataUpdateCoordinator
from .const import (
ATTR_ADVICE,
ATTR_API_ADVICE,
@@ -52,6 +51,7 @@ from .const import (
SUFFIX_PERCENT,
URL,
)
from .coordinator import AirlyConfigEntry, AirlyDataUpdateCoordinator
PARALLEL_UPDATES = 1
@@ -175,7 +175,7 @@ SENSOR_TYPES: tuple[AirlySensorEntityDescription, ...] = (
async def async_setup_entry(
hass: HomeAssistant,
entry: AirlyConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up Airly sensor entities based on a config entry."""
name = entry.data[CONF_NAME]
@@ -9,8 +9,8 @@ from airly import Airly
from homeassistant.components import system_health
from homeassistant.core import HomeAssistant, callback
from . import AirlyConfigEntry
from .const import DOMAIN
from .coordinator import AirlyConfigEntry
@callback
+2 -4
View File
@@ -15,13 +15,11 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr, entity_registry as er
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .coordinator import AirNowDataUpdateCoordinator
from .coordinator import AirNowConfigEntry, AirNowDataUpdateCoordinator
_LOGGER = logging.getLogger(__name__)
PLATFORMS = [Platform.SENSOR]
type AirNowConfigEntry = ConfigEntry[AirNowDataUpdateCoordinator]
async def async_setup_entry(hass: HomeAssistant, entry: AirNowConfigEntry) -> bool:
"""Set up AirNow from a config entry."""
@@ -38,7 +36,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: AirNowConfigEntry) -> bo
# Setup the Coordinator
session = async_get_clientsession(hass)
coordinator = AirNowDataUpdateCoordinator(
hass, session, api_key, latitude, longitude, distance, update_interval
hass, entry, session, api_key, latitude, longitude, distance, update_interval
)
# Sync with Coordinator
@@ -18,8 +18,8 @@ from homeassistant.config_entries import (
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_RADIUS
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from .const import DOMAIN
+13 -1
View File
@@ -10,6 +10,7 @@ from pyairnow import WebServiceAPI
from pyairnow.conv import aqi_to_concentration
from pyairnow.errors import AirNowError
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@@ -34,13 +35,18 @@ from .const import (
_LOGGER = logging.getLogger(__name__)
type AirNowConfigEntry = ConfigEntry[AirNowDataUpdateCoordinator]
class AirNowDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
"""The AirNow update coordinator."""
config_entry: AirNowConfigEntry
def __init__(
self,
hass: HomeAssistant,
config_entry: AirNowConfigEntry,
session: ClientSession,
api_key: str,
latitude: float,
@@ -55,7 +61,13 @@ class AirNowDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
self.airnow = WebServiceAPI(api_key, session=session)
super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=update_interval)
super().__init__(
hass,
_LOGGER,
config_entry=config_entry,
name=DOMAIN,
update_interval=update_interval,
)
async def _async_update_data(self) -> dict[str, Any]:
"""Update data via library."""
@@ -13,7 +13,7 @@ from homeassistant.const import (
)
from homeassistant.core import HomeAssistant
from . import AirNowConfigEntry
from .coordinator import AirNowConfigEntry
ATTR_LATITUDE_CAP = "Latitude"
ATTR_LONGITUDE_CAP = "Longitude"
+3 -3
View File
@@ -21,11 +21,10 @@ from homeassistant.const import (
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import AirNowConfigEntry, AirNowDataUpdateCoordinator
from .const import (
ATTR_API_AQI,
ATTR_API_AQI_DESCRIPTION,
@@ -43,6 +42,7 @@ from .const import (
DOMAIN,
US_TZ_OFFSETS,
)
from .coordinator import AirNowConfigEntry, AirNowDataUpdateCoordinator
ATTRIBUTION = "Data provided by AirNow"
@@ -130,7 +130,7 @@ SENSOR_TYPES: tuple[AirNowEntityDescription, ...] = (
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AirNowConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AirNow sensor entities based on a config entry."""
coordinator = config_entry.runtime_data
@@ -22,6 +22,8 @@ _LOGGER = logging.getLogger(__name__)
class AirQCoordinator(DataUpdateCoordinator):
"""Coordinator is responsible for querying the device at a specified route."""
config_entry: ConfigEntry
def __init__(
self,
hass: HomeAssistant,
@@ -33,6 +35,7 @@ class AirQCoordinator(DataUpdateCoordinator):
super().__init__(
hass,
_LOGGER,
config_entry=entry,
name=DOMAIN,
update_interval=timedelta(seconds=UPDATE_INTERVAL),
)
+1 -1
View File
@@ -7,5 +7,5 @@
"integration_type": "hub",
"iot_class": "local_polling",
"loggers": ["aioairq"],
"requirements": ["aioairq==0.4.3"]
"requirements": ["aioairq==0.4.4"]
}
+2 -2
View File
@@ -24,7 +24,7 @@ from homeassistant.const import (
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import AirQConfigEntry, AirQCoordinator
@@ -399,7 +399,7 @@ SENSOR_TYPES: list[AirQEntityDescription] = [
async def async_setup_entry(
hass: HomeAssistant,
entry: AirQConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up sensor entities based on a config entry."""
+2 -2
View File
@@ -22,7 +22,7 @@ from homeassistant.const import (
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.typing import StateType
from homeassistant.helpers.update_coordinator import CoordinatorEntity
@@ -114,7 +114,7 @@ SENSORS: dict[str, SensorEntityDescription] = {
async def async_setup_entry(
hass: HomeAssistant,
entry: AirthingsConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up the Airthings sensor."""
@@ -144,7 +144,7 @@ class AirthingsConfigFlow(ConfigFlow, domain=DOMAIN):
return self.async_create_entry(title=discovery.name, data={})
current_addresses = self._async_current_ids()
current_addresses = self._async_current_ids(include_ignore=False)
for discovery_info in async_discovered_service_info(self.hass):
address = discovery_info.address
if address in current_addresses or address in self._discovered_devices:
@@ -25,7 +25,7 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import device_registry as dr, entity_registry as er
from homeassistant.helpers.device_registry import CONNECTION_BLUETOOTH, DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.entity_registry import (
RegistryEntry,
async_entries_for_device,
@@ -153,7 +153,7 @@ def async_migrate(hass: HomeAssistant, address: str, sensor_name: str) -> None:
async def async_setup_entry(
hass: HomeAssistant,
entry: AirthingsBLEConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up the Airthings BLE sensors."""
is_metric = hass.config.units is METRIC_SYSTEM
@@ -19,7 +19,7 @@ from homeassistant.components.climate import (
from homeassistant.const import ATTR_TEMPERATURE, UnitOfTemperature
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import AirTouch4ConfigEntry
@@ -64,7 +64,7 @@ _LOGGER = logging.getLogger(__name__)
async def async_setup_entry(
hass: HomeAssistant,
config_entry: AirTouch4ConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up the Airtouch 4."""
coordinator = config_entry.runtime_data
@@ -37,7 +37,7 @@ from homeassistant.components.climate import (
from homeassistant.const import ATTR_TEMPERATURE, UnitOfTemperature
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import Airtouch5ConfigEntry
from .const import DOMAIN, FAN_INTELLIGENT_AUTO, FAN_TURBO
@@ -93,7 +93,7 @@ FAN_MODE_TO_SET_AC_FAN_SPEED = {
async def async_setup_entry(
hass: HomeAssistant,
config_entry: Airtouch5ConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up the Airtouch 5 Climate entities."""
client = config_entry.runtime_data
+2 -2
View File
@@ -20,7 +20,7 @@ from homeassistant.components.cover import (
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import Airtouch5ConfigEntry
from .const import DOMAIN
@@ -32,7 +32,7 @@ _LOGGER = logging.getLogger(__name__)
async def async_setup_entry(
hass: HomeAssistant,
config_entry: Airtouch5ConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up the Airtouch 5 Cover entities."""
client = config_entry.runtime_data
+2 -2
View File
@@ -23,7 +23,7 @@ from homeassistant.const import (
CONF_STATE,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from . import AirVisualConfigEntry
@@ -108,7 +108,7 @@ POLLUTANT_UNITS = {
async def async_setup_entry(
hass: HomeAssistant,
entry: AirVisualConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AirVisual sensors based on a config entry."""
coordinator = entry.runtime_data
@@ -20,7 +20,7 @@ from homeassistant.const import (
UnitOfTemperature,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AirVisualProConfigEntry
from .entity import AirVisualProEntity
@@ -130,7 +130,7 @@ def async_get_aqi_locale(settings: dict[str, Any]) -> str:
async def async_setup_entry(
hass: HomeAssistant,
entry: AirVisualProConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up AirVisual sensors based on a config entry."""
async_add_entities(
+2 -5
View File
@@ -15,7 +15,6 @@ from aioairzone.const import (
)
from aioairzone.localapi import AirzoneLocalApi, ConnectionOptions
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, CONF_ID, CONF_PORT, Platform
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers import (
@@ -25,7 +24,7 @@ from homeassistant.helpers import (
)
from .const import DOMAIN, MANUFACTURER
from .coordinator import AirzoneUpdateCoordinator
from .coordinator import AirzoneConfigEntry, AirzoneUpdateCoordinator
PLATFORMS: list[Platform] = [
Platform.BINARY_SENSOR,
@@ -38,8 +37,6 @@ PLATFORMS: list[Platform] = [
_LOGGER = logging.getLogger(__name__)
type AirzoneConfigEntry = ConfigEntry[AirzoneUpdateCoordinator]
async def _async_migrate_unique_ids(
hass: HomeAssistant,
@@ -90,7 +87,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: AirzoneConfigEntry) -> b
)
airzone = AirzoneLocalApi(aiohttp_client.async_get_clientsession(hass), options)
coordinator = AirzoneUpdateCoordinator(hass, airzone)
coordinator = AirzoneUpdateCoordinator(hass, entry, airzone)
await coordinator.async_config_entry_first_refresh()
await _async_migrate_unique_ids(hass, entry, coordinator)
@@ -23,10 +23,9 @@ from homeassistant.components.binary_sensor import (
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AirzoneConfigEntry
from .coordinator import AirzoneUpdateCoordinator
from .coordinator import AirzoneConfigEntry, AirzoneUpdateCoordinator
from .entity import AirzoneEntity, AirzoneSystemEntity, AirzoneZoneEntity
@@ -77,7 +76,7 @@ ZONE_BINARY_SENSOR_TYPES: Final[tuple[AirzoneBinarySensorEntityDescription, ...]
async def async_setup_entry(
hass: HomeAssistant,
entry: AirzoneConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Add Airzone binary sensors from a config_entry."""
coordinator = entry.runtime_data
+3 -4
View File
@@ -48,11 +48,10 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ATTR_TEMPERATURE
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from . import AirzoneConfigEntry
from .const import API_TEMPERATURE_STEP, TEMP_UNIT_LIB_TO_HASS
from .coordinator import AirzoneUpdateCoordinator
from .coordinator import AirzoneConfigEntry, AirzoneUpdateCoordinator
from .entity import AirzoneZoneEntity
BASE_FAN_SPEEDS: Final[dict[int, str]] = {
@@ -101,7 +100,7 @@ HVAC_MODE_HASS_TO_LIB: Final[dict[HVACMode, OperationMode]] = {
async def async_setup_entry(
hass: HomeAssistant,
entry: AirzoneConfigEntry,
async_add_entities: AddEntitiesCallback,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Add Airzone climate from a config_entry."""
coordinator = entry.runtime_data
@@ -10,6 +10,7 @@ from typing import Any
from aioairzone.exceptions import AirzoneError
from aioairzone.localapi import AirzoneLocalApi
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@@ -19,17 +20,27 @@ SCAN_INTERVAL = timedelta(seconds=60)
_LOGGER = logging.getLogger(__name__)
type AirzoneConfigEntry = ConfigEntry[AirzoneUpdateCoordinator]
class AirzoneUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
"""Class to manage fetching data from the Airzone device."""
def __init__(self, hass: HomeAssistant, airzone: AirzoneLocalApi) -> None:
config_entry: AirzoneConfigEntry
def __init__(
self,
hass: HomeAssistant,
config_entry: AirzoneConfigEntry,
airzone: AirzoneLocalApi,
) -> None:
"""Initialize."""
self.airzone = airzone
super().__init__(
hass,
_LOGGER,
config_entry=config_entry,
name=DOMAIN,
update_interval=SCAN_INTERVAL,
)
@@ -10,7 +10,7 @@ from homeassistant.components.diagnostics import async_redact_data
from homeassistant.const import CONF_UNIQUE_ID
from homeassistant.core import HomeAssistant
from . import AirzoneConfigEntry
from .coordinator import AirzoneConfigEntry
TO_REDACT_API = [
API_MAC,
+1 -2
View File
@@ -31,9 +31,8 @@ from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import AirzoneConfigEntry
from .const import DOMAIN, MANUFACTURER
from .coordinator import AirzoneUpdateCoordinator
from .coordinator import AirzoneConfigEntry, AirzoneUpdateCoordinator
_LOGGER = logging.getLogger(__name__)

Some files were not shown because too many files have changed in this diff Show More