Compare commits

...

3030 Commits

Author SHA1 Message Date
Erik
8d0ac23f07 Remove onboarding as dependency of lovelace 2025-03-31 15:38:52 +02:00
pglab-electronics
c0e8f14745 Update support to external library pypglab to version 0.0.5 (#141876)
update support to external library pypglab to version 0.0.5
2025-03-31 10:25:48 +02:00
elmurato
0488012c77 Add sensor platform to Pterodactyl (#141428)
* Add sensor platform

* Correct CPU Limit state attribute translation

* Remove calculated util entitites, add usage and limit entities

* Use suggested_unit_of_measurement instead of converters

* Start only first word of sensor names in upper case, improve suggested units of sensors

* Simplify update of native_value, set uptime as timestamp

* Add paranthesis around multi-line lambda
2025-03-31 10:23:40 +02:00
J. Nick Koston
f247183e11 Bump SQLAlchemy to 2.0.40 (#141898)
changelog: https://docs.sqlalchemy.org/en/20/changelog/changelog_20.html#change-2.0.40
2025-03-31 10:11:13 +02:00
Norbert Rittel
c662b94d06 Replace "Away" in climate with common state string, matching "Home" (#141897)
* Replace "Away" in `climate` with common state string

Also reordered the states a bit to group the two presence-based options at the top and order the rest alphabetically.

* Prettier
2025-03-31 09:56:10 +02:00
Norbert Rittel
ee4bf165b5 Use common state for "Away" in nobo_hub (#141895) 2025-03-31 08:45:19 +02:00
Norbert Rittel
92ac396d19 Use common state for "Away" in honeywell (#141894) 2025-03-31 08:44:42 +02:00
Norbert Rittel
03366038ce Define "Away" state in plugwise using common string (#141875) 2025-03-31 07:35:03 +02:00
Noah Husby
0b91aa9202 Bump aiorussound to 4.5.0 (#141892) 2025-03-31 07:32:14 +02:00
Norbert Rittel
ffc4fa1c2a Replace "Away" in humidifier with common string (#141872) 2025-03-31 07:29:17 +02:00
Norbert Rittel
15e03957a9 Replace "Away" in generic_thermostat with common string (#141880) 2025-03-31 07:25:19 +02:00
Marc Mueller
0be881bca6 Fix test RuntimeWarnings for homeassistant_hardware (#141884) 2025-03-31 07:24:02 +02:00
Paulus Schoutsen
e88b321741 Ensure user always has first turn for Google Gen AI (#141893) 2025-03-30 23:31:45 -04:00
Allen Porter
0c4cb27fe9 Add OAuth support for Model Context Protocol (mcp) integration (#141874)
* Add authentication support for Model Context Protocol (mcp) integration

* Update homeassistant/components/mcp/application_credentials.py

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

* Handle MCP servers with ports

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2025-03-30 23:14:52 -04:00
J. Nick Koston
1639163c2e Handle encryption being disabled on an ESPHome device (#141887)
fixes #121442
2025-03-30 21:25:24 -04:00
J. Nick Koston
f043404cd9 Fix duplicate call to async_write_ha_state when adding elkm1 entities (#141890)
When an entity is added state is always written in
add_to_platform_finish:

7336178e03/homeassistant/helpers/entity.py (L1384)

We should not do it in async_added_to_hass as well
2025-03-30 21:23:54 -04:00
J. Nick Koston
018651ff1d Improve handling of empty iterable in async_add_entities (#141889)
* Improve handling of empty iterable in async_add_entities

We had two checks here because we were doing an empty
iterable check. If its a list we can check it directly
but if its not we need to convert it to a list to know
if its empty.

* tweaks

* tasks never used
2025-03-30 21:22:47 -04:00
J. Nick Koston
704d7a037c Bump aioesphomeapi to 29.8.0 (#141888)
changelog: https://github.com/esphome/aioesphomeapi/compare/v29.7.0...v29.8.0
2025-03-30 21:14:17 -04:00
Marc Mueller
7336178e03 Fix test RuntimeWarnings for hassio (#141883) 2025-03-30 12:00:48 -10:00
tdfountain
1c16fb8e42 Set and check unique id of config in NUT (#141783)
* Set and check unique id in config

* Update homeassistant/components/nut/config_flow.py

Set unique ID and abort only if value is defined

Co-authored-by: J. Nick Koston <nick+github@koston.org>

* Add duplicate ID test case for multiple devices

* Add unique ID check to config flow step for UPS

* Update homeassistant/components/nut/__init__.py

Fix to only set config_entries unique ID if not None

Co-authored-by: J. Nick Koston <nick+github@koston.org>

* Remove duplicate config flow call

---------

Co-authored-by: J. Nick Koston <nick+github@koston.org>
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-03-30 11:41:56 -10:00
tdfountain
3ab2cd3fb7 Set device connection MAC address for networked devices in NUT (#141856)
* Set device connection MAC address for networked devices

* Change variable name for consistency
2025-03-30 11:21:11 -10:00
Norbert Rittel
5057343b6a Replace "Home" and "Away" in vallox with common strings (#141870) 2025-03-30 22:49:52 +02:00
Norbert Rittel
6c3e85fd5e Replace "Home" and "Away" in reolink with common strings (#141869) 2025-03-30 22:44:48 +02:00
Norbert Rittel
f046456445 Replace "Home" and "Away" in opentherm_gw with common strings (#141867) 2025-03-30 22:36:46 +02:00
tdfountain
e81a08916a Remove scan interval option from NUT (#141845)
Remove scan interval option and test case, migrate config and add migration test case
2025-03-30 22:34:45 +02:00
John Karabudak
85d2e3d006 Fix LLM to speed up prefill (#141156)
* fix: two minor LLM changes to speed up prefill

- moved the current date/time to the end of the prompt
- started sorting all entities by last_changed

* addressed PR comments

* fixed tests

* reduced scope of try/catch in LLM prompt

* addressed more PR comments

* fixed Anthropic test

* addressed another PR comment

* fixed remainder of tests
2025-03-30 13:30:40 -07:00
Norbert Rittel
936b0b32ed Replace "Home" and "Away" in drop_connect with common strings (#141864) 2025-03-30 22:30:08 +02:00
J. Nick Koston
0d511c697c Improve performance of as_compressed_state (#141800)
We have to build all of these at startup.

Its a lot faster to compare floats instead
of datetime objects. Since we already have to
fetch last_changed_timestamp, use it to compare
with last_updated_timestamp since we already know
we will have last_updated_timestamp
2025-03-30 22:20:24 +02:00
Norbert Rittel
5bfe034b4d Replace "Country" with common and pollutant labels with sensor strings (#141863)
* Replace "Country" with common and pollutant labels with `sensor` strings

* Fix copy & paste error for "ozone"
2025-03-30 22:17:51 +02:00
J. Nick Koston
cf786b3b04 Bump google_cloud deps (#141861)
speech: https://github.com/googleapis/google-cloud-python/compare/google-cloud-speech-v2.27.0...google-cloud-speech-v2.31.1
texttospeech: https://github.com/googleapis/google-cloud-python/compare/google-cloud-texttospeech-v2.17.2...google-cloud-texttospeech-v2.25.1
2025-03-30 22:15:19 +02:00
Joost Lekkerkerker
0f9f090db2 Bump pySmartThings to 3.0.1 (#141722) 2025-03-30 21:34:49 +02:00
J. Nick Koston
302eea7418 Bump PyISY to 3.4.0 (#141851)
* Bump PyISY to 3.3.0

changelog: https://github.com/automicus/PyISY/compare/v3.2.0...v3.3.0

* Apply suggestions from code review

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2025-03-30 22:29:51 +03:00
J. Nick Koston
b5e1f7e03e Cleanup some typing in isy994 (#141859)
Now that pyisy is mostly typed there were some obvious
issues. We are still a long way away from being able
to add py.typed to pyisy, but we can now see some
obvious things in an IDE
2025-03-30 09:18:30 -10:00
Norbert Rittel
02397a8d2d Replace "Off" state in selectors of home_connect with common state (#141857)
* Replace "Off" state in selectors of `home_connect` with common state

* Replace internal with common references
2025-03-30 21:03:46 +02:00
Norbert Rittel
ea9437eab2 Use common state for "Off" in climate selector (#141850)
* Use common states for "Away" and "Off" in `climate`

* Revert common state for "Away"

Four other integrations are referencing this instead of the common state. Needs to be addressed first.
2025-03-30 21:02:54 +02:00
Norbert Rittel
aaea30bee0 Replace "Off" in selector of media_player with common state (#141853) 2025-03-30 21:01:03 +02:00
Joost Lekkerkerker
9c869fa701 Add a coordinator to Point (#126775)
* Add a coordinator to Point

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix
2025-03-30 20:58:40 +02:00
Eli Sand
5106548f2c Fix generic_thermostat so it doesn't turn on when current temp is within target temp range (#138209)
* Don't turn on thermostat if temp is equal to target temp.

* Update strings to reflect logic change.

* Fix logic and add zero tolerance tests.

* Include tests for cool mode

* Removed unnecessary async_block_till_done calls
2025-03-30 19:43:13 +01:00
Franck Nijhof
506d485c0d Ensure EcoNet operation modes are unique (#141689) 2025-03-30 20:31:08 +02:00
Bouwe Westerdijk
da190ec96f Bump plugwise to v1.7.3 (#141843) 2025-03-30 20:24:13 +02:00
Franck Nijhof
9567929484 Update pvo to v2.2.1 (#141847) 2025-03-30 21:12:42 +03:00
Norbert Rittel
dc16494332 Replace "Disabled" with common state in schlage, fix sentence-case (#141849)
Replace "Disabled" with common state in `lamarzocco`, fix sentence-case

- replace "Disabled" with with common state reference
- fix sentence-casing of "Auto-lock"
2025-03-30 21:12:15 +03:00
Norbert Rittel
933f422588 Replace "Disabled" with common state in lamarzocco (#141848) 2025-03-30 20:00:18 +02:00
Michael
663d0691a7 Move setup messages from info to debug level (#141834)
move info to debug level
2025-03-30 19:49:41 +02:00
Norbert Rittel
97a0b9272e Resolve state mismatches in wolflink (#141846) 2025-03-30 19:42:39 +02:00
Lucas Mindêllo de Andrade
3d49000c75 Remove sunweg integration (#124230)
* chore(sunweg): remove sunweg integration

* Update homeassistant/components/sunweg/strings.json

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

* Update homeassistant/components/sunweg/manifest.json

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

* feat: added async remove entry

* Clean setup_entry; add tests

---------

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
Co-authored-by: abmantis <amfcalt@gmail.com>
2025-03-30 18:11:09 +01:00
Norbert Rittel
68d1a3c0a2 Replace "Off" and references with common state in tesla_fleet (#141840) 2025-03-30 19:06:28 +02:00
Norbert Rittel
b06de7a687 Replace "Off" and references with common state in teslemetry (#141841) 2025-03-30 18:50:58 +02:00
Michael
963ea6141c Fix the entity category for max throughput sensors in AVM Fritz!Box Tools (#141838)
correct the entity category for max throughput sensors
2025-03-30 17:46:03 +02:00
Franck Nijhof
7232d36494 Fix hardcoded UoM for total power sensor for Tuya zndb devices (#141822) 2025-03-30 17:44:48 +02:00
Norbert Rittel
12eb071e8a Replace "Off" with common state in plugwise (#141828) 2025-03-30 17:31:12 +02:00
Paulus Schoutsen
86be626c69 Migrate ESPHome to use token instead of media source ID for legacy Assist Pipelines (#139665)
Migrate legacy ESPHome devices to use TTS token

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-30 16:53:49 +02:00
Mauricio Bonani
ec20e41836 Improve the readability of status messages in NUT (#141335)
Improve the readability of status messages
2025-03-30 16:26:44 +02:00
Michal Schwarz
b3564b6cff Fix order of palettes, presets and playlists in WLED integration (#132207)
* Fix order of palettes, presets and playlists in WLED integration

* fix tests: update palette items order

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-30 16:14:56 +02:00
Marlon
acbee815be Update apsystems library to support battery inverter (#140086)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-30 16:11:22 +02:00
Norbert Rittel
5a1aeff85c Replace "On" and "Off" with common states in rfxtrx (#141835)
Also fix sentence-casing on other "… on" and "… off" states.
2025-03-30 16:10:17 +02:00
Allen Porter
4463e4c42b Move roborock unique id to be based on roborock userid instead of email (#141337)
* Move roborock unique id to be based on roborock userid instead of email

* Remove unnecessary data update

* Update tests

* Add tests coverage for removal of config entry

* Use config entry migration

* Remove unused fixtues

* Remove unnecessary logging
2025-03-30 16:04:28 +02:00
Norbert Rittel
4103ef71c9 Replace "Off" with common state in wyoming (#141832) 2025-03-30 16:02:09 +02:00
Norbert Rittel
dccaa2dd2d Replace "Off" with common state in sleepiq (#141831) 2025-03-30 16:01:15 +02:00
Norbert Rittel
5ac6096e08 Replace "Off" with common state in osoenergy (#141830) 2025-03-30 16:00:50 +02:00
Norbert Rittel
4734a82f99 Replace "Off" with common state in airgradient (#141829)
* Replace "Off" with common state in `airgradient`

Also reference the name for CO2 from the `sensor` integration.

* Replace indirect with direct references
2025-03-30 16:00:11 +02:00
Norbert Rittel
c6c2309dee Replace "Idle" with common state in zha (#141825) 2025-03-30 15:21:13 +02:00
Simone Chemelli
5e1bbd8bff Add full test coverage for Comelit climate platform (#140460)
* Add climate tests for Comelit

* fix climate and humidifier

* fix code and tests

* fix humidifier

* apply review comment

* align post merge

* add more tests

* typo

* apply review comment

* ruff
2025-03-30 15:15:26 +02:00
Michael
4761207097 Add boost preset to AVM Fritz!SmartHome climate entities (#141802)
* add boost preset to climate entities

* add set boost preset test
2025-03-30 15:03:26 +02:00
Simone Chemelli
b4a6ca63b3 Add full test coverage for Comelit sensor platform (#141813) 2025-03-30 15:02:15 +02:00
Jan Bouwhuis
a5b320180a Correct spelling for 'availability` in MQTT translation strings (#141818) 2025-03-30 15:01:06 +02:00
Aidan Timson
bcc767136c Add System Bridge suggested sensor precisions (#141815) 2025-03-30 15:00:38 +02:00
Simone Chemelli
d3257d96d0 Add full test coverage for Comelit light platform (#141736)
* Add full test coverage for Comelit light platform

* cleanup
2025-03-30 14:59:56 +02:00
Martin Hjelmare
89df6a82b0 Bump pydroid-ipcam to 3.0.0 (#141739) 2025-03-30 14:59:13 +02:00
Thomas55555
e725ba403b Bump ical to 9.0.3 (#141805) 2025-03-30 14:58:47 +02:00
Aidan Timson
578fece13e Fix System Bridge wait timeout wait condition (#141811)
* Fix System Bridge wait timeout wait condition

* Add DataMissingException as a timeout condition

* Add tests
2025-03-30 14:57:53 +02:00
Norbert Rittel
0eeb6b5fd5 Replace "Idle" with common state in backup, fix sentence-case (#141814)
* Replace "Idle" with common state in `backup`, fix sentence-case

* Update test_sensors.ambr
2025-03-30 14:56:36 +02:00
Norbert Rittel
ad3f7f041f Replace "Idle" with common state in homekit_controller (#141820) 2025-03-30 15:34:36 +03:00
Norbert Rittel
dce9bfd359 Replace "Idle" with common state in venstar, fix sentence-case (#141819) 2025-03-30 15:34:23 +03:00
Norbert Rittel
8f96ccc835 Fix sentence-casing in a few strings of bmw_connected_drive (#141816)
* Fix sentence-casing in a few strings of `bmw_connected_drive`

Also replace "Standby" state with common string reference.

* Update test_select.ambr
2025-03-30 15:13:35 +03:00
Andrew Sayre
a48dd05035 Refactor registration of HEOS media player entity services (#141666)
Refactor entity service registration
2025-03-30 15:10:05 +03:00
Norbert Rittel
eb90958341 Replace "Stand-by" and "Off" with common states in palazzetti (#141809)
Also fixes the  wrong spelling of "Stand-by" by using "Standby" from the common string.
2025-03-30 15:08:03 +03:00
Norbert Rittel
31ed6a48cb Replace "Standby" with common state in roborock (#141810) 2025-03-30 15:07:43 +03:00
Norbert Rittel
dfa80f0787 Replace "Standby" with common state in knx (#141817)
Also reordered the states alphabetically to improve code readability.
2025-03-30 15:07:08 +03:00
Norbert Rittel
73acfa6a8e Replace "Stand-by" with common state in incomfort (#141807)
Also fixes the  wrong spelling of "Stand-by" by using "Standby" from the common string.
2025-03-30 13:55:06 +02:00
Norbert Rittel
efad20cdff Replace "Standby" and "Idle" with common states in fronius (#141812) 2025-03-30 13:43:33 +02:00
Norbert Rittel
11d68cef54 Replace "Standby" with common state in blue_current (#141806) 2025-03-30 14:14:17 +03:00
J. Nick Koston
9c28e60475 Bump pyisy to 3.2.0 (#141798)
changelog: https://github.com/automicus/PyISY/compare/v3.1.15...v3.2.0

Fixes some tasks missing a strong reference
https://github.com/automicus/PyISY/pull/425

There is a bit of refactoring so I did not tag it for
beta.
2025-03-30 14:06:07 +03:00
Simone Chemelli
9ee79b87ee Add full test coverage for Comelit switch platform (#141738)
* Add full test coverage for Comelit switch platform

* cleanup
2025-03-30 12:10:41 +02:00
Simone Chemelli
600aedc9a1 Add tests for Comelit cover platform (#141740)
* Add  tests for Comelit cover platform

* cleanup up
2025-03-30 12:04:00 +02:00
Norbert Rittel
5b5efb5aaa Replace "Stopped" with common state in smartthings (#141789)
* Replace "Stopped" with common state in `smartthings`

* Replace internal references with common ones
2025-03-30 11:58:17 +02:00
Norbert Rittel
391b3ed1e7 Replace "Stopped" with common state in snoo (#141788)
* Replace "Stopped" with common state in `snoo`

* Replace internal reference with common one
2025-03-30 11:57:15 +02:00
Norbert Rittel
24277259ad Use more common states for ESS and PV in vicare (#141792) 2025-03-30 11:56:50 +02:00
J. Nick Koston
65261de7cc Migrate emulated_roku to use runtime_data to fix flakey tests (#141795) 2025-03-30 11:55:58 +02:00
Norbert Rittel
beb92a7f9c Replace "Charging" state for binary_sensor with common string (#141796) 2025-03-30 11:41:01 +02:00
J. Nick Koston
f1b059c75d Bump PyISY to 3.1.15 (#141778)
changelog: https://github.com/automicus/PyISY/compare/v3.1.14...v3.1.15

fixes #141517
fixes #132279
2025-03-30 11:40:25 +02:00
J. Nick Koston
d4970f81aa Cleanup ESPHome update tests to avoid accessing integration internals (#141786)
We should not access DomainData directly in the test
2025-03-29 22:30:06 -10:00
Norbert Rittel
29219afb7f Replace "Charging" state in renault with common string (#141787) 2025-03-30 10:16:42 +02:00
tdfountain
7fbf15edc9 Add ambient state translations in NUT (#141772)
Add ambient state translations
2025-03-29 21:00:53 -10:00
J. Nick Koston
c8d3fa6768 Small cleanups to the device registry (#141773)
Remove some calls to internal functions that
are now available directly on the devices
and deleted_devices objects

Remove internal functions that are no
longer used
2025-03-29 21:00:13 -10:00
J. Nick Koston
ea5cf3d854 Bump aiohomekit to 3.2.13 (#141764)
changelog: https://github.com/Jc2k/aiohomekit/compare/3.2.8...3.2.13
2025-03-29 20:59:56 -10:00
J. Nick Koston
4a833fb489 Fix blocking late import of httpcore from httpx (#141771)
There is a late import that blocks the event loop
in newer version
9e8ab40369/httpx/_transports/default.py (L75)
2025-03-29 20:59:40 -10:00
Norbert Rittel
02aa823d25 Replace "Stopped" with common state in matter (#141768) 2025-03-30 09:42:48 +03:00
Norbert Rittel
92034aeecc Replace "Opening" / "Closing" with common states in homee (#141766) 2025-03-30 09:42:28 +03:00
Florent Thoumie
9f2232fad1 Bump iaqualink to 0.5.3 (#141709)
* Update to iaqualink 0.5.3 and silence warning

* Update to iaqualink 0.5.3 and silence warning

* Re-add via_device line
2025-03-30 06:49:18 +02:00
tdfountain
2be2d54a5c Replace hard coded attributes with constants for test cases in NUT (#141774)
Replace hard coded attributes with constants
2025-03-29 15:19:41 -10:00
J. Nick Koston
ed99686cc1 Bump propcache to 0.3.1 (#141770)
* Bump propcache to 0.3.1

changelog: https://github.com/aio-libs/propcache/compare/v0.3.0...v0.3.1

* revert
2025-03-29 23:10:08 +00:00
Norbert Rittel
a6c1f1e485 Replace "Opening" / "Closing" with common states in shelly (#141767) 2025-03-30 00:48:28 +03:00
puddly
a219445751 Add helper methods to simplify USB integration testing (#141733)
* Add some helper methods to simplify USB integration testing

* Re-export `usb_device_from_port`
2025-03-29 11:26:37 -10:00
Norbert Rittel
b65b5aacb6 Add common state references to cover, valve and lock (#141754)
* Add common states to `cover`

* @NoRi2909 Add common states to `valve`

* Add common states to `lock`
2025-03-29 17:06:15 -04:00
Norbert Rittel
bcead72265 Replace "Stopped" with common state in traccar_server (#141751) 2025-03-29 17:05:34 -04:00
Benjamin Bender
35b9564ed4 Show external cover art in music-assistant-integration (#141716)
* fix: handling of external album-art in music-assistant-integration

* chore: refinements

* make the image-logic more readable

* fix code comment to be accurate
2025-03-29 17:04:57 -04:00
Florent Thoumie
aba01d4361 Remove iaqualink warning caused by via_device (#141761)
Remove warning caused by via_device
2025-03-29 17:03:35 -04:00
Franck Nijhof
4398af51c8 Fix spamming log message in QNAP (#141752) 2025-03-29 16:57:43 -04:00
Norbert Rittel
83f4f4cc96 Replace "Stopped" with common state in ipp (#141750) 2025-03-29 19:19:56 +01:00
Norbert Rittel
1800e6fb8e Add common states for "Opening" and "Closing" (#141747) 2025-03-29 19:19:30 +01:00
Simone Chemelli
43b83c855f Align code styling in Vodafone Station tests (#141745) 2025-03-29 18:42:12 +01:00
Marcel van der Veldt
20e2de200f Always set pause feature on Music Assistant mediaplayers (#141686) 2025-03-29 18:39:59 +01:00
Josef Zweck
ed4ebe1222 Add unkown to uncalibrated state for tedee (#141262) 2025-03-29 18:38:19 +01:00
Simone Chemelli
4e4446cef4 Fix immediate state update for Comelit (#141735) 2025-03-29 18:22:03 +01:00
Norbert Rittel
e2ff0b265d Replace "Stopped" with common state in prusalink (#141743)
* Replace "Stopped" with common state in `prusalink`

* Sentence-case "Nozzle diameter"
2025-03-29 18:07:38 +01:00
J. Nick Koston
6d48fc183a Fix ESPHome update entities being loaded before device_info is available (#141704)
* Fix ESPHome update entities being loaded before device_info is available

Since we load platforms when restoring config, the update
platform could be loaded before the connection to the
device was finished which meant device_info could still
be empty. Wait until device_info is available to
load the update platform.

fixes #135906

* Apply suggestions from code review

* move comment

* Update entry_data.py

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>

---------

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2025-03-29 17:53:01 +01:00
J. Nick Koston
ea8392a4a1 Fix ESPHome entities not being removed when the ESPHome config removes an entire platform (#141708)
* Fix old ESPHome entities not being removed when configuration changes

fixes #140756

* make sure all callbacks fire

* make sure all callbacks fire

* make sure all callbacks fire

* make sure all callbacks fire

* revert

* cover
2025-03-29 17:48:51 +01:00
Simone Chemelli
bcd296822d Add full test coverage for Comelit alarm control panel (#141371)
* Add full test coverage for Comelit alarm control panel

* fix methods description

* revert unwanted change

* apply review comment
2025-03-29 17:29:37 +01:00
Jan Bouwhuis
6ee97f341d Improve MQTT translation strings (#141691)
* Improve MQTT options translation string

* more improvements
2025-03-29 17:29:04 +01:00
Norbert Rittel
aa2ab74ee9 Replace "On" and "Off" in airzone_cloud with common states (#141711)
* Replace "On", "Off" and "Stop(ped)" in `airzone_cloud` with common strings

* Revert to "Stop" as mode name by manufacturer

Co-authored-by: acidcoke <acidcoke@acidic.codes>

---------

Co-authored-by: acidcoke <acidcoke@acidic.codes>
2025-03-29 18:05:41 +03:00
Norbert Rittel
49b2ab9889 Replace "Stopped" etc. with common state in teslemetry/tessie/tesla_fleet (#141714)
* Replace "Stopped" with common state in `teslemetry`

* Replace "Disconnected" with common state in `teslemetry`

* Replace "Stopped"/"Disconnected" with common state in `tessie`

* Replace "Stopped", "Connected", "Disconnected" with common state in `tesla_fleet`
2025-03-29 18:03:48 +03:00
Martin Hjelmare
2549e2cc0f Patch Z-Wave platforms in humidifier tests (#141732) 2025-03-29 17:59:13 +03:00
J. Diego Rodríguez Royo
b15fa81a44 Set Home Connect program action field as not required (#141729)
* Set Home Connect program action field as not required

* Remove required field

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-29 15:02:54 +01:00
J. Diego Rodríguez Royo
09f6246d1b Dynamically add Home Connect event sensors (#141198)
* Dynamically add Home Connect event sensors to HA

* Add and remove listeners on paired and depaired events

* Apply suggestion

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

* Update test

* Adjust English

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-29 12:53:34 +01:00
Norbert Rittel
96ff389fd1 Sentence-case "Medium type" in mopeka (#141718) 2025-03-29 10:19:25 +01:00
Joost Lekkerkerker
b55f1df297 Only link the parent device if known in SmartThings (#141719)
Only link the parent device if we know the parent device
2025-03-29 10:18:27 +01:00
Joost Lekkerkerker
d88f7b8600 Only trigger events on button updates in SmartThings (#141720)
Only trigger events on button updates
2025-03-29 10:17:38 +01:00
Norbert Rittel
df2a94bb5b Replace "country" with common string in lg_thinq (#141690) 2025-03-29 00:27:10 +00:00
Norbert Rittel
c4ac492c6e Add common state "Stopped" (#141701) 2025-03-29 00:25:22 +00:00
Franck Nijhof
fcd4d3e2df Add ability to subscribe to own YouTube channels (#141693) 2025-03-28 19:59:24 -04:00
Franck Nijhof
42d6bd3839 Handle invalid JSON errors in AirNow (#141695) 2025-03-28 19:58:41 -04:00
J. Nick Koston
d6b48003b6 Improve performance of websocket_api _state_diff_event (#141696)
We can use last_updated_timestamp for the compare since its always
calculated when the state is created and comparing floats is
much faster than datetime objects
2025-03-28 19:58:12 -04:00
Franck Nijhof
ba8f69d956 Fix Tuya tdq category to pick up temp & humid (#141698) 2025-03-28 19:57:56 -04:00
Norbert Rittel
f22bb72d18 Replace 4 occurrences of "Enable" in teslemetry with common string (#141699) 2025-03-28 23:47:44 +01:00
Marcel van der Veldt
f7a0a9fa41 Bump music assistant client to 1.2.0 (#141668)
* Bump music assistant client to 1.2.0

* Update test fixtures
2025-03-28 22:43:31 +01:00
Norbert Rittel
3795d653c5 Replace "country" with common string in holiday (#141687) 2025-03-28 22:43:00 +01:00
Norbert Rittel
8ee014b855 Fix grammar / sentence-casing in workday (#141682)
* Fix grammar / sentence-casing in `workday`

Also replace "country" with common string.

* Add two more references

* Fix second data description reference

* Add "given" to action description for better translations
2025-03-28 21:22:53 +01:00
Erwin Douna
1ab5bdf85f Tado add proper off state (#135480)
* Add proper off state

* Remove current temp

* Add default frost temp
2025-03-28 20:54:36 +01:00
puddly
5283e1a39f Handle all firmware types for ZBT-1 and Yellow update entities (#141674)
Handle other firmware types
2025-03-28 20:38:16 +01:00
Franck Nijhof
17c56208ee Fix camera proxy with sole image quality settings (#141676) 2025-03-28 20:36:15 +01:00
Norbert Rittel
8474d9fefe Replace "country" with common string in ecovacs (#141677) 2025-03-28 20:32:32 +01:00
J. Nick Koston
fd9f002e9f Increase websocket_api allowed peak time to 10s (#141680)
* Increase websocket_api allowed peak time to 10s

fixes #141624

During integration reload or startup, we can end up sending a message for
each entity being created for integrations that create them from an external
source (ie MQTT) because the messages come in one at a time. This can overload
the loop and/or client for more than 5s. While we have done significant work
to optimize for this path, we are at the limit at what we can expect clients
to be able to process in the time window, so increase the time window.

* adjust test
2025-03-28 20:32:00 +01:00
Norbert Rittel
26268357a0 Replace "country" with common string in prosegur (#141678) 2025-03-28 20:19:20 +01:00
Dan Raper
82b463b22f Get Ohme to gold quality (#140617)
* Add reconfigure step, diagnostics and default disabled entities to Ohme

* Formatting

* Update tests

* Bugfixes and add tests for diagnostics and reconfigure

* Remove diagnostics changes

* Remove reconfigure changes

* Pull upstream strings.json
2025-03-28 18:41:00 +00:00
Jason Hunter
7ae397a211 Update Duke Energy package to fix integration (#141669)
* Update Duke Energy package to fix integration

* fix tests
2025-03-28 18:33:59 +00:00
Norbert Rittel
ea4ad681e4 Replace "country" with common string in cookidoo (#141670) 2025-03-28 18:29:31 +00:00
Michael Hansen
a150f9d5ad Bump intents and always prefer more literal text (#141663) 2025-03-28 13:03:42 -04:00
puddly
afb7fe0d40 Include ZBT-1 and Yellow in device registry (#141623)
* Add the Yellow and ZBT-1 to the device registry

* Unload platforms

* Fix unit tests

* Rename the Yellow update entity to `Radio firmware`

* Rename `EmberZNet` to `EmberZNet Zigbee`

* Prefix the `sw_version` with the firmware type and clean up

* Fix unit tests

* Remove unnecessary `always_update=False` from data update coordinator
2025-03-28 18:00:05 +01:00
Norbert Rittel
8bf42b9d3e Replace "language" and "country" with common strings in epic_games_store (#141665) 2025-03-28 17:50:36 +01:00
Andrew Sayre
ba00707d89 Add HEOS entity service to remove queue items (#141495)
* Add remove queue items service

* Tests

* Correct casing of ID

* Match docs
2025-03-28 11:09:01 -05:00
tdfountain
2121b943a3 Add exception translation to NUT (#141629)
* Add exception translation and test cases

* Capitalize ID in error string

* Test translation placeholders, simplify test cases
2025-03-28 16:43:16 +01:00
Bram Kragten
ef06d2c06e Update frontend to 20250328.0 (#141659) 2025-03-28 16:08:14 +01:00
Norbert Rittel
cc1fac5776 Add a common string for "country" (#141653) 2025-03-28 15:52:44 +01:00
Norbert Rittel
6cb3430c60 Fix sentence-casing of "sea level" in matter (#141655)
* Fix sentence-casing of "sea level" in `matter`

* Update test_number.ambr
2025-03-28 15:30:21 +01:00
Paulus Schoutsen
4cea90f773 Enable the message box on default for satelitte announcement actions (#141654) 2025-03-28 15:07:09 +01:00
Paulus Schoutsen
4da5f6188d Ensure connection test sound has no preannouncement (#141647) 2025-03-28 14:01:12 +01:00
Norbert Rittel
e7f8b9ad92 Fix typo and sentence-casing in jewish_calendar (#141651)
Also replace "Language" with common string.
2025-03-28 15:55:52 +03:00
Jan Bouwhuis
473a28c5f2 Fix duplicate 'device' term in MQTT translation strings (#141646)
* Fix duplicate 'device' from MQTT translation strings

* Update homeassistant/components/mqtt/strings.json
2025-03-28 13:55:36 +01:00
Franck Nijhof
d765936be3 Fix ESPHome event entity staying unavailable (#141650) 2025-03-28 13:55:11 +01:00
Norbert Rittel
0db643d9d1 Replace "connect" / "disconnect" with common strings in idasen_desk (#141649) 2025-03-28 08:46:13 -04:00
Norbert Rittel
af29159e2f Remove "meter" from entity names of rainforest_raven sensors (#141487)
* Fix misleading friendly names of `rainforest_raven` sensors

The three sensors
- power_demand
- total_energy_delivered
- total_energy_received

currently add "meter" in their friendly names.

This does not provide any useful information and is rather irritating instead – it sounds like these are the power demands or consumption of the meter itself. But they are the measured values.

This commit removes "meter" from the names making them simpler and more precise, too.

In addition the sentence-casing of "MAC addresses" is fixed.

* Update test_sensor.ambr

* Update test_sensor.ambr (2)

* Also remove "meter" from Signal strength

* Update test_sensor.ambr (3)

* Change `meter_price` to `energy_price` in strings.json

* Change `meter_price` to `energy_price` in test_sensor.ambr

* Change `meter_price` to `energy_price` in sensor.py
2025-03-28 11:26:51 +00:00
Tsvi Mostovicz
65c38d8e31 Jewish calendar match omer service variables requirement to documentation (#141620)
The documentation and the omer schema require a Nusach to be specified, but the YAML misses that requirement
2025-03-28 13:59:04 +03:00
LG-ThinQ-Integration
adb7aa237b Add number for ventilator's sleepTimer (#140972)
Add sleepTimer for ventilator

Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-03-28 11:54:18 +01:00
Norbert Rittel
577f86b83a Remove "meter" from entity names of rainforest_eagle sensors (#141641)
* Remove "meter" from entity names in strings.json

* Replace `meter_price`with `energy_price`in sensor.py

* Update test_sensor.py
2025-03-28 13:52:15 +03:00
J. Diego Rodríguez Royo
01169e9184 Add Pitsos virtual integration (#141610) 2025-03-28 13:50:48 +03:00
J. Diego Rodríguez Royo
dde037291a Add Neff virtual integration (#141609) 2025-03-28 13:50:29 +03:00
J. Diego Rodríguez Royo
6971a189f9 Add Gaggenau virtual integration (#141608) 2025-03-28 13:50:12 +03:00
J. Diego Rodríguez Royo
c860686138 Add Constructa virtual integration (#141607) 2025-03-28 13:49:52 +03:00
J. Diego Rodríguez Royo
2eb507863f Add Balay virtual integration (#141606) 2025-03-28 13:49:38 +03:00
Joost Lekkerkerker
54ee5c6998 Add default string and icon for light effect off (#141567) 2025-03-28 11:48:34 +01:00
alorente
63df2474a9 Fix missing response for queued mode scripts (#141460) 2025-03-28 10:47:41 +00:00
Robert Resch
93f12fb7c6 Reverts #141363 "Deprecate SmartThings machine state sensors" (#141573)
Reverts #141363
2025-03-28 11:40:24 +01:00
Nick Pesce
b7a995ac53 Use correct default value for multi press buttons in the Matter integration (#141630)
* Respect the min 2 constraint for the switch MultiPressMax attribute

* Update test_event.py

* Update generic_switch_multi.json

* Fix issue and update tests
2025-03-28 11:11:18 +01:00
Solmath
267a80e70c Show internet radio station if no artist is available in Cambridge Audio (#140716)
* Add media_channel property to cambridge audio

* Return channel instead of artist when playing internet radio to mimick behaviour of CXN100 and StreamMagic app

* Add test for media_artist attribute

* Add test that media_artist is not set in certain cases

* Update homeassistant/components/cambridge_audio/media_player.py

Co-authored-by: Noah Husby <32528627+noahhusby@users.noreply.github.com>

---------

Co-authored-by: Noah Husby <32528627+noahhusby@users.noreply.github.com>
2025-03-28 09:49:20 +01:00
Norbert Rittel
078be3b8df Replace already_configured in teslemetry with common string (#141637) 2025-03-28 09:44:34 +01:00
J. Diego Rodríguez Royo
7b6c967c3a Add Profilo virtual integration (#141611) 2025-03-28 09:42:51 +01:00
J. Diego Rodríguez Royo
a405ccd044 Add Siemens virtual integration (#141612) 2025-03-28 09:37:27 +01:00
J. Diego Rodríguez Royo
f6c55ebf05 Add Thermador virtual integration (#141613) 2025-03-28 09:35:05 +01:00
Shay Levy
6b3b4cce4b Record Shelly quality scale (#141062)
* Record Shelly quality scale

* Update

* change stale-devices status to todo

* Update homeassistant/components/shelly/quality_scale.yaml

Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>

---------

Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
2025-03-28 09:30:29 +01:00
Jan Bouwhuis
8887c979b4 Fix volatile_organic_compounds_parts translation string to be referenced for MQTT subentries device class selector (#141618)
* Fix ` volatile_organic_compounds_parts` translation string to be referenced for MQTT subentries device class selector

* Fix tests
2025-03-28 08:48:23 +01:00
Norbert Rittel
665541409a Fix sentence-casing in airvisual user strings (#141632) 2025-03-28 10:37:55 +03:00
Denis Shulyaka
195919b5fb Add PDF support for openai_conversation.generate_content service (#141588)
Add PDF support for openai_conversation.generate_content service
2025-03-27 20:05:54 -04:00
Petro31
31479056ed Fix an issue with the switch preview in beta (#141617)
Fix an issue with the switch preview
2025-03-28 00:43:17 +02:00
Jan-Philipp Benecke
9f0976d94a Bump aiowebdav2 to 0.4.4 (#141615) 2025-03-27 23:19:04 +01:00
Norbert Rittel
a049d2b7db Make names of switch entities in gree consistent with docs (#141580) 2025-03-27 21:51:11 +00:00
Norbert Rittel
6959017d55 Use official camel-cased spelling "FullTopic" in tasmota (#141604)
* Use camel-cased spelling "FullTopic" in `tasmota`

This  should ensure that this fixed term is kept in translations.

In addition an excessive space character is removed.

* Fix wrong plural in second sentence
2025-03-27 23:12:42 +02:00
Luke Lashley
4ff5a04a72 Bump Python-Snoo to 0.6.5 (#141599)
* Bump Python-Snoo to 0.6.5

* add to event_types
2025-03-27 21:56:11 +01:00
Norbert Rittel
ea0c4a7263 Fix misleading friendly names of pvoutput sensors (#141312)
* Fix misleading friendly names of `pvoutput` sensors

* Update test_sensor.py

* Update test_sensor.py - prettier
2025-03-27 21:49:16 +01:00
J. Nick Koston
9633f03ddc Fix zeroconf logging level not being respected (#141601)
Removes an old logging workaround that is no longer needed

fixes #141558
2025-03-27 21:45:48 +01:00
Artur Pragacz
4c0d8ce87c Remove deprecated YAML import in Onkyo (#141600) 2025-03-27 21:13:23 +01:00
Joost Lekkerkerker
d92728e533 Add brand for Bosch (#141561) 2025-03-27 21:01:52 +01:00
Paul Bottein
799962ef0e Update frontend to 20250327.1 (#141596) 2025-03-27 20:58:59 +01:00
Stephan Traub
631f817f11 Wiz - update dependency to support new light features and bugfixes (#141529)
* Bump pywizlight and fix deprecation issue

* Removed workaround for color_mode; update pywizlight
2025-03-27 21:51:42 +02:00
Martin Hjelmare
52f7bdeb5d Patch Z-Wave platforms in fan tests (#141591) 2025-03-27 21:40:39 +02:00
Martin Hjelmare
51db140aed Clean up Z-Wave config flow (#141595) 2025-03-27 21:30:16 +02:00
Jan-Philipp Benecke
1ad12d5945 Bump aiowebdav2 to 0.4.3 (#141586) 2025-03-27 19:44:33 +02:00
Simon Lamon
9f5d94046d Fix typing error in NMBS (#141589)
Fix typing error
2025-03-27 19:39:33 +02:00
Erik Montnemery
de1e06c39b Revert "Promote after dependencies in bootstrap" (#141584)
Revert "Promote after dependencies in bootstrap (#140352)"

This reverts commit 3766040960.
2025-03-27 12:57:58 -04:00
Bram Kragten
abbabc11d2 Update frontend to 20250327.0 (#141585) 2025-03-27 17:51:52 +01:00
Joost Lekkerkerker
62be82fd3c Also migrate completion time entities in SmartThings (#141572) 2025-03-27 16:36:45 +01:00
Luke Lashley
f0fd5a639a Better handle Roborock discovery (#141575) 2025-03-27 11:17:56 -04:00
Andrii Mitnovych
dea00fac3f Get area and floor by alias (#126150)
* Add possibility to get area by alias

* Add ability to get floor by alias

* Moved alias lookup to separate function, adjusted templates.

* Changed registry to return all areas/floors with given alias

* Use normalize_name from normalized_name_base_registry
2025-03-27 16:02:47 +01:00
Erwin Douna
c30f17f592 Tado fix HomeKit flow (#141525)
* Initial commit

* Fix

* Fix

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2025-03-27 16:01:54 +01:00
Martin Hjelmare
e9e95f45d8 Handle cloud subscription expired for backup upload (#141564)
Handle cloud backup subscription expired for upload
2025-03-27 15:29:11 +01:00
Joost Lekkerkerker
e8aa3e6d34 Add icons to hue effects (#141559) 2025-03-27 12:05:45 +01:00
Norbert Rittel
3646884d79 Replace "controller_id" with friendly name in homeworks error message (#141550) 2025-03-27 12:29:53 +02:00
Norbert Rittel
5747c6b1a8 Fix sentence-casing in konnected strings, replace "override" with "custom" (#141553)
Fix sentence-casing in `konnected`strings, replace "Override" with "Custom"

Make string consistent with HA standards.

As "Override" can be misunderstood as the verb, replace it with "Custom".
2025-03-27 10:59:19 +01:00
Thomas55555
43a5c7ddc8 Handle webcal prefix in remote calendar (#141541)
Handel webcal prefix in remote calendar
2025-03-27 10:22:25 +01:00
J. Diego Rodríguez Royo
d9d74107fe Improve some Home Connect deprecations (#141508) 2025-03-27 10:18:30 +01:00
Erik Montnemery
373cca9857 Remove unused mypy ignore from google_generative_ai_conversation (#141549) 2025-03-27 10:03:07 +01:00
Martin Hjelmare
284b3f444d Remove leftover cloudflare persistent notification dismiss (#141548) 2025-03-27 09:53:47 +01:00
Simon Lamon
dfb088e524 Bump linkplay to v0.2.2 (#141542)
Bump linkplay
2025-03-27 08:51:12 +01:00
Manu
5546f1d73d Support for upcoming pyLoad-ng release in pyLoad integration (#141297)
Fix extra key `proxy` in pyLoad
2025-03-27 07:46:58 +01:00
Jan Bouwhuis
13fc871806 Use kwargs only for MQTT subentry PlatformField helper (#141498) 2025-03-27 07:46:08 +01:00
J. Nick Koston
0f9fd78656 Bump pyserial-asyncio-fast to 0.16 (#141540)
changelog: https://github.com/home-assistant-libs/pyserial-asyncio-fast/compare/0.15...0.16
2025-03-27 07:32:59 +01:00
Ivan Lopez Hernandez
4f318c0be3 Initialize google.genai.Client in the executor (#141432)
* Intialize the client on an executor thread

* Fix MyPy error

* MyPy error

* Exception error

* Fix ruff

* Update __init__.py

---------

Co-authored-by: tronikos <tronikos@users.noreply.github.com>
2025-03-26 22:05:22 -07:00
Michael Hansen
5eb1d0a28e Add default preannounce sound to Assist satellites (#141522)
* Add default preannounce sound

* Allow None to disable sound

* Register static path instead of HTTP view

* Fix path

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2025-03-26 22:45:28 -05:00
Brett Adams
66c03713b7 Fix Auto Seat Heater in Tesla Fleet (#141539)
Fix Auto Seat Heater
2025-03-26 20:55:34 -04:00
Marc Mueller
d51070c99b Update boto3 to 1.37.1 and aiobotocore to 2.21.1 (#141499) 2025-03-27 01:38:34 +01:00
Marc Mueller
50d050e63e Update pyserial-asyncio-fast to 0.15 (#141537) 2025-03-27 01:33:01 +01:00
Norbert Rittel
89bf426163 Fix wrong friendly name for storage_power in solaredge (#141269)
* Fix wrong friendly name for `storage_power` in `solaredge`

"Stored power" is a contradiction in itself.
You can only store energy.

* Two additional spelling fixes

* Sentence-case "site"
2025-03-27 00:24:14 +01:00
Jan Bouwhuis
377548e3a1 Fix QoS schema issue in MQTT subentries (#141531) 2025-03-26 23:35:28 +01:00
Simone Chemelli
543c6929e6 Fix refresh state for Comelit alarm (#141370) 2025-03-26 22:34:53 +00:00
Jan Bouwhuis
42ae572948 Fix MQTT options flow QoS selector can not serialize (#141528) 2025-03-26 22:56:57 +01:00
Thomas55555
c3f8b7e200 Fix work area sensor for Husqvarna Automower (#141527)
* Fix work area sensor for Husqvarna Automower

* simplify
2025-03-26 23:16:26 +02:00
Robert Resch
3a207e2571 Show box for Smartthings rise number entity (#141526) 2025-03-26 22:03:24 +01:00
Andrew Sayre
6bfd39f094 Add play queue item to HEOS (#141480)
Add ability to play specific queue item
2025-03-26 15:47:10 -05:00
Robert Resch
002ca9611d Add test for invalid mean type in StatisticsMeta (#141475) 2025-03-26 21:40:02 +01:00
Joost Lekkerkerker
46ee3d2b26 Sort SmartThings devices to be created by parent device id (#141515) 2025-03-26 20:52:39 +01:00
Franck Nijhof
eb901bcf3a Bump version to 2025.5.0dev0 (#141507) 2025-03-26 20:30:03 +01:00
Norbert Rittel
930b4a2c81 Capitalize "Ethernet" in roku sensor name (#141509)
* Capitalize "Ethernet" in `roku` sensor name

* Update test_binary_sensor.py
2025-03-26 21:18:52 +02:00
Robert Resch
22d1b8e1cd Bump deebot-client to 12.4.0 (#141501) 2025-03-26 19:36:04 +01:00
Joost Lekkerkerker
2e3853dd7d Deprecate SmartThings media player switch (#141467)
* Deprecate SmartThings media player switch

* Fix

* Fix

* Update homeassistant/components/smartthings/strings.json

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

* Fix

---------

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2025-03-26 18:40:11 +01:00
Joost Lekkerkerker
fe99c39e25 Deprecate media player sensors for SmartThings (#141469)
* Deprecate media player sensors for SmartThings

* Deprecate media player sensors
2025-03-26 18:21:49 +01:00
Maciej Bieniek
c8ab5bc796 Bump IMGW-PIB library to 1.0.10 (#141491) 2025-03-26 17:57:27 +01:00
Álvaro Fernández Rojas
4f3b36c2e1 Update aioairzone-cloud to v0.6.11 (#141488)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2025-03-26 17:57:15 +01:00
Marc Mueller
222d89a84c Update meteofrance-api to 1.4.0 (#141490) 2025-03-26 17:56:45 +01:00
Joost Lekkerkerker
eb3cb0e0c7 Bump yt-dlp to 2025.03.26 (#141484) 2025-03-26 11:49:29 -05:00
Joost Lekkerkerker
69c8f4fbb6 Add button to reset the water filter in SmartThings (#141493)
* Add button to reset the water filter in SmartThings

* Add button to reset the water filter in SmartThings
2025-03-26 11:48:03 -05:00
Jan Bouwhuis
3bcf1c942c Cleanup missed QoS translation string for MQTT subentries (#141485) 2025-03-26 17:40:22 +01:00
Michael Hansen
220aaf93c6 Add preannounce media id support for ESPHome (#141474)
* Working on preannounce media id support for ESPHome

* Fix test

* Update tests
2025-03-26 11:31:05 -05:00
Jan Bouwhuis
febc455bc5 Add switch as entity platform on MQTT subentries (#140658) 2025-03-26 16:46:44 +01:00
Marc Mueller
57f65c205e Use SPDX identifier for container license (#141477) 2025-03-26 16:31:28 +01:00
Erik Montnemery
6e56486294 Bump pychromecast to 14.0.7 (#141479) 2025-03-26 16:30:37 +01:00
Joost Lekkerkerker
3a1e1684ea Add power binary sensor for Cooktop in SmartThings (#141482) 2025-03-26 16:29:02 +01:00
Bram Kragten
9d63a49812 Update frontend to 20250326.0 (#141481) 2025-03-26 16:27:43 +01:00
Markus Adrario
7a4ca6dcdc Add Homee lock platform (#140893)
* Add homee lock platform

* finish tests

* add locking & unlocking

* add PARALLEL_UPDATES

* fix review comments

* fix test review comment.

* fix another review comment
2025-03-26 09:46:21 -05:00
Marc Mueller
1622638f10 Update mypy-dev to 1.16.0a7 (#141472) 2025-03-26 15:21:38 +01:00
Jan Bouwhuis
0de3549e6e Move QoS setting to shared device properties in MQTT device subentries configuration (#141369)
* Move QoS setting to shared device properties in MQTT device subentries configuration

* Use kwargs for validate_user_input helper
2025-03-26 15:20:08 +01:00
Joost Lekkerkerker
63d4efda2e Deprecate switch entity for airdresser (#141470)
* Deprecate switch entity for airdresser

* Deprecate switch entity for airdresser
2025-03-26 15:06:13 +01:00
J. Diego Rodríguez Royo
b5910dd7d6 Move Home Connect alarm clock entity from time platform to number platform (#141400)
* Move alarm clock entity from time platform to number platform

* Deprecate alarm clock time entity

* Don't update unique id

* Fix tests

* Fixable issues

* improvement

* Make the issues persistent
2025-03-26 14:46:07 +01:00
Denis Shulyaka
c974285490 Add Web search to OpenAI Conversation integration (#141426)
* Add Web search to OpenAI Conversation integration

* Limit search for gpt-4o models

* Add more tests
2025-03-26 09:36:05 -04:00
Michael Hansen
8db91623ec Add language scores websocket command (#140480)
* Add language scores websocket command

* Don't store language scores in snapshot

* Add language/country args for preferred lang

* Bump intents to 2025.3.24 for dash lang code
2025-03-26 14:07:15 +01:00
Michael Hansen
3eda5333b0 Add info websocket command to wyoming integration (#139982)
* Add info websocket command to wyoming integration

* Add snapshot

* Add config schema

* Remove snapshots because of changing config entry ids
2025-03-26 14:06:51 +01:00
Robert Resch
3aaf859985 Add state class MEASUREMENT_ANGLE to wind direction sensor (#141392)
* Add state class MEASUREMENT_ANGLE to wind direction sensor

* Update snapshots

* Add some more
2025-03-26 13:58:23 +01:00
Sanjay Govind
dba4c197c8 Add bosch_alarm integration (#138497)
* Add bosch_alarm integration

* Remove other platforms for now

* update some strings not being consistant

* fix sentence-casing for strings

* remove options flow and versioning

* clean up config flow

* Add OSI license + tagged releases + ci to bosch-alarm-mode2

* Apply suggestions from code review

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

* apply changes from review

* apply changes from review

* remove options flow

* work on fixtures

* work on fixtures

* fix errors and complete flow

* use fixtures for alarm config

* Update homeassistant/components/bosch_alarm/manifest.json

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

* fix missing type

* mock setup entry

* remove use of patch in config flow test

* Use coordinator for managing panel data

* Use coordinator for managing panel data

* Coordinator cleanup

* remove unnecessary observers

* update listeners when error state changes

* Update homeassistant/components/bosch_alarm/coordinator.py

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

* Update homeassistant/components/bosch_alarm/quality_scale.yaml

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

* Update homeassistant/components/bosch_alarm/config_flow.py

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

* rename config flow

* Update homeassistant/components/bosch_alarm/quality_scale.yaml

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

* add missing types

* fix quality_scale.yaml

* enable strict typing

* enable strict typing

* Add test for alarm control panel

* add more tests

* add more tests

* Update homeassistant/components/bosch_alarm/coordinator.py

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

* Update homeassistant/components/bosch_alarm/coordinator.py

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

* Update homeassistant/components/bosch_alarm/alarm_control_panel.py

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

* Update homeassistant/components/bosch_alarm/alarm_control_panel.py

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

* Update homeassistant/components/bosch_alarm/alarm_control_panel.py

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

* Add snapshot test

* add snapshot test

* add snapshot test

* update quality scale

* update quality scale

* update quality scale

* update quality scale

* Apply suggestions from code review

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

* apply changes from code review

* apply changes from code review

* apply changes from code review

* Apply suggestions from code review

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

* apply changes from code review

* apply changes from code review

* Fix alarm control panel device name

* Fix

* Fix

* Fix

* Fix

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-03-26 13:56:44 +01:00
Robert Resch
f842640249 Add check that sensor state classes are used only with valid unit of measurements (#141444) 2025-03-26 13:52:00 +01:00
Robert Resch
aa493ff97d Correct device class and state class for wind direction sensors (#141393)
* Fix state class on wind direction sensors

* Update snapshots
2025-03-26 13:48:08 +01:00
Joost Lekkerkerker
21d5885ded Add select entity for dishwasher operating state in SmartThings (#141468)
* Add select entity for dishwasher operating state in SmartThings

* Add select entity for dishwasher operating state in SmartThings
2025-03-26 13:39:36 +01:00
Tsvi Mostovicz
054b3bb26c Add service for counting the omer (#141008)
* Add service for counting the omer

* Add description and strings. Expect string from user

* Fix constraints on nusach and language + Make independent of config_entry

* Provide config schema

* Fix services.yaml and strings.json to match updated service.py

* Use LanguageSelector and some constants

* Action description -> third-person singular

* Use built-in language selector in yaml

* Fix schema

* Show the hebrew date in the correct language in the response

* Revert "Show the hebrew date in the correct language in the response"

This reverts commit 59442d16c5.

Requires a bugfix in the original library

* Don't return the hebrew date as it doesn't return correctly
2025-03-26 13:38:58 +01:00
Jan Bouwhuis
77bf977d63 Add sensor as entity platform on MQTT subentries (#139899)
* Add sensor as entity platform on MQTT subentries

* Fix typo

* Improve device class data description

* Tweak

* Rework reconfig calculation

* Filter out last_reset_value_template if state class is not total

* Collapse expire after as advanced setting

* Update suggested_display_precision translation strings

* Make options and last_reset_template conditional, use sections for advanced settings

* Ensure options are removed properly

* Improve sensor options label, ensure UOM is set when device class has units

* Use helper to apply suggested values from component config

* Rename to `Add option`

* Fix schema builder not hiding empty sections and removing fields excluded from reconfig

* Do not hide advanced settings if values are available or are defaults

* Improve spelling and Learn more links

* Improve unit of measurement validation

* Fix UOM selector and translation strings

* Address comments from code review

* Remove stale comment

* Rename selector constant, split validator

* Simplify config validator

* Return tuple with config and errors for config validation
2025-03-26 13:34:24 +01:00
Robert Resch
3f68e327f3 Bump uv to 0.6.10 (#141464) 2025-03-26 13:30:57 +01:00
Marc Mueller
82db1ffd12 Update typing-extensions to 4.13.0 (#141465) 2025-03-26 13:28:46 +01:00
Allen Porter
06f6c86ba5 Simplify roborock map storage test fixture (#141430) 2025-03-26 08:19:48 -04:00
Robert Resch
e3f2f30395 Add circular mean statistics and sensor state class MEASUREMENT_ANGLE (#138453)
* Add circular mean statistics

* fixes

* Add has_circular_mean and fix tests

* Fix mypy

* Rename to MEASUREMENT_ANGLE

* Fix kitchen_sink tests

* Fix sensor tests

* for testing only

* Revert ws command change

* Apply suggestions

* test only

* add custom handling for postgres

* fix recursion limit

* Check if column is already available

* Set default false and not nullable for has_circular_mean

* Proper fix to be backwards compatible

* Fix value is None

* Align with schema

* Remove has_circular_mean from test schemas as it's not required anymore

* fix wrong column type

* Use correct variable to reduce stats

* Add guard that the uom is matching a valid one from the state class

* Add some tests

* Fix tests again

* Use mean_type in StatisticsMetato difference between different mean type algorithms

* Fix leftovers

* Fix kitchen_sink tests

* Fix postgres

* Add circular mean test

* Add mean_type_changed stats issue

* Align the attributes with unit_changed

* Fix mean_type_change stats issue

* Add missing sensor recorder tests

* Add test_statistic_during_period_circular_mean

* Add mean_weight

* Add test_statistic_during_period_hole_circular_mean

* Use seperate migration step to null has_mean

* Typo ARITHMETIC

* Implement requested changes

* Implement requested changes

* Split into #141444

* Add StatisticMeanType.NONE and forbid that mean_type can be None

* Fix mean_type

* Implement requested changes

* Small leftover of latest StatisticMeanType changes
2025-03-26 13:15:58 +01:00
Brett Adams
4a6d2c91da Bump tesla-fleet-api to v1.0.16 (#140869)
* Add streaming climate

* fixes

* Add missing changes

* Fix restore

* Update homeassistant/components/teslemetry/climate.py

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

* Use dict

* Add fan mode translations

* Infer side

* WIP

* fix deps

* Migration in progress

* Working

* tesla-fleet-api==1.0.15

* tesla-fleet-api==1.0.16

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-03-26 12:28:16 +01:00
Simone Chemelli
d7de8c5f68 Add full test coverage for Comelit coordinator (#141321)
* Add full test coverage for Comelit coordinator

* add common const

* apply review comment
2025-03-26 13:21:58 +02:00
Norbert Rittel
7bcba2b639 Fix online docs URL in motionblinds plus gateway naming (#141453)
* Fix online docs URL in `motionblinds` plus gateway naming

- add missing "api" to the online docs URL to make it work
- fix sentence-casing of "API key"
- replace "Motion Gateway" with "Motionblinds gateway" as there is no brand "Motion" and the list of compatible bridges cover a lot more brands

* Replace comma with period to improve readability
2025-03-26 13:11:49 +02:00
Maciej Bieniek
53990f8fad Do not show the firmware changelog for Shelly Wall Display X2 update entities (#141457)
There is no firmware changelog for Wall Display X2
2025-03-26 12:11:09 +01:00
Joost Lekkerkerker
ed7c864869 Add switch for icemaker in SmartThings (#141313)
* Add switch for icemaker in SmartThings

* Fix
2025-03-26 12:10:44 +01:00
Joost Lekkerkerker
74ff40e253 Deprecate SmartThings machine state sensors (#141363)
* Deprecate SmartThings machine state sensors

* Fix
2025-03-26 11:46:50 +01:00
TimL
57d02d7a17 Cleanups related to improved typing on radios objects (#141455)
* Improved handling of radio objects

* Drop get_radio helper

* Remove mock of get_radio in tests
2025-03-26 11:45:07 +01:00
TimL
043603c9be Add SMLIGHT sensor entities for second radio (#137403)
* Add sensors for second radio

* Add test for zigbee2 sensor

* Update homeassistant/components/smlight/sensor.py

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

* drop useless replace

* Fix test failure

* Fix code coverage in config flow

* Update homeassistant/components/smlight/sensor.py

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

* fix conversion of iterator to list

* Remove assert on radios

* simplify handling of radios further

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-26 11:34:44 +01:00
TimL
e10801af80 Bump pysmlight to v0.2.4 (#141450) 2025-03-26 11:28:25 +01:00
Simone Chemelli
f4fa4056ac Make BT support detection dynamic for Shelly RPC devices (#137323) 2025-03-26 11:17:54 +01:00
Joost Lekkerkerker
208e8ae451 Deprecate SmartThings switch entity (#141360)
* Deprecate SmartThings switch entity

* Apply suggestions from code review

Co-authored-by: Robert Resch <robert@resch.dev>

* Fix

* Revert "Apply suggestions from code review"

This reverts commit c6d39d38de.

* Revert "Revert "Apply suggestions from code review""

This reverts commit d92411c156.

* Fix

* Fix

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2025-03-26 11:05:31 +01:00
TheJulianJES
02f8322ac1 Bump ZHA to 0.0.54 (#141447)
* Bump ZHA to 0.0.54

* Add strings for v2 quirk entities

* Adjust cover tests for new ZHA behavior

* Improve cover tests further
2025-03-26 11:55:18 +02:00
Norbert Rittel
e8158234a9 Fix grammar in spotify reauthentication error (#141451) 2025-03-26 11:45:55 +02:00
Norbert Rittel
7848c3cd79 Fixes to user-facing strings of cloudflare integration (#141452)
- fix sentence-casing of a few strings
- fix grammar of action description
2025-03-26 11:45:05 +02:00
Norbert Rittel
2d8420b656 Fix spelling of "serial number" in smappee (#141449) 2025-03-26 10:25:12 +01:00
Joost Lekkerkerker
63a86763b1 Migrate unique ids in SmartThings (#141308)
* Migrate unique ids in SmartThings

* Migrate

* Migrate

* Migrate

* Fix

* Fix
2025-03-26 10:23:20 +01:00
Michael
b5117eb071 Proper handling of unavailable Synology DSM nas during backup (#140721)
* raise BackupAgentUnreachableError when NAS is unavailable

* also raise BackupAgentUnreachableError during upload when nas unavailable

* Revert "also raise BackupAgentUnreachableError during upload when nas unavailable"

This reverts commit 38877d8540.

* Revert "raise BackupAgentUnreachableError when NAS is unavailable"

This reverts commit 4d8cfae396.

* check last_update_success of  coordinator_central to get backup agents

* consider last_update_success before notify backup listeners

* add test

* use walrus :=  :)
2025-03-26 10:22:43 +01:00
Norbert Rittel
f0c774a4bd Small grammar fixes in hue user strings (#141446)
… including proper sentence-casing
2025-03-26 11:16:10 +02:00
Simone Chemelli
8bedf97382 Remove helpers and align coding style in Shelly tests (#140080)
* Cleanup hass.states method in Shelly tests (part 1)

* remove helper functions and align coding style

* missed

* revert unwanted changes

* apply review comment

* apply review comment

* apply review comment

* apply ATTR where missing

* apply walrus

* add missed walrus

* add walrus to entity_registry.async_get

* minor tweak

* align after merge
2025-03-26 10:05:42 +01:00
Robert Resch
65c05d66c0 Use a constant for sensor statistics issues (#141441) 2025-03-26 09:43:09 +01:00
Norbert Rittel
1cb4332a3c Fix sentence-case and naming of "Security code" in tradfri (#141440) 2025-03-26 10:07:30 +02:00
Robert Resch
18dfd3db88 Simplify Reolink exception handling (#141427) 2025-03-26 08:53:46 +01:00
Luke Lashley
dd914deb47 Bump roborock to silver (#141433) 2025-03-26 08:36:07 +01:00
Michael
d954d04d12 Add diagnostics for Home Assistant Backup integration (#141407)
add diagnostics platform
2025-03-26 08:34:15 +01:00
Erik Montnemery
e95f2c4282 Fix log level of cast print informing users to contribute model number (#141438) 2025-03-26 08:28:57 +01:00
Franck Nijhof
eb1caeb770 Add template list functions: intersect, difference, symmetric_difference, union (#141420) 2025-03-26 07:51:25 +01:00
Ivan Lopez Hernandez
56cc4044e4 Fix a type error when using google-genai==1.7.0 (#141431)
* Fix parts

* Fix the type being sent to the SDK

* Revert changes to __init__

* Test fixes

* Bump version back to 1.7
2025-03-25 19:59:21 -07:00
Thomas D
2208650fde Add climate platform to qbus (#139327)
* Add climate platform

* Add unit tests for climate platform

* Use setup_integration fixture

* Apply new import order

* Undo import order

* Code review

* Throw an exception on invalid preset mode

* Let device response determine state

* Remove hvac mode OFF

* Remove hvac mode OFF

* Setup debouncer when being added to hass

* Fix typo
2025-03-26 00:25:05 +00:00
Tsvi Mostovicz
e2a3bfca9a Jewish calendar migration bugfix (#141425)
Fix migration of Jewish calendar
2025-03-26 01:33:38 +02:00
starkillerOG
840613f43d Add mac to Reolink IPC cam device info (#140822)
* Add mac to Reolink IPC cams

* Add test

* check mac none
2025-03-26 00:31:01 +01:00
starkillerOG
e78a19ae3e Reolink translate key (#140821)
* Add firmware exception translations

* Add test

* Much nicer syntax

* Check if translation key is present in string.json

* fix tests

* fix typo
2025-03-26 00:30:02 +01:00
Norbert Rittel
07bce8850f Capitalize one occurrence of "bluetooth" in idasen_desk (#141423)
All others are correct in the integration.

And (according to Lokalise) in Home Assistant now, too. :-)
2025-03-25 22:53:32 +00:00
Alexey ALERT Rubashёff
25a36c1588 Add AtlanticDomesticHotWaterProductionV2IOComponent to Overkiz (#139524) 2025-03-25 23:05:14 +01:00
Andrew Sayre
ab709aeb46 Add Get Queue HEOS entity service (#141150) 2025-03-25 16:55:44 -05:00
J. Diego Rodríguez Royo
f3bcb96b41 Tiny Home Connect tweaks (#141403) 2025-03-25 22:06:38 +01:00
Norbert Rittel
56a8c74e87 Capitalize "Bluetooth proxy" in private_ble_device integration (#141418) 2025-03-25 22:05:24 +01:00
Norbert Rittel
cec21b5507 Capitalize "Bluetooth" in motionblinds_ble user strings (#141419) 2025-03-25 22:03:32 +01:00
Joost Lekkerkerker
3a62095af2 Add power binary sensor for dishwasher in SmartThings (#141417)
Add power binary sensor for dishwasher
2025-03-25 21:49:38 +01:00
Shay Levy
8dd179c9e0 Fix Ecoforest spelling of "convector" air flow sensor (#141414) 2025-03-25 21:24:44 +01:00
Joost Lekkerkerker
c29ca4c50a Add power binary sensor for microwave in SmartThings (#141415)
Add power binary sensor for microwave
2025-03-25 21:24:01 +01:00
Brett Adams
013439f7c6 Add streaming to Climate platform in Teslemetry (#138689)
* Add streaming climate

* fixes

* Add missing changes

* Fix restore

* Update homeassistant/components/teslemetry/climate.py

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

* Use dict

* Add fan mode translations

* Infer side

* Apply suggestions from code review

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

* Update homeassistant/components/teslemetry/climate.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-03-25 21:09:45 +01:00
Norbert Rittel
646c97a26c Fix spelling / grammar in sensibo strings (#141130)
- capitalize "ID"
- remove excessive space and comma
- remove excessive "the"
2025-03-25 21:06:44 +01:00
elmurato
e853df4fb0 Add Pterodactyl integration (#141197)
* Add Pterodactyl integration

* Remove translation for unavailable platform sensor, use constant for host

* Improve data descriptions

* Replace index based handling of data (list) with dict[str, PterodactylData]

* Replace CONF_HOST with CONF_URL

* Parse URL with YARL

* Set proper availability in binary sensor

* Remove storage of data within api.py

* Fix some review findings

* Use better unique ID for binary_sensor

* Fix more review findings

* Fix remaining review findings

* Add wrapper for server and util API, use underscore in unique ID

* Reuse result in config flow tests

* Patch async_setup_entry in config_flow tests

* Move patching of library APIs to the fixture mock_pterodactyl
2025-03-25 20:50:03 +01:00
Norbert Rittel
4cd4201a31 Add missing "r" in "Convector air flow" sensor of ecoforest (#141410)
Add lost "r" in "Convector air flow" sensor of `ecoforest`
2025-03-25 20:49:20 +01:00
Shay Levy
5db52cd5df Add data description for Shelly Bluetooth scanner mode (#141409) 2025-03-25 21:43:46 +02:00
Norbert Rittel
10d9e0c684 Fix missing capitalization in two strings of nobo_hub (#141404)
Fix missing capitalization of two strings in `nobo_hub`
2025-03-25 21:25:04 +02:00
tdfountain
8b9939c344 Remove invalid watts sensor from NUT (#141401) 2025-03-25 09:04:07 -10:00
Marc Mueller
746f49884c Update setuptools for build-system to 77.0.3 (#141394) 2025-03-25 18:39:06 +00:00
Michael Hansen
ae18fa2e30 Add start conversation support to ESPHome (#141387) 2025-03-25 13:38:52 -05:00
Michael Hansen
7319637bd5 Set responding state in assist satellite start_conversation (#141388)
* Set responding state in async_start_conversation

* Check idle state
2025-03-25 14:30:44 -04:00
Simone Chemelli
c8745cc339 Add full test coverage for Vodafone Station button platform (#141298) 2025-03-25 20:19:00 +02:00
G Johansson
44a02ac7a7 Bump holidays to 0.69 (#141391) 2025-03-25 18:52:31 +01:00
Joost Lekkerkerker
73642da7a4 Add sensor for brightness intensity to SmartThings (#141368) 2025-03-25 18:45:10 +01:00
J. Nick Koston
e1eb031022 Bump orjson to 3.10.16 (#141339)
changelog: https://github.com/ijl/orjson/compare/3.10.15...3.10.16
2025-03-25 18:44:00 +01:00
G Johansson
db66b4093a Bump psutil to 7.0.0 (#141390) 2025-03-25 07:27:17 -10:00
Maciej Bieniek
ef531cec41 Add data description for Shelly config flow (#141383) 2025-03-25 17:26:13 +01:00
Huyuwei
1772348eef Add illuminance sensor to SwitchBot integration (#141382)
* Add illuminance sensor to SwitchBot integration

* Add WoHub2 sensor tests
2025-03-25 17:09:51 +01:00
Maciej Bieniek
0920d7d82d Set PARALLEL_UPDATES in IMGW-PIB sensor platform (#141386) 2025-03-25 16:09:33 +00:00
Joost Lekkerkerker
2cbe8a4a14 Add translations to Hue effects (#138990)
* Add translations to Hue effects

* Add translations to Hue effects

* Add more effects

* Fix

* Trigger build
2025-03-25 17:01:25 +01:00
Mick Vleeshouwer
a2f92b1e28 Add battery discrete level sensor to Overkiz (#141328) 2025-03-25 17:19:06 +02:00
Norbert Rittel
a2d9eb2a5b Sentence-case "TOTP secret" in opower config flow (#141384)
… and replace the second occurrence with a reference.
2025-03-25 17:17:57 +02:00
Huyuwei
e72231037e Bump PySwitchBot to 0.58.0 (#141378) 2025-03-25 17:12:01 +02:00
starkillerOG
37aaf149f9 Bump reolink-aio to 0.13.0 (#141379)
* Bump reolink-aio to 0.13.0

* Add push cmd_id 588
2025-03-25 17:09:51 +02:00
Joost Lekkerkerker
83c21570c8 Support TVs in SmartThings (#141366) 2025-03-25 17:05:35 +02:00
Marc Mueller
42566b7378 Update pytest-asyncio to 0.26.0 (#141365) 2025-03-25 17:03:10 +02:00
Maciej Bieniek
735f877cf1 Add data description for IMGW-PIB config flow (#141381)
* Add data description for IMGW-PIB config flow

* Better wording
2025-03-25 16:57:37 +02:00
Simone Chemelli
8f000f222d Bump aiocomelit to 0.11.3 (#141375) 2025-03-25 15:50:40 +01:00
Shay Levy
05ead4d1f5 Initialize Shelly runtime_data in async_setup_entry (#141315) 2025-03-25 16:43:48 +02:00
Maikel Punie
3775f15461 Fix Velbus translations (#141372) 2025-03-25 14:37:21 +01:00
Joost Lekkerkerker
20a2fdb660 Create separate httpx client for Discovergy (#141374) 2025-03-25 09:32:25 -04:00
David Badura
e49b105724 Align Matter eve thermo offset max range with eve app (#140579)
* align eve thermo offset max range with eve app

* fix tests
2025-03-25 14:22:32 +01:00
Noah Groß
19bc54c1de Bump python-picnic-api2 from 1.2.2 to 1.2.4 (#141353) 2025-03-25 14:12:07 +01:00
dependabot[bot]
3e018f2523 Bump home-assistant/wheels from 2025.02.0 to 2025.03.0 (#141359) 2025-03-25 13:51:11 +01:00
Piotr Machowski
f00fb1d9a3 Add media_player support to SmartThings integration (#141296)
* Initial soundbar support

* Soundbar support

* Add SAMSUNG_VD_AUDIO_INPUT_SOURCE capability

* Adjust setting input source

* Add unit tests for media_player platform

* Adjust code after merge

* Adjust code after merge

* Adjust code style

* Adjust code style

* Fix

* Fix

---------

Co-authored-by: Piotr Machowski <PiotrMachowski@users.noreply.github.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
2025-03-25 13:34:19 +01:00
jukrebs
0ddf3c794b Add attachment and connection status for IOmeter (#140998)
* add binary sensors

* fix: suggestion value_fn

* add snapshot test and split cases
2025-03-25 13:26:07 +01:00
Maikel Punie
77c210fb87 Velbus add missing translations (#141358)
Fix the translation items for Velbus
2025-03-25 13:05:46 +01:00
Norbert Rittel
17efff940a Fix missing capitalization of two strings in mysensors (#141356)
… and replace both duplicates with identical references.
2025-03-25 12:49:43 +01:00
Shay Levy
32a16ae0f0 Make UnitSystem a frozen dataclass (#140954)
* Make UnitSystem a frozen dataclass

* Use super() for attribute setting in UnitSystem class
2025-03-25 11:45:54 +01:00
Artur Pragacz
3766040960 Promote after dependencies in bootstrap (#140352) 2025-03-25 11:34:53 +01:00
adam-the-hero
a1a808b843 Add EventEntity for Auto Shut Off events in Watergate integration (#135675)
* Add EventEntity for Auto Shut Off events in Watergate integration

* Split events into two: volume and duration

* Add icons to json. Extract some common translation keys. Simplify tests

* Apply suggestions from code review

* Fix

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-03-25 10:53:36 +01:00
starkillerOG
e7eb173e07 Add Reolink smart ai number entities (#140417) 2025-03-25 10:49:10 +01:00
Joost Lekkerkerker
615afeb4d5 Log bare exceptions in the config flow (#135584)
* Log bare exceptions in the config flow

* add more

* Fix
2025-03-25 10:34:05 +01:00
Manu
348ebe1402 Adds create_daily action to Habitica integration (#140684)
Add create_daily action
2025-03-25 10:27:21 +01:00
J. Diego Rodríguez Royo
d20fc30409 Add missing events to Home Connect (#141323)
* Add missing events to Home Connect

* Unsort

* Unsort strings also
2025-03-25 10:11:35 +01:00
pglab-electronics
13f306ddbc Add cover support to PG LAB integration (#140290)
* Add cover support to PG LAB Electronics integration

* check shutter none state in is_closing and is_opening

* adding a loop instead of test test single cover individually
2025-03-25 09:55:11 +01:00
Erik Montnemery
36d32eaabc Improve backup exclude filters (#141311)
* Improve backup exclude filters

* Add comment
2025-03-25 09:52:45 +01:00
Jan Bouwhuis
4f6daa227a Move MQTT light constants to const module (#140945) 2025-03-25 09:34:44 +01:00
Ted van den Brink
b3e054d5a7 Fix for whois - quota exceeded and private registry (#141060)
* Fix for quota exceeded and private registry

* Add tests
2025-03-25 09:24:32 +01:00
Abílio Costa
5fd219fc9e Add Motionblinds Matter virtual integration (#140812)
* Add Motionblinds Matter virtual integration

* Change to iot_standards instead of virtual integration
2025-03-25 08:41:02 +01:00
Matrix
4e266fe56e Bump YoLink API to 0.4.9 fix fob event (#141343)
Fix Fob Event
2025-03-25 08:39:58 +01:00
dependabot[bot]
c7e2acb4bf Bump actions/setup-python from 5.4.0 to 5.5.0 (#141342)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.4.0 to 5.5.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5.4.0...v5.5.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  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-03-25 08:38:13 +01:00
dependabot[bot]
9888385dbe Bump github/codeql-action from 3.28.12 to 3.28.13 (#141344)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.12 to 3.28.13.
- [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.12...v3.28.13)

---
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-03-25 08:37:55 +01:00
Joost Lekkerkerker
11877a3b12 Bump pysmartthings to 3.0.0 (#141058)
* Bump pysmartthings to 2.7.5

* Bump to pysmartthings 3.0.0
2025-03-25 08:37:32 +01:00
tdfountain
ee3b31c01f Improve default icons for sensors in NUT (#141255) 2025-03-24 19:12:26 -10:00
tdfountain
598a75379b Add sensor native unit of measure in NUT (#141338) 2025-03-24 19:11:13 -10:00
Allen Porter
f864f71028 Remove nest event media files that are no longer referenced (#141295)
* Remove nest event media files that are no longer referenced

* Fix double glob
2025-03-24 21:08:54 -04:00
Allen Porter
204b1e1f24 Add a Google Calendar birthdays calendar (#141300) 2025-03-24 21:06:45 -04:00
Mick Vleeshouwer
b2377d6da3 Bump pyOverkiz to version 1.16.5 (#141326)
Bump pyoverkiz to version 1.16.5
2025-03-24 23:28:37 +00:00
J. Nick Koston
d657809ffe Bump annotatedyaml to 0.4.5 (#141316) 2025-03-24 11:04:54 -10:00
Michael Hansen
33198cd704 Add preannounce_media_id to Assist Satellite (#141317)
Add preannounce_media_id
2025-03-24 17:04:13 -04:00
Andrew Scott
61a76b4064 Jellyfin: display album primary art instead of artist backdrop (#141246)
* Jellyfin: Properly display album primary art instead of artist backdrop when playing music

* add test for album art urls, fix existing tests that broke because they have extraneous "album*" fields for non-album items.

* fix snapshot test
2025-03-24 21:33:34 +01:00
Thomas D
0e6d72dcc8 Let device response determine state in Qbus (#141302)
Let device response determine state
2025-03-24 19:26:02 +00:00
SLaks
c8f839068c Bump google-genai to 1.7.0 (#140770)
Gemini: Upgrade google-genai to support generating images
2025-03-24 10:52:16 -07:00
Erik Montnemery
3132cba51f Improve tests of backup exclusion (#141303) 2025-03-24 18:10:08 +01:00
Simone Chemelli
6661218220 Add device reconfigure to Vodafone Station config flow (#141221)
* Add device reconfigure to Vodafone Station config flow

* remove unreachable code

* apply review comment
2025-03-24 12:03:29 -05:00
Artur Pragacz
8904f174d2 Remove unused util module in conversation (#141293) 2025-03-24 17:27:27 +01:00
Michael Hansen
4472dc533d Don't filter nevermind for fallback (#141294) 2025-03-24 17:26:35 +01:00
Erik Montnemery
9fdb69c558 Remove the zengge integration (#141283) 2025-03-24 17:22:52 +01:00
Artur Pragacz
93561543ff Improve code quality of condition validation (#141292)
Streamline condition validation
2025-03-24 17:21:32 +01:00
Maciej Bieniek
1166c9d927 Do not return router as source_type for Tractive device_tracker entity (#141188)
* Do not return router as source_type

* Add test

* Update stale docstring

---------

Co-authored-by: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
2025-03-24 17:16:59 +01:00
Maciej Bieniek
95cc3e31f5 Add exceptions translations for Shelly integration (#141071)
* Add exceptions translations

* Improve exception strings for update platform

* Fix tests

* Improve device_communication_error

* Remove error placeholder

* Improve tests

* Fix test_rpc_set_state_errors

* Strings improvement

* Remove `device`

* Remove `entity`

* Fix tests
2025-03-24 17:16:29 +01:00
puddly
5f093180ab Include hardware integrations in the cached integrations.json (#139001)
Include hardware integrations in the cached integrations JSON
2025-03-24 17:15:02 +01:00
Thomas55555
c3bab1f316 Add downtime and uptime sensors for Husqvarna Automower (#140804)
* Add downtime and uptime sensors for Husqvarna Automower

* add strings
2025-03-24 11:08:39 -05:00
Norbert Rittel
e9cf4a209e Fix typos in smartthings binary sensor deprecation messages (#141299)
Fix typos in 'smartthings` binary sensor deprecation messages
2025-03-24 18:01:19 +02:00
Denis Shulyaka
cb9692f3fb Raise error when max tokens reached for openai_conversation (#140214)
* Handle ResponseIncompleteEvent

* Updated error text

* Fix tests

* Update conversation.py

* ruff

* More tests

* Handle ResponseFailed and ResponseError

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2025-03-24 15:49:34 +01:00
Joost Lekkerkerker
90623bbaff Deprecate fridge door sensor in SmartThings (#141275) 2025-03-24 15:49:10 +01:00
Joost Lekkerkerker
69a375776a Add wrinkle prevent binary sensor active to SmartThings (#141289)
* Add wrinkle prevent binary sensor active to SmartThings

* Fix
2025-03-24 15:48:18 +01:00
Joost Lekkerkerker
06382f33e0 Add command to SmartThings button unique id (#141281)
* Add command to SmartThings button unique id

* Add command to SmartThings button unique id
2025-03-24 15:42:26 +01:00
Norbert Rittel
b3e3d77d7c Fix spelling of "Power factor" and capitalization in enphase_envoy (#141285)
* Fix spelling of "Power factor" and capitalization in `enphase_envoy`

* Update test_sensor.ambr
2025-03-24 15:38:59 +01:00
Jan Bouwhuis
e192bfb62e Do not deepcopy section schema when applying suggested values (#141280)
Do not deep copy section schema when appying suggested values
2025-03-24 15:32:57 +01:00
Erwin Douna
358f78c7cd Tado migrate to OAuth Device Flow (#140761)
* Bump PyTado 0.19.0

* Initial setup

* Current state

* Update to PyTado 0.18.8

* First concept for review

* Fix

* Fix

* Fix

* First concept for review

* Bump PyTado to 0.18.9

* Remove redundant part

* Initial test setup

* Authentication exceptions

* Fix

* Fix

* Fix

* Update version to 2

* All migration code

* Small tuning

* Add reauth unique ID check

* Add reauth test

* 100% on config flow

* Making tests working on new device flow

* Fix

* Fix

* Fix

* Update homeassistant/components/tado/strings.json

* Update homeassistant/components/tado/strings.json

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-03-24 14:28:12 +01:00
Simone Chemelli
83a0ed4250 Update Vodafone Station quality scale (#141196) 2025-03-24 13:57:08 +01:00
Franck Nijhof
fa526552dc Merge branch 'master' into dev 2025-03-24 12:08:05 +00:00
Michael
e96e95c32d Add sensor platform to backup integration (#138663)
* add sensor platform to backup integration

* adjust namings, remove system integration flag

* add first simple test

* apply review comments

* fix test

* add sensor tests

* adjustements to use backup helper

* remove obsolet async_get_manager from init

* unsubscribe from events on entry unload

* add configuration_url

* fix doc string

* fix sensor tests

* mark async_unsubscribe as callback

* set integration_type service

* extend sensor test

* set integration_type on correct integration :)

* fix after online conflict resolution

* add sensor update tests

* simplify the sensor update tests

* avoid io during tests

* Add comment

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-24 12:54:16 +01:00
Joost Lekkerkerker
265a2ace90 Add Bubble soak switch to SmartThings (#141139)
* Add Bubble soak switch to SmartThings

* Fix
2025-03-24 12:43:53 +01:00
karwosts
1ae2cebeb1 Support for hierarchy of individual energy devices (#132616)
* Support for hierarchy of individual energy devices

* update DeviceConsumption dict

* change name parent to 'included_in'

* Break comment

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-24 12:37:55 +01:00
Martin Hjelmare
75cd32b742 Fix backup tests typing warnings (#141274) 2025-03-24 12:36:57 +01:00
Martin Hjelmare
86ff540db9 Patch Z-Wave platforms in custom event tests (#141268)
Patch Z-Wave platforms in custom events tests
2025-03-24 12:19:29 +01:00
tronikos
f4bc1a3545 Bump androidtvremote2 to 0.2.1 (#141259) 2025-03-24 13:04:47 +02:00
tronikos
4e6eecf11b Retry Google Cloud exceptions (#141266) 2025-03-24 11:27:59 +01:00
Jan Bouwhuis
0f60fd8c40 Test data entry flow form showing suggested values (#141249)
Add test with from showing suggested values to data entry flow tests
2025-03-24 10:36:02 +01:00
Simon Lamon
b4fd5339c6 Bump linkplay to v0.2.1 (#141260) 2025-03-24 10:45:09 +02:00
Erik Montnemery
ab9d29bf9d Remove reauth persistent notification (#140932)
* Remove persistent notification created when starting reauth

* Update netatmo tests
2025-03-24 09:29:14 +01:00
Joost Lekkerkerker
12e001cf2b Add binary sensors for fridge doors in SmartThings (#141252)
* Add binary sensors for fridge doors

* Add binary sensors for fridge doors

* Add binary sensors for fridge doors

* Add binary sensors for fridge doors
2025-03-24 10:28:10 +02:00
Norbert Rittel
590c588557 Fix sentence-casing and change to "1-Wire" in onewire strings (#141265)
* Fix sentence-casing in a few `onewire` strings

* Change "OneWire" to "1-Wire"
2025-03-24 10:25:13 +02:00
Pieter Viljoen
d65392a374 ConfigSubEntryFlow _get_reconfigure_entry() -> _get_entry() (#141017)
* ConfigSubEntryFlow _get_reconfigure_entry() -> _get_entry()

* Update MQTT test

* Fix test_config_entries

* Minimize changes to keep existing tests working

* Re-revert and update negative test instead
2025-03-24 09:24:43 +01:00
Simon Lamon
0514de3e16 Remove manufacturer data for linkplay (#141261)
Remove manufacturer data
2025-03-24 09:13:06 +01:00
tronikos
59190786f9 Bump gassist-text to 0.0.12 (#141244) 2025-03-24 00:46:30 -07:00
Erik Montnemery
f4d57e3722 Add cloud onboarding views (#139422)
* Add cloud onboarding views

* Break import cycle when running hassfest

* Add exemption to hassfest for onboarding using cloud

* Adjust according to discussion

* Fix copy-paste errors

* Add tests

* Fix stale docstring

* Import cloud loally
2025-03-24 08:41:19 +01:00
Mirko Liebender
d3b8dbb76c Google gen ai fix for empty chat log messages (#136019) (#140315)
* Google gen ai fix for empty chat log messages (#136019)

* Google gen ai test for empty chat history fields (#136019)
2025-03-23 22:27:35 -07:00
Ivan Lopez Hernandez
6a7fa3769d Add Google Search tool in Google Generative AI (#140772)
* Added Google Search grounding

* Added testing
2025-03-23 22:23:52 -07:00
tdfountain
af96fedc0f Alphabetize key lists for strings, icons and sensors in NUT (#141254) 2025-03-23 15:58:41 -10:00
Joost Lekkerkerker
174515d197 Use common translation string in SmartThings (#141250) 2025-03-23 23:18:40 +01:00
Norbert Rittel
693de289a2 Fix descriptions of virtualkey and set_variable_value actions (#141175)
- fix the broken grammar ("presses" vs. "simulate") in the description of the `virtualkey` action by using the wording from the online docs instead
- fix the wrong description of the `set_variable_value` action by replacing it with the right one from the online docs
2025-03-23 23:03:58 +01:00
Thomas55555
b171439098 Bump aioautomower to 2025.3.2 (#141211)
* Bump aioautomower to 2025.3.2

* requirements

* adjust test
2025-03-23 22:19:16 +01:00
Jan Bouwhuis
93010ab5c9 Ensure suggested values are added to section schema in data entry fow (#141227) 2025-03-23 22:14:06 +01:00
Allen Porter
842356877e Bump mcp to 1.5.0 (#141219)
* Bump mcp to 1.5.0

* Add required server lifespan typing

* Remove comment about typing
2025-03-23 22:12:44 +01:00
Michael Hansen
2883f0a1e8 Bump intents to 2025.3.23 (#141241) 2025-03-23 22:12:05 +01:00
Patrick ZAJDA
27f529622c Switchbot: revert name set to none for temperature sensor (#141149) 2025-03-23 10:51:13 -10:00
J. Nick Koston
3917b460f4 Bump dbus-fast to 2.43.0 (#141240) 2025-03-23 10:48:34 -10:00
Norbert Rittel
ec5139eb94 Fix typo "to setup" in slide_local (#141216) 2025-03-23 21:12:45 +01:00
Robert Svensson
5d16a23d79 Bump pydeconz to v120 (#141239) 2025-03-23 10:00:27 -10:00
tdfountain
56cb54588e Set parallel updates in NUT (#141225) 2025-03-23 09:35:58 -10:00
Norbert Rittel
e2f7133d00 Fix spelling of "breadcrumbs" in sentry integration (#141189)
Replace "breadcrums" with "breadcrumps" as this is the spelling  that both Sentry and the HA online docs use.

Also use "events" instead of "logs" as the log is the whole and the events are its parts.
2025-03-23 21:26:45 +02:00
Maciej Bieniek
1f122ea54d Improve error handling and add exception translations for Nettigo Air Monitor integration (#141183)
* Add update_error

* Add device_communication_error

* Add auth_error

* Add device_communication_action_error

* Coverage
2025-03-23 21:23:11 +02:00
Norbert Rittel
ef84fc52af Clarify the meaning of "recorder" in energy issue description (#141228)
Clarify the meaning of "The recorder" in `energy` issue description

"The recorder" has resulted in a bunch of overtranslations that make this alert useless.

By using "Home Assistant Recorder" instead this should get fixed.
2025-03-23 21:21:18 +02:00
Norbert Rittel
9677b0d254 Capitalize "Recorder" as the component name in Home Assistant (#141226) 2025-03-23 21:09:52 +02:00
Norbert Rittel
1d36279e79 Use correct unit symbol "min" for minutes in systemmonitor integration (#141236)
* Use correct unit symbol "min" for minutes in `systemmonitor` integration

* Update test_sensor.ambr

* Remove accidentially added, excessive space character
2025-03-23 21:08:25 +02:00
Norbert Rittel
c2057d19c0 Capitalize "ID" and "URL" abbreviations in trafikverket_camera (#141238)
Make the spelling consistent throughout Home Assistant.
2025-03-23 21:05:15 +02:00
Norbert Rittel
d23a724f79 Fix typo "to setup" in reolink (#141214) 2025-03-23 19:28:45 +01:00
Allen Porter
28ef0a33ad Update MCP to reconnect to the server on demand (#141215)
* Reconnect to the MCP client on deman

* Remove debug log

* Update log messages
2025-03-23 12:11:40 -04:00
Allen Porter
c451518959 Fix google calendar working location event filtering (#141222) 2025-03-23 09:07:42 -07:00
Allen Porter
f14b76c54b Add Gemini/OpenAI token stats to the conversation trace (#141118)
* Add gemini token status to the conversation trace

* Add OpenAI Token Stats

* Revert input_tokens_details since its not in the openai version yet

* Fix ruff lint errors
2025-03-23 12:03:06 -04:00
Artur Pragacz
663a204c04 Fix Python path for vscode run core task (#141090)
Fix Python path for vscode launch core task
2025-03-23 12:01:35 -04:00
Norbert Rittel
a6ff5391e5 Fix typo "to setup" in homeassistant_hardware (#141212)
Fix typo "to setup" in multiple integrations
2025-03-23 17:26:28 +02:00
Norbert Rittel
3df1ebf2fc Fix typo "to setup" and sentence-casing in twilio (#141218) 2025-03-23 17:25:05 +02:00
Simon Lamon
5f3344cd3d Bump linkplay to v0.2.0 (#141098)
* Bump linkplay to v0.2.0

* Fix invalid reference on items()

* Ruff
2025-03-23 16:27:40 +02:00
Norbert Rittel
56f553e352 Clarify meaning of "level" in dynalite.request_channel_level action (#141184)
Without context it's very difficult to come up with a good translation of "level" as there are many different words for this in other languages.

This commit adds "brightness" to explain the meaning of "channel level" in `dynalite`.
2025-03-23 16:26:44 +02:00
J. Nick Koston
8869236e9c Bump google-cloud-pubsub to 2.29.0 (#141178)
changelog: https://github.com/googleapis/python-pubsub/compare/v2.28.0...v2.29.0
2025-03-23 16:26:14 +02:00
Norbert Rittel
f94b55b608 Fixes to user-facing strings of azure_devops integration (#141208)
* Fixes to user-facing strings of `azure_devops` integration

- capitalize abbreviations "ID" and "URL"
- sentence-case "project"
- consistently capitalize "Personal Access Token" as a name

* Update test_sensor.ambr
2025-03-23 16:22:57 +02:00
Martin Hjelmare
fdaba003ce Patch Z-Wave platforms in event tests (#141209) 2025-03-23 16:22:18 +02:00
Norbert Rittel
703848766a Capitalize "URL" in feedreader error message (#141210) 2025-03-23 16:21:48 +02:00
Shay Levy
ba8ec22587 Add Switcher missing data descriptions (#141077) 2025-03-23 16:20:37 +02:00
Michael
6b724603c8 Remove orphan fuel type settings from Tankerkoening (#141207)
remove orphan fule type settings
2025-03-23 15:01:53 +01:00
Simone Chemelli
2465d0db7b Cleanup Vodafone Station strings (#141202) 2025-03-23 14:52:22 +01:00
Norbert Rittel
4758452e92 Use correct unit symbol "min" for minutes in asuswrt integration (#141206)
* Use correct unit symbol "min" for minutes in `asuswrt` integration

* Sentence-case all "temperature" sensors
2025-03-23 15:35:59 +02:00
Martin Hjelmare
588d6ad4cf Patch Z-Wave platforms in cover tests (#141205) 2025-03-23 15:35:29 +02:00
Norbert Rittel
c7d1e5a28c Fix spelling of "Do you want to set up?" in airgradient (#141199) 2025-03-23 15:17:32 +02:00
Norbert Rittel
8874fbe9c7 Fix sentence-casing of "Station radius" in airnow (#141200) 2025-03-23 15:16:54 +02:00
Norbert Rittel
ef2485be3b Fix sentence-casing in part of airq sensor names (#141203) 2025-03-23 15:15:41 +02:00
Martin Hjelmare
34504f45a5 Patch Z-Wave platforms in climate tests (#141204) 2025-03-23 15:15:09 +02:00
Artur Pragacz
798ee60ae5 Make variables action not restricted to local scopes (#141114)
Make variables action in scripts not restricted to local scopes
2025-03-23 14:07:52 +01:00
Simone Chemelli
ca10618dc7 Update strings for Comelit (#140925)
* Update strings for Comelit

* apply review comment

* apply review comment

* Update homeassistant/components/comelit/strings.json

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>

---------

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2025-03-23 12:50:02 +01:00
Simone Chemelli
77f8ddd948 Fix climate and humidifier platform for Comelit (#140611)
fix climate and humidifier platform for Comelit
2025-03-23 12:32:38 +01:00
Norbert Rittel
5c642ef626 Fix spelling of user-facing strings in adax integration (#141190)
- capitalize "Bluetooth" and "LED"
- sentence-case "Wi-Fi password"
2025-03-23 13:21:07 +02:00
Michael
489c486278 Rework Synology DSM to use config entry runtime_data (#141084)
rework to use config entry runtime_data
2025-03-23 12:05:40 +01:00
J. Diego Rodríguez Royo
d8a5881eaa Home Connect test improvements (#141135)
* Home Connect test improvements

* Remove `appliance_ha_id` fixture in favour of `appliance` fixture
2025-03-23 11:33:55 +01:00
Nerdix
883ce6842d Fix icon for "Coffee and Milk counter" in HomeConnect (#141170)
fix coffee and milk counter
2025-03-23 10:28:10 +01:00
Allen Porter
3a80a2d5b9 Bump openai to 1.68.2 (#141154)
* Bump openai to 1.68.2

* Remove unused type ignore
2025-03-22 23:12:02 -10:00
Luke Lashley
65279c94ac Finish strict typing for Roborock (#141165)
Mark strict typing as done
2025-03-22 23:07:22 -10:00
J. Nick Koston
87db981712 Bump anyio to 4.9.0 (#141161)
changelog: https://github.com/agronholm/anyio/compare/4.8.0...4.9.0
2025-03-23 10:34:49 +02:00
J. Nick Koston
153ccf86b0 Bump dbus-fast to 2.41.1 (#141162)
* Bump dbus-fast to 2.41.0

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.39.6...v2.41.0

* Apply suggestions from code review
2025-03-23 10:33:44 +02:00
tdfountain
9e86ca2e9e Add Switch platform and PDU dynamic outlet switches to NUT (#141159) 2025-03-22 19:27:52 -10:00
Luke Lashley
e2e80a850c Add dhcp discovery to Roborock (#141148)
* Add discovery to Roborock

* Update homeassistant/components/roborock/config_flow.py

Co-authored-by: Allen Porter <allen.porter@gmail.com>

* MR comments

* go back to removing the ":"

* change method of getting devices

---------

Co-authored-by: Allen Porter <allen.porter@gmail.com>
2025-03-22 21:21:43 -07:00
tdfountain
ddd67a7e58 Add PDU dynamic outlet buttons to NUT (#140317) 2025-03-22 13:04:20 -10:00
tdfountain
a9df341abf Optimize entity creation by storing device name as data in NUT (#141147) 2025-03-22 11:11:48 -10:00
Allen Porter
4e2dfba45f Omit state from the Assist LLM prompts (#141034)
* Omit state from the Assist LLM prompts

* Add back the stateful prompt
2025-03-22 15:41:51 -04:00
Thomas55555
61e30d0e91 Add diagnostics to remote calendar (#141111)
* Add diagnostics

* add diagnostics

* address review

* ruff

* ruff

* use raw ics data

* mypy

* mypy

* naming

* redact ics

* ruff

* simpify

* reduce data

* ruff
2025-03-22 12:27:48 -07:00
Luke Lashley
6d91bdb02e Inject websession for Roborock api client (#141141) 2025-03-22 12:19:54 -07:00
Andrew Sayre
7f640252a1 Use Debouncer helper in HEOS Coordinator (#141133)
Use Debouncer
2025-03-22 21:12:51 +02:00
Joost Lekkerkerker
f245bbd8dd Add door state binary sensor to SmartThings (#141143) 2025-03-22 20:04:21 +01:00
Joost Lekkerkerker
b47d3076cc Add oven stop button to SmartThings (#141142) 2025-03-22 20:51:41 +02:00
Mick Vleeshouwer
99d0449cbe Bump pyOverkiz to 1.16.4 in Overkiz (#141132)
* Bump Overkiz to 1.16.3

* Add missing generated files
2025-03-22 20:40:47 +02:00
Luke Lashley
1e0b89c381 Bump python Roborock to 2.16.1 (#141033)
* Bump python Roborock to 2.15.0

* Add aiohttp clientsession

* inject websession

* fix lint after merge

* bump to 2.16

* bump and revert

* revert formatting
2025-03-22 11:29:32 -07:00
Joost Lekkerkerker
c56b087d0c Add Dryer Wrinkle Prevent switch to SmartThings (#141085)
* Add Dryer Wrinkle Prevent switch to SmartThings

* Fix
2025-03-22 19:05:21 +01:00
Joost Lekkerkerker
4b4d75063c Add number platform to SmartThings (#141063)
* Add select platform to SmartThings

* Add number platform to SmartThings

* Fix

* Fix

* Fix

* Fix
2025-03-22 19:03:26 +01:00
Joost Lekkerkerker
931ce8951e Use category to define SmartThings binary sensor device class (#141075)
* Use category to define SmartThings binary sensor device class

* Fix
2025-03-22 12:41:15 -05:00
tdfountain
92c619cdd6 Create new entity base class for NUT (#141122) 2025-03-22 07:40:47 -10:00
Andrew Sayre
436acaf3d0 Remove uncalled function in HEOS (#141134)
Remove uncalled function
2025-03-22 12:37:11 -05:00
Andrew Sayre
ec4de0dcce Always allow browsing TuneIn for HEOS (#141131)
* Always allow browsing TuneIn

* Update test snapshots

* Retry CI
2025-03-22 18:14:42 +01:00
Joost Lekkerkerker
1b8b348eff Add select platform to SmartThings (#141115)
* Add select platform to SmartThings

* Add select platform to SmartThings
2025-03-22 18:03:50 +01:00
Joost Lekkerkerker
765691c84d Add power binary sensor for SmartThings (#141126) 2025-03-22 17:59:15 +01:00
Luke Lashley
fc0dbcd600 Refresh coordinator after map sleep for Roborock (#141093)
Refresh coordinator after the map sleep
2025-03-22 09:01:57 -07:00
Matthew FitzGerald-Chamberlain
b2942d61b3 Update pyaprilaire to 0.8.1 (#141094)
* Update pyaprilaire to 0.8.1

* Update requirements
2025-03-22 16:57:30 +02:00
Simone Chemelli
37a048a2ca Move Vodafone Station to silver quality scale (#141106) 2025-03-22 15:53:12 +01:00
Norbert Rittel
2453e7e686 Improve descriptions of fan_min_on_time in ecobee actions (#141086)
Add the explanations from the online docs to the `description` strings of both the `set_fan_min_on_time` action and its `fan_min_on_time` field.

Make the `fan_min_on_time` field of the `create_vacation` action consistent by dropping "(0 to 60)" from it (the UI takes care of that).

Fix sentence-casing of "Away indefinitely" state.
2025-03-22 16:30:24 +02:00
J. Diego Rodríguez Royo
4479b7b13d Add missing Home Connect chiller doors (#141105) 2025-03-22 14:31:28 +01:00
Joost Lekkerkerker
1492c59abe Delete deleted devices on runtime in SmartThings (#141080) 2025-03-22 13:12:37 +01:00
Joost Lekkerkerker
5961a46fc0 Start reauth for SmartThings if token expired (#141082) 2025-03-22 13:12:24 +01:00
J. Nick Koston
b7d300b49f Bump habluetooth to 3.37.0 (#141088)
changelog: https://github.com/Bluetooth-Devices/habluetooth/compare/v3.36.0...v3.37.0
2025-03-22 14:06:49 +02:00
J. Diego Rodríguez Royo
dc146e393c Add coordinator context override to Home Connect entity constructor (#141104)
* Improve Home Connect entity constructor to allow coordinator context override

* Simplify context usage at entity constructor
2025-03-22 12:42:54 +01:00
J. Diego Rodríguez Royo
9d9b352631 Move Home Connect service actions to a services.py (#141100)
* Move Home Connect service actions to a actions.py

* Rename actions.py to services.py

* Move more fuctions to module level
2025-03-22 12:35:46 +01:00
Maciej Bieniek
c08cbf3763 Use ShellyConfigEntry type in Shelly config flow (#141103)
Use ShellyConfigEntry type in async_get_options_flow
2025-03-22 11:57:59 +02:00
J. Diego Rodríguez Royo
ffd5c003cb Remove Home Connect service error string constants (#141102) 2025-03-22 10:48:35 +01:00
Andrew Sayre
34318ab655 Bump pyheos to 1.0.4 (#141091) 2025-03-21 12:19:05 -10:00
J. Nick Koston
6027a26761 Add SSLContext.set_default_verify_paths to asyncio blocking detection (#140648)
This one loads a significant number of files from /etc/ssl
2025-03-21 11:50:18 -10:00
tdfountain
2571725eb9 Add metered PDU dynamic outlet sensors to NUT (#140179)
* Add metered PDU dynamic outlet sensors

* Make deep copy and improve efficiency of loops

* Improve performance by creating new dict

Co-authored-by: J. Nick Koston <nick+github@koston.org>

* Remove unused import copy

* Use outlet name (if available) in friendly name and remove as separate sensor

---------

Co-authored-by: J. Nick Koston <nick+github@koston.org>
2025-03-21 11:41:43 -10:00
dependabot[bot]
84c6fa256c Bump home-assistant/builder from 2025.02.0 to 2025.03.0 (#141039)
Bumps [home-assistant/builder](https://github.com/home-assistant/builder) from 2025.02.0 to 2025.03.0.
- [Release notes](https://github.com/home-assistant/builder/releases)
- [Commits](https://github.com/home-assistant/builder/compare/2025.02.0...2025.03.0)

---
updated-dependencies:
- dependency-name: home-assistant/builder
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-21 21:44:33 +01:00
Franck Nijhof
2f244b2b66 2025.3.4 (#141081) 2025-03-21 21:21:43 +01:00
Martin Hjelmare
1b7e53fd01 Improve Home Connect appliances test fixture (#139787)
Improve Home Connect appliances fixture
2025-03-21 19:45:18 +00:00
Franck Nijhof
bfabf972a8 Bump version to 2025.3.4 2025-03-21 19:35:24 +00:00
Luke Lashley
c0c997eed8 Bump python-snoo to 0.6.4 (#141030) 2025-03-21 19:35:03 +00:00
Luke Lashley
14b07087dc Bump Python-Snoo to 0.6.3 (#140628)
Bump python-Snoo to 0.6.3
2025-03-21 19:34:59 +00:00
puddly
f54a634563 Bump ZHA to 0.0.53 (#141025)
* Bump ZHA to 0.0.53

* Regenerate snapshot
2025-03-21 19:33:41 +00:00
J. Diego Rodríguez Royo
e98d518b0b Fix some Home Connect options keys (#141023)
Fix some options keys
2025-03-21 19:33:38 +00:00
starkillerOG
121ee27105 Reolink fix playback headers (#141015) 2025-03-21 19:33:35 +00:00
Ivan Lopez Hernandez
5681f4f2ea Ensure file is correctly uploaded by the GenAI SDK (#140969)
Opened the file outside of the SDK
2025-03-21 19:33:32 +00:00
Joost Lekkerkerker
8a63fa3bb7 Log SmartThings subscription error on exception (#140939) 2025-03-21 19:33:28 +00:00
Josef Zweck
983a2f513d Bump pylamarzocco to 1.4.9 (#140916) 2025-03-21 19:33:24 +00:00
Joost Lekkerkerker
aab349e787 Fix SmartThings ACs without supported AC modes (#140744) 2025-03-21 19:31:08 +00:00
Joost Lekkerkerker
21ced23c3c Bump pySmartThings to 2.7.4 (#140720)
* Bump pySmartThings to 2.7.3

* Bump pySmartThings to 2.7.3

* Fix

* Fix

* Fix
2025-03-21 19:25:33 +00:00
Josef Zweck
a453e9d4c2 Don't reload onedrive on options flow (#140712) 2025-03-21 19:21:22 +00:00
Joost Lekkerkerker
1385bcdb90 Grade SmartThings on the integration quality scale (#141078) 2025-03-21 20:19:45 +01:00
Adam Feldman
3f493dce06 Fix broken core integration Smart Meter Texas by switching it to use HA's SSL Context (#140694)
* Update __init__.py to use HA's SSLContext

* Update config_flow.py to use HA's SSLContext

* Use default context for config_flow.py

* Use default context instead in __init__.py

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

* Fix import in __init__.py

* Fix import in config_flow.py

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-03-21 19:19:06 +00:00
Joost Lekkerkerker
403fe36489 Check Celsius in SmartThings oven setpoint (#140687) 2025-03-21 19:19:03 +00:00
J. Nick Koston
66fd7d9e8a Bump PySwitchBot to 0.57.1 (#140681)
changelog: https://github.com/sblibs/pySwitchbot/compare/0.56.1...0.57.1

fixes #140405
2025-03-21 19:19:00 +00:00
Glenn Waters
c9ceade10d Fix Elk-M1 missing TLS 1.2 check (#140672)
* Fix for missing TLS 1.2 check

* Fix error message.

* combine startswith

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2025-03-21 19:18:57 +00:00
Joost Lekkerkerker
85b6b3a360 Make Oven setpoint follow temperature UoM in SmartThings (#140666) 2025-03-21 19:18:08 +00:00
Maikel Punie
a2102f9b98 Fix optional password in Velbus config flow (#140615)
* Fix velbusconfigflow

* add tests

* Paramtize the tests

* Removed duplicate test in favor of another case

* more comments
2025-03-21 19:12:20 +00:00
J. Diego Rodríguez Royo
28cad1d085 Handle non documented options at Home Connect select entities (#140608)
* Allow non documented options at select entities

* Don't allow undocumented options
2025-03-21 19:12:17 +00:00
J. Diego Rodríguez Royo
9d8dbfbf3f Add 700 RPM option to washer spin speed options at Home Connect (#140607)
Add 700 RPM option to washer spin speed options
2025-03-21 19:12:14 +00:00
Hessel
1382a001e3 Change max ICP value to fixed value for Wallbox Integration (#140592)
change max ICP value to fixed value

Co-authored-by: Hessel van Es <hessel@datadragons.nl>
2025-03-21 19:12:10 +00:00
Pete Sage
88e3dcccda Album art not available for Sonos media library favorites (#140557)
* get album art uri for favorites

* add tests

* update typing

* update typing

* update typing

* simplify
2025-03-21 19:12:07 +00:00
J. Diego Rodríguez Royo
43e24cf833 Handle API rate limit error on Home Connect entities fetch (#139384)
* Handle API rate limit error on entities fetch

* Apply suggestions

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

* Add decorator (does not work)

* Fix decorator

* Apply suggestions

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

* Add test

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-21 19:12:03 +00:00
J. Diego Rodríguez Royo
65aef40a3f Fix initial fetch of Home Connect appliance data to handle API rate limit errors (#139379)
* Fix initial fetch of appliance data to handle API rate limit errors

* Apply comments

* Delete stale function

* Handle api rate limit error at options fetching

* Update appliances after stream non-breaking error

* Always initialize coordinator data

* Improve device update

* Update test description

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-21 19:11:58 +00:00
Joost Lekkerkerker
276e2e8f59 Move device creation in SmartThings (#141074)
Move device creation
2025-03-21 19:32:05 +02:00
Joost Lekkerkerker
5f67623214 Deprecate SmartThings events (#141073) 2025-03-21 18:26:17 +01:00
Joost Lekkerkerker
e78e873892 Add update platform to SmartThings (#141070)
* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* fix

* fix

* Add AC tests

* Add thermostat tests

* Add cover tests

* Add device tests

* Add light tests

* Add rest of the tests

* Add update

* Add oauth

* Add oauth tests

* Add oauth tests

* Add oauth tests

* Add oauth tests

* Bump version

* Add rest of the tests

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Add test fixtures

* Add test fixtures
2025-03-21 17:01:13 +01:00
G Johansson
16d335efc0 Update quality scale for Sensibo (#135924)
* Update quality scale for Sensibo

* platinum
2025-03-21 16:59:03 +01:00
Joost Lekkerkerker
74ed0e8011 Add support for PM1.0 in SmartThings (#141061)
* Add support for PM1.0 in SmartThings

* Add test fixtures

* Add test fixtures
2025-03-21 16:29:00 +01:00
Simone Chemelli
c1753631b1 Handle button presses exceptions for Vodafone Station (#140953)
* Handle button presses execeptions for Vodafone Station

* apply review comment
2025-03-21 16:26:51 +01:00
Joost Lekkerkerker
f84a46680d Add event platform to SmartThings (#141066)
* Add event platform to SmartThings

* Add event platform to SmartThings

* Fix
2025-03-21 16:20:42 +01:00
Joost Lekkerkerker
a9cbc72ce5 Add child lock to SmartThings (#140200)
* Add kids lock to SmartThings

* Add kids lock to SmartThings

* Fix

* Fix
2025-03-21 14:03:44 +01:00
Luke Lashley
466ec0b596 Fix failing Roborock test (#141059)
Fix the falky test
2025-03-21 05:31:17 -07:00
Wouter
858f0e6657 Fixed issue where the device was already disconnected when setting up the event platform (#140722)
* Changed where the script events are collected to remove any device communication from async_setup_entry

* Implemented improvements and added a test to test whats happends when script_getcode fails

* Renamed script_events to rpc_script_event to make clear this is only for RPC devices

Co-authored-by: Shay Levy <levyshay1@gmail.com>

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2025-03-21 14:13:56 +02:00
Jan-Philipp Benecke
4ed2689678 Handle wrong WebDAV URL more gracefully in config flow (#141040) 2025-03-21 12:25:26 +02:00
fwestenberg
1fafe81d20 Update Stookwijzer diagnostics and description (#141041)
Update diagnostics and description
2025-03-21 12:20:15 +02:00
Norbert Rittel
3101d9099b Fix spelling of "mDNS" in esphome (#141052)
Change "MDNS" to the correct "mDNS".
2025-03-21 12:19:07 +02:00
Maciej Bieniek
2785688f57 Add calibrate button for Shelly BLU TRV (#140578)
* Initial commit

* Refactor

* Call async_add_entities() once

* Type

* Cleaning

* `supported` is not needed here

* Add error handling

* Add test

* Fix name

* Change class name

* Change method name

* Move BLU_TRV_TIMEOUT

* Fix BLU_TRV_TIMEOUT import

* Coverage

* Use test snapshots

* Support error translations

* Fix tests

* Introduce ShellyBaseButton class

* Rename press_method to _press_method

* Improve exception strings
2025-03-21 10:14:20 +01:00
Norbert Rittel
bce7fcc3c6 Capitalize "DIP" abbreviation in apcupsd (#141048)
As "DIP" stands for "dual in-line package" it becomes capitalized as an abbreviation.
2025-03-21 09:44:02 +01:00
J. Nick Koston
021e4fab8c Bump habluetooth to 3.36.0 (#141037)
* Bump habluetooth to 3.35.0

changelog: https://github.com/Bluetooth-Devices/habluetooth/compare/v3.32.0...v3.35.0

* adjust
2025-03-21 08:12:55 +01:00
puddly
110500b860 Bump ZHA to 0.0.53 (#141025)
* Bump ZHA to 0.0.53

* Regenerate snapshot
2025-03-21 07:44:57 +01:00
Luke Lashley
e388d0c344 Bump python-snoo to 0.6.4 (#141030) 2025-03-21 07:42:02 +01:00
Allen Porter
a83bf4f514 Add a GetHomeState tool to return the current state of the home (#140971)
* Add a GetHomeState tool to return the current state of the home

* Fix check for exposing entities

* Add "all" to get home state description
2025-03-20 19:37:54 -07:00
Luke Lashley
a388863e62 Remove stale devices automatically for Roborock (#140991)
* Remove stale devices

* Add test

* extra test + fix networking patch bug
2025-03-20 18:28:37 -07:00
Abílio Costa
d12b4a1460 Log a warning for modules that log too often (#139708)
* Log a warning for modules that log too often

* Improve var naming

* Increase time window; improve log info

* Fix zha type

* Fix typo

* Ignore debug logs

* Use timer to avoid now() calls

* Switch to async_track_time_interval

* Allow using base QueueLister

* Add test for counters reset

* Make var names consistent; reduce message/time ratio

* Use log times instead of timer

* Simplify reset test

* Warn only once per module

* Remove uneeded counter reset
2025-03-20 14:53:53 -10:00
puddly
87c8234cdc Allow USB polling monitor on macOS for development (#141029)
* Allow USB polling on macOS

* Remove `_async_supports_monitoring`
2025-03-20 14:43:29 -10:00
dependabot[bot]
72645dff8b Bump actions/cache from 4.2.2 to 4.2.3 (#140977) 2025-03-21 00:34:48 +01:00
Marc Mueller
b936739917 Update pylint to 3.3.6 (#141028) 2025-03-21 00:33:16 +01:00
J. Diego Rodríguez Royo
a45c8d2820 Fix some Home Connect options keys (#141023)
Fix some options keys
2025-03-20 22:52:46 +01:00
Norbert Rittel
98f7193986 Apply sentence-casing to all status codes in litterrobot (#141020) 2025-03-20 21:23:35 +01:00
starkillerOG
5d1c8ea537 Reolink fix playback headers (#141015) 2025-03-20 20:45:07 +01:00
Norbert Rittel
95014dfdd8 Fix name of energenie_power_sockets integration (#141014)
* Fix name of `energenie_power_sockets` integration

Remove "integration." from the integration name.

* Fix

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2025-03-20 21:43:13 +02:00
Maciej Bieniek
53f1dd8adf Improve error handling and add exception translations for NextDNS integration (#141005)
* Add exception translations

* Coverage

* Add missing auth_error

* Coverage

* Use async_start_reauth

* Fix test

* Remove method placeholder
2025-03-20 20:33:45 +02:00
Norbert Rittel
a338205b73 Fix sentence-casing of "round-trip time" sensors in ping (#141012)
* Fix sentence-casing of "round-trip time" sensors in `ping`

Also add a hyphen for better English grammar.

* Update test_sensor.ambr
2025-03-20 20:30:28 +02:00
poucz
a030502489 Add MQTT cover stop tilt (#139912)
* Stop tilt move.

Stop tilt use same payload as cover - payload_stop

* Add test for STOP_TILT

* Tilt action

* Revert "Tilt action"

This reverts commit 7ce4fbb086.

* Update tests/components/mqtt/test_cover.py

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

* Update homeassistant/components/mqtt/cover.py

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

* Append CONF_PAYLOAD_STOP_TILT

* Update homeassistant/components/mqtt/cover.py

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

* Test for new payload

* Update tests/components/mqtt/test_cover.py

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

* Update tests/components/mqtt/test_cover.py

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

* Ruff format

* abbreviation

---------

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2025-03-20 18:20:12 +00:00
EnjoyingM
f9bb250621 Wolf Smartset: Adding Heatpump Parameters: Frequency, RPM and Flow rate (#140844)
* Add missing Heatpump parameters and units

* Fix merge issue

* Fix snapshot

* Removing bundle_id as extra state attribute till functionality is needed and updating api translation with missing phrase

* Fix translations for listparameters

* Fix translations for listparameters
2025-03-20 18:46:04 +01:00
Abílio Costa
eca10ea591 Improve Withings sleep and weight default units (#140665) 2025-03-20 18:45:52 +01:00
Robert Resch
32c6fb8629 Bump uv to 0.6.8 (#141007) 2025-03-20 19:20:40 +02:00
Norbert Rittel
4bbd49af53 Capitalize "PIN to Drive" feature name in teslemetry (#141011)
* Capitalize "PIN to Drive" as feature name in `teslemetry`

Fixes the spelling of "PIN" for consistency and turns "PIN to Drive" into the feature name that Tesla uses (in English).

* Update test_binary_sensor.ambr
2025-03-20 19:20:08 +02:00
peteS-UK
e48a25e952 Add button platform for Squeezebox integration (#140697)
* initial

* trans key correction

* base class updates

* model tidy up

* Update homeassistant/components/squeezebox/strings.json

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

* Update homeassistant/components/squeezebox/entity.py

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

* Update homeassistant/components/squeezebox/media_player.py

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

* Update homeassistant/components/squeezebox/media_player.py

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

* Update homeassistant/components/squeezebox/button.py

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

* review updates

* update

* move manufacturer to library

* updates

* list concat

* review updates

* Update tests/components/squeezebox/test_button.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-03-20 17:18:08 +01:00
Maciej Bieniek
70ed120c6e Add exception translations for GIOS integration (#141006)
Add exception translations
2025-03-20 16:58:49 +01:00
Martin Hjelmare
a835c85f59 Patch Z-Wave platforms in button tests (#141001) 2025-03-20 16:37:02 +02:00
Luke Lashley
2a4ed9ace7 Add translations for Roborock Exceptions (#140964)
* Add translations to a few exceptions

* match existing wording

* fix regex

* consolidate errors

* fix test
2025-03-20 07:14:45 -07:00
Petro31
212d39ba19 Migrate template switch to new style (#140324)
* Migrate template switch to new style

* update tests

* Update tests

* Add config flow migration

* comment fixes

* revert entity config migration
2025-03-20 15:12:43 +01:00
Martin Hjelmare
5f84fc3ee5 Patch Z-Wave platforms in binary sensor tests (#140992) 2025-03-20 16:06:21 +02:00
Artur Pragacz
c9b27cf26e Detect early base platforms in bootstrap (#140359)
* Detect early base platforms in bootstrap

* Address feedback

* Address feedback
2025-03-20 12:56:45 +01:00
Martin Hjelmare
df0125abdd Patch Z-Wave platforms in api tests (#140988) 2025-03-20 12:54:40 +01:00
Martin Hjelmare
d8a4a97ee0 Allow patching Z-Wave platforms specifically in tests (#140987) 2025-03-20 12:19:14 +01:00
starkillerOG
a20601a1f0 Bump reolink-aio to 0.12.3 (#140789)
* Add password length restriction

* Bump reolink-aio to 0.12.3

* Add repair issue for too long password

* finish password too long repair issue

* add test
2025-03-20 11:39:57 +01:00
Franck Nijhof
d3c40939f6 Reorder template extensions (#140985) 2025-03-20 11:34:02 +01:00
Marc Mueller
56e966a980 Update project metadata for PEP 639 (#140960) 2025-03-20 11:04:49 +01:00
Joost Lekkerkerker
827d5256c6 Bump pySmartThings to 2.7.4 (#140720)
* Bump pySmartThings to 2.7.3

* Bump pySmartThings to 2.7.3

* Fix

* Fix

* Fix
2025-03-20 11:02:51 +01:00
Franck Nijhof
c6d3928ed1 Add template function: combine (#140948)
* Add template function: combine

* Add test to take away concern raised
2025-03-20 10:29:40 +01:00
Petar Petrov
3fb0290fba Remove unused params in "zwave_js/provision_smart_start_node" API (#140982) 2025-03-20 10:19:26 +01:00
Martin Hjelmare
2674b02bfa Refactor zwave_js config entry setup (#107635)
* Refactor zwave_js config entry setup

* Fix blocking update test

* Address timeout comment

* Remove platform tasks

* Replace deprecated async_add_job

* Use ConfigEntry.async_on_state_change

* Use modern config entry methods

* Clarify exception message

* Test listen error after config entry setup

* Test listen failure during setup after forward entry

* Test not reloading when hass is stopping

* Test client disconnect is called on entry unload

* Fix and test client not connected during driver setup

* Fix and test driver ready timeout

* Stringify listen task exception when logging

* Use identity compare

* Guard for closed connection

* Consolidate listen task checking and tests
2025-03-20 10:16:48 +01:00
Simone Chemelli
32f9c07254 Add missing exception translation in Vodafone Station (#140951)
* Add missing exception translation in Vodafone Station

* strings
2025-03-20 09:47:02 +01:00
J. Diego Rodríguez Royo
2ec80fd1ca Fix initial fetch of Home Connect appliance data to handle API rate limit errors (#139379)
* Fix initial fetch of appliance data to handle API rate limit errors

* Apply comments

* Delete stale function

* Handle api rate limit error at options fetching

* Update appliances after stream non-breaking error

* Always initialize coordinator data

* Improve device update

* Update test description

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-20 09:39:28 +01:00
dependabot[bot]
adf3e4fcca Bump actions/download-artifact from 4.2.0 to 4.2.1 (#140974)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4.2.0...v4.2.1)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  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-03-20 09:30:59 +01:00
dependabot[bot]
03bd8cd251 Bump github/codeql-action from 3.28.11 to 3.28.12 (#140975)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.11 to 3.28.12.
- [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.11...v3.28.12)

---
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-03-20 09:30:36 +01:00
Norbert Rittel
006dde435e Clarify descriptions of lcn.address_to_device_id action (#140979)
Clarify descriptions of `lcn.address_to_device` action

Changes the wording of the action and field descriptions so there is less ambiguity for translations.
2025-03-20 10:26:39 +02:00
dependabot[bot]
9f68ac575d Bump actions/upload-artifact from 4.6.1 to 4.6.2 (#140976)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.6.1...v4.6.2)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  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-03-20 09:20:33 +01:00
Ivan Lopez Hernandez
d9cf2750d5 Ensure file is correctly uploaded by the GenAI SDK (#140969)
Opened the file outside of the SDK
2025-03-19 22:58:19 -07:00
J. Nick Koston
a600bc5e57 Add turn on/off support to HomeKit TVs (#140957)
* Add turn on/off support to HomeKit TVs

* 0 = off, 1 = on, not a bool

* add coverage

* update snapshot
2025-03-19 11:19:04 -10:00
Joost Lekkerkerker
100e4425e4 Log SmartThings subscription error on exception (#140939) 2025-03-19 20:13:46 +01:00
Joost Lekkerkerker
4344e9d604 Add remote control status to SmartThings (#140197)
* Add remote control status to SmartThings

* Add remote control status to SmartThings

* Fix
2025-03-19 18:23:15 +00:00
Norbert Rittel
2ffec3415c Use official spelling "FFmpeg" in ezviz / canary / onvif (#140938)
* Use official spelling "FFmpeg" in `ezviz`

* Use official spelling "FFmpeg" in `canary`

Fix sentence-casing along the way.

* Use official spelling "FFmpeg" in `onvif`

Fix sentence-casing along the way
2025-03-19 18:17:42 +00:00
J. Diego Rodríguez Royo
8afd9c0c44 Handle API rate limit error on Home Connect entities fetch (#139384)
* Handle API rate limit error on entities fetch

* Apply suggestions

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

* Add decorator (does not work)

* Fix decorator

* Apply suggestions

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

* Add test

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-19 18:53:14 +01:00
Norbert Rittel
d99df8701c Use official spelling "FFmpeg" in user-facing strings (#140937)
* Use official spelling "FFmpeg" in user-facing strings

* Replace "a" with "an"
2025-03-19 18:50:19 +01:00
Erik Montnemery
05c61b7ec3 Rename BackupManager last_non_idle_event to last_action_event (#140291)
* Rename BackupManager last_non_idle_event to last_action_event

* Update snapshots
2025-03-19 17:28:40 +01:00
jukrebs
2c9eb288e3 Add capability to display updated firmware versions in Home Assistant (#140524)
* add firmware version update

* incoperate review feedback
2025-03-19 16:51:39 +01:00
Erik Montnemery
6b9c1e17e0 Fix docstring in selector helper (#140929) 2025-03-19 16:37:07 +01:00
Maciej Bieniek
4a5567806b Add exception translations for IMGW-PIB integration (#140936)
Add exception translations
2025-03-19 17:14:02 +02:00
Erik Montnemery
6211e378c3 Fix flaky cast tests (#140928) 2025-03-19 16:50:09 +02:00
Simone Chemelli
6af23d2348 Add quality scale to Vodafone Station (#139444)
* Add quality scale and strict typing to Vodafone Station

* mypy and hassfest

* tweek

* parallel-updates

* update

* update manifest

* apply review comment
2025-03-19 15:35:47 +01:00
Erik Montnemery
6434befdcd Fix misleading airthings_ble test (#140933) 2025-03-19 15:12:43 +01:00
dontinelli
a2f0970dfc Bump fyta_cli to 0.7.2 (#140930) 2025-03-19 14:09:10 +00:00
starkillerOG
334359871d Add Reolink home hub scene select entity (#140823) 2025-03-19 14:34:49 +01:00
Erik Montnemery
245f0a1958 Minor typing tweak in cast (#140911) 2025-03-19 12:52:27 +00:00
Simone Chemelli
adc3f542cf Update strings for Vodafone Station (#140919) 2025-03-19 13:11:29 +01:00
Josef Zweck
3fd17c802c Bump pylamarzocco to 1.4.9 (#140916) 2025-03-19 11:25:12 +01:00
Norbert Rittel
f79aa2f73e Fix typos in nibe_heatpump strings (#140917)
* Fix typo in `nibe_heatpump` strings

* Also capitalize "Telnet"
2025-03-19 11:02:37 +01:00
Norbert Rittel
f28b9ba961 Fix sentence-casing in nibe_heatpump strings (#140915) 2025-03-19 11:36:49 +02:00
Erik Montnemery
793e36635b Improve google cast known hosts configuration (#140913) 2025-03-19 10:07:47 +01:00
Norbert Rittel
7c6abe17a2 Clarify description of speed field in omnilogic.set_pump_speed action (#140912)
Replace "VSP" (for variable speed pump) with just "pump" so it can be properly translated.
2025-03-19 10:55:49 +02:00
J. Nick Koston
f4fe234279 Bump annotatedyaml to 0.4.4 (#140861)
* Bump annotatedyaml to 0.4.2

changelog: https://github.com/home-assistant-libs/annotatedyaml/compare/v0.2.0...v0.4.2

~10-11% performance improvement

* tweak imports

* bump to .3 to make pylint happy

* bump again for fixes

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2025-03-18 22:26:23 -10:00
dependabot[bot]
d37783fb21 Bump actions/download-artifact from 4.1.9 to 4.2.0 (#140907)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.9 to 4.2.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4.1.9...v4.2.0)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  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-03-19 09:53:00 +02:00
Manu
caf81eecd3 Bump bring-api to v1.1.0 (#140906) 2025-03-18 20:25:41 -10:00
Luke Lashley
254622878a Add Roborock entity with the name of the current room (#140895)
* Add current room entity

* Update homeassistant/components/roborock/models.py

Co-authored-by: Allen Porter <allen.porter@gmail.com>

* Update homeassistant/components/roborock/models.py

Co-authored-by: Allen Porter <allen.porter@gmail.com>

* use current_room property

* remove select changes

---------

Co-authored-by: Allen Porter <allen.porter@gmail.com>
2025-03-18 18:48:34 -07:00
Erik Montnemery
c41d5f2577 Fix cast.show_lovelace_view service description (#140859) 2025-03-18 23:13:08 +01:00
Maciej Bieniek
3ce9d47d7d Add exception translations for Airly integration (#140864)
* Add exception translations

* Improve error strings
2025-03-18 21:27:36 +02:00
Norbert Rittel
07302ea178 Fix duplicate descriptions of homematicip_cloud.activate_eco_mode_with_… actions (#140885)
Update strings.json

Currently both the `activate_eco_mode_with_duration` and the `activate_eco_mode_with_period` actions have the identical description:

"Activates eco mode with period."

To resolve this confusing duplicate, both actions get their own descriptions, making the latter consistent with that of the `activate_vacation` action.
2025-03-18 21:27:21 +02:00
Norbert Rittel
2d82a12e0a Make description of homeassistant.reload_all action consistent (#140887)
Change it to "Reloads …" like all other `homeassistant.reload_xyz` actions.
2025-03-18 18:47:14 +00:00
starkillerOG
f8ab4d0238 Fix warnings in Reolink tests (#140878) 2025-03-18 16:47:33 +01:00
Maciej Bieniek
11e02f89cf Add exception translations for Brother integration (#140868)
Add exception translations
2025-03-18 17:40:47 +02:00
starkillerOG
4564d2537b Fix flakey reolink test (#140877) 2025-03-18 17:38:34 +02:00
Markus Adrario
e2460a4393 bump pyHomee to 1.2.8 (#140870) 2025-03-18 17:32:14 +02:00
Simone Chemelli
a170e32852 Deprecate Shelly state attributes (#140791) 2025-03-18 17:29:21 +02:00
Maikel Punie
4176776d70 Fix optional password in Velbus config flow (#140615)
* Fix velbusconfigflow

* add tests

* Paramtize the tests

* Removed duplicate test in favor of another case

* more comments
2025-03-18 14:49:27 +00:00
Luke Lashley
1cae866da9 Update Roborock Map on status change (#140873)
* update map on status change

* Update tests/components/roborock/test_image.py

Co-authored-by: Allen Porter <allen.porter@gmail.com>

* update code to handle state logic within async_update_data

* Update homeassistant/components/roborock/coordinator.py

Co-authored-by: Allen Porter <allen.porter@gmail.com>

* move previous_state and allow update on None

---------

Co-authored-by: Allen Porter <allen.porter@gmail.com>
2025-03-18 07:34:02 -07:00
Norbert Rittel
de1823070f Replace unsupported markup of examples in humidifier.set_mode action (#140824)
Markup language is not supported in the action UI. Thus the underscores for italics are replaced with quote marks.
2025-03-18 12:55:32 +01:00
Maciej Bieniek
29f03f5b87 Add exception translations for AccuWeather integration (#140863)
* Add exception translations

* Improve error strings
2025-03-18 13:23:51 +02:00
Petar Petrov
516aaa741d Add Z-Wave JS lookup_device API (#140802)
* ZwaveJS lookup_device API

* add FailedCommand test

* test tweak
2025-03-18 12:05:10 +01:00
Simone Chemelli
12f5bd2aea Add dedicated sensors for extra_state_attributes in Shelly integration (#140793)
* Add dedicated sensors for extra_state_attributes in Shelly integration

* add tests

* apply review comment

* fix text syntax

* add gas test

* update strings

* add icons
2025-03-18 11:48:18 +01:00
Dan Raper
30c19ec373 Add reconfigure flow to Ohme (#140835)
* Add reconfigure flow to Ohme

* Remove incorrect unique ID check from ohme reconfig
2025-03-18 10:36:21 +01:00
EnjoyingM
5438532780 Bump wolf-comm to 0.0.23 (#140840)
* Bump wolf-comm to 0.0.23

* fix test for new lib
2025-03-18 11:22:32 +02:00
starkillerOG
fdd36e457d Add Reolink day night state sensor (#140825)
* Add day night state sensor

* Update test_diagnostics.ambr
2025-03-18 11:19:45 +02:00
Norbert Rittel
603557af73 Improve description of vicare.set_vicare_mode action (#140826)
Add some additional information from the online docs so they get included in translations.
2025-03-18 11:16:21 +02:00
Norbert Rittel
36d42760a4 Fix capitalization in nextcloud entity names (#140856)
* Fix capitalization in `nextcloud` entity names

Use uppercase for abbreviations, sentence-case for words.

* Update test_sensor.ambr
2025-03-18 11:07:05 +02:00
Luke Lashley
ea259ffa66 Add event to Snoo (#140827) 2025-03-18 09:35:57 +01:00
Jan Schneider
52054d69c7 Update moehlenhoff-alpha2 to 1.4.0 (#140829)
* Update moehlenhoff-alpha2 to 1.4.0

* Fix test
2025-03-18 09:32:28 +01:00
Dan Raper
74992344d5 Add diagnostics for Ohme (#140833) 2025-03-18 09:31:08 +01:00
Adam Feldman
776495dfa2 Fix broken core integration Smart Meter Texas by switching it to use HA's SSL Context (#140694)
* Update __init__.py to use HA's SSLContext

* Update config_flow.py to use HA's SSLContext

* Use default context for config_flow.py

* Use default context instead in __init__.py

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

* Fix import in __init__.py

* Fix import in config_flow.py

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-03-18 09:24:05 +01:00
Norbert Rittel
426be3c11b Capitalize "ZIP" as abbreviation in rova integration strings (#140852)
Capitalized "ZIP" as abbreviation in `rova`
2025-03-18 09:21:28 +02:00
Norbert Rittel
a93ab74e40 Sentence-case "Zip code" in iqvia integration strings (#140853) 2025-03-18 09:21:06 +02:00
Luke Lashley
0eac679a5a Move MapData to Coordinator for Roborock (#140766)
* Move MapData to Coordinator

* seeing if mypy likes this

* delete dead code

* Some MR comments

* remove MapData and always update on startup if we don't have a stored map.

* don't do on demand updates

* remove unneeded logic and pull out map save

* Apply suggestions from code review

Co-authored-by: Allen Porter <allen.porter@gmail.com>

* see if mypy is happy

---------

Co-authored-by: Allen Porter <allen.porter@gmail.com>
2025-03-17 19:34:47 -07:00
Luke Lashley
73a24bf799 Set Parallel updates to 0 in Roborock (#140837)
roborock set parallel updates to 0
2025-03-17 18:39:48 -07:00
Allen Porter
412705302d Update MCP server to make the stateless API implicit (#140753)
* Update MCP server to not register the stateless API, but use it implicitly as an Assist API replacement

* Ensure backwards compatibility with old registration
2025-03-17 16:38:21 -05:00
LG-ThinQ-Integration
c9276aedde Bump thinqconnect to 1.0.5 (#140577)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-03-17 21:38:37 +01:00
Norbert Rittel
eafea6070d Improve action description in mealie integration (#140817)
- change all action descriptions to third-person singular
- use neutral wording for the description of `config_entry_id` so it works with all the different action contexts.
2025-03-17 21:45:17 +02:00
Norbert Rittel
539a28dcba Make all action descriptions in rachio consistent (#140816)
Changes 4 of the 6 action descriptions in the `rachio` integration to also use the descriptive style of Home Assistant.

In addition "API key" is sentence-cased to match the common string used in the same dialog.
2025-03-17 21:19:38 +02:00
Andrew Sayre
52d86ede3e Add ability to browse (and play) HEOS media (#140433)
* Add browse and play

* Tests

* Add tests involving media source
2025-03-17 14:10:56 -05:00
starkillerOG
4dfb56a2f7 Bump reolink-aio to 0.12.3b1 (#140811) 2025-03-17 20:06:49 +01:00
Erik Montnemery
290dab25bf Don't raise in ConfigFlow.async_set_unique_id if the other flow is a reauth flow (#140723)
* Don't raise in ConfigFlow.async_set_unique_id if the other flow is a reauth flow

* Improve test
2025-03-17 09:04:30 -10:00
Norbert Rittel
e16f0e9af3 Clarify action descriptions of smarttub.snooze_reminder / reset_reminder (#140810)
- change both descriptions to descriptive HA style
- change "reminder" to "maintenance reminder" (helps translators a lot)
- use more of the wording from the online documentation
2025-03-17 20:03:05 +02:00
Norbert Rittel
a2fec8c2ce Fix inconsistent capitalization in growatt_server entities (#140803)
* Fix inconsistent capitalization in `growatt_server` entities

* Makes "amperage" and "wattage" consistent (with "voltage")
2025-03-17 19:21:56 +02:00
Thomas55555
9a0837593a Improve test coverage and add comment for loading in executor for remote calendar (#140807)
Improve calendar loading by executing in a separate thread and add test for CalendarParseError
2025-03-17 17:38:40 +01:00
Simone Chemelli
f4787d469a Remove Shelly extra_attributes for RPC & REST devices (#140792)
* Remove Shelly extra_attributes for RPC devices

* apply review comment
2025-03-17 17:27:01 +01:00
Thomas55555
a252c19e7c Use MowerDictionary in Husqvarna Automower (#140805) 2025-03-17 16:57:03 +01:00
Shay Levy
9b57a831f7 Fix Shelly Air lamp life sensor (#140799) 2025-03-17 17:33:11 +02:00
starkillerOG
18bd8b561a Add Reolink smart ai binary sensors (#140408)
* Add Crossline smart AI binary sensor

* Add intrusion, lingering, forgotten item, item taken detection

* Use unique_index instead of location for unique_id

* Add test

* Apply suggestions from code review

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

* Name changes

* Update homeassistant/components/reolink/binary_sensor.py

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

* Use smart_type instead of key

* Use occupancy translation instead of gas (point to the same thing).

* Revert "Use occupancy translation instead of gas (point to the same thing)."

This reverts commit 9caf796585.

* fix styling

---------

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2025-03-17 14:49:13 +00:00
Stephan van Rooij
76aef5be9f Add PKCE implementation in oauth2 helper (#139509)
* Update config_entry_oauth2_flow.py

* Specify type on request_data

* Added LocalOAuth2ImplementationWithPkce

* LocalOAuth2ImplementationWithPkce works more like specs

* fix: Adding tests for pkce flow and feedback applied

* fix last test for pkce

* Clean test_abort_if_oauth_with_pkce_rejected

* Improve assertion of code verifier and code challenge

* Break long docstrings

* Shorten docstring

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-17 14:16:52 +01:00
Erik Montnemery
fb2b3ce7d2 Bump pychromecast to 14.0.6 (#140794) 2025-03-17 13:19:27 +01:00
Petar Petrov
0d1c79b427 Bump zwave-js-server-python to 0.62.0 (#140796)
* Bump zwave-js-server-python to 0.62.0

* fix breaking change
2025-03-17 13:18:15 +01:00
Indu Prakash
a5913147e7 Add support for fan night light in VeSync (#140637)
* style: rename humidifier night const

* fix: separate night light for fan and humidifier

Check for the presence of set_night_light_brightness and
set_night_light to indentify humidifier and fan devices.

set_night_light is defined on VeSyncAirBypass and
set_night_light_brightness is defined on VeSyncHumid200300S.

update test
2025-03-17 10:32:52 +01:00
Ivan Lopez Hernandez
110e827ede Add @IvanLH to owners of google_generative_ai_conversation (#140764)
Update CODEOWNERS
2025-03-17 09:12:22 +01:00
dependabot[bot]
74ce703755 Bump docker/login-action from 3.3.0 to 3.4.0 (#140780)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  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-03-17 09:08:47 +01:00
J. Diego Rodríguez Royo
4baf72d80b Call only required listeners on CONNECT/PAIRED in Home Connect (#140765)
Call only to the required listeners on CONNECT/PAIRED
2025-03-17 07:43:02 +01:00
J. Nick Koston
ab6c5af374 Bump aiohttp to 3.11.14 (#140773)
changelog: https://github.com/aio-libs/aiohttp/compare/v3.11.13...v3.11.14
2025-03-17 07:36:43 +01:00
J. Nick Koston
5fb03114b5 Bump dbus-fast to 2.39.6 (#140775)
changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.39.5...v2.39.6
2025-03-17 07:35:49 +01:00
Marc Mueller
bddec1168b Bump ci cache version (#140767) 2025-03-17 01:38:05 +01:00
Norbert Rittel
f19a5b28f7 Update description of evaluate_payload to use friendly name (#140736)
* Update description of `evaluate_payload` to use friendly name

For the graphical UI the action descriptions need to refer to the friendly names of other fields so these can be translated to match.

Small change from `payload` to 'Payload'.

* Replace "When …" with "If …"
2025-03-16 22:38:25 +01:00
Johnny Willemsen
a9949aece0 Fix typo in Homee (#140759)
* Update strings.json

Fixed typo

* Update homeassistant/components/homee/strings.json

* Fix

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-03-16 22:27:35 +01:00
Luke Lashley
15e983e997 Add snoo switches (#140748)
* Add snoo switches

* change naming

* change wording
2025-03-16 22:24:49 +01:00
Luke Lashley
a40bb2790e Move Roborock map refresh to coordinator (#140758)
Move refresh coordinator to coordinator
2025-03-16 14:15:04 -07:00
Ivaylo Iliev
1b91240d54 Bump nibe_heatpump component version to add S332/S330 model (#140741) 2025-03-16 21:31:34 +01:00
Joost Lekkerkerker
bbe2a95b3d Deprecate Valve binary sensor in SmartThings (#140751)
Deprecate Valve binary sensor
2025-03-16 22:29:03 +02:00
mbraem
5351fe3f9b Add specific sensor device_class, state_class and unit_of_measurement (#137038)
Support additional units in the coil unit descriptions: min, s, Pa, kPa, bar,
l/m, m³/h and %RH.

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-03-16 21:06:49 +01:00
Luke Lashley
b0db7b432e Move Roborock MapParser to coordinator (#140750)
Move MapParser to coordinator
2025-03-16 12:55:00 -07:00
Joost Lekkerkerker
784381a25f Deprecate SmartThings cover battery state attribute (#140752) 2025-03-16 20:45:46 +01:00
Markus Adrario
42f0e70cde Add Homee binary sensor platform (#140088)
* binary-sensor initial

* Add binary sensor tests

* small string changes

* fix review comments

* review change 1
2025-03-16 20:13:36 +01:00
Allen Porter
1ee4f02e70 Bump ical to 9.0.1 (#140726) 2025-03-16 21:10:40 +02:00
Joost Lekkerkerker
d061f4ee05 Fix SmartThings ACs without supported AC modes (#140744) 2025-03-16 20:06:50 +01:00
MarkGodwin
56fe4319a0 Bump TP-Link Omada API to 1.4.4 (#140738) 2025-03-16 21:04:58 +02:00
Thomas55555
a7b6bcf1d6 Address post merge comments for remote calendar (#140735) 2025-03-16 20:03:02 +01:00
Manu
46973f0446 Redact emails and names in Bring! diagnostics (#140746) 2025-03-16 20:00:10 +01:00
Joost Lekkerkerker
735c98cb86 Set Home Connect button unique id to shorthand attribute (#140745) 2025-03-16 19:54:00 +01:00
starkillerOG
b5fa3e74c0 Add option to specify Reolink Basic Service Port (#137603)
* Allow changing the baichuan port

* styling

* Add description

* Add tests

* Review feedback

* capital letters

Co-authored-by: Robert Resch <robert@resch.dev>

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2025-03-16 19:51:06 +01:00
Manu
8a552aef9d Adjusts strings in create actions in Habitica integration (#140742)
Adjusts strings in create actions
2025-03-16 19:33:28 +01:00
Thomas55555
2ece7fbc11 Add strict typing to remote_calendar (#140734) 2025-03-16 19:32:59 +01:00
Luke Lashley
2424d1c615 bump Python-Roborock to 2.14.0 (#140727)
bump Python Roborock to 2.14.0
2025-03-16 10:19:32 -07:00
Denis Shulyaka
bb7b5b9ccb OpenAI Responses API (#140713) 2025-03-16 13:18:18 -04:00
Luke Lashley
214d14b06b Add binary sensor to Snoo (#140729)
* Add binary sensor

* Update homeassistant/components/snoo/binary_sensor.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-03-16 16:57:21 +01:00
Denis Shulyaka
056616f9c5 Stronger type annotations for conversation content (#140725)
stronger type annotations for conversation content
2025-03-16 10:59:25 -04:00
Josef Zweck
012b4645f3 Don't reload onedrive on options flow (#140712) 2025-03-16 09:51:53 -04:00
Jan-Philipp Benecke
4ca31da0a5 Bump annotatedyaml to 0.2.0 (#140715) 2025-03-16 09:51:36 -04:00
Pete Sage
d560083e15 Album art not available for Sonos media library favorites (#140557)
* get album art uri for favorites

* add tests

* update typing

* update typing

* update typing

* simplify
2025-03-16 14:09:21 +01:00
Dan Raper
d365092bcc Add price cap support to Ohme (#140537)
* Add price cap support

* Change service input to box mode

* Add icon for set_price_cap service

* Improve test coverage

* Change ohme service description wording
2025-03-16 14:05:08 +01:00
Luke Lashley
4e0985e1a7 Add Select entity to Snoo (#140638) 2025-03-16 14:00:43 +01:00
Brett Adams
011a076155 Fix auto seat heater in Teslemetry (#140703)
Fix auto seat heater
2025-03-16 10:16:21 +01:00
Pete Sage
5f8564bfc5 Fix audiobooks always start from beginning on Sonos (#140663)
* play audible favorite

* play audible favorite

* simplify tests
2025-03-16 10:11:08 +01:00
Serge Wagener
6b6470f345 Update knx-frontend and increase BinarySensor reset_after limit (#140196)
Bumped to newest knx-frontend version and adapt knx ui schema
2025-03-16 08:29:44 +01:00
Jan-Philipp Benecke
7b9ea63f17 Split out yaml loading into own package (#140683)
* Split out yaml loading into library

* Code review

* Code review

* Fix check config script
2025-03-15 22:26:18 -04:00
Denis Shulyaka
3a6ddcf428 Bump openai to 1.66.3 (#140690) 2025-03-15 22:24:27 -04:00
Thomas55555
4050c216ed Add Remote calendar integration (#138862)
* Add remote_calendar with storage

* Use coordinator and remove storage

* cleanup

* cleanup

* remove init from config_flow

* add some tests

* some fixes

* test-before-setup

* fix error handling

* remove unneeded code

* fix updates

* load calendar in the event loop

* allow redirects

* test_update_failed

* tests

* address review

* use error from local_calendar

* adress more comments

* remove unique_id

* add unique entity_id

* add excemption

* abort_entries_match

* unique_id

* add ,

* cleanup

* deduplicate call

* don't raise for status end de-nest

* multiline

* test

* tests

* use raise_for_status again

* use respx

* just use config_entry argument that already is defined

* Also assert on the config entry result title and data

* improve config_flow

* update quality scale

* address review

---------

Co-authored-by: Allen Porter <allen@thebends.org>
2025-03-15 18:57:45 -07:00
IceBotYT
91e0f1cb46 Add voip_utils to voip loggers (#140695)
* Add voip_utils to voip loggers

* Sort
2025-03-15 23:40:02 +01:00
Joost Lekkerkerker
675b684290 Check Celsius in SmartThings oven setpoint (#140687) 2025-03-15 23:09:55 +01:00
J. Nick Koston
d69bcc02b0 Pass scanner mode to shelly Bluetooth scanner (#140689)
habluetooth will eventually be able to make better decisions
on how to route data based on the scanning mode.
2025-03-15 12:00:23 -10:00
Glenn Waters
76244e0d6b Fix Elk-M1 missing TLS 1.2 check (#140672)
* Fix for missing TLS 1.2 check

* Fix error message.

* combine startswith

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2025-03-15 11:07:45 -10:00
Thomas55555
ed0b1f58dc Bump aioautomower to 2025.3.1 (#140682) 2025-03-15 21:30:19 +01:00
J. Nick Koston
16556fa2a9 Bump PySwitchBot to 0.57.1 (#140681)
changelog: https://github.com/sblibs/pySwitchbot/compare/0.56.1...0.57.1

fixes #140405
2025-03-15 21:06:00 +01:00
Joost Lekkerkerker
43898d7845 Add valve platform to SmartThings (#140195)
* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* fix

* fix

* Add AC tests

* Add thermostat tests

* Add cover tests

* Add device tests

* Add light tests

* Add rest of the tests

* Add valve

* Add oauth

* Add oauth tests

* Add oauth tests

* Add oauth tests

* Add oauth tests

* Bump version

* Add rest of the tests

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Fix

* Fix
2025-03-15 20:28:51 +01:00
Joost Lekkerkerker
bff73ee5f8 Add EHS test fixture to SmartThings (#140199) 2025-03-15 20:28:04 +01:00
Jeff Terrace
02a75edf1d Add onvif parser support for reolink package and hikvision alarm (#140669) 2025-03-15 09:03:40 -10:00
EnjoyingM
c1c8deed0c Fix sensor values for Power and Energy for Wolf Heatpumps (#139007)
* Add sensor values for Power and Energy

* test

* test

* Sensor test

* Fix test

* fix test

* Fixing test coverage

* refactored

* WolfllinkSensorEntityDescriptions and updated tests

* fix test

* Add name_fn and test_sensor adoptions

* fix test coverage

* Revert "fix test coverage"

This reverts commit 2405751f5a.

* resolve requested changes and fix test

* Fix Snapshot

* clean up

* Fixed unknown state in snapshot test
2025-03-15 19:56:45 +01:00
Simone Chemelli
2fd91e7f9c Remove unknown from Shelly sensor state (#140597) 2025-03-15 18:10:35 +01:00
Maciej Bieniek
58ff593f96 Bump aioshelly to version 13.4.0 (#140671)
Bump aioshelly to version 13.4.0
2025-03-15 18:11:04 +02:00
Maciej Bieniek
89e7536731 Add missing translations for options attribute in Nettigo Air Monitor integration (#140662)
Add missing translations for options attribute
2025-03-15 15:38:45 +01:00
Joost Lekkerkerker
b7e2e041bc Make Oven setpoint follow temperature UoM in SmartThings (#140666) 2025-03-15 15:08:21 +01:00
J. Diego Rodríguez Royo
940625505f Handle non documented options at Home Connect select entities (#140608)
* Allow non documented options at select entities

* Don't allow undocumented options
2025-03-15 14:17:16 +01:00
J. Nick Koston
f801cfee7e Bump habluetooth to 3.32.0 (#140640)
changelog: https://github.com/Bluetooth-Devices/habluetooth/compare/v3.27.0...v3.32.0
2025-03-15 12:27:21 +02:00
J. Nick Koston
99f661538d Bump aioesphomeapi to 29.7.0 (#140641)
changelog: https://github.com/esphome/aioesphomeapi/compare/v29.6.0...v29.7.0
2025-03-15 12:27:06 +02:00
Tim Laing
13b6cfa438 Add generate content service for OpenAI to match Google AI (#122818)
* Aded Generate Content Service for OpenAI to match Google AI

* Fixed code for commit checks

* Addressed code review comments

* Address review comments

* Addressed @balloob review comments.

* Address futher review comments from @balloob
2025-03-14 22:54:49 -04:00
J. Nick Koston
5dc1a321dd Rework cover reproduce_state to consider supported features (#140558)
* Handle open/closed state in reproduce_state for tilt only covers

fixes #137144

* cleanups

* cleanups

* cleanups

* cleanups

* cleanups

* cleanups

* cleanups

* cleanups

* cleanups

* cleanups

* cleanups

* cleanups

* rework

* rework

* rework

* rework

* more coverage

* more coverage

* more coverage

* more coverage

* more coverage

* more coverage

* more coverage

* more coverage

* more coverage

* more coverage

* more coverage

* back compat

* back compat

* back compat

* cleanups

* cleanups

* cleanups

* cleanups

* comments

* comments
2025-03-14 22:14:09 -04:00
Denis Shulyaka
07e7672b78 Anthropic conversation extended thinking support (#139662)
* Anthropic conversation extended thinking support

* update conversation snapshots

* Add conversation test

* Update openai_conversation snapshots

* Removed metadata

* Removed metadata

* Removed thinking

* cosmetic fix

* combine user messages

* Apply suggestions from code review

* Add tests for chat_log messages conversion

* s/THINKING_BUDGET_TOKENS/THINKING_BUDGET/

* Apply suggestions from code review

* Update tests

* Update homeassistant/components/anthropic/strings.json

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

* apply suggestions from code review

---------

Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2025-03-14 22:07:59 -04:00
Luke Lashley
baafcf48dc Separate Roborock entities to a new dock device (#140612)
* Seperate entities to a new dock device

* update entity names

* Update homeassistant/components/roborock/coordinator.py

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2025-03-14 22:06:09 -04:00
Luke Lashley
ed2ef04b98 Bump Python-Snoo to 0.6.3 (#140628)
Bump python-Snoo to 0.6.3
2025-03-14 21:48:47 -04:00
J. Nick Koston
c54a2e7338 Bump nexia to 2.4.0 (#140634)
changelog: https://github.com/bdraco/nexia/compare/2.2.2...2.4.0
2025-03-14 15:27:51 -10:00
J. Nick Koston
fa836118b2 Bump bluetooth-data-tools to 1.26.1 (#140635)
changelog: https://github.com/Bluetooth-Devices/bluetooth-data-tools/compare/v1.26.0...v1.26.1
2025-03-14 15:24:55 -10:00
Jeff Terrace
11e15b1405 Move redundant attribute and key error handling to event parser caller (#140630) 2025-03-14 14:16:35 -10:00
puddly
537302ce56 ZBT-1 and Yellow firmware update entities for Zigbee/Thread (#138505)
* Initial implementation of hardware update model

* Fixes

* WIP: change the `homeassistant_sky_connect` integration type

* More fixes

* WIP

* Display firmware info in the device page

* Make progress more responsive

* WIP: Yellow

* Abstract the bootloader reset type

* Clean up comments

* Make the Yellow integration non-hardware

* Use the correct radio device for Yellow

* Avoid hardcoding strings

* Use `FIRMWARE_VERSION` within config flows

* Fix up unit tests

* Revert integration type changes

* Rewrite hardware ownership context manager name, for clarity

* Move manifest parsing logic into a new package

Pass the correct type to the firmware API library

* Create and delete entities instead of mutating the entity description

* Move entity replacement into a `async_setup_entry` callback

* Change update entity category from "diagnostic" to "config"

* Have the client library handle firmware fetching

* Switch from dispatcher to `async_on_state_change`

* Remove unnecessary type annotation on base update entity

* Simplify state recomputation

* Remove device registry code, since the devices will not be visible

* Further simplify state computation

* Give the device-less update entity a more descriptive name

* Limit state changes to integer increments when sending firmware update progress

* Re-raise `HomeAssistantError` if there is a problem during flashing

* Remove unnecessary state write during entity creation

* Rename `_maybe_recompute_state` to `_update_attributes`

* Bump the flasher to 0.0.30

* Add some tests

* Ensure the update entity has a sensible name

* Initial ZBT-1 unit tests

* Replace `_update_config_entry_after_install` with a more explicit `_firmware_info_callback` override

* Write the firmware version to the config entry as well

* Test the hardware update platform independently

* Add unit tests to the Yellow and ZBT-1 integrations

* Load firmware info from the config entry when creating the update entity

* Test entity state restoration

* Test the reloading of integrations marked as "owning"

* Test installation failure cases

* Test firmware type change callback failure case

* Address review comments
2025-03-15 00:28:02 +01:00
Mick Vleeshouwer
b07c28126a Bump pyOverkiz to 1.16.3 (#140621)
Bump Overkiz to 1.16.3
2025-03-15 00:42:10 +02:00
J. Diego Rodríguez Royo
59cab7cd58 Add 700 RPM option to washer spin speed options at Home Connect (#140607)
Add 700 RPM option to washer spin speed options
2025-03-14 19:35:13 +01:00
Maciej Bieniek
8964af428a Add missing translations for options attribute in AccuWeather integration (#140610)
Add missing translations for options attribute
2025-03-14 19:20:18 +01:00
Michel van de Wetering
160b98bd28 Fix media_player Toggle when in idle (#78192)
* Remove idle as off state

* Fix merge mistake

* Fix merge mistake

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2025-03-14 17:24:39 +01:00
Marc Mueller
2951eb5cc8 Fix len-test (PLC1802) (#140600) 2025-03-14 17:03:42 +01:00
Erik Montnemery
588366a514 Add setup function to improv_ble (#140594) 2025-03-14 16:55:42 +01:00
Manu
78a04776e4 Add update_daily action to Habitica integration (#140328)
* add update_daily action

* day strings
2025-03-14 16:49:56 +01:00
Paul Bottein
324f208d68 Add lawn mower support to Google Assistant (#140530)
* Add lawn mower support to google assistant

* Update snapshots

* Sort alphabetically

* Refactor service call

* Refactor service call

* Feedback
2025-03-14 15:22:23 +00:00
Hessel
e740e341c8 Change max ICP value to fixed value for Wallbox Integration (#140592)
change max ICP value to fixed value

Co-authored-by: Hessel van Es <hessel@datadragons.nl>
2025-03-14 16:13:07 +01:00
Joost Lekkerkerker
532c860bf0 Bump ruff to 0.11.0 (#140598) 2025-03-14 16:04:11 +01:00
Brett Adams
251bb30dc7 Add streaming media platform to Teslemetry (#140482)
* Update media player

* Add media player platform with tests and bump firmware
2025-03-14 15:27:18 +01:00
Petar Petrov
de0efd61d1 Add Z-Wave JS NVM backup and restore API (#139233)
* ZWaveJS: NVM backup and restore API

* remove unused const

* test fix

* switch to WS commands

* Backup & restore MVP

* Use base64 data directly

* update tests

* fix mistake

* Apply suggestions from code review

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

* PR comments

* update tests

* more tests

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-14 15:17:23 +01:00
J. Nick Koston
e9c8b3acfc Bump aioharmony to 0.5.2 (#140589)
mostly logging fixes (some format stings were missing values)

related issue #139126
2025-03-14 16:07:32 +02:00
Erik Montnemery
08fc6dcff6 Allow configuring ignored devices from improve_ble user flow (#140595) 2025-03-14 16:05:58 +02:00
Erik Montnemery
96a6d88dca Allow configuring ignored devices from dormakaba_dkey user flow (#140596) 2025-03-14 16:01:43 +02:00
Luke Lashley
1bd8ff884e Improve Snoo testing (#139302)
* improve snoo testing

* change to asyncMock method of testing

* Apply suggestions from code review

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

* address comments

* Apply suggestions from code review

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

* adress comments

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-03-14 14:58:55 +01:00
Jan Bouwhuis
a8f1df3e55 Add availability support for MQTT subentries (#138673)
* Add availability support for MQTT subentries

* Update homeassistant/components/mqtt/config_flow.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/config_flow.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/config_flow.py

Co-authored-by: Erik Montnemery <erik@montnemery.com>

* Update homeassistant/components/mqtt/strings.json

Co-authored-by: Erik Montnemery <erik@montnemery.com>

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2025-03-14 14:56:27 +01:00
Luke Lashley
7ff842fc37 Add dynamic update interval to Roborock (#140563)
* Add dynamic update interval to Roborock

* mr comments

* update time intervals

* Set A01 to 1 minute

* set interval to 30
2025-03-14 06:55:18 -07:00
Brett Adams
220bd5a27f Fix time to full charge in Teslemetry (#137996)
* Fix streaming full charge

* ruff
2025-03-14 14:48:17 +01:00
Brett Adams
4e759e59a4 Add streaming switches to Teslemetry (#137145)
* Add streaming switches

* Add switch tests

* Update snapshot

* Fix sentry

* update test docstring
2025-03-14 14:41:09 +01:00
Jan Bouwhuis
bd4d0ec4b8 Add initial MQTT subentry support for notify entities (#138461)
* Add initial MQTT subentry support for notify entities

* Fix componts assigment is reset on device config. Translation tweaks

* Rephrase

* Go to summary menu when components are set up already - add test

* Fix suggested device info on config flow

* Invert

* Simplify subentry config flow and omit menu

* Use constants instead of literals

* More constants

* Teak some translations

* Only show save when the the entry is dirty

* Do not trigger an entry reload twice

* Remove encoding, entity_category

* Remove icon from mqtt subentry flow

* Separate entity settings and MQTT specific settings

* Remove object_id and refactor

* Migrate translations

* Make subconfig flow test extensible

* Make sub reconfig flow tests extensible

* Rename entity_platform_config step to mqtt_platform_config

* Make component unique ID independent from the name

* Move code for update of component data to helper

* Follow up on code review

* Skip dirty stuff

* Fix rebase issues #1

* Do not allow reconfig for entity platform/name, default QoS and refactor tests

* Add entity platform and entity name label to basic entity config dialog

* Rename to exclude_from_reconfig and make reconfig option not optional
2025-03-14 14:00:07 +01:00
Joost Lekkerkerker
dcc63a6f2e Bump ruff to 0.10.0 (#140541)
* Bump ruff to 0.10.0

* Bump ruff to 0.10.0

* Bump ruff to 0.10.0

* Bump ruff to 0.10.0

* Update pyproject.toml

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>

* Fix

---------

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2025-03-14 12:32:50 +00:00
Franck Nijhof
4d1c89f0d1 2025.3.3 (#140583) 2025-03-14 12:55:51 +01:00
Petar Petrov
ae8709be21 Expose ZWaveJSsupports_long_range to the frontend (#140489)
* Expose ZWaveJS`supports_long_range` to the frontend

* update test
2025-03-14 12:19:49 +01:00
Maciej Bieniek
5ea7c113b0 Use test snapshots for Shelly climate (#140582) 2025-03-14 11:15:38 +01:00
Franck Nijhof
831f2dc30e Bump version to 2025.3.3 2025-03-14 09:56:13 +00:00
ashionky
1566ab3b28 Fix missing UnitOfPower.MILLIWATT in sensor and number allowed units (#140567)
* MILLIWATT

* MILLIWATT
2025-03-14 09:53:08 +00:00
Joost Lekkerkerker
c852e1398c Set unit of measurement for SmartThings oven setpoint (#140560) 2025-03-14 09:53:05 +00:00
Joost Lekkerkerker
761be9342e Fix windowShadeLevel capability in SmartThings (#140552) 2025-03-14 09:52:58 +00:00
Maciej Bieniek
54ad44a574 Fix Shelly diagnostics for devices without WebSocket Outbound support (#140501)
* Don't assume that `ws` is always in config

* Fix device
2025-03-14 09:49:52 +00:00
Matthias Alphart
fed4015bab Update xknxproject to 3.8.2 (#140499) 2025-03-14 09:49:49 +00:00
Brett Adams
019a0ebf9b Bump Tesla Fleet API to 0.9.13 (#140485) 2025-03-14 09:49:45 +00:00
Joost Lekkerkerker
7607b7d494 Mark value in number.set_value action as required (#140445) 2025-03-14 09:49:40 +00:00
Maikel Punie
8b96a9606d Bump velbusaio to 2025.3.1 (#140443) 2025-03-14 09:49:37 +00:00
Jan-Philipp Benecke
6349821037 Only do WebDAV path migration when path differs (#140402) 2025-03-14 09:49:33 +00:00
Louis Christ
db26a42734 Use only IPv4 for zeroconf in bluesound integration (#140226)
* Use only ipv4 for zeroconf

* Fix tests

* Use only ip_address for ip version check

* Add test

* Reduce test
2025-03-14 09:49:30 +00:00
Glenn Waters
74fe35f44e Bump upb-lib to 0.6.1 (#140212) 2025-03-14 09:49:26 +00:00
jb101010-2
e648716ddf Bump pysuezV2 to 2.0.4 (#139824) 2025-03-14 09:49:23 +00:00
Luke Lashley
2e20245cdf Fix bug with all Roborock maps being set to the wrong map when empty (#138493)
* Fix bug with all maps being set to the same when empty

* fix parens

* fix other parens

* rework some of the logic

* few small updates

* Remove test that is no longer relevant

* remove updated time bump
2025-03-14 09:49:19 +00:00
Norbert Rittel
8726be31ff Use correct unit symbol "min" for minutes in webmin integration (#140448)
* Use correct unit symbol "min" for minutes in `webmin` integration

Replace the unit symbol "m" which stands for meter with the correct SI uni symbol "min".

* Update test_sensor.ambr

* Update test_sensor.ambr (2)
2025-03-14 10:28:37 +01:00
Jan-Philipp Benecke
99b140f73f Remove WebDAV properties and rely on metadata file (#140539) 2025-03-14 10:21:16 +01:00
Louis Christ
d952e8186f Use only IPv4 for zeroconf in bluesound integration (#140226)
* Use only ipv4 for zeroconf

* Fix tests

* Use only ip_address for ip version check

* Add test

* Reduce test
2025-03-14 10:20:16 +01:00
ashionky
2b0a2e7644 Fix missing UnitOfPower.MILLIWATT in sensor and number allowed units (#140567)
* MILLIWATT

* MILLIWATT
2025-03-14 10:19:43 +01:00
Simone Chemelli
9820cbb036 Add exceptions translation for Comelit (#140404)
* Add exceptions translation for Comelit

* apply review comment

* Add climate tests for Comelit

* Revert "Add climate tests for Comelit"

This reverts commit 6d76d312a0.
2025-03-14 10:17:10 +01:00
Marc Mueller
f48d94ce34 Use TypeVar default for Generator (#140506) 2025-03-14 10:08:39 +01:00
Simone Chemelli
5daa3167ca Add parallel updates to Comelit (#140527) 2025-03-14 10:03:29 +01:00
J. Nick Koston
23f4f97603 Bump habluetooth to 3.27.0 (#140569)
changelog: https://github.com/Bluetooth-Devices/habluetooth/compare/v3.25.1...v3.27.0
2025-03-13 22:57:24 -10:00
J. Nick Koston
1e8f211725 Bump aioshelly to 13.3.0 (#140571)
changelog: https://github.com/home-assistant-libs/aioshelly/compare/13.2.0...13.3.0
2025-03-14 09:47:36 +01:00
Petro31
84667fd32d Migrate template light to new style (#140326)
* Migrate template light to new style

* add modern templates to tests

* fix comments
2025-03-14 09:00:46 +01:00
Norbert Rittel
e42a6c5d4f Fix missing RGBW field description reference in Lokalise - step 2 (#140576)
Reverts step 1, re-adding the field reference.
2025-03-14 09:51:49 +02:00
Simone Chemelli
6f926d0a66 Add missing typing to Vodafone Station (#140562) 2025-03-14 08:28:56 +01:00
J. Nick Koston
9f801e7785 Bump dbus-fast to 2.39.5 (#140565) 2025-03-13 14:49:37 -10:00
J. Nick Koston
f0b86c512d Bump habluetooth to 3.25.1 and bluetooth-auto-recovery to 1.4.5 (#140561)
habluetooth: https://github.com/Bluetooth-Devices/habluetooth/compare/v3.25.0...v3.25.1
bluetooth-auto-recovery: https://github.com/Bluetooth-Devices/bluetooth-auto-recovery/compare/v1.4.4...v1.4.5
2025-03-13 14:06:24 -10:00
Norbert Rittel
3383e8b70d Fix missing RGBW field description reference in Lokalise - step 1 (#140526)
Empties the string to trigger an export to Lokalise.
Will be followed up by a second PR to restore the reference.
2025-03-14 01:47:11 +02:00
Joost Lekkerkerker
058aed96d2 Fix windowShadeLevel capability in SmartThings (#140552) 2025-03-14 01:28:08 +02:00
Joost Lekkerkerker
b1285fcc4e Set unit of measurement for SmartThings oven setpoint (#140560) 2025-03-14 01:28:01 +02:00
Joakim Plate
d56680e05e Update to version 1.6.0 of gardena library (#140559) 2025-03-13 13:13:16 -10:00
Marc Mueller
5cf3bea8fe Fix unnecessary-dict-comprehension-for-iterable (C420) (#140555) 2025-03-13 23:32:00 +01:00
Marc Mueller
b48ab77a38 Fix call on root logger (LOG015) (#140556) 2025-03-13 23:02:26 +01:00
Paul Bottein
cdead8661d Add lawn mower support to HomeKit (#140438)
Add lawn mower support to homekit
2025-03-13 10:27:00 -10:00
J. Nick Koston
474d427b87 Bump bleak-esphome to 2.12.0 (#140543)
changelog: https://github.com/Bluetooth-Devices/bleak-esphome/compare/v2.11.0...v2.12.0
2025-03-13 21:01:41 +01:00
Shay Levy
87f726141a Fix ollama history trimming test (#140538) 2025-03-13 19:41:45 +00:00
Maciej Bieniek
fa57d57215 Fix Shelly diagnostics for devices without WebSocket Outbound support (#140501)
* Don't assume that `ws` is always in config

* Fix device
2025-03-13 20:58:09 +02:00
Dan Raper
8ea2d40467 Bump ohmepy to 1.4.1 (#140535) 2025-03-13 20:57:05 +02:00
Simone Chemelli
d5af542dd1 Add parallel updates to Vodafone Station (#140532) 2025-03-13 17:32:45 +00:00
Paulus Schoutsen
55895df54d Switch more TTS core to async generators (#140432)
* Switch more TTS core to async generators

* Document a design choice

* robust

* Add more tests

* Update comment

* Clarify and document TTSCache variables
2025-03-13 13:24:44 -04:00
Matthias Alphart
b07ac301b9 Update xknxproject to 3.8.2 (#140499) 2025-03-13 15:57:22 +00:00
Marc Mueller
473a5559cc Improve tado typing (#140505) 2025-03-13 15:48:04 +00:00
Norbert Rittel
c92ee120b6 Make actions in flo integration UI-friendly (#140522)
Makes actions in `flo` integration UI-friendly

- replace key name `sleep_minutes` with its friendly name to match the UI (in translations)
- replace "time" with "duration" to reduce the ambiguity
- use third-person singular for `run_health_test` description for consistency (in translations)
2025-03-13 16:39:12 +01:00
Simone Chemelli
3bba781554 Use runtime data in Vodafone Station (#140464)
* Use runtime data in Vodafone Station

* specialize config entry

* revert unwanted change
2025-03-13 15:53:01 +01:00
Norbert Rittel
bc6eb94c0d Fix sentence-casing and spelling of "ID" in system_bridge integration (#140516) 2025-03-13 16:36:12 +02:00
Norbert Rittel
5526585eeb Fix spelling of "ID" and excessive colon in bang_olufsen integration (#140518) 2025-03-13 16:35:40 +02:00
Paulus Schoutsen
f32bb1a318 Assist satellite to use TTS tokens for announcements (#140336)
* Migrate Assist Satellite to use token

* Fix tests

* Fix tests
2025-03-13 08:36:38 -05:00
Marc Mueller
e710d3699c Improve frontend typing (#140503) 2025-03-13 13:23:52 +01:00
Marc Mueller
26e3624610 Update pipdeptree to 2.25.1 (#140507) 2025-03-13 13:23:00 +01:00
Erik Montnemery
427aa55789 Correct fallback to state in state machine when processing statistics (#140396) 2025-03-13 09:28:15 +01:00
Pieter Viljoen
ffa6f42c0e Use runtime_data to store coordinator state (#140486)
Use runtime-data to save coordinator state
2025-03-13 08:52:42 +01:00
Brett Adams
f5412dd209 Bump Tesla Fleet API to 0.9.13 (#140485) 2025-03-13 08:23:26 +01:00
Allen Porter
6d58dd541e Update roborock quality scale for docs items (#140483) 2025-03-12 22:50:42 -04:00
Allen Porter
6a743310bb Change the local to-do list creation button to 'Create' (#140484) 2025-03-12 22:38:50 -04:00
J. Nick Koston
ab56a4ca69 Bump aioesphomeapi to 29.6.0 (#140481)
changelog: https://github.com/esphome/aioesphomeapi/compare/v29.5.1...v29.6.0
2025-03-12 22:15:28 -04:00
Jan-Philipp Benecke
db9a805ff0 Add rain state binary sensor to ecowitt (#140463) 2025-03-12 23:32:55 +00:00
J. Nick Koston
e78dc486f7 Bump SQLAlchemy to 2.0.39 (#140473)
* Bump SQLAlchemy to 2.0.39

changelog: https://docs.sqlalchemy.org/en/20/changelog/changelog_20.html#change-2.0.39

* fix typing
2025-03-12 13:09:41 -10:00
Pete Sage
1f6658fca0 Prevent ipv6 discovery messages for Sonos (#139648) 2025-03-12 15:19:09 -04:00
Joost Lekkerkerker
bad109dec5 Mark value in number.set_value action as required (#140445) 2025-03-12 19:07:41 +01:00
Simone Chemelli
892b78a1f9 Add exceptions translation for Vodafone Station (#140410) 2025-03-12 16:12:27 +00:00
Maikel Punie
70c355b52e Bump velbusaio to 2025.3.1 (#140443) 2025-03-12 16:30:01 +01:00
dontinelli
d3376f31d0 Bump fyta_cli to 0.7.1 (#140452) 2025-03-12 15:29:43 +01:00
J. Nick Koston
06019e7995 Split timeout in lutron_caseta to increase configure timeout (#138875) 2025-03-12 10:59:36 +00:00
Austin Mroczek
2f1ff5ab95 TotalConnect refactor tests (#140240)
* refactor button

* refactor test_options_flow
2025-03-12 09:52:28 +02:00
epenet
593ae48aa2 Migrate mqtt tests to use unit system (#140376)
* Migrate mqtt tests to use unit system

* Fix param list

* Missed one

---------

Co-authored-by: jbouwh <jan@jbsoft.nl>
2025-03-12 09:47:34 +02:00
Tobias Perschon
25cfd6ceda bump pydaikin to 2.14.1 (#140424)
Signed-off-by: Tobias Perschon <tobias@perschon.at>
2025-03-12 08:31:58 +02:00
Luke Lashley
7197b8ebff Set Roborock current map to config instead of select (#140429)
Set current map to config instead of select
2025-03-11 19:22:36 -07:00
Norbert Rittel
7b736908fa Fix typo in description of lifx.effect_morph action (#140416) 2025-03-12 01:15:25 +02:00
J. Nick Koston
e858e21a40 Add Bluetooth discovery support for InkBird ITH-11-B (#140423)
Add support for InkBird ITH-11-B
2025-03-11 22:57:16 +00:00
Tiddly Widdly
2f44e30013 Add lutron caseta model Caseta Shade SerenaEssentialsRollerShade (#139800)
* Update cover.py

Add support for new model roller shade SerenaEssentialsRollerShade, SYERX-B-X

* update requirements

	modified:   homeassistant/components/lutron_caseta/cover.py
	modified:   homeassistant/components/lutron_caseta/manifest.json
	modified:   requirements_all.txt
	modified:   requirements_test_all.txt

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2025-03-11 10:39:31 -10:00
Allen Porter
b88d662677 Add Roborock data_description for config flow and options flow (#140384)
* Add Roborock data_description for config flow and options flow

* Remove the drawables logging
2025-03-11 21:02:56 +01:00
Paulus Schoutsen
7aeefa1400 Only store strings in cloud TTS default options (#140332)
* Only store strings in cloud TTS default options

* more type check

* Don't stringify strenum
2025-03-11 15:28:13 -04:00
Norbert Rittel
6fb6f92985 Improve descriptions of lifx.effect_sky action (#140400)
* Improve descriptions of `lifx.effect_sky` action

The 'Sky Effect' action of the LIFX integration allows three types of sky types to choose from:
- "Clouds"
- "Sunrise"
- "Sunset"
This commit fixes the wrong naming of the "Clouds" effect as "Cloud" and adds details about it to the descriptions of the `cloud_saturation_min`and `cloud_saturation_max` fields (from the online docs).

In addition the inconsistent capitalization of their `name` strings is fixed, too.

* Improve action description as well
2025-03-11 20:23:41 +01:00
Luke Lashley
f50325fc7d Add dock dryer control to Roborock (#138495)
* Add a dock dryer select

* change import

* Change name to match app
2025-03-11 20:21:28 +01:00
Jan-Philipp Benecke
0b41d056d3 Only do WebDAV path migration when path differs (#140402) 2025-03-11 20:05:02 +01:00
Andrew Sayre
d8bcba9ef0 Enable HEOS automatic failover (#140394)
Failover
2025-03-11 13:00:43 -05:00
Franck Nijhof
d309239bcc Fix typo in Google Generative AI conversation: intead -> instead (#140398) 2025-03-11 10:18:34 -07:00
epenet
a13911e00e Rename test helpers module in mqtt (#140375)
* Rename test helpers module in mqtt

* missed a file
2025-03-11 18:00:51 +01:00
Paulus Schoutsen
0ba5711603 Add TTS token to TTS-END event (#140333) 2025-03-11 17:54:39 +01:00
Jan Bouwhuis
36cbd28d9d Add platinum quality scale to incomfort integration (#136387)
* Add platinum quality scale to incomfort integration

* Add platinum quality scale to incomfort integration

* Exempt actions attributes

* Comment on known limitations
2025-03-11 17:41:19 +01:00
Franck Nijhof
a12915fc14 2025.3.2 (#140392)
* Don't allow creating backups if Home Assistant is not running (#139499)

* Don't allow creating backups if hass is not running

* Revert "Don't allow creating backups if hass is not running"

This reverts commit 1bf545eb25.

* Set backup manager to idle only after Home Assistant has started

* Update according to discussion, add tests

* Add more test

* Bump govee_ble to 0.43.1 (#139862)

Bump govee_ble to 0.43.0

* Label emergency heat switch (#139872)

* Add label to emergency heat switch

* Use sentence case names

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Bump sense-energy lib to 0.13.7 (#140068)

* Update jinja to 3.1.6 (#140069)

* Update evohome-async to 1.0.3 (#140083)

bump client to 1.0.3

* Fix HEOS discovery error when previously ignored (#140091)

Abort ignored discovery

* Map prewash job state in SmartThings (#140097)

* Check support for thermostat operating state in SmartThings (#140103)

* Handle None options in SmartThings (#140110)

* Handle None options in SmartThings

* Handle None options in SmartThings

* Fix MQTT JSON light not reporting color temp status if color is not supported (#140113)

* Fix HEOS user initiated setup when discovery is waiting confirmation (#140119)

* Support null supported Thermostat modes in SmartThings (#140101)

* Set device class for Oven Completion time in SmartThings (#140139)

* Revert "Check if the unit of measurement is valid before creating the entity" (#140155)

Revert "Check if the unit of measurement is valid before creating the entity …"

This reverts commit 99e1a7a676.

* Fix the order of the group members attribute of the Music Assistant integration (#140204)

* Fix events without user in Bring integration (#140213)

Fix events without publicUserUuid

* Log broad exception in Electricity Maps config flow (#140219)

* Bump evohome-async to 1.0.4 to fix  #140194 (#140230)

bump client, add test for fix  #140194

* Refresh Home Connect token during config entry setup (#140233)

* Refresh token during config entry setup

* Test 500 error

---------

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

* Add 900 RPM option to washer spin speed options at Home Connect (#140234)

Add 900 RPM option to washer spin speed options

* Fix todo tool broken with Gemini 2.0 models. (#140246)

* Change tool name for addlist item

* Change to HasListAddItem

* extract to function

* Fix version not always available in onewire (#140260)

* Fix `client_id` not generated when connecting to the MQTT broker (#140264)

Fix client_id not generated when connecting to the MQTT broker

* Bump velbusaio to 2025.3.0 (#140267)

* Fix dryer operating state in SmartThings (#140277)

* FGLair : Upgrade to ayla-iot-unofficial 1.4.7 (#140296)

Upgrade to ayla-iot-unofficial 1.4.7

* Bump pyheos to v1.0.3 (#140310)

Bump pyheos v1.0.3

* Bump ZHA to 0.0.52 (#140325)

* Bump pydrawise to 2025.3.0 (#140330)

* Bump teslemetry-stream (#140335)

Bump

* Fix no temperature unit in SmartThings (#140363)

* Fix double space quoting in WebDAV (#140364)

* Bump python-roborock to 2.12.2 (#140368)

bump python roboorck to 2.12.2

* Handle incomplete power consumption reports in SmartThings (#140370)

* Fix browsing Audible Favorites in Sonos (#140378)

* initial commit

* updates

* update test data

* Make sure SmartThings light can deal with unknown states (#140190)

* Fix

* add comment

* Make light unknown

* Make light unknown

* Delete subscription on shutdown of SmartThings (#140135)

* Cache subscription url in SmartThings

* Cache subscription url in SmartThings

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Bump pysmartthings to 2.7.1

* 2.7.2

---------

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

* Bump version to 2025.3.2

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Evan Farrell <evan@evanfarrell.com>
Co-authored-by: John Hillery <34005807+jrhillery@users.noreply.github.com>
Co-authored-by: Keilin Bickar <TrumpetGod@gmail.com>
Co-authored-by: David Bonnes <zxdavb@bonnes.me>
Co-authored-by: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: msm595 <msm595@users.noreply.github.com>
Co-authored-by: Manu <4445816+tr4nt0r@users.noreply.github.com>
Co-authored-by: Jan-Philipp Benecke <jan-philipp@bnck.me>
Co-authored-by: J. Diego Rodríguez Royo <jdrr1998@hotmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Luke Lashley <conway220@gmail.com>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: Maikel Punie <maikel.punie@gmail.com>
Co-authored-by: Antoine Reversat <a.reversat@gmail.com>
Co-authored-by: puddly <32534428+puddly@users.noreply.github.com>
Co-authored-by: David Knowles <dknowles2@gmail.com>
Co-authored-by: Brett Adams <Bre77@users.noreply.github.com>
Co-authored-by: Pete Sage <76050312+PeteRager@users.noreply.github.com>
2025-03-11 17:36:00 +01:00
Norbert Rittel
7b7483b254 Fix wrong punctuation in hive integration (#140390) 2025-03-11 17:44:52 +02:00
Lincoln Kirchoff
95afebceb4 Add modbus climate hvac action (#139864)
* Added the hvac action attribute for modbus climate entities.

* Fixed issue in hvac action unit test, was incorrectly referencing the hvac mode attribute.

* Fixed the modbus climate test for hvac action, it now correctly checks that hvac actions in the config match HVACActions.

* Made changes recommended by @crug80 to remove dead code and to add ability to use input or holding register for hvac action.

* Moved action test case in test_climate.py

* Updated comment for `test_service_climate_action_update`

* Fixed ruff formatting error.

* Addressed request to update labels from `state_*` to `action_*`
2025-03-11 15:27:47 +00:00
Franck Nijhof
3d5e4b980f Bump version to 2025.3.2 2025-03-11 15:22:38 +00:00
Joost Lekkerkerker
f2f653efcf Delete subscription on shutdown of SmartThings (#140135)
* Cache subscription url in SmartThings

* Cache subscription url in SmartThings

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Bump pysmartthings to 2.7.1

* 2.7.2

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-11 15:21:27 +00:00
Joost Lekkerkerker
b5c7bdd98f Make sure SmartThings light can deal with unknown states (#140190)
* Fix

* add comment

* Make light unknown

* Make light unknown
2025-03-11 14:58:36 +00:00
Norbert Rittel
ad126a745a Fix sentence-casing in hive integration (#140382)
Use sentence-casing for all strings following the HA standard.
Capitalize "Internet" as a name.
2025-03-11 14:58:16 +00:00
Pete Sage
38e6133202 Fix browsing Audible Favorites in Sonos (#140378)
* initial commit

* updates

* update test data
2025-03-11 14:58:02 +00:00
Joost Lekkerkerker
8541dc5bde Handle incomplete power consumption reports in SmartThings (#140370) 2025-03-11 14:57:58 +00:00
Luke Lashley
5327996bad Bump python-roborock to 2.12.2 (#140368)
bump python roboorck to 2.12.2
2025-03-11 14:57:55 +00:00
Jan-Philipp Benecke
4ddc43a9d9 Fix double space quoting in WebDAV (#140364) 2025-03-11 14:57:51 +00:00
Joost Lekkerkerker
e6dea4179b Fix no temperature unit in SmartThings (#140363) 2025-03-11 14:57:47 +00:00
Brett Adams
0318b85517 Bump teslemetry-stream (#140335)
Bump
2025-03-11 14:57:43 +00:00
David Knowles
29987d443e Bump pydrawise to 2025.3.0 (#140330) 2025-03-11 14:57:27 +00:00
puddly
cbfd8707b9 Bump ZHA to 0.0.52 (#140325) 2025-03-11 14:57:18 +00:00
Andrew Sayre
5f158f5c87 Bump pyheos to v1.0.3 (#140310)
Bump pyheos v1.0.3
2025-03-11 14:57:14 +00:00
Antoine Reversat
d67ccd2fce FGLair : Upgrade to ayla-iot-unofficial 1.4.7 (#140296)
Upgrade to ayla-iot-unofficial 1.4.7
2025-03-11 14:57:10 +00:00
Joost Lekkerkerker
29c9d3804b Fix dryer operating state in SmartThings (#140277) 2025-03-11 14:57:07 +00:00
Maikel Punie
76d478c84f Bump velbusaio to 2025.3.0 (#140267) 2025-03-11 14:56:54 +00:00
Jan Bouwhuis
5d9d6f099c Fix client_id not generated when connecting to the MQTT broker (#140264)
Fix client_id not generated when connecting to the MQTT broker
2025-03-11 14:56:49 +00:00
epenet
e4b31640b3 Fix version not always available in onewire (#140260) 2025-03-11 14:56:43 +00:00
Luke Lashley
c43f6a67d0 Fix todo tool broken with Gemini 2.0 models. (#140246)
* Change tool name for addlist item

* Change to HasListAddItem

* extract to function
2025-03-11 14:55:51 +00:00
victorclaessen
490dd3b525 Add microseconds as unit for device class duration (#140307)
* Add microseconds as unit for device class duration. 

Add microseconds as unit for device class duration. The converter already supports it.

* Update const.py

Also update number component
2025-03-11 14:52:55 +00:00
J. Diego Rodríguez Royo
0bbab63193 Add 900 RPM option to washer spin speed options at Home Connect (#140234)
Add 900 RPM option to washer spin speed options
2025-03-11 14:52:37 +00:00
J. Diego Rodríguez Royo
06188b8fbd Refresh Home Connect token during config entry setup (#140233)
* Refresh token during config entry setup

* Test 500 error

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-11 14:52:33 +00:00
David Bonnes
bbbb5cadd4 Bump evohome-async to 1.0.4 to fix #140194 (#140230)
bump client, add test for fix  #140194
2025-03-11 14:52:29 +00:00
Jan-Philipp Benecke
52fcdda429 Log broad exception in Electricity Maps config flow (#140219) 2025-03-11 14:52:25 +00:00
Manu
7d93ceb0f0 Fix events without user in Bring integration (#140213)
Fix events without publicUserUuid
2025-03-11 14:52:22 +00:00
msm595
873e4b77eb Fix the order of the group members attribute of the Music Assistant integration (#140204) 2025-03-11 14:52:17 +00:00
Jan Bouwhuis
61f0eabcbb Revert "Check if the unit of measurement is valid before creating the entity" (#140155)
Revert "Check if the unit of measurement is valid before creating the entity …"

This reverts commit 99e1a7a676.
2025-03-11 14:50:10 +00:00
Joost Lekkerkerker
134b5319e1 Set device class for Oven Completion time in SmartThings (#140139) 2025-03-11 14:50:05 +00:00
Joost Lekkerkerker
ee78e21950 Support null supported Thermostat modes in SmartThings (#140101) 2025-03-11 14:47:50 +00:00
Andrew Sayre
323bc54efc Fix HEOS user initiated setup when discovery is waiting confirmation (#140119) 2025-03-11 14:46:18 +00:00
Jan Bouwhuis
fd2dee3c11 Fix MQTT JSON light not reporting color temp status if color is not supported (#140113) 2025-03-11 14:46:14 +00:00
Joost Lekkerkerker
fc53322c07 Handle None options in SmartThings (#140110)
* Handle None options in SmartThings

* Handle None options in SmartThings
2025-03-11 14:46:08 +00:00
Joost Lekkerkerker
faf9977abb Check support for thermostat operating state in SmartThings (#140103) 2025-03-11 14:46:03 +00:00
Joost Lekkerkerker
7336c8fc07 Map prewash job state in SmartThings (#140097) 2025-03-11 14:36:17 +00:00
Andrew Sayre
5cfaeda95b Fix HEOS discovery error when previously ignored (#140091)
Abort ignored discovery
2025-03-11 14:36:13 +00:00
David Bonnes
a78e9039c6 Update evohome-async to 1.0.3 (#140083)
bump client to 1.0.3
2025-03-11 14:36:10 +00:00
Franck Nijhof
227f3cea25 Update jinja to 3.1.6 (#140069) 2025-03-11 14:36:06 +00:00
Keilin Bickar
cab4890246 Bump sense-energy lib to 0.13.7 (#140068) 2025-03-11 14:36:03 +00:00
John Hillery
95fd096bdd Label emergency heat switch (#139872)
* Add label to emergency heat switch

* Use sentence case names

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2025-03-11 14:35:59 +00:00
Evan Farrell
91cf8cb547 Bump govee_ble to 0.43.1 (#139862)
Bump govee_ble to 0.43.0
2025-03-11 14:35:56 +00:00
Erik Montnemery
3ce4f3f918 Don't allow creating backups if Home Assistant is not running (#139499)
* Don't allow creating backups if hass is not running

* Revert "Don't allow creating backups if hass is not running"

This reverts commit 1bf545eb25.

* Set backup manager to idle only after Home Assistant has started

* Update according to discussion, add tests

* Add more test
2025-03-11 14:35:46 +00:00
Joost Lekkerkerker
71159c755f Delete subscription on shutdown of SmartThings (#140135)
* Cache subscription url in SmartThings

* Cache subscription url in SmartThings

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Bump pysmartthings to 2.7.1

* 2.7.2

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-11 15:33:32 +01:00
Luke Lashley
3c57b12cd1 Fix bug with all Roborock maps being set to the wrong map when empty (#138493)
* Fix bug with all maps being set to the same when empty

* fix parens

* fix other parens

* rework some of the logic

* few small updates

* Remove test that is no longer relevant

* remove updated time bump
2025-03-11 07:31:20 -07:00
Allen Porter
ca33d7263f Improve roborock map image (#140379) 2025-03-11 15:12:19 +01:00
Pete Sage
6c54f8dff2 Fix browsing Audible Favorites in Sonos (#140378)
* initial commit

* updates

* update test data
2025-03-11 14:56:41 +01:00
starkillerOG
7bdec5f19f Bump reolink-aio to 0.12.2 (#140369) 2025-03-11 14:54:02 +01:00
Luke Lashley
8edecd8671 Bump python-roborock to 2.12.2 (#140368)
bump python roboorck to 2.12.2
2025-03-11 14:47:30 +01:00
Joost Lekkerkerker
536109251e Make sure SmartThings light can deal with unknown states (#140190)
* Fix

* add comment

* Make light unknown

* Make light unknown
2025-03-11 14:47:13 +01:00
Artur Pragacz
d82c30364a Remove redundant after dependencies in person (#140354) 2025-03-11 14:12:30 +01:00
Norbert Rittel
ca5ce74740 Improve user-facing strings of hassio component (#140355)
- capitalize "Internet"
- remove excessive space character
- add "the" and trailing period in description of `homeassistant_exclude_database` field
- replace duplicate strings in `backup_partial` with references to `backup_full` action
2025-03-11 15:10:54 +02:00
epenet
1c242a6602 Migrate homekit tests to use unit system (#140372) 2025-03-11 15:10:20 +02:00
Joost Lekkerkerker
0e7a083847 Handle incomplete power consumption reports in SmartThings (#140370) 2025-03-11 14:10:06 +01:00
Artur Pragacz
13e9906929 Remove redundant after dependencies in search (#140353) 2025-03-11 14:09:58 +01:00
epenet
25d6974137 Migrate balboa tests to use unit system (#140371) 2025-03-11 15:09:50 +02:00
Jan-Philipp Benecke
d2124db3ec Fix double space quoting in WebDAV (#140364) 2025-03-11 14:06:44 +01:00
Joost Lekkerkerker
bc6d342919 Fix no temperature unit in SmartThings (#140363) 2025-03-11 14:03:15 +01:00
epenet
daaa1486fc Migrate lg_thinq tests to use unit system (#140365) 2025-03-11 14:54:21 +02:00
epenet
7826bb9323 Migrate google_assistant tests to use unit system (#140366) 2025-03-11 13:51:56 +01:00
epenet
289e94f270 Migrate gree tests to use unit system (#140358) 2025-03-11 14:38:44 +02:00
epenet
b160ce21fc Migrate google_assistant tests to use unit system (#140357) 2025-03-11 13:21:00 +01:00
Maciej Bieniek
98cf936ff5 Improve config flow for GIOS (#139935)
* Initial commit

* Use TYPE_CHECKING

* Update strings

* Remove default value

* Improve tests
2025-03-11 13:52:40 +02:00
Norbert Rittel
d3a96ba688 Use trademark "Time-of-Use Price Plan" in srp_energy integration (#140350) 2025-03-11 11:18:35 +01:00
Norbert Rittel
47a9f25ba6 Improve name and description of nexia.set_hvac_run_mode action (#140348)
- use proper capitalization of "HVAC" in action name
- better explain that you can set the run mode ("permanent_hold" / "run_schedule") and / or the operation mode ("auto" / "cool" / "heat") of the HVAC system
2025-03-11 11:14:22 +01:00
Norbert Rittel
3199b538ee Capitalize "HVAC" abbreviation in fritzbox integration (#140344)
* Capitalize "HVAC" abbreviation in `fritzbox` integration

* Update test_climate.py

* Update test_climate.py (2)
2025-03-11 11:12:22 +01:00
Artur Pragacz
4f25296c50 Improve dependencies resolution (#138502)
* Improve dependencies resolution

* Improve tests

* Better docstrings

* Fix comment

* Improve tests

* Improve logging

* Address feedback

* Address feedback

* Address feedback

* Address feedback

* Address feedback

* Simplify error handling

* small log change

* Add comment

* Address feedback

* shorter comments

* Add test
2025-03-11 10:12:23 +01:00
Tsvi Mostovicz
52408e67b2 Update hdate dependency to 1.0.3 (#137247)
* Update hdate version

* Update code to reflect changes from hdate==1.0.0

* Fix some tests

* Fix parasha tests

* Fix  holiday tests

* Cleanup holidays changes

* Zmanim objects should now access the local attribute

* Fix binary sensors

* Update test values on upcoming shabbat times

* Update hdate to 1.0.1

* Adapt to changes from 1.0.0 -> 1.0.1

* Change shabbat candle lighthing test scenario to 40 minutes as expected in Jerusalem

* Update to version 1.0.2

* Update keys based on updated nomenclature in library

* Update HolidayDatabase .get_all_names in test

* Make holiday type an ordered set

* Fix freeze_time

* Fix imports

* Fix tests and minor change

* Update hdate version 1.0.3, add migration method

* Fix migration code

* Add test for migration

* The change is not backwards compatible if config is not restored
2025-03-11 09:43:29 +01:00
J. Nick Koston
3b115506b9 Bump inkbird-ble to 0.9.0 (#140339)
changelog: https://github.com/Bluetooth-Devices/inkbird-ble/compare/v0.8.0...v0.9.0
2025-03-11 09:19:21 +01:00
Andrew Sayre
6e2148193a Bump pyheos to v1.0.3 (#140310)
Bump pyheos v1.0.3
2025-03-11 09:18:31 +01:00
David Knowles
e0f4da390a Bump pydrawise to 2025.3.0 (#140330) 2025-03-11 09:16:44 +01:00
J. Nick Koston
a45ce3083b Bump pylutron-caseta 0.24.0 (#140338)
changelog: https://github.com/gurumitts/pylutron-caseta/compare/v0.23.0...v0.24.0
2025-03-11 09:15:20 +01:00
Norbert Rittel
711f9ab900 Correct sentence-casing and spelling of "LED" in zha integration (#140342) 2025-03-11 09:12:29 +01:00
Andrew Jackson
cdff2e4648 Add strict typing of post to Mastodon (#140299)
* Type post API

* Update quality scale
2025-03-11 09:11:46 +01:00
puddly
6b601b9aad Bump ZHA to 0.0.52 (#140325) 2025-03-11 09:09:53 +01:00
Norbert Rittel
873cf6ac09 Fix sentence-casing and spelling of "LED" in baf integration (#140343) 2025-03-11 09:09:15 +01:00
Brett Adams
a65bf35a06 Bump teslemetry-stream (#140335)
Bump
2025-03-11 09:06:29 +01:00
Norbert Rittel
b6df07b2ed Improve user-facing strings of nordpool integration (#140286) 2025-03-11 06:14:22 +01:00
Artur Pragacz
2e79db3695 Fix hass stop in bootstrap (#132795) 2025-03-10 21:29:26 -04:00
Antoine Reversat
37213503b1 Do not add outside temperature sensor for FGLair if reading is None (#140298)
* Do not add outside temperature sensor if reading is None

* Fix comments
2025-03-10 22:16:44 +00:00
Norbert Rittel
bf50ee9b5e Capitalize abbreviations in lektrico integration (#140311)
* Capitalize abbreviations in `lektrico` integration

* Update test_number.ambr

* Update test_binary_sensor.ambr

* Update test_binary_sensor.ambr

* Update test_number.ambr
2025-03-10 22:12:47 +00:00
Glen Robertson
058c965b88 Set anthemav volume_step to 0.01 (#140130) 2025-03-10 22:25:38 +01:00
Luke Lashley
8fe45fb994 Fix todo tool broken with Gemini 2.0 models. (#140246)
* Change tool name for addlist item

* Change to HasListAddItem

* extract to function
2025-03-10 14:02:07 -07:00
Paulus Schoutsen
49a62d5294 Standardize conversation.async_process method (#140125) 2025-03-10 14:15:10 -05:00
Paulus Schoutsen
1665d9474f Enable TTS streaming implementations (#140176)
* Enable TTS streaming implementations

* Update comment

* Revert type change
2025-03-10 14:12:37 -05:00
Antoine Reversat
d498dbd5ac FGLair : Upgrade to ayla-iot-unofficial 1.4.7 (#140296)
Upgrade to ayla-iot-unofficial 1.4.7
2025-03-10 17:37:30 +01:00
Robert Resch
8807e326d1 Bump go2rtc to 1.9.9 (#140302) 2025-03-10 18:15:52 +02:00
Andrew Jackson
290116029b Add strict typing of account & instance to Mastodon (#139739)
Add strict typing of account & instance
2025-03-10 15:54:18 +01:00
Manu
ed20947e30 Fix events without user in Bring integration (#140213)
Fix events without publicUserUuid
2025-03-10 15:49:29 +01:00
Austin Mroczek
e4e476f83e TotalConnect add partition arming_state in diagnostic (#140140)
add partition arming_state
2025-03-10 15:18:13 +01:00
Brett Adams
8620309f9e Add streaming to Teslemetry update platform (#140021)
* Update platform

* Tests

* fix tests
2025-03-10 15:06:40 +01:00
J. Nick Koston
688d5bb4c9 Bump bluetooth-data-tools to 1.26.0 (#140262)
changelog: https://github.com/Bluetooth-Devices/bluetooth-data-tools/compare/v1.25.0...v1.26.0
2025-03-10 14:54:02 +01:00
Norbert Rittel
9edec57a82 Improve action descriptions in energyzero integration (#140283)
- use descriptive style to match HA standard
- fix sentence-casing of "Config entry"
2025-03-10 14:46:09 +01:00
Petar Petrov
00fc3f294b Bump zwave-js-server-python to 0.61.0 (#140282) 2025-03-10 14:45:48 +01:00
Norbert Rittel
f5c73027bb Improve description of schedule.get_schedule action (#140284)
Changes to descriptive style and adds a little more detail from the online docs.
2025-03-10 14:45:14 +01:00
Erik Montnemery
219b441be0 Don't allow creating backups if Home Assistant is not running (#139499)
* Don't allow creating backups if hass is not running

* Revert "Don't allow creating backups if hass is not running"

This reverts commit 1bf545eb25.

* Set backup manager to idle only after Home Assistant has started

* Update according to discussion, add tests

* Add more test
2025-03-10 14:40:08 +01:00
Joost Lekkerkerker
76e76a417c Fix dryer operating state in SmartThings (#140277) 2025-03-10 12:19:18 +01:00
Maikel Punie
994bf27024 Bump velbusaio to 2025.3.0 (#140267) 2025-03-10 11:45:37 +01:00
Jan Bouwhuis
6284a83a34 Fix client_id not generated when connecting to the MQTT broker (#140264)
Fix client_id not generated when connecting to the MQTT broker
2025-03-10 11:04:49 +01:00
epenet
25f15c1149 Use short-hand attributes in remote-rpi-gpio (#140263) 2025-03-10 10:46:54 +01:00
Maciej Bieniek
e831b1b230 Add support for BH1750 illuminance sensor in Nettigo Air Monitor integration (#140242)
* Add support for BH1750 illuminance sensor

* Update strings

* Update test snapshot
2025-03-10 10:38:44 +02:00
epenet
a3e981f148 Fix version not always available in onewire (#140260) 2025-03-10 09:16:05 +01:00
J. Nick Koston
0abe7514b9 Bump inkbird-ble to 0.8.0 (#140244)
Adds support for the ITH-21-B and ITH-13-B models
2025-03-10 10:15:41 +02:00
dependabot[bot]
40292a154d Bump github/codeql-action from 3.28.10 to 3.28.11 (#140254)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.10 to 3.28.11.
- [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.10...v3.28.11)

---
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-03-10 09:11:15 +01:00
Felipe Santos
8192f2ef2e Fix ONVIF camera entities ids getting shuffled on reload (#139676) 2025-03-09 17:17:55 -10:00
Maciej Bieniek
b3d640982d Bump nettigo_air_monitor to version 4.1.0 (#140241)
* Bump nam to 4.1.0

* Update test snapshot
2025-03-10 01:29:25 +02:00
David Bonnes
93982241a2 Bump evohome-async to 1.0.4 to fix #140194 (#140230)
bump client, add test for fix  #140194
2025-03-09 23:45:47 +02:00
J. Nick Koston
3c6b49b34f Bump aioesphomeapi to 29.5.1 (#140231)
changelog: https://github.com/esphome/aioesphomeapi/compare/v29.4.1...v29.5.1

Adds a `--verbose` flag to `aioesphomeapi-discover` to help
track down https://github.com/esphome/issues/issues/6311
2025-03-09 23:03:19 +02:00
J. Diego Rodríguez Royo
1766f87620 Refresh Home Connect token during config entry setup (#140233)
* Refresh token during config entry setup

* Test 500 error

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-03-09 21:59:09 +01:00
J. Diego Rodríguez Royo
717e5b95e6 Add 900 RPM option to washer spin speed options at Home Connect (#140234)
Add 900 RPM option to washer spin speed options
2025-03-09 21:40:15 +01:00
Keith
ff622af888 Add locking and unlocking feature to igloohome integration (#136002)
* - Added lock platform
- Added creation of IgloohomeLockEntity when bridge devices are included.

* - Migrated retrieval of linked_bridge utility to utils module.
- Added ability for lock to update it's own linked bridge automatically

* - Added mock bridge device to test fixture

* - Added snapshot test for lock module

* - Added bridge with no linked devices
- Added test for util.get_linked_bridge

* - Added handling of errors from API call

* - Bump igloohome-api to v0.1.0

* - Minor change

* - Removed async update for locks. Focus on MVP

* - Removed need for update on entity creation

* - Updated snapshot test

* - Updated snapshot

* - Updated to use walrus during lock entity creation
- Updated callback class for async_setup_entry based on lint suggestion

* - Set _attr_name as None
- Updated snapshot test

* Update homeassistant/components/igloohome/lock.py

* Update homeassistant/components/igloohome/lock.py

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-03-09 20:47:13 +01:00
Martin Hjelmare
8b4d9f96d4 Remove mysensors assumed state dead code (#140227) 2025-03-09 20:16:34 +01:00
Martin Hjelmare
f3a43e273a Fix mysensors climate target temps (#140220)
* Test hvac node only hvac

* Assert supported features in all climate tests

* Fix mysensors climate target temperatures
2025-03-09 20:11:13 +01:00
Glenn Waters
7eeb3df1c2 Bump upb-lib to 0.6.1 (#140212) 2025-03-09 21:03:03 +02:00
Jan-Philipp Benecke
7cbcdbe610 Log broad exception in Electricity Maps config flow (#140219) 2025-03-09 21:01:07 +02:00
Simone Chemelli
8a51644d1d Align CONF_ in Shelly integration (#140202)
* Allign CONST_ in Shelly integration

* apply review comment
2025-03-09 18:04:00 +01:00
msm595
befcd63221 Fix the order of the group members attribute of the Music Assistant integration (#140204) 2025-03-09 16:07:35 +01:00
Galorhallen
264d4a53a2 Update govee-local-api to 2.1.0 (#140201) 2025-03-09 15:23:44 +01:00
Maciej Bieniek
8a67e89e91 Improve category map for air quality and pollen sensors in AccuWeather (#140193)
* Fix typo

* Improve category map for air quality and pollen

* Update test snapshot
2025-03-09 16:18:26 +02:00
Franck Nijhof
e8069e1c07 Add template functions: md5, sha1, sha256, sha512 (#140192) 2025-03-09 16:15:27 +02:00
Jan Bouwhuis
1a46edffaa Deprecate use of invalid unit of measurement for mqtt sensor (#140164)
* Deprecate use of invalid unit of measurement for mqtt sensor

* Update learn more URL to point to user docs instead

* typo
2025-03-09 14:20:31 +01:00
Manu
e2d4e8b65d Add create_todo action to Habitica integration (#140090) 2025-03-09 13:47:15 +01:00
Marc Mueller
f1a6e949c0 Update mypy-dev to 1.16.0a5 (#140188) 2025-03-09 13:12:08 +01:00
Simone Chemelli
03aff0d662 Use CONF_* const in Shelly tests (#140189) 2025-03-09 13:07:20 +01:00
J. Nick Koston
d9d47f7203 Migrate shelly Bluetooth scanner to use correct MAC address (#140180) 2025-03-09 13:28:56 +02:00
Maciej Bieniek
4e7dd92a3d Add Ogemray virtual integration (#140185) 2025-03-09 13:27:02 +02:00
J. Nick Koston
60db355577 Bump aioshelly to 13.2.0 (#140178)
Adds support for getting the Bluetooth MAC

changelog: https://github.com/home-assistant-libs/aioshelly/compare/13.1.0...13.2.0
2025-03-09 01:13:09 -05:00
Artur Pragacz
aa2a1fc5ef Fix not available source in Onkyo (#140175) 2025-03-08 22:42:57 -05:00
Allen Porter
6675b497bd Improve LLM tool descriptions for brightness and volume percentage (#138685)
* Improve tool descriptions for brightness and volume percentage

* Address lint errors

* Update intent.py to revert of a light

* Create explicit types to make intent slots more future proof

* Remove comments about slot type

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-08 22:28:35 -05:00
Artur Pragacz
f0c5e00cc1 Fix conversation trigger with variables (#140066) 2025-03-08 22:23:24 -05:00
J. Nick Koston
ffcc0496f1 Bump aioesphomeapi to 29.4.1 (#140165)
changelog: https://github.com/esphome/aioesphomeapi/compare/v29.4.0...v29.4.1
2025-03-08 12:52:51 -10:00
Jan Bouwhuis
0d3011f0fb Revert "Check if the unit of measurement is valid before creating the entity" (#140155)
Revert "Check if the unit of measurement is valid before creating the entity …"

This reverts commit 99e1a7a676.
2025-03-08 23:04:05 +01:00
Franck Nijhof
9aa8a786a5 Add template function: flatten (#140157) 2025-03-08 11:14:27 -10:00
Matthias Alphart
62c025fd12 Use HAs configured timezone for KNX expose time (#140158)
* Use HAs configured timezone for KNX expose time

* use `hass.config.async_set_time_zone` in tests
2025-03-08 21:46:15 +01:00
Norbert Rittel
be67f320b5 Fix typos in homeassistant_hardware strings (#140154)
- "addon" -> "add-on"
- "internet" -> "Internet"
- "an Thread border router" -> "a …"
2025-03-08 22:23:44 +02:00
Norbert Rittel
b0b28bd98a Replace typo "an code" with "alarm code" in elkm1 integration (#140143)
The use of "alarm code" matches the online docs, too.
2025-03-08 22:23:27 +02:00
Norbert Rittel
40f92bac93 Fix typo "an comma" in doorbird integration (#140146) 2025-03-08 22:22:30 +02:00
Norbert Rittel
726bd5b012 Fix typo "an connection" in aftership integration (#140148) 2025-03-08 22:22:06 +02:00
Norbert Rittel
9bbf4fe8c1 Make spelling of "MELCloud" consistent, fix typo "an connection" (#140150) 2025-03-08 22:21:46 +02:00
Norbert Rittel
e0cff8de84 Fix typo "an problem" in nmbs integration (#140151) 2025-03-08 22:21:24 +02:00
Franck Nijhof
e54febdc1e Add template function: typeof (#140081) 2025-03-08 09:16:21 -10:00
Jan Bouwhuis
d94bdb7ecd Fix MQTT JSON light not reporting color temp status if color is not supported (#140113) 2025-03-08 09:15:56 -10:00
Maciej Bieniek
06fd6442b6 Use the set language for condition sensors in Accuweather integration (#140107)
* Use the set language for condition sensors

* Update strings

* Update test snapshots

* Add missing string
2025-03-08 21:03:25 +02:00
Joost Lekkerkerker
b910bc7802 Set device class for Oven Completion time in SmartThings (#140139) 2025-03-08 20:58:10 +02:00
John Hillery
2d22a60b8f Label emergency heat switch (#139872)
* Add label to emergency heat switch

* Use sentence case names

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2025-03-08 19:22:26 +01:00
Luke Lashley
6754bf2466 Send Roborock commands via cloud api when needed (#138496)
* Send via cloud api when needed

* Extract logic to helper function

* change to class method
2025-03-08 10:04:40 -08:00
Franck Nijhof
244b666dee Add Dependency Review action (#140108) 2025-03-08 14:59:29 +01:00
Joost Lekkerkerker
105d9d5970 Handle None options in SmartThings (#140110)
* Handle None options in SmartThings

* Handle None options in SmartThings
2025-03-08 14:59:10 +01:00
Andrew Sayre
81e6b93529 Fix HEOS user initiated setup when discovery is waiting confirmation (#140119) 2025-03-08 14:57:44 +01:00
Maciej Bieniek
7507a9c24e Bump accuweather to version 4.2.0 (#140106)
Bump accuweather to version 4.2.0
2025-03-08 12:50:32 +01:00
Franck Nijhof
1aed112c2c Update coverage to 7.6.12 (#140104) 2025-03-08 12:11:45 +01:00
Franck Nijhof
817597b07a Update ruff to 0.9.10 (#140105) 2025-03-08 12:10:56 +01:00
Franck Nijhof
2c68be3f7e Update pytest to 8.3.5 (#140102) 2025-03-08 12:02:41 +01:00
Joost Lekkerkerker
f209d75f2c Support null supported Thermostat modes in SmartThings (#140101) 2025-03-08 11:27:26 +01:00
Joost Lekkerkerker
ea33925afc Check support for thermostat operating state in SmartThings (#140103) 2025-03-08 11:22:09 +01:00
Joost Lekkerkerker
f399ffae72 Map prewash job state in SmartThings (#140097) 2025-03-08 10:57:25 +01:00
Matthias Alphart
3a2b446e33 Update pyfronius to 0.7.7 and adjust quality scale to platinum (#140084) 2025-03-08 06:48:09 +01:00
Andrew Sayre
deea19db51 Fix HEOS discovery error when previously ignored (#140091)
Abort ignored discovery
2025-03-07 23:31:32 -05:00
J. Nick Koston
e2c050ed40 Cache sensor precision calculation (#140019) 2025-03-07 16:14:22 -10:00
Greg Dowling
02e9002466 Set media type correctly in the roon integration- so the media card correctly displays the artist. (#139871)
Set media type correctly - so media card display works properly.
2025-03-07 20:59:04 -05:00
Franck Nijhof
d4f205c366 Add template function: shuffle (#140077) 2025-03-07 20:36:17 -05:00
David Bonnes
b7094c12f7 Update evohome-async to 1.0.3 (#140083)
bump client to 1.0.3
2025-03-08 00:17:29 +01:00
Petro31
293d455cba Add check for invalid options with specific platforms (#140082) 2025-03-08 00:09:04 +01:00
Simone Chemelli
99b5adaef1 Cleanup add_to_hass method in Shelly tests (part 1) (#140075) 2025-03-07 23:04:49 +01:00
Evan Farrell
aa556d8678 Bump govee_ble to 0.43.1 (#139862)
Bump govee_ble to 0.43.0
2025-03-07 11:15:22 -10:00
Franck Nijhof
9b14faa43d Update jinja to 3.1.6 (#140069) 2025-03-07 20:35:36 +01:00
Keilin Bickar
52838d8b84 Bump sense-energy lib to 0.13.7 (#140068) 2025-03-07 20:29:11 +01:00
Franck Nijhof
ccb0be9df4 Update debugpy to 1.8.13 (#140067) 2025-03-07 20:27:01 +01:00
Josef Zweck
3b03a37f3b Add file upload service to OneDrive (#139092)
* Add file upload service to OneDrive

* fix

* Add test

* docstring

* docstring

* Fix capitalization in description text.
2025-03-07 20:05:13 +01:00
Manu
3ccb7d80f3 Add update_todo action to Habitica (#139799)
* update_todo action

* fix strings
2025-03-07 19:40:17 +01:00
Franck Nijhof
4e89948b5c 2025.3.1 (#140061) 2025-03-07 18:54:39 +01:00
Norbert Rittel
fe34e6beee Improve user-facing strings of Bang & Olufsen integration (#140062)
- fix typo "Setup …" -> "Set up …"
- fix the wrong capitalization of "… all Connected …"
- change all action descriptions to match Home Assistant style
- reword descriptions of `beolink_expand` and `beolink_unexpand` action using different verbs to better explain them
2025-03-07 18:16:55 +01:00
Franck Nijhof
9f95383201 Bump version to 2025.3.1 2025-03-07 17:03:29 +00:00
Joost Lekkerkerker
7e452521c8 Restore SmartThings button event (#140044)
* Restore SmartThings button event

* Fix
2025-03-07 17:03:16 +00:00
Michael
991de6f1d0 Bump py-synologydsm-api to 2.7.1 (#140052)
bump py-synologydsm-api to 2.7.1
2025-03-07 16:49:07 +00:00
Joost Lekkerkerker
be32e3fe8f Only keep valid powerConsumptionReports in SmartThings (#140049)
* power consumption report

* Only keep valid powerConsumptionReports in SmartThings
2025-03-07 16:49:03 +00:00
Joost Lekkerkerker
d6eb61e9ec Bump pysmartthings to 2.7.0 (#140047) 2025-03-07 16:49:00 +00:00
Joost Lekkerkerker
e74fe69d65 Fix SmartThings thermostat climate check (#140046)
* Fix SmartThings thermostat climate check

* Add tests
2025-03-07 16:48:55 +00:00
Joost Lekkerkerker
208406123e Fix SmartThings disabling working capabilities (#140039) 2025-03-07 16:03:40 +00:00
David Bonnes
8bcd135f3d Fix evohome to gracefully handle null schedules (#140036)
* extend tests to catch null schedules

* add fixture with null schedule

* remove null schedules for now

* fic the typing for _schedule attr (is list, not dict)

* add valid schedule to fixture

* update ssetpoints only if there is a schedule

* snapshot to match last change

* refactor: dont update switchpoints if no schedule

* add in warnings for null schedules

* add fixture for DHW without schedule
2025-03-07 16:03:36 +00:00
hahn-th
e7ea0e435e Add description for HomematicIP HCU1 in homematicip_cloud setup config flow (#140025)
add description for hcu1
2025-03-07 16:03:33 +00:00
Brett Adams
b15b680cfe Fix shift state default in Teslemetry and Tessie (#140018)
* Fix again

* Fix Tessie

* Update snap
2025-03-07 16:03:29 +00:00
Brett Adams
5e26d98bdf Fix powerwall 0% in Tessie and Tesla Fleet (#140017)
Fix powerwall zero
2025-03-07 16:03:26 +00:00
Martin Hjelmare
9f94ee280a Bump aiohomeconnect to 0.16.3 (#140014) 2025-03-07 16:03:23 +00:00
J. Diego Rodríguez Royo
efa98539fa Check operation state on Home Connect program sensor update (#140011)
Check operation state on program sensor update
2025-03-07 16:03:19 +00:00
David Bonnes
113cd4bfcc Fix regression to evohome debug logging (#140000)
* fix regression in debug logging

* lint
2025-03-07 16:03:15 +00:00
Ivan Lopez Hernandez
ccbaf76e44 Correctly retrieve only loaded Google Generative AI config_entries (#139999)
* Correctly retrieve only loaded config_entries

* Ruff
2025-03-07 16:03:08 +00:00
Jan-Philipp Benecke
5d9d93d3a1 Bump aiowebdav2 to 0.4.1 (#139988) 2025-03-07 16:03:04 +00:00
J. Nick Koston
c2c5274aac Bump nexia to 2.2.2 (#139986)
changelog: https://github.com/bdraco/nexia/compare/2.2.1...2.2.2
2025-03-07 16:03:01 +00:00
Joost Lekkerkerker
89756394c9 Fix SmartThings dust sensor UoM (#139977) 2025-03-07 16:02:57 +00:00
Bram Kragten
352aa88e79 Update frontend to 20250306.0 (#139965) 2025-03-07 16:02:54 +00:00
Joost Lekkerkerker
714962bd7a Fix SmartThings fan (#139962) 2025-03-07 16:02:50 +00:00
Luke Lashley
fb4c50b5dc Bump to python-snoo 0.6.1 (#139954) 2025-03-07 16:02:47 +00:00
Jan-Philipp Benecke
b4794b2029 Set content length when uploading files to WebDAV (#139950) 2025-03-07 16:02:43 +00:00
Joost Lekkerkerker
3a8c8accfe Add config entry level diagnostics to SmartThings (#139939)
* Add config entry level diagnostics to SmartThings

* Add config entry level diagnostics to SmartThings

* Add config entry level diagnostics to SmartThings
2025-03-07 16:02:40 +00:00
Jan-Philipp Benecke
844adfc590 Bump aiowebdav2 to 0.4.0 (#139938) 2025-03-07 16:02:36 +00:00
Joost Lekkerkerker
a279e23fb5 Bump pysmartthings to 2.6.1 (#139936)
* Bump pysmartthings to 2.6.1

* Bump pysmartthings to 2.6.1
2025-03-07 15:58:00 +00:00
Jan Bouwhuis
af9bbd0585 Check if the unit of measurement is valid before creating the entity (#139932) 2025-03-07 15:50:55 +00:00
Joost Lekkerkerker
1304194f09 Deduplicate climate modes in SmartThings (#139930)
* Deduplicate climate modes in SmartThings

* Deduplicate climate modes in SmartThings
2025-03-07 15:50:51 +00:00
J. Nick Koston
e909417a3f Bump thermobeacon-ble to 0.8.1 (#139919)
changelog: https://github.com/Bluetooth-Devices/thermobeacon-ble/compare/v0.8.0...v0.8.1

fixes #139917
2025-03-07 15:50:48 +00:00
Ivan Lopez Hernandez
02706c116d Trim the Schema allowed keys to match the Public Gemini API docs. (#139876)
* Trim the Schema allowed types to match the Public API docs, not the SDK types as those do not match

* Testing
2025-03-07 15:50:43 +00:00
peteS-UK
3af6b5cb4c Fix Unit of Measurement for Squeezebox duration sensor entity on LMS service (#139861)
UOM Fix
2025-03-07 15:42:02 +00:00
Ishima
35c1bb1ec5 Check support for demand load control in SmartThings AC (#139616)
* Check support for demand load control in SmartThings AC

* Fix

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2025-03-07 15:41:52 +00:00
Joost Lekkerkerker
e51154ae69 Restore SmartThings button event (#140044)
* Restore SmartThings button event

* Fix
2025-03-07 15:46:00 +01:00
Michael
cd2ce5e11b Bump py-synologydsm-api to 2.7.1 (#140052)
bump py-synologydsm-api to 2.7.1
2025-03-07 15:44:58 +01:00
Martin Hjelmare
27964e16c1 Clean up ondilo ico oauth2 (#139927) 2025-03-07 15:26:40 +01:00
Norbert Rittel
edd2d4c349 Improve strings of swiss_public_transport.fetch_connections action (#139911)
Improve strings of `swiss_public.transport.fetch_connections` action

- use sentence-casing in action name
- capitalize the integration name in action description
- remove "from [1-15]" from `limit` description as this is handled by the UI
2025-03-07 15:25:37 +01:00
Joost Lekkerkerker
0aa09a2d51 Only keep valid powerConsumptionReports in SmartThings (#140049)
* power consumption report

* Only keep valid powerConsumptionReports in SmartThings
2025-03-07 15:04:46 +01:00
Joost Lekkerkerker
62e45e393d Fix SmartThings thermostat climate check (#140046)
* Fix SmartThings thermostat climate check

* Add tests
2025-03-07 14:56:31 +01:00
Joost Lekkerkerker
eadff2938f Bump pysmartthings to 2.7.0 (#140047) 2025-03-07 14:26:43 +01:00
peteS-UK
354cd90c92 Fix Unit of Measurement for Squeezebox duration sensor entity on LMS service (#139861)
UOM Fix
2025-03-07 13:53:24 +01:00
Norbert Rittel
11348959ca Make descriptions of keymitt_ble.calibrate action UI-friendly (#139866)
* Make descriptions of `keymitt_ble.calibrate` action UI-friendly

Update the action and field descriptions to better work within the graphical UI (selector / units shown) and for translations.

* Change to "press or release" to cover the 'Invert' mode
2025-03-07 13:39:48 +01:00
Brett Adams
935890e4e0 Fix shift state default in Teslemetry and Tessie (#140018)
* Fix again

* Fix Tessie

* Update snap
2025-03-07 13:28:21 +01:00
Abílio Costa
82d5304b45 Update whirlpool-sixth-sense to 0.19.1 (#139987) 2025-03-07 13:13:35 +01:00
hahn-th
2401d8900a Add description for HomematicIP HCU1 in homematicip_cloud setup config flow (#140025)
add description for hcu1
2025-03-07 13:11:45 +01:00
David Bonnes
c834944ee7 Fix evohome to gracefully handle null schedules (#140036)
* extend tests to catch null schedules

* add fixture with null schedule

* remove null schedules for now

* fic the typing for _schedule attr (is list, not dict)

* add valid schedule to fixture

* update ssetpoints only if there is a schedule

* snapshot to match last change

* refactor: dont update switchpoints if no schedule

* add in warnings for null schedules

* add fixture for DHW without schedule
2025-03-07 13:04:04 +01:00
J. Nick Koston
9a90e1e410 Bump ulid-transform to 1.4.0 (#140037)
changelog: https://github.com/Bluetooth-Devices/ulid-transform/compare/v1.3.0...v1.4.0
2025-03-07 13:01:31 +01:00
Joost Lekkerkerker
73ef240921 Fix SmartThings disabling working capabilities (#140039) 2025-03-07 12:55:32 +01:00
J. Nick Koston
2985f08054 Bump dbus-fast to 2.39.3 (#140015)
* Bump dbus-fast to 2.39.2

changelog: https://github.com/Bluetooth-Devices/dbus-fast/compare/v2.37.0...v2.39.2

* bump again for more fixes
2025-03-07 12:56:00 +02:00
Jan-Philipp Benecke
8780bc99eb Set content length when uploading files to WebDAV (#139950) 2025-03-07 10:44:17 +01:00
David Bonnes
452fbbe61c Fix regression to evohome debug logging (#140000)
* fix regression in debug logging

* lint
2025-03-07 09:12:21 +00:00
Brett Adams
6be8370eb3 Fix powerwall 0% in Tessie and Tesla Fleet (#140017)
Fix powerwall zero
2025-03-07 08:45:25 +01:00
Martin Hjelmare
9682d3b313 Bump aiohomeconnect to 0.16.3 (#140014) 2025-03-06 20:50:34 -10:00
Paulus Schoutsen
d47481a30e Track when an LLM expects to continue a conversation (#139810)
* Track when an LLM expects to continue a conversation

* Strip content

* Address comments
2025-03-06 22:52:29 -05:00
J. Diego Rodríguez Royo
3dd1fadc7d Check operation state on Home Connect program sensor update (#140011)
Check operation state on program sensor update
2025-03-07 01:50:06 +01:00
Jan-Philipp Benecke
fd1044dcba Bump aiowebdav2 to 0.4.1 (#139988) 2025-03-06 22:06:47 +00:00
Ivan Lopez Hernandez
2aa584ce39 Correctly retrieve only loaded Google Generative AI config_entries (#139999)
* Correctly retrieve only loaded config_entries

* Ruff
2025-03-06 13:17:33 -08:00
J. Nick Koston
e78139edf1 Bump nexia to 2.2.2 (#139986)
changelog: https://github.com/bdraco/nexia/compare/2.2.1...2.2.2
2025-03-06 10:10:07 -10:00
Allen Porter
eb49e596f9 Add a roborock quality_scale.yaml (#139849)
* Add a roborock quality_scale.yaml

* Update wording in polling

* Update event listening

* Update quality scale based on feedback
2025-03-06 19:00:40 +00:00
Markus Adrario
eaad8ec49d Add Homee select platform (#139534)
* homee select initial

* Finish select tests

* Add motor rotation

* fix snapshot after translation compilation

* string improvement

* last fixes

* fix review comments

* remove restore last known state

* readd wind monitoring state

* fix strings

* remove problematic selects

* remove motor rotation from strings

* fix review comments

* Update tests/components/homee/test_select.py

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

* add PARALLEL_UPDATES

* parallel updates for select, not light.

---------

Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2025-03-06 18:56:17 +00:00
Jan Bouwhuis
99e1a7a676 Check if the unit of measurement is valid before creating the entity (#139932) 2025-03-06 18:52:46 +01:00
Martin Hjelmare
4ff2309a90 Use mysensors config entry async_on_unload (#139978)
* Use config entry on unload in mysensors

* Test mysensors config entry load and unload

* Fix docstring
2025-03-06 18:50:47 +01:00
Joost Lekkerkerker
4bafdf5e4b Add config entry level diagnostics to SmartThings (#139939)
* Add config entry level diagnostics to SmartThings

* Add config entry level diagnostics to SmartThings

* Add config entry level diagnostics to SmartThings
2025-03-06 18:48:39 +01:00
Joost Lekkerkerker
f38a32477e Fix SmartThings fan (#139962) 2025-03-06 18:47:37 +01:00
Luke Lashley
59073d47a1 Bump to python-snoo 0.6.1 (#139954) 2025-03-06 18:44:13 +01:00
Regev Brody
df1563daaf Add Roborock buttons for starting routines (#139845) 2025-03-06 17:18:37 +00:00
Bram Kragten
93dfbb4166 Update frontend to 20250306.0 (#139965) 2025-03-06 17:52:45 +01:00
Joost Lekkerkerker
9549b1488e Fix SmartThings dust sensor UoM (#139977) 2025-03-06 17:52:05 +01:00
Erik Montnemery
6ba45a32c0 Update typing of BackupAgent.async_get_backup (#139923)
* Update typing of BackupAgent.async_get_backup

* Remove manual reset of frame helper
2025-03-06 17:25:34 +01:00
Artur Pragacz
88f18fdfdc Improve loader dependency tests (#139916) 2025-03-06 15:20:08 +01:00
epenet
377e0a64d1 Reset helpers.frame._REPORTED_INTEGRATIONS in between tests (#139924)
* Reset helpers.frame._REPORTED_INTEGRATIONS in between tests

* Rename

* Apply suggestions from code review

Co-authored-by: Erik Montnemery <erik@montnemery.com>

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2025-03-06 13:57:13 +01:00
epenet
1a4a3a0f08 Use runtime_data in forked_daapd (#138284)
* Use runtime_data in forked_daapd

* Adjust
2025-03-06 13:42:35 +01:00
Ishima
485da61d3c Check support for demand load control in SmartThings AC (#139616)
* Check support for demand load control in SmartThings AC

* Fix

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2025-03-06 13:42:23 +01:00
Jan-Philipp Benecke
5d7b60e4c8 Bump aiowebdav2 to 0.4.0 (#139938) 2025-03-06 13:30:02 +01:00
marc7s
5d8e03c124 Update geocachingapi to v0.3.0 (#139878)
Bump Geocaching API version

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-06 13:29:30 +01:00
Joost Lekkerkerker
edc763b7d2 Bump pysmartthings to 2.6.1 (#139936)
* Bump pysmartthings to 2.6.1

* Bump pysmartthings to 2.6.1
2025-03-06 13:22:49 +01:00
Erik Montnemery
c51e644203 Prioritize integration_domain passed to helper.frame.report_usage (#139819)
* Prioritize integration_domain passed to helper.frame.report_usage

* Update tests

* Update tests

* Improve docstring

* Rename according to suggestion
2025-03-06 13:16:50 +01:00
Franck Nijhof
dc4464a347 Merge branch 'master' into dev 2025-03-06 12:10:27 +00:00
Marc Mueller
47919fe7e9 Simplify lint-only config (2) [ci] (#139933) 2025-03-06 12:56:46 +01:00
Martin Hjelmare
6455daf092 Set Ondilo ICO diagnostic sensors (#139934) 2025-03-06 12:30:42 +01:00
Norbert Rittel
e06af94a1a Improve description of tibber.get_prices action (#139863)
Replace with the description from the online docs which add the information that a price level is included.

This also makes it consistent with the standard descriptive style in Home Assistant.
2025-03-06 12:22:36 +01:00
Joost Lekkerkerker
052eed6bb3 Deduplicate climate modes in SmartThings (#139930)
* Deduplicate climate modes in SmartThings

* Deduplicate climate modes in SmartThings
2025-03-06 12:20:53 +01:00
Markus Adrario
095b04caf9 Homee parallel updates (#139926)
* set parallel updates to 0

* add platforms
2025-03-06 12:20:22 +01:00
epenet
83dd1af6d2 Drop report method from frame helper (#139920)
* Drop report method from frame helper

* Adjust test_prevent_flooding

* Adjust test_report_missing_integration_frame

* Adjust test_report_error_if_integration

* Remove test_report
2025-03-06 11:25:22 +01:00
J. Nick Koston
8bfffcbd29 Bump thermobeacon-ble to 0.8.1 (#139919)
changelog: https://github.com/Bluetooth-Devices/thermobeacon-ble/compare/v0.8.0...v0.8.1

fixes #139917
2025-03-06 11:24:56 +01:00
Manu
f2b07ea886 Add support for IronOS v2.23 (#139903)
Add support for IronOS 2.23
2025-03-06 11:23:10 +01:00
Norbert Rittel
4f255439eb Fix sentence-casing in music_assistant.get_library action (#139901)
- make the casing of several words consistent
- make the action's description consistent with HA style using "Retrieves …" instead of "Get …"
2025-03-06 11:11:22 +01:00
Avi Miller
b44c26d324 Bump aiolifx to 1.1.4 to enable new LIFX product support (#139897)
Signed-off-by: Avi Miller <me@dje.li>
2025-03-06 11:10:49 +01:00
dependabot[bot]
46f4bc3434 Bump actions/attest-build-provenance from 2.2.2 to 2.2.3 (#139896)
Bumps [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) from 2.2.2 to 2.2.3.
- [Release notes](https://github.com/actions/attest-build-provenance/releases)
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md)
- [Commits](bd77c07785...c074443f1a)

---
updated-dependencies:
- dependency-name: actions/attest-build-provenance
  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-03-06 10:02:16 +01:00
J. Nick Koston
b280874dc0 Small cleanups for HomeKit (#139889)
* Small cleanups for HomeKit

- Add some missing typing
- Break out some duplicate code

* Small cleanups for HomeKit

- Add some missing typing
- Break out some duplicate code
2025-03-05 22:54:48 -10:00
Petro31
aec6868af1 Add abstract class to trigger based template entities (#139650)
* add abstract class to trigger based template entities

* updates after merge of parent PR

* add comments

* add tests
2025-03-06 08:00:11 +01:00
Manu
48865e00b6 Bump pynecil to v4.1.0 (#139881) 2025-03-06 07:42:09 +01:00
J. Nick Koston
a5002018e0 Bump dbus-fast to 2.37.0 (#139877) 2025-03-06 07:38:23 +01:00
Ivan Lopez Hernandez
8e35783164 Trim the Schema allowed keys to match the Public Gemini API docs. (#139876)
* Trim the Schema allowed types to match the Public API docs, not the SDK types as those do not match

* Testing
2025-03-05 18:34:11 -08:00
Norbert Rittel
f8e3f2a94f Improve descriptions in overseerr.get_requests action (#139781)
Make the action description consistent with HA style adding a bit more info from the online docs.

Fix spelling of "ID"
2025-03-05 23:00:12 +00:00
pglab-electronics
cc30823726 Reimplement PGLab sensor to use a coordinator (#139789)
* Reimplement PGLab sensor to use a coordinator

* fix spelling mistake on coordinator name

* rename createDiscoverDeviceInfo function in snake_case

* adding suffix pglab_ to PGLabBaseEntity/PGLabEntity constructor parameters

* Fix docs of PGLabEntity::async_added_to_hass

* make coordinator able to return the sensor native value

* renaming PGLABConfigEntry in PGLabConfigEntry to be consistent with the integration naming

* renamed entry function arguments to config_entry to be less confusing

* pass config_entry to constructor of base class of PGLabSensorsCoordinator

* set the return value type of get_sensor_value

* store coordinator as regular instance attribute

* Avoid to access directly entity from discovery module

* Rearrange get_sensor_value return types
2025-03-05 20:33:59 +01:00
Franck Nijhof
97cc3984c5 2025.3.0 (#139859)
* Add vesync debug mode in library (#134571)

* Debug mode pass through

* Correct code, shouldn't have been lambda

* listener for change

* ruff

* Update manifest.json

* Reflect correct logger title

* Ruff fix from merge

* Fix return value for DataUpdateCoordinator._async setup (#139181)

Fix return value for coodinator async setup

* Fix race in WS command recorder/info (#139177)

* Fix race in WS command recorder/info

* Add comment

* Remove unnecessary local import

* Bump aiohttp to 3.11.13 (#139197)

changelog: https://github.com/aio-libs/aiohttp/compare/v3.11.12...v3.11.13

* Update Linkplay constants for Arylic S10+ and Arylic Up2Stream Amp 2.1 (#138198)

* Add support for Apps and Radios to Squeezebox Media Browser (#135009)

* Add azure_storage as backup agent (#134085)

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

* Bump onedrive quality scale to platinum (#137451)

* Bump pyloadapi to v1.4.2 (#139140)

* Add missing translations to switchbot (#139212)

* Fix bug in check_translations fixture (#139206)

* Fix bug in check_translations fixture

* Fix check for ignored translation errors

* Fix websocket_api test

* Add missing exception translation to Home Connect (#139218)

Add missing exception translation

* Configure trusted publishing for PyPI file upload (#137607)

* Bump aiostreammagic to 2.11.0 (#139213)

* Add missing exception translation to Home Connect (#139223)

* Bump ohmepy to 1.3.2 (#139013)

* Fix kitchen_sink statistic issues (#139228)

* Bump aiowebdav2 to 0.3.0 (#139202)

* Bump pylamarzocco to 1.4.7 (#139231)

* Add backup helper (#139199)

* Add backup helper

* Add hassio to stage 1

* Apply same changes to newly merged `webdav` and `azure_storage` to fix inflight conflict

* Address comments, add tests

---------

Co-authored-by: J. Nick Koston <nick@koston.org>

* Reduce requests made by webdav (#139238)

* Reduce requests made by webdav

* Update homeassistant/components/webdav/backup.py

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

---------

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

* Add Homee valve platform (#139188)

* Fix units for LCN sensor (#138940)

* Add Ohme voltage and slot list sensor (#139203)

* Bump ohmepy to 1.3.1

* Bump ohmepy to 1.3.2

* Add voltage and slot list sensor

* CI fixes

* Change slot list sensor name

* Fix snapshot tests

* Initiate source list as instance variable in Volumio (#139243)

* `logbook.log` action: Make description of  `name` field UI-friendly (#139200)

* Treat "Twist Assist" & "Block to Block" as feature names and add descriptions in Z-Wave (#139239)

Treat "Twist Assist" & "Block to Block" as feature names and add descriptions

- name-case both "Twist Assist" and "Block to Block" so those feature names don't get translated
- for proper translation of both features add useful descriptions of what they actually do
- fix sentence-casing on "Operation type"

* Add climate's swing mode to LG ThinQ (#137619)

Co-authored-by: yunseon.park <yunseon.park@lge.com>

* Bump aiowithings to 3.1.6 (#139242)

* Add update reward action to Habitica integration (#139157)

* Add Re-Auth Flow to vesync (#137398)

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

* Rework the velbus configflow to make it more user-friendly (#135609)

* Add missing ATTR_HVAC_MODE of async_set_temperature to LG ThinQ (#137621)

Co-authored-by: yunseon.park <yunseon.park@lge.com>

* Make Radarr units translatable (#139250)

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

* Improve Minecraft Server config flow tests (#139251)

* Revert "Bump Stookwijzer to 1.5.7" (#139253)

* Add parallel updates to Home Connect (#139255)

* Bump fnv-hash-fast to 1.2.6 (#139246)

* Make default dim level configurable in Lutron (#137127)

* Set PARALLEL_UPDATES in all Minecraft Server platforms (#139259)

* Bump aiowebostv to 0.7.1 (#139244)

* Consistently capitalize "Velbus" brand name, camel-case "VelServ" (#139257)

* Bump cached-ipaddress to 0.9.2 (#139245)

* Make Sonarr component's units translatable (#139254)

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

* Bump stookwijzer to 1.5.8 (#139258)

* Bump Velbus to bronze quality scale (#139256)

* Add Homee number platform (#138962)

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

* Fix yolink lock v2 state update (#138710)

* Set Minecraft Server quality scale to silver (#139265)

* Add OpenWeatherMap Minute forecast action (#128799)

* Fix Ezviz entity state for cameras that are offline (#136003)

* Use proper camel-case for "VeSync", fix sentence-casing in title (#139252)

Just a quick follow-up PR to fix these two spelling mistakes.

* Add request made by `rest_command` to debug log (#139266)

* Create repair for configured unavailable backup agents (#137382)

* Create repair for configured not loaded agents

* Rework to repair issue

* Extract logic to config function

* Update test

* Handle empty agend ids config update

* Address review comment

* Update tests

* Address comment

* Improve description of `openweathermap.get_minute_forecast` action (#139267)

* Use right import in ezviz (#139272)

* Change touchline dependency to pytouchline_extended (#136362)

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

* Rename description field to notes in Habitica action (#139271)

* Add support for effects in Govee lights (#137846)

* Add Burbank Water and Power (BWP) virtual integration (#139027)

* Update adext to 0.4.4 (#139151)

* Add sound mode support to Onkyo (#133531)

* Use new python library for picnic component (#139111)

* Bump securetar to 2025.2.1 (#139273)

* Fix race in async_get_integrations with multiple calls when an integration is not found (#139270)

* Fix race in async_get_integrations with multiple calls when an integration is not found

* Fix race in async_get_integrations with multiple calls when an integration is not found

* Fix race in async_get_integrations with multiple calls when an integration is not found

* tweaks

* tweaks

* tweaks

* restore lost comment

* tweak test

* comment cache

* improve test

* improve comment

* Bump python-overseerr to 0.7.1 (#139263)

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Add coordinator to SMHI (#139052)

* Add coordinator to SMHI

* Remove not needed logging

* docstrings

* Make Radarr unit translation lowercase (#139261)

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

* Add common state translation string for charging and discharging (#139074)

add common state translation string for charging and discharging

* Add test fixture ignore_translations_for_mock_domains (#139235)

* Add test fixture ignore_translations_for_mock_domains

* Fix fixture

* Avoid unnecessary attempt to get integration

* Really fix fixture

* Add forgotten parameter

* Address review comment

* Fix grammar in loader comments (#139276)

https://github.com/home-assistant/core/pull/139270#discussion_r1970315129

* Bump aiohomeconnect to 0.15.0 (#139277)

* Add current cavity temperature sensor to Home Connect (#139282)

* Bump anthropic to 0.47.2 (#139283)

* Adjust recorder validate_statistics handler (#139229)

* Fix re-connect logic in Apple TV integration (#139289)

* Revert "Bump stookwijzer==1.5.8" (#139287)

* Add option to ESPHome to subscribe to logs (#139073)

* Remove not used constants in smhi (#139298)

* Bump `aioshelly` to version `13.0.0` (#139294)

* Bump aioshelly to version 13.0.0

* MODEL_BLU_GATEWAY_GEN3 -> MODEL_BLU_GATEWAY_G3

* Remove timeout from vscode test launch configuration (#139288)

* Add missing Home Connect context at event listener registration for appliance options (#139292)

* Add missing context at event listener registration for appliance options

* Add tests

* Sort common translation strings (#139300)

sort common strings

* Add album artist media browser category to Squeezebox (#139210)

* Bump aioesphomeapi to 29.2.0 (#139309)

* Bump actions/download-artifact from 4.1.8 to 4.1.9 (#139317)

Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.8 to 4.1.9.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4.1.8...v4.1.9)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  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>

* Bump home-assistant/builder from 2024.08.2 to 2025.02.0 (#139316)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Adjust remote ESPHome log subscription level on logging change (#139308)

* Fix homeassistant/expose_entity/list (#138872)

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>

* Bump `accuweather` to version `4.1.0` (#139320)

* Bump ZHA to 0.0.50 (#139318)

* Bump pytechnove to 2.0.0 (#139314)

* Update python-smarttub dependency to 0.0.39 (#139313)

* Fix anthropic blocking call (#139299)

* Bump pybotvac to 0.0.26 (#139330)

* Bump stookwijzer==1.6.0 (#139332)

* Improve error message when failing to create backups (#139262)

* Improve error message when failing to create backups

* Check for expected error message in tests

* Add translations and icon for Twinkly select entity (#139336)

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

* Bump recommended ESPHome Bluetooth proxy version to 2025.2.1 (#139196)

* Add default_db_url flag to WS command recorder/info (#139333)

* Improve action descriptions of LIFX integration (#139329)

Improve action description of lifx integration

- fix sentence-casing on two action names
- change "Kelvin" unit name to proper uppercase
- reference 'Theme' and 'Palette' fields by their friendly names for matching translations
- change paint_theme action description to match HA style

* Bump Music Assistant client to 1.1.1 (#139331)

* Refactor SmartThings (#137940)

* Add keys initiate_flow and entry_type to data entry translations (#138882)

* Add support for swing horizontal mode for mqtt climate (#139303)

* Add support for swing horizontal mode for mqtt climate

* Fix import

* Add entity translations to SmartThings (#139342)

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* fix

* fix

* Add AC tests

* Add thermostat tests

* Add cover tests

* Add device tests

* Add light tests

* Add rest of the tests

* Add oauth

* Add oauth tests

* Add oauth tests

* Add oauth tests

* Add oauth tests

* Bump version

* Add rest of the tests

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Iterate over entities instead

* use set

* use const

* uncomment

* fix handler

* Fix device info

* Fix device info

* Fix lib

* Fix lib

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Add fake fan

* Fix

* Add entity translations to SmartThings

* Fix

* Improve logging for selected options in Onkyo (#139279)

Different error for not selected option

* Change no fixtures comment in SmartThings (#139344)

* Set options for carbon monoxide detector sensor in SmartThings (#139346)

* Improve calculating supported features in template light (#139339)

* Update frontend to 20250226.0 (#139340)

Co-authored-by: Robert Resch <robert@resch.dev>

* Use particulate matter device class in SmartThings (#139351)

Use particule matter device class in SmartThings

* Set options for dishwasher job state sensor in SmartThings (#139349)

* Set options for dishwasher machine state sensor in SmartThings (#139347)

* Set options for dishwasher machine state sensor in SmartThings

* Fix

* Set options for alarm sensor in SmartThings (#139345)

* Set options for alarm sensor in SmartThings

* Set options for alarm sensor in SmartThings

* Fix

* Fix variable scopes in scripts (#138883)

Co-authored-by: Erik <erik@montnemery.com>

* Add translatable states to SmartThings media source input (#139353)

Add translatable states to media source input

* Add translatable states to SmartThings media playback (#139354)

Add translatable states to media playback

* Add translatable states to oven mode in SmartThings (#139356)

* Add translatable states to oven job state in SmartThings (#139361)

* Add translatable states to oven machine state (#139358)

* Add translatable states to robot cleaner movement in SmartThings (#139363)

* Add translatable states to robot cleaner cleaning mode in SmartThings (#139362)

* Add translatable states to robot cleaner cleaning mode in SmartThings

* Update homeassistant/components/smartthings/strings.json

* Update homeassistant/components/smartthings/strings.json

---------

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

* Add translatable states to washer machine state in SmartThings (#139366)

* Add translatable states to smoke detector in SmartThings (#139365)

* Add translatable states to robot cleaner turbo mode in SmartThings (#139364)

* Add translatable states to washer job state in SmartThings (#139368)

* Add translatable states to washer job state in SmartThings

* fix

* Update homeassistant/components/smartthings/sensor.py

* Improve Home Connect oven cavity temperature sensor (#139355)

* Improve oven cavity temperature translation

* Fetch cavity temperature unit

* Handle generic Home Connect error

* Improve test clarity

* Add translatable states to dryer machine state in Smartthings (#139369)

* Add translatable states to dryer job state in SmartThings (#139370)

* Add translatable states to washer job state in SmartThings

* Add translatable states to dryer job state in Smartthings

* fix

* fix

* Don't create entities for disabled capabilities in SmartThings (#139343)

* Don't create entities for disabled capabilities in SmartThings

* Fix

* fix

* fix

* Fix typo in SmartThing string (#139373)

* Bump version to 2025.3.0b0

* Bump stookwijzer==1.6.1 (#139380)

* Bump ZHA to 0.0.51 (#139383)

* Bump ZHA to 0.0.51

* Fix unit tests not accounting for primary entities

* Bump intents to 2025.2.26 (#139387)

* Fix fetch options error for Home connect (#139392)

* Handle errors when obtaining options definitions

* Don't fetch program options if the program key is unknown

* Test to ensure that available program endpoint is not called on unknown program

* Bump onedrive to 0.0.12 (#139410)

* Bump onedrive to 0.0.12

* Add alternative name

* Bump pysmartthings to 2.0.0 (#139418)

* Bump pysmartthings to 2.0.0

* Fix

* Fix

* Fix

* Fix

* Bump habluetooth to 3.24.1 (#139420)

* Fix conversation agent fallback (#139421)

* Add diagnostics to SmartThings (#139423)

* Bump bleak-esphome to 2.8.0 (#139426)

* Bump reolink-aio to 0.12.1 (#139427)

* Fix Music Assistant media player entity features (#139428)

* Fix Music Assistant supported media player features

* Update supported features when player config changes

* Add tests

* Update frontend to 20250227.0 (#139437)

* Bump version to 2025.3.0b1

* Bump weatherflow4py to 1.3.1 (#135529)

* version bump of dep

* update requirements

* Add new mediatypes to Music Assistant integration (#139338)

* Bump Music Assistant client to 1.1.0

* Add some casts to help mypy

* Add handling of the new media types in Music Assistant

* mypy cleanup

* lint

* update snapshot

* Adjust tests

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>

* Move climate intent to homeassistant integration (#139371)

* Move climate intent to homeassistant integration

* Move get temperature intent to intent integration

* Clean up old test

* Bump aiohomeconnect to 0.15.1 (#139445)

* Fix SmartThings diagnostics (#139447)

* Bump pysmartthings to 2.0.1 (#139454)

* Change webdav namespace to absolut URI (#139456)

* Change webdav namespace to absolut URI

* Add const file

* Improve onedrive migration (#139458)

* Bump pysmartthings to 2.1.0 (#139460)

* Only lowercase SmartThings media input source if we have it (#139468)

* Set SmartThings suggested display precision (#139470)

* Fix Gemini Schema validation for #139416 (#139478)

Fixed Schema validation for issue #139477

* Fail recorder.backup.async_pre_backup if Home Assistant is not running (#139491)

Fail recorder.backup.async_pre_backup if hass is not running

* Fix shift state in Teslemetry (#139505)

* Fix shift state

* Different fix

* Improve error handling in CoreBackupReaderWriter (#139508)

* Add diagnostics to onedrive (#139516)

* Add diagnostics to onedrive

* redact PII

* add raw data

* Make the Tuya backend library compatible with the newer paho mqtt client. (#139518)

* Make the Tuya backend library compatible with the newer paho mqtt client.

* Improve classnames and docstrings

* Suppress unsupported event 'EVT_USP_RpsPowerDeniedByPsuOverload' by bumping aiounifi to v83 (#139519)

Bump aiounifi to v83

* Don't split wheels builder anymore (#139522)

* Bump yt-dlp to 2025.02.19 (#139526)

* Update frontend to 20250228.0 (#139531)

* Bump version to 2025.3.0b2

* Add missing 'state_class' attribute for Growatt plant sensors (#132145)

* Add missing 'state_class' attribute for Growatt plant sensors

* Update total.py

* Update total.py 'TOTAL_INCREASING'

* Update total.py "maximum_output" -> 'TOTAL_INCREASING'

* Update homeassistant/components/growatt_server/sensor/total.py

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Bump env_canada to 0.8.0 (#138237)

* Bump env_canada to 0.8.0

* Fix requirements*.txt

* Grepped more

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>

* Fix Nederlandse Spoorwegen to ignore trains in the past (#138331)

* Update NS integration to show first next train instead of just the first.

* Handle no first or next trip.

* Remove debug statement.

* Remove seconds and revert back to minutes.

* Make use of dt_util.now().

* Fix issue with next train if no first train.

* Use multiple indexed group-by queries to get start time states for MySQL (#138786)

* tweaks

* mysql

* mysql

* Update homeassistant/components/recorder/history/modern.py

* Update homeassistant/components/recorder/history/modern.py

* Update homeassistant/components/recorder/const.py

* Update homeassistant/components/recorder/statistics.py

* Apply suggestions from code review

* mysql

* mysql

* cover

* make sure db is fully init on old schema

* fixes

* fixes

* coverage

* coverage

* coverage

* s/slow_dependant_subquery/slow_dependent_subquery/g

* reword

* comment that callers are responsible for staying under the limit

* comment that callers are responsible for staying under the limit

* switch to kwargs

* reduce branching complexity

* split stats query

* preen

* split tests

* split tests

* Specify recorder as after dependency in sql integration (#139037)

* Specify recorder as after dependency in sql integration

* Remove hassfest exception

---------

Co-authored-by: J. Nick Koston <nick@koston.org>

* Handle IPv6 URLs in devolo Home Network (#139191)

* Handle IPv6 URLs in devolo Home Network

* Use yarl

* Fix bug in derivative sensor when source sensor's state is constant (#139230)

Previously, when the source sensor's state remains constant, the derivative
sensor repeats its latest value indefinitely.

This patch fixes this bug by consuming the state_reported event and updating
the sensor's output even when the source sensor doesn't change its state.

* Ensure Hue bridge is added first to the device registry (#139438)

* Fix update data for multiple Gree devices (#139469)

fix sync date for multiple devices

do not use handler for explicit update devices as internal communication lib do not provide which device is updated
use ha update loop

copy data object to prevent rewrite data from internal lib

allow more time to process response before log warning about long wait for response and make log message more clear

* Use last event as color mode in SmartThings (#139473)

* Use last event as color mode in SmartThings

* Use last event as color mode in SmartThings

* Fix

* Set SmartThings delta energy to Total (#139474)

* Fix alert not respecting can_acknowledge setting (#139483)

* fix(alert): check can_ack prior to acking

* fix(alert): add test for when can_acknowledge=False

* fix(alert): warn on can_ack blocking an ack

* Raise error when trying to acknowledge alert with can_acknowledge set to False

* Rewrite can_ack check as guard

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Make can_ack service error msg human readable because it will show up in the UI

* format with ruff

* Make pytest aware of service error when acking an unackable alert

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Bump pysmartthings to 2.2.0 (#139539)

* Remove orphan devices on startup in SmartThings (#139541)

* Bump PySwitchBot to 0.56.1 (#139544)

changelog: https://github.com/sblibs/pySwitchbot/compare/0.56.0...0.56.1

* Bump pysmartthings to 2.3.0 (#139546)

* Improve SmartThings OCF device info (#139547)

* Add SmartThings Viper device info (#139548)

* Revert polling changes to HomeKit Controller (#139550)

This reverts #116200

We changed the polling logic to avoid polling if all chars are marked as watchable
to avoid crashing the firmware on a very limited set of devices as it was
more in line with what iOS does. In the end, the user ended up replacing
the device in #116143 because it turned out to be unreliable in other
ways. The vendor has since issued a firmware update that may resolve
the problem with all of these devices.

In practice it turns out many more devices
report that chars are evented and never send events. After a few months
of data and reports the trade-off does not seem worth it since
users are having to set up manual polling on a wide range of
devices. The amount of devices with evented chars that do not
actually send state vastly exceeds the number of devices that
might crash if they are polled too often so restore the previous
behavior

fixes #138561
fixes #100331
fixes #124529
fixes #123456
fixes #130763
fixes #124099
fixes #124916
fixes #135434
fixes #125273
fixes #124099
fixes #119617

* Bump pysmartthings to 2.4.0 (#139564)

* Bump Tesla Fleet API to v0.9.12 (#139565)

* bump

* Update manifest.json

* Fix versions

* remove tesla_bluetooth

* Remove mistake

* Bump aiowebdav2 to 0.3.1 (#139567)

* Validate scopes in SmartThings config flow (#139569)

* Only determine SmartThings swing modes if we support it (#139571)

Only determine swing modes if we support it

* Don't require not needed scopes in SmartThings (#139576)

* Don't require not needed scopes

* Don't require not needed scopes

* Homee: fix watchdog icon (#139577)

fix watchdog icon

* Bump aiohomekit to 3.2.8 (#139579)

changelog: https://github.com/Jc2k/aiohomekit/compare/3.2.7...3.2.8

* Fix duplicate unique id issue in Sensibo (#139582)

* Fix duplicate unique id issue in Sensibo

* Fixes

* Mods

* Improve field descriptions of `zha.permit` action (#139584)

Make the field descriptions of `source_ieee` and `install_code` UI-friendly by cross-referencing them using their friendly names to allow matching translations.

Better explain the alternative of using the `qr_code` field by adding that this contains both the IEEE address and the Install code of the joining device.

* Fix - Allow brightness only light MQTT json light to be set up using the `brightness` flag or via  `supported_color_modes` (#139585)

* Fix - Allow brightness only light MQTT json light to be set up using the `brightness` flag or via  `supported_color_modes`

* Improve comment

* Fix Manufacturer naming for Squeezelite model name for Squeezebox (#139586)

Squeezelite Manufacturer Fix

* Bump deebot-client to 12.3.1 (#139598)

* Fix handling of NaN float values for current humidity in ESPHome (#139600)

fixes #131837

* Bump aioshelly to 13.1.0 (#139601)

Co-authored-by: Franck Nijhof <git@frenck.dev>

* Bump inkbird-ble to 0.7.1 (#139603)

changelog: https://github.com/Bluetooth-Devices/inkbird-ble/compare/v0.7.0...v0.7.1

* Fix body text of imap message not available in custom event data template (#139609)

* Fix arm vacation mode showing as armed away in elkm1 (#139613)

Add native arm vacation mode support to elkm1

Vacation mode is currently implemented as a custom
service which will be deprecated in a future PR.

Note that the custom service was added long before
HA had a native vacation mode which was added
in #45980

* Still request scopes in SmartThings (#139626)

Still request scopes

* Bump pysmartthings to 2.4.1 (#139627)

* Bump version to 2025.3.0b3

* Fix unique identifiers where multiple IKEA Tradfri gateways are in use (#136060)

* Create unique identifiers where multiple gateways are in use

Resolving issue https://github.com/home-assistant/core/issues/134497

* Added migration function to __init__.py

Added migration function to execute upon initialisation, to:
a) remove the erroneously-added config)_entry added to the device (gateway B gets added as a config_entry to a device associated to gateway A), and
b) swap out the non-unique identifiers for genuinely unique identifiers.

* Added tests to simulate migration from bad data scenario (i.e. explicitly executing migrate_entity_unique_ids() from __init__.py)

* Ammendments suggested in first review

* Changes after second review

* Rewrite of test_migrate_config_entry_and_identifiers after feedback

* Converted migrate function into major version, updated tests

* Finalised variable naming convention per feedback, added test to validate config entry migrated to v2

* Hopefully final changes for cosmetic / comment stucture

* Further code-coverage in test_migrate_config_entry_and_identifiers()

* Minor test corrections

* Added test for non-tradfri identifiers

* Fix vicare exception for specific ventilation device type (#138343)

* fix for exception for specific ventilation device type + tests

* fix for exception for specific ventilation device type + tests

* New Testset just for fan

* update test_sensor.ambr

* Prevent zero interval in Calendar get_events service (#139378)

* Prevent zero interval in Calendar get_events service

* Fix holiday calendar tests

* Remove redundant entity_id

* Use translation for exception

* Replace check with voluptuous validator

* Revert strings.xml

* Fix Homee brightness sensors reporting in percent (#139409)

* fix brigtness sensor having percent as unit.

* add test for percent-brightness-sensor

* remove valve position and update tests

* Removed test, because covered by Snapshots

* fix review comments

* move device calss to init.

* fix test

* fix review comments

* add battery sensor back to test fixture

* fix

* Fix ability to remove orphan device in Music Assistant integration (#139431)

* Fix ability to remove orphan device in Music Assistant integration

* Add test

* Remove orphaned device entries at startup as well

* adjust mocked client

* Fix broken link in ESPHome BLE repair (#139639)

ESPHome always uses .0 in the URL for the changelog,
and we never had a patch version in the stable
BLE version field so we need to switch it to
.0 for the URL.

* Fix scope comparison in SmartThings (#139652)

* Avoid duplicate chat log content (#139679)

* Add additional roborock debug logging (#139680)

* Improve failure handling and logging for invalid map responses (#139681)

* Abort SmartThings flow if default_config is not enabled (#139700)

* Abort SmartThings flow if default_config is not enabled

* Abort SmartThings flow if default_config is not enabled

* Abort SmartThings flow if default_config is not enabled

* Bump ESPHome stable BLE version to 2025.2.2 (#139704)

ensure proxies have https://github.com/esphome/esphome/pull/8328
so they do not reboot themselves if disconnecting takes
too long

* Bump holidays to 0.68 (#139711)

* Bump aiowebostv to 0.7.2 (#139712)

* Bump sense-energy to 0.13.6 (#139714)

changes: https://github.com/scottbonline/sense/releases/tag/0.13.6

* Add nest translation string for `already_in_progress` (#139727)

* Bump google-nest-sdm to 7.1.4 (#139728)

* Delete refresh after a non-breaking error at event stream at Home Connect (#139740)

* Delete refresh after non-breaking error

And improve how many time does it take to retry to open stream

* Update tests

* Bump version to 2025.3.0b4

* Bump aiohomeconnect to 0.16.2 (#139750)

* Add Apollo Automation virtual integration (#139751)

Co-authored-by: Robert Resch <robert@resch.dev>

* Fix incorrect weather state returned by HKO (#139757)

* Fix incorrect weather state

* Clean up unused import

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>

* Bump pysmartthings to 2.5.0 (#139758)

* Bump pysmartthings to 2.5.0

* Bump pysmartthings to 2.5.0

* Fix home connect available (#139760)

* Fix home connect available

* Extend and clarify test

* Do not change connected state on stream interrupted

* Bump nexia to 2.1.1 (#139772)

changelog: https://github.com/bdraco/nexia/compare/2.0.9...2.1.1

fixes #133368

* Bump version to 2025.3.0b5

* Bump aiowebostv to 0.7.3 (#139788)

* Drop BETA postfix from Matter integration's title (#139816)

Drop BETA postfix from Matter title

Now that the whole Matter stack of Home Assistant is officially certified, we can drop the beta flag.

* Split the energy and data retrieval in WeHeat (#139211)

* Split the energy and data logs

* Make sure that pump_info name is set to device name, bump weheat

* Adding config entry

* Fixed circular import

* parallelisation of awaits

* Update homeassistant/components/weheat/binary_sensor.py

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

* Fix undefined weheatdata

---------

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

* Bump version to 2025.3.0b6

* Update frontend to 20250305.0 (#139829)

* Bump version to 2025.3.0b7

* Get temperature data appropriate for hass.config.unit in LG ThinQ (#137626)

* Get temperature data appropriate for hass.config.unit

* Modify temperature_unit for init

* Modify unit's map

* Fix ruff error

---------

Co-authored-by: yunseon.park <yunseon.park@lge.com>

* Bump nexia to 2.2.1 (#139786)

* Bump nexia to 2.2.0

changelog: https://github.com/bdraco/nexia/compare/2.1.1...2.2.0

* Apply suggestions from code review

* Revert "Add scene support to roborock (#137203)" (#139840)

This reverts commit 379bf10675.

* Bump aioecowitt to 2025.3.1 (#139841)

* Bump aioecowitt to 2025.3.1

* Bump aioecowitt to 2025.3.1

* Bump onedrive-personal-sdk to 0.0.13 (#139846)

* Bump intents to 2025.3.5 (#139851)

Co-authored-by: Franck Nijhof <git@frenck.dev>

* Bump version to 2025.3.0b8

* Bump version to 2025.3.0

* Fix no disabled capabilities in SmartThings (#139860)

Fix no disabled capabilities

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: cdnninja <jaydenaphillips@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Tristan <tristan.steele@gmail.com>
Co-authored-by: peteS-UK <64092177+peteS-UK@users.noreply.github.com>
Co-authored-by: Josef Zweck <josef@zweck.dev>
Co-authored-by: Manu <4445816+tr4nt0r@users.noreply.github.com>
Co-authored-by: J. Diego Rodríguez Royo <jdrr1998@hotmail.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: Noah Husby <32528627+noahhusby@users.noreply.github.com>
Co-authored-by: Dan Raper <me@danr.uk>
Co-authored-by: Jan-Philipp Benecke <jan-philipp@bnck.me>
Co-authored-by: Markus Adrario <Mozilla@adrario.de>
Co-authored-by: Andre Lengwenus <alengwenus@gmail.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Norbert Rittel <norbert@rittel.de>
Co-authored-by: LG-ThinQ-Integration <LG-ThinQ-Integration@lge.com>
Co-authored-by: yunseon.park <yunseon.park@lge.com>
Co-authored-by: Maikel Punie <maikel.punie@gmail.com>
Co-authored-by: Dan Bishop <d@nbishop.uk>
Co-authored-by: elmurato <1382097+elmurato@users.noreply.github.com>
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Cameron Ring <cameron@cs.stanford.edu>
Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: fwestenberg <47930023+fwestenberg@users.noreply.github.com>
Co-authored-by: Matrix <justin@yosmart.com>
Co-authored-by: Andrew <34544450+10100011@users.noreply.github.com>
Co-authored-by: Renier Moorcroft <66512715+RenierM26@users.noreply.github.com>
Co-authored-by: Peter Brøndum <34370407+brondum@users.noreply.github.com>
Co-authored-by: Galorhallen <12990764+Galorhallen@users.noreply.github.com>
Co-authored-by: tronikos <tronikos@users.noreply.github.com>
Co-authored-by: Paul Traina <pleasantone@users.noreply.github.com>
Co-authored-by: Artur Pragacz <49985303+arturpragacz@users.noreply.github.com>
Co-authored-by: Noah Groß <me@codesalat.dev>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
Co-authored-by: Denis Shulyaka <Shulyaka@gmail.com>
Co-authored-by: Pierre Ståhl <pierre.staahl@gmail.com>
Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
Co-authored-by: Christophe Gagnier <Moustachauve@users.noreply.github.com>
Co-authored-by: Matt Zimmerman <mdz@users.noreply.github.com>
Co-authored-by: Ben Bridts <ben.bridts@gmail.com>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
Co-authored-by: puddly <32534428+puddly@users.noreply.github.com>
Co-authored-by: Michael Hansen <mike@rhasspy.org>
Co-authored-by: starkillerOG <starkiller.og@gmail.com>
Co-authored-by: Jeef <jeeftor@users.noreply.github.com>
Co-authored-by: Ivan Lopez Hernandez <ivan.lh.94@outlook.com>
Co-authored-by: Brett Adams <Bre77@users.noreply.github.com>
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
Co-authored-by: LaithBudairi <69572447+LaithBudairi@users.noreply.github.com>
Co-authored-by: M-A <maruel@gmail.com>
Co-authored-by: Martreides <8385298+Martreides@users.noreply.github.com>
Co-authored-by: Guido Schmitz <Shutgun@users.noreply.github.com>
Co-authored-by: Juan Grande <juan.grande@gmail.com>
Co-authored-by: Filip Agh <filip11agh@gmail.com>
Co-authored-by: StaleLoafOfBread <45444205+StaleLoafOfBread@users.noreply.github.com>
Co-authored-by: cs12ag <70966712+cs12ag@users.noreply.github.com>
Co-authored-by: Niklas Neesen <n.neesen@me.com>
Co-authored-by: Allen Porter <allen@thebends.org>
Co-authored-by: Anthony Hou <anthony.tr.hou@gmail.com>
Co-authored-by: SteveDiks <126147459+SteveDiks@users.noreply.github.com>
2025-03-05 20:00:41 +01:00
Erik Montnemery
cc5c8bf5e3 Make helpers.frame.report_usage work when called from any thread (#139836)
* Make helpers.frame.report_usage work when called from any thread

* Address review comments, update tests

* Add test

* Update test

* Update recorder test

* Update tests
2025-03-05 19:37:34 +01:00
Erik Montnemery
cfaf18f942 Improve the mock_integration_frame test fixture (#139850)
* Improve the mock_integration_frame test fixture

* Update test
2025-03-05 18:42:34 +01:00
Joost Lekkerkerker
98e317dd55 Fix no disabled capabilities in SmartThings (#139860)
Fix no disabled capabilities
2025-03-05 17:42:31 +00:00
Joost Lekkerkerker
1f24e5aec4 Fix no disabled capabilities in SmartThings (#139860)
Fix no disabled capabilities
2025-03-05 18:41:21 +01:00
Franck Nijhof
ed088aa72f Bump version to 2025.3.0 2025-03-05 17:39:36 +00:00
Franck Nijhof
51162320cb Bump version to 2025.3.0b8 2025-03-05 17:25:33 +00:00
Michael Hansen
b88eab8ba3 Bump intents to 2025.3.5 (#139851)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-05 17:23:04 +00:00
Josef Zweck
6c080ee650 Bump onedrive-personal-sdk to 0.0.13 (#139846) 2025-03-05 17:22:17 +00:00
Joost Lekkerkerker
8056b0df2b Bump aioecowitt to 2025.3.1 (#139841)
* Bump aioecowitt to 2025.3.1

* Bump aioecowitt to 2025.3.1
2025-03-05 17:22:14 +00:00
Allen Porter
3f94b7a61c Revert "Add scene support to roborock (#137203)" (#139840)
This reverts commit 379bf10675.
2025-03-05 17:22:11 +00:00
J. Nick Koston
1484e46317 Bump nexia to 2.2.1 (#139786)
* Bump nexia to 2.2.0

changelog: https://github.com/bdraco/nexia/compare/2.1.1...2.2.0

* Apply suggestions from code review
2025-03-05 17:22:08 +00:00
LG-ThinQ-Integration
2812c8a993 Get temperature data appropriate for hass.config.unit in LG ThinQ (#137626)
* Get temperature data appropriate for hass.config.unit

* Modify temperature_unit for init

* Modify unit's map

* Fix ruff error

---------

Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-03-05 17:22:04 +00:00
Michael Hansen
cfe102f274 Bump intents to 2025.3.5 (#139851)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-05 18:20:48 +01:00
jb101010-2
b225a7f370 Bump pysuezV2 to 2.0.4 (#139824) 2025-03-05 17:12:34 +00:00
Erik Montnemery
0f3409bd09 Fix stale test name in vacuum (#139853) 2025-03-05 17:07:43 +01:00
Joost Lekkerkerker
e7d371cddc Bump aioecowitt to 2025.3.1 (#139841)
* Bump aioecowitt to 2025.3.1

* Bump aioecowitt to 2025.3.1
2025-03-05 17:04:41 +01:00
Josef Zweck
fffb414ba9 Bump onedrive-personal-sdk to 0.0.13 (#139846) 2025-03-05 16:19:15 +01:00
Erik Montnemery
1552aec416 Improve frame helper tests (#139843) 2025-03-05 16:13:09 +01:00
Maciej Bieniek
c69cec28fe Bump gios to version 6.0.0 (#139832)
* Fix the code

* Fix tests

* Bump version

* Use https for configuration URL
2025-03-05 15:04:56 +01:00
Simone Chemelli
61e0b938ae Convert Shelly block switches to EntityDescription (#106985) 2025-03-05 14:56:30 +01:00
Allen Porter
c0e5a549b6 Revert "Add scene support to roborock (#137203)" (#139840)
This reverts commit 379bf10675.
2025-03-05 14:36:20 +01:00
Robert Resch
f0bba1d6d4 Fix disable test results uploads properly (#139827)
* Fix disable test results uploads properly

* use dedicated variable

* fix pushes
2025-03-05 13:52:29 +01:00
tdfountain
1c1a950c05 Add conditional support for ambient sensors in NUT (#139675)
* Conditionally remove ambient sensors if not present

* Create ambient sensors list and use list comprehension

* Update homeassistant/components/nut/sensor.py

Co-authored-by: J. Nick Koston <nick@koston.org>

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2025-03-05 12:12:56 +00:00
LG-ThinQ-Integration
df2248bb82 Get temperature data appropriate for hass.config.unit in LG ThinQ (#137626)
* Get temperature data appropriate for hass.config.unit

* Modify temperature_unit for init

* Modify unit's map

* Fix ruff error

---------

Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-03-05 12:13:11 +01:00
Franck Nijhof
5043e2ad10 Bump version to 2025.3.0b7 2025-03-05 11:01:06 +00:00
Bram Kragten
2c2fd76270 Update frontend to 20250305.0 (#139829) 2025-03-05 11:00:56 +00:00
Bram Kragten
7fe75a959f Update frontend to 20250305.0 (#139829) 2025-03-05 11:54:58 +01:00
Dan Raper
5f88354cb3 Add vehicle select to Ohme (#139795)
* Add vehicle select to Ohme

* mypy fixes

* Update homeassistant/components/ohme/select.py

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

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-03-05 10:59:47 +01:00
Erik Montnemery
09561aeb39 Improve frame helper tests (#139821) 2025-03-05 10:43:29 +01:00
Franck Nijhof
7001f8daaf Bump version to 2025.3.0b6 2025-03-05 09:39:26 +00:00
SteveDiks
b41fc932c5 Split the energy and data retrieval in WeHeat (#139211)
* Split the energy and data logs

* Make sure that pump_info name is set to device name, bump weheat

* Adding config entry

* Fixed circular import

* parallelisation of awaits

* Update homeassistant/components/weheat/binary_sensor.py

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

* Fix undefined weheatdata

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-03-05 09:39:13 +00:00
SteveDiks
2a11c413c7 Split the energy and data retrieval in WeHeat (#139211)
* Split the energy and data logs

* Make sure that pump_info name is set to device name, bump weheat

* Adding config entry

* Fixed circular import

* parallelisation of awaits

* Update homeassistant/components/weheat/binary_sensor.py

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

* Fix undefined weheatdata

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-03-05 10:11:59 +01:00
Marcel van der Veldt
0872243297 Drop BETA postfix from Matter integration's title (#139816)
Drop BETA postfix from Matter title

Now that the whole Matter stack of Home Assistant is officially certified, we can drop the beta flag.
2025-03-05 08:44:44 +00:00
Shay Levy
bba889975a Bump aiowebostv to 0.7.3 (#139788) 2025-03-05 08:44:39 +00:00
Dan Raper
36412a034d Bump ohmepy to 1.4.0 (#139791) 2025-03-05 09:27:10 +01:00
Martin Hjelmare
13dfd27b7e Clean Home Connect error handling (#139817) 2025-03-05 09:07:45 +01:00
Marcel van der Veldt
1fb02944b7 Drop BETA postfix from Matter integration's title (#139816)
Drop BETA postfix from Matter title

Now that the whole Matter stack of Home Assistant is officially certified, we can drop the beta flag.
2025-03-05 09:04:55 +01:00
dependabot[bot]
1c045ab222 Bump actions/download-artifact from 4.1.8 to 4.1.9 (#139814)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.8 to 4.1.9.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4.1.8...v4.1.9)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  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-03-05 08:16:42 +01:00
dependabot[bot]
0d329bd83d Bump actions/upload-artifact from 4.6.0 to 4.6.1 (#139813)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.6.0...v4.6.1)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  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-03-05 07:49:18 +01:00
J. Nick Koston
d1995086cc Bump habluetooth to 3.25.0 (#139811)
changelog: https://github.com/Bluetooth-Devices/habluetooth/compare/v3.24.1...v3.25.0
2025-03-05 00:15:00 -05:00
J. Nick Koston
f0ad0e6eae Bump cached-ipaddress to 0.10.0 (#139807) 2025-03-04 17:51:46 -10:00
J. Nick Koston
457a7216ff Bump dbus-fast to 2.35.1 (#139809) 2025-03-04 17:51:31 -10:00
tdfountain
782f504522 Add common PDU sensors to NUT (#139669)
* Add common PDU sensors and alphabetize sensors list

* Back out code quality improvements

* Change voltage and current status to diagnostic and disabled by default
2025-03-04 17:26:43 -10:00
J. Nick Koston
e60a284354 Bump aioesphomeapi to 29.4.0 (#139806)
changelog: https://github.com/esphome/aioesphomeapi/compare/v29.3.2...v29.4.0
2025-03-04 17:25:43 -10:00
J. Nick Koston
d5d9bc1df6 Bump ulid-transform to 1.3.0 (#139808)
changelog: https://github.com/Bluetooth-Devices/ulid-transform/compare/v1.2.1...v1.3.0
2025-03-04 17:25:11 -10:00
J. Nick Koston
27fd0a88f4 Bump bleak-esphome to 2.11.0 (#139803)
changelog: https://github.com/Bluetooth-Devices/bleak-esphome/compare/v2.10.2...v2.11.0
2025-03-04 17:12:45 -10:00
J. Nick Koston
24188ffb31 Bump zeroconf to 0.146.0 (#139804)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.145.1...0.146.0
2025-03-04 17:10:07 -10:00
Petro31
e51d9bd6f4 Remove redundant is not None checks in Template integration (#139790)
Remove redundant is not None checks
2025-03-04 21:58:41 -05:00
J. Nick Koston
3eb7302fde Bump fnv-hash-fast to 1.4.0 (#139801)
changelog: https://github.com/Bluetooth-Devices/fnv-hash-fast/compare/v1.2.6...v1.4.0
2025-03-04 21:57:43 -05:00
J. Nick Koston
49b2f8fd7f Bump bluetooth-data-tools to 1.25.0 (#139802)
changelog: https://github.com/Bluetooth-Devices/bluetooth-data-tools/compare/v1.23.4...v1.25.0
2025-03-04 21:57:27 -05:00
Shay Levy
0143a71e97 Bump aiowebostv to 0.7.3 (#139788) 2025-03-04 16:45:23 -10:00
J. Nick Koston
9bc806ab21 Bump nexia to 2.2.1 (#139786)
* Bump nexia to 2.2.0

changelog: https://github.com/bdraco/nexia/compare/2.1.1...2.2.0

* Apply suggestions from code review
2025-03-05 01:57:03 +01:00
Simone Chemelli
366c5c3f10 Improve unique_id tests for Shelly block devices (#139778)
* Improve unique_id tests for Shelly block devices

* type test

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2025-03-04 14:03:38 -10:00
peteS-UK
3ee5262a8d Clean up squeezebox build_item_response part 2 (#139595) 2025-03-04 17:48:13 -06:00
Martin Hjelmare
c671862d3f Improve Home Connect appliances test fixture (#139787)
Improve Home Connect appliances fixture
2025-03-05 00:45:58 +01:00
Manu
50ba93042b Add create_habit action to Habitica integration (#139673) 2025-03-04 21:43:49 +00:00
Franck Nijhof
01e8ca6495 Bump version to 2025.3.0b5 2025-03-04 20:25:14 +00:00
J. Nick Koston
7d82375f81 Bump nexia to 2.1.1 (#139772)
changelog: https://github.com/bdraco/nexia/compare/2.0.9...2.1.1

fixes #133368
2025-03-04 20:24:56 +00:00
Martin Hjelmare
47033e587b Fix home connect available (#139760)
* Fix home connect available

* Extend and clarify test

* Do not change connected state on stream interrupted
2025-03-04 20:24:47 +00:00
Joost Lekkerkerker
e73b08b269 Bump pysmartthings to 2.5.0 (#139758)
* Bump pysmartthings to 2.5.0

* Bump pysmartthings to 2.5.0
2025-03-04 20:23:45 +00:00
Anthony Hou
a195a9107b Fix incorrect weather state returned by HKO (#139757)
* Fix incorrect weather state

* Clean up unused import

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-04 20:12:25 +00:00
Joost Lekkerkerker
185949cc18 Add Apollo Automation virtual integration (#139751)
Co-authored-by: Robert Resch <robert@resch.dev>
2025-03-04 20:12:22 +00:00
J. Diego Rodríguez Royo
c129f27c95 Bump aiohomeconnect to 0.16.2 (#139750) 2025-03-04 20:12:16 +00:00
Norbert Rittel
1456d9d800 Capitalize "Suez Water" and "ID" in user-facing strings (#139782) 2025-03-04 21:00:51 +01:00
Erik Montnemery
3b9bb96784 Align google_drive with changes in BackupAgent (#139767) 2025-03-04 11:45:10 -08:00
epenet
7359013db0 Move ForkedDaapdUpdater setup to __init__ module (#139733)
* Move ForkedDaapdUpdater setup to __init__ module

* Adjust tests

* One more
2025-03-04 20:24:36 +01:00
Erik Montnemery
be3d678f23 Align hassio with changes in BackupAgent (#139780) 2025-03-04 20:20:49 +01:00
Martin Hjelmare
e8099fd3b2 Fix home connect available (#139760)
* Fix home connect available

* Extend and clarify test

* Do not change connected state on stream interrupted
2025-03-04 19:26:20 +01:00
Erik Montnemery
344cfedd6f Align synology_dsm with changes in BackupAgent (#139770) 2025-03-04 19:22:18 +01:00
Robert Resch
c0d882e305 Upload test result artifacts always (#139776)
Upload test results artificats always
2025-03-04 19:19:38 +01:00
Erik Montnemery
e86fc88631 Minor improvement of hassio backup tests (#139775) 2025-03-04 18:20:55 +01:00
J. Nick Koston
e1127fc78c Bump nexia to 2.1.1 (#139772)
changelog: https://github.com/bdraco/nexia/compare/2.0.9...2.1.1

fixes #133368
2025-03-04 18:01:40 +01:00
Erik Montnemery
95fbba1d74 Align cloud with changes in BackupAgent (#139766) 2025-03-04 17:46:13 +01:00
Erik Montnemery
46ac44c248 Align webdav with changes in BackupAgent (#139771) 2025-03-04 17:44:26 +01:00
Erik Montnemery
0ebdb1c2a8 Align kitchen_sink with changes in BackupAgent (#139768) 2025-03-04 16:38:03 +01:00
Erik Montnemery
e3a90831bf Align onedrive with changes in BackupAgent (#139769) 2025-03-04 16:32:47 +01:00
Erik Montnemery
ec100e5a6c Align azure_storage with changes in BackupAgent (#139765) 2025-03-04 16:10:33 +01:00
Joost Lekkerkerker
0eb087ba3f Bump pysmartthings to 2.5.0 (#139758)
* Bump pysmartthings to 2.5.0

* Bump pysmartthings to 2.5.0
2025-03-04 15:59:38 +01:00
Erik Montnemery
e55757dc82 Simplify error handling in BackupAgent when a backup is not found (#139754)
Simplify error handling in BackupAgent when backup is not found
2025-03-04 15:56:12 +01:00
Paulus Schoutsen
c51a2317e1 Add timer support to VoIP (#139763) 2025-03-04 15:48:10 +01:00
Anthony Hou
7fb949dff7 Fix incorrect weather state returned by HKO (#139757)
* Fix incorrect weather state

* Clean up unused import

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-04 15:25:47 +01:00
J. Diego Rodríguez Royo
74ea553b63 Bump aiohomeconnect to 0.16.2 (#139750) 2025-03-04 15:17:05 +01:00
Joost Lekkerkerker
d9690507a4 Add Apollo Automation virtual integration (#139751)
Co-authored-by: Robert Resch <robert@resch.dev>
2025-03-04 15:08:14 +01:00
Marc Mueller
e69b4f389f Simplify lint-only job config [ci] (#139748) 2025-03-04 14:07:27 +01:00
Paulus Schoutsen
8a97c2bfca VoIP block non-TTS announcements (#139658)
* VoIP block non-TTS announcements

* Migrate VoIP to use pipeline token
2025-03-04 08:02:58 -05:00
Robert Resch
d5ba55d2fc Disable test results upload on forks (#139749)
Disable test result uploads on forks
2025-03-04 13:27:51 +01:00
J. Nick Koston
d38e046494 Bump bleak-esphome to 2.10.2 (#139731)
* Bump bleak-esphome to 2.10.0

changelog: https://github.com/Bluetooth-Devices/bleak-esphome/compare/v2.9.0...v2.10.0

* again for wheel fix

* disable name check since its a binary now
2025-03-04 11:49:44 +01:00
Franck Nijhof
6a5a66e2f9 Bump version to 2025.3.0b4 2025-03-04 10:46:11 +00:00
J. Diego Rodríguez Royo
db63d9fcbf Delete refresh after a non-breaking error at event stream at Home Connect (#139740)
* Delete refresh after non-breaking error

And improve how many time does it take to retry to open stream

* Update tests
2025-03-04 10:45:10 +00:00
Allen Porter
5b3d798eca Bump google-nest-sdm to 7.1.4 (#139728) 2025-03-04 10:45:06 +00:00
Allen Porter
a0dde2a7d6 Add nest translation string for already_in_progress (#139727) 2025-03-04 10:45:00 +00:00
J. Nick Koston
1bdc33d52d Bump sense-energy to 0.13.6 (#139714)
changes: https://github.com/scottbonline/sense/releases/tag/0.13.6
2025-03-04 10:44:57 +00:00
Shay Levy
f1d332da5a Bump aiowebostv to 0.7.2 (#139712) 2025-03-04 10:44:51 +00:00
G Johansson
304c13261a Bump holidays to 0.68 (#139711) 2025-03-04 10:44:48 +00:00
J. Nick Koston
c58cbfd6f4 Bump ESPHome stable BLE version to 2025.2.2 (#139704)
ensure proxies have https://github.com/esphome/esphome/pull/8328
so they do not reboot themselves if disconnecting takes
too long
2025-03-04 10:44:44 +00:00
Joost Lekkerkerker
b890d3e15a Abort SmartThings flow if default_config is not enabled (#139700)
* Abort SmartThings flow if default_config is not enabled

* Abort SmartThings flow if default_config is not enabled

* Abort SmartThings flow if default_config is not enabled
2025-03-04 10:44:41 +00:00
Allen Porter
2c9b8b6835 Improve failure handling and logging for invalid map responses (#139681) 2025-03-04 10:44:37 +00:00
Allen Porter
73cc1f51ca Add additional roborock debug logging (#139680) 2025-03-04 10:44:33 +00:00
Paulus Schoutsen
dca77e8232 Avoid duplicate chat log content (#139679) 2025-03-04 10:44:30 +00:00
Joost Lekkerkerker
03cb177e7c Fix scope comparison in SmartThings (#139652) 2025-03-04 10:44:26 +00:00
J. Nick Koston
ad04b53615 Fix broken link in ESPHome BLE repair (#139639)
ESPHome always uses .0 in the URL for the changelog,
and we never had a patch version in the stable
BLE version field so we need to switch it to
.0 for the URL.
2025-03-04 10:44:23 +00:00
Marcel van der Veldt
46bcb307f6 Fix ability to remove orphan device in Music Assistant integration (#139431)
* Fix ability to remove orphan device in Music Assistant integration

* Add test

* Remove orphaned device entries at startup as well

* adjust mocked client
2025-03-04 10:44:19 +00:00
Markus Adrario
b816625028 Fix Homee brightness sensors reporting in percent (#139409)
* fix brigtness sensor having percent as unit.

* add test for percent-brightness-sensor

* remove valve position and update tests

* Removed test, because covered by Snapshots

* fix review comments

* move device calss to init.

* fix test

* fix review comments

* add battery sensor back to test fixture

* fix
2025-03-04 10:44:15 +00:00
Abílio Costa
0940fc7806 Prevent zero interval in Calendar get_events service (#139378)
* Prevent zero interval in Calendar get_events service

* Fix holiday calendar tests

* Remove redundant entity_id

* Use translation for exception

* Replace check with voluptuous validator

* Revert strings.xml
2025-03-04 10:44:12 +00:00
Niklas Neesen
50aefc3653 Fix vicare exception for specific ventilation device type (#138343)
* fix for exception for specific ventilation device type + tests

* fix for exception for specific ventilation device type + tests

* New Testset just for fan

* update test_sensor.ambr
2025-03-04 10:44:09 +00:00
cs12ag
c0dc83cbc0 Fix unique identifiers where multiple IKEA Tradfri gateways are in use (#136060)
* Create unique identifiers where multiple gateways are in use

Resolving issue https://github.com/home-assistant/core/issues/134497

* Added migration function to __init__.py

Added migration function to execute upon initialisation, to:
a) remove the erroneously-added config)_entry added to the device (gateway B gets added as a config_entry to a device associated to gateway A), and
b) swap out the non-unique identifiers for genuinely unique identifiers.

* Added tests to simulate migration from bad data scenario (i.e. explicitly executing migrate_entity_unique_ids() from __init__.py)

* Ammendments suggested in first review

* Changes after second review

* Rewrite of test_migrate_config_entry_and_identifiers after feedback

* Converted migrate function into major version, updated tests

* Finalised variable naming convention per feedback, added test to validate config entry migrated to v2

* Hopefully final changes for cosmetic / comment stucture

* Further code-coverage in test_migrate_config_entry_and_identifiers()

* Minor test corrections

* Added test for non-tradfri identifiers
2025-03-04 10:44:01 +00:00
Robert Resch
50cec420ef Upload test results to codecov (#138512)
* Upload test results to codecov

* Upload tests results in single job
2025-03-04 11:43:41 +01:00
Markus Adrario
23dac3933f Fix Homee brightness sensors reporting in percent (#139409)
* fix brigtness sensor having percent as unit.

* add test for percent-brightness-sensor

* remove valve position and update tests

* Removed test, because covered by Snapshots

* fix review comments

* move device calss to init.

* fix test

* fix review comments

* add battery sensor back to test fixture

* fix
2025-03-04 11:40:36 +01:00
Erik Montnemery
32f59bfd25 Remove unused constant from recorder (#139741) 2025-03-04 11:39:35 +01:00
Erik Montnemery
4f36bbdfe6 Fix regression in template flag introduced by #139645 (#139742) 2025-03-04 11:33:27 +01:00
J. Diego Rodríguez Royo
973fee9fe1 Delete refresh after a non-breaking error at event stream at Home Connect (#139740)
* Delete refresh after non-breaking error

And improve how many time does it take to retry to open stream

* Update tests
2025-03-04 11:07:44 +01:00
Norbert Rittel
13001faf51 Improve strings in openai_conversation.generate_image action (#139736)
Use descriptive wording, fix sentence-casing.
2025-03-04 09:57:38 +01:00
Marcel van der Veldt
9f780a5308 Fix ability to remove orphan device in Music Assistant integration (#139431)
* Fix ability to remove orphan device in Music Assistant integration

* Add test

* Remove orphaned device entries at startup as well

* adjust mocked client
2025-03-04 09:56:42 +01:00
Abílio Costa
d87c963db5 Prevent zero interval in Calendar get_events service (#139378)
* Prevent zero interval in Calendar get_events service

* Fix holiday calendar tests

* Remove redundant entity_id

* Use translation for exception

* Replace check with voluptuous validator

* Revert strings.xml
2025-03-04 09:52:29 +01:00
Allen Porter
c6a9472fdb Add nest translation string for already_in_progress (#139727) 2025-03-04 09:46:56 +01:00
Allen Porter
cd0a983850 Bump google-nest-sdm to 7.1.4 (#139728) 2025-03-04 09:28:10 +01:00
Petro31
890d3f4af4 Add a base class for template entities to inherit from (#139645)
* add-abstract-template-entity-base-class

* review 1 changes
2025-03-04 07:23:05 +01:00
Joshua Leaper
a778092941 Support up to 8 AUX outputs in Ness Alarm (#139718)
Support up to 8 AUX outputs
2025-03-03 23:35:20 +00:00
J. Nick Koston
9ea582de26 Bump sense-energy to 0.13.6 (#139714)
changes: https://github.com/scottbonline/sense/releases/tag/0.13.6
2025-03-03 11:20:25 -10:00
Shay Levy
b6f2d8f30b Bump aiowebostv to 0.7.2 (#139712) 2025-03-03 10:26:16 -10:00
G Johansson
139072bb59 Bump holidays to 0.68 (#139711) 2025-03-03 21:47:38 +02:00
Paul Bottein
07a93dade2 Add translations for switch state by device class (#139693) 2025-03-03 20:24:36 +01:00
Allen Porter
9dc04cb088 Improve failure handling and logging for invalid map responses (#139681) 2025-03-03 20:23:29 +01:00
StaleLoafOfBread
890c672f8c Add charging binary_sensor so front end can render battery icon properly (#139684)
* Add charging binary sensor

* Add charging binary sensor test
2025-03-03 20:21:05 +01:00
Simone Chemelli
e28e4d210f Bump aiocomelit to 0.11.2 (#139707) 2025-03-03 20:19:09 +01:00
Joost Lekkerkerker
dcd2d42894 Abort SmartThings flow if default_config is not enabled (#139700)
* Abort SmartThings flow if default_config is not enabled

* Abort SmartThings flow if default_config is not enabled

* Abort SmartThings flow if default_config is not enabled
2025-03-03 20:07:07 +01:00
Allen Porter
e47e151259 Add additional roborock debug logging (#139680) 2025-03-03 21:02:45 +02:00
Andrew Jackson
2c44043e6a Bump mastodon.py to 2.0.1 (#139701)
* Bump mastodon to 2.0.1

* Fix mypy
2025-03-03 20:57:30 +02:00
Norbert Rittel
f248901ea8 Grammar fixes in user-facing strings of the LinkPlay integration (#139709)
Grammar fixes in user-facing string of the LinkPlay integration

Fix spelling of "set up", "media player", "ID" and improve the descriptions of the `play_preset` action.
2025-03-03 20:55:47 +02:00
Elias Wernicke
62b6be900f Add complete item intent function for todo component (#127806)
* add complete item intent

* fix error and add tests

* fix merge conflict

* improve error tests

* improve error tests

* add response_key

* add check for non completed

---------

Co-authored-by: Michael Hansen <mike@rhasspy.org>
2025-03-03 12:16:43 -06:00
J. Nick Koston
1b15df3075 Bump ESPHome stable BLE version to 2025.2.2 (#139704)
ensure proxies have https://github.com/esphome/esphome/pull/8328
so they do not reboot themselves if disconnecting takes
too long
2025-03-03 12:44:49 -05:00
Norbert Rittel
229407d685 Fix missing sentence-casing in three Fully Kiosk Browser strings (#139705)
Fix missing sentence-casing in Fully Kiosk Browser strings
2025-03-03 18:25:18 +01:00
Simone Chemelli
aaecb47125 Add strict typing to Comelit (#139455)
* Add quality scale and strict typing to Comelit

* mypy

* fix strings

* remove quality scale

* revert quality scale changes

* improve typing

* letfover

* update typing based on new lib

* align to platform

* cleanup

* apply review comments (part 1)

* apply review comment ( part 2)

* apply review comments

* align

* align test data

* TypedDict

* better casting
2025-03-03 17:57:42 +01:00
Joakim Sørensen
b17ee78dec Bump hass-nabucasa from 0.92.0 to 0.94.0 (#139697) 2025-03-03 15:51:04 +00:00
Erik Montnemery
20e48054cf Fix stale docstrings in onboarding tests (#139696) 2025-03-03 15:08:39 +00:00
cs12ag
ee486c269c Fix unique identifiers where multiple IKEA Tradfri gateways are in use (#136060)
* Create unique identifiers where multiple gateways are in use

Resolving issue https://github.com/home-assistant/core/issues/134497

* Added migration function to __init__.py

Added migration function to execute upon initialisation, to:
a) remove the erroneously-added config)_entry added to the device (gateway B gets added as a config_entry to a device associated to gateway A), and
b) swap out the non-unique identifiers for genuinely unique identifiers.

* Added tests to simulate migration from bad data scenario (i.e. explicitly executing migrate_entity_unique_ids() from __init__.py)

* Ammendments suggested in first review

* Changes after second review

* Rewrite of test_migrate_config_entry_and_identifiers after feedback

* Converted migrate function into major version, updated tests

* Finalised variable naming convention per feedback, added test to validate config entry migrated to v2

* Hopefully final changes for cosmetic / comment stucture

* Further code-coverage in test_migrate_config_entry_and_identifiers()

* Minor test corrections

* Added test for non-tradfri identifiers
2025-03-03 14:06:25 +01:00
Paulus Schoutsen
aee891434f Avoid duplicate chat log content (#139679) 2025-03-03 11:46:40 +01:00
Brett Adams
5472345f45 Add additional garage door code to Advantage Air (#139687)
add Garage door
2025-03-03 11:45:04 +01:00
Norbert Rittel
572534b306 Fix missing camel-case in one "ElevenLabs" string (#139686) 2025-03-03 10:18:30 +01:00
Erik Montnemery
3c363eb5ce Adjust type hints in update entity (#129387)
* Adjust type hints in update entity

* Update allowed return type of update_percentage

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-03 10:17:13 +01:00
andresb5555
7e4432e321 Do not force logfile to roll over when using TimedRotatingFileHandler (#128301)
Do not force log file to roll over when using TimedRotatingFileHandler
2025-03-02 22:07:35 +01:00
Elias Wernicke
5ae7109561 Increase test coverage for todo intent (#135960)
* move intent tests to file

* add tests for errors
2025-03-02 22:04:25 +01:00
hydazz
4602c0a1c3 Add Night mode and HVACAction to Advantage Air (#137475)
* add night mode toggle

* populate AC's action

* set hvac action on zones

* update tests

* show zones as off if AC is off

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-02 21:59:44 +01:00
Michel van de Wetering
53bc5ff029 Keep entered values in form when connecting to Epson projector fails (#135402)
Add suggested values to form
2025-03-02 21:41:38 +01:00
martin12as
c782a6ab63 Improve outlet constant naming for NUT (#139660)
* Update const.py

Fixed to match string.json

* Update const.py
2025-03-02 21:38:12 +01:00
Trevor Warwick
23644a60ac Improve Linkplay device unavailability detection (#138457)
* Dampen reachability changes

Retry a few times before declaring player is unavailable

* Fix ruff-format complaint

Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com>

* Fix ruff-format complaint

Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com>

* Fix ruff-format complaint

Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com>

* Fix duplicated change

Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com>

---------

Co-authored-by: Simon Lamon <32477463+silamon@users.noreply.github.com>
2025-03-02 21:26:54 +01:00
Joost Lekkerkerker
14e66ffef4 Fetch integration list from next branch for analytics insights (#137250)
Fetch integration list from next branch
2025-03-02 21:21:47 +01:00
karwosts
fa40d02a07 Add model_id filter to device selector (#135646)
* Add model_id filter to device selector

* Rerun CI
2025-03-02 21:15:37 +01:00
Niklas Neesen
8536f2b4cb Fix vicare exception for specific ventilation device type (#138343)
* fix for exception for specific ventilation device type + tests

* fix for exception for specific ventilation device type + tests

* New Testset just for fan

* update test_sensor.ambr
2025-03-02 20:57:13 +01:00
J. Nick Koston
387bf83ba8 Bump aioesphomeapi to 29.3.2 (#139653)
changelog: https://github.com/esphome/aioesphomeapi/compare/v29.3.1...v29.3.2
2025-03-02 20:53:45 +01:00
Norbert Rittel
18b0f54a3e Fix typo in outlet_2_load_off of NUT integration (#139656)
Fix typo in `outlet_2_load_off`

Fix small copy & paste error in https://github.com/home-assistant/core/pull/139044
2025-03-02 20:49:19 +01:00
Nathan Spencer
f76e295204 Add fault event to balboa (#138623)
* Add fault sensor to balboa

* Use an event instead of sensor for faults

* Don't set fault initially in conftest

* Use event type per fault message code

* Set fault to None in conftest
2025-03-02 20:24:27 +01:00
Norbert Rittel
e63b17cd58 Make spelling of "All-Link" consistent in Insteon integration (#139651)
"All-Link" is a fixed term in the Insteon integration that should be kept in translations. To clarify that this commit makes all occurrences in the Insteon integration consistent (plus fixing one typo).

On the other end the word "database" is sentence-cased as this can be translated, just as "record" etc.

Finally the description of the "Load All-Link database" action is made consistent using descriptive third-person singular as all other actions do.
2025-03-02 20:04:53 +01:00
martin12as
05e23f0fc7 Add nut commands to turn off/on outlet 1 & 2 (#139044)
* Update const.py

* Update strings.json

* Update homeassistant/components/nut/strings.json

Co-authored-by: tdfountain <174762217+tdfountain@users.noreply.github.com>

* Update homeassistant/components/nut/strings.json

Co-authored-by: tdfountain <174762217+tdfountain@users.noreply.github.com>

---------

Co-authored-by: tdfountain <174762217+tdfountain@users.noreply.github.com>
2025-03-02 20:00:05 +01:00
Joost Lekkerkerker
fca4ef3b1e Fix scope comparison in SmartThings (#139652) 2025-03-02 19:52:37 +01:00
mvn23
1226354823 Finish removing import from configuration.yaml support from opentherm_gw (#139643) 2025-03-02 17:37:48 +01:00
Simon Lamon
40099547ef Add typing/async to NMBS (#139002)
* Add typing/async to NMBS

* Fix tests

* Boolean fields

* Update homeassistant/components/nmbs/sensor.py

Co-authored-by: Jorim Tielemans <tielemans.jorim@gmail.com>

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: Jorim Tielemans <tielemans.jorim@gmail.com>
2025-03-02 17:36:37 +01:00
mvn23
de4540c68e Remove deprecated entity migration from opentherm_gw (#139641) 2025-03-02 17:28:11 +01:00
mvn23
d006d33dc0 Remove deprecated device migration from opentherm_gw (#139612) 2025-03-02 16:52:25 +01:00
J. Nick Koston
4c8a58f7cc Fix broken link in ESPHome BLE repair (#139639)
ESPHome always uses .0 in the URL for the changelog,
and we never had a patch version in the stable
BLE version field so we need to switch it to
.0 for the URL.
2025-03-02 16:50:35 +01:00
MarioZG
8d6178ffa6 Add last updated attribute to UK transport train sensor (#139352)
added last updated attribute to train sensor

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-02 16:48:57 +01:00
Manu
0a3562aca3 Add prefix path support to pyLoad integration (#139139)
* Add prefix path configuration support

* fix typo

* formatting

* uppercase

* changes

* redact host
2025-03-02 16:45:57 +01:00
Bram Kragten
8382663be4 Bump version to 2025.3.0b3 2025-03-02 16:15:38 +01:00
Joost Lekkerkerker
7e1309d874 Bump pysmartthings to 2.4.1 (#139627) 2025-03-02 16:15:16 +01:00
Joost Lekkerkerker
1d0cba1a43 Still request scopes in SmartThings (#139626)
Still request scopes
2025-03-02 16:15:15 +01:00
J. Nick Koston
7d9a6ceb6b Fix arm vacation mode showing as armed away in elkm1 (#139613)
Add native arm vacation mode support to elkm1

Vacation mode is currently implemented as a custom
service which will be deprecated in a future PR.

Note that the custom service was added long before
HA had a native vacation mode which was added
in #45980
2025-03-02 16:15:14 +01:00
Jan Bouwhuis
6abdb28a03 Fix body text of imap message not available in custom event data template (#139609) 2025-03-02 16:15:13 +01:00
J. Nick Koston
3690e03951 Bump inkbird-ble to 0.7.1 (#139603)
changelog: https://github.com/Bluetooth-Devices/inkbird-ble/compare/v0.7.0...v0.7.1
2025-03-02 16:15:13 +01:00
Shay Levy
4fe4d14f16 Bump aioshelly to 13.1.0 (#139601)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-02 16:15:12 +01:00
J. Nick Koston
74e8ffa555 Fix handling of NaN float values for current humidity in ESPHome (#139600)
fixes #131837
2025-03-02 16:15:11 +01:00
Robert Resch
c257b228f1 Bump deebot-client to 12.3.1 (#139598) 2025-03-02 16:15:10 +01:00
peteS-UK
6ff0f67d03 Fix Manufacturer naming for Squeezelite model name for Squeezebox (#139586)
Squeezelite Manufacturer Fix
2025-03-02 16:15:10 +01:00
Jan Bouwhuis
8fdff9ca37 Fix - Allow brightness only light MQTT json light to be set up using the brightness flag or via supported_color_modes (#139585)
* Fix - Allow brightness only light MQTT json light to be set up using the `brightness` flag or via  `supported_color_modes`

* Improve comment
2025-03-02 16:15:09 +01:00
Norbert Rittel
9055dff9bd Improve field descriptions of zha.permit action (#139584)
Make the field descriptions of `source_ieee` and `install_code` UI-friendly by cross-referencing them using their friendly names to allow matching translations.

Better explain the alternative of using the `qr_code` field by adding that this contains both the IEEE address and the Install code of the joining device.
2025-03-02 16:15:08 +01:00
G Johansson
e766d681b5 Fix duplicate unique id issue in Sensibo (#139582)
* Fix duplicate unique id issue in Sensibo

* Fixes

* Mods
2025-03-02 16:15:07 +01:00
J. Nick Koston
511e57d0b3 Bump aiohomekit to 3.2.8 (#139579)
changelog: https://github.com/Jc2k/aiohomekit/compare/3.2.7...3.2.8
2025-03-02 16:15:04 +01:00
Markus Adrario
74be49d00d Homee: fix watchdog icon (#139577)
fix watchdog icon
2025-03-02 16:15:04 +01:00
Joost Lekkerkerker
684c3aac6b Don't require not needed scopes in SmartThings (#139576)
* Don't require not needed scopes

* Don't require not needed scopes
2025-03-02 16:15:03 +01:00
Joost Lekkerkerker
a718b6ebff Only determine SmartThings swing modes if we support it (#139571)
Only determine swing modes if we support it
2025-03-02 16:15:02 +01:00
Joost Lekkerkerker
f17274d417 Validate scopes in SmartThings config flow (#139569) 2025-03-02 16:15:01 +01:00
Jan-Philipp Benecke
1530139a61 Bump aiowebdav2 to 0.3.1 (#139567) 2025-03-02 16:15:01 +01:00
Brett Adams
f56d65b2ec Bump Tesla Fleet API to v0.9.12 (#139565)
* bump

* Update manifest.json

* Fix versions

* remove tesla_bluetooth

* Remove mistake
2025-03-02 16:15:00 +01:00
Joost Lekkerkerker
21277a81d3 Bump pysmartthings to 2.4.0 (#139564) 2025-03-02 16:14:59 +01:00
J. Nick Koston
e1ce5b8c69 Revert polling changes to HomeKit Controller (#139550)
This reverts #116200

We changed the polling logic to avoid polling if all chars are marked as watchable
to avoid crashing the firmware on a very limited set of devices as it was
more in line with what iOS does. In the end, the user ended up replacing
the device in #116143 because it turned out to be unreliable in other
ways. The vendor has since issued a firmware update that may resolve
the problem with all of these devices.

In practice it turns out many more devices
report that chars are evented and never send events. After a few months
of data and reports the trade-off does not seem worth it since
users are having to set up manual polling on a wide range of
devices. The amount of devices with evented chars that do not
actually send state vastly exceeds the number of devices that
might crash if they are polled too often so restore the previous
behavior

fixes #138561
fixes #100331
fixes #124529
fixes #123456
fixes #130763
fixes #124099
fixes #124916
fixes #135434
fixes #125273
fixes #124099
fixes #119617
2025-03-02 16:14:59 +01:00
Joost Lekkerkerker
0323a9c4e6 Add SmartThings Viper device info (#139548) 2025-03-02 16:14:58 +01:00
Joost Lekkerkerker
c7d89398a0 Improve SmartThings OCF device info (#139547) 2025-03-02 16:14:57 +01:00
Joost Lekkerkerker
8cc587d3a7 Bump pysmartthings to 2.3.0 (#139546) 2025-03-02 16:14:56 +01:00
J. Nick Koston
5ad156767a Bump PySwitchBot to 0.56.1 (#139544)
changelog: https://github.com/sblibs/pySwitchbot/compare/0.56.0...0.56.1
2025-03-02 16:14:56 +01:00
Joost Lekkerkerker
f54b3f4de2 Remove orphan devices on startup in SmartThings (#139541) 2025-03-02 16:14:55 +01:00
Joost Lekkerkerker
6f0c62dc9d Bump pysmartthings to 2.2.0 (#139539) 2025-03-02 16:14:54 +01:00
StaleLoafOfBread
dce8bca103 Fix alert not respecting can_acknowledge setting (#139483)
* fix(alert): check can_ack prior to acking

* fix(alert): add test for when can_acknowledge=False

* fix(alert): warn on can_ack blocking an ack

* Raise error when trying to acknowledge alert with can_acknowledge set to False

* Rewrite can_ack check as guard

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Make can_ack service error msg human readable because it will show up in the UI

* format with ruff

* Make pytest aware of service error when acking an unackable alert

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2025-03-02 16:14:53 +01:00
Joost Lekkerkerker
22af8af132 Set SmartThings delta energy to Total (#139474) 2025-03-02 16:14:52 +01:00
Joost Lekkerkerker
8a62b882bf Use last event as color mode in SmartThings (#139473)
* Use last event as color mode in SmartThings

* Use last event as color mode in SmartThings

* Fix
2025-03-02 16:14:52 +01:00
Filip Agh
708f22fe6f Fix update data for multiple Gree devices (#139469)
fix sync date for multiple devices

do not use handler for explicit update devices as internal communication lib do not provide which device is updated
use ha update loop

copy data object to prevent rewrite data from internal lib

allow more time to process response before log warning about long wait for response and make log message more clear
2025-03-02 16:14:51 +01:00
Marcel van der Veldt
a4e71e2055 Ensure Hue bridge is added first to the device registry (#139438) 2025-03-02 16:14:50 +01:00
Juan Grande
61a3cc37e0 Fix bug in derivative sensor when source sensor's state is constant (#139230)
Previously, when the source sensor's state remains constant, the derivative
sensor repeats its latest value indefinitely.

This patch fixes this bug by consuming the state_reported event and updating
the sensor's output even when the source sensor doesn't change its state.
2025-03-02 16:11:06 +01:00
Guido Schmitz
a0668e5a5b Handle IPv6 URLs in devolo Home Network (#139191)
* Handle IPv6 URLs in devolo Home Network

* Use yarl
2025-03-02 16:11:06 +01:00
G Johansson
b4b7142b55 Specify recorder as after dependency in sql integration (#139037)
* Specify recorder as after dependency in sql integration

* Remove hassfest exception

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2025-03-02 16:11:05 +01:00
J. Nick Koston
108b71d33c Use multiple indexed group-by queries to get start time states for MySQL (#138786)
* tweaks

* mysql

* mysql

* Update homeassistant/components/recorder/history/modern.py

* Update homeassistant/components/recorder/history/modern.py

* Update homeassistant/components/recorder/const.py

* Update homeassistant/components/recorder/statistics.py

* Apply suggestions from code review

* mysql

* mysql

* cover

* make sure db is fully init on old schema

* fixes

* fixes

* coverage

* coverage

* coverage

* s/slow_dependant_subquery/slow_dependent_subquery/g

* reword

* comment that callers are responsible for staying under the limit

* comment that callers are responsible for staying under the limit

* switch to kwargs

* reduce branching complexity

* split stats query

* preen

* split tests

* split tests
2025-03-02 16:11:04 +01:00
Martreides
2636a47333 Fix Nederlandse Spoorwegen to ignore trains in the past (#138331)
* Update NS integration to show first next train instead of just the first.

* Handle no first or next trip.

* Remove debug statement.

* Remove seconds and revert back to minutes.

* Make use of dt_util.now().

* Fix issue with next train if no first train.
2025-03-02 16:11:03 +01:00
M-A
17116fcd6c Bump env_canada to 0.8.0 (#138237)
* Bump env_canada to 0.8.0

* Fix requirements*.txt

* Grepped more

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-02 16:11:03 +01:00
LaithBudairi
17c16144d1 Add missing 'state_class' attribute for Growatt plant sensors (#132145)
* Add missing 'state_class' attribute for Growatt plant sensors

* Update total.py

* Update total.py 'TOTAL_INCREASING'

* Update total.py "maximum_output" -> 'TOTAL_INCREASING'

* Update homeassistant/components/growatt_server/sensor/total.py

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2025-03-02 16:11:02 +01:00
J. Nick Koston
c9abe76023 Use multiple indexed group-by queries to get start time states for MySQL (#138786)
* tweaks

* mysql

* mysql

* Update homeassistant/components/recorder/history/modern.py

* Update homeassistant/components/recorder/history/modern.py

* Update homeassistant/components/recorder/const.py

* Update homeassistant/components/recorder/statistics.py

* Apply suggestions from code review

* mysql

* mysql

* cover

* make sure db is fully init on old schema

* fixes

* fixes

* coverage

* coverage

* coverage

* s/slow_dependant_subquery/slow_dependent_subquery/g

* reword

* comment that callers are responsible for staying under the limit

* comment that callers are responsible for staying under the limit

* switch to kwargs

* reduce branching complexity

* split stats query

* preen

* split tests

* split tests
2025-03-02 15:13:06 +01:00
starkillerOG
0c803520a3 Motion blind type list (#139590)
* Add blind_type_list

* fix

* styling

* fix typing

* Bump motionblinds to 0.6.26
2025-03-02 14:40:28 +01:00
rappenze
5ac3fe6ee1 Fibaro integration refactorings (#139624)
* Fibaro integration refactorings

* Fix execute_action

* Add test

* more tests

* Add tests

* Fix test

* More tests
2025-03-02 14:38:56 +01:00
Martreides
b7bedd4b8f Fix Nederlandse Spoorwegen to ignore trains in the past (#138331)
* Update NS integration to show first next train instead of just the first.

* Handle no first or next trip.

* Remove debug statement.

* Remove seconds and revert back to minutes.

* Make use of dt_util.now().

* Fix issue with next train if no first train.
2025-03-02 14:32:10 +01:00
Maghiel Dijksman
0694f9e164 Fix Tuya unsupported Temperature & Humidity Sensors (with or without external probe) (#138542)
* add category qxj for th sensor with external probe. partly fixes #136472

* add TEMP_CURRENT_EXTERNAL for th sensor with external probe. fixes #136472

* ruff format

* add translation_key temperature_external for TEMP_CURRENT_EXTERNAL

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-02 14:25:19 +01:00
J. Nick Koston
5b1f3d3e7f Fix arm vacation mode showing as armed away in elkm1 (#139613)
Add native arm vacation mode support to elkm1

Vacation mode is currently implemented as a custom
service which will be deprecated in a future PR.

Note that the custom service was added long before
HA had a native vacation mode which was added
in #45980
2025-03-02 14:23:40 +01:00
Maciej Bieniek
d922c723d4 Add LinkedGo virtual integration (#139625) 2025-03-02 14:19:52 +01:00
Joost Lekkerkerker
3eadfcc01d Still request scopes in SmartThings (#139626)
Still request scopes
2025-03-02 14:17:56 +01:00
Maciej Bieniek
29f680f912 Add FrankEver virtual integration (#139629)
* Add FranvEver virtual integration

* Fix file name
2025-03-02 14:12:54 +01:00
Alexey ALERT Rubashёff
ee2b53ed0f Bump pyoverkiz to 1.16.2 (#139623) 2025-03-02 14:10:45 +01:00
Manu
b0b5567316 Add update_habit action to Habitica integration (#139311)
* Add update_habit action

* icons
2025-03-02 14:04:13 +01:00
Joost Lekkerkerker
e6c946b3f4 Bump pysmartthings to 2.4.1 (#139627) 2025-03-02 13:15:43 +01:00
Norbert Rittel
b2c7c5b1aa Treat "Core" as name, fix grammar in reload_core_config action (#139622)
* Treat "Core" as name, fix grammar in `reload_core_config` action

Change three occurrences of "core" to "Core" so they are not translated but kept as a name instead.

Fix singular/plural mismatch in the field description of the `reload_core_config` action.

* Change "us customary" to "US customary"
2025-03-02 11:05:25 +01:00
Jan Bouwhuis
220509fd6c Fix body text of imap message not available in custom event data template (#139609) 2025-03-01 23:00:22 -05:00
Paulus Schoutsen
7293ae5d51 Fix type for ESPHome assist satellite events (#139618) 2025-03-01 22:59:14 -05:00
wittypluck
4a7fd89abd Bump pyopenweathermap to 0.2.2 and remove deprecated API version v2.5 (#139599)
* Bump pyopenweathermap

* Remove deprecated API mode v2.5
2025-03-02 02:32:55 +01:00
J. Nick Koston
077ff63b38 Bump inkbird-ble to 0.7.1 (#139603)
changelog: https://github.com/Bluetooth-Devices/inkbird-ble/compare/v0.7.0...v0.7.1
2025-03-02 00:51:09 +01:00
Shay Levy
55fd5fa869 Bump aioshelly to 13.1.0 (#139601)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-02 00:12:19 +01:00
G Johansson
e3eb6051de Fix duplicate unique id issue in Sensibo (#139582)
* Fix duplicate unique id issue in Sensibo

* Fixes

* Mods
2025-03-02 00:04:13 +01:00
Brett Adams
3e9304253d Bump Tesla Fleet API to v0.9.12 (#139565)
* bump

* Update manifest.json

* Fix versions

* remove tesla_bluetooth

* Remove mistake
2025-03-01 23:58:15 +01:00
Shay Levy
cc8ed2c228 Fix demo valve platform to use AddConfigEntryEntitiesCallback (#139602) 2025-03-01 23:29:42 +01:00
J. Nick Koston
89b655c192 Fix handling of NaN float values for current humidity in ESPHome (#139600)
fixes #131837
2025-03-01 16:13:04 -06:00
Robert Resch
56ddfa9ff8 Bump deebot-client to 12.3.1 (#139598) 2025-03-01 23:05:55 +01:00
Manu
a2a11ad02e Update quality scale to platinum 🏆️ for IronOS integration (#138217)
Update status in iron_os quality_scale.yaml
2025-03-01 22:55:49 +01:00
Tatham Oddie
f7927f9da1 Introduce demo valve (#138187) 2025-03-01 22:54:48 +01:00
Simone Chemelli
13918f07d8 Switch cleanup for Shelly (part 2) (#138922)
* Switch cleanup for Shelly (part 2)

* apply review comment

* Update tests/components/shelly/test_climate.py

Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>

* apply review comments

---------

Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
2025-03-01 22:39:19 +01:00
Manu
35825be12b Update quality scale to platinum 🏆️ for pyLoad integration (#138891)
* Add quality scale file to pyLoad integration

* set strict-typing to done

* set parallel-updates to done

* docs

* update docs

* flow coverage done

* set platinum quality scale
2025-03-01 22:36:51 +01:00
Denis Shulyaka
1786bb9903 Use model list to check anthropic API key (#139307)
Anthropic model list
2025-03-01 22:28:48 +01:00
Manu
3588784f1e Add create_reward action to Habitica integration (#139304)
Add create_reward action to Habitica
2025-03-01 22:27:31 +01:00
Paulus Schoutsen
2cce1b024e Migrate Assist Pipeline to use TTS stream (#139542)
* Migrate Pipeline to use TTS stream

* Fix tests
2025-03-01 21:43:00 +01:00
peteS-UK
c168695323 Clean up squeezebox build_item_response part 1 (#139321)
* initial

* final

* is internal change

* test data coverage

* Review fixes

* final
2025-03-01 14:18:30 -06:00
Jan Bouwhuis
913a4ee9ba Improve certificate handling in MQTT config flow (#137234)
* Improve mqtt broker certificate handling in config flow

* Expand test cases
2025-03-01 21:14:08 +01:00
Markus Adrario
dd21d48ae4 Homee: fix watchdog icon (#139577)
fix watchdog icon
2025-03-01 20:53:06 +01:00
Joost Lekkerkerker
b3f14d72c0 Don't require not needed scopes in SmartThings (#139576)
* Don't require not needed scopes

* Don't require not needed scopes
2025-03-01 20:47:42 +01:00
Trevor Morgan
51beb1c0a8 Add simplisafe OUTDOOR_ALARM_SECURITY_BELL_BOX device type (#134386)
* Update binary_sensor.py to included OUTDOOR_ALARM_SECURITY_BELL_BOX device type

Add support for DeviceTypes.OUTDOOR_ALARM_SECURITY_BELL_BOX

This is an external siren device in Simplisafe which is not  currently discovered with the HA integration

* Fixed formatting error

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-01 20:26:04 +01:00
peteS-UK
0c5766184b Fix Manufacturer naming for Squeezelite model name for Squeezebox (#139586)
Squeezelite Manufacturer Fix
2025-03-01 20:22:34 +01:00
starkillerOG
b1a2b89691 Bump motionblinds to 0.6.26 (#139591) 2025-03-01 20:18:52 +01:00
Norbert Rittel
4813da33d6 Improve field descriptions of zha.permit action (#139584)
Make the field descriptions of `source_ieee` and `install_code` UI-friendly by cross-referencing them using their friendly names to allow matching translations.

Better explain the alternative of using the `qr_code` field by adding that this contains both the IEEE address and the Install code of the joining device.
2025-03-01 20:16:32 +01:00
Simone Chemelli
d4099ab917 Bump aiocomelit to 0.11.1 (#139589) 2025-03-01 20:16:11 +01:00
Joris Drenth
ee206938d8 Update wallbox to 0.8.0 (#139553)
Update Wallbox dependencies
2025-03-01 19:59:13 +01:00
M-A
9fe08f292d Bump env_canada to 0.8.0 (#138237)
* Bump env_canada to 0.8.0

* Fix requirements*.txt

* Grepped more

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-03-01 19:58:45 +01:00
mvn23
9a331de878 Remove deprecated import from configuration.yaml from opentherm_gw (#139581)
* Remove deprecated import from configuration.yaml in opentherm_gw

* Remove tests for removed funcionality from opentherm_gw
2025-03-01 19:45:07 +01:00
Jan Bouwhuis
2de941bc11 Fix - Allow brightness only light MQTT json light to be set up using the brightness flag or via supported_color_modes (#139585)
* Fix - Allow brightness only light MQTT json light to be set up using the `brightness` flag or via  `supported_color_modes`

* Improve comment
2025-03-01 19:35:39 +01:00
J. Nick Koston
c5e0418f75 Bump aiohomekit to 3.2.8 (#139579)
changelog: https://github.com/Jc2k/aiohomekit/compare/3.2.7...3.2.8
2025-03-01 18:41:11 +02:00
Simone Chemelli
679b57e450 Add strict typing to Vodafone Station (#139573) 2025-03-01 14:22:14 +01:00
Guido Schmitz
91eba0855e Handle IPv6 URLs in devolo Home Network (#139191)
* Handle IPv6 URLs in devolo Home Network

* Use yarl
2025-03-01 13:29:50 +01:00
Josef Zweck
43f48b8562 Bump azure_storage quality to platinum (#139452) 2025-03-01 13:23:27 +01:00
Joost Lekkerkerker
df95902004 Only determine SmartThings swing modes if we support it (#139571)
Only determine swing modes if we support it
2025-03-01 13:08:28 +01:00
epenet
3edc7913de Fix blog post link in comment (#139568) 2025-03-01 13:06:10 +01:00
Joost Lekkerkerker
1852052dff Add suggested area to SmartThings (#139570)
* Add suggested area to SmartThings

* Add suggested areas to SmartThings
2025-03-01 13:05:58 +01:00
Joost Lekkerkerker
fe5cd5c55c Validate scopes in SmartThings config flow (#139569) 2025-03-01 12:47:58 +01:00
Jan-Philipp Benecke
042e4d20c5 Bump aiowebdav2 to 0.3.1 (#139567) 2025-03-01 12:37:44 +01:00
Norbert Rittel
dfe1921737 Improve description of media_content_type in media_extractor.play_media action (#139559)
* Improve `media_content_type` in  `media_extractor.play_media` action

In the UI the `media_content_type` field of the `media_extractor.play_media` action already presents a selector with the choices MUSIC, TVSHOW, VIDEO, EPISODE, CHANNEL or PLAYLIST MUSIC.

Therefore these can be removed from the field description to avoid any over-translation that will create an unnecessary  mismatch in the UI.

* Fix casing of  `media_extractor.play_media` action name
2025-03-01 12:12:58 +01:00
Norbert Rittel
2c620f1f60 Improve description of door field in subaru.unlock_specific_door action (#139558)
* Improve description of `door` field in `subaru.unlock_specific_door` action

In the UI the `door` field of the `subaru.unlock_specific_door` action presents three radio buttons for the three possible choices 'all', 'driver' and 'tailgate'.

Therefore the field description should no longer repeat those options to avoid over-translation that will not match the actual choices.

In addition proper sentence-casing is applied to several title keys.

* Fix sentence-casing in two title keys
2025-03-01 12:12:36 +01:00
Joost Lekkerkerker
66a17bd072 Bump pysmartthings to 2.4.0 (#139564) 2025-03-01 12:06:16 +01:00
Filip Agh
18217a594f Fix update data for multiple Gree devices (#139469)
fix sync date for multiple devices

do not use handler for explicit update devices as internal communication lib do not provide which device is updated
use ha update loop

copy data object to prevent rewrite data from internal lib

allow more time to process response before log warning about long wait for response and make log message more clear
2025-03-01 11:50:24 +01:00
J. Nick Koston
a6e2dc485b Bump orjson to 3.10.15 (#135223) 2025-03-01 10:44:04 +01:00
Juan Grande
8e7960fa0e Fix bug in derivative sensor when source sensor's state is constant (#139230)
Previously, when the source sensor's state remains constant, the derivative
sensor repeats its latest value indefinitely.

This patch fixes this bug by consuming the state_reported event and updating
the sensor's output even when the source sensor doesn't change its state.
2025-03-01 09:10:35 +01:00
Daniele Ricci
1dc6a94093 Fix caldav todo list not updating after adding items with Assist (#135980)
caldav: fix todo list not updating after adding items with Assist
2025-02-28 21:15:28 -08:00
LaithBudairi
615d79b429 Add missing 'state_class' attribute for Growatt plant sensors (#132145)
* Add missing 'state_class' attribute for Growatt plant sensors

* Update total.py

* Update total.py 'TOTAL_INCREASING'

* Update total.py "maximum_output" -> 'TOTAL_INCREASING'

* Update homeassistant/components/growatt_server/sensor/total.py

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2025-02-28 23:58:39 +01:00
andylittle
ebd6daa31d Tuya tyd fix (#135558)
Add support for tuya tyd light
2025-02-28 23:47:40 +01:00
Joost Lekkerkerker
d6750624ce Add SmartThings hub connections (#139549) 2025-02-28 23:32:09 +01:00
J. Nick Koston
577b22374a Revert polling changes to HomeKit Controller (#139550)
This reverts #116200

We changed the polling logic to avoid polling if all chars are marked as watchable
to avoid crashing the firmware on a very limited set of devices as it was
more in line with what iOS does. In the end, the user ended up replacing
the device in #116143 because it turned out to be unreliable in other
ways. The vendor has since issued a firmware update that may resolve
the problem with all of these devices.

In practice it turns out many more devices
report that chars are evented and never send events. After a few months
of data and reports the trade-off does not seem worth it since
users are having to set up manual polling on a wide range of
devices. The amount of devices with evented chars that do not
actually send state vastly exceeds the number of devices that
might crash if they are polled too often so restore the previous
behavior

fixes #138561
fixes #100331
fixes #124529
fixes #123456
fixes #130763
fixes #124099
fixes #124916
fixes #135434
fixes #125273
fixes #124099
fixes #119617
2025-02-28 23:25:50 +01:00
J. Nick Koston
ee1fe2cae4 Bump bleak-esphome to 2.9.0 (#139467)
* Bump bleak-esphome to 2.9.0

changelog: https://github.com/Bluetooth-Devices/bleak-esphome/compare/v2.8.0...v2.9.0

* fixes
2025-02-28 16:17:44 -06:00
Joost Lekkerkerker
db05aa17d3 Add SmartThings Viper device info (#139548) 2025-02-28 23:03:57 +01:00
Joost Lekkerkerker
b1ee019e3a Bump pysmartthings to 2.3.0 (#139546) 2025-02-28 23:02:06 +01:00
Paulus Schoutsen
b43a7ff1fe Stream the TTS result from webview (#139543) 2025-02-28 23:01:39 +01:00
Joost Lekkerkerker
2d6068b842 Create device for the hub in SmartThings (#139545)
* Create device for the hub in SmartThings

* Create device for the hub in SmartThings

* Create device for the hub in SmartThings
2025-02-28 22:58:35 +01:00
J. Nick Koston
ac4c379a0e Bump PySwitchBot to 0.56.1 (#139544)
changelog: https://github.com/sblibs/pySwitchbot/compare/0.56.0...0.56.1
2025-02-28 15:42:33 -06:00
Joost Lekkerkerker
00b7c4f9ef Improve SmartThings OCF device info (#139547) 2025-02-28 23:30:57 +02:00
Joost Lekkerkerker
3f48826370 Bump pysmartthings to 2.2.0 (#139539) 2025-02-28 21:06:45 +01:00
StaleLoafOfBread
ed06831e9d Fix alert not respecting can_acknowledge setting (#139483)
* fix(alert): check can_ack prior to acking

* fix(alert): add test for when can_acknowledge=False

* fix(alert): warn on can_ack blocking an ack

* Raise error when trying to acknowledge alert with can_acknowledge set to False

* Rewrite can_ack check as guard

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

* Make can_ack service error msg human readable because it will show up in the UI

* format with ruff

* Make pytest aware of service error when acking an unackable alert

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2025-02-28 20:59:35 +01:00
Marcel van der Veldt
c21234672d Ensure Hue bridge is added first to the device registry (#139438) 2025-02-28 20:56:43 +01:00
G Johansson
32950df0b7 Specify recorder as after dependency in sql integration (#139037)
* Specify recorder as after dependency in sql integration

* Remove hassfest exception

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-28 20:51:56 +01:00
Cameron Ring
0f615bbe4f Add OptionsFlowHandler test for Lutron (#139463) 2025-02-28 20:50:39 +01:00
J. Nick Koston
5a6ffe1901 Update Bluetooth remote config entries if the MAC is corrected (#139457)
* fix ble mac

* fixes

* fixes

* fixes

* restore deleted test
2025-02-28 20:49:31 +01:00
rappenze
6ce48eab45 Use new pyfibaro library features (#139476) 2025-02-28 20:47:03 +01:00
Simone Chemelli
437e545116 Rework Comelit tests (#139475)
* Rework Comelit tests

* allign

* restore coverage
2025-02-28 20:45:47 +01:00
Paulus Schoutsen
1a80934593 Move TTS entity to own file (#139538)
* Move entity to own file

* Move entity tests
2025-02-28 20:40:13 +01:00
Joost Lekkerkerker
455363871f Use last event as color mode in SmartThings (#139473)
* Use last event as color mode in SmartThings

* Use last event as color mode in SmartThings

* Fix
2025-02-28 20:39:49 +01:00
Joost Lekkerkerker
39bc37d225 Remove orphan devices on startup in SmartThings (#139541) 2025-02-28 20:33:25 +01:00
Paulus Schoutsen
90fc6ffdbf Add support for continue conversation in Assist Pipeline (#139480)
* Add support for continue conversation in Assist Pipeline

* Also forward to ESPHome

* Update snapshot

* And mobile app
2025-02-28 13:15:31 -06:00
Joost Lekkerkerker
086c91485f Set SmartThings delta energy to Total (#139474) 2025-02-28 20:03:24 +01:00
Norbert Rittel
bf27ccce17 Clarify description of icloud.update action (#139535)
Currently the description of the `icloud.update` action can be easily misunderstood as just updating the device list or forcing a software update on all devices.

This commit changes the description to make clear that it asks for a state update of all devices.
2025-02-28 19:58:26 +01:00
Paulus Schoutsen
70bb56e0fc Text-to-Speech refactor (#139482)
* Refactor TTS

* More cleanup

* Cleanup

* Consolidate more

* Inline another function

* Inline another function

* Improve cleanup
2025-02-28 12:36:12 -06:00
Michael Hansen
49c27ae7bc Check area temperature sensors in get temperature intent (#139221)
* Check area temperature sensors in get temperature intent

* Fix candidate check

* Add new code back in

* Remove cruft from climate
2025-02-28 13:02:30 -05:00
Nathan Spencer
e9bb4625d8 Set device class for wind direction weatherflow entities (#139397)
* Set wind_direction device class in weatherflow

* Remove measurement state_class from wind direction entities
2025-02-28 18:33:58 +01:00
Alexey ALERT Rubashёff
2e077cbf12 Bump pyoverkiz to 1.16.1 (#139532) 2025-02-28 17:32:07 +00:00
Bram Kragten
178d509d56 Bump version to 2025.3.0b2 2025-02-28 17:06:59 +01:00
Bram Kragten
09c129de40 Update frontend to 20250228.0 (#139531) 2025-02-28 17:06:51 +01:00
Joost Lekkerkerker
07128ba063 Bump yt-dlp to 2025.02.19 (#139526) 2025-02-28 17:06:50 +01:00
Robert Resch
a786ff53ff Don't split wheels builder anymore (#139522) 2025-02-28 17:06:50 +01:00
Robert Svensson
d2e19c829d Suppress unsupported event 'EVT_USP_RpsPowerDeniedByPsuOverload' by bumping aiounifi to v83 (#139519)
Bump aiounifi to v83
2025-02-28 17:06:49 +01:00
Jan Bouwhuis
94b342f26a Make the Tuya backend library compatible with the newer paho mqtt client. (#139518)
* Make the Tuya backend library compatible with the newer paho mqtt client.

* Improve classnames and docstrings
2025-02-28 17:06:48 +01:00
Josef Zweck
9e3e6b3f43 Add diagnostics to onedrive (#139516)
* Add diagnostics to onedrive

* redact PII

* add raw data
2025-02-28 17:06:47 +01:00
Erik Montnemery
4300900322 Improve error handling in CoreBackupReaderWriter (#139508) 2025-02-28 17:06:46 +01:00
Brett Adams
342e04974d Fix shift state in Teslemetry (#139505)
* Fix shift state

* Different fix
2025-02-28 17:06:46 +01:00
Erik Montnemery
fdb4c0a81f Fail recorder.backup.async_pre_backup if Home Assistant is not running (#139491)
Fail recorder.backup.async_pre_backup if hass is not running
2025-02-28 17:06:45 +01:00
Ivan Lopez Hernandez
6de878ffe4 Fix Gemini Schema validation for #139416 (#139478)
Fixed Schema validation for issue #139477
2025-02-28 17:06:44 +01:00
Joost Lekkerkerker
c63aaec09e Set SmartThings suggested display precision (#139470) 2025-02-28 17:06:43 +01:00
Joost Lekkerkerker
d8bf47c101 Only lowercase SmartThings media input source if we have it (#139468) 2025-02-28 17:06:42 +01:00
Joost Lekkerkerker
736ff8828d Bump pysmartthings to 2.1.0 (#139460) 2025-02-28 17:06:41 +01:00
Josef Zweck
b501999a4c Improve onedrive migration (#139458) 2025-02-28 17:06:40 +01:00
Jan-Philipp Benecke
3985f1c6c8 Change webdav namespace to absolut URI (#139456)
* Change webdav namespace to absolut URI

* Add const file
2025-02-28 17:06:39 +01:00
Joost Lekkerkerker
46ec3987a8 Bump pysmartthings to 2.0.1 (#139454) 2025-02-28 17:06:39 +01:00
Joost Lekkerkerker
df4e5a54e3 Fix SmartThings diagnostics (#139447) 2025-02-28 17:06:38 +01:00
J. Diego Rodríguez Royo
d8a259044f Bump aiohomeconnect to 0.15.1 (#139445) 2025-02-28 17:06:37 +01:00
Michael Hansen
0891669aee Move climate intent to homeassistant integration (#139371)
* Move climate intent to homeassistant integration

* Move get temperature intent to intent integration

* Clean up old test
2025-02-28 17:06:36 +01:00
Marcel van der Veldt
83c0351338 Add new mediatypes to Music Assistant integration (#139338)
* Bump Music Assistant client to 1.1.0

* Add some casts to help mypy

* Add handling of the new media types in Music Assistant

* mypy cleanup

* lint

* update snapshot

* Adjust tests

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-02-28 17:06:35 +01:00
Jeef
c5e5fe555d Bump weatherflow4py to 1.3.1 (#135529)
* version bump of dep

* update requirements
2025-02-28 17:06:34 +01:00
Bram Kragten
271d225e51 Update frontend to 20250228.0 (#139531) 2025-02-28 17:05:36 +01:00
Michael Hansen
fca19a3ec1 Move climate intent to homeassistant integration (#139371)
* Move climate intent to homeassistant integration

* Move get temperature intent to intent integration

* Clean up old test
2025-02-28 10:25:38 -05:00
Josef Zweck
0681652aec Add diagnostics to onedrive (#139516)
* Add diagnostics to onedrive

* redact PII

* add raw data
2025-02-28 16:18:57 +01:00
Robert Resch
5fa5d08b18 Bump wheels to 2025.02.0 (#139525) 2025-02-28 16:16:23 +01:00
Norbert Rittel
0f0866cd52 Improve description of mode field in geniushub.set_zone_mode action (#139513)
Improve description of `mode` field in 'geniushub.set_zone_mode' action

As the three choices for the `mode` field show up as radio buttons in the UI the description does not need to repeat them.

This improves translations by avoiding any over-translation of these values.
2025-02-28 17:03:47 +02:00
Robert Svensson
1b27365c58 Suppress unsupported event 'EVT_USP_RpsPowerDeniedByPsuOverload' by bumping aiounifi to v83 (#139519)
Bump aiounifi to v83
2025-02-28 17:00:31 +02:00
Joost Lekkerkerker
3cd7f50216 Bump yt-dlp to 2025.02.19 (#139526) 2025-02-28 15:47:51 +01:00
Jeef
40d2d6df2c Bump weatherflow4py to 1.3.1 (#135529)
* version bump of dep

* update requirements
2025-02-28 14:32:52 +01:00
Robert Resch
c2a7736417 Don't split wheels builder anymore (#139522) 2025-02-28 14:30:47 +01:00
Brett Adams
ac15d9b3d4 Fix shift state in Teslemetry (#139505)
* Fix shift state

* Different fix
2025-02-28 14:26:39 +01:00
Erik Montnemery
228a4eb391 Improve error handling in CoreBackupReaderWriter (#139508) 2025-02-28 14:25:35 +01:00
epenet
030a1460de Log a warning when replacing existing config entry with same unique id (#130567)
* Log a warning when replacing existing config entry with same unique id

* Exclude mobile_app

* Ignore custom integrations

* Apply suggestions from code review

* Apply suggestions from code review

* Update config_entries.py

* Fix handler

* Adjust and add tests

* Apply suggestions from code review

* Apply suggestions from code review

* Update comment

* Update config_entries.py

* Apply suggestions from code review
2025-02-28 14:20:39 +01:00
dependabot[bot]
d157919da2 Bump actions/attest-build-provenance from 2.2.1 to 2.2.2 (#139489)
Bumps [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/actions/attest-build-provenance/releases)
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md)
- [Commits](f9eaf234fc...bd77c07785)

---
updated-dependencies:
- dependency-name: actions/attest-build-provenance
  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-28 14:19:18 +01:00
Marcel van der Veldt
b79c6e772a Add new mediatypes to Music Assistant integration (#139338)
* Bump Music Assistant client to 1.1.0

* Add some casts to help mypy

* Add handling of the new media types in Music Assistant

* mypy cleanup

* lint

* update snapshot

* Adjust tests

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-02-28 14:17:02 +01:00
Jan Bouwhuis
d6f9040baf Make the Tuya backend library compatible with the newer paho mqtt client. (#139518)
* Make the Tuya backend library compatible with the newer paho mqtt client.

* Improve classnames and docstrings
2025-02-28 14:14:56 +01:00
dependabot[bot]
0310418efc Bump dawidd6/action-download-artifact from 8 to 9 (#139488)
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 8 to 9.
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](https://github.com/dawidd6/action-download-artifact/compare/v8...v9)

---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 13:54:31 +01:00
dependabot[bot]
62dc0ac485 Bump actions/cache from 4.2.1 to 4.2.2 (#139490)
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4.2.1...v4.2.2)

---
updated-dependencies:
- dependency-name: actions/cache
  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-28 13:38:56 +01:00
Joost Lekkerkerker
9a62b0f245 Enable ASYNC ruff rules (#139507)
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2025-02-28 13:05:30 +01:00
Petro31
a296c5e9ad Add floor_entities function and filter (#136509)
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2025-02-28 11:44:01 +00:00
pglab-electronics
12cb349160 Add Sensor to PG LAB Integration (#138802) 2025-02-28 11:07:01 +00:00
Erik Montnemery
5cf56ec113 Adjust recorder backup platform tests (#139492) 2025-02-28 11:44:58 +01:00
Erik Montnemery
1be9836663 Fail recorder.backup.async_pre_backup if Home Assistant is not running (#139491)
Fail recorder.backup.async_pre_backup if hass is not running
2025-02-28 11:44:16 +01:00
Jan-Philipp Benecke
9d10e0e054 Change webdav namespace to absolut URI (#139456)
* Change webdav namespace to absolut URI

* Add const file
2025-02-28 11:18:16 +01:00
Joost Lekkerkerker
05df572951 Bump pysmartthings to 2.1.0 (#139460) 2025-02-28 10:30:31 +01:00
Joost Lekkerkerker
6953c20a65 Set SmartThings suggested display precision (#139470) 2025-02-28 09:15:13 +01:00
Ivan Lopez Hernandez
4e8186491c Fix Gemini Schema validation for #139416 (#139478)
Fixed Schema validation for issue #139477
2025-02-27 19:10:42 -08:00
rappenze
6fa93edf27 Bump pyfibaro to 0.8.2 (#139471) 2025-02-27 22:27:18 +00:00
Joost Lekkerkerker
ef13b35c35 Only lowercase SmartThings media input source if we have it (#139468) 2025-02-27 21:50:34 +00:00
J. Nick Koston
0afdd9556f Bump aioesphomeapi to 29.3.1 (#139465) 2025-02-27 21:45:13 +00:00
J. Nick Koston
e11ead410b Add coverage to ensure we do not load base platforms before recorder (#139464) 2025-02-27 20:50:23 +00:00
Norbert Rittel
ef7058f703 Improve descriptions of lyric.set_hold_time action and field (#139385)
* Fix misleading descriptions on lyric.set_hold_time action

While on Honeywell Lyric thermostats the user can set a "Hold Until" time of day, the set_hold_time action does define a time period instead (Example: 01:00:00)

Therefore both descriptions are incorrectly using "until" for explaining the purpose of the action itself and the `time_period` field. 

This commit re-words both and adds some additional context that helps users (and translators) better understand this action and its purpose.

In addition the action name is changed to proper sentence-casing.

* Replace "time" with "duration" for additional clarity
2025-02-27 22:47:20 +02:00
Josef Zweck
938855bea3 Improve onedrive migration (#139458) 2025-02-27 20:42:04 +01:00
Joost Lekkerkerker
4c00c56afd Bump pysmartthings to 2.0.1 (#139454) 2025-02-27 21:30:18 +02:00
Simone Chemelli
8cc7e7b76f Full test coverage for Vodafone Station init (#139451)
Full test coverage for Vodafone Station init
2025-02-27 20:07:12 +01:00
J. Diego Rodríguez Royo
df006aeade Bump aiohomeconnect to 0.15.1 (#139445) 2025-02-27 19:23:46 +01:00
Joost Lekkerkerker
ffac522554 Fix SmartThings diagnostics (#139447) 2025-02-27 19:39:18 +02:00
starkillerOG
9502dbee56 Add more diagnostic info to Reolink (#139436)
* Add diagnostic info

* Bump reolink-aio to 0.12.1

* Add tests
2025-02-27 19:39:01 +02:00
J. Nick Koston
a339fbaa82 Bump aioesphomeapi to 29.3.0 (#139441) 2025-02-27 16:56:30 +00:00
Bram Kragten
345ba73777 Bump version to 2025.3.0b1 2025-02-27 16:48:00 +01:00
Bram Kragten
e4200a79a2 Update frontend to 20250227.0 (#139437) 2025-02-27 16:47:52 +01:00
Marcel van der Veldt
381fa65ba0 Fix Music Assistant media player entity features (#139428)
* Fix Music Assistant supported media player features

* Update supported features when player config changes

* Add tests
2025-02-27 16:47:51 +01:00
starkillerOG
16314711b8 Bump reolink-aio to 0.12.1 (#139427) 2025-02-27 16:47:50 +01:00
J. Nick Koston
553abe4a4a Bump bleak-esphome to 2.8.0 (#139426) 2025-02-27 16:47:49 +01:00
Joost Lekkerkerker
6a1bbdb3a7 Add diagnostics to SmartThings (#139423) 2025-02-27 16:47:48 +01:00
Paulus Schoutsen
59d92c75bd Fix conversation agent fallback (#139421) 2025-02-27 16:47:47 +01:00
J. Nick Koston
7732e6878e Bump habluetooth to 3.24.1 (#139420) 2025-02-27 16:47:46 +01:00
Joost Lekkerkerker
2cde317d59 Bump pysmartthings to 2.0.0 (#139418)
* Bump pysmartthings to 2.0.0

* Fix

* Fix

* Fix

* Fix
2025-02-27 16:47:45 +01:00
Josef Zweck
0c08430507 Bump onedrive to 0.0.12 (#139410)
* Bump onedrive to 0.0.12

* Add alternative name
2025-02-27 16:47:45 +01:00
J. Diego Rodríguez Royo
fa6d7d5e3c Fix fetch options error for Home connect (#139392)
* Handle errors when obtaining options definitions

* Don't fetch program options if the program key is unknown

* Test to ensure that available program endpoint is not called on unknown program
2025-02-27 16:47:43 +01:00
Michael Hansen
585b950a46 Bump intents to 2025.2.26 (#139387) 2025-02-27 16:47:42 +01:00
puddly
3effc2e182 Bump ZHA to 0.0.51 (#139383)
* Bump ZHA to 0.0.51

* Fix unit tests not accounting for primary entities
2025-02-27 16:47:42 +01:00
fwestenberg
0e1602ff71 Bump stookwijzer==1.6.1 (#139380) 2025-02-27 16:47:41 +01:00
Bram Kragten
b02eaed6b0 Update frontend to 20250227.0 (#139437) 2025-02-27 16:42:08 +01:00
Joost Lekkerkerker
df594748cf Bump ruff to 0.9.8 (#139434) 2025-02-27 15:00:24 +00:00
Paulus Schoutsen
744a7a0e82 Fix conversation agent fallback (#139421) 2025-02-27 15:51:40 +01:00
Joost Lekkerkerker
f677b910a6 Add diagnostics to SmartThings (#139423) 2025-02-27 15:23:25 +01:00
Michael Arthur
0da6b28808 Add lawn mower entity id format (#139402)
* add missing entity id format

* use ENTITY_ID_FORMAT in mqtt lawn mower
2025-02-27 15:02:14 +01:00
Marcel van der Veldt
f111a2c34a Fix Music Assistant media player entity features (#139428)
* Fix Music Assistant supported media player features

* Update supported features when player config changes

* Add tests
2025-02-27 15:30:29 +02:00
starkillerOG
59eb323f8d Bump reolink-aio to 0.12.1 (#139427) 2025-02-27 15:29:57 +02:00
Joost Lekkerkerker
7ae13a4d72 Bump pysmartthings to 2.0.0 (#139418)
* Bump pysmartthings to 2.0.0

* Fix

* Fix

* Fix

* Fix
2025-02-27 13:25:55 +01:00
J. Nick Koston
735b843f5e Bump bleak-esphome to 2.8.0 (#139426) 2025-02-27 12:22:43 +00:00
J. Nick Koston
5b1783e859 Bump habluetooth to 3.24.1 (#139420) 2025-02-27 11:41:27 +00:00
LG-ThinQ-Integration
7b14b6af0e Add water heater entity to LG ThinQ (#138257)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-02-27 11:03:44 +00:00
J. Diego Rodríguez Royo
cc18ec2de8 Fix fetch options error for Home connect (#139392)
* Handle errors when obtaining options definitions

* Don't fetch program options if the program key is unknown

* Test to ensure that available program endpoint is not called on unknown program
2025-02-27 12:00:14 +01:00
Josef Zweck
df59adf5d1 Add reconfiguration to azure_storage (#139414)
* Add reauthentication to azure_storage

* Add reconfigure to azure_storage

* iqs

* update string

* ruff
2025-02-27 11:06:03 +01:00
dependabot[bot]
8c98cede60 Bump actions/attest-build-provenance from 2.2.0 to 2.2.1 (#139406)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-27 10:44:50 +01:00
dependabot[bot]
b1a70c86c3 Bump docker/build-push-action from 6.14.0 to 6.15.0 (#139407)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-27 10:44:13 +01:00
dependabot[bot]
63daed0ed6 Bump codecov/codecov-action from 5.3.1 to 5.4.0 (#139408)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-27 10:43:13 +01:00
Josef Zweck
2150a668b0 Add reauthentication to azure_storage (#139411)
* Add reauthentication to azure_storage

* update docstring
2025-02-27 10:17:57 +01:00
Josef Zweck
b505722f38 Bump onedrive to 0.0.12 (#139410)
* Bump onedrive to 0.0.12

* Add alternative name
2025-02-27 10:00:50 +01:00
puddly
036eef2b6b Bump ZHA to 0.0.51 (#139383)
* Bump ZHA to 0.0.51

* Fix unit tests not accounting for primary entities
2025-02-26 22:22:08 +02:00
Michael Hansen
f3fb7cd8e8 Bump intents to 2025.2.26 (#139387) 2025-02-26 20:14:03 +00:00
J. Diego Rodríguez Royo
42f55bf271 Small improvements to Home Connect strings and icons (#139386)
* Small improvements to Home Connect strings and icons

* Fix test
2025-02-26 21:02:00 +01:00
Erik Montnemery
6d7dad41d9 Bump hatasmota to 0.10.0 (#139382) 2025-02-26 21:31:45 +02:00
fwestenberg
9dbce6d904 Bump stookwijzer==1.6.1 (#139380) 2025-02-26 21:31:24 +02:00
Bram Kragten
7f0db3181d Bump version to 2025.4.0 (#139381) 2025-02-26 19:54:29 +01:00
Bram Kragten
693584ce29 Bump version to 2025.3.0b0 2025-02-26 18:23:01 +01:00
Joost Lekkerkerker
2e972422c2 Fix typo in SmartThing string (#139373) 2025-02-26 18:19:45 +01:00
Joost Lekkerkerker
3a21c36173 Don't create entities for disabled capabilities in SmartThings (#139343)
* Don't create entities for disabled capabilities in SmartThings

* Fix

* fix

* fix
2025-02-26 18:19:28 +01:00
Joost Lekkerkerker
25ee2e58a5 Add translatable states to dryer job state in SmartThings (#139370)
* Add translatable states to washer job state in SmartThings

* Add translatable states to dryer job state in Smartthings

* fix

* fix
2025-02-26 18:15:14 +01:00
Joost Lekkerkerker
561b3ae21b Add translatable states to dryer machine state in Smartthings (#139369) 2025-02-26 18:14:59 +01:00
J. Diego Rodríguez Royo
5be7f49146 Improve Home Connect oven cavity temperature sensor (#139355)
* Improve oven cavity temperature translation

* Fetch cavity temperature unit

* Handle generic Home Connect error

* Improve test clarity
2025-02-26 18:11:40 +01:00
Joost Lekkerkerker
2694828451 Add translatable states to washer job state in SmartThings (#139368)
* Add translatable states to washer job state in SmartThings

* fix

* Update homeassistant/components/smartthings/sensor.py
2025-02-26 18:07:56 +01:00
Joost Lekkerkerker
3eea932b24 Add translatable states to robot cleaner turbo mode in SmartThings (#139364) 2025-02-26 17:53:16 +01:00
Joost Lekkerkerker
468208502f Add translatable states to smoke detector in SmartThings (#139365) 2025-02-26 17:52:57 +01:00
Joost Lekkerkerker
92268f894a Add translatable states to washer machine state in SmartThings (#139366) 2025-02-26 17:34:29 +01:00
Joost Lekkerkerker
5e5fd6a2f2 Add translatable states to robot cleaner cleaning mode in SmartThings (#139362)
* Add translatable states to robot cleaner cleaning mode in SmartThings

* Update homeassistant/components/smartthings/strings.json

* Update homeassistant/components/smartthings/strings.json

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-02-26 17:33:13 +01:00
Joost Lekkerkerker
cadee73da8 Add translatable states to robot cleaner movement in SmartThings (#139363) 2025-02-26 17:25:50 +01:00
Joost Lekkerkerker
51099ae7d6 Add translatable states to oven machine state (#139358) 2025-02-26 17:13:02 +01:00
Joost Lekkerkerker
b777c29bab Add translatable states to oven job state in SmartThings (#139361) 2025-02-26 17:12:27 +01:00
Joost Lekkerkerker
fc1190dafd Add translatable states to oven mode in SmartThings (#139356) 2025-02-26 16:59:20 +01:00
Joost Lekkerkerker
775a81829b Add translatable states to SmartThings media playback (#139354)
Add translatable states to media playback
2025-02-26 16:49:00 +01:00
Joost Lekkerkerker
998757f09e Add translatable states to SmartThings media source input (#139353)
Add translatable states to media source input
2025-02-26 16:40:34 +01:00
Artur Pragacz
b964bc58be Fix variable scopes in scripts (#138883)
Co-authored-by: Erik <erik@montnemery.com>
2025-02-26 16:19:19 +01:00
Joost Lekkerkerker
bd80a78848 Set options for alarm sensor in SmartThings (#139345)
* Set options for alarm sensor in SmartThings

* Set options for alarm sensor in SmartThings

* Fix
2025-02-26 17:18:59 +02:00
Joost Lekkerkerker
37c8764426 Set options for dishwasher machine state sensor in SmartThings (#139347)
* Set options for dishwasher machine state sensor in SmartThings

* Fix
2025-02-26 17:18:37 +02:00
Joost Lekkerkerker
9262dec444 Set options for dishwasher job state sensor in SmartThings (#139349) 2025-02-26 17:18:14 +02:00
Joost Lekkerkerker
3c3c4d2641 Use particulate matter device class in SmartThings (#139351)
Use particule matter device class in SmartThings
2025-02-26 17:17:55 +02:00
Bram Kragten
c1898ece80 Update frontend to 20250226.0 (#139340)
Co-authored-by: Robert Resch <robert@resch.dev>
2025-02-26 16:13:45 +01:00
Jan Bouwhuis
fdf69fcd7d Improve calculating supported features in template light (#139339) 2025-02-26 15:09:20 +00:00
Joost Lekkerkerker
e403bee95b Set options for carbon monoxide detector sensor in SmartThings (#139346) 2025-02-26 16:05:59 +01:00
Joost Lekkerkerker
9be8fd4eac Change no fixtures comment in SmartThings (#139344) 2025-02-26 16:59:23 +02:00
Artur Pragacz
e09b40c2bd Improve logging for selected options in Onkyo (#139279)
Different error for not selected option
2025-02-26 15:51:16 +01:00
Joost Lekkerkerker
2826198d5d Add entity translations to SmartThings (#139342)
* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* Refactor SmartThings

* fix

* fix

* Add AC tests

* Add thermostat tests

* Add cover tests

* Add device tests

* Add light tests

* Add rest of the tests

* Add oauth

* Add oauth tests

* Add oauth tests

* Add oauth tests

* Add oauth tests

* Bump version

* Add rest of the tests

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Finalize

* Iterate over entities instead

* use set

* use const

* uncomment

* fix handler

* Fix device info

* Fix device info

* Fix lib

* Fix lib

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Fix

* Add fake fan

* Fix

* Add entity translations to SmartThings

* Fix
2025-02-26 15:48:51 +01:00
Jan Bouwhuis
5324f3e542 Add support for swing horizontal mode for mqtt climate (#139303)
* Add support for swing horizontal mode for mqtt climate

* Fix import
2025-02-26 15:44:16 +01:00
Erik Montnemery
7e97ef588b Add keys initiate_flow and entry_type to data entry translations (#138882) 2025-02-26 15:27:52 +01:00
Joost Lekkerkerker
bb120020a8 Refactor SmartThings (#137940) 2025-02-26 15:14:04 +01:00
Marcel van der Veldt
bb9aba2a7d Bump Music Assistant client to 1.1.1 (#139331) 2025-02-26 14:48:18 +01:00
Norbert Rittel
b676c2f61b Improve action descriptions of LIFX integration (#139329)
Improve action description of lifx integration

- fix sentence-casing on two action names
- change "Kelvin" unit name to proper uppercase
- reference 'Theme' and 'Palette' fields by their friendly names for matching translations
- change paint_theme action description to match HA style
2025-02-26 15:24:19 +02:00
Erik Montnemery
0c092f80c7 Add default_db_url flag to WS command recorder/info (#139333) 2025-02-26 14:09:38 +01:00
J. Nick Koston
2bf592d8aa Bump recommended ESPHome Bluetooth proxy version to 2025.2.1 (#139196) 2025-02-26 12:55:03 +00:00
Paul Bottein
e591157e37 Add translations and icon for Twinkly select entity (#139336)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-26 13:44:43 +01:00
Erik Montnemery
ee01aa73b8 Improve error message when failing to create backups (#139262)
* Improve error message when failing to create backups

* Check for expected error message in tests
2025-02-26 13:44:09 +01:00
fwestenberg
0f827fbf22 Bump stookwijzer==1.6.0 (#139332) 2025-02-26 13:31:07 +01:00
Ben Bridts
4dca4a64b5 Bump pybotvac to 0.0.26 (#139330) 2025-02-26 13:26:12 +01:00
Denis Shulyaka
b82886a3e1 Fix anthropic blocking call (#139299) 2025-02-26 12:25:59 +00:00
Matt Zimmerman
fe396cdf4b Update python-smarttub dependency to 0.0.39 (#139313) 2025-02-26 11:59:13 +01:00
Christophe Gagnier
5895245a31 Bump pytechnove to 2.0.0 (#139314) 2025-02-26 11:57:54 +01:00
TheJulianJES
861ba0ee5e Bump ZHA to 0.0.50 (#139318) 2025-02-26 11:52:57 +01:00
Maciej Bieniek
d15f9edc57 Bump accuweather to version 4.1.0 (#139320) 2025-02-26 11:51:35 +01:00
Erik Montnemery
cab6ec0363 Fix homeassistant/expose_entity/list (#138872)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2025-02-26 09:02:17 +01:00
J. Nick Koston
eb26a2124b Adjust remote ESPHome log subscription level on logging change (#139308) 2025-02-26 08:58:13 +01:00
dependabot[bot]
4530fe4bf7 Bump home-assistant/builder from 2024.08.2 to 2025.02.0 (#139316)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-26 08:48:25 +01:00
dependabot[bot]
b1865de58f Bump actions/download-artifact from 4.1.8 to 4.1.9 (#139317)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.8 to 4.1.9.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4.1.8...v4.1.9)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  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-26 08:13:25 +01:00
J. Nick Koston
3ff04d6d04 Bump aioesphomeapi to 29.2.0 (#139309) 2025-02-26 03:14:58 +01:00
peteS-UK
bd306abace Add album artist media browser category to Squeezebox (#139210) 2025-02-25 17:55:53 -06:00
Michael
412ceca6f7 Sort common translation strings (#139300)
sort common strings
2025-02-25 23:22:02 +01:00
J. Diego Rodríguez Royo
8644fb1887 Add missing Home Connect context at event listener registration for appliance options (#139292)
* Add missing context at event listener registration for appliance options

* Add tests
2025-02-25 23:05:52 +01:00
Abílio Costa
622be70fee Remove timeout from vscode test launch configuration (#139288) 2025-02-25 23:02:49 +01:00
Maciej Bieniek
7bc0c1b912 Bump aioshelly to version 13.0.0 (#139294)
* Bump aioshelly to version 13.0.0

* MODEL_BLU_GATEWAY_GEN3 -> MODEL_BLU_GATEWAY_G3
2025-02-25 23:52:44 +02:00
G Johansson
3230e741e9 Remove not used constants in smhi (#139298) 2025-02-25 22:49:41 +01:00
J. Nick Koston
81db3dea41 Add option to ESPHome to subscribe to logs (#139073) 2025-02-25 21:56:39 +01:00
J. Nick Koston
fe348e17a3 Revert "Bump stookwijzer==1.5.8" (#139287) 2025-02-25 21:43:06 +01:00
Pierre Ståhl
03f6508bd8 Fix re-connect logic in Apple TV integration (#139289) 2025-02-25 20:37:01 +00:00
Erik Montnemery
fd47d6578e Adjust recorder validate_statistics handler (#139229) 2025-02-25 20:31:24 +00:00
Denis Shulyaka
df6a5d7459 Bump anthropic to 0.47.2 (#139283) 2025-02-25 20:24:38 +00:00
J. Diego Rodríguez Royo
b8a0cdea12 Add current cavity temperature sensor to Home Connect (#139282) 2025-02-25 19:50:42 +00:00
J. Diego Rodríguez Royo
570e11ba5b Bump aiohomeconnect to 0.15.0 (#139277) 2025-02-25 21:22:30 +02:00
J. Nick Koston
19704cff04 Fix grammar in loader comments (#139276)
https://github.com/home-assistant/core/pull/139270#discussion_r1970315129
2025-02-25 20:10:54 +01:00
Erik Montnemery
51c09c2aa4 Add test fixture ignore_translations_for_mock_domains (#139235)
* Add test fixture ignore_translations_for_mock_domains

* Fix fixture

* Avoid unnecessary attempt to get integration

* Really fix fixture

* Add forgotten parameter

* Address review comment
2025-02-25 20:10:29 +01:00
Michael
ef46552146 Add common state translation string for charging and discharging (#139074)
add common state translation string for charging and discharging
2025-02-25 20:03:14 +01:00
Dan Bishop
75533463f7 Make Radarr unit translation lowercase (#139261)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-25 19:41:47 +01:00
G Johansson
2cd496fdaf Add coordinator to SMHI (#139052)
* Add coordinator to SMHI

* Remove not needed logging

* docstrings
2025-02-25 19:36:45 +01:00
Joost Lekkerkerker
cd4c79450b Bump python-overseerr to 0.7.1 (#139263)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2025-02-25 20:17:11 +02:00
J. Nick Koston
a1d1f6ec97 Fix race in async_get_integrations with multiple calls when an integration is not found (#139270)
* Fix race in async_get_integrations with multiple calls when an integration is not found

* Fix race in async_get_integrations with multiple calls when an integration is not found

* Fix race in async_get_integrations with multiple calls when an integration is not found

* tweaks

* tweaks

* tweaks

* restore lost comment

* tweak test

* comment cache

* improve test

* improve comment
2025-02-25 19:08:53 +01:00
Erik Montnemery
a910fb879c Bump securetar to 2025.2.1 (#139273) 2025-02-25 19:23:32 +02:00
Noah Groß
4e904bf5a3 Use new python library for picnic component (#139111) 2025-02-25 17:21:31 +01:00
Artur Pragacz
38cc26485a Add sound mode support to Onkyo (#133531) 2025-02-25 17:21:05 +01:00
Paul Traina
2bba185e4c Update adext to 0.4.4 (#139151) 2025-02-25 17:09:51 +01:00
tronikos
743cc42829 Add Burbank Water and Power (BWP) virtual integration (#139027) 2025-02-25 17:08:32 +01:00
Galorhallen
f3021b40ab Add support for effects in Govee lights (#137846) 2025-02-25 17:04:53 +01:00
Manu
9ec9110e1e Rename description field to notes in Habitica action (#139271) 2025-02-25 17:03:31 +01:00
Peter Brøndum
433c2cb43e Change touchline dependency to pytouchline_extended (#136362)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-25 17:00:35 +01:00
Joost Lekkerkerker
fcffe5151d Use right import in ezviz (#139272) 2025-02-25 17:00:09 +01:00
Norbert Rittel
ca1677cc46 Improve description of openweathermap.get_minute_forecast action (#139267) 2025-02-25 16:52:58 +01:00
Martin Hjelmare
27f7085b61 Create repair for configured unavailable backup agents (#137382)
* Create repair for configured not loaded agents

* Rework to repair issue

* Extract logic to config function

* Update test

* Handle empty agend ids config update

* Address review comment

* Update tests

* Address comment
2025-02-25 16:27:56 +01:00
Jan-Philipp Benecke
f607b95c00 Add request made by rest_command to debug log (#139266) 2025-02-25 17:27:18 +02:00
Norbert Rittel
72502c1a15 Use proper camel-case for "VeSync", fix sentence-casing in title (#139252)
Just a quick follow-up PR to fix these two spelling mistakes.
2025-02-25 17:09:15 +02:00
Renier Moorcroft
47e78e9008 Fix Ezviz entity state for cameras that are offline (#136003) 2025-02-25 15:55:31 +01:00
Andrew
1fb51ef189 Add OpenWeatherMap Minute forecast action (#128799) 2025-02-25 15:54:10 +01:00
elmurato
f96e31fad8 Set Minecraft Server quality scale to silver (#139265) 2025-02-25 15:51:43 +01:00
Matrix
e99bf21a36 Fix yolink lock v2 state update (#138710) 2025-02-25 15:51:21 +01:00
Markus Adrario
3059d06960 Add Homee number platform (#138962)
Co-authored-by: Joostlek <joostlek@outlook.com>
2025-02-25 15:49:12 +01:00
Maikel Punie
2b55f3af36 Bump Velbus to bronze quality scale (#139256) 2025-02-25 15:42:12 +01:00
fwestenberg
776501f5e6 Bump stookwijzer to 1.5.8 (#139258) 2025-02-25 14:41:36 +00:00
Dan Bishop
1f93d2cefb Make Sonarr component's units translatable (#139254)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-25 15:26:22 +01:00
J. Nick Koston
1633700a58 Bump cached-ipaddress to 0.9.2 (#139245) 2025-02-25 15:25:07 +01:00
Norbert Rittel
923ec71bf6 Consistently capitalize "Velbus" brand name, camel-case "VelServ" (#139257) 2025-02-25 15:10:21 +01:00
Shay Levy
7566046995 Bump aiowebostv to 0.7.1 (#139244) 2025-02-25 16:10:03 +02:00
elmurato
b9dbf07a5e Set PARALLEL_UPDATES in all Minecraft Server platforms (#139259) 2025-02-25 15:09:58 +01:00
Cameron Ring
b8b153b87f Make default dim level configurable in Lutron (#137127) 2025-02-25 15:07:42 +01:00
J. Nick Koston
d4dd8fd902 Bump fnv-hash-fast to 1.2.6 (#139246) 2025-02-25 15:01:45 +01:00
J. Diego Rodríguez Royo
a3bc55f49b Add parallel updates to Home Connect (#139255) 2025-02-25 14:50:12 +01:00
Robert Resch
7ba94a680d Revert "Bump Stookwijzer to 1.5.7" (#139253) 2025-02-25 14:46:43 +01:00
elmurato
664e09790c Improve Minecraft Server config flow tests (#139251) 2025-02-25 14:22:30 +01:00
Dan Bishop
d45fce86a9 Make Radarr units translatable (#139250)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-25 14:18:12 +01:00
LG-ThinQ-Integration
507c0739df Add missing ATTR_HVAC_MODE of async_set_temperature to LG ThinQ (#137621)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-02-25 14:14:04 +01:00
Maikel Punie
d7301c62e2 Rework the velbus configflow to make it more user-friendly (#135609) 2025-02-25 14:02:10 +01:00
cdnninja
befed910da Add Re-Auth Flow to vesync (#137398)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-25 13:48:31 +01:00
Manu
2509353221 Add update reward action to Habitica integration (#139157) 2025-02-25 13:40:21 +01:00
Joost Lekkerkerker
694a77fe3c Bump aiowithings to 3.1.6 (#139242) 2025-02-25 12:24:32 +00:00
LG-ThinQ-Integration
bc7f5f3981 Add climate's swing mode to LG ThinQ (#137619)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-02-25 12:58:01 +01:00
Norbert Rittel
cea5cda881 Treat "Twist Assist" & "Block to Block" as feature names and add descriptions in Z-Wave (#139239)
Treat "Twist Assist" & "Block to Block" as feature names and add descriptions

- name-case both "Twist Assist" and "Block to Block" so those feature names don't get translated
- for proper translation of both features add useful descriptions of what they actually do
- fix sentence-casing on "Operation type"
2025-02-25 12:47:18 +01:00
Norbert Rittel
9e063fd77c logbook.log action: Make description of name field UI-friendly (#139200) 2025-02-25 12:36:59 +01:00
Joost Lekkerkerker
01fb6841da Initiate source list as instance variable in Volumio (#139243) 2025-02-25 12:36:20 +01:00
Dan Raper
48d3dd88a1 Add Ohme voltage and slot list sensor (#139203)
* Bump ohmepy to 1.3.1

* Bump ohmepy to 1.3.2

* Add voltage and slot list sensor

* CI fixes

* Change slot list sensor name

* Fix snapshot tests
2025-02-25 12:36:08 +01:00
Andre Lengwenus
051cc41d4f Fix units for LCN sensor (#138940) 2025-02-25 12:35:47 +01:00
Markus Adrario
661b55d6eb Add Homee valve platform (#139188) 2025-02-25 12:06:24 +01:00
Jan-Philipp Benecke
d197acc069 Reduce requests made by webdav (#139238)
* Reduce requests made by webdav

* Update homeassistant/components/webdav/backup.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-25 11:46:40 +01:00
Erik Montnemery
bf190a8a73 Add backup helper (#139199)
* Add backup helper

* Add hassio to stage 1

* Apply same changes to newly merged `webdav` and `azure_storage` to fix inflight conflict

* Address comments, add tests

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-25 10:19:41 +01:00
Josef Zweck
c386abd49d Bump pylamarzocco to 1.4.7 (#139231) 2025-02-25 09:32:06 +01:00
Jan-Philipp Benecke
6342d8334b Bump aiowebdav2 to 0.3.0 (#139202) 2025-02-25 09:18:41 +01:00
Erik Montnemery
24bb13e0d1 Fix kitchen_sink statistic issues (#139228) 2025-02-25 09:13:10 +01:00
Dan Raper
212c42ca77 Bump ohmepy to 1.3.2 (#139013) 2025-02-25 02:25:31 +01:00
J. Diego Rodríguez Royo
54843bb422 Add missing exception translation to Home Connect (#139223) 2025-02-25 02:21:25 +01:00
Noah Husby
c115a7f455 Bump aiostreammagic to 2.11.0 (#139213) 2025-02-25 02:20:48 +01:00
Marc Mueller
597c0ab985 Configure trusted publishing for PyPI file upload (#137607) 2025-02-25 02:05:30 +01:00
J. Diego Rodríguez Royo
b86bb75e5e Add missing exception translation to Home Connect (#139218)
Add missing exception translation
2025-02-24 23:25:24 +01:00
Erik Montnemery
b662d32e44 Fix bug in check_translations fixture (#139206)
* Fix bug in check_translations fixture

* Fix check for ignored translation errors

* Fix websocket_api test
2025-02-24 22:19:18 +01:00
Erik Montnemery
72f690d681 Add missing translations to switchbot (#139212) 2025-02-24 21:34:41 +01:00
Manu
33c9f3cc7d Bump pyloadapi to v1.4.2 (#139140) 2025-02-24 20:09:17 +00:00
Josef Zweck
a1076300c8 Bump onedrive quality scale to platinum (#137451) 2025-02-24 20:03:21 +00:00
Josef Zweck
dc92e912c2 Add azure_storage as backup agent (#134085)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-24 20:59:51 +01:00
peteS-UK
2451e5578a Add support for Apps and Radios to Squeezebox Media Browser (#135009) 2025-02-24 13:39:04 -06:00
Tristan
1c83dab0a1 Update Linkplay constants for Arylic S10+ and Arylic Up2Stream Amp 2.1 (#138198) 2025-02-24 20:29:55 +01:00
J. Nick Koston
b42973040c Bump aiohttp to 3.11.13 (#139197)
changelog: https://github.com/aio-libs/aiohttp/compare/v3.11.12...v3.11.13
2025-02-24 19:01:25 +01:00
Erik Montnemery
6507955a14 Fix race in WS command recorder/info (#139177)
* Fix race in WS command recorder/info

* Add comment

* Remove unnecessary local import
2025-02-24 18:55:13 +01:00
Martin Hjelmare
79dbc70470 Fix return value for DataUpdateCoordinator._async setup (#139181)
Fix return value for coodinator async setup
2025-02-24 18:09:51 +01:00
cdnninja
2bab7436d3 Add vesync debug mode in library (#134571)
* Debug mode pass through

* Correct code, shouldn't have been lambda

* listener for change

* ruff

* Update manifest.json

* Reflect correct logger title

* Ruff fix from merge
2025-02-24 18:07:05 +01:00
elmurato
60479369b6 Remove name in Minecraft Server config entry (#139113)
* Remove CONF_NAME in config entry

* Revert config entry version from 4 back to 3

* Add data_description for address in strings.json

* Use config entry title as coordinator name

* Use constant as mock config entry title
2025-02-24 19:02:18 +02:00
Jan-Philipp Benecke
ec3f5561dc Add WebDAV backup agent (#137721)
* Add WebDAV backup agent

* Process code review

* Increase timeout for large uploads

* Make metadata file based

* Update IQS

* Grammar

* Move to aiowebdav2

* Update helper text

* Add decorator to handle backup errors

* Bump version

* Missed one

* Add unauth handling

* Apply suggestions from code review

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

* Update homeassistant/components/webdav/__init__.py

* Update homeassistant/components/webdav/config_flow.py

* Remove timeout

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

* remove unique_id

* Add tests

* Add missing tests

* Bump version

* Remove dropbox

* Process code review

* Bump version to relax pinned dependencies

* Process code review

* Add translatable exceptions

* Process code review

* Process code review

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-02-24 18:00:48 +01:00
Manu
2e5f56b70d Refactor to-do list order and reordering in Habitica (#138566) 2025-02-24 16:36:20 +00:00
Manu
461039f06a Add translations for exceptions and data descriptions to pyLoad integration (#138896) 2025-02-24 16:23:14 +00:00
Erik Montnemery
351e594fe4 Add flag to backup store to track backup wizard completion (#138368)
* Add flag to backup store to track backup wizard completion

* Add comment

* Update hassio tests

* Update tests

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-24 17:14:47 +01:00
Shay Levy
377da5f954 Update LG webOS TV diagnostics to use tv_info and tv_state dictionaries (#139189) 2025-02-24 16:11:07 +01:00
tdfountain
51a881f3b5 Add ambient temperature and humidity status sensors to NUT (#124181)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-24 14:09:43 +00:00
SteveDiks
5025e31129 Bump Weheat to 2025.2.22 (#139186) 2025-02-24 14:01:40 +01:00
laiho-vogels
f98720e525 Change code owner - MotionMount integration (#139187) 2025-02-24 13:59:34 +01:00
Antonio Larrosa
37240e811b Add melcloud standard horizontal vane modes (#136654)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-24 13:57:21 +01:00
Norbert Rittel
0b7a023d2e Fix description of cycle field in input_select.select_previous action (#139032) 2025-02-24 12:56:06 +00:00
Martin Hjelmare
beec67a247 Bump zwave-js-server-python to 0.60.1 (#139185)
Bump zwave-js-server-python 0.60.1
2025-02-24 14:52:31 +02:00
Luke Lashley
571349e3a2 Add Snoo integration (#134243)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-24 13:45:10 +01:00
Artur Pragacz
d9eb248e91 Better handle runtime recovery mode in bootstrap (#138624)
* Better handle runtime recovery mode in bootstrap

* Add test
2025-02-24 13:23:39 +01:00
Erik Montnemery
fc8affd243 Remove setup of rpi_power from onboarding (#139168)
* Remove setup of rpi_power from onboarding

* Remove test
2025-02-24 12:33:14 +01:00
Franck Nijhof
4d6fd1b10f Merge branch 'master' into dev 2025-02-24 09:39:09 +00:00
LG-ThinQ-Integration
257242e6e3 Remove unnecessary min/max setting of WATER_HEATER (#138969)
Remove unnecessary min/max setting

Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-02-24 09:37:25 +01:00
Philipp S
7f494c235c Consider the zone radius in proximity distance calculation (#138819)
* Fix proximity distance calculation

The distance is now calculated to the edge of the zone instead of the centre

* Adjust proximity test expectations to corrected distance calculation

* Add proximity tests for zone changes

* Improve comment on proximity distance calculation

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>

* Apply suggestions from code review

---------

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2025-02-24 09:28:23 +01:00
dependabot[bot]
8c42db7501 Bump actions/upload-artifact from 4.6.0 to 4.6.1 (#139161) 2025-02-24 09:12:35 +01:00
tronikos
183bbcd1e1 Bump androidtvremote2 to 0.2.0 (#139141) 2025-02-24 08:53:23 +01:00
Shay Levy
8c4b8028cf Bump aiowebostv to 0.7.0 (#139145) 2025-02-24 08:52:53 +01:00
dependabot[bot]
ea1045d826 Bump github/codeql-action from 3.28.9 to 3.28.10 (#139162) 2025-02-24 08:42:15 +01:00
Pete Sage
db5bf41790 bump soco to 0.30.9 (#139143) 2025-02-23 21:37:25 -06:00
SLaks
580c6f2684 Allow arbitrary Gemini attachments (#138751)
* Gemini: Allow arbitrary attachments

This lets me use Gemini to extract information from PDFs, HTML, or other files.

* Gemini: Only add deprecation warning when deprecated parameter has a value

* Gemini: Use Files.upload() for both images and other files

This simplifies the code.

Within the Google client, this takes a different codepath (it uploads images as a file instead of re-saving them into inline bytes).  I think that's a feature (it's probably more efficient?).

* Gemini: Deduplicate filenames
2025-02-23 16:11:38 -08:00
Josef Zweck
d62c18c225 Fix flakey onedrive tests (#139129) 2025-02-23 20:06:28 +01:00
Martin Hjelmare
8f9f9bc8e7 Complete remember the milk typing (#139123) 2025-02-23 20:59:10 +02:00
J. Nick Koston
6ad6e82a23 Bump thermobeacon-ble to 0.8.0 (#139119) 2025-02-23 19:41:38 +01:00
Josef Zweck
3d507c7b44 Change backup listener calls for existing backup integrations (#138988) 2025-02-23 18:40:31 +01:00
Martin Hjelmare
4f5c7353f8 Test remember the milk configurator (#139122) 2025-02-23 17:34:17 +01:00
Martin Hjelmare
0b961d98f5 Move remember the milk config storage to own module (#138999) 2025-02-23 16:32:55 +01:00
J. Diego Rodríguez Royo
1cd82ab8ee Deprecate Home Connect command actions (#139093)
* Deprecate command actions

* Improve issue description

* Improve issue description

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-23 16:18:20 +01:00
Josef Zweck
c1e5673cbd Allow rename of the backup folder for OneDrive (#138407) 2025-02-23 14:46:37 +01:00
Andre Lengwenus
800fe1b01e Remove individual lcn devices for each entity (#136450) 2025-02-23 14:42:54 +01:00
Tom Brien
15ca2fe489 Waze action support entities (#139068) 2025-02-23 14:21:41 +01:00
Joost Lekkerkerker
bd919159e5 Bump aiohue to 4.7.4 (#139108) 2025-02-23 13:59:30 +01:00
J. Diego Rodríguez Royo
6ebda9322d Fetch allowed values for select entities at Home Connect (#139103)
Fetch allowed values for enum settings
2025-02-23 13:54:02 +01:00
Michael
4ca39636e2 Backup location feature requires Synology DSM 6.0 and higher (#139106)
* the filestation api requires dsm 6.0

* fix tests
2025-02-23 13:27:14 +01:00
J. Diego Rodríguez Royo
f7a6d163bb Add Home Connect functional light color temperature percent setting (#139096)
Add functional light color temperature percent setting
2025-02-23 12:44:55 +01:00
David Bonnes
746d1800f9 Add tests to Evohome for its native services (#139104)
initial commit
2025-02-23 11:43:25 +00:00
Paulus Schoutsen
91668e99e3 OpenAI to report when running out of funds (#139088) 2025-02-23 11:51:25 +02:00
Diogo Gomes
0797c3228b Bump pyprosegur to 0.0.14 (#139077)
bump pyprosegur
2025-02-23 10:35:00 +02:00
javers99
8ce2727447 Fix typo in SSH connection string for cisco ios device_tracker (#138584)
Update device_tracker.py

Typo in "uft-8" -> pxssh.pxssh(encoding="utf-8")
2025-02-23 01:45:44 +01:00
J. Diego Rodríguez Royo
5b0eca7f85 Add select setting entities to Home Connect (#138884)
* Add select setting entities

* Improvements
2025-02-23 01:42:25 +01:00
Michael
b1b65e4d56 Bump py-synologydsm-api to 2.7.0 (#139082)
bump py-synologydsm-api to 2.7.0
2025-02-23 00:59:51 +01:00
Indu Prakash
17c1c0e155 Remove unnecessary debug message from vesync (#139083)
Remove unnecessary debug write
2025-02-23 01:35:32 +02:00
J. Nick Koston
5a0a3d27d9 Bump aiodiscover to 2.6.1 (#139055)
changelog: https://github.com/Bluetooth-Devices/aiodiscover/compare/v2.6.0...v2.6.1
2025-02-22 23:11:28 +02:00
LG-ThinQ-Integration
d821aa9162 Fix dryer's remaining time issue (#138764)
Fix dryer's remain_time issue

Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-02-22 15:51:54 -05:00
J. Nick Koston
93b01a3bc3 Fix minimum schema version to run event_id_post_migration (#139014)
* Fix minimum version to run event_id_post_migration

The table rebuild to fix the foreign key constraint was added
in https://github.com/home-assistant/core/pull/120779 but the
schema version was not bumped so we need to make sure
any database that was created with schema 43 or older
still has the migration run as otherwise they will not
be able to purge the database with SQLite since each
delete in the events table will due a full table scan
of the states table to look for a foreign key that is
not there

fixes #138818

* Apply suggestions from code review

* Update homeassistant/components/recorder/migration.py

* Update homeassistant/components/recorder/migration.py

* Update homeassistant/components/recorder/const.py

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* update tests, add more cover

* update tests, add more cover

* Update tests/components/recorder/test_migration_run_time_migrations_remember.py
2025-02-22 15:39:12 -05:00
J. Diego Rodríguez Royo
98c6a578b7 Add buttons to Home Connect (#138792)
* Add buttons

* Fix stale documentation
2025-02-22 21:14:11 +01:00
J. Diego Rodríguez Royo
92788a04ff Add entities that represent program options to Home Connect (#138674)
* Add program options as entities

* Use program options constraints

* Only fetch the available options on refresh

* Extract the option definitions getter from the loop

* Add the option entities only when it is required

* Fix typo
2025-02-22 21:08:39 +01:00
Joost Lekkerkerker
a0c2781355 Fix docstring parameter in entity platform (#139070)
Fix docstring
2025-02-22 20:56:05 +01:00
Michael
6c0c4bfd74 Bump pyfritzhome to 0.6.17 (#139066)
bump pyfritzhome to 0.6.17
2025-02-22 20:53:53 +01:00
Frederic Mariën
f3dd772b43 Bump pyrisco to 0.6.7 (#139065) 2025-02-22 21:25:19 +02:00
J. Nick Koston
648c750a0f Bump ulid-transform to 1.2.1 (#139054)
changelog: https://github.com/Bluetooth-Devices/ulid-transform/compare/v1.2.0...v1.2.1
2025-02-22 21:21:21 +02:00
elmurato
f369ded93d Use ConfigEntry.runtime_data to store Minecraft Server runtime data (#139039) 2025-02-22 20:20:51 +01:00
J. Nick Koston
4b342b7dd4 Bump cached-ipaddress to 0.8.1 (#139061)
changelog: https://github.com/Bluetooth-Devices/cached-ipaddress/compare/v0.8.0...v0.8.1
2025-02-22 21:20:06 +02:00
fwestenberg
f7e8bc458f Bump Stookwijzer to 1.5.7 (#139063) 2025-02-22 21:19:53 +02:00
Norbert Rittel
ee206a5a17 Improve descriptions in nuki.lock_n_go action (#139067) 2025-02-22 20:12:28 +01:00
J. Nick Koston
883e14b409 Bump fnv-hash-fast to 1.2.3 (#139059) 2025-02-22 19:35:35 +01:00
J. Nick Koston
f5bdd4594d Bump aiohttp-fast-zlib to 0.2.3 (#139062) 2025-02-22 12:35:27 -06:00
J. Nick Koston
c806638448 Bump aiodhcpwatcher to 1.1.1 (#139058) 2025-02-22 19:34:40 +01:00
J. Nick Koston
539adaf128 Bump async-interrupt to 1.2.2 (#139056) 2025-02-22 19:34:06 +01:00
G Johansson
7e5617fd54 Bump holidays to 0.67 (#139036) 2025-02-22 14:36:24 +02:00
G Johansson
4a0b1b74e3 Implement base entity for smhi (#139042) 2025-02-22 14:36:09 +02:00
G Johansson
f5263203f5 Fix station parser problem in Trafikverket Train (#139035) 2025-02-22 14:35:23 +02:00
J. Nick Koston
9a1f2b52cd Bump habluetooth to 3.24.0 (#139021)
changelog: https://github.com/Bluetooth-Devices/habluetooth/compare/v3.22.1...v3.24.0
2025-02-22 14:07:04 +02:00
Erik Montnemery
037bdb6996 Adjust config entry state check in unifi (#138906)
* Adjust config entry state check in unifi

* Apply suggestions from code review

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>

* Format code

---------

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2025-02-22 13:06:54 +01:00
Ivan Lopez Hernandez
3160b7baa0 Swap the Gemini SDK to the newly released Unified SDK (#138246)
* Swapped the old GenAI client with the newly realeased one

* Fixed the Generate Content Action, Config Flow loading and code cleanup

* Add a function to mask the issues with Tools which start with Hass

* Fix most tests

* google-genai==1.1.0

* fixes

* Fixed the remaining tests

* Adressed comments

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: tronikos <tronikos@users.noreply.github.com>
2025-02-21 22:41:05 -08:00
Claudio Ruggeri - CR-Tech
baa3b15dbc Fix write_registers calling after the upgrade of pymodbus to 3.8.x (#139017) 2025-02-21 21:16:15 -06:00
Stephan Jauernick
bf83f5a671 Add button to set date and time for thermopro TP358/TP393 (#135740)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-21 19:40:55 -06:00
LG-ThinQ-Integration
463d9617ac Add target_temp_step attribute to water_heater (#138920)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-02-21 23:49:17 +00:00
Franck Nijhof
cc792403ab 2025.2.5 (#139012) 2025-02-21 22:30:20 +01:00
Martin Hjelmare
3d2ab3b59e Make backup config update a callback (#138925) 2025-02-21 20:40:24 +00:00
Michael
6e71893b50 Bump pyfritzhome 0.6.16 (#139011)
bump pyfritzhome 0.6.16
2025-02-21 21:28:01 +01:00
Franck Nijhof
ba1650bd05 Bump version to 2025.2.5 2025-02-21 19:32:37 +00:00
Bram Kragten
df5f6fc1e6 Update frontend to 20250221.0 (#139006) 2025-02-21 19:31:39 +00:00
Joost Lekkerkerker
0dbdb42947 Omit unknown hue effects (#138992) 2025-02-21 19:27:30 +00:00
Robert Resch
325022ec77 Bump deebot-client to 12.2.0 (#138986) 2025-02-21 19:27:27 +00:00
starkillerOG
3ea1d2823e Bump reolink-aio to 0.12.0 (#138985) 2025-02-21 19:27:24 +00:00
Diogo Gomes
83d9c000d3 Bump pyprosegur to 0.0.13 (#138960) 2025-02-21 19:27:21 +00:00
Michael
266612e4d9 Fix handling of min/max temperature presets in AVM Fritz!SmartHome (#138954) 2025-02-21 19:27:18 +00:00
starkillerOG
dc7cba60bd Fix Reolink callback id collision (#138918) 2025-02-21 19:27:14 +00:00
Dmitry Kuzmenko
d752a3a24c Catch zeep fault as well on GetSystemDateAndTime call. (#138916) 2025-02-21 19:27:11 +00:00
Erik Montnemery
8c3ee80203 Validate hassio backup settings (#138880)
* Validate hassio backup settings

* Add snapshots

* Don't reset addon and folder settings

* Adapt to changes in BackupConfig.update
2025-02-21 19:27:07 +00:00
Michael
94555f533b Bump pyfritzhome to 0.6.15 (#138879) 2025-02-21 19:27:04 +00:00
Erik Montnemery
6da33a8883 Correct backup date when reading a backup created by supervisor (#138860) 2025-02-21 19:27:01 +00:00
starkillerOG
d42e31b5e7 Fix playback for encrypted Reolink files (#138852) 2025-02-21 19:26:58 +00:00
Michael Hansen
441917706b Add assistant filter to expose entities list command (#138817) 2025-02-21 19:26:55 +00:00
Pete Sage
12e530dc75 Fix TV input source option for Sonos Arc Ultra (#138778)
initial commit
2025-02-21 19:26:51 +00:00
Erik Montnemery
59651c6f10 Don't allow setting backup retention to 0 days or copies (#138771)
* Don't allow setting backup retention to 0 days or copies

* Add tests
2025-02-21 19:26:48 +00:00
Niv Steingarten
ac21d2855c Bump pyrympro from 0.0.8 to 0.0.9 (#138753) 2025-02-21 19:26:45 +00:00
Erik Montnemery
6070feea73 Clean up translations for mocked integrations inbetween tests (#138732)
* Clean up translations for mocked integrations inbetween tests

* Adjust code, add test

* Fix docstring

* Improve cleanup, add test

* Fix test
2025-02-21 19:26:42 +00:00
Joost Lekkerkerker
167881e434 Bump airgradient to 0.9.2 (#138725)
* Bump airgradient to 0.9.2

* Bump airgradient to 0.9.2
2025-02-21 19:26:39 +00:00
Erik Montnemery
35bcf82627 Correct invalid automatic backup settings when loading from store (#138716)
* Correct invalid automatic backup settings when loading from store

* Improve docstring

* Improve tests
2025-02-21 19:26:36 +00:00
Erik Montnemery
66bb501621 Correct backup filename on delete or download of cloud backup (#138704)
* Correct backup filename on delete or download of cloud backup

* Improve tests

* Address review comments
2025-02-21 19:26:33 +00:00
Saswat Padhi
179ba8309d Opower: Fix unavailable "start date" and "end date" sensors (#138694)
avoid passing string into date device class
2025-02-21 19:26:30 +00:00
cdnninja
2b7543aca2 Bump pyvesync for vesync (#138681)
* bump pyvesync

* fix tests

* Test fix
2025-02-21 19:26:27 +00:00
Shai Ungar
1e49e04491 Rename "returned" state to "alert" (#138676)
Rename "returned" state to "alert" in icons, services, and strings files
2025-02-21 19:26:24 +00:00
Luca Bensi
e60b6482ab Bump pysmarty2 to 0.10.2 (#138625) 2025-02-21 19:26:19 +00:00
Brett Adams
7b82781f4c Bump tesla-fleet-api to v0.9.10 (#138575)
bump
2025-02-21 19:22:30 +00:00
J. Nick Koston
8078e41cad Allow ignored thermobeacon devices to be set up from the user flow (#139009)
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 thermobeacon
2025-02-21 21:22:06 +02:00
Khole
b40daf0152 Bump pyhive-integration to 1.0.2 (#138569) 2025-02-21 19:15:42 +00:00
cro
417ac56bd6 Fix bug in set_preset_mode_with_end_datetime (wrong typo of frost_guard) (#138402) 2025-02-21 19:14:12 +00:00
Petr V
c9a0814142 Adjust Tuya Water Detector to support 1 as an alarm state (#135933) 2025-02-21 19:14:05 +00:00
Niv Steingarten
2bd9918ee8 Add daily and monthly consumption sensors to the rympro integration (#137953) 2025-02-21 20:13:22 +01:00
Andrew Sayre
98ab16cf99 Bump HEOS quality scale to platinum (#138995) 2025-02-21 20:06:56 +01:00
Bram Kragten
58274160a0 Update frontend to 20250221.0 (#139006) 2025-02-21 20:00:31 +01:00
Shay Levy
fb5af9acd0 Fix Shelly mock initialization for sleepy RPC device in tests (#139003) 2025-02-21 20:52:10 +02:00
Joost Lekkerkerker
672df7355c Omit unknown hue effects (#138992) 2025-02-21 19:30:48 +01:00
Thomas D
7495ea2cc8 Bump qbusmqttapi to 1.3.0 (#139000) 2025-02-21 19:29:50 +01:00
EnjoyingM
42ab3228a0 Bump wolf-comm to 0.0.19 (#138997)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2025-02-21 19:28:47 +01:00
Sam Wright
a92c52e65b Unifi zone based rules (#138974)
* Add support for controlling zone based firewall policies

* Add test

* Address Kane's comments + add real repo

* Add firewall icon
2025-02-21 18:14:52 +01:00
Shay Levy
800f680bd5 Fix Shelly model name for xmod devices (#138984) 2025-02-21 09:53:43 -06:00
Martin Hjelmare
26c60880e4 Add remember the milk entity tests (#138991)
* Add remember the milk entity tests

* Fix docstring
2025-02-21 09:45:00 -06:00
Manu
059a6dddbe Fix off by one bug when sorting tasks in Habitica integration (#138993)
* Fix off-by-one bug when sorting dailies and to-dos in Habitica

* Add test
2025-02-21 09:39:24 -06:00
starkillerOG
0f7cb6b757 Bump reolink-aio to 0.12.0 (#138985) 2025-02-21 16:36:48 +01:00
Manu
8068f82888 Don't fail on successful relogin in pyLoad integration (#138936)
* Don't fail on successful relogin

* logging
2025-02-21 16:16:55 +01:00
Robert Resch
d522571308 Bump deebot-client to 12.2.0 (#138986) 2025-02-21 16:05:14 +01:00
puddly
debee25086 Migrate homeassistant_hardware to use FirmwareInfo instead of just the application type (#138874)
* Migrate `self._probed_firmware_type` to `self._probed_firmware_info`

* Migrate from `firmware_type` to the full `firmware_info`

* Implement `probe_silabs_firmware_type` via `probe_silabs_firmware_info`

* Fix unit tests

* Increase coverage

* Bring test coverage to 100%

* Simplify test per review comment
2025-02-21 09:26:35 -05:00
dependabot[bot]
508b6c8db0 Bump sigstore/cosign-installer from 3.8.0 to 3.8.1 (#138973) 2025-02-21 14:50:21 +01:00
Markus Adrario
97a124b28a Homee: fix state_class of rain sensors. (#138310) 2025-02-21 14:10:45 +01:00
Christopher Fenner
800749728b Extend initial IQS state for ViCare (#138952) 2025-02-21 13:37:08 +01:00
Andrew Sayre
b73c6ed768 Update HEOS host from discovery (#138950) 2025-02-21 13:32:36 +01:00
Pete Sage
1d43cb3f29 Media Player tests patch demo object (#138854) 2025-02-21 13:25:22 +01:00
Sam Wright
56e36cb1ff Bump aiounifi to v82 (#138975) 2025-02-21 13:24:38 +01:00
J. Nick Koston
4f43c971cd Remember inkbird device type in the config entry (#138967) 2025-02-21 13:22:34 +01:00
Jonas Fors Lellky
113e703d5c Mark flexit_bacnet as silver on the quality scale 🥈 (#138951) 2025-02-21 05:31:03 -06:00
Josef Zweck
e59ec8f867 Add ability to get callback when a config entry state changes (#138943)
* Add entry_on_state_change_helper

* undo black

* remove unload

* no coro

* Add tests

* Don't accept coro

* Review feedback

* Add error test

* Make it callback type

* Make it callback type

* Removal test

* change type
2025-02-21 11:55:56 +01:00
puddly
b35d252549 Bump universal-silabs-flasher to v0.0.29 (#138970)
* Bump flasher from 0.0.25 to 0.0.29

* Add new application type
2025-02-20 23:03:26 -05:00
J. Nick Koston
71bdd0e237 Bump inkbird-ble to 0.7.0 (#138964) 2025-02-20 18:53:04 -06:00
proohit
9105542bab Add debug launch configuration for current open test file (#137177) 2025-02-21 00:32:17 +01:00
Diogo Gomes
9cbed483fb Bump pyprosegur to 0.0.13 (#138960) 2025-02-21 00:12:27 +01:00
Luke Hines
c687f37539 Jellyfin - Improve media image quality (#138958) 2025-02-20 22:56:37 +00:00
Josh Gustafson
97b853e2ea Bump arcam-fmj to 1.8.1 (#138959) 2025-02-21 00:16:25 +02:00
epenet
9d241a77b7 Adjust DSL line status options in SFR Box integration (#136425) 2025-02-20 23:14:17 +01:00
cro
1cae504cfe Fix bug in set_preset_mode_with_end_datetime (wrong typo of frost_guard) (#138402) 2025-02-20 22:52:03 +01:00
Petr V
509add8e5c Adjust Tuya Water Detector to support 1 as an alarm state (#135933) 2025-02-20 22:51:49 +01:00
J. Nick Koston
97bf557b32 Restore PaddleSwitchPico (Pico Paddle Remote) device trigger to Lutron Caseta (#137689) 2025-02-20 22:49:26 +01:00
Norbert Rittel
aec7fc1835 Use capitalized "Modbus" as name, replace "slave" with "server" (#138945) 2025-02-20 22:42:29 +01:00
J. Nick Koston
ab299d2bf7 Bump propcache to 0.3.0 (#138949) 2025-02-20 22:39:33 +01:00
Michael
490e012e54 Fix handling of min/max temperature presets in AVM Fritz!SmartHome (#138954) 2025-02-20 22:38:43 +01:00
Arie Catsman
e8ff31b792 Add error handling to enphase_envoy number platform action (#136812) 2025-02-20 22:23:59 +01:00
Franck Nijhof
5f98d5a65a Revert Python 3.13.2 requirement for now (#138948) 2025-02-20 19:42:11 +01:00
Markus Adrario
5d1eb69281 Add light platform to Homee (#138776) 2025-02-20 19:31:31 +01:00
Norbert Rittel
ec7ec993b0 Improve names and descriptions of media_player.xxx_set actions (#138773)
Co-authored-by: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
2025-02-20 18:26:14 +01:00
Erik Montnemery
ff4f4111d0 Minor adjustment of recorder helper (#138941) 2025-02-20 16:28:39 +00:00
Jonas Fors Lellky
66f293c8f3 Add climate entity tests for flexit_bacnet and mark test coverage done (99%) (#138887) 2025-02-20 16:30:50 +01:00
Joost Lekkerkerker
8826714704 Bump ruff to 0.9.7 (#138939) 2025-02-20 16:23:21 +01:00
Erik Montnemery
f828b4e0b9 Adjust config entry state check in vizio (#138905) 2025-02-20 16:18:57 +01:00
Steven Stallion
73442e8443 Add SensorPush Cloud integration (#134223) 2025-02-20 16:15:47 +01:00
Erik Montnemery
0d8c449ff4 Validate hassio backup settings (#138880)
* Validate hassio backup settings

* Add snapshots

* Don't reset addon and folder settings

* Adapt to changes in BackupConfig.update
2025-02-20 16:06:33 +01:00
Erik Montnemery
fb57284561 Remove helper.recorder.async_wait_recorder (#138935) 2025-02-20 15:02:22 +00:00
Dmitry Kuzmenko
b856de225d Catch zeep fault as well on GetSystemDateAndTime call. (#138916) 2025-02-20 15:18:19 +01:00
Josef Zweck
9f7c4648a2 Allow files to be directly deleted in onedrive (#138908)
* Allow files to be directly deleted in onedrive

* let options flow reload

* update description
2025-02-20 13:35:29 +01:00
Andrew Sayre
2d0967994e Fix ability to set HEOS options (#138235) 2025-02-20 13:14:57 +01:00
J. Nick Koston
d2bd45099b Bump habluetooth to 3.22.1 and bleak-retry-connector to 3.9.0 (#138898) 2025-02-20 13:11:14 +01:00
Erik Montnemery
6d6dfce7d1 Adjust cleanup of removed integration spider (#138932) 2025-02-20 12:19:00 +01:00
Erik Montnemery
d9a18c2994 Adjust cleanup of removed integration myq (#138931) 2025-02-20 12:18:40 +01:00
Erik Montnemery
affec21a6a Adjust cleanup of removed integration mazda (#138930) 2025-02-20 12:17:58 +01:00
Erik Montnemery
94869f3210 Adjust cleanup of removed integration linear_garage_door (#138929) 2025-02-20 12:17:10 +01:00
Erik Montnemery
e53617a788 Adjust cleanup of removed integration life360 (#138928) 2025-02-20 12:16:39 +01:00
Erik Montnemery
e916b57714 Adjust cleanup of removed integration eight_sleep (#138926) 2025-02-20 12:16:23 +01:00
Martin Hjelmare
119b296c26 Make backup config update a callback (#138925) 2025-02-20 11:11:34 +00:00
Markus Adrario
20f273f06a Add button platform to Homee (#138923) 2025-02-20 12:07:12 +01:00
Jan-Philipp Benecke
6aae319b1a Allow use of insecure ciphers in rest_command (#138886) 2025-02-20 10:48:45 +01:00
J. Nick Koston
b3e245687c Bump bluetooth-auto-recovery to 1.4.4 (#138895) 2025-02-20 10:48:01 +01:00
starkillerOG
1a56dcfdaf Fix Reolink callback id collision (#138918) 2025-02-20 10:46:24 +01:00
Norbert Rittel
66af5ca1e9 Improve action descriptions of ness_alarm integration (#138921)
- for the panic action change the description to "Triggers a panic _alarm_" as we don't want to trigger a panic ;-)
- for the aux action replace "Trigger …" with "Changes the state of an aux output" as it can turn this off as well
- clarify the description of the state field, dropping "true" for a UI-friendly wording
2025-02-20 10:04:05 +01:00
Erik Montnemery
d24a14442f Adjust cleanup of removed integration aladdin_connect (#138917) 2025-02-20 09:38:15 +01:00
Erik Montnemery
c7169a4ed7 Adjust config entry state checks in nest (#138912) 2025-02-20 09:14:45 +01:00
Erik Montnemery
08358514b4 Adjust config entry state checks in mcp_server (#138913) 2025-02-20 09:14:17 +01:00
Erik Montnemery
1392bab4d5 Adjust config entry state checks in renault (#138910) 2025-02-20 09:11:15 +01:00
Erik Montnemery
e79a1a52c3 Adjust config entry state checks in esphome (#138914) 2025-02-20 09:08:46 +01:00
dependabot[bot]
872cca9935 Bump actions/cache from 4.2.0 to 4.2.1 (#138901) 2025-02-20 09:03:54 +01:00
Erik Montnemery
1bf7e5d749 Adjust config entry state check in yolink (#138904) 2025-02-20 09:01:15 +01:00
Erik Montnemery
2f7a8b4d9d Adjust config entry state checks in reolink (#138909) 2025-02-20 08:58:37 +01:00
Erik Montnemery
0949f7d0ba Adjust config entry state checks in qbus (#138911) 2025-02-20 08:57:55 +01:00
dependabot[bot]
a2ceeb19dc Bump docker/build-push-action from 6.13.0 to 6.14.0 (#138902) 2025-02-20 08:47:37 +01:00
Erik Montnemery
1c3d6b5641 Minor readability improvement of Spotify browse media (#138907) 2025-02-20 08:45:36 +01:00
Saswat Padhi
14375e76a3 Opower: Fix unavailable "start date" and "end date" sensors (#138694)
avoid passing string into date device class
2025-02-19 23:42:09 -08:00
Manu
e5c0183e0f Set parallel_updates in pyLoad integration (#138897)
Set parallel_updates
2025-02-20 08:15:14 +01:00
Manu
5c8fa717bf Move test before setup coordinator _async_setup in pyLoad integration (#138893)
Move setup test to `async_setup` in the coordinator
2025-02-20 08:14:08 +01:00
Thomas D
5d851b6a56 Add light platform to qbus (#136168)
* Add light platform

* Add on/off for light

* Renamed add_entities to async_add_entities

* Revert qbusmqttapi bump

* Align dependency version

* Use AddConfigEntryEntitiesCallback

* Use AddConfigEntryEntitiesCallback
2025-02-20 06:13:13 +01:00
Manu
5dfd358fc9 Bump pyloadapi to 1.4.1 (#138894) 2025-02-19 20:51:13 -06:00
Simone Chemelli
901011de7b Use xmod model info for Shelly XMOD devices (#137013) 2025-02-19 22:47:23 +01:00
Erik Montnemery
ad7780291e Correct backup date when reading a backup created by supervisor (#138860) 2025-02-19 22:40:03 +01:00
Simone Chemelli
eb6993f0a8 Switch cleanup for Shelly (part 1) (#138791) 2025-02-19 22:39:17 +01:00
Glenn Waters
406f894dc1 Environment Canada: Add a detailed forecast action (#138806)
* Add forecast service.

* Add detailed Environment Canada forecast data.

* Add icon and translations.

* Fix missing commas

* Add const.

* Add test.
2025-02-19 15:07:53 -06:00
Franck Nijhof
0a0a96fb3b Add initial basic GitHub Copilot instructions (#137754)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2025-02-19 21:52:20 +01:00
Erik Montnemery
354855ff5f Remove some dead code from the conversation integration (#138878) 2025-02-19 21:51:45 +01:00
Abílio Costa
8e6f2e6ff2 Add LINAK virtual integration supported by Idasen Desk (#138749) 2025-02-19 21:48:27 +01:00
Paulus Schoutsen
0b6f49fec2 Filter out certain intents from being matched in local fallback (#137763)
* Filter out certain intents from being matched in local fallback

* Only filter if LLM agent can control HA
2025-02-19 14:27:42 -06:00
Michael
b2e2ef3119 Bump pyfritzhome to 0.6.15 (#138879) 2025-02-19 21:24:35 +01:00
Norbert Rittel
e360348525 Make description of input_select.select_next action consistent (#138877) 2025-02-19 20:28:09 +01:00
Steven Hartland
4ed4c2cc5c Fix scaffolding generations (#138820) 2025-02-19 20:23:29 +01:00
Norbert Rittel
bc5146db3c Make field description of snips.say_action UI-friendly (#138276) 2025-02-19 20:21:30 +01:00
Maghiel Dijksman
f98e83514d Tuya camera rm duplication (#138794) 2025-02-19 20:03:32 +01:00
Norbert Rittel
e847a8d6a5 Capitalize all occurrences of "Bond" brand name (#138876)
Also makes older action descriptions consistent.
2025-02-19 20:49:30 +02:00
Artur Pragacz
7117708937 Improve reading clarity of steps code in scripts helper (#134395)
* Reorganize steps code in scripts helper

* Address feedback

* Revert to getattr
2025-02-19 19:37:36 +01:00
Josef Zweck
d2ce89882b Bump onedrive-personal-sdk to 0.0.11 (#138861) 2025-02-19 11:52:38 -06:00
Andrew Sayre
1d3fcc67b8 Select preferred discovered HEOS host (#138779)
* Select preffered host from discovery

* Remove invalid test comment
2025-02-19 11:51:47 -06:00
Jonas Fors Lellky
32b854515b Add exception translation for async_set_temperature in integration flexit_bacnet (#138870) 2025-02-19 18:23:58 +01:00
Artur Pragacz
6c3a9cb1a8 Improve reading clarity of steps code in scripts helper part 1 (#138628) 2025-02-19 11:18:28 -06:00
Erik Montnemery
81c909e8ce Revert "Add assistant filter to expose entities list command" (#138867)
Revert "Add assistant filter to expose entities list command (#138817)"

This reverts commit a6bb5dbe2a.
2025-02-19 18:13:36 +01:00
Pete Sage
85f44fa008 Update play_media parameter description in Media Player (#138855) 2025-02-19 16:43:13 +00:00
Markus Adrario
fb3b23aef3 Homee switch platform (#137457) 2025-02-19 15:55:16 +00:00
Erik Montnemery
b70c5710a9 Correct invalid automatic backup settings when loading from store (#138716)
* Correct invalid automatic backup settings when loading from store

* Improve docstring

* Improve tests
2025-02-19 16:24:30 +01:00
Sid
600bfed704 Refactor eheimdigital setup_device_entities (#138837) 2025-02-19 07:54:25 -06:00
Erik Montnemery
af0a862aab Clean up translations for mocked integrations inbetween tests (#138732)
* Clean up translations for mocked integrations inbetween tests

* Adjust code, add test

* Fix docstring

* Improve cleanup, add test

* Fix test
2025-02-19 13:49:31 +01:00
starkillerOG
1733f5d3fb Fix playback for encrypted Reolink files (#138852) 2025-02-19 13:42:53 +01:00
Robert Resch
97c558b694 Add WIND_DIRECTION to SensorDeviceClass and NumberDeviceClass (#138714)
* Add WIND_DIRECTION to SensorDeviceClass

* Add WIND_DIRECTION to NumberDeviceClass

* Fix tests
2025-02-19 12:24:22 +01:00
proohit
d655c51ef9 Adds Tado Child Lock support (#135837) 2025-02-19 11:24:04 +00:00
Joakim Sørensen
618bdba4d3 Add check_connection parameter to cloud login methods and handle AlreadyConnectedError (#138699) 2025-02-19 11:19:03 +01:00
LG-ThinQ-Integration
38efe94def Modify string water_heater's off state (#137627)
* Modify string water_heater's off state

* Modify washer's delay name

---------

Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-02-19 11:00:25 +01:00
Matthias Alphart
0c28b69269 Update xknx to 3.6.0 (#138838) 2025-02-19 10:38:52 +01:00
Jonas Fors Lellky
36c7546e26 Remove unused code in the climate entity of the flexit_bacnet integration (#138840)
Removes unused code in the climate entity

This was unintentionally left in the code when adding a coordinator
2025-02-19 10:26:16 +01:00
Michael Arthur
8d39f298c0 Electric Kiwi: Parallel updates (#138839)
* parallel updates

* Update homeassistant/components/electric_kiwi/select.py
2025-02-19 10:16:06 +01:00
Christopher Fenner
68085ed4f9 Add sensors for pellets boiler in ViCare integration (#138563)
* add buffer sensors

* remove duplicate sensor

* add labels

* Bump PyViCare to 2.43.0

* add fuel need sensor
2025-02-19 09:44:12 +01:00
J. Nick Koston
d97194303a Improve performance of calculating state (#138832)
```
print(timeit.timeit("x.update(y)", setup=x={a:b}
2025-02-19 09:43:41 +01:00
Jonas Fors Lellky
b6cb2bfe5b Add test for flexit_bacnet hvac mode (#138748)
Add test for hvac mode
2025-02-19 09:15:07 +01:00
Michael Arthur
c5222708ed add icon to select (#138834) 2025-02-19 09:05:29 +01:00
Michael Arthur
6cf31e0807 Electric Kiwi: Add quality scale (#138680)
* add quality scale file

* Apply suggestions from code review

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

* add suggestions and add extra missing icon

* update a few based on documentation

* exempt installation parameters

* set a few more documentation items to done

* Update homeassistant/components/electric_kiwi/quality_scale.yaml

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

* update reason for no installation parameters

* set docs installation parameters to done

* revert back to exempt

* add bronze scale

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-02-19 08:43:45 +01:00
HA-Roberto
ff83a14570 Add button for bond light temp toggle feature (#135379)
Co-authored-by: J. Nick Koston <nick@koston.org>
2025-02-19 00:48:29 -06:00
J. Nick Koston
46599a4ac4 Bump habluetooth to 3.22.0 (#138812) 2025-02-18 23:50:11 -06:00
Jan Bouwhuis
689421eddf Move blocking code to executor job in MQTT CI test helper (#138815) 2025-02-19 06:14:07 +01:00
J. Nick Koston
ee5e25aca6 Bump aioesphomeapi to 29.1.1 (#138827) 2025-02-18 21:14:38 -06:00
Michael Hansen
a6bb5dbe2a Add assistant filter to expose entities list command (#138817) 2025-02-18 20:39:44 -05:00
skobow
f8ffbf0506 Set clean_start=True on connect to MQTT broker (#136026)
* Addresses #135443: Set  on connect.

* Make clean start implementation compatible with v2 API

* Add tests

* Do not pass default value for `clean_start` on_connect

* Revert "Do not pass default value for `clean_start` on_connect"

This reverts commit 75806736cf.

* Use partial top pass kwargs to mqtt client connect

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: jbouwh <jan@jbsoft.nl>
2025-02-18 23:11:21 +01:00
Andrew Sayre
6613b46071 Add HEOS group volume down/up actions (#138801)
Add group volume down/up actions
2025-02-18 15:53:59 -06:00
Christopher Fenner
1579e90d58 Fix typos in strings.json files (#138601)
* fix codespell issues

* update nextcloud snapshots

* update weheat snapshots

* update waqi snapshots
2025-02-18 22:36:28 +01:00
Franck Nijhof
b71d5737a5 Update Home Assistant base image to 2025.02.1 (#138746)
* Update Home Assistant base image to 2025.02.1

* Require Python 3.13.2 now
2025-02-18 22:34:08 +01:00
J. Diego Rodríguez Royo
8e887f550e Add connectivity binary sensor to Home Connect (#138795)
Add connectivity binary sensor
2025-02-18 22:08:40 +01:00
J. Diego Rodríguez Royo
1af8b69dd6 Set Home Connect beverages counters as diagnostics (#138798)
Set beverages counters as diagnostics
2025-02-18 22:03:35 +01:00
J. Diego Rodríguez Royo
6ef401251c Add Home Connect entities that weren't added before (#138796)
Added entities that weren't added before
2025-02-18 22:01:13 +01:00
J. Diego Rodríguez Royo
141bcae793 Add Home Connect to .strict-typing (#138799)
* Add Home Connect to .strict-typing

* Fix mypy errors
2025-02-18 21:50:19 +01:00
J. Nick Koston
8ae52cdc4c Fix shelly not being able to be setup from user flow when already discovered (#138807)
raise_on_progress=False was missing in the user flow which
made it impossible to configure a shelly by IP when there
was an active discovery because the flow would abort
2025-02-18 22:05:05 +02:00
Robert Resch
13fe2a9929 Reorder Dockerfile to improve caching (#138789) 2025-02-18 20:31:41 +01:00
Robert Resch
df50863872 Bump uv to 0.6.1 (#138790) 2025-02-18 20:28:41 +01:00
SLaks
82ac3e3fdf Ecobee: Report Humidifier Action (#138756)
Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-02-18 20:11:37 +01:00
Maciej Bieniek
c48797804d Add _shelly._tcp to Shelly zeroconf configuration (#138782)
Add _shelly._tcp to zeroconf
2025-02-18 19:57:10 +01:00
Matrix
e6217efcd6 Add switch flex button support. (#137524) 2025-02-18 19:23:27 +01:00
Parker Brown
8dd1e9d101 Add threshold sensor to Aranet (#137291)
* Add threshold level sensor description to Aranet component

* Use Color enum for status options

* Add threshold level sensor tests for Aranet components

* Rename `threshold_level` key to `status`

* Update test to expect 7 sensors instead of 6

* Map sensor status to more human-friendly strings

* Rename `threshold_level` key to `concentration_status`

* Update docstring for  function

* Simplify `get_friendly_status()`

* Rename `concentration_status` to `concentration_level`

* Rename `concentration_status` to `concentration_level` in sensor tests

* Refactor concentration level handling and tests

* Normalize concentration level status values to lowercase

* Add error to translations

* Don't scale status string

* Apply suggestions from code review

Co-authored-by: Shay Levy <levyshay1@gmail.com>

* Rename `concentration_level` to `threshold_indication`

* Update threshold indication translations

* `threshold_indication` → `threshold`

* Capitalize sensor name

Co-Authored-By: Shay Levy <levyshay1@gmail.com>

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2025-02-18 20:16:50 +02:00
Renat Sibgatulin
096468baa4 airq: add more verbose debug logging (#138192) 2025-02-18 19:03:47 +01:00
Andrew Sayre
3659fa4c4e Add HEOS entity service to set group volume level (#136885) 2025-02-18 11:56:50 -06:00
peteS-UK
d1f0e0a70f Add support for announce to Squeezebox media player (#129460)
* initial

* Add support for announce: true to media player

* Move play_announcement to _player

* update snapshot

* conftest update

* remove conftest update

* Update conftest.py

* Test Updates

* Updates post moving functions to library

* test fixes

* Review updates

* Snapshot update

* rebase updates

* Merge updates

* Review updates

* Review updates
2025-02-18 11:22:19 -06:00
Norbert Rittel
a45fb57595 Fix grammar in evohome.reset_system action, consistently add "mode" (#138777)
* Fix grammar in evohome.reset_system action, consistently add "mode"

- fix the grammar with "Sets … and resets …"
- add "mode" to all mode names for consistency

* Revert, removing one excessive "mode"
2025-02-18 08:43:51 -06:00
Pete Sage
e9fcef1b57 Fix TV input source option for Sonos Arc Ultra (#138778)
initial commit
2025-02-18 08:43:00 -06:00
Petar Petrov
a003f89a5e Fix Z-WaveJS inclusion in the background (#138717)
* Fix Z-WaveJS inclusion in the background

* improve async handling

* just return the `requested_grant` to the driver

* handle controller busy state
2025-02-18 15:17:13 +01:00
Erik Montnemery
22c634e626 Don't allow setting backup retention to 0 days or copies (#138771)
* Don't allow setting backup retention to 0 days or copies

* Add tests
2025-02-18 15:16:44 +01:00
Niv Steingarten
46c604fcbe Bump pyrympro from 0.0.8 to 0.0.9 (#138753) 2025-02-18 14:23:25 +01:00
Norbert Rittel
94d3b3919d Make spelling of "BSB-Lan" consistent (#138766) 2025-02-18 13:58:29 +02:00
Norbert Rittel
350b935fa7 Fixing casing mistakes in user-facing strings of renault (#138729)
- use sentence-casing for strings
- use uppercase for "ID"
2025-02-18 12:06:10 +01:00
J. Nick Koston
e660096801 Bump zeroconf to 0.145.1 (#138763) 2025-02-18 10:38:48 +00:00
starkillerOG
f5e1fa6a21 Allow playback of h265 encoded Reolink video (#138667) 2025-02-18 11:17:13 +01:00
Brett Adams
800cdee409 Update Diagnostics in Teslemetry (#138759)
* Testing

* Diag
2025-02-18 09:44:29 +01:00
Jan Bouwhuis
33df208296 Fix temp files of mqtt CI tests not cleaned up properly (#138741)
* Fix temp files of mqtt CI tests not cleaned up properly

* Do not cleanup tempfiles, patch gettempdir only
2025-02-18 08:38:43 +01:00
J. Nick Koston
0dc1151a25 Bump aioesphomeapi to 29.1.0 (#138742) 2025-02-17 17:08:38 -06:00
Christopher Fenner
25865b4849 Bump PyViCare to 2.43.1 (#138737)
bump PyViCare to 2.43.1
2025-02-18 00:28:49 +02:00
Norbert Rittel
5658f9ca40 Fix wrong description of teslemetry.set_scheduled_charging action (#138723)
The action allows the user to set a time at which to start charging, but the action's description uses the wrong word "completed".
2025-02-17 23:28:45 +02:00
Jonas Fors Lellky
f9047d0223 Mark action-exceptions as exempt for flexit_bacnet (#138739)
* Mark action-exceptions as exempt for flexit_bacnet

* Update homeassistant/components/flexit_bacnet/quality_scale.yaml

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-02-17 21:15:37 +01:00
Jonas Fors Lellky
bbfb9fbdae Mark reauthentication-flow as exempt for flexit_bacnet (#138740) 2025-02-17 21:10:18 +01:00
Norbert Rittel
772e7147bd Fix user-facing strings of the NWS integration (#138727)
- fix sentence-casing of "API key" to match common string
- remove excessive trailing period from action name
- reword action description to match HA style
- make "Forecast type" description UI-friendly (a selector is available)
2025-02-17 21:51:30 +02:00
Xitee
9ac60f1c7f Fix small typo in qbittorrent strings.json (#138734) 2025-02-17 20:37:33 +01:00
Sid
3b6e3fe457 Fix race condition on eheimdigital coordinator setup (#138580) 2025-02-17 20:10:56 +01:00
Andrew Sayre
da9fbf21df Update HEOS repair issues quality scale item (#138724) 2025-02-17 20:04:39 +01:00
Norbert Rittel
d7e796e9f9 Fix typos in qBittorrent exceptions strings (#138728) 2025-02-17 17:37:46 +00:00
Erik Montnemery
e0795e6d07 Improve config entry state transitions when unloading and removing entries (#138522)
* Improve config entry state transitions when unloading and removing entries

* Update integrations which check for a single loaded entry

* Update tests checking state after unload fails

* Update homeassistant/config_entries.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-17 18:16:57 +01:00
Joost Lekkerkerker
ff16e587e8 Bump airgradient to 0.9.2 (#138725)
* Bump airgradient to 0.9.2

* Bump airgradient to 0.9.2
2025-02-17 18:45:26 +02:00
LG-ThinQ-Integration
04b826daa1 Add sensors for washer and system boiler in LG ThinQ (#137514)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2025-02-17 16:30:41 +00:00
Abílio Costa
25296e1b8f Move ZHA debug logs handling out of event loop (#138568) 2025-02-17 11:12:55 -05:00
Daniel O'Connor
67fcbc4c28 Add LV-RH131S-WM Air Purifier (#138626)
* Add LV-RH131S-WM Air Purifier

Fix 138486

* Update homeassistant/components/vesync/const.py
2025-02-17 16:29:28 +01:00
Andrew Sayre
34a33e0465 Create HEOS devices after integration setup (#138721)
* Create entities for new players

* Fix docstring typo
2025-02-17 09:28:55 -06:00
Jonas Fors Lellky
82f2e72327 Add translations for exceptions (#138669)
* Add translations for exceptions

* Review comment

* Add translation for exception in the coordinator

* Use same translation string for switch exceptions
2025-02-17 16:18:46 +01:00
Abílio Costa
9422c4de65 Fix snapshots timezone in Cloud tests (#138393)
* Fix snapshots timezone in Cloud tests

* Add explanation comment
2025-02-17 16:01:03 +01:00
Erik Montnemery
4cdc3de94a Correct backup filename on delete or download of cloud backup (#138704)
* Correct backup filename on delete or download of cloud backup

* Improve tests

* Address review comments
2025-02-17 08:38:28 -06:00
Marc Mueller
51aea58c7a Update mypy-dev to 1.16.0a3 (#138655) 2025-02-17 14:46:33 +01:00
epenet
7e388f69b0 Add common entity module to pylint plugin (#138706)
* Add common entity module to pylint plugin

* Fix pylint errors
2025-02-17 14:45:32 +01:00
epenet
d8d054e7dd Improve type hints in base entities (#138708) 2025-02-17 14:45:00 +01:00
Norbert Rittel
4a385ed26c Use correct camel-case for OpenThread, reword error message (#138651)
* Use correct camel-case for OpenThread, reword error message

* Treat "Border Agent ID" as a name by capitalizing it
2025-02-17 13:38:42 +01:00
Michael
df6cb0b824 Add repair-issue that backup location setup is missing in Synology DSM (#138233)
* add missing backup location setup repair-issue

* add tests

* tweak translation strings

* add test for other fixable issues

* remove senseless abort reason no_file_station
2025-02-17 13:03:31 +01:00
ashionky
a7f63e3847 Optimize Refoss state_class of Sensor (#138266)
TOTAL_INCREASING
2025-02-17 13:02:52 +01:00
Robert Resch
b4fac38d8a Bump uv to 0.6.0 (#138707) 2025-02-17 12:42:02 +01:00
Matrix
168e45b0f9 Bump yolink api 0.4.8 (#138703) 2025-02-17 12:24:56 +01:00
Norbert Rittel
1fe644d056 Fix casing in Sensibo action descriptions (#138701)
- treat "Pure Boost" as a feature name
- fix sentence-casing
- capitalize first word
2025-02-17 11:05:39 +01:00
Alberto Geniola
cd13eff8ae Elmax - fix issue 136877 (#138419)
* Fix IPv6 zero-conf discovery not handling hostname correctly.

* Aligned tests.

* Remove redundant !s notation.

* Add IPv6 discovery tests

* Parametrize input_uri to avoid duplicated code

* Update tests/components/elmax/conftest.py

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-02-17 10:01:27 +01:00
Norbert Rittel
e77193fa2e Improve 17track action descriptions by using those from the online docs (#138698)
* Improve 17Track action descriptions using those from the online docs

Also change them to third-person singular to match the descriptive style that Home Assistant prefers.

* Add missing period on 2nd description
2025-02-17 09:08:40 +01:00
Dan Raper
66d16336ea Add preconditioning number entity to Ohme (#138346)
* Add preconditioning number entity

* Updated test snapshots for ohme

* Update test snapshots
2025-02-17 09:07:18 +01:00
Norbert Rittel
ed3ca76696 Update foscam action descriptions to match HA style (#138664)
Update foscam action description to match HA style
2025-02-17 09:03:28 +01:00
Jonas Fors Lellky
f2126a357a Comply with parallel updates quality rule (#138672) 2025-02-17 08:58:21 +01:00
Andrew Sayre
89956adf2e Allow removal of stale HEOS devices (#138677)
Allow device removal
2025-02-17 08:47:11 +01:00
Paulus Schoutsen
c357b3ae65 Move some setups during onboarding to background (#138558)
* Move some setups during onboarding to background

* Update homeassistant/components/onboarding/views.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2025-02-16 23:06:28 -05:00
cdnninja
6b90e7b2c2 Bump pyvesync for vesync (#138681)
* bump pyvesync

* fix tests

* Test fix
2025-02-16 21:33:48 -06:00
fwestenberg
56b51227bb Bump stookwijzer==1.5.4 (#138678) 2025-02-16 19:19:03 -06:00
Markus Lanthaler
93f1597e6d Add latest Nighthawk WiFi 7 routers to V2 models (#138675) 2025-02-16 22:03:57 +01:00
peteS-UK
bdeb24cb61 Add OptionsFlow to Squeezebox to allow setting Browse Limit and Volume Step (#129578)
* Initial

* prettier strings

* Updates

* remove error strings

* prettier again

* Update strings.json

vscode prettier fails check

* update test to remove invalid value

* Remove config_entry __init__

* remove param

* Review updates

* ruff fixes

* Review changes

* Shorten options flow ui string

* Review changes

* Remove errant mock attib

---------

Co-authored-by: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
2025-02-16 15:02:29 -06:00
Shai Ungar
09df6c8706 Rename "returned" state to "alert" (#138676)
Rename "returned" state to "alert" in icons, services, and strings files
2025-02-16 22:33:32 +02:00
Martin Hjelmare
0b7ec96448 Improve remember the milk storage (#138618) 2025-02-16 21:17:26 +01:00
Michael
ccd0e27e84 Allow renaming of backup files in Synology DSM (#138652)
* get backup base file name from meta file

* use BackupNotFound
2025-02-16 20:00:17 +01:00
Keilin Bickar
e0b50ee1e2 Bump sense_energy to 0.13.5 (#138659) 2025-02-16 10:04:45 -08:00
Jonas Fors Lellky
7063636db6 Add quality scale bronze for flexit_bacnet (#138309)
* Add quality scale bronze for flexit_bacnet

* Add new line at end of file

* Remove flexit_bacnet from list of integrations without quality scale

* Add missing translation strings

* Fix review comments

* Remove flexit_bacnet from list of integrations without quality scale

* Review comment

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

* Review comment

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

* Add the complete list of quality scale rules

* Fix lint error

* Use correct formatting for todos

* Fix lint error

* Set all rules above bronze to todo

* Update status for rules that are done

* Update homeassistant/components/flexit_bacnet/quality_scale.yaml

* Update homeassistant/components/flexit_bacnet/quality_scale.yaml

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-02-16 17:06:09 +01:00
Michael
f67fb9985e Allow wifi switches for mesh repeaters in AVM Fritz!Box Tools (#135456)
* create wifi switches for mesh slaves, but disable them by default

* check if mesh isbased on wifi uplink

* fix
2025-02-16 15:12:16 +01:00
Jonas Fors Lellky
2d5e920de0 Flexit bacnet/quality preparations (#138514)
Add data_description for config flow
2025-02-16 14:55:05 +01:00
Norbert Rittel
9e15a33c42 Fix sentence-casing and capitalization of "Zigbee" in smlight (#138647) 2025-02-16 15:46:08 +02:00
Norbert Rittel
e767863ea4 Replace opentherm_gw action key name with friendly name for UI (#138634) 2025-02-16 13:17:47 +01:00
Luca Bensi
7f3270e982 Bump pysmarty2 to 0.10.2 (#138625) 2025-02-16 14:09:15 +02:00
Josef Zweck
95b1cf465b Use gibibytes for onedrive (#138637)
* Use gibibytes for onedrive

* also to strings
2025-02-16 14:08:01 +02:00
Norbert Rittel
3ce8e1683a Fix sentence-casing in ZHA integration, capitalize names (#138636)
* Fix sentence-casing in ZHA integration, capitalize names

* Reorder title and description keys

* Remove wrong trailing commas

* Restore accidental deletion

Co-authored-by: Franck Nijhof <frenck@frenck.nl>

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2025-02-16 12:17:21 +01:00
Teynar
21032ea7cd Add missing unit for Withings snore sensor (#138517) 2025-02-16 10:21:34 +01:00
J. Diego Rodríguez Royo
c75707ec79 Use correct inputs for relative time and duration options (#138619) 2025-02-16 00:29:38 +01:00
Norbert Rittel
9573f7828b Update action description in ecovacs integration to match HA style (#138548) 2025-02-15 21:52:41 +01:00
IceBotYT
d435f7be09 Update integrations screenshot in README (#138555) 2025-02-15 21:50:52 +01:00
Norbert Rittel
a3eb73cfcc Replace alarm action descriptions with wording from online docs (#138608) 2025-02-15 21:46:00 +01:00
Josef Zweck
fdaa640c8e Add issues for data cap to onedrive (#138411)
* Add issues for data cap to onedrive

* brackets

* Fix double space

Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>

---------

Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2025-02-15 21:44:59 +01:00
Bouwe Westerdijk
6059446ae3 Bump plugwise to v1.7.2 (#138613) 2025-02-15 21:39:06 +01:00
CodingSquirrel
827865a1b9 Bump pyeconet to 0.1.28 (#138610) 2025-02-15 21:36:54 +01:00
Nathan Spencer
0a78f2725d Add switch to toggle filter cycle 2 on balboa spas (#138605) 2025-02-15 20:20:33 +01:00
Erik Montnemery
78337a6846 Disable zwave_js testing resetting the controller (#138595)
* Improve zwave_js test of resetting the controller

* Disable the test
2025-02-15 20:16:07 +01:00
J. Diego Rodríguez Royo
78c4d815ce Fix home connect coffe-milk ratio option (#138593)
* Fix home connect milk ratio option

* Use enumeration instead of number selector for coffee-milk ratio
2025-02-15 20:10:27 +01:00
Duco Sebel
482df7408a Provide part of uuid when requesting token for HomeWizard v2 API (#138586) 2025-02-15 16:29:09 +01:00
Markus Jacobsen
05696b5528 Add Event entity states to diagnostics for Bang & Olufsen (#135859)
Add diagnostics for event buttons
2025-02-15 09:28:10 -06:00
Brett Adams
c89d8edb3c Remove dynamic rate limits from Tesla Fleet (#138576)
* remove

* TEsts
2025-02-15 16:27:29 +01:00
Christopher Fenner
08f6e9cd12 Bump PyViCare to 2.43.0 (#138564)
* Bump PyViCare to 2.42.1

* Bump PyViCare to 2.43.0
2025-02-15 16:24:43 +01:00
Nathan Spencer
cbb0dee911 Bump pybalboa to 1.1.3 (#138557) 2025-02-15 16:22:04 +01:00
Brett Adams
798d2326ed Bump tesla-fleet-api to v0.9.10 (#138575)
bump
2025-02-15 16:20:51 +01:00
Khole
91ba9b2239 Bump pyhive-integration to 1.0.2 (#138569) 2025-02-15 14:13:16 +01:00
J. Diego Rodríguez Royo
7a23348b1d Fix and improve Home Connect strings (#138583)
* Fix `hot_water_temperature` strings for tea options

* Improve `deprecated_program_switch` issue description

Co-authored-by: Norbert Rittel <norbert@rittel.de>

* Improve option descriptions strings

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>

---------

Co-authored-by: Norbert Rittel <norbert@rittel.de>
Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
2025-02-15 11:29:40 +01:00
Michael Hansen
30a6a6ad4b Use language util to match intent language (#138560) 2025-02-14 20:51:53 -05:00
J. Nick Koston
4a4c2ff552 Bump zeroconf to 0.144.3 (#138553) 2025-02-14 16:17:35 -08:00
Michael Hansen
e16343ed72 Prevent voice wizard from crashing for wyoming/voip (#138547)
* Prevent voice wizard from crashing for wyoming/voip

* Use stub configuration in websocket API
2025-02-14 15:41:45 -06:00
J. Nick Koston
28dd44504e Bump aioesphomeapi to 29.0.2 (#138549)
changelog: https://github.com/esphome/aioesphomeapi/compare/v29.0.0...v29.0.2
2025-02-14 22:42:36 +02:00
Nathan Spencer
b916fbe1fc Add time entity to balboa (#138248) 2025-02-14 20:50:51 +01:00
Xitee
58797a14e7 Add 6 new sensors to qBittorrent integration (#138446)
Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-02-14 20:48:19 +01:00
Joris Pelgröm
c090fbfbad Add binary sensor platform to LetPot integration (#138554) 2025-02-14 20:21:30 +01:00
J. Diego Rodríguez Royo
2bfe96dded Add Home Connect action with recognized programs and options (#130662)
* Added recognized options to Home Connect actions

* Fix ruff

* Fix strings.json

* Fix dishwasher typo

* Improved test_bsh_key_transformations

* Add missing return types

* Added descriptions

* Remove custom options

* Fixes

* Merge the 4 services (select, start, set options for active or selected program)

And deprecate the original ones

* Delete stale snapshots

* Clean up logic after service validation

* Make deprecated actions issues fixable

And delete issue on entry unload

* Fixes and improvements

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

* Improvements

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

* Fix name and descriptions

* Add `affects_to` to strings and service.yaml

* Add missing periods at strings

* Fix

Co-authored-by: Norbert Rittel <norbert@rittel.de>

* Add tests to check if the flow removes the deprecated action issue

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Norbert Rittel <norbert@rittel.de>
2025-02-14 20:21:01 +01:00
IceBotYT
d99044572a Improved auth failure handling in Nice G.O. (#136607) 2025-02-14 20:03:21 +01:00
Manu
11aa08cf74 Set quality scale to platinum 🏆️ for Habitica integration (#136076) 2025-02-14 19:56:32 +01:00
Norbert Rittel
5dc1689e7c Update action descriptions of weather integration (#138540) 2025-02-14 17:06:17 +00:00
J. Nick Koston
28ea55aac0 Bump aiohttp-asyncmdnsresolver to 0.1.1 (#138534) 2025-02-14 15:27:16 +00:00
Manu
7bd2c1d710 Refactor and add tests to image platform of Habitica (#135897) 2025-02-14 15:20:19 +00:00
Josh Gustafson
23d43b23ee Bump arcam-fmj to 1.8.0 (#138422)
* arcam_fmj: bump arcam-fmj to 1.8.0

* Revert castings

---------

Co-authored-by: Franck Nijhof <git@frenck.dev>
2025-02-14 16:03:47 +01:00
Franck Nijhof
2d8a619b54 2025.2.4 (#138530)
* Bump python-kasa to 0.10.2 (#138381)

* Bump hass-nabucasa from 0.90.0 to 0.91.0 (#138441)

* Bump aiowebostv to 0.6.2 (#138488)

* Bump ZHA to 0.0.49 to fix Tuya TRV issues (#138492)

Bump ZHA to 0.0.49

* Bump pyseventeentrack to 1.0.2 (#138506)

Bump pyseventeentrack version

* Bump hass-nabucasa from 0.91.0 to 0.92.0 (#138510)

* Bump py-synologydsm-api to 2.6.3 (#138516)

bump py-synologydsm-api to 2.6.3

* Update frontend to 20250214.0 (#138521)

* Bump version to 2025.2.4

---------

Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>
Co-authored-by: Joakim Sørensen <joasoe@gmail.com>
Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
Co-authored-by: Shai Ungar <shai.ungar@riskified.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2025-02-14 15:31:25 +01:00
Franck Nijhof
759cc3303a Bump version to 2025.2.4 2025-02-14 13:40:39 +00:00
Bram Kragten
5328429b08 Update frontend to 20250214.0 (#138521) 2025-02-14 13:38:31 +00:00
Michael
21b98a76cc Bump py-synologydsm-api to 2.6.3 (#138516)
bump py-synologydsm-api to 2.6.3
2025-02-14 13:34:44 +00:00
Erik Montnemery
95f632a13a Bump hass-nabucasa from 0.91.0 to 0.92.0 (#138510) 2025-02-14 13:34:10 +00:00
Shai Ungar
33d4d1f8e5 Bump pyseventeentrack to 1.0.2 (#138506)
Bump pyseventeentrack version
2025-02-14 13:31:31 +00:00
TheJulianJES
72878c18d0 Bump ZHA to 0.0.49 to fix Tuya TRV issues (#138492)
Bump ZHA to 0.0.49
2025-02-14 13:27:54 +00:00
Shay Levy
ccd220ad0f Bump aiowebostv to 0.6.2 (#138488) 2025-02-14 13:27:47 +00:00
Joakim Sørensen
f191f6ae22 Bump hass-nabucasa from 0.90.0 to 0.91.0 (#138441) 2025-02-14 13:27:14 +00:00
Steven B.
28a18e538d Bump python-kasa to 0.10.2 (#138381) 2025-02-14 13:26:10 +00:00
Bram Kragten
7dd678ccdf Update frontend to 20250214.0 (#138521) 2025-02-14 14:12:49 +01:00
Joris Pelgröm
371490a470 Add sensor platform to LetPot integration (#138491)
* Add sensor platform to LetPot integration

* Handle support in description supported_fn, use common string

* Update homeassistant/components/letpot/switch.py

* Update homeassistant/components/letpot/sensor.py

* Update homeassistant/components/letpot/sensor.py

* Update homeassistant/components/letpot/strings.json

* Fix translation key in snapshot

* snapshot no quotes

---------

Co-authored-by: Josef Zweck <josef@zweck.dev>
2025-02-14 13:57:27 +01:00
Norbert Rittel
48f58c7d49 Fix action descriptions in Xiaomi Miio integration (#138476)
* Fix action description in Xiaomi Miio integration

Correct several missing descriptions, wrong references to completely different actions, resulting duplicates and copy & paste errors.

Make the grammar more consistent across all strings.

Make one occurrence of "xiaomi miio" consistent by capitalizing.

* Apply suggestions from @CFenner review

Co-authored-by: Christopher Fenner <9592452+CFenner@users.noreply.github.com>

* Change "on a light" to "of a light", remove wrong comma

* Change "turn off" to "turning off" according to OED

---------

Co-authored-by: Christopher Fenner <9592452+CFenner@users.noreply.github.com>
2025-02-14 13:52:22 +01:00
RJPoelstra
fae68c8ad5 Add icon translation to MotionMount integration (#138520)
* Add icon translation for error sensor

* Mark icon-translations as done
2025-02-14 13:47:36 +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
Franck Nijhof
c2f6255d16 2025.2.3 (#138408) 2025-02-12 20:46:47 +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
Franck Nijhof
e5fd08ae76 Bump version to 2025.2.3 2025-02-12 19:00:55 +00:00
Erik Montnemery
4b5633d9d8 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:00:28 +00:00
Erik Montnemery
a9c6a06704 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 18:59:35 +00:00
Robert Resch
0faa8efd5a Bump deebot-client to 12.1.0 (#138382) 2025-02-12 18:56:11 +00:00
Steven B.
5a257b090e Fix tplink iot strip sensor refresh (#138375) 2025-02-12 18:56:05 +00:00
Robert Resch
41fb6a537f Bump cryptography to 44.0.1 (#138371) 2025-02-12 18:54:03 +00:00
J. Nick Koston
b166c32eb8 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 18:53:59 +00:00
Robert Resch
288acfb511 Bump sentry-sdk to 1.45.1 (#138349) 2025-02-12 18:53:56 +00:00
Arie Catsman
2cb9682303 Bump pyenphase to 1.25.1 (#138327)
* Bump pyenphase to 1.25.1

* Add new opt_schedules to nephase_envoy test fixtures
2025-02-12 18:53:52 +00:00
Allen Porter
7e52170789 Fix next authentication token error handling (#138299) 2025-02-12 18:53:49 +00:00
Erik Montnemery
979b3d4269 Fix BackupManager.async_delete_backup (#138286) 2025-02-12 18:53:45 +00:00
Allen Porter
9772014bce Refresh nest access token before before building subscriber Credentials (#138259) 2025-02-12 18:53:41 +00:00
Andre W.
f8763c49ef Fix version extraction for APsystems (#138023)
Co-authored-by: Marlon <mawol@protonmail.com>
2025-02-12 18:53:36 +00:00
jdanders
b4ef00659c Fix broken issue creation in econet (#137773)
* econet: Fix broken issue creation

* econet: fix broken issue creation with create_issue
2025-02-12 18:52:47 +00:00
jdanders
df49c53bb6 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:49:42 +00:00
Joakim Sørensen
8dfe483b38 Handle non-retryable errors when uploading cloud backup (#137517) 2025-02-12 18:49:37 +00:00
Joakim Sørensen
b45d7cbbc3 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-12 18:49:29 +00:00
Joakim Sørensen
239ba9b1cc Bump hass-nabucasa from 0.88.1 to 0.89.0 (#137321) 2025-02-12 18:48:41 +00: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
Franck Nijhof
2d5a75d4f2 2025.2.2 (#138231)
* LaCrosse View new endpoint (#137284)

* Switch to new endpoint in LaCrosse View

* Coverage

* Avoid merge conflict

* Switch to UpdateFailed

* Convert coinbase account amounts as floats to properly add them together (#137588)

Convert coinbase account amounts as floats to properly add

* Bump ohmepy to 1.2.9 (#137695)

* Bump onedrive_personal_sdk to 0.0.9 (#137729)

* Limit habitica ConfigEntrySelect to integration domain (#137767)

* Limit nordpool ConfigEntrySelect to integration domain (#137768)

* Limit transmission ConfigEntrySelect to integration domain (#137769)

* 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.

* Call backup listener during setup in Google Drive (#137789)

* 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

* Fix manufacturer_id matching for 0 (#137802)

fix manufacturer_id matching for 0

* Fix DAB radio in Onkyo (#137852)

* Fix LG webOS TV fails to setup when device is off (#137870)

* Fix heos migration (#137887)

* Fix heos migration

* Fix for loop

* Bump pydrawise to 2025.2.0 (#137961)

* Bump aioshelly to version 12.4.2 (#137986)

* Prevent crash if telegram message failed and did not generate an ID (#137989)

Fix #137901 - Regression introduced in 6fdccda225

* Bump habiticalib to v0.3.7 (#137993)

* bump habiticalib to 0.3.6

* bump to v0.3.7

* 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>

* Use resumable uploads in Google Drive (#138010)

* Use resumable uploads in Google Drive

* tests

* Bump py-synologydsm-api to 2.6.2 (#138060)

bump py-synologydsm-api to 2.6.2

* Handle generic agent exceptions when getting and deleting backups (#138145)

* Handle generic agent exceptions when getting backups

* Update hassio test

* Update delete_backup

* Bump onedrive-personal-sdk to 0.0.10 (#138186)

* 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

* Improve inexogy logging when failed to update (#138210)

* Bump pyheos to v1.0.2 (#138224)

Bump pyheos

* Update frontend to 20250210.0 (#138227)

* Bump version to 2025.2.2

* Bump lacrosse-view to 1.1.1 (#137282)

---------

Co-authored-by: IceBotYT <34712694+IceBotYT@users.noreply.github.com>
Co-authored-by: Nathan Spencer <natekspencer@gmail.com>
Co-authored-by: Dan Raper <me@danr.uk>
Co-authored-by: Josef Zweck <josef@zweck.dev>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: tronikos <tronikos@users.noreply.github.com>
Co-authored-by: Patrick <14628713+patman15@users.noreply.github.com>
Co-authored-by: Artur Pragacz <49985303+arturpragacz@users.noreply.github.com>
Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: David Knowles <dknowles2@gmail.com>
Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
Co-authored-by: Manu <4445816+tr4nt0r@users.noreply.github.com>
Co-authored-by: Allen Porter <allen@thebends.org>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Jan-Philipp Benecke <jan-philipp@bnck.me>
Co-authored-by: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2025-02-10 22:08:18 +01:00
Michael Hansen
6bc6111771 Add Wyoming satellite announce (#138221)
* Add Wyoming satellite announce

* Initialize when necessary
2025-02-10 14:36:20 -06:00
IceBotYT
e1ad3f05e6 Bump lacrosse-view to 1.1.1 (#137282) 2025-02-10 20:21:54 +00:00
Erik Montnemery
f83c8de8d3 Update signature of platforms' async_setup_entry (#138201) 2025-02-10 21:08:03 +01:00
Franck Nijhof
b9280edbfa Bump version to 2025.2.2 2025-02-10 19:52:33 +00:00
Bram Kragten
010993fc5f Update frontend to 20250210.0 (#138227) 2025-02-10 19:50:59 +00:00
Andrew Sayre
713931661e Bump pyheos to v1.0.2 (#138224)
Bump pyheos
2025-02-10 19:49:54 +00:00
Jan-Philipp Benecke
af06521f66 Improve inexogy logging when failed to update (#138210) 2025-02-10 19:49:51 +00:00
Erik Montnemery
c32f57f85a 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 19:49:48 +00:00
Josef Zweck
171061a778 Bump onedrive-personal-sdk to 0.0.10 (#138186) 2025-02-10 19:49:44 +00:00
Abílio Costa
476ea35bdb 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 19:49:41 +00:00
Michael
00e6866664 Bump py-synologydsm-api to 2.6.2 (#138060)
bump py-synologydsm-api to 2.6.2
2025-02-10 19:49:38 +00:00
tronikos
201bf95ab8 Use resumable uploads in Google Drive (#138010)
* Use resumable uploads in Google Drive

* tests
2025-02-10 19:49:34 +00:00
Allen Porter
ff22bbd0e4 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-10 19:49:29 +00:00
Manu
fd8d4e937c Bump habiticalib to v0.3.7 (#137993)
* bump habiticalib to 0.3.6

* bump to v0.3.7
2025-02-10 19:48:56 +00:00
Daniel O'Connor
7903348d79 Prevent crash if telegram message failed and did not generate an ID (#137989)
Fix #137901 - Regression introduced in 6fdccda225
2025-02-10 19:48:52 +00:00
Maciej Bieniek
090dbba06e Bump aioshelly to version 12.4.2 (#137986) 2025-02-10 19:48:49 +00:00
David Knowles
af77e69eb0 Bump pydrawise to 2025.2.0 (#137961) 2025-02-10 19:48:43 +00:00
Paulus Schoutsen
23e7638687 Fix heos migration (#137887)
* Fix heos migration

* Fix for loop
2025-02-10 19:45:47 +00:00
Shay Levy
36b722960a Fix LG webOS TV fails to setup when device is off (#137870) 2025-02-10 19:45:44 +00:00
Artur Pragacz
3dd241a398 Fix DAB radio in Onkyo (#137852) 2025-02-10 19:45:40 +00:00
Patrick
b5a9c3d1f6 Fix manufacturer_id matching for 0 (#137802)
fix manufacturer_id matching for 0
2025-02-10 19:45:36 +00:00
tronikos
eca714a45a 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-10 19:45:33 +00:00
tronikos
8049699efb Call backup listener during setup in Google Drive (#137789) 2025-02-10 19:45:30 +00:00
J. Nick Koston
7c6afd50dc 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-10 19:45:26 +00:00
Marc Mueller
42d8889778 Limit transmission ConfigEntrySelect to integration domain (#137769) 2025-02-10 19:45:23 +00:00
Marc Mueller
a4c0304e1f Limit nordpool ConfigEntrySelect to integration domain (#137768) 2025-02-10 19:45:20 +00:00
Marc Mueller
c63e688ba8 Limit habitica ConfigEntrySelect to integration domain (#137767) 2025-02-10 19:45:16 +00:00
Josef Zweck
16298b4195 Bump onedrive_personal_sdk to 0.0.9 (#137729) 2025-02-10 19:45:13 +00:00
Dan Raper
da23eb22db Bump ohmepy to 1.2.9 (#137695) 2025-02-10 19:45:09 +00:00
Nathan Spencer
4bd1d0199b Convert coinbase account amounts as floats to properly add them together (#137588)
Convert coinbase account amounts as floats to properly add
2025-02-10 19:45:06 +00:00
IceBotYT
efe7050030 LaCrosse View new endpoint (#137284)
* Switch to new endpoint in LaCrosse View

* Coverage

* Avoid merge conflict

* Switch to UpdateFailed
2025-02-10 19:44:56 +00: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
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
Franck Nijhof
79ff85f517 2025.2.1 (#137688)
* Fix hassio test using wrong fixture (#137516)

* Change Electric Kiwi authentication (#135231)

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

* Update govee-ble to 0.42.1 (#137371)

* Bump holidays to 0.66 (#137449)

* 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

* Bump aiohttp to 3.11.12 (#137494)

changelog: https://github.com/aio-libs/aiohttp/compare/v3.11.11...v3.11.12

* 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

* Bump habiticalib to v0.3.5 (#137510)

* Fix Mill issue, where no sensors were shown (#137521)

Fix mill issue #137477

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>

* Don't overwrite setup state in async_set_domains_to_be_loaded (#137547)

* Use separate metadata files for onedrive (#137549)

* Fix sending polls to Telegram threads (#137553)

Fix sending poll to Telegram thread

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

* Add excluded domains to broadcast intent (#137566)

* Revert "Add `PaddleSwitchPico` (Pico Paddle Remote) device trigger to Lutron Caseta" (#137571)

* Fix Overseerr webhook configuration JSON (#137572)

Co-authored-by: Lars Jouon <schm.lars@googlemail.com>

* Do not rely on pyserial for port scanning with the CM5 + ZHA (#137585)

Do not rely on pyserial for port scanning with the CM5

* Bump eheimdigital to 1.0.6 (#137587)

* Bump pyfireservicerota to 0.0.46 (#137589)

* Bump reolink-aio to 0.11.10 (#137591)

* 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

* Handle previously migrated HEOS device identifier (#137596)

* Bump `aioshelly` to version `12.4.1` (#137598)

* Bump aioshelly to 12.4.0

* Bump to 12.4.1

* 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>

* Bump ZHA to 0.0.48 (#137610)

* Bump Electrickiwi-api to 0.9.14 (#137614)

* bump library to fix bug with post

* rebuild

* Update google-nest-sdm to 7.1.3 (#137625)

* Update google-nest-sdm to 7.1.2

* Bump nest to 7.1.3

* 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

* Fix LG webOS TV turn off when device is already off (#137675)

* Bump version to 2025.2.1

---------

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Michael Arthur <mikey0000@users.noreply.github.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Manu <4445816+tr4nt0r@users.noreply.github.com>
Co-authored-by: Daniel Hjelseth Høyer <github@dahoiv.net>
Co-authored-by: Josef Zweck <josef@zweck.dev>
Co-authored-by: Jasper Wiegratz <656460+jwhb@users.noreply.github.com>
Co-authored-by: Michael Hansen <mike@rhasspy.org>
Co-authored-by: Dennis Effing <dennis.effing@outlook.com>
Co-authored-by: Lars Jouon <schm.lars@googlemail.com>
Co-authored-by: puddly <32534428+puddly@users.noreply.github.com>
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Ron <ron@cyberjunky.nl>
Co-authored-by: starkillerOG <starkiller.og@gmail.com>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: Andrew Sayre <6730289+andrewsayre@users.noreply.github.com>
Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
Co-authored-by: Allen Porter <allen@thebends.org>
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2025-02-07 19:34:32 +01:00
Norbert Rittel
9a202b5e56 Fix spelling of "AccuWeather" and sentence-casing plus grammar (#137696) 2025-02-07 19:47:05 +02:00
Franck Nijhof
73ad4caf94 Bump version to 2025.2.1 2025-02-07 16:39:53 +00:00
Shay Levy
e3d649d349 Fix LG webOS TV turn off when device is already off (#137675) 2025-02-07 16:37:52 +00:00
Maciej Bieniek
657e3488ba 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:37:49 +00:00
Allen Porter
7508c14a53 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 16:37:43 +00:00
Michael Arthur
ac84970da8 Bump Electrickiwi-api to 0.9.14 (#137614)
* bump library to fix bug with post

* rebuild
2025-02-07 16:37:40 +00:00
TheJulianJES
30073f3493 Bump ZHA to 0.0.48 (#137610) 2025-02-07 16:37:36 +00:00
Michael Arthur
3abd7b8ba3 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-07 16:37:33 +00:00
Maciej Bieniek
62bc6e4bf6 Bump aioshelly to version 12.4.1 (#137598)
* Bump aioshelly to 12.4.0

* Bump to 12.4.1
2025-02-07 16:37:30 +00:00
Andrew Sayre
5faa189fef Handle previously migrated HEOS device identifier (#137596) 2025-02-07 16:37:26 +00:00
Jan Bouwhuis
e09ae1c83d 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-07 16:37:23 +00:00
starkillerOG
7b20299de7 Bump reolink-aio to 0.11.10 (#137591) 2025-02-07 16:37:19 +00:00
Ron
81e501aba1 Bump pyfireservicerota to 0.0.46 (#137589) 2025-02-07 16:37:16 +00:00
Sid
568ac22ce8 Bump eheimdigital to 1.0.6 (#137587) 2025-02-07 16:37:12 +00:00
puddly
c71ab054f1 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:37:09 +00:00
Dennis Effing
bea201f9f6 Fix Overseerr webhook configuration JSON (#137572)
Co-authored-by: Lars Jouon <schm.lars@googlemail.com>
2025-02-07 16:37:05 +00:00
J. Nick Koston
dda90bc04c Revert "Add PaddleSwitchPico (Pico Paddle Remote) device trigger to Lutron Caseta" (#137571) 2025-02-07 16:37:02 +00:00
Michael Hansen
a033e4c88d Add excluded domains to broadcast intent (#137566) 2025-02-07 16:36:59 +00:00
Marc Mueller
42b6f83e7c Skip building wheels for electrickiwi-api (#137556) 2025-02-07 16:36:55 +00:00
Jasper Wiegratz
cb937bc115 Fix sending polls to Telegram threads (#137553)
Fix sending poll to Telegram thread
2025-02-07 16:36:51 +00:00
Josef Zweck
bec569caf9 Use separate metadata files for onedrive (#137549) 2025-02-07 16:36:47 +00:00
Erik Montnemery
3390fb32a8 Don't overwrite setup state in async_set_domains_to_be_loaded (#137547) 2025-02-07 16:36:43 +00:00
Daniel Hjelseth Høyer
3ebb58f780 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-07 16:36:40 +00:00
Manu
30b131d3b9 Bump habiticalib to v0.3.5 (#137510) 2025-02-07 16:36:36 +00:00
J. Nick Koston
cd40232beb 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-07 16:36:29 +00:00
J. Nick Koston
f27fe365c5 Bump aiohttp to 3.11.12 (#137494)
changelog: https://github.com/aio-libs/aiohttp/compare/v3.11.11...v3.11.12
2025-02-07 16:34:31 +00:00
J. Nick Koston
1c769418fb 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-07 16:32:21 +00:00
G Johansson
db7c2dab52 Bump holidays to 0.66 (#137449) 2025-02-07 16:28:43 +00:00
Marc Mueller
627377872b Update govee-ble to 0.42.1 (#137371) 2025-02-07 16:28:37 +00:00
Michael Arthur
8504162539 Change Electric Kiwi authentication (#135231)
Co-authored-by: Joostlek <joostlek@outlook.com>
2025-02-07 16:28:31 +00: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
Erik Montnemery
67c6a1d436 Fix hassio test using wrong fixture (#137516) 2025-02-06 09:04:49 +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
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
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
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
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
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
6182 changed files with 226093 additions and 56366 deletions

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
<!--

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 99 KiB

100
.github/copilot-instructions.md vendored Normal file
View File

@@ -0,0 +1,100 @@
# Instructions for GitHub Copilot
This repository holds the core of Home Assistant, a Python 3 based home
automation application.
- Python code must be compatible with Python 3.13
- Use the newest Python language features if possible:
- Pattern matching
- Type hints
- f-strings for string formatting over `%` or `.format()`
- Dataclasses
- Walrus operator
- Code quality tools:
- Formatting: Ruff
- Linting: PyLint and Ruff
- Type checking: MyPy
- Testing: pytest with plain functions and fixtures
- Inline code documentation:
- File headers should be short and concise:
```python
"""Integration for Peblar EV chargers."""
```
- Every method and function needs a docstring:
```python
async def async_setup_entry(hass: HomeAssistant, entry: PeblarConfigEntry) -> bool:
"""Set up Peblar from a config entry."""
...
```
- All code and comments and other text are written in American English
- Follow existing code style patterns as much as possible
- Core locations:
- Shared constants: `homeassistant/const.py`, use them instead of hardcoding
strings or creating duplicate integration constants.
- Integration files:
- Constants: `homeassistant/components/{domain}/const.py`
- Models: `homeassistant/components/{domain}/models.py`
- Coordinator: `homeassistant/components/{domain}/coordinator.py`
- Config flow: `homeassistant/components/{domain}/config_flow.py`
- Platform code: `homeassistant/components/{domain}/{platform}.py`
- All external I/O operations must be async
- Async patterns:
- Avoid sleeping in loops
- Avoid awaiting in loops, gather instead
- No blocking calls
- Polling:
- Follow update coordinator pattern, when possible
- Polling interval may not be configurable by the user
- For local network polling, the minimum interval is 5 seconds
- For cloud polling, the minimum interval is 60 seconds
- Error handling:
- Use specific exceptions from `homeassistant.exceptions`
- Setup failures:
- Temporary: Raise `ConfigEntryNotReady`
- Permanent: Use `ConfigEntryError`
- Logging:
- Message format:
- No periods at end
- No integration names or domains (added automatically)
- No sensitive data (keys, tokens, passwords), even when those are incorrect.
- Be very restrictive on the use of logging info messages, use debug for
anything which is not targeting the user.
- Use lazy logging (no f-strings):
```python
_LOGGER.debug("This is a log message with %s", variable)
```
- Entities:
- Ensure unique IDs for state persistence:
- Unique IDs should not contain values that are subject to user or network change.
- An ID needs to be unique per platform, not per integration.
- The ID does not have to contain the integration domain or platform.
- Acceptable examples:
- Serial number of a device
- MAC address of a device formatted using `homeassistant.helpers.device_registry.format_mac`
Do not obtain the MAC address through arp cache of local network access,
only use the MAC address provided by discovery or the device itself.
- Unique identifier that is physically printed on the device or burned into an EEPROM
- Not acceptable examples:
- IP Address
- Device name
- Hostname
- URL
- Email address
- Username
- For entities that are setup by a config entry, the config entry ID
can be used as a last resort if no other Unique ID is available.
For example: `f"{entry.entry_id}-battery"`
- If the state value is unknown, use `None`
- Do not use the `unavailable` string as a state value,
implement the `available()` property method instead
- Do not use the `unknown` string as a state value, use `None` instead
- Extra entity state attributes:
- The keys of all state attributes should always be present
- If the value is unknown, use `None`
- Provide descriptive state attributes
- Testing:
- Test location: `tests/components/{domain}/`
- Use pytest fixtures from `tests.common`
- Mock external dependencies
- Use snapshots for complex data
- Follow existing test patterns

View File

@@ -32,7 +32,7 @@ jobs:
fetch-depth: 0
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -69,7 +69,7 @@ jobs:
run: find ./homeassistant/components/*/translations -name "*.json" | tar zcvf translations.tar.gz -T -
- name: Upload translations
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: translations
path: translations.tar.gz
@@ -94,7 +94,7 @@ jobs:
- name: Download nightly wheels of frontend
if: needs.init.outputs.channel == 'dev'
uses: dawidd6/action-download-artifact@v8
uses: dawidd6/action-download-artifact@v9
with:
github_token: ${{secrets.GITHUB_TOKEN}}
repo: home-assistant/frontend
@@ -105,7 +105,7 @@ jobs:
- name: Download nightly wheels of intents
if: needs.init.outputs.channel == 'dev'
uses: dawidd6/action-download-artifact@v8
uses: dawidd6/action-download-artifact@v9
with:
github_token: ${{secrets.GITHUB_TOKEN}}
repo: home-assistant/intents-package
@@ -116,7 +116,7 @@ jobs:
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -175,7 +175,7 @@ jobs:
sed -i "s|pykrakenapi|# pykrakenapi|g" requirements_all.txt
- name: Download translations
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
name: translations
@@ -190,14 +190,14 @@ jobs:
echo "${{ github.sha }};${{ github.ref }};${{ github.event_name }};${{ github.actor }}" > rootfs/OFFICIAL_IMAGE
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
uses: docker/login-action@v3.4.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2024.08.2
uses: home-assistant/builder@2025.03.0
with:
args: |
$BUILD_ARGS \
@@ -256,14 +256,14 @@ jobs:
fi
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.3.0
uses: docker/login-action@v3.4.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2024.08.2
uses: home-assistant/builder@2025.03.0
with:
args: |
$BUILD_ARGS \
@@ -324,20 +324,20 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Install Cosign
uses: sigstore/cosign-installer@v3.7.0
uses: sigstore/cosign-installer@v3.8.1
with:
cosign-release: "v2.2.3"
- name: Login to DockerHub
if: matrix.registry == 'docker.io/homeassistant'
uses: docker/login-action@v3.3.0
uses: docker/login-action@v3.4.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
if: matrix.registry == 'ghcr.io/home-assistant'
uses: docker/login-action@v3.3.0
uses: docker/login-action@v3.4.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
@@ -448,18 +448,21 @@ jobs:
environment: ${{ needs.init.outputs.channel }}
needs: ["init", "build_base"]
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
if: github.repository_owner == 'home-assistant' && needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Download translations
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
name: translations
@@ -473,16 +476,13 @@ jobs:
run: |
# Remove dist, build, and homeassistant.egg-info
# when build locally for testing!
pip install twine build
pip install build
python -m build
- name: Upload package
shell: bash
run: |
export TWINE_USERNAME="__token__"
export TWINE_PASSWORD="${{ secrets.TWINE_TOKEN }}"
twine upload dist/* --skip-existing
- name: Upload package to PyPI
uses: pypa/gh-action-pypi-publish@v1.12.4
with:
skip-existing: true
hassfest-image:
name: Build and test hassfest image
@@ -502,14 +502,14 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Login to GitHub Container Registry
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Docker image
uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 # v6.13.0
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.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@ca877d9245402d1537745e0e356eab47c3520991 # v6.13.0
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
with:
context: . # So action will not pull the repository again
file: ./script/hassfest/docker/Dockerfile
@@ -531,7 +531,7 @@ jobs:
- name: Generate artifact attestation
if: needs.init.outputs.channel != 'dev' && needs.init.outputs.publish == 'true'
uses: actions/attest-build-provenance@520d128f165991a6c774bcb264f323e3d70747f4 # v2.2.0
uses: actions/attest-build-provenance@c074443f1aee8d4aeeae555aebba3282517141b2 # v2.2.3
with:
subject-name: ${{ env.HASSFEST_IMAGE_NAME }}
subject-digest: ${{ steps.push.outputs.digest }}

View File

@@ -37,10 +37,10 @@ on:
type: boolean
env:
CACHE_VERSION: 11
CACHE_VERSION: 12
UV_CACHE_VERSION: 1
MYPY_CACHE_VERSION: 9
HA_SHORT_VERSION: "2025.2"
HA_SHORT_VERSION: "2025.5"
DEFAULT_PYTHON: "3.13"
ALL_PYTHON_VERSIONS: "['3.13']"
# 10.3 is the oldest supported version
@@ -89,6 +89,7 @@ jobs:
test_groups: ${{ steps.info.outputs.test_groups }}
tests_glob: ${{ steps.info.outputs.tests_glob }}
tests: ${{ steps.info.outputs.tests }}
lint_only: ${{ steps.info.outputs.lint_only }}
skip_coverage: ${{ steps.info.outputs.skip_coverage }}
runs-on: ubuntu-24.04
steps:
@@ -142,6 +143,7 @@ jobs:
test_group_count=10
tests="[]"
tests_glob=""
lint_only=""
skip_coverage=""
if [[ "${{ steps.integrations.outputs.changes }}" != "[]" ]];
@@ -192,6 +194,17 @@ jobs:
test_full_suite="true"
fi
if [[ "${{ github.event.inputs.lint-only }}" == "true" ]] \
|| [[ "${{ github.event.inputs.pylint-only }}" == "true" ]] \
|| [[ "${{ github.event.inputs.mypy-only }}" == "true" ]] \
|| [[ "${{ github.event.inputs.audit-licenses-only }}" == "true" ]] \
|| [[ "${{ github.event_name }}" == "push" \
&& "${{ github.event.repository.full_name }}" != "home-assistant/core" ]];
then
lint_only="true"
skip_coverage="true"
fi
if [[ "${{ github.event.inputs.skip-coverage }}" == "true" ]] \
|| [[ "${{ contains(github.event.pull_request.labels.*.name, 'ci-skip-coverage') }}" == "true" ]];
then
@@ -217,6 +230,8 @@ jobs:
echo "tests=${tests}" >> $GITHUB_OUTPUT
echo "tests_glob: ${tests_glob}"
echo "tests_glob=${tests_glob}" >> $GITHUB_OUTPUT
echo "lint_only": ${lint_only}
echo "lint_only=${lint_only}" >> $GITHUB_OUTPUT
echo "skip_coverage: ${skip_coverage}"
echo "skip_coverage=${skip_coverage}" >> $GITHUB_OUTPUT
@@ -234,13 +249,13 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v4.2.0
uses: actions/cache@v4.2.3
with:
path: venv
key: >-
@@ -256,7 +271,7 @@ jobs:
uv pip install "$(cat requirements_test.txt | grep pre-commit)"
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v4.2.0
uses: actions/cache@v4.2.3
with:
path: ${{ env.PRE_COMMIT_CACHE }}
lookup-only: true
@@ -279,14 +294,14 @@ 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.4.0
uses: actions/setup-python@v5.5.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -295,7 +310,7 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -319,14 +334,14 @@ 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.4.0
uses: actions/setup-python@v5.5.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -335,7 +350,7 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -359,14 +374,14 @@ 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.4.0
uses: actions/setup-python@v5.5.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -375,7 +390,7 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -469,7 +484,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
@@ -482,7 +497,7 @@ jobs:
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')" >> $GITHUB_OUTPUT
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v4.2.0
uses: actions/cache@v4.2.3
with:
path: venv
key: >-
@@ -490,7 +505,7 @@ jobs:
needs.info.outputs.python_cache_key }}
- name: Restore uv wheel cache
if: steps.cache-venv.outputs.cache-hit != 'true'
uses: actions/cache@v4.2.0
uses: actions/cache@v4.2.3
with:
path: ${{ env.UV_CACHE_DIR }}
key: >-
@@ -537,7 +552,7 @@ jobs:
python --version
uv pip freeze >> pip_freeze.txt
- name: Upload pip_freeze artifact
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: pip-freeze-${{ matrix.python-version }}
path: pip_freeze.txt
@@ -572,13 +587,13 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -605,13 +620,13 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -623,6 +638,25 @@ jobs:
. venv/bin/activate
python -m script.gen_requirements_all validate
dependency-review:
name: Dependency review
runs-on: ubuntu-24.04
needs:
- info
- base
if: |
github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& needs.info.outputs.requirements == 'true'
&& github.event_name == 'pull_request'
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
- name: Dependency review
uses: actions/dependency-review-action@v4.5.0
with:
license-check: false # We use our own license audit checks
audit-licenses:
name: Audit licenses
runs-on: ubuntu-24.04
@@ -643,13 +677,13 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -661,7 +695,7 @@ jobs:
. venv/bin/activate
python -m script.licenses extract --output-file=licenses-${{ matrix.python-version }}.json
- name: Upload licenses
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: licenses-${{ github.run_number }}-${{ matrix.python-version }}
path: licenses-${{ matrix.python-version }}.json
@@ -686,13 +720,13 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -733,13 +767,13 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -778,7 +812,7 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -791,7 +825,7 @@ jobs:
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')" >> $GITHUB_OUTPUT
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -799,7 +833,7 @@ jobs:
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Restore mypy cache
uses: actions/cache@v4.2.0
uses: actions/cache@v4.2.3
with:
path: .mypy_cache
key: >-
@@ -829,11 +863,7 @@ jobs:
prepare-pytest-full:
runs-on: ubuntu-24.04
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
needs.info.outputs.lint_only != 'true'
&& needs.info.outputs.test_full_suite == 'true'
needs:
- info
@@ -859,13 +889,13 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -877,7 +907,7 @@ jobs:
. venv/bin/activate
python -m script.split_tests ${{ needs.info.outputs.test_group_count }} tests
- name: Upload pytest_buckets
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: pytest_buckets
path: pytest_buckets.txt
@@ -886,11 +916,7 @@ jobs:
pytest-full:
runs-on: ubuntu-24.04
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
needs.info.outputs.lint_only != 'true'
&& needs.info.outputs.test_full_suite == 'true'
needs:
- info
@@ -923,13 +949,13 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -942,7 +968,7 @@ jobs:
run: |
echo "::add-matcher::.github/workflows/matchers/pytest-slow.json"
- name: Download pytest_buckets
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
name: pytest_buckets
- name: Compile English translations
@@ -962,6 +988,7 @@ jobs:
if [[ "${{ needs.info.outputs.skip_coverage }}" != "true" ]]; then
cov_params+=(--cov="homeassistant")
cov_params+=(--cov-report=xml)
cov_params+=(--junitxml=junit.xml -o junit_family=legacy)
fi
echo "Test group ${{ matrix.group }}: $(sed -n "${{ matrix.group }},1p" pytest_buckets.txt)"
@@ -975,22 +1002,29 @@ 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
if: success() || failure() && steps.pytest-full.conclusion == 'failure'
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{ matrix.group }}
path: pytest-*.txt
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
overwrite: true
- name: Upload test results artifact
if: needs.info.outputs.skip_coverage != 'true' && !cancelled()
uses: actions/upload-artifact@v4.6.2
with:
name: test-results-full-${{ matrix.python-version }}-${{ matrix.group }}
path: junit.xml
- name: Remove pytest_buckets
run: rm pytest_buckets.txt
- name: Check dirty
@@ -1008,11 +1042,7 @@ jobs:
MYSQL_ROOT_PASSWORD: password
options: --health-cmd="mysqladmin ping -uroot -ppassword" --health-interval=5s --health-timeout=2s --health-retries=3
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
needs.info.outputs.lint_only != 'true'
&& needs.info.outputs.mariadb_groups != '[]'
needs:
- info
@@ -1044,13 +1074,13 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -1087,6 +1117,7 @@ jobs:
cov_params+=(--cov="homeassistant.components.recorder")
cov_params+=(--cov-report=xml)
cov_params+=(--cov-report=term-missing)
cov_params+=(--junitxml=junit.xml -o junit_family=legacy)
fi
python3 -b -X dev -m pytest \
@@ -1098,6 +1129,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 \
@@ -1106,7 +1138,7 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${mariadb}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.mariadb }}
@@ -1114,12 +1146,19 @@ jobs:
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: coverage-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.mariadb }}
path: coverage.xml
overwrite: true
- name: Upload test results artifact
if: needs.info.outputs.skip_coverage != 'true' && !cancelled()
uses: actions/upload-artifact@v4.6.2
with:
name: test-results-mariadb-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.mariadb }}
path: junit.xml
- name: Check dirty
run: |
./script/check_dirty
@@ -1135,11 +1174,7 @@ jobs:
POSTGRES_PASSWORD: password
options: --health-cmd="pg_isready -hlocalhost -Upostgres" --health-interval=5s --health-timeout=2s --health-retries=3
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
needs.info.outputs.lint_only != 'true'
&& needs.info.outputs.postgresql_groups != '[]'
needs:
- info
@@ -1173,13 +1208,13 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -1216,6 +1251,7 @@ jobs:
cov_params+=(--cov="homeassistant.components.recorder")
cov_params+=(--cov-report=xml)
cov_params+=(--cov-report=term-missing)
cov_params+=(--junitxml=junit.xml -o junit_family=legacy)
fi
python3 -b -X dev -m pytest \
@@ -1228,6 +1264,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 \
@@ -1236,7 +1273,7 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${postgresql}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.postgresql }}
@@ -1244,12 +1281,19 @@ jobs:
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: coverage-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.postgresql }}
path: coverage.xml
overwrite: true
- name: Upload test results artifact
if: needs.info.outputs.skip_coverage != 'true' && !cancelled()
uses: actions/upload-artifact@v4.6.2
with:
name: test-results-postgres-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.postgresql }}
path: junit.xml
- name: Check dirty
run: |
./script/check_dirty
@@ -1268,12 +1312,12 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
- name: Download all coverage artifacts
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
pattern: coverage-*
- name: Upload coverage to Codecov
if: needs.info.outputs.test_full_suite == 'true'
uses: codecov/codecov-action@v5.3.1
uses: codecov/codecov-action@v5.4.0
with:
fail_ci_if_error: true
flags: full-suite
@@ -1282,11 +1326,7 @@ jobs:
pytest-partial:
runs-on: ubuntu-24.04
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& github.event.inputs.audit-licenses-only != 'true'
needs.info.outputs.lint_only != 'true'
&& needs.info.outputs.tests_glob
&& needs.info.outputs.test_full_suite == 'false'
needs:
@@ -1319,13 +1359,13 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.2.0
uses: actions/cache/restore@v4.2.3
with:
path: venv
fail-on-cache-miss: true
@@ -1362,6 +1402,7 @@ jobs:
cov_params+=(--cov="homeassistant.components.${{ matrix.group }}")
cov_params+=(--cov-report=xml)
cov_params+=(--cov-report=term-missing)
cov_params+=(--junitxml=junit.xml -o junit_family=legacy)
fi
python3 -b -X dev -m pytest \
@@ -1374,22 +1415,29 @@ 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
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{ matrix.group }}
path: pytest-*.txt
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
overwrite: true
- name: Upload test results artifact
if: needs.info.outputs.skip_coverage != 'true' && !cancelled()
uses: actions/upload-artifact@v4.6.2
with:
name: test-results-partial-${{ matrix.python-version }}-${{ matrix.group }}
path: junit.xml
- name: Check dirty
run: |
./script/check_dirty
@@ -1406,12 +1454,37 @@ jobs:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
- name: Download all coverage artifacts
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
pattern: coverage-*
- name: Upload coverage to Codecov
if: needs.info.outputs.test_full_suite == 'false'
uses: codecov/codecov-action@v5.3.1
uses: codecov/codecov-action@v5.4.0
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
upload-test-results:
name: Upload test results to Codecov
# codecov/test-results-action currently doesn't support tokenless uploads
# therefore we can't run it on forks
if: ${{ (github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork) && needs.info.outputs.skip_coverage != 'true' && !cancelled() }}
runs-on: ubuntu-24.04
needs:
- info
- pytest-partial
- pytest-full
- pytest-postgres
- pytest-mariadb
timeout-minutes: 10
steps:
- name: Download all coverage artifacts
uses: actions/download-artifact@v4.2.1
with:
pattern: test-results-*
- name: Upload test results to Codecov
uses: codecov/test-results-action@v1
with:
fail_ci_if_error: true
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -24,11 +24,11 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Initialize CodeQL
uses: github/codeql-action/init@v3.28.6
uses: github/codeql-action/init@v3.28.13
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.28.6
uses: github/codeql-action/analyze@v3.28.13
with:
category: "/language:python"

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.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}

View File

@@ -36,7 +36,7 @@ jobs:
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.4.0
uses: actions/setup-python@v5.5.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -91,7 +91,7 @@ jobs:
) > build_constraints.txt
- name: Upload env_file
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: env_file
path: ./.env_file
@@ -99,14 +99,14 @@ jobs:
overwrite: true
- name: Upload build_constraints
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: build_constraints
path: ./build_constraints.txt
overwrite: true
- name: Upload requirements_diff
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: requirements_diff
path: ./requirements_diff.txt
@@ -118,7 +118,7 @@ jobs:
python -m script.gen_requirements_all ci
- name: Upload requirements_all_wheels
uses: actions/upload-artifact@v4.6.0
uses: actions/upload-artifact@v4.6.2
with:
name: requirements_all_wheels
path: ./requirements_all_wheels_*.txt
@@ -138,17 +138,17 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Download env_file
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
name: env_file
- name: Download build_constraints
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
name: build_constraints
- name: Download requirements_diff
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
name: requirements_diff
@@ -159,7 +159,7 @@ jobs:
sed -i "/uv/d" requirements_diff.txt
- name: Build wheels
uses: home-assistant/wheels@2024.11.0
uses: home-assistant/wheels@2025.03.0
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -187,22 +187,22 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Download env_file
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
name: env_file
- name: Download build_constraints
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
name: build_constraints
- name: Download requirements_diff
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
name: requirements_diff
- name: Download requirements_all_wheels
uses: actions/download-artifact@v4.1.8
uses: actions/download-artifact@v4.2.1
with:
name: requirements_all_wheels
@@ -218,16 +218,8 @@ jobs:
sed -i "/uv/d" requirements.txt
sed -i "/uv/d" requirements_diff.txt
- name: Split requirements all
run: |
# We split requirements all into multiple files.
# This is to prevent the build from running out of memory when
# resolving packages on 32-bits systems (like armhf, armv7).
split -l $(expr $(expr $(cat requirements_all.txt | wc -l) + 1) / 3) requirements_all_wheels_${{ matrix.arch }}.txt requirements_all.txt
- name: Build wheels (part 1)
uses: home-assistant/wheels@2024.11.0
- name: Build wheels
uses: home-assistant/wheels@2025.03.0
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -238,32 +230,4 @@ jobs:
skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;propcache;protobuf;pymicro-vad;yarl
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtaa"
- name: Build wheels (part 2)
uses: home-assistant/wheels@2024.11.0
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
arch: ${{ matrix.arch }}
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev;nasm;zlib-ng-dev"
skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;propcache;protobuf;pymicro-vad;yarl
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtab"
- name: Build wheels (part 3)
uses: home-assistant/wheels@2024.11.0
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
arch: ${{ matrix.arch }}
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev;nasm;zlib-ng-dev"
skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;propcache;protobuf;pymicro-vad;yarl
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtac"
requirements: "requirements_all.txt"

1
.gitignore vendored
View File

@@ -69,6 +69,7 @@ test-reports/
test-results.xml
test-output.xml
pytest-*.txt
junit.xml
# Translations
*.mo

View File

@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.9.1
rev: v0.11.0
hooks:
- id: ruff
args:
@@ -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:

View File

@@ -103,6 +103,7 @@ homeassistant.components.auth.*
homeassistant.components.automation.*
homeassistant.components.awair.*
homeassistant.components.axis.*
homeassistant.components.azure_storage.*
homeassistant.components.backup.*
homeassistant.components.baf.*
homeassistant.components.bang_olufsen.*
@@ -118,7 +119,9 @@ homeassistant.components.bluetooth_adapters.*
homeassistant.components.bluetooth_tracker.*
homeassistant.components.bmw_connected_drive.*
homeassistant.components.bond.*
homeassistant.components.bosch_alarm.*
homeassistant.components.braviatv.*
homeassistant.components.bring.*
homeassistant.components.brother.*
homeassistant.components.browser.*
homeassistant.components.bryant_evolution.*
@@ -134,6 +137,7 @@ homeassistant.components.clicksend.*
homeassistant.components.climate.*
homeassistant.components.cloud.*
homeassistant.components.co2signal.*
homeassistant.components.comelit.*
homeassistant.components.command_line.*
homeassistant.components.config.*
homeassistant.components.configurator.*
@@ -233,6 +237,7 @@ homeassistant.components.here_travel_time.*
homeassistant.components.history.*
homeassistant.components.history_stats.*
homeassistant.components.holiday.*
homeassistant.components.home_connect.*
homeassistant.components.homeassistant.*
homeassistant.components.homeassistant_alerts.*
homeassistant.components.homeassistant_green.*
@@ -393,6 +398,7 @@ homeassistant.components.pure_energie.*
homeassistant.components.purpleair.*
homeassistant.components.pushbullet.*
homeassistant.components.pvoutput.*
homeassistant.components.pyload.*
homeassistant.components.python_script.*
homeassistant.components.qbus.*
homeassistant.components.qnap_qsw.*
@@ -405,7 +411,9 @@ homeassistant.components.raspberry_pi.*
homeassistant.components.rdw.*
homeassistant.components.recollect_waste.*
homeassistant.components.recorder.*
homeassistant.components.remember_the_milk.*
homeassistant.components.remote.*
homeassistant.components.remote_calendar.*
homeassistant.components.renault.*
homeassistant.components.reolink.*
homeassistant.components.repairs.*
@@ -436,6 +444,7 @@ homeassistant.components.select.*
homeassistant.components.sensibo.*
homeassistant.components.sensirion_ble.*
homeassistant.components.sensor.*
homeassistant.components.sensorpush_cloud.*
homeassistant.components.sensoterra.*
homeassistant.components.senz.*
homeassistant.components.sfr_box.*
@@ -523,6 +532,7 @@ homeassistant.components.vallox.*
homeassistant.components.valve.*
homeassistant.components.velbus.*
homeassistant.components.vlc_telnet.*
homeassistant.components.vodafone_station.*
homeassistant.components.wake_on_lan.*
homeassistant.components.wake_word.*
homeassistant.components.wallbox.*

11
.vscode/launch.json vendored
View File

@@ -38,10 +38,17 @@
"module": "pytest",
"justMyCode": false,
"args": [
"--timeout=10",
"--picked"
],
},
{
"name": "Home Assistant: Debug Current Test File",
"type": "debugpy",
"request": "launch",
"module": "pytest",
"console": "integratedTerminal",
"args": ["-vv", "${file}"]
},
{
// Debug by attaching to local Home Assistant server using Remote Python Debugger.
// See https://www.home-assistant.io/integrations/debugpy/
@@ -77,4 +84,4 @@
]
}
]
}
}

4
.vscode/tasks.json vendored
View File

@@ -4,7 +4,7 @@
{
"label": "Run Home Assistant Core",
"type": "shell",
"command": "hass -c ./config",
"command": "${command:python.interpreterPath} -m homeassistant -c ./config",
"group": "test",
"presentation": {
"reveal": "always",
@@ -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

50
CODEOWNERS generated
View File

@@ -180,6 +180,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/azure_event_hub/ @eavanvalkenburg
/tests/components/azure_event_hub/ @eavanvalkenburg
/homeassistant/components/azure_service_bus/ @hfurubotten
/homeassistant/components/azure_storage/ @zweckj
/tests/components/azure_storage/ @zweckj
/homeassistant/components/backup/ @home-assistant/core
/tests/components/backup/ @home-assistant/core
/homeassistant/components/baf/ @bdraco @jfroy
@@ -214,6 +216,8 @@ build.json @home-assistant/supervisor
/tests/components/bmw_connected_drive/ @gerard33 @rikroe
/homeassistant/components/bond/ @bdraco @prystupa @joshs85 @marciogranzotto
/tests/components/bond/ @bdraco @prystupa @joshs85 @marciogranzotto
/homeassistant/components/bosch_alarm/ @mag1024 @sanjay900
/tests/components/bosch_alarm/ @mag1024 @sanjay900
/homeassistant/components/bosch_shc/ @tschamm
/tests/components/bosch_shc/ @tschamm
/homeassistant/components/braviatv/ @bieniu @Drafteed
@@ -568,8 +572,8 @@ build.json @home-assistant/supervisor
/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_generative_ai_conversation/ @tronikos @ivanlh
/tests/components/google_generative_ai_conversation/ @tronikos @ivanlh
/homeassistant/components/google_mail/ @tkdrob
/tests/components/google_mail/ @tkdrob
/homeassistant/components/google_photos/ @allenporter
@@ -625,8 +629,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
@@ -731,6 +735,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
@@ -765,8 +771,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
@@ -965,8 +971,8 @@ build.json @home-assistant/supervisor
/tests/components/motionblinds_ble/ @LennP @jerrybboy
/homeassistant/components/motioneye/ @dermotduffy
/tests/components/motioneye/ @dermotduffy
/homeassistant/components/motionmount/ @RJPoelstra
/tests/components/motionmount/ @RJPoelstra
/homeassistant/components/motionmount/ @laiho-vogels
/tests/components/motionmount/ @laiho-vogels
/homeassistant/components/mqtt/ @emontnemery @jbouwh @bdraco
/tests/components/mqtt/ @emontnemery @jbouwh @bdraco
/homeassistant/components/msteams/ @peroyvind
@@ -1049,8 +1055,8 @@ build.json @home-assistant/supervisor
/tests/components/numato/ @clssn
/homeassistant/components/number/ @home-assistant/core @Shulyaka
/tests/components/number/ @home-assistant/core @Shulyaka
/homeassistant/components/nut/ @bdraco @ollo69 @pestevez
/tests/components/nut/ @bdraco @ollo69 @pestevez
/homeassistant/components/nut/ @bdraco @ollo69 @pestevez @tdfountain
/tests/components/nut/ @bdraco @ollo69 @pestevez @tdfountain
/homeassistant/components/nws/ @MatthewFlamm @kamiyo
/tests/components/nws/ @MatthewFlamm @kamiyo
/homeassistant/components/nyt_games/ @joostlek
@@ -1136,12 +1142,14 @@ 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
/tests/components/pi_hole/ @shenxn
/homeassistant/components/picnic/ @corneyl
/tests/components/picnic/ @corneyl
/homeassistant/components/picnic/ @corneyl @codesalatdev
/tests/components/picnic/ @corneyl @codesalatdev
/homeassistant/components/ping/ @jpbede
/tests/components/ping/ @jpbede
/homeassistant/components/plaato/ @JohNan
@@ -1177,6 +1185,8 @@ build.json @home-assistant/supervisor
/tests/components/prusalink/ @balloob
/homeassistant/components/ps4/ @ktnrg45
/tests/components/ps4/ @ktnrg45
/homeassistant/components/pterodactyl/ @elmurato
/tests/components/pterodactyl/ @elmurato
/homeassistant/components/pure_energie/ @klaasnicolaas
/tests/components/pure_energie/ @klaasnicolaas
/homeassistant/components/purpleair/ @bachya
@@ -1246,6 +1256,8 @@ build.json @home-assistant/supervisor
/tests/components/refoss/ @ashionky
/homeassistant/components/remote/ @home-assistant/core
/tests/components/remote/ @home-assistant/core
/homeassistant/components/remote_calendar/ @Thomas55555
/tests/components/remote_calendar/ @Thomas55555
/homeassistant/components/renault/ @epenet
/tests/components/renault/ @epenet
/homeassistant/components/renson/ @jimmyd-be
@@ -1338,6 +1350,8 @@ build.json @home-assistant/supervisor
/tests/components/sensorpro/ @bdraco
/homeassistant/components/sensorpush/ @bdraco
/tests/components/sensorpush/ @bdraco
/homeassistant/components/sensorpush_cloud/ @sstallion
/tests/components/sensorpush_cloud/ @sstallion
/homeassistant/components/sensoterra/ @markruys
/tests/components/sensoterra/ @markruys
/homeassistant/components/sentry/ @dcramer @frenck
@@ -1393,6 +1407,8 @@ build.json @home-assistant/supervisor
/tests/components/smappee/ @bsmappee
/homeassistant/components/smart_meter_texas/ @grahamwetzler
/tests/components/smart_meter_texas/ @grahamwetzler
/homeassistant/components/smartthings/ @joostlek
/tests/components/smartthings/ @joostlek
/homeassistant/components/smarttub/ @mdz
/tests/components/smarttub/ @mdz
/homeassistant/components/smarty/ @z0mbieprocess
@@ -1407,6 +1423,8 @@ build.json @home-assistant/supervisor
/tests/components/snapcast/ @luar123
/homeassistant/components/snmp/ @nmaggioni
/tests/components/snmp/ @nmaggioni
/homeassistant/components/snoo/ @Lash-L
/tests/components/snoo/ @Lash-L
/homeassistant/components/snooz/ @AustinBrunkhorst
/tests/components/snooz/ @AustinBrunkhorst
/homeassistant/components/solaredge/ @frenck @bdraco
@@ -1462,8 +1480,6 @@ build.json @home-assistant/supervisor
/tests/components/suez_water/ @ooii @jb101010-2
/homeassistant/components/sun/ @Swamp-Ig
/tests/components/sun/ @Swamp-Ig
/homeassistant/components/sunweg/ @rokam
/tests/components/sunweg/ @rokam
/homeassistant/components/supla/ @mwegrzynek
/homeassistant/components/surepetcare/ @benleb @danielhiversen
/tests/components/surepetcare/ @benleb @danielhiversen
@@ -1517,8 +1533,8 @@ build.json @home-assistant/supervisor
/tests/components/tedee/ @patrickhilker @zweckj
/homeassistant/components/tellduslive/ @fredrike
/tests/components/tellduslive/ @fredrike
/homeassistant/components/template/ @PhracturedBlue @home-assistant/core
/tests/components/template/ @PhracturedBlue @home-assistant/core
/homeassistant/components/template/ @Petro31 @PhracturedBlue @home-assistant/core
/tests/components/template/ @Petro31 @PhracturedBlue @home-assistant/core
/homeassistant/components/tesla_fleet/ @Bre77
/tests/components/tesla_fleet/ @Bre77
/homeassistant/components/tesla_wall_connector/ @einarhauks
@@ -1687,6 +1703,8 @@ build.json @home-assistant/supervisor
/tests/components/weatherflow_cloud/ @jeeftor
/homeassistant/components/weatherkit/ @tjhorner
/tests/components/weatherkit/ @tjhorner
/homeassistant/components/webdav/ @jpbede
/tests/components/webdav/ @jpbede
/homeassistant/components/webhook/ @home-assistant/core
/tests/components/webhook/ @home-assistant/core
/homeassistant/components/webmin/ @autinerd

38
Dockerfile generated
View File

@@ -12,8 +12,26 @@ ENV \
ARG QEMU_CPU
# Home Assistant S6-Overlay
COPY rootfs /
# Needs to be redefined inside the FROM statement to be set for RUN commands
ARG BUILD_ARCH
# Get go2rtc binary
RUN \
case "${BUILD_ARCH}" in \
"aarch64") go2rtc_suffix='arm64' ;; \
"armhf") go2rtc_suffix='armv6' ;; \
"armv7") go2rtc_suffix='arm' ;; \
*) go2rtc_suffix=${BUILD_ARCH} ;; \
esac \
&& curl -L https://github.com/AlexxIT/go2rtc/releases/download/v1.9.9/go2rtc_linux_${go2rtc_suffix} --output /bin/go2rtc \
&& chmod +x /bin/go2rtc \
# Verify go2rtc can be executed
&& go2rtc --version
# Install uv
RUN pip3 install uv==0.5.21
RUN pip3 install uv==0.6.10
WORKDIR /usr/src
@@ -42,22 +60,4 @@ RUN \
&& python3 -m compileall \
homeassistant/homeassistant
# Home Assistant S6-Overlay
COPY rootfs /
# Needs to be redefined inside the FROM statement to be set for RUN commands
ARG BUILD_ARCH
# Get go2rtc binary
RUN \
case "${BUILD_ARCH}" in \
"aarch64") go2rtc_suffix='arm64' ;; \
"armhf") go2rtc_suffix='armv6' ;; \
"armv7") go2rtc_suffix='arm' ;; \
*) go2rtc_suffix=${BUILD_ARCH} ;; \
esac \
&& curl -L https://github.com/AlexxIT/go2rtc/releases/download/v1.9.8/go2rtc_linux_${go2rtc_suffix} --output /bin/go2rtc \
&& chmod +x /bin/go2rtc \
# Verify go2rtc can be executed
&& go2rtc --version
WORKDIR /config

View File

@@ -1,10 +1,10 @@
image: ghcr.io/home-assistant/{arch}-homeassistant
build_from:
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2024.12.0
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2024.12.0
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2024.12.0
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2024.12.0
i386: ghcr.io/home-assistant/i386-homeassistant-base:2024.12.0
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2025.02.1
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2025.02.1
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2025.02.1
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2025.02.1
i386: ghcr.io/home-assistant/i386-homeassistant-base:2025.02.1
codenotary:
signer: notary@home-assistant.io
base_image: notary@home-assistant.io
@@ -19,4 +19,4 @@ labels:
org.opencontainers.image.authors: The Home Assistant Authors
org.opencontainers.image.url: https://www.home-assistant.io/
org.opencontainers.image.documentation: https://www.home-assistant.io/docs/
org.opencontainers.image.licenses: Apache License 2.0
org.opencontainers.image.licenses: Apache-2.0

View File

@@ -178,6 +178,15 @@ _BLOCKING_CALLS: tuple[BlockingCall, ...] = (
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=SSLContext.set_default_verify_paths,
object=SSLContext,
function="set_default_verify_paths",
check_allowed=None,
strict=False,
strict_core=False,
skip_for_tests=True,
),
BlockingCall(
original_func=Path.open,
object=Path,

View File

@@ -74,12 +74,14 @@ from .core_config import async_process_ha_core_config
from .exceptions import HomeAssistantError
from .helpers import (
area_registry,
backup,
category_registry,
config_validation as cv,
device_registry,
entity,
entity_registry,
floor_registry,
frame,
issue_registry,
label_registry,
recorder,
@@ -91,6 +93,7 @@ from .helpers.dispatcher import async_dispatcher_send_internal
from .helpers.storage import get_internal_store_manager
from .helpers.system_info import async_get_system_info
from .helpers.typing import ConfigType
from .loader import Integration
from .setup import (
# _setup_started is marked as protected to make it clear
# that it is not part of the public API and should not be used
@@ -134,14 +137,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 +153,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,17 +166,28 @@ FRONTEND_INTEGRATIONS = {
# integrations can be removed and database migration status is
# visible in frontend
"frontend",
# 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
@@ -186,6 +202,7 @@ STAGE_1_INTEGRATIONS = {
# Ensure supervisor is available
"hassio",
}
DEFAULT_INTEGRATIONS = {
# These integrations are set up unless recovery mode is activated.
#
@@ -226,22 +243,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.
@@ -293,14 +300,6 @@ async def async_setup_hass(
return hass
async def stop_hass(hass: core.HomeAssistant) -> None:
"""Stop hass."""
# Ask integrations to shut down. It's messy but we can't
# do a clean stop without knowing what is broken
with contextlib.suppress(TimeoutError):
async with hass.timeout.async_timeout(10):
await hass.async_stop()
hass = await create_hass()
if runtime_config.skip_pip or runtime_config.skip_pip_packages:
@@ -316,10 +315,10 @@ async def async_setup_hass(
block_async_io.enable()
config_dict = None
basic_setup_success = False
if not (recovery_mode := runtime_config.recovery_mode):
config_dict = None
basic_setup_success = False
await hass.async_add_executor_job(conf_util.process_ha_config_upgrade, hass)
try:
@@ -337,39 +336,43 @@ async def async_setup_hass(
await async_from_config_dict(config_dict, hass) is not None
)
if config_dict is None:
recovery_mode = True
await stop_hass(hass)
hass = await create_hass()
if config_dict is None:
recovery_mode = True
await hass.async_stop(force=True)
hass = await create_hass()
elif not basic_setup_success:
_LOGGER.warning("Unable to set up core integrations. Activating recovery mode")
recovery_mode = True
await stop_hass(hass)
hass = await create_hass()
elif not basic_setup_success:
_LOGGER.warning(
"Unable to set up core integrations. Activating recovery mode"
)
recovery_mode = True
await hass.async_stop(force=True)
hass = await create_hass()
elif any(domain not in hass.config.components for domain in CRITICAL_INTEGRATIONS):
_LOGGER.warning(
"Detected that %s did not load. Activating recovery mode",
",".join(CRITICAL_INTEGRATIONS),
)
elif any(
domain not in hass.config.components for domain in CRITICAL_INTEGRATIONS
):
_LOGGER.warning(
"Detected that %s did not load. Activating recovery mode",
",".join(CRITICAL_INTEGRATIONS),
)
old_config = hass.config
old_logging = hass.data.get(DATA_LOGGING)
old_config = hass.config
old_logging = hass.data.get(DATA_LOGGING)
recovery_mode = True
await stop_hass(hass)
hass = await create_hass()
recovery_mode = True
await hass.async_stop(force=True)
hass = await create_hass()
if old_logging:
hass.data[DATA_LOGGING] = old_logging
hass.config.debug = old_config.debug
hass.config.skip_pip = old_config.skip_pip
hass.config.skip_pip_packages = old_config.skip_pip_packages
hass.config.internal_url = old_config.internal_url
hass.config.external_url = old_config.external_url
# Setup loader cache after the config dir has been set
loader.async_setup(hass)
if old_logging:
hass.data[DATA_LOGGING] = old_logging
hass.config.debug = old_config.debug
hass.config.skip_pip = old_config.skip_pip
hass.config.skip_pip_packages = old_config.skip_pip_packages
hass.config.internal_url = old_config.internal_url
hass.config.external_url = old_config.external_url
# Setup loader cache after the config dir has been set
loader.async_setup(hass)
if recovery_mode:
_LOGGER.info("Starting in recovery mode")
@@ -432,9 +435,10 @@ async def async_load_base_functionality(hass: core.HomeAssistant) -> None:
if DATA_REGISTRIES_LOADED in hass.data:
return
hass.data[DATA_REGISTRIES_LOADED] = None
translation.async_setup(hass)
entity.async_setup(hass)
frame.async_setup(hass)
template.async_setup(hass)
translation.async_setup(hass)
await asyncio.gather(
create_eager_task(get_internal_store_manager(hass).async_initialize()),
create_eager_task(area_registry.async_load(hass)),
@@ -655,11 +659,10 @@ def _create_log_file(
err_handler = _RotatingFileHandlerWithoutShouldRollOver(
err_log_path, backupCount=1
)
try:
err_handler.doRollover()
except OSError as err:
_LOGGER.error("Error rolling over log file: %s", err)
try:
err_handler.doRollover()
except OSError as err:
_LOGGER.error("Error rolling over log file: %s", err)
return err_handler
@@ -688,7 +691,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]
@@ -710,6 +712,258 @@ def _get_domains(hass: core.HomeAssistant, config: dict[str, Any]) -> set[str]:
return domains
async def _async_resolve_domains_and_preload(
hass: core.HomeAssistant, config: dict[str, Any]
) -> tuple[dict[str, Integration], dict[str, Integration]]:
"""Resolve all dependencies and return integrations to set up.
The return value is a tuple of two dictionaries:
- The first dictionary contains integrations
specified by the configuration (including config entries).
- The second dictionary contains the same integrations as the first dictionary
together with all their dependencies.
"""
domains_to_setup = _get_domains(hass, config)
platform_integrations = conf_util.extract_platform_integrations(
config, BASE_PLATFORMS
)
# Ensure base platforms that have platform integrations are added to `domains`,
# so they can be setup first instead of discovering them later when a config
# entry setup task notices that it's needed and there is already a long line
# to use the import executor.
#
# For example if we have
# sensor:
# - platform: template
#
# `template` has to be loaded to validate the config for sensor
# so we want to start loading `sensor` as soon as we know
# it will be needed. The more platforms under `sensor:`, the longer
# it will take to finish setup for `sensor` because each of these
# platforms has to be imported before we can validate the config.
#
# Thankfully we are migrating away from the platform pattern
# so this will be less of a problem in the future.
domains_to_setup.update(platform_integrations)
# Additionally process base platforms since we do not require the manifest
# to list them as dependencies.
# We want to later avoid lock contention when multiple integrations try to load
# their manifests at once.
# Also process integrations that are defined under base platforms
# to speed things up.
additional_domains_to_process = {
*BASE_PLATFORMS,
*chain.from_iterable(platform_integrations.values()),
}
# Resolve all dependencies so we know all integrations
# that will have to be loaded and start right-away
integrations_or_excs = await loader.async_get_integrations(
hass, {*domains_to_setup, *additional_domains_to_process}
)
# Eliminate those missing or with invalid manifest
integrations_to_process = {
domain: itg
for domain, itg in integrations_or_excs.items()
if isinstance(itg, Integration)
}
integrations_dependencies = await loader.resolve_integrations_dependencies(
hass, integrations_to_process.values()
)
# Eliminate those without valid dependencies
integrations_to_process = {
domain: integrations_to_process[domain] for domain in integrations_dependencies
}
integrations_to_setup = {
domain: itg
for domain, itg in integrations_to_process.items()
if domain in domains_to_setup
}
all_integrations_to_setup = integrations_to_setup.copy()
all_integrations_to_setup.update(
(dep, loader.async_get_loaded_integration(hass, dep))
for domain in integrations_to_setup
for dep in integrations_dependencies[domain].difference(
all_integrations_to_setup
)
)
# Gather requirements for all integrations,
# their dependencies and after dependencies.
# To gather all the requirements we must ignore exceptions here.
# The exceptions will be detected and handled later in the bootstrap process.
integrations_after_dependencies = (
await loader.resolve_integrations_after_dependencies(
hass, integrations_to_process.values(), ignore_exceptions=True
)
)
integrations_requirements = {
domain: itg.requirements for domain, itg in integrations_to_process.items()
}
integrations_requirements.update(
(dep, loader.async_get_loaded_integration(hass, dep).requirements)
for deps in integrations_after_dependencies.values()
for dep in deps.difference(integrations_requirements)
)
all_requirements = set(chain.from_iterable(integrations_requirements.values()))
# Optimistically check if requirements are already installed
# ahead of setting up the integrations so we can prime the cache
# We do not wait for this since it's an optimization only
hass.async_create_background_task(
requirements.async_load_installed_versions(hass, all_requirements),
"check installed requirements",
eager_start=True,
)
# Start loading translations for all integrations we are going to set up
# in the background so they are ready when we need them. This avoids a
# lot of waiting for the translation load lock and a thundering herd of
# tasks trying to load the same translations at the same time as each
# integration is loaded.
#
# We do not wait for this since as soon as the task runs it will
# hold the translation load lock and if anything is fast enough to
# wait for the translation load lock, loading will be done by the
# time it gets to it.
translations_to_load = {*all_integrations_to_setup, *additional_domains_to_process}
hass.async_create_background_task(
translation.async_load_integrations(hass, translations_to_load),
"load translations",
eager_start=True,
)
# Preload storage for all integrations we are going to set up
# so we do not have to wait for it to be loaded when we need it
# in the setup process.
hass.async_create_background_task(
get_internal_store_manager(hass).async_preload(
[*PRELOAD_STORAGE, *all_integrations_to_setup]
),
"preload storage",
eager_start=True,
)
return integrations_to_setup, all_integrations_to_setup
async def _async_set_up_integrations(
hass: core.HomeAssistant, config: dict[str, Any]
) -> None:
"""Set up all the integrations."""
watcher = _WatchPendingSetups(hass, _setup_started(hass))
watcher.async_start()
integrations, all_integrations = await _async_resolve_domains_and_preload(
hass, config
)
all_domains = set(all_integrations)
domains = set(integrations)
_LOGGER.info(
"Domains to be set up: %s | %s",
domains,
all_domains - domains,
)
# Initialize recorder
if "recorder" in all_domains:
recorder.async_initialize_recorder(hass)
# Initialize backup
if "backup" in all_domains:
backup.async_initialize_backup(hass)
stages: list[tuple[str, set[str], int | None]] = [
*(
(name, domain_group, timeout)
for name, domain_group, timeout in STAGE_0_INTEGRATIONS
),
("1", STAGE_1_INTEGRATIONS, STAGE_1_TIMEOUT),
("2", domains, STAGE_2_TIMEOUT),
]
_LOGGER.info("Setting up stage 0")
for name, domain_group, timeout in stages:
stage_domains_unfiltered = domain_group & all_domains
if not stage_domains_unfiltered:
_LOGGER.info("Nothing to set up in stage %s: %s", name, domain_group)
continue
stage_domains = stage_domains_unfiltered - hass.config.components
if not stage_domains:
_LOGGER.info("Already set up stage %s: %s", name, stage_domains_unfiltered)
continue
stage_dep_domains_unfiltered = {
dep
for domain in stage_domains
for dep in all_integrations[domain].all_dependencies
if dep not in stage_domains
}
stage_dep_domains = stage_dep_domains_unfiltered - hass.config.components
stage_all_domains = stage_domains | stage_dep_domains
stage_all_integrations = {
domain: all_integrations[domain] for domain in stage_all_domains
}
# Detect all cycles
stage_integrations_after_dependencies = (
await loader.resolve_integrations_after_dependencies(
hass, stage_all_integrations.values(), stage_all_domains
)
)
stage_all_domains = set(stage_integrations_after_dependencies)
stage_domains &= stage_all_domains
stage_dep_domains &= stage_all_domains
_LOGGER.info(
"Setting up stage %s: %s | %s\nDependencies: %s | %s",
name,
stage_domains,
stage_domains_unfiltered - stage_domains,
stage_dep_domains,
stage_dep_domains_unfiltered - stage_dep_domains,
)
async_set_domains_to_be_loaded(hass, stage_all_domains)
if timeout is None:
await _async_setup_multi_components(hass, stage_all_domains, config)
continue
try:
async with hass.timeout.async_timeout(timeout, cool_down=COOLDOWN_TIME):
await _async_setup_multi_components(hass, stage_all_domains, config)
except TimeoutError:
_LOGGER.warning(
"Setup timed out for stage %s waiting on %s - moving forward",
name,
hass._active_tasks, # noqa: SLF001
)
# Wrap up startup
_LOGGER.debug("Waiting for startup to wrap up")
try:
async with hass.timeout.async_timeout(WRAP_UP_TIMEOUT, cool_down=COOLDOWN_TIME):
await hass.async_block_till_done()
except TimeoutError:
_LOGGER.warning(
"Setup timed out for bootstrap waiting on %s - moving forward",
hass._active_tasks, # noqa: SLF001
)
watcher.async_stop()
if _LOGGER.isEnabledFor(logging.DEBUG):
setup_time = async_get_setup_timings(hass)
_LOGGER.debug(
"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."""
@@ -781,14 +1035,12 @@ class _WatchPendingSetups:
self._handle = None
async def async_setup_multi_components(
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.
@@ -798,9 +1050,7 @@ async def async_setup_multi_components(
f"setup component {domain}",
eager_start=True,
)
for domain in sorted(
domains_not_yet_setup, key=SETUP_ORDER_SORT_KEY, reverse=True
)
for domain in sorted(domains, key=SETUP_ORDER_SORT_KEY, reverse=True)
}
results = await asyncio.gather(*futures.values(), return_exceptions=True)
for idx, domain in enumerate(futures):
@@ -811,278 +1061,3 @@ async def async_setup_multi_components(
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]]:
"""Resolve all dependencies and return list of domains to set up."""
domains_to_setup = _get_domains(hass, config)
needed_requirements: set[str] = set()
platform_integrations = conf_util.extract_platform_integrations(
config, BASE_PLATFORMS
)
# Ensure base platforms that have platform integrations are added to
# to `domains_to_setup so they can be setup first instead of
# discovering them when later when a config entry setup task
# notices its needed and there is already a long line to use
# the import executor.
#
# For example if we have
# sensor:
# - platform: template
#
# `template` has to be loaded to validate the config for sensor
# so we want to start loading `sensor` as soon as we know
# it will be needed. The more platforms under `sensor:`, the longer
# it will take to finish setup for `sensor` because each of these
# platforms has to be imported before we can validate the config.
#
# Thankfully we are migrating away from the platform pattern
# so this will be less of a problem in the future.
domains_to_setup.update(platform_integrations)
# Load manifests for base platforms and platform based integrations
# that are defined under base platforms right away since we do not require
# the manifest to list them as dependencies and we want to avoid the lock
# contention when multiple integrations try to load them at once
additional_manifests_to_load = {
*BASE_PLATFORMS,
*chain.from_iterable(platform_integrations.values()),
}
translations_to_load = additional_manifests_to_load.copy()
# Resolve all dependencies so we know all integrations
# that will have to be loaded and start right-away
integration_cache: dict[str, loader.Integration] = {}
to_resolve: set[str] = domains_to_setup
while to_resolve or additional_manifests_to_load:
old_to_resolve: set[str] = to_resolve
to_resolve = set()
if additional_manifests_to_load:
to_get = {*old_to_resolve, *additional_manifests_to_load}
additional_manifests_to_load.clear()
else:
to_get = old_to_resolve
manifest_deps: set[str] = set()
resolve_dependencies_tasks: list[asyncio.Task[bool]] = []
integrations_to_process: list[loader.Integration] = []
for domain, itg in (await loader.async_get_integrations(hass, to_get)).items():
if not isinstance(itg, loader.Integration):
continue
integration_cache[domain] = itg
needed_requirements.update(itg.requirements)
# Make sure manifests for dependencies are loaded in the next
# loop to try to group as many as manifest loads in a single
# call to avoid the creating one-off executor jobs later in
# the setup process
additional_manifests_to_load.update(
dep
for dep in chain(itg.dependencies, itg.after_dependencies)
if dep not in integration_cache
)
if domain not in old_to_resolve:
continue
integrations_to_process.append(itg)
manifest_deps.update(itg.dependencies)
manifest_deps.update(itg.after_dependencies)
if not itg.all_dependencies_resolved:
resolve_dependencies_tasks.append(
create_eager_task(
itg.resolve_dependencies(),
name=f"resolve dependencies {domain}",
loop=hass.loop,
)
)
if unseen_deps := manifest_deps - integration_cache.keys():
# If there are dependencies, try to preload all
# the integrations manifest at once and add them
# to the list of requirements we need to install
# so we can try to check if they are already installed
# in a single call below which avoids each integration
# having to wait for the lock to do it individually
deps = await loader.async_get_integrations(hass, unseen_deps)
for dependant_domain, dependant_itg in deps.items():
if isinstance(dependant_itg, loader.Integration):
integration_cache[dependant_domain] = dependant_itg
needed_requirements.update(dependant_itg.requirements)
if resolve_dependencies_tasks:
await asyncio.gather(*resolve_dependencies_tasks)
for itg in integrations_to_process:
try:
all_deps = itg.all_dependencies
except RuntimeError:
# Integration.all_dependencies raises RuntimeError if
# dependencies could not be resolved
continue
for dep in all_deps:
if dep in domains_to_setup:
continue
domains_to_setup.add(dep)
to_resolve.add(dep)
_LOGGER.info("Domains to be set up: %s", domains_to_setup)
# Optimistically check if requirements are already installed
# ahead of setting up the integrations so we can prime the cache
# We do not wait for this since its an optimization only
hass.async_create_background_task(
requirements.async_load_installed_versions(hass, needed_requirements),
"check installed requirements",
eager_start=True,
)
#
# Only add the domains_to_setup after we finish resolving
# as new domains are likely to added in the process
#
translations_to_load.update(domains_to_setup)
# Start loading translations for all integrations we are going to set up
# in the background so they are ready when we need them. This avoids a
# lot of waiting for the translation load lock and a thundering herd of
# tasks trying to load the same translations at the same time as each
# integration is loaded.
#
# We do not wait for this since as soon as the task runs it will
# hold the translation load lock and if anything is fast enough to
# wait for the translation load lock, loading will be done by the
# time it gets to it.
hass.async_create_background_task(
translation.async_load_integrations(hass, translations_to_load),
"load translations",
eager_start=True,
)
# Preload storage for all integrations we are going to set up
# so we do not have to wait for it to be loaded when we need it
# in the setup process.
hass.async_create_background_task(
get_internal_store_manager(hass).async_preload(
[*PRELOAD_STORAGE, *domains_to_setup]
),
"preload storage",
eager_start=True,
)
return domains_to_setup, integration_cache
async def _async_set_up_integrations(
hass: core.HomeAssistant, config: dict[str, Any]
) -> None:
"""Set up all the integrations."""
watcher = _WatchPendingSetups(hass, _setup_started(hass))
watcher.async_start()
domains_to_setup, integration_cache = await _async_resolve_domains_to_setup(
hass, config
)
# 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
]
# calculate what components to setup in what stage
stage_1_domains: set[str] = set()
# 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()
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
)
# Add after dependencies when setting up stage 2 domains
async_set_domains_to_be_loaded(hass, stage_2_domains)
if stage_2_domains:
_LOGGER.info("Setting up stage 2: %s", stage_2_domains)
try:
async with hass.timeout.async_timeout(
STAGE_2_TIMEOUT, cool_down=COOLDOWN_TIME
):
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",
hass._active_tasks, # noqa: SLF001
)
# Wrap up startup
_LOGGER.debug("Waiting for startup to wrap up")
try:
async with hass.timeout.async_timeout(WRAP_UP_TIMEOUT, cool_down=COOLDOWN_TIME):
await hass.async_block_till_done()
except TimeoutError:
_LOGGER.warning(
"Setup timed out for bootstrap waiting on %s - moving forward",
hass._active_tasks, # noqa: SLF001
)
watcher.async_stop()
if _LOGGER.isEnabledFor(logging.DEBUG):
setup_time = async_get_setup_timings(hass)
_LOGGER.debug(
"Integration setup times: %s",
dict(sorted(setup_time.items(), key=itemgetter(1), reverse=True)),
)

View File

@@ -0,0 +1,5 @@
{
"domain": "bosch",
"name": "Bosch",
"integrations": ["bosch_alarm", "bosch_shc", "home_connect"]
}

View File

@@ -6,6 +6,7 @@
"azure_devops",
"azure_event_hub",
"azure_service_bus",
"azure_storage",
"microsoft_face_detect",
"microsoft_face_identify",
"microsoft_face",

View File

@@ -1,5 +1,6 @@
{
"domain": "motionblinds",
"name": "Motionblinds",
"integrations": ["motion_blinds", "motionblinds_ble"]
"integrations": ["motion_blinds", "motionblinds_ble"],
"iot_standards": ["matter"]
}

View File

@@ -0,0 +1,5 @@
{
"domain": "sensorpush",
"name": "SensorPush",
"integrations": ["sensorpush", "sensorpush_cloud"]
}

View File

@@ -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]

View File

@@ -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]

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]

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]

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]

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]

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]

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]

View File

@@ -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."""

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."""

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."""

View File

@@ -24,7 +24,7 @@ from homeassistant.components.weather import (
API_METRIC: Final = "Metric"
ATTRIBUTION: Final = "Data provided by AccuWeather"
ATTR_CATEGORY: Final = "Category"
ATTR_CATEGORY_VALUE = "CategoryValue"
ATTR_DIRECTION: Final = "Direction"
ATTR_ENGLISH: Final = "English"
ATTR_LEVEL: Final = "level"
@@ -55,5 +55,18 @@ CONDITION_MAP = {
for cond_ha, cond_codes in CONDITION_CLASSES.items()
for cond_code in cond_codes
}
AIR_QUALITY_CATEGORY_MAP = {
1: "good",
2: "moderate",
3: "unhealthy",
4: "very_unhealthy",
5: "hazardous",
}
POLLEN_CATEGORY_MAP = {
1: "low",
2: "moderate",
3: "high",
4: "very_high",
}
UPDATE_INTERVAL_OBSERVATION = timedelta(minutes=40)
UPDATE_INTERVAL_DAILY_FORECAST = timedelta(hours=6)

View File

@@ -75,7 +75,11 @@ class AccuWeatherObservationDataUpdateCoordinator(
async with timeout(10):
result = await self.accuweather.async_get_current_conditions()
except EXCEPTIONS as error:
raise UpdateFailed(error) from error
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="current_conditions_update_error",
translation_placeholders={"error": repr(error)},
) from error
_LOGGER.debug("Requests remaining: %d", self.accuweather.requests_remaining)
@@ -117,9 +121,15 @@ class AccuWeatherDailyForecastDataUpdateCoordinator(
"""Update data via library."""
try:
async with timeout(10):
result = await self.accuweather.async_get_daily_forecast()
result = await self.accuweather.async_get_daily_forecast(
language=self.hass.config.language
)
except EXCEPTIONS as error:
raise UpdateFailed(error) from error
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="forecast_update_error",
translation_placeholders={"error": repr(error)},
) from error
_LOGGER.debug("Requests remaining: %d", self.accuweather.requests_remaining)

View File

@@ -7,6 +7,6 @@
"integration_type": "service",
"iot_class": "cloud_polling",
"loggers": ["accuweather"],
"requirements": ["accuweather==4.0.0"],
"requirements": ["accuweather==4.2.0"],
"single_config_entry": true
}

View File

@@ -25,12 +25,13 @@ 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 (
AIR_QUALITY_CATEGORY_MAP,
API_METRIC,
ATTR_CATEGORY,
ATTR_CATEGORY_VALUE,
ATTR_DIRECTION,
ATTR_ENGLISH,
ATTR_LEVEL,
@@ -38,6 +39,7 @@ from .const import (
ATTR_VALUE,
ATTRIBUTION,
MAX_FORECAST_DAYS,
POLLEN_CATEGORY_MAP,
)
from .coordinator import (
AccuWeatherConfigEntry,
@@ -59,9 +61,9 @@ class AccuWeatherSensorDescription(SensorEntityDescription):
FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
AccuWeatherSensorDescription(
key="AirQuality",
value_fn=lambda data: cast(str, data[ATTR_CATEGORY]),
value_fn=lambda data: AIR_QUALITY_CATEGORY_MAP[data[ATTR_CATEGORY_VALUE]],
device_class=SensorDeviceClass.ENUM,
options=["good", "hazardous", "high", "low", "moderate", "unhealthy"],
options=list(AIR_QUALITY_CATEGORY_MAP.values()),
translation_key="air_quality",
),
AccuWeatherSensorDescription(
@@ -83,7 +85,9 @@ FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
entity_registry_enabled_default=False,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
attr_fn=lambda data: {
ATTR_LEVEL: POLLEN_CATEGORY_MAP[data[ATTR_CATEGORY_VALUE]]
},
translation_key="grass_pollen",
),
AccuWeatherSensorDescription(
@@ -107,7 +111,9 @@ FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
entity_registry_enabled_default=False,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
attr_fn=lambda data: {
ATTR_LEVEL: POLLEN_CATEGORY_MAP[data[ATTR_CATEGORY_VALUE]]
},
translation_key="mold_pollen",
),
AccuWeatherSensorDescription(
@@ -115,7 +121,9 @@ FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
attr_fn=lambda data: {
ATTR_LEVEL: POLLEN_CATEGORY_MAP[data[ATTR_CATEGORY_VALUE]]
},
translation_key="ragweed_pollen",
),
AccuWeatherSensorDescription(
@@ -181,14 +189,18 @@ FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
attr_fn=lambda data: {
ATTR_LEVEL: POLLEN_CATEGORY_MAP[data[ATTR_CATEGORY_VALUE]]
},
translation_key="tree_pollen",
),
AccuWeatherSensorDescription(
key="UVIndex",
native_unit_of_measurement=UV_INDEX,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
attr_fn=lambda data: {
ATTR_LEVEL: POLLEN_CATEGORY_MAP[data[ATTR_CATEGORY_VALUE]]
},
translation_key="uv_index_forecast",
),
AccuWeatherSensorDescription(
@@ -375,7 +387,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 = (

View File

@@ -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": {
@@ -26,10 +26,20 @@
"state": {
"good": "Good",
"hazardous": "Hazardous",
"high": "High",
"low": "Low",
"moderate": "Moderate",
"unhealthy": "Unhealthy"
"unhealthy": "Unhealthy",
"very_unhealthy": "Very unhealthy"
},
"state_attributes": {
"options": {
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]",
"very_unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::very_unhealthy%]"
}
}
}
},
"apparent_temperature": {
@@ -62,12 +72,10 @@
"level": {
"name": "Level",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
"high": "High",
"low": "Low",
"moderate": "Moderate",
"very_high": "Very high"
}
}
}
@@ -81,12 +89,10 @@
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
"high": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::moderate%]",
"very_high": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::very_high%]"
}
}
}
@@ -100,6 +106,15 @@
"steady": "Steady",
"rising": "Rising",
"falling": "Falling"
},
"state_attributes": {
"options": {
"state": {
"falling": "[%key:component::accuweather::entity::sensor::pressure_tendency::state::falling%]",
"rising": "[%key:component::accuweather::entity::sensor::pressure_tendency::state::rising%]",
"steady": "[%key:component::accuweather::entity::sensor::pressure_tendency::state::steady%]"
}
}
}
},
"ragweed_pollen": {
@@ -108,12 +123,10 @@
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
"high": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::moderate%]",
"very_high": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::very_high%]"
}
}
}
@@ -154,12 +167,10 @@
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
"high": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::moderate%]",
"very_high": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::very_high%]"
}
}
}
@@ -170,12 +181,10 @@
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
"high": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::moderate%]",
"very_high": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::very_high%]"
}
}
}
@@ -186,12 +195,10 @@
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
"high": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::moderate%]",
"very_high": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::state::very_high%]"
}
}
}
@@ -222,6 +229,14 @@
}
}
},
"exceptions": {
"current_conditions_update_error": {
"message": "An error occurred while retrieving weather current conditions data from the AccuWeather API: {error}"
},
"forecast_update_error": {
"message": "An error occurred while retrieving weather forecast data from the AccuWeather API: {error}"
}
},
"system_health": {
"info": {
"can_reach_server": "Reach AccuWeather server",

View File

@@ -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)])

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

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

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

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:

View File

@@ -5,14 +5,14 @@
"data": {
"connection_type": "Select connection type"
},
"description": "Select connection type. Local requires heaters with bluetooth"
"description": "Select connection type. Local requires heaters with Bluetooth"
},
"local": {
"data": {
"wifi_ssid": "Wi-Fi SSID",
"wifi_pswd": "Wi-Fi Password"
"wifi_pswd": "Wi-Fi password"
},
"description": "Reset the heater by pressing + and OK until display shows 'Reset'. Then press and hold OK button on the heater until the blue led starts blinking before pressing Submit. Configuring heater might take some minutes."
"description": "Reset the heater by pressing + and OK until display shows 'Reset'. Then press and hold OK button on the heater until the blue LED starts blinking before pressing Submit. Configuring heater might take some minutes."
},
"cloud": {
"data": {

View File

@@ -7,7 +7,7 @@ from dataclasses import dataclass
from adguardhome import AdGuardHome, AdGuardHomeConnectionError
import voluptuous as vol
from homeassistant.config_entries import ConfigEntry, ConfigEntryState
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONF_HOST,
CONF_NAME,
@@ -123,12 +123,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: AdGuardConfigEntry) -> b
async def async_unload_entry(hass: HomeAssistant, entry: AdGuardConfigEntry) -> bool:
"""Unload AdGuard Home config entry."""
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
loaded_entries = [
entry
for entry in hass.config_entries.async_entries(DOMAIN)
if entry.state == ConfigEntryState.LOADED
]
if len(loaded_entries) == 1:
if not hass.config_entries.async_loaded_entries(DOMAIN):
# This is the last loaded instance of AdGuard, deregister any services
hass.services.async_remove(DOMAIN, SERVICE_ADD_URL)
hass.services.async_remove(DOMAIN, SERVICE_REMOVE_URL)

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

View File

@@ -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."
}
}
}

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

View File

@@ -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."""

View File

@@ -2,6 +2,7 @@
from __future__ import annotations
from decimal import Decimal
import logging
from typing import Any
@@ -14,12 +15,13 @@ from homeassistant.components.climate import (
FAN_MEDIUM,
ClimateEntity,
ClimateEntityFeature,
HVACAction,
HVACMode,
)
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 (
@@ -49,6 +51,14 @@ ADVANTAGE_AIR_MYTEMP_ENABLED = "climateControlModeEnabled"
ADVANTAGE_AIR_HEAT_TARGET = "myAutoHeatTargetTemp"
ADVANTAGE_AIR_COOL_TARGET = "myAutoCoolTargetTemp"
ADVANTAGE_AIR_MYFAN = "autoAA"
ADVANTAGE_AIR_MYAUTO_MODE_SET = "myAutoModeCurrentSetMode"
HVAC_ACTIONS = {
"cool": HVACAction.COOLING,
"heat": HVACAction.HEATING,
"vent": HVACAction.FAN,
"dry": HVACAction.DRYING,
}
HVAC_MODES = [
HVACMode.OFF,
@@ -76,7 +86,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."""
@@ -175,6 +185,17 @@ class AdvantageAirAC(AdvantageAirAcEntity, ClimateEntity):
return ADVANTAGE_AIR_HVAC_MODES.get(self._ac["mode"])
return HVACMode.OFF
@property
def hvac_action(self) -> HVACAction | None:
"""Return the current running HVAC action."""
if self._ac["state"] == ADVANTAGE_AIR_STATE_OFF:
return HVACAction.OFF
if self._ac["mode"] == "myauto":
return HVAC_ACTIONS.get(
self._ac.get(ADVANTAGE_AIR_MYAUTO_MODE_SET, HVACAction.OFF)
)
return HVAC_ACTIONS.get(self._ac["mode"])
@property
def fan_mode(self) -> str | None:
"""Return the current fan modes."""
@@ -273,6 +294,22 @@ class AdvantageAirZone(AdvantageAirZoneEntity, ClimateEntity):
return HVACMode.HEAT_COOL
return HVACMode.OFF
@property
def hvac_action(self) -> HVACAction | None:
"""Return the HVAC action, inheriting from master AC if zone is open but idle if air is <= 5%."""
if self._ac["state"] == ADVANTAGE_AIR_STATE_OFF:
return HVACAction.OFF
master_action = HVAC_ACTIONS.get(self._ac["mode"], HVACAction.OFF)
if self._ac["mode"] == "myauto":
master_action = HVAC_ACTIONS.get(
str(self._ac.get(ADVANTAGE_AIR_MYAUTO_MODE_SET)), HVACAction.OFF
)
if self._zone["state"] == ADVANTAGE_AIR_STATE_OPEN:
if self._zone["value"] <= Decimal(5):
return HVACAction.IDLE
return master_action
return HVACAction.OFF
@property
def current_temperature(self) -> float | None:
"""Return the current temperature."""

View File

@@ -7,3 +7,4 @@ ADVANTAGE_AIR_STATE_CLOSE = "close"
ADVANTAGE_AIR_STATE_ON = "on"
ADVANTAGE_AIR_STATE_OFF = "off"
ADVANTAGE_AIR_AUTOFAN_ENABLED = "aaAutoFanModeEnabled"
ADVANTAGE_AIR_NIGHT_MODE_ENABLED = "quietNightModeEnabled"

View File

@@ -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."""
@@ -41,7 +41,7 @@ async def async_setup_entry(
entities.append(
AdvantageAirThingCover(instance, thing, CoverDeviceClass.BLIND)
)
elif thing["channelDipState"] == 3: # 3 = "Garage door"
elif thing["channelDipState"] in [3, 10]: # 3 & 10 = "Garage door"
entities.append(
AdvantageAirThingCover(instance, thing, CoverDeviceClass.GARAGE)
)

View File

@@ -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."""

View File

@@ -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."""

View File

@@ -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."""

View File

@@ -4,11 +4,12 @@ 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 (
ADVANTAGE_AIR_AUTOFAN_ENABLED,
ADVANTAGE_AIR_NIGHT_MODE_ENABLED,
ADVANTAGE_AIR_STATE_OFF,
ADVANTAGE_AIR_STATE_ON,
)
@@ -19,7 +20,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."""
@@ -32,6 +33,8 @@ async def async_setup_entry(
entities.append(AdvantageAirFreshAir(instance, ac_key))
if ADVANTAGE_AIR_AUTOFAN_ENABLED in ac_device["info"]:
entities.append(AdvantageAirMyFan(instance, ac_key))
if ADVANTAGE_AIR_NIGHT_MODE_ENABLED in ac_device["info"]:
entities.append(AdvantageAirNightMode(instance, ac_key))
if things := instance.coordinator.data.get("myThings"):
entities.extend(
AdvantageAirRelay(instance, thing)
@@ -93,6 +96,32 @@ class AdvantageAirMyFan(AdvantageAirAcEntity, SwitchEntity):
await self.async_update_ac({ADVANTAGE_AIR_AUTOFAN_ENABLED: False})
class AdvantageAirNightMode(AdvantageAirAcEntity, SwitchEntity):
"""Representation of Advantage 'MySleep$aver' Mode control."""
_attr_icon = "mdi:weather-night"
_attr_name = "MySleep$aver"
_attr_device_class = SwitchDeviceClass.SWITCH
def __init__(self, instance: AdvantageAirData, ac_key: str) -> None:
"""Initialize an Advantage Air Night Mode control."""
super().__init__(instance, ac_key)
self._attr_unique_id += "-nightmode"
@property
def is_on(self) -> bool:
"""Return the Night Mode status."""
return self._ac[ADVANTAGE_AIR_NIGHT_MODE_ENABLED]
async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn Night Mode on."""
await self.async_update_ac({ADVANTAGE_AIR_NIGHT_MODE_ENABLED: True})
async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn Night Mode off."""
await self.async_update_ac({ADVANTAGE_AIR_NIGHT_MODE_ENABLED: False})
class AdvantageAirRelay(AdvantageAirThingEntity, SwitchEntity):
"""Representation of Advantage Air Thing."""

View File

@@ -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."""

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

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

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

View File

@@ -14,7 +14,7 @@ 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

View File

@@ -51,7 +51,7 @@
"issues": {
"deprecated_yaml_import_issue_cannot_connect": {
"title": "The {integration_title} YAML configuration import failed",
"description": "Configuring {integration_title} using YAML is being removed but there was an connection error importing your YAML configuration.\n\nEnsure connection to {integration_title} works and restart Home Assistant to try again or remove the {integration_title} YAML configuration from your configuration.yaml file and continue to [set up the integration]({url}) manually."
"description": "Configuring {integration_title} using YAML is being removed but there was a connection error importing your YAML configuration.\n\nEnsure connection to {integration_title} works and restart Home Assistant to try again or remove the {integration_title} YAML configuration from your configuration.yaml file and continue to [set up the integration]({url}) manually."
}
}
}

View File

@@ -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)])

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()

View File

@@ -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()

View File

@@ -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

View File

@@ -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),
)

View File

@@ -6,6 +6,6 @@
"documentation": "https://www.home-assistant.io/integrations/airgradient",
"integration_type": "device",
"iot_class": "local_polling",
"requirements": ["airgradient==0.9.1"],
"requirements": ["airgradient==0.9.2"],
"zeroconf": ["_airgradient._tcp.local."]
}

View File

@@ -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."""

View File

@@ -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."""

View File

@@ -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."""

View File

@@ -11,7 +11,7 @@
}
},
"discovery_confirm": {
"description": "Do you want to setup {model}?"
"description": "Do you want to set up {model}?"
}
},
"abort": {
@@ -68,8 +68,8 @@
"led_bar_mode": {
"name": "LED bar mode",
"state": {
"off": "Off",
"co2": "Carbon dioxide",
"off": "[%key:common::state::off%]",
"co2": "[%key:component::sensor::entity_component::carbon_dioxide::name%]",
"pm": "Particulate matter"
}
},
@@ -143,8 +143,8 @@
"led_bar_mode": {
"name": "[%key:component::airgradient::entity::select::led_bar_mode::name%]",
"state": {
"off": "[%key:component::airgradient::entity::select::led_bar_mode::state::off%]",
"co2": "[%key:component::airgradient::entity::select::led_bar_mode::state::co2%]",
"off": "[%key:common::state::off%]",
"co2": "[%key:component::sensor::entity_component::carbon_dioxide::name%]",
"pm": "[%key:component::airgradient::entity::select::led_bar_mode::state::pm%]"
}
},

View File

@@ -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

View File

@@ -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."""

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()

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."""
@@ -93,7 +105,14 @@ class AirlyDataUpdateCoordinator(DataUpdateCoordinator[dict[str, str | float | i
try:
await measurements.update()
except (AirlyError, ClientConnectorError) as error:
raise UpdateFailed(error) from error
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="update_error",
translation_placeholders={
"entry": self.config_entry.title,
"error": repr(error),
},
) from error
_LOGGER.debug(
"Requests remaining: %s/%s",
@@ -114,7 +133,11 @@ class AirlyDataUpdateCoordinator(DataUpdateCoordinator[dict[str, str | float | i
standards = measurements.current["standards"]
if index["description"] == NO_AIRLY_SENSORS:
raise UpdateFailed("Can't retrieve data: no Airly sensors in this area")
raise UpdateFailed(
translation_domain=DOMAIN,
translation_key="no_station",
translation_placeholders={"entry": self.config_entry.title},
)
for value in values:
data[value["name"]] = value["value"]
for standard in standards:

View File

@@ -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}

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]

View File

@@ -36,5 +36,13 @@
"name": "[%key:component::sensor::entity_component::carbon_monoxide::name%]"
}
}
},
"exceptions": {
"update_error": {
"message": "An error occurred while retrieving data from the Airly API for {entry}: {error}"
},
"no_station": {
"message": "An error occurred while retrieving data from the Airly API for {entry}: no measuring stations in this area"
}
}
}

View File

@@ -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

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

View File

@@ -8,8 +8,9 @@ from aiohttp import ClientSession
from aiohttp.client_exceptions import ClientConnectorError
from pyairnow import WebServiceAPI
from pyairnow.conv import aqi_to_concentration
from pyairnow.errors import AirNowError
from pyairnow.errors import AirNowError, InvalidJsonError
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."""
@@ -67,7 +79,7 @@ class AirNowDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
distance=self.distance,
)
except (AirNowError, ClientConnectorError) as error:
except (AirNowError, ClientConnectorError, InvalidJsonError) as error:
raise UpdateFailed(error) from error
if not obs:

View File

@@ -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"

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

View File

@@ -7,7 +7,7 @@
"api_key": "[%key:common::config_flow::data::api_key%]",
"latitude": "[%key:common::config_flow::data::latitude%]",
"longitude": "[%key:common::config_flow::data::longitude%]",
"radius": "Station Radius (miles; optional)"
"radius": "Station radius (miles; optional)"
}
}
},
@@ -25,7 +25,7 @@
"step": {
"init": {
"data": {
"radius": "Station Radius (miles)"
"radius": "Station radius (miles)"
}
}
}

View File

@@ -83,6 +83,7 @@ class AirQConfigFlow(ConfigFlow, domain=DOMAIN):
await self.async_set_unique_id(device_info["id"])
self._abort_if_unique_id_configured()
_LOGGER.debug("Creating an entry for %s", device_info["name"])
return self.async_create_entry(title=device_info["name"], data=user_input)
return self.async_show_form(

View File

@@ -5,7 +5,7 @@ from __future__ import annotations
from datetime import timedelta
import logging
from aioairq import AirQ
from aioairq.core import AirQ, identify_warming_up_sensors
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_IP_ADDRESS, CONF_PASSWORD
@@ -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),
)
@@ -52,6 +55,9 @@ class AirQCoordinator(DataUpdateCoordinator):
async def _async_update_data(self) -> dict:
"""Fetch the data from the device."""
if "name" not in self.device_info:
_LOGGER.debug(
"'name' not found in AirQCoordinator.device_info, fetching from the device"
)
info = await self.airq.fetch_device_info()
self.device_info.update(
DeviceInfo(
@@ -61,7 +67,16 @@ class AirQCoordinator(DataUpdateCoordinator):
hw_version=info["hw_version"],
)
)
return await self.airq.get_latest_data( # type: ignore[no-any-return]
_LOGGER.debug(
"Updated AirQCoordinator.device_info for 'name' %s",
self.device_info.get("name"),
)
data: dict = await self.airq.get_latest_data(
return_average=self.return_average,
clip_negative_values=self.clip_negative,
)
if warming_up_sensors := identify_warming_up_sensors(data):
_LOGGER.debug(
"Following sensors are still warming up: %s", warming_up_sensors
)
return data

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"]
}

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."""

View File

@@ -91,7 +91,7 @@
"name": "Hydrogen fluoride"
},
"health_index": {
"name": "Health Index"
"name": "Health index"
},
"absolute_humidity": {
"name": "Absolute humidity"
@@ -112,10 +112,10 @@
"name": "Oxygen"
},
"performance_index": {
"name": "Performance Index"
"name": "Performance index"
},
"hydrogen_phosphide": {
"name": "Hydrogen Phosphide"
"name": "Hydrogen phosphide"
},
"relative_pressure": {
"name": "Relative pressure"
@@ -127,22 +127,22 @@
"name": "Refrigerant"
},
"silicon_hydride": {
"name": "Silicon Hydride"
"name": "Silicon hydride"
},
"noise": {
"name": "Noise"
},
"maximum_noise": {
"name": "Noise (Maximum)"
"name": "Noise (maximum)"
},
"radon": {
"name": "Radon"
},
"industrial_volatile_organic_compounds": {
"name": "VOCs (Industrial)"
"name": "VOCs (industrial)"
},
"virus_index": {
"name": "Virus Index"
"name": "Virus index"
}
}
}

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."""

View File

@@ -102,7 +102,8 @@ class AirthingsConfigFlow(ConfigFlow, domain=DOMAIN):
device = await self._get_device_data(discovery_info)
except AirthingsDeviceUpdateError:
return self.async_abort(reason="cannot_connect")
except Exception: # noqa: BLE001
except Exception:
_LOGGER.exception("Unknown error occurred")
return self.async_abort(reason="unknown")
name = get_name(device)
@@ -144,7 +145,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:
@@ -160,7 +161,8 @@ class AirthingsConfigFlow(ConfigFlow, domain=DOMAIN):
device = await self._get_device_data(discovery_info)
except AirthingsDeviceUpdateError:
return self.async_abort(reason="cannot_connect")
except Exception: # noqa: BLE001
except Exception:
_LOGGER.exception("Unknown error occurred")
return self.async_abort(reason="unknown")
name = get_name(device)
self._discovered_devices[address] = Discovery(name, discovery_info, device)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -32,7 +32,8 @@ class AirTouch5ConfigFlow(ConfigFlow, domain=DOMAIN):
client = Airtouch5SimpleClient(user_input[CONF_HOST])
try:
await client.test_connection()
except Exception: # noqa: BLE001
except Exception:
_LOGGER.exception("Unexpected exception")
errors = {"base": "cannot_connect"}
else:
await self.async_set_unique_id(user_input[CONF_HOST])

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

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

View File

@@ -2,7 +2,7 @@
"config": {
"step": {
"geography_by_coords": {
"title": "Configure a Geography",
"title": "Configure a geography",
"description": "Use the AirVisual cloud API to monitor a latitude/longitude.",
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
@@ -16,8 +16,8 @@
"data": {
"api_key": "[%key:common::config_flow::data::api_key%]",
"city": "City",
"country": "Country",
"state": "State"
"state": "State",
"country": "[%key:common::config_flow::data::country%]"
}
},
"reauth_confirm": {
@@ -56,12 +56,12 @@
"sensor": {
"pollutant_label": {
"state": {
"co": "Carbon Monoxide",
"n2": "Nitrogen Dioxide",
"o3": "Ozone",
"p1": "PM10",
"p2": "PM2.5",
"s2": "Sulfur Dioxide"
"co": "[%key:component::sensor::entity_component::carbon_monoxide::name%]",
"n2": "[%key:component::sensor::entity_component::nitrogen_dioxide::name%]",
"o3": "[%key:component::sensor::entity_component::ozone::name%]",
"p1": "[%key:component::sensor::entity_component::pm10::name%]",
"p2": "[%key:component::sensor::entity_component::pm25::name%]",
"s2": "[%key:component::sensor::entity_component::sulphur_dioxide::name%]"
}
},
"pollutant_level": {

View File

@@ -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(

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