Compare commits

...

1185 Commits

Author SHA1 Message Date
Franck Nijhof a5eb816dcf 2024.12.4 (#133422) 2024-12-17 15:28:28 +01:00
Franck Nijhof 517f3faa0a Bump version to 2024.12.4 2024-12-17 12:14:26 +00:00
G Johansson b4015805f7 Bump holidays to 0.63 (#133391) 2024-12-17 12:14:04 +00:00
Jonas Fors Lellky a56ad0273b Fix fan setpoints for flexit_bacnet (#133388) 2024-12-17 12:14:00 +00:00
Maciej Bieniek 2bc917c842 Bump imgw-pib to version 1.0.7 (#133364) 2024-12-17 12:13:57 +00:00
Michael 97f22b3a3d Allow load_verify_locations with only cadata passed (#133299) 2024-12-17 12:13:53 +00:00
J. Nick Koston a48a5adc81 Set code_arm_required to False for homekit_controller (#133284) 2024-12-17 12:13:50 +00:00
J. Nick Koston eb86b00dd4 Bump yalexs-ble to 2.5.5 (#133229)
changelog: https://github.com/bdraco/yalexs-ble/compare/v2.5.4...v2.5.5
2024-12-17 12:13:47 +00:00
Jan Bouwhuis e93256951e Bump incomfort-client to v0.6.4 (#133205) 2024-12-17 12:13:43 +00:00
Erik Montnemery 3b0ab421b0 Revert "Improve recorder history queries (#131702)" (#133203) 2024-12-17 12:11:13 +00:00
Erik Montnemery ca47253d81 Revert "Simplify recorder RecorderRunsManager" (#133201)
Revert "Simplify recorder RecorderRunsManager (#131785)"

This reverts commit cf0ee63507.
2024-12-17 12:08:41 +00:00
Avi Miller 9b0a489753 Bump aiolifx to 1.1.2 and add new HomeKit product prefixes (#133191)
Signed-off-by: Avi Miller <me@dje.li>
2024-12-17 11:44:54 +00:00
Conor Eager 9b02db008e Bump starlink-grpc-core to 1.2.1 to fix missing ping (#133183) 2024-12-17 11:44:50 +00:00
J. Nick Koston 223817a7fb Bump yalexs-ble to 2.5.4 (#133172) 2024-12-17 11:44:47 +00:00
G Johansson cdea9b5d3a Fix strptime in python_script (#133159)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-12-17 11:44:41 +00:00
Joost Lekkerkerker 8286ec9e60 Bump yt-dlp to 2024.12.13 (#133129) 2024-12-17 11:44:38 +00:00
rappenze cce7b9ac34 Fix fibaro climate hvac mode (#132508) 2024-12-17 11:44:34 +00:00
Erik Montnemery a42c0230c9 Simplify recorder RecorderRunsManager (#131785) 2024-12-17 11:44:30 +00:00
Franck Nijhof 46db3964f3 2024.12.3 (#133123) 2024-12-13 12:16:14 +01:00
Franck Nijhof 9b83a00285 Bump version to 2024.12.3 2024-12-13 11:04:47 +01:00
Joost Lekkerkerker 9a7fda5b25 Bump aiowithings to 3.1.4 (#133117) 2024-12-13 11:04:34 +01:00
Robert Resch f9bdc29546 Bump deebot-client to 9.4.0 (#133114) 2024-12-13 11:04:31 +01:00
Brandon Rothweiler d9bb1f6035 Bump py-aosmith to 1.0.12 (#133100) 2024-12-13 11:04:28 +01:00
David Bonnes 01359b32c4 Bugfix to use evohome's new hostname (#133085) 2024-12-13 11:04:25 +01:00
jb101010-2 d0c00aaa67 Bump pysuezV2 to 1.3.5 (#133076) 2024-12-13 11:04:22 +01:00
Bram Kragten 73465a7aa8 Update frontend to 20241127.8 (#133066) 2024-12-13 11:04:19 +01:00
Franck Nijhof ed03c0a294 Fix LaMetric config flow for cloud import path (#133039) 2024-12-13 11:04:16 +01:00
Michael Hansen b38a7186d2 Change warning to debug for VAD timeout (#132987) 2024-12-13 11:04:13 +01:00
J. Nick Koston 31348930cc Bump led-ble to 1.1.1 (#132977)
changelog: https://github.com/Bluetooth-Devices/led-ble/compare/v1.0.2...v1.1.1
2024-12-13 11:04:09 +01:00
Simone Chemelli 83e1353c01 Guard Vodafone Station updates against bad data (#132921)
guard Vodafone Station updates against bad data
2024-12-13 11:04:07 +01:00
Simone Chemelli ede9c3ecd2 fix AndroidTV logging when disconnected (#132919) 2024-12-13 11:04:04 +01:00
Michael Hansen c08ffcff9b Fix pipeline conversation language (#132896) 2024-12-13 11:04:01 +01:00
Stefano Angeleri 038115fea2 Bump pydaikin to 2.13.8 (#132759) 2024-12-13 11:03:58 +01:00
Simon Lamon 4e5ceb3aa4 Bump python-linkplay to v0.1.1 (#132091) 2024-12-13 11:03:53 +01:00
Franck Nijhof 3fe2c14a79 2024.12.2 (#132846) 2024-12-10 21:45:06 +01:00
Franck Nijhof 238cf691a4 Bump version to 2024.12.2 2024-12-10 15:07:18 +01:00
Josef Zweck 5a5bb139fa Bump aioacaia to 0.1.11 (#132838) 2024-12-10 14:59:48 +01:00
Robert Resch 01a9a58327 Bump deebot-client to 9.3.0 (#132834) 2024-12-10 14:59:45 +01:00
David Knowles fc34c6181c Pass an application identifier to the Hydrawise API (#132779) 2024-12-10 14:59:42 +01:00
David Knowles 60e8a38ba3 Catch Hydrawise authorization errors in the correct place (#132727) 2024-12-10 14:59:37 +01:00
starkillerOG e4765c40fe Bump reolink-aio to 0.11.5 (#132757) 2024-12-10 14:55:48 +01:00
Bram Kragten e239871566 Update frontend to 20241127.7 (#132729)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-10 14:55:43 +01:00
Michael Hansen c8e5a6df5d Bump intents to 2024.12.9 (#132726) 2024-12-10 14:54:48 +01:00
Simone Rescio cac4eef795 Revert "Bump pyezviz to 0.2.2.3" (#132715) 2024-12-10 14:51:04 +01:00
Joost Lekkerkerker 8fc50c776e Bump yt-dlp to 2024.12.06 (#132684) 2024-12-10 14:51:00 +01:00
Bouwe Westerdijk da344a44e5 Bump plugwise to v1.6.3 (#132673) 2024-12-10 14:50:57 +01:00
puddly 1993142e44 Bump ZHA dependencies (#132630) 2024-12-10 14:50:54 +01:00
Thomas55555 382d32c7a7 Fix config flow in Husqvarna Automower (#132615) 2024-12-10 14:50:50 +01:00
Bouwe Westerdijk ef89563bad Bump plugwise to v1.6.2 and adapt (#132608) 2024-12-10 14:50:46 +01:00
Bouwe Westerdijk 26012ac922 Bump plugwise to v1.6.1 (#131950) 2024-12-10 14:50:42 +01:00
J. Nick Koston a33c69a2a2 Bump yalexs-ble to 2.5.2 (#132560) 2024-12-10 14:45:34 +01:00
Franck Nijhof 0096ffb659 Update twentemilieu to 2.2.0 (#132554) 2024-12-10 14:45:31 +01:00
Robert Svensson db141ce449 Bump aiounifi to v81 to fix partitioned cookies on python 3.13 (#132540) 2024-12-10 14:45:26 +01:00
Austin Mroczek af5f718a71 bump total_connect_client to 2023.12 (#132531) 2024-12-10 14:43:52 +01:00
Franck Nijhof f1284178ed Update debugpy to 1.8.8 (#132519) 2024-12-10 14:41:15 +01:00
J. Nick Koston b0005cedff Bump pycups to 2.0.4 (#132514) 2024-12-10 14:41:11 +01:00
Erwin Douna 5d01f7db85 Fix PyTado dependency (#132510) 2024-12-10 14:41:08 +01:00
Alex d6a4a7f052 Update pyrisco to 0.6.5 (#132493) 2024-12-10 14:41:02 +01:00
Ravaka Razafimanantsoa 1f6c5b4d8b Fix API change for AC not supporting floats in SwitchBot Cloud (#132231) 2024-12-10 14:36:09 +01:00
David Knowles 4e56f9c014 Bump pydrawise to 2024.12.0 (#132015) 2024-12-10 14:36:06 +01:00
Åke Strandberg f343dce418 Enable additional entities on myUplink model SMO20 (#131688)
* Add a couple of entities to SMO 20

* Enable additional entities on SMO20
2024-12-10 14:35:58 +01:00
Franck Nijhof cf53a9743f 2024.12.1 (#132509) 2024-12-06 20:21:31 +01:00
Franck Nijhof 4884891b2c Bump version to 2024.12.1 2024-12-06 18:54:13 +01:00
Allen Porter 30504fc9bd Fix google tasks due date timezone handling (#132498) 2024-12-06 18:53:42 +01:00
Bram Kragten 8827454dbd Update frontend to 20241127.6 (#132494) 2024-12-06 18:53:39 +01:00
Bram Kragten 3b30bbb85e Update frontend to 20241127.5 (#132475) 2024-12-06 18:53:35 +01:00
epenet df9eb482b5 Bump samsungtvws to 2.7.2 (#132474) 2024-12-06 18:53:32 +01:00
Steven B. 32aee61441 Bump tplink python-kasa dependency to 0.8.1 (#132472) 2024-12-06 18:53:29 +01:00
Robert Resch 35873cbe27 Point to the Ecovacs issue in the library for unspoorted devices (#132470)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-06 18:53:26 +01:00
Robert Resch 6fe492a51c Bump deebot-client to 9.2.0 (#132467) 2024-12-06 18:53:22 +01:00
G Johansson b1bc35f1c3 Fix nordpool dont have previous or next price (#132457) 2024-12-06 18:53:19 +01:00
Joakim Sørensen 56d10a0a7a Bump hass-nabucasa from 0.85.0 to 0.86.0 (#132456)
Bump hass-nabucasa fro 0.85.0 to 0.86.0
2024-12-06 18:53:16 +01:00
Allen Porter d091936ac6 Update exception handling for python3.13 for getpass.getuser() (#132449)
* Update exception handling for python3.13 for getpass.getuser()

* Add comment

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

* Cleanup trailing space

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-06 18:53:12 +01:00
J. Nick Koston 1dfd4e80b9 Bump aioesphomeapi to 28.0.0 (#132447) 2024-12-06 18:53:09 +01:00
J. Nick Koston d919de6734 Bump aiohttp to 3.11.10 (#132441) 2024-12-06 18:53:06 +01:00
Blake Bryant 3f9f0f8ac2 Bump pydeako to 0.6.0 (#132432)
feat: update deako integration to use improved version of pydeako

Some things of note:
- simplified errors
- pydeako has introduced some connection improvements

See here: https://github.com/DeakoLights/pydeako/releases/tag/0.6.0
2024-12-06 18:53:03 +01:00
Glenn Waters bf20ffae96 Bump upb-lib to 0.5.9 (#132411) 2024-12-06 18:53:00 +01:00
Diogo Gomes dad81927cb Removes references to croniter from utility_meter (#132364)
remove croniter
2024-12-06 18:52:56 +01:00
robinostlund 92392ab3d4 Add missing UnitOfPower to sensor (#132352)
* Add missing UnitOfPower to sensor

* Update homeassistant/components/sensor/const.py

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

* adding to number

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-06 18:52:53 +01:00
Brett Adams a47e5398f0 Bump tesla-fleet-api to 0.8.5 (#132339) 2024-12-06 18:52:50 +01:00
J. Nick Koston cf6d33635b Fix deprecated call to mimetypes.guess_type in CachingStaticResource (#132299) 2024-12-06 18:52:47 +01:00
Alberto Geniola 6a4031a383 Bump elmax-api to 0.0.6.3 (#131876) 2024-12-06 18:52:39 +01:00
Franck Nijhof 2b40844171 2024.12.0 (#132195) 2024-12-04 19:58:02 +01:00
Franck Nijhof 9b90df74a6 Bump version to 2024.12.0 2024-12-04 19:18:48 +01:00
Michael Hansen dcdf033fa9 Bump intents to 2024.12.4 (#132274) 2024-12-04 19:03:26 +01:00
Franck Nijhof 4c3ae395a4 Bump version to 2024.12.0b6 2024-12-04 15:33:47 +01:00
Jan Bouwhuis 333ada7670 Ensure MQTT subscriptions can be made when the broker is disconnected (#132270) 2024-12-04 15:33:35 +01:00
Bram Kragten 4fd4ba7813 Update frontend to 20241127.4 (#132268) 2024-12-04 15:33:31 +01:00
Robert Resch 7e96666dc5 Bump deebot-client to 9.1.0 (#132253) 2024-12-04 15:33:28 +01:00
Joost Lekkerkerker e463d5d16f Bump yt-dlp to 2024.12.03 (#132220) 2024-12-04 15:33:24 +01:00
Raphael Hehl f28579357e fix: unifiprotect prevent RTSP repair for third-party cameras (#132212)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-12-04 15:33:21 +01:00
cnico d40a9bd9ef Fix blocking call in netdata (#132209)
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-12-04 15:33:17 +01:00
lunmay 28ecee6479 Fix typo in exception message in google_photos integration (#132194) 2024-12-04 15:33:14 +01:00
Michael Hansen 512ac7d572 Ensure entity names are not hassil templates (#132184) 2024-12-04 15:33:11 +01:00
Pete 22b353f7d5 Fix recorder "year" period in leap year (#132167)
* FIX: make "year" period work in leap year

* Add test

* Set second and microsecond to non-zero in test start times

* FIX: better fix for leap year problem

* Revert "FIX: better fix for leap year problem"

This reverts commit 06aba46ec6.

---------

Co-authored-by: Erik <erik@montnemery.com>
2024-12-04 15:33:07 +01:00
Jan-Philipp Benecke 49c40cd902 Track if intent was processed locally (#132166) 2024-12-04 15:33:04 +01:00
LG-ThinQ-Integration 629c7a53ce Bump thinqconnect to 1.0.2 (#132131)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-12-04 15:32:58 +01:00
G Johansson 66e3ffffa7 Bump holidays to 0.62 (#132108) 2024-12-04 15:32:55 +01:00
Joost Lekkerkerker 139b424717 Bump knocki to 0.4.2 (#129261) 2024-12-04 15:32:50 +01:00
Franck Nijhof 33633f885d Ran hassfest 2024-12-04 09:59:28 +01:00
Franck Nijhof 759a2b84f5 Bump version to 2024.12.0b5 2024-12-03 18:03:36 +01:00
Bram Kragten ebffcb455f Update frontend to 20241127.3 (#132176) 2024-12-03 18:01:38 +01:00
epenet 08773cefb7 Pin rpds-py to 0.21.0 to fix CI (#132170)
* Pin rpds-py==0.21.0 to fix CI

* Add carriage return
2024-12-03 18:01:35 +01:00
Jon Seager 79352ea0f0 Bump pytouchlinesl to 0.3.0 (#132157) 2024-12-03 18:01:32 +01:00
Raphael Hehl b7038d4eb7 Bump uiprotect to 6.6.5 (#132147) 2024-12-03 18:01:29 +01:00
Tobias Perschon 8a310cbbf8 Improve error logging for unifi-ap (#132141) 2024-12-03 18:01:26 +01:00
Paulus Schoutsen 07196b0fda Fix bad hassil tests on CI (#132132)
* Fix CI

* Fix whitespace

---------

Co-authored-by: Michael Hansen <mike@rhasspy.org>
2024-12-03 18:01:23 +01:00
Tobias Perschon 0a38af7e48 Bump unifi_ap to 0.0.2 (#132125) 2024-12-03 18:01:19 +01:00
Bram Kragten 155fafb735 Update frontend to 20241127.2 (#132109)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-12-03 17:59:19 +01:00
J. Nick Koston 54ec41f25d Bump PyJWT to 2.10.1 (#132100) 2024-12-03 17:56:59 +01:00
Abílio Costa f480cc3396 Use translations on NumberEntity unit_of_measurement property (#132095)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-12-03 17:55:30 +01:00
Michael Hansen 2aea738032 Bump hassil and intents (#132092) 2024-12-03 17:54:28 +01:00
Jan Bouwhuis ab5165fdfa Fix imap sensor in case of alternative empty search response (#132081) 2024-12-03 17:36:08 +01:00
Jan-Philipp Benecke c6468aca2b Mark trend sensor unavailable when source entity is unknown/unavailable (#132080) 2024-12-03 17:36:04 +01:00
Duco Sebel 895ffbabf7 Round status light brightness number in HomeWizard (#132069) 2024-12-03 17:36:01 +01:00
Josef Zweck 3f1286b338 Set connections on device for acaia (#132064) 2024-12-03 17:35:57 +01:00
Simone Rescio d3a577ad89 Bump pyezviz to 0.2.2.3 (#132060) 2024-12-03 17:35:54 +01:00
Jan Rieger f44103ac7f Add translated native unit of measurement to Jellyfin (#132055) 2024-12-03 17:35:51 +01:00
Josef Zweck f1ebda7c6f Instantiate new httpx client for lamarzocco (#132016) 2024-12-03 17:35:47 +01:00
starkillerOG 905769f0e8 Fix Reolink dispatcher ID for onvif fallback (#131953) 2024-12-03 17:35:44 +01:00
Thomas55555 43899b6f28 Catch InverterReturnedError in APSystems (#131930)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-03 17:35:40 +01:00
Andrew Jackson b5e7da4262 Add translated native unit of measurement - QBitTorrent (#131918)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-12-03 17:35:37 +01:00
Andrew Jackson 3dc0ca7e1e Add translated native unit of measurement - PiHole (#131915) 2024-12-03 17:35:34 +01:00
Andrew Jackson 42c46a15b4 Add translated native unit of measurement - Transmission (#131913) 2024-12-03 17:35:31 +01:00
Andrew Jackson 97a725c2c6 Add translated native unit of measurement - squeezebox (#131912) 2024-12-03 17:35:28 +01:00
Abílio Costa c3499e5294 Update buienradar sensors only after being added to HA (#131830)
* Update buienradar sensors only after being added to HA

* Move check to util

* Check for platform in sensor state property

* Move check to unit translation key property

* Add test for sensor check

* Properly handle added_to_hass

* Remove redundant comment
2024-12-03 17:35:25 +01:00
Marcel van der Veldt 110935461e Add support for features changing at runtime in Matter integration (#129426) 2024-12-03 17:35:21 +01:00
Franck Nijhof be40db3dff Bump version to 2024.12.0b4 2024-12-02 13:02:23 +01:00
Josef Zweck c3c500955a Use format_mac correctly for acaia (#132062) 2024-12-02 12:59:41 +01:00
ashionky 1e5a5925e6 Bump refoss to v1.2.5 (#132051) 2024-12-02 12:59:37 +01:00
TimL d956e4b11d Bump psymlight v0.1.4 (#132045) 2024-12-02 12:59:33 +01:00
J. Nick Koston 8ff8cd8b65 Bump aiohttp to 3.11.9 (#132036)
changelog: https://github.com/aio-libs/aiohttp/compare/v3.11.8...v3.11.9
2024-12-02 12:59:29 +01:00
Joost Lekkerkerker fab35f227d Handle not found playlists in Spotify (#132033)
* Handle not found playlists

* Handle not found playlists

* Handle not found playlists

* Handle not found playlists

* Handle not found playlists

* Update homeassistant/components/spotify/coordinator.py

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-12-02 12:59:26 +01:00
Joost Lekkerkerker e4d19541f5 Bump spotifyaio to 0.8.11 (#132032) 2024-12-02 12:59:22 +01:00
Joost Lekkerkerker 6b6fc6bbeb Bump yt-dlp to 2024.11.18 (#132026) 2024-12-02 12:59:18 +01:00
J. Nick Koston f2bafee84a Bump yarl to 1.18.3 (#132025)
changelog: https://github.com/aio-libs/yarl/compare/v1.18.0...v1.18.3
2024-12-02 12:59:15 +01:00
J. Nick Koston 4e0cdb0537 Bump propcache to 0.2.1 (#132022) 2024-12-02 12:59:06 +01:00
Richard Kroegel 79c919f62d Bump bimmer_connected to 0.17.2 (#132005) 2024-12-02 12:58:53 +01:00
Erik Montnemery b6dec11487 Freeze integration setup timeout for recorder during non-live data migration (#131998) 2024-12-02 12:58:44 +01:00
Bouwe Westerdijk e2073d7762 Bugfix for Plugwise, small code optimization (#131990) 2024-12-02 12:58:37 +01:00
Paulus Schoutsen d7428786cd Bump version to 2024.12.0b3 2024-12-01 03:14:16 +00:00
J. Nick Koston 673bdcc556 Reduce precision loss when converting HomeKit temperature (#131973) 2024-12-01 03:14:11 +00:00
J. Nick Koston e8ef990e72 Strip trailing spaces from HomeKit names (#131971) 2024-12-01 03:14:10 +00:00
starkillerOG 0d155c416a Bump reolink_aio to 0.11.4 (#131957) 2024-12-01 03:14:10 +00:00
Andrew Jackson e48be5c406 Bump aiomealie to 0.9.4 (#131951) 2024-12-01 03:14:09 +00:00
Matthias Alphart 787a1613ec Fix KNX IP Secure tunnelling endpoint selection with keyfile (#131941) 2024-12-01 03:14:08 +00:00
Raphael Hehl bb847b346d Bump uiprotect to 6.6.4 (#131931) 2024-12-01 03:14:07 +00:00
Jc2k e9b34eaad0 Bump aiohomekit to 3.2.7 (#131924) 2024-12-01 03:14:06 +00:00
Marcel van der Veldt 572347025b Fix media player join action for Music Assistant integration (#131910)
* Fix media player join action for Music Assistant integration

* Add tests for join/unjoin

* add one more test
2024-12-01 03:14:05 +00:00
Josef Zweck 29e80e56c6 Bump aioacaia to 0.1.10 (#131906) 2024-12-01 03:14:04 +00:00
Oliver b60b2fdd7c Bump denonavr to v1.0.1 (#131882) 2024-12-01 03:14:04 +00:00
Josef Zweck aaf3f61675 Guard against hostname change in lamarzocco discovery (#131873)
* Guard against hostname change in lamarzocco discovery

* switch to abort_entries_match
2024-12-01 03:13:50 +00:00
karwosts 5bf972ff16 Fix history stats count update immediately after change (#131856)
* Fix history stats count update immediately after change

* rerun CI
2024-12-01 03:13:45 +00:00
Glenn Vandeuren (aka Iondependent) 8eb52edabf Fix modbus state not dumped on restart (#131319)
* Fix modbus state not dumped on restart

* Update test_init.py

* Set event back  to stop

* Update test_init.py

---------

Co-authored-by: VandeurenGlenn <8685280+VandeurenGlenn@users.noreply.github.com>
2024-12-01 03:13:44 +00:00
J. Nick Koston 4326689f52 Bump SQLAlchemy to 2.0.36 (#126683)
* Bump SQLAlchemy to 2.0.35

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

* fix mocking

* adjust to .36

* remove ignored as these are now typed

* fix SQLAlchemy
2024-12-01 03:13:44 +00:00
Franck Nijhof 06838c0280 Bump version to 2024.12.0b2 2024-11-28 21:02:37 +01:00
Richard Kroegel f97d96e3ae Add captcha to BMW ConfigFlow (#131351)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-11-28 21:02:23 +01:00
karwosts ee960933db Fix flaky test in history stats (#131869) 2024-11-28 20:55:34 +01:00
Joost Lekkerkerker 2ea0c54788 Only download translation strings we have defined (#131864) 2024-11-28 20:55:31 +01:00
Madhan dd18672341 Bump PyMetEireann to 2024.11.0 (#131860)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-11-28 20:55:26 +01:00
Bram Kragten ac4ae0430e Update frontend to 20241127.1 (#131855) 2024-11-28 20:55:23 +01:00
Joost Lekkerkerker eeb63d42a0 Bump pyatv to 0.16.0 (#131852) 2024-11-28 20:55:20 +01:00
Michael 9d48f36754 Allow empty trigger sentence responses in conversations (#131849)
allow empty trigger sentence responses
2024-11-28 20:55:16 +01:00
Joost Lekkerkerker 157198bf41 Make wake word selection part of configuration (#131832) 2024-11-28 20:55:13 +01:00
Joost Lekkerkerker be25b9d4d0 Bump spotifyaio to 0.8.10 (#131827) 2024-11-28 20:55:10 +01:00
epenet e08b71086f Fix more flaky translation checks (#131824) 2024-11-28 20:55:07 +01:00
Norbert Rittel 9677c6e24c Remove wrong plural "s" in 'todo.remove_item' action (#131814) 2024-11-28 20:55:03 +01:00
Franck Nijhof e2cda54473 Ensure custom integrations are assigned the custom IQS scale (#131795) 2024-11-28 20:55:00 +01:00
epenet 3ca49dc8a6 Bump samsungtvws to 2.7.1 (#131784) 2024-11-28 20:54:57 +01:00
Joost Lekkerkerker 80bc70771e Remove Spotify featured playlists and categories from media browser (#131758) 2024-11-28 20:54:54 +01:00
Erik Montnemery 7ab1bfcf1f Improve recorder history queries (#131702)
* Improve recorder history queries

* Remove some comments

* Update StatesManager._oldest_ts when adding pending state

* Update after review

* Improve tests

* Improve post-purge logic

* Avoid calling dt_util.utc_to_timestamp in new code

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-28 20:54:50 +01:00
Richard Kroegel 99f8dbd278 Bump bimmer_connected to 0.17.0 (#131352) 2024-11-28 20:54:46 +01:00
Franck Nijhof 3af0bc2c33 Bump version to 2024.12.0b1 2024-11-28 08:44:28 +01:00
TheJulianJES b8c4ce932c Fix Home Connect microwave programs (#131782) 2024-11-28 08:44:14 +01:00
puddly 0a3a3edf77 Bump ZHA to 0.0.41 (#131776) 2024-11-28 08:44:11 +01:00
J. Nick Koston 71376229f6 Bump aioesphomeapi to 27.0.3 (#131773) 2024-11-28 08:44:07 +01:00
Manu c9dde419a2 Fix rounding of attributes in Habitica integration (#131772) 2024-11-28 08:44:04 +01:00
Josef Zweck 2fc01a02db Bump pylamarzocco to 1.2.12 (#131765) 2024-11-28 08:44:01 +01:00
J. Nick Koston f02d2344fc Bump uiprotect to 6.6.3 (#131764) 2024-11-28 08:43:58 +01:00
Joost Lekkerkerker 509311ac19 Remove Spotify audio feature sensors (#131754) 2024-11-28 08:43:54 +01:00
J. Nick Koston 47e7c4f1c1 Bump orjson to 3.10.12 (#131752)
changelog: https://github.com/ijl/orjson/compare/3.10.11...3.10.12
2024-11-28 08:43:51 +01:00
J. Nick Koston c9d3ba900e Bump aiohttp to 3.11.8 (#131744) 2024-11-28 08:43:48 +01:00
Allen Porter 74a3d11aea Add a missing rainbird data description (#131740) 2024-11-28 08:43:45 +01:00
Marcel van der Veldt 897abc114e Bump music assistant client 1.0.8 (#131739) 2024-11-28 08:43:41 +01:00
Josef Zweck 3fff3003f2 Add missing data_description for lamarzocco OptionsFlow (#131708) 2024-11-28 08:43:37 +01:00
Franck Nijhof db5c93f96d Bump version to 2024.12.0b0 2024-11-27 18:36:24 +01:00
epenet e04b6f0cd8 Add quality scale hassfest check for config-entry-unload (#131720)
* Add dataclass to hassfest quality_scale

* Add basic check for config-entry-unloading

* Future-proof with a list of errors
2024-11-27 18:17:53 +01:00
Jan Bouwhuis a6cb6fd239 Create MQTT device referenced by via device (#131588) 2024-11-27 18:12:46 +01:00
Paul Bottein e8975cffe6 Update hash regex for frontend file in tests (#131742) 2024-11-27 18:07:26 +01:00
Paulus Schoutsen ae34a6b375 Do not double expose scripts in LLM tools (#131726) 2024-11-27 18:04:08 +01:00
Raphael Hehl 1f1fdf80db Unifiprotect replace direct mocks with MockConfigEntry for test_async_ufp_instance_for_config_entry_ids (#131736)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-27 11:03:34 -06:00
Lutz fda178da23 Add video event proxy endpoint for unifiprotect (#129980)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-27 11:03:21 -06:00
G Johansson 1450fe0880 Improve test quality in alarm_control_panel (#130541) 2024-11-27 17:49:02 +01:00
Abílio Costa e4e9d76b45 Raise error if sensor has translated and hardcoded unit (#131657) 2024-11-27 17:45:53 +01:00
Marcel van der Veldt 3485ce9c71 Add actions to Music Assistant integration (#129515)
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-27 17:43:48 +01:00
Michael Hansen 3eb483c1b0 Bump intents to 2024.11.27 (#131727) 2024-11-27 17:42:59 +01:00
J. Diego Rodríguez Royo c2d6599736 Home connect program select entities (#126157)
* Home connect selector for programs

* Mark program switches as deprecated

* Simplified translation keys

* Improvements for program select entity

* Revert mark program switches as deprecated

* Return `None` if program is `None` or empty string

* Fix program format

* Use `is` instead of `==`

* Program selector entity selects program instead of start the selected program

* Fix typo

* Active and selected program

* Added ServiceValidationError

* Delete unnecessary `service` param at tests

* Use full program keys

* Fix again typos in programs states

* Use map for translations

* Add error handling for when the selected program is not registered on the program map

* Reverse map for programs and translation keys

* Remove stale string

* Log only once that the program is not part of the official Home Connect API specification

* pop programs

* Move `RE_CAMEL_CASE` to a better place

* Added warning if updated program is not valid

* Stale test function name

* Improve log about unknown program at update

* Add underscore before numbers in translation keys

* Added suggested changes

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

* Use target for adding an executor job

* Apply suggestions from code review

* Clean whitespace

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-27 16:34:41 +01:00
Bram Kragten b2537a45e0 Update frontend to 20241127.0 (#131722) 2024-11-27 16:33:05 +01:00
epenet e05401a922 Update snapshot to fix CI (#131725) 2024-11-27 16:28:36 +01:00
Raphael Hehl f4b57617fb Unifiprotect fix missing domain check (#131724) 2024-11-27 16:23:59 +01:00
Manu c21e221f65 Add data description to Iron OS integration (#131719) 2024-11-27 16:20:38 +01:00
epenet d6f4a79b46 Remove workaround for flaky translation tests (#131628) 2024-11-27 08:37:36 -06:00
G Johansson a7db35c76c Add horizontal swing support to ClimateEntity (#125578)
* Add horizontal swing support to ClimateEntity

* Fixes + tests

* Fixes
2024-11-27 15:06:46 +01:00
epenet 88feb8a7ad Fix ADS platform schema (#131701) 2024-11-27 14:47:17 +01:00
Abílio Costa d8dd6a99b3 Use default translation on SensorEntity unit_of_measurement (#131633)
* Use translations on SensorEntity unit_of_measurement property

* Use default language for unit translation

* Update brother integration snapshot

* Update snapshots
2024-11-27 14:45:53 +01:00
epenet 137db5ac79 Bump samsungtvws to 2.7.0 (#131690) 2024-11-27 14:45:37 +01:00
Shay Levy 326f51a019 Bump aioshelly to 12.1.0 (#131714) 2024-11-27 15:20:47 +02:00
G Johansson 3464ffc53e Add open to Template lock (#129292)
* Add open to Template lock

* Update from review
2024-11-27 13:26:57 +01:00
Cyrill Raccaud 284fe17b1c Add time and offset config to Swiss public transport connections (#120357)
* add time and offset config for connections

* split the config flow

* fix arrival config

* add time_mode data description

* use delta as dict instead of string

* simplify the config_flow

* improve descriptions of config_flow

* improve config flow

* remove obsolete string

* switch priority of the config options

* improvements
2024-11-27 13:22:28 +01:00
Diogo Gomes 345c1fe0b2 Have Utility Meter monitor Timezone changes in configuration (#131112)
* listen to config changes for possible DST changes

* Add test

* check tz actually changed

* Update tests/components/utility_meter/test_sensor.py

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

* Update tests/components/utility_meter/test_sensor.py

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

* Clean up comment

---------

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-27 12:12:45 +01:00
Franck Nijhof 56b4733e4a Clean up early assignment in script response (#131691) 2024-11-27 10:24:06 +01:00
Louis Christ 96eae1221c Fix bluesound_group attribute in bluesound integration (#130815)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-11-27 09:40:20 +01:00
Guido Schmitz 507bb4a685 Add data_description to devolo Home Network (#131511) 2024-11-27 09:26:19 +01:00
Petro31 33222436d2 Nested stop actions will now return response_variables (#126393)
fix-nested-stop-variable-response
2024-11-27 09:18:02 +01:00
G Johansson 1e05f98ddd Use report_usage for deprecation warning in alarm_control_panel (#130543)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-27 08:57:32 +01:00
epenet 2b939ce6ec Add translation checks for service exceptions (#131266)
* Add translation checks for service exceptions

* Adjust

* Remove invalid comment
2024-11-27 08:46:45 +01:00
Manu 00c4fa4146 Add missing section data_description to translation validator in hassfest (#131675)
Add missing data_description to translation validator in hassfest
2024-11-27 08:45:18 +01:00
TheJulianJES 605651f364 Bump ZHA to 0.0.40 (#131680) 2024-11-27 08:42:37 +01:00
Klaas Schoute 67ba44c3fa Use entity description class for Garages Amsterdam (#131672) 2024-11-27 08:42:19 +01:00
Bouwe Westerdijk 8bb0fab732 Bump plugwise to v1.6.0 and adapt (#131659) 2024-11-27 08:34:15 +01:00
dependabot[bot] 81d0bcde53 Bump docker/build-push-action from 6.9.0 to 6.10.0 (#131685)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-27 08:26:50 +01:00
J. Nick Koston b8f81abbed Bump zeroconf to 0.136.2 (#131681) 2024-11-27 08:26:28 +01:00
Paulus Schoutsen 7e03100af2 Allow an LLM to see script response values (#131683) 2024-11-26 23:51:21 -06:00
Michael Hansen 46fe3dcbf1 Add wake word select for ESPHome Assist satellite (#131309)
* Add wake word select

* Fix linting

* Move to ESPHome

* Clean up and add more tests

* Update homeassistant/components/esphome/select.py

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-11-26 22:59:49 -05:00
Markus Jacobsen a97eeaf189 Add Bang & Olufsen diagnostics (#131538)
* Add diagnostics

* Add tests for diagnostics

* Add media_player diagnostics

* Use media_player entity's state instead of registryentry

* Update tests

* Reorganize code
Remove context from media_player state

* Fix dict being read only
Simplify naming
Update test snapshot

* Update test snapshot
2024-11-26 20:56:36 -05:00
Jozef Kruszynski 40a4ff1c84 Adds media_browser functionality to the music assistant integration (#131577)
* Add test fixtures for all library loading

* Add media browser

* Add tests for media_browser
2024-11-26 20:52:08 -05:00
Markus Jacobsen f04c50c59e Fix Bang & Olufsen WebSocket debug log and test (#131671)
* Fix test and debug message

* Reorder dict order
2024-11-26 20:48:46 -05:00
J. Nick Koston dc62ef8bef Bump PySwitchbot to 0.54.0 (#131664) 2024-11-26 18:03:24 -06:00
Michael 70c8c57401 Dump ffmpeg stderr to ESPhome debug log (#130808)
* dump the stderr from ffmpeg to debug log

* add pid to indentify the ffmpeg process

* be more explosive :)

* move stderr task into _write_ffmpeg_data
2024-11-27 00:09:04 +01:00
J. Nick Koston ce20670d84 Add a constraint for aiofiles to ensure it does not get downgraded (#131666) 2024-11-26 16:04:39 -06:00
Steven B. 4093a68cc0 Bump tplink python-kasa dependency to 0.8.0 (#131249) 2024-11-26 15:04:42 -06:00
prabhjotsbhatia-ca 1e6b96131a Bump androidtv to 0.0.75 (#131642) 2024-11-26 21:57:57 +01:00
Thomas55555 055c38a3c8 Don't enable number of collisions by default for Husqvarna Automower (#131665) 2024-11-26 21:38:46 +01:00
Duco Sebel a0893bb9f7 Mark HomeWizard quality scale as platinum (#131663) 2024-11-26 21:33:45 +01:00
epenet 859daefeb8 Record current quality scale in renault (#131394) 2024-11-26 21:32:51 +01:00
dontinelli 06f9678414 Add quality scale for solarlog (#131440)
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
2024-11-26 21:24:57 +01:00
Josef Zweck a7113cff68 Record current IQS state for acaia (#131086) 2024-11-26 21:14:52 +01:00
Thomas55555 7a107cac41 Add PARALLEL_UPDATES to Husqvarna Automower (#131662) 2024-11-26 21:09:45 +01:00
Steven B. f3964596de tplink: forward compatible typing and test changes for kasa 0.8 (#131623) 2024-11-26 13:50:26 -06:00
Manu 2edcda47b0 Add diagnostics platform to Habitica (#131489) 2024-11-26 20:02:01 +01:00
Marco Aceti 6e8f3d9393 Add missing sensors to Tuya CO2 Detector (#131313) 2024-11-26 20:00:13 +01:00
Franck Nijhof f095aea5c3 Record current IQS state for Stookwijzer (#131592)
* Record current IQS state for Stookwijzer

* Also mark test coverage

* Process review comment
2024-11-26 19:59:19 +01:00
blackovercoat 35f6ae0759 Add support for single phase power meter aqcz in Tuya (#126470) 2024-11-26 19:38:52 +01:00
Andrew Jackson 132a8cc31b Detect ingress host used when adding a Mealie integration (#130418)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-26 19:30:05 +01:00
Martin Hjelmare ccbbcbb264 Make set value template number option required (#131625) 2024-11-26 19:27:59 +01:00
Jake Martin dfa7ababfb Raise HomeAssistantError if update fails (#129727) 2024-11-26 19:27:17 +01:00
Alexandre CUER f1655c5d1a Use SensorEntityDescription in emoncms (#130451) 2024-11-26 19:25:00 +01:00
Per Øyvind Øygard 7d5ba342c6 Add base entity class for Touchline zones (#131094)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-26 19:23:18 +01:00
Duco Sebel a252faf9af Add reconfiguration flow in HomeWizard (#131535) 2024-11-26 19:20:50 +01:00
Norbert Rittel 7ba0f54412 Clarify 'item' and 'rename' descriptions of 'update_item' action (#131336) 2024-11-26 19:19:27 +01:00
Duco Sebel a9cab28474 Add DHCP configuration update in HomeWizard (#131547) 2024-11-26 19:17:04 +01:00
Jan-Philipp Benecke a5becfaff0 Add more supported lines to London Underground (#131650) 2024-11-26 19:03:50 +01:00
Jan-Philipp Benecke e31d398811 Add binary sensor to SABnzbd (#131651) 2024-11-26 19:01:19 +01:00
Michael Hansen 192ffc09ee Add area slot to response for cancel all timers (#131638)
Add area slot to response
2024-11-26 10:58:39 -06:00
Alexey ALERT Rubashёff 15bf0c728c Sync overkiz Atlantic Water Heater datetime before switching the away mode on (#127408)
Set device datetime before turning on the away mode
2024-11-26 17:45:28 +01:00
Jan-Philipp Benecke 883c6121cf Prevent changing email address in inexogy reauth (#131632)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-26 17:17:10 +01:00
jesperraemaekers bf9e7e4a0c Bump Weheat wh-python to 2024.11.26 (#131630) 2024-11-26 17:00:51 +01:00
Jan-Philipp Benecke 1a71fbe427 Add intent to cancel all timers (#130873)
* Add intent to cancel all timers

* Add intent to llm test
2024-11-26 09:59:41 -06:00
starkillerOG a2ebfe6e83 Add Reolink binning mode select entity (#131570) 2024-11-26 16:19:41 +01:00
Steven B. 0e88e22fd2 Bump ring_doorbell to 0.9.13 (#131627) 2024-11-26 16:14:39 +01:00
Simon Lamon ee74a35417 Support time entities in time conditions (#124575)
Co-authored-by: Mark Bergsma <mark@wikked.net>
2024-11-26 15:37:31 +01:00
Steven B. 147679f803 Add live view camera entity to ring integration (#127579) 2024-11-26 15:20:25 +01:00
Jan-Philipp Benecke 9510ef56f9 Add configuration url to SABnzbd device info (#131617) 2024-11-26 08:39:21 -05:00
dotvav 1fc3194613 Add diagnostics to Palazzetti (#131608) 2024-11-26 14:07:37 +01:00
Duco Sebel 1ddc8a35c2 Add test to validate HomeWizard updates discovery info (#131540) 2024-11-26 13:14:59 +01:00
Klaas Schoute f5d323679f Fix bug on creating entities with unknown state - Garages Amsterdam (#131619) 2024-11-26 13:07:32 +01:00
Michael b0b72326d8 Add Update syrupy snapshots VScode task (#131536)
* add Update syrupy snapshots task

* don't use xdist
2024-11-26 13:02:17 +01:00
Lenn 41c7cc6e81 Bump motionblindsble to 0.1.3 (#131613) 2024-11-26 12:54:50 +01:00
Franck Nijhof 551d778a31 Merge branch 'master' into dev 2024-11-26 12:48:56 +01:00
Jan-Philipp Benecke 3af751c129 Fix SABnzbd number icon (#131615) 2024-11-26 12:40:02 +01:00
Klaas Schoute 9a999e8742 Use ConfigEntry runtime_data in Garages Amsterdam (#131611) 2024-11-26 12:30:50 +01:00
Thomas55555 5da7b1dd05 Test connection in config flow for Husqvarna Automower (#131557) 2024-11-26 11:06:48 +01:00
starkillerOG 5f7c7b323e Add Reolink bitrate and framerate select entities (#131571) 2024-11-26 10:58:57 +01:00
Josef Zweck 666b908242 Allow dhcp discovery to update host for lamarzocco (#131047) 2024-11-26 10:57:46 +01:00
Noah Husby d2f862b7b9 Add disconnect/reconnect tests to Cambridge Audio (#131100) 2024-11-26 10:55:03 +01:00
Christopher Fenner 0b7fbe1d17 Adjust the fan entity icon to it's state in ViCare integration (#131553) 2024-11-26 10:46:12 +01:00
Manu d587e71f8d Add descriptions for config flow in Habitica integration (#131461) 2024-11-26 10:42:03 +01:00
Raphael Hehl 04b8a686dc Fix Values for Recording mode and Infrared mode entities are not showing correctly (#131487) 2024-11-26 10:36:05 +01:00
Jan-Philipp Benecke b800db9f52 Abort SABnzbd config flow when instance already configured (#131607) 2024-11-26 10:33:01 +01:00
Guido Schmitz 1539558935 Remove non-translated string from exceptions in devolo Home Network (#131606) 2024-11-26 10:32:35 +01:00
Marc Mueller 0a16595a15 Update coverage to 7.6.8 (#131515) 2024-11-26 10:32:05 +01:00
G Johansson 066af3a5da Add reconfigure flow to filesize (#131106) 2024-11-26 10:29:46 +01:00
dotvav 7e58aa8af1 Bump pypalazzetti to 0.1.14 (#131443) 2024-11-26 10:28:04 +01:00
Maciej Bieniek f81955ef25 Add unit translations for Brother integration (#131275) 2024-11-26 10:27:02 +01:00
Allen Porter 6b28748d60 Update rainbird to meet the runtime-data quality scale check (#131391) 2024-11-26 10:26:16 +01:00
Norbert Rittel 245c785a5c Update two strings for creating a Utility meter Helper (#131196) 2024-11-26 10:25:56 +01:00
Josef Zweck 2d8b595b95 Set PARALLEL_UPDATES for lamarzocco and UpdateFailed translation (#131099) 2024-11-26 10:25:37 +01:00
dontinelli f6ef2d730b Add translation to coordinator exceptions in solarlog (#131523) 2024-11-26 10:11:36 +01:00
Manu bd69af5500 Add and improve descriptions in ista EcoTrand config flow (#131566) 2024-11-26 10:07:35 +01:00
Duco Sebel bee34fe954 Set PARALLEL_UPDATES in remaining HomeWizard platforms (#131316) 2024-11-26 10:02:23 +01:00
Raphael Hehl 91e4939bf0 Add fingerprint and nfc event support to unifiprotect (#130840)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-26 10:00:34 +01:00
Duco Sebel 521cc67d45 Streamline HomeWizard unit test MAC-addresses (#131310)
* Streamline HomeWizard unit test MAC-addresses

* Also streamline mock_config_entry
2024-11-26 09:54:23 +01:00
Jan-Philipp Benecke 725d49ca9e Use hostname as config entry title in SABnzbd (#131604) 2024-11-26 09:43:39 +01:00
Guido Schmitz 60e1fb5d4f Translate UpdateFailed in devolo Home Network (#131603) 2024-11-26 09:43:25 +01:00
Michael Hansen 752df5a8cb Filter entity names before intent matching (#131563) 2024-11-26 09:42:31 +01:00
dontinelli 6947800d93 Pass websession to fyta_cli (#131311) 2024-11-26 09:30:45 +01:00
Klaas Schoute e7030f5704 Refactor coordinator for Garages Amsterdam integration (#131054) 2024-11-26 09:25:36 +01:00
Markus Jacobsen f5b2f9dcbf Add parallel updates setting to Bang & Olufsen (#131526) 2024-11-26 09:23:23 +01:00
Markus Jacobsen ad19c5f9c1 Remove Bang & Olufsen static icon (#131528) 2024-11-26 09:23:08 +01:00
dontinelli 875623f889 Add translation for exceptions in coordinator for fyta (#131521) 2024-11-26 09:22:44 +01:00
Jan-Philipp Benecke 1ddd31673a Add reconfigure flow to SABnzbd (#131555)
* Add reconfigure flow to SABnzbd

* Process code review

* Add suggested values
2024-11-26 09:09:56 +01:00
LG-ThinQ-Integration db07483c40 Fix twoSet temp and fan_mode error in LG ThinQ integration (#131130)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-11-26 09:05:16 +01:00
Simon Lamon 17466684a6 Add timesync and restart functionality to linkplay (#130167)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-26 09:01:13 +01:00
epenet db198d4da2 Ignore flaky cloud translations (#131600) 2024-11-26 09:00:54 +01:00
David Knowles 5d5ab82ba0 Bump pyschlage to 2024.11.0 (#131593) 2024-11-26 09:00:42 +01:00
Max R 687a3149b9 Update instructions for setting up ecowitt (#131502) 2024-11-26 08:59:04 +01:00
Noah Husby 2217fc4507 Add parallel updates to Cambridge Audio (#131596) 2024-11-26 08:58:10 +01:00
Noah Husby b1a540a772 Add action exceptions to Cambridge Audio (#131597) 2024-11-26 08:56:11 +01:00
Franck Nijhof 4702d8ddb0 Enable strict typing for Stookwijzer (#131590) 2024-11-26 08:48:42 +01:00
Andrew Jackson 4e9f03a5ca Add unit of measurement to translations for Mealie (#131345) 2024-11-26 08:29:15 +01:00
Dave Leaver 9a46135367 Bump airtouch5py to 0.2.11 (#131436) 2024-11-26 08:26:53 +01:00
Erik Montnemery 44f90dca0c Fix logic for purge of recorder runs (#130378)
* Fix logic for purge of recorder runs

* Make test more explicit

* Explicitly don't remove unclosed recorder runs in purge
2024-11-26 07:47:47 +01:00
cedeherd ec8fe3db4e Bump nibe to 2.13.0 (#131572) 2024-11-26 07:08:55 +01:00
Franck Nijhof 8e9b5eb4e1 Extend tests for Stookwijzer init (#131589) 2024-11-26 00:45:47 +01:00
Franck Nijhof 5868a4fa21 Add data description for Stookwijzer config flow (#131591) 2024-11-26 00:45:25 +01:00
Franck Nijhof af29bfceb0 Add new sensors to Stookwijzer (#131587) 2024-11-26 00:20:35 +01:00
starkillerOG 442a270473 Bump reolink-aio to 0.11.3 (#131568) 2024-11-26 00:18:36 +01:00
Franck Nijhof 327aa8a51a Add entity descriptions to Stookwijzer (#131585) 2024-11-26 00:09:31 +01:00
Marc Mueller 54d530c410 Update types packages (#131573) 2024-11-25 23:59:33 +01:00
Norbert Rittel 4e22da2a75 Update climate strings for consistent names and descriptions (#130967) 2024-11-25 23:05:26 +01:00
Charles Garwood b60f981c3e Update Fully Kiosk quality scale progress (#131411) 2024-11-25 22:44:37 +01:00
Franck Nijhof 4ba8db1de4 Add data coordinator to Stookwijzer (#131574) 2024-11-25 22:15:23 +01:00
Robert Resch cf74532cc6 Bump uv to 0.5.4 (#131513) 2024-11-25 21:59:20 +01:00
Franck Nijhof 4a8f3eea69 Bump stookwijzer to v1.5.1 (#131567) 2024-11-25 21:33:47 +01:00
Robert Resch 1b62e12261 Deprecate RTSPtoWebRTC (#131467)
* Deprecate RTSPtoWebRTC

* Update homeassistant/components/rtsp_to_webrtc/strings.json

Co-authored-by: Allen Porter <allen@thebends.org>

* Updated text

---------

Co-authored-by: Allen Porter <allen@thebends.org>
2024-11-25 12:17:19 -08:00
Mick Vleeshouwer 7aa30758f9 Bump pyoverkiz 1.15.0 (#131478) 2024-11-25 19:58:12 +01:00
Marc Mueller 19c42774a4 Update pytest-cov to 6.0.0 (#131518) 2024-11-25 19:57:48 +01:00
Maikel Punie fe3cdad06f Bump velbusaio to 2024.11.1 (#131506) 2024-11-25 19:43:03 +01:00
avee87 5ef5838b20 Bump aio-geojson-generic-client to 0.5 (#131514) 2024-11-25 15:55:16 +01:00
Josef Zweck 5c56275310 Bump aioacaia to 0.1.9 (#131533) 2024-11-25 15:46:13 +01:00
G Johansson 2a52de48c5 Remove deprecated v2 api from glances (#131427) 2024-11-25 14:29:35 +01:00
Erik Montnemery 9b8316df3f Revert "Make WS command backup/generate send events" (#131530)
Revert "Make WS command backup/generate send events (#130524)"

This reverts commit 093b16c723.
2024-11-25 13:52:32 +01:00
Robert Resch 2bf7518dab Bump deebot-client to 9.0.0 (#131525) 2024-11-25 13:31:31 +01:00
dotvav f5b2002057 Make every palazzetti entity unavailable if appropriate (#131385) 2024-11-25 10:37:05 +01:00
Duco Sebel 904c3291d9 Add exception translation in HomeWizard coordinator (#131404) 2024-11-25 10:23:07 +01:00
Michael Hansen d4071e7123 Hide TTS filename behind random token (#131192)
* Hide TTS filename behind random token

* Clean up and fix test snapshots

* Fix tests

* Fix cloud tests
2024-11-24 20:52:21 -05:00
Raphael Hehl cb4636ada1 Bump uiprotect to 6.6.2 (#131475)
* Bump uiprotect to 6.6.2

* test(data): update test data to include readLive permissions

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-25 01:48:05 +01:00
epenet 69cc856d57 Fix incorrect already_configured string in bang olufsen (#131484) 2024-11-25 01:01:35 +01:00
Robert Resch 1c2e86d824 Deprecate async_register_rtsp_to_web_rtc_provider (#131462) 2024-11-24 15:56:05 -08:00
epenet 43e467a309 Set single_config_entry in canary (#131485) 2024-11-24 15:55:33 -08:00
Manu 8b71362ae1 Set parallelism for Habitica (#131480)
* Set parallelism for Habitica

* remove from coordinator
2024-11-24 15:55:11 -08:00
Noah Husby dc4a2d6f33 Bump aiostreammagic to 2.10.0 (#131415) 2024-11-24 15:35:34 -08:00
epenet 9f8a656eff Set single_config_entry in cpuspeed (#131486)
* Set single_config_entry in cpuspeed

* Adjust tests
2024-11-24 23:55:03 +01:00
Jan-Philipp Benecke 428d7d1ad8 Rename .sab module to .helpers in SABnzbd (#131481)
Rename sab module to helpers in SABnzbd
2024-11-24 21:53:52 +01:00
epenet 8baa477efe Set single_config_entry in azure event hub (#131483)
Set single_config_entry in azure-event-hub
2024-11-24 21:35:26 +01:00
Jan-Philipp Benecke 1e169d185f Add version to SABnzbd device info (#131479) 2024-11-24 20:36:59 +01:00
kongo09 4c603913ca Fix humidifier entity feature docstring (#131470)
fix docstring to refer to the correct entity
2024-11-24 20:27:22 +01:00
Christopher Fenner 84630ef8cc Define ViCare fan entity presets based on the actual by the device supported presets (#130886)
* only show supported presets

* update snapshot

* Apply suggestions from code review

* move code to init

* async executor

* Revert "update snapshot"

This reverts commit ca92b5ed27.

* Update fan.py
2024-11-24 19:37:40 +01:00
Allen Porter 1dc99ebc05 Add reauthentication support for Rainbird (#131434)
* Add reauthentication support for Rainbird

* Add test coverage for getting the password wrong on reauth

* Improve the reauth test
2024-11-24 19:33:19 +01:00
Michael b7e960f0bc Translate UpdateFailed error in AVM Fritz/BOX Tools (#131466)
translate UpdateFailed error
2024-11-24 18:32:37 +01:00
Jan Bouwhuis d790a2d74c Allow Alexa to stop a cover (#130846)
* Allow Alexa to stop a cover

* Fix tests

* Update tests/components/alexa/test_smart_home.py

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

---------

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
2024-11-24 17:11:56 +01:00
Jan Bouwhuis 076a351ce4 Add keepalive data_description for mqtt (#131446) 2024-11-24 06:28:07 -08:00
Josef Zweck 5b27f07f81 Add data description for lamarzocco (#131435) 2024-11-24 11:41:50 +01:00
Josef Zweck 5bdbd4360e Add data description for acaia (#131437) 2024-11-24 11:41:05 +01:00
dontinelli 7b139b75ae Add data description to config flow for fyta (#131441) 2024-11-24 11:40:27 +01:00
Allen Porter 106602669d Set data description for all Rainbird config flow fields (#131432) 2024-11-24 11:39:04 +01:00
G Johansson 767ac40685 Fix language picker in workday (#131423) 2024-11-24 11:37:29 +01:00
G Johansson ca3be6661a Remove deprecated yaml import in media extractor (#131426) 2024-11-24 11:36:40 +01:00
Manu c9ede11b1f Add entity picture for mystic hourglasses to Habitica (#131428) 2024-11-24 11:31:32 +01:00
Jan Bouwhuis 00ea56e085 Add quality scale for IMAP integration (#131289) 2024-11-24 11:30:05 +01:00
epenet 66450d7912 Add quality_scale.yaml to hassfest pre-commit filter (#131392) 2024-11-24 11:28:37 +01:00
Duco Sebel c402bb5da0 Mark HomeWizard docs quality scale requirements as done (#131414) 2024-11-24 11:27:39 +01:00
Josef Zweck 07e8d2d11d Set parallel updates for acaia (#131306) 2024-11-24 11:26:11 +01:00
G Johansson d65d5ceac7 Small cleanup in Trafikverket Camera (#131424) 2024-11-24 11:09:46 +01:00
J. Nick Koston 60cf797650 Bump aioesphomeapi to 27.0.2 (#131397)
Fixes for cancellation during Bluetooth connect

changelog: https://github.com/esphome/aioesphomeapi/compare/v27.0.1...v27.0.2

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-23 17:25:45 -08:00
Brandon Rothweiler d527788a60 Bump py-aosmith to 1.0.11 (#131422) 2024-11-24 00:44:31 +01:00
epenet 7ba3ce67f1 Use short namespace for dr and er in config_entries (#131412) 2024-11-24 00:12:40 +01:00
J. Nick Koston 0a8dde3740 Bump yalexs-ble to 2.5.1 (#131398)
changelog: https://github.com/bdraco/yalexs-ble/compare/v2.5.0...v2.5.1

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-23 23:17:20 +01:00
Michael 2d779a4e4c Mark IQS rule config-flow as todo in AVM Fritz!BOX Tools (#131419)
mark rule `config-flow` as todo
2024-11-23 23:12:39 +01:00
Matthias Alphart 832d5e27fe Remove deprecation warnings for KNX yaml (#131402) 2024-11-23 23:01:33 +01:00
Norbert Rittel 9a2eb8410e Replace "Add" with "Create" in description of Helper (#131405)
The user can create Mold indicator helpers for different purposes.

Following the HA Design guidelines this means that the description in the dialog should use "Create" not "Add".
2024-11-23 22:59:09 +01:00
Norbert Rittel 913ec53f8c Replace "Add" with "Create" in description of Helper (#131407)
The user can create Statistics helpers for different purposes.

Following the HA Design guidelines this means that the description in the dialog should use "Create" not "Add".
2024-11-23 22:58:38 +01:00
Norbert Rittel cfa8ca877f Replace "Add" with "Create" in description of Helper (#131403)
Replace "Add" with "Create" for Helper type

The user can create History stats sensor helpers for different purposes. Following the HA Design guidelines this means that the description should use "Create" not "Add".
2024-11-23 22:58:16 +01:00
epenet b11d951ed7 Add ability to get config_entry as required (#131400)
* Add ability to get config_entry as required

* One more

* Use new API
2024-11-23 22:26:16 +01:00
Paulus Schoutsen 33983fa9a7 Update snapshots for mashumaro 3.15 (#131406)
* Update snapshots

* Add it back
2024-11-23 15:32:05 -05:00
Duco Sebel 1e313c6ff5 Bumb python-homewizard-energy to 7.0.0 (#131366) 2024-11-23 14:29:03 -05:00
Manu e6715fd4d7 Fix errors in fixtures and tests (#131388)
* Fix errors in fixtures and tests

* stale function name
2024-11-23 10:44:40 -08:00
epenet c7485b94d5 Use breaks_in_ha_version in report_usage (#131137)
* Use breaks_in_ha_version in report_usage

* Revert behavior change
2024-11-23 18:58:24 +01:00
Maciej Bieniek 50013cf5c7 Add unit translations for NextDNS integration (#131281)
* Add unit translations for NextDNS integration

* Use translation keys
2024-11-23 18:04:49 +01:00
dontinelli ea4bbfea7e Pass websession to solarlog_cli (#131300) 2024-11-23 18:03:51 +01:00
Andrew Jackson f93525e0fc Add unit of measurement to translations for Mastodon (#131343)
* Add unit of measurement to translations

* Fix strings lint
2024-11-23 18:00:28 +01:00
Michael 7b70f2d83b Translate UpdateFailed exception in PEGELONLINE (#131380)
translate UpdateFailed exception
2024-11-23 17:59:41 +01:00
Brett Adams fa1b7d73d5 Add dict of translated errors to Tessie (#131346)
* Add dict of translated errors

* Fix test
2024-11-23 17:58:58 +01:00
Allen Porter 0d14005602 Remove unused config flow import step (#131379)
Remove unused config flow import removed in #130783
2024-11-23 17:55:08 +01:00
dotvav 34df6ef64c Add quality_scale.yaml to palazzetti (#131335)
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
2024-11-23 17:40:34 +01:00
Norbert Rittel 2609fdf2a1 Improve description of Elevation field in homeassistant.set_location (#131356) 2024-11-23 17:30:00 +01:00
Álvaro Fernández Rojas 0033ce4f96 Update AEMET-OpenData to v0.6.3 (#131303) 2024-11-23 17:27:56 +01:00
Allen Porter 460ce2463d Add quality scale for rainbird (#131332) 2024-11-23 17:23:37 +01:00
Duco Sebel 557a80497e Mark quality_scale docs-removal-instructions as done (#131370) 2024-11-23 17:07:34 +01:00
Norbert Rittel 6e298f1b9b Add missing apostrophe for possessive form (#131368) 2024-11-23 17:05:31 +01:00
Duco Sebel 30c176b400 Mark quality_scale docs-installation-parameters as done (#131372) 2024-11-23 17:03:00 +01:00
Robin Wohlers-Reichel aa79321a2b Bump solax to 3.2.1 (#131373) 2024-11-23 17:00:50 +01:00
Josef Zweck e856ba11d0 Bump pylamarzocco to 1.2.11 (#131331)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-11-23 14:34:03 +01:00
Steven B. 7d1a7b0870 Webrtc use RTCIceCandidateInit messages with frontend (#129879)
* Add sdp m line index to WebRtc Ice Candidates

* Send RTCIceCandidate object in messages

* Update tests

* Update go2rtc to hardcode spdMid to 0 string on receive

* Update for latest webrtc-model changes

* Add error check for mushamuro error

* Remove sdp_line_index from expected fail tests

* Validate and parse message dict

* Catch mashumaro error and raise vol.Invalid

* Revert conftest change

* Use custom validator instead

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2024-11-23 13:51:26 +01:00
Duco Sebel d55eb896d2 Add Config Flow data descriptions for HomeWizard (#131315)
* Add data_description to HomeWizard setup flow

* Make quality_scale config-flow as done
2024-11-23 13:17:28 +01:00
Noah Husby 27926caf77 Bump aiostreammagic to 2.8.6 (#131312)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-11-23 13:05:48 +01:00
Charles Garwood fe2260851e Bump Fully Kiosk Browser to Bronze quality scale (#131221) 2024-11-23 10:48:40 +01:00
Jan Bouwhuis 5a06e237e3 Add quality scale for MQTT (#131113)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-23 10:35:53 +01:00
Klaas Schoute b7e13bbab0 Record current IQS state for Autarco (#131090)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-23 10:31:00 +01:00
Christopher Fenner 630afeefdb Record current IQS state for ViCare (#131202) 2024-11-23 10:15:18 +01:00
Jan-Philipp Benecke 789cc7608a Record current IQS state for inexogy (#131208) 2024-11-23 09:37:51 +01:00
Josef Zweck f3a4a31412 Record current IQS state for tedee (#131081) 2024-11-23 09:37:41 +01:00
Joost Lekkerkerker a88edc7130 Add quality scale to airgradient (#131292) 2024-11-23 09:23:13 +01:00
Allen Porter fd11fc3b3e Update quality scale validation to sort output (#131324) 2024-11-23 09:16:47 +01:00
Michael Hansen f47840d83c Cache intent recognition results (#131114) 2024-11-22 20:57:42 -05:00
Franck Nijhof 8f9095ba67 Record current IQS state for Elgato (#131077) 2024-11-22 21:20:39 +01:00
Franck Nijhof ec127fb61e Clean up hassfest, fix CI (#131305) 2024-11-22 21:07:50 +01:00
LG-ThinQ-Integration 02f16ff568 Add config_flow's seperated reaseon and more debug information (#131131)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-11-22 20:12:01 +01:00
Marcel van der Veldt 49eeb2d99e Add test foundation to Music Assistant integration (#129534) 2024-11-22 20:09:20 +01:00
Markus Jacobsen ecb945e08c Bump mozart-api to 4.1.1.116.3 (#131269) 2024-11-22 20:07:11 +01:00
Franck Nijhof e690c1026c Record current IQS state for HomeWizard Energy (#131082) 2024-11-22 19:49:04 +01:00
Josef Zweck 19183fcc6c Record current IQS state for lamarzocco (#131084)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-22 19:48:36 +01:00
Federico D'Amico 36bc564862 Bump microBeesPy to 0.3.5 (#131034) 2024-11-22 19:35:31 +01:00
Joost Lekkerkerker 11f00895f7 Add legacy to integrations that have not moved to the UI (#131171) 2024-11-22 19:33:50 +01:00
J. Diego Rodríguez Royo 53b87f47fb Fix Home Connect service validation error placeholders (#131294) 2024-11-22 19:28:08 +01:00
Norbert Rittel c61e94dac2 Remove wrong periods from action names (#131290) 2024-11-22 19:27:49 +01:00
Allen Porter 96e67373db Validate quality scale tiers against the tier declared in the integration manifest (#131286)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-22 19:27:40 +01:00
Michael 0626b005e2 Bump aiopegelonline to 0.1.0 (#131295) 2024-11-22 19:26:41 +01:00
Michael Hansen 7621012ee6 Ensure sentence triggers are only checked once (#131210)
Co-authored-by: Artur Pragacz <49985303+arturpragacz@users.noreply.github.com>
2024-11-22 17:38:19 +01:00
Robert Resch 754cf1fdb4 Deprecate camera async_handle_web_rtc_offer (#131285) 2024-11-22 17:37:56 +01:00
epenet 97f574a86a Fix lamarzocco translation_placeholder (#131284) 2024-11-22 17:37:40 +01:00
epenet 3052e29689 Fix missing exception translation in alarm_control_panel (#131280) 2024-11-22 17:37:24 +01:00
epenet 9991a3b688 Fix missing exception translation in tibber (#131287) 2024-11-22 17:37:11 +01:00
epenet 46abf9790b Fix honeywell translation_placeholder (#131288) 2024-11-22 17:36:57 +01:00
Jan Bouwhuis 6064055150 Improve imap config flow strings and add data descriptions (#131279) 2024-11-22 17:14:23 +01:00
rappenze 1dbb92e7f3 Use _attr_is_on in fibaro light (#131211) 2024-11-22 17:10:38 +01:00
epenet 0460046d32 Fix incorrect translation string in palazzetti (#131272) 2024-11-22 17:08:12 +01:00
Norbert Rittel d4e362486d Add "Create …" for new Random Helper dialog (#131283) 2024-11-22 17:07:55 +01:00
G Johansson d4dbceba02 Bump pytrafikverket to 1.1.1 (#131270) 2024-11-22 16:58:58 +01:00
Norbert Rittel 61bfc59d51 Change "Add …" to "Create …" for New Helper dialog (#131278) 2024-11-22 16:56:53 +01:00
epenet f65d97322f Add default placeholders for config validation errors (#131277) 2024-11-22 16:55:04 +01:00
Sid 9e98e446a2 Bump ruff to 0.8.0 (#131273) 2024-11-22 16:53:26 +01:00
Krisjanis Lejejs d3f3fdc7ef Bump hass-nabucasa to 0.85.0 (#131271) 2024-11-22 17:08:31 +02:00
Per Øyvind Øygard 11ef2b6da8 Populate HVACAction/HVACMode for TouchlineSL zones (#131075) 2024-11-22 15:27:25 +01:00
J. Diego Rodríguez Royo 7fba788f18 Use ConfigEntry.runtime_data to store runtime data at Home Connect (#131014)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-22 15:25:22 +01:00
Norbert Rittel 32dca7d4a5 Fix typo in humidity::name of Nexia integration (#131267) 2024-11-22 15:20:01 +01:00
Tsvi Mostovicz e82130e6fe Bump hdate to 0.11.1 (#130456) 2024-11-22 15:06:31 +01:00
epenet f51662f31b Mark abode as single_config_entry (#131241) 2024-11-22 15:04:41 +01:00
Jan Bouwhuis 384b2af31e Add entity translations and entity category for IMAP mail count sensor (#131152)
* Add entity translations and entity category for IMAP mail count sensor

* Update tests

* Support unit_of_measurement

* Add unit_of_measurement
2024-11-22 15:03:24 +01:00
epenet ae592a0c35 Use ServiceValidationError in Renault (#131265) 2024-11-22 14:59:11 +01:00
Norbert Rittel 7a42c42384 Fix incorrect action descriptions of Nexia integration (#131087) 2024-11-22 14:51:44 +01:00
Andrew Jackson 3d98be8593 Add data descriptions for all config fields in Mastodon integration (#131260) 2024-11-22 13:44:52 +01:00
Robert Resch 154282ff5c Deprecate camera frontend_stream_type (#130932) 2024-11-22 13:42:33 +01:00
Norbert Rittel 4b5a8bf9fe Replace "Add …" with "Create …" for New Helper title (#131253) 2024-11-22 13:36:18 +01:00
Jan-Philipp Benecke c16f14c856 Enhance data_description in SABnzbd (#131256) 2024-11-22 13:34:49 +01:00
Josef Zweck ce46bac245 Add flow rate sensor to acaia (#131254) 2024-11-22 13:26:16 +01:00
Norbert Rittel 430a47138a Add consistent descriptions to turn on / off and toggle commands (#130985) 2024-11-22 13:22:29 +01:00
Jan-Philipp Benecke f58a6fa2cb Use TextSelector in SABnzbd config flow (#131255) 2024-11-22 13:20:32 +01:00
Sid 040a73421f Update manifest JSON schema for new quality scale (#131213) 2024-11-22 13:07:29 +01:00
Josef Zweck 047b16ec96 Bump aioacaia to 0.1.8 (#131235) 2024-11-22 13:05:13 +01:00
dotvav b38a614170 Palazzetti sensors (#130804) 2024-11-22 12:53:39 +01:00
epenet 2da73ea068 Add connectivity checks to renault config flow (#131251)
* Add connectivity checks to renault config flow

* Parametrize

* Sort

* merge
2024-11-22 12:33:04 +01:00
epenet 849ebd1435 Cleanup AWS config flow (#131244) 2024-11-22 12:22:26 +01:00
Willem-Jan van Rootselaar 37edf982ca Add waterheater platform bsblan (#129053)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-22 12:17:53 +01:00
Franck Nijhof 0644d782cd 2024.11.3 (#131248) 2024-11-22 11:55:45 +01:00
starkillerOG 65652c0adb Enable strict typing for Reolink (#131239) 2024-11-22 11:47:49 +01:00
Nikolay Vasilchuk 9e4368cfd4 Add StarLine flex logic and panic buttons (#130819)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-22 11:44:04 +01:00
Franck Nijhof 4ef50ffd88 Bump version to 2024.11.3 2024-11-22 11:05:59 +01:00
starkillerOG bfcd4194f3 Bump reolink_aio to 0.11.2 (#131237) 2024-11-22 11:05:37 +01:00
rappenze 2f05240e4c Fix fibaro cover state is not always correct (#131206) 2024-11-22 11:05:34 +01:00
starkillerOG 44ad8081a3 Reolink log fast poll errors once (#131203) 2024-11-22 11:05:30 +01:00
Jesse Hills 780eaa8379 Fix typo in ESPHome repair text (#131200) 2024-11-22 11:05:26 +01:00
Norbert Rittel 75dcdfb087 Fix cast translation string (#131156) 2024-11-22 11:05:23 +01:00
Norbert Rittel c88ff2ca44 Fix typo in name of "Alarm arm home instant" action (#131151) 2024-11-22 11:05:19 +01:00
Norbert Rittel 402c668f05 Replace "service" with "action" in zha:reconfigure_device (#131111)
Replace "service" with "action" in one description

As services are now actions in HA this needs to be fixed.
2024-11-22 11:05:14 +01:00
Álvaro Fernández Rojas 93b4570c04 Update aioairzone to v0.9.7 (#131033) 2024-11-22 10:57:08 +01:00
Álvaro Fernández Rojas 50a610914b Bump aioairzone to 0.9.6 (#130559)
* Update aioairzone to v0.9.6

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Remove _async_migrator_mac_empty and improve tests

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Remove WebServer empty mac fixes as requested by @epenet

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-11-22 10:57:04 +01:00
G Johansson 8db18181d0 Bump holidays to 0.61 (#130984) 2024-11-22 10:52:43 +01:00
G Johansson 335124acc6 Add missing catholic category in workday (#130983) 2024-11-22 10:52:40 +01:00
Norbert Rittel 24ccb9b894 Add more UI user-friendly description to six Supervisor actions (#130971) 2024-11-22 10:52:36 +01:00
Jan-Philipp Benecke a75ce850b8 Strip whitespaces from host in ping config flow (#130970) 2024-11-22 10:52:33 +01:00
Renat Sibgatulin 4753510ace Bump aioairq to 0.4.3 (#130963) 2024-11-22 10:52:30 +01:00
ElmaxSrl fc607ea7e5 Update elmax_api to v0.0.6.1 (#130917)
Co-authored-by: Alberto Geniola <albertogeniola@gmail.com>
2024-11-22 10:52:27 +01:00
Sergio Conde Gómez 477141c22a Unscape HTML Entities from RSS feeds (#130915)
* Unscape HTML Entities from RSS feeds

* Improve tests
2024-11-22 10:52:23 +01:00
Charles Yuan aaa36adbcc Fixed Small Inaccuracy in Description String for myUplink (#130900) 2024-11-22 10:52:20 +01:00
J. Nick Koston 9447180c04 Bump bluetooth-adapters to 0.20.2 (#130877) 2024-11-22 10:52:17 +01:00
epenet 6853234f9d Pass config_entry explicitly in rachio (#130865) 2024-11-22 10:52:14 +01:00
G Johansson 6944ba0333 Use default device sensors also for AirQ devices in Sensibo (#130841) 2024-11-22 10:52:10 +01:00
starkillerOG 04bc041174 Reolink fix dev/entity id migration (#130836) 2024-11-22 10:52:07 +01:00
Glenn Waters a024acf096 UPB integration: Change unique ID from int to string. (#130832) 2024-11-22 10:52:04 +01:00
hahn-th 5b1aca53ac Bump homematicip to 1.1.3 (#130824) 2024-11-22 10:52:00 +01:00
Michael a588ced2e3 Fix unexpected stop of media playback via ffmpeg proxy for ESPhome devices (#130788)
disable writing progress stats to stderr in ffmpeg command
2024-11-22 10:51:57 +01:00
Franck Nijhof 876112ff54 Update twentemilieu to 2.1.0 (#130752) 2024-11-22 10:51:54 +01:00
Jan Bouwhuis a48f88033d Fix file uploads in MQTT config flow not processed in executor (#130746)
Process file uploads in MQTT config flow in executor
2024-11-22 10:51:49 +01:00
Patrick 5deba1766e Fix and bump apsystems-ez1 to 2.4.0 (#130740) 2024-11-22 10:51:45 +01:00
Davin Kevin 4863243f5a Prevent endless loop in recorder when using a filter and there are no more states to purge (#126149)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-22 10:51:35 +01:00
starkillerOG 65a64ff7c4 Bump reolink_aio to 0.11.2 (#131237) 2024-11-22 09:52:30 +01:00
Josef Zweck cd631abe88 Bump pylamarzocco to 1.2.7 (#131236) 2024-11-22 09:50:57 +01:00
Josef Zweck 60e19967b1 Add parallel updates & exception translations to tedee (#131146) 2024-11-22 09:48:42 +01:00
Josef Zweck e2183a81aa Make UpdateFailed translateable (#131098) 2024-11-22 09:37:35 +01:00
Josef Zweck 786b779a68 Fix title upon discovery for lamarzocco (#131207)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-22 08:56:10 +01:00
ElmaxSrl e12db0c88e Update elmax_api to v0.0.6.1 (#130917)
Co-authored-by: Alberto Geniola <albertogeniola@gmail.com>
2024-11-22 08:52:14 +01:00
Josef Zweck 764f72bdc3 Patch entry setup in lamarzocco tests (#131217) 2024-11-22 08:49:46 +01:00
Antoine Reversat 0ce8d8d749 Upgrade to ayla-iot-unofficial 1.4.4 (#131228) 2024-11-22 08:47:59 +01:00
Jan-Philipp Benecke caac22f09f Improve SABnzbd config flow tests (#131234) 2024-11-22 08:44:33 +01:00
Jan-Philipp Benecke fa3d2a3031 Remove configurable name in config flow from SABnzbd (#131073) 2024-11-22 07:58:43 +01:00
Charles Garwood 8a292184a5 Add data_description for password in Fully Kiosk config flow (#131222)
* Add data_description for password

* Update phrasing

* Add data_description in discovery as well
2024-11-21 17:03:08 -05:00
Sid c94122e105 Fix manifest.json schema violations (#131220) 2024-11-21 22:50:33 +01:00
Per Øyvind Øygard 158b0c8ce2 Bump pytouchlinesl to 0.2.0 (#131088) 2024-11-21 22:02:15 +01:00
Norbert Rittel 52147b1515 Fix group translation strings (#131150) 2024-11-21 21:37:50 +01:00
G Johansson da023ffbd5 Use config entry title as sensor name in Filesize (#131109)
* Use config entry title as sensor name in Filesize

* snapshot

* snapshot
2024-11-21 21:36:54 +01:00
Norbert Rittel 88b54bbaf7 Fix calendar translation strings (#131160) 2024-11-21 21:36:06 +01:00
Norbert Rittel c0396a1268 Fix Xiaomi Miio translation strings (#131154) 2024-11-21 21:35:31 +01:00
Norbert Rittel c81edfea44 Fix alarm_control_panel translation string (#131157) 2024-11-21 21:35:01 +01:00
Norbert Rittel d4bc200cef Improve description of Random helper by removing repetition (#131092) 2024-11-21 21:34:31 +01:00
Norbert Rittel ed3140da76 Input number: Make description of decrement option consistent (#131089) 2024-11-21 21:33:30 +01:00
Norbert Rittel a67c5e1fba Change "Add …" to "Create …" for consistency (#131197) 2024-11-21 21:27:54 +01:00
Norbert Rittel f64c81b7f8 Change "Add …" to "Create …" for consistency (#131199) 2024-11-21 21:27:26 +01:00
Norbert Rittel 96849f2e16 Change "Add …" to "Create …" for consistency (#131198) 2024-11-21 21:26:50 +01:00
Josef Zweck de9f9f32c7 Add translation for ConfigEntryAuthFailed to lamarzocco (#131145) 2024-11-21 21:25:23 +01:00
epenet 2a6e08caf9 Add missing unique_id check on blink user flows (#131209) 2024-11-21 21:23:05 +01:00
Arie Catsman d6170eb071 Bump pyenphase to 1.23.0 (#131205) 2024-11-21 21:16:54 +01:00
rappenze c6c7e86548 Fix fibaro cover state is not always correct (#131206) 2024-11-21 21:16:37 +01:00
Joost Lekkerkerker 7e752c051f Add check for quality_scale.yaml (#131096) 2024-11-21 21:02:01 +01:00
starkillerOG f9bd4ccc3f Reolink log fast poll errors once (#131203) 2024-11-21 20:51:38 +01:00
Davin Kevin f42386de44 Prevent endless loop in recorder when using a filter and there are no more states to purge (#126149)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-21 20:50:49 +01:00
puddly 50fdbe9b3b Generic ZHA Zeroconf discovery (#126294) 2024-11-21 20:50:21 +01:00
G Johansson e9286971aa Add remaining snapshot testing to Sensibo (#131105) 2024-11-21 20:49:59 +01:00
Josef Zweck 3cfd958dc2 Allow mL/s as UnitOfVolumeFlowRate (#130771) 2024-11-21 20:47:24 +01:00
G Johansson 797eb606fe Fix correct handling in ManualTriggerEntity (#130135) 2024-11-21 20:46:03 +01:00
J. Diego Rodríguez Royo 1ab2bbe3b0 Don't save Home Assistant device ID at Home Connect device (#131013) 2024-11-21 20:45:43 +01:00
G Johansson 3c96c559dc Remove config entry unique id from trafikverket_train (#130989) 2024-11-21 20:42:36 +01:00
Álvaro Fernández Rojas 1020d75b94 Bump AEMET-OpenData to v0.6.2 (#131178) 2024-11-21 20:21:00 +01:00
Jesse Hills ba042e2325 Fix typo in ESPHome repair text (#131200) 2024-11-21 19:42:08 +01:00
starkillerOG 1195a79479 Add PARALLEL_UPDATES = 0 to Reolink platforms (#131165) 2024-11-21 19:21:57 +01:00
Erik Montnemery 5fa4739e2d Bump securetar to 2024.11.0 (#131172) 2024-11-21 19:15:37 +01:00
Norbert Rittel bd3352c1f0 Fix two strings for the Generic hygrostat UI (#131185)
* Fix two strings for the Generic hygrostat UI

The 'min_cycle_duration' key shown when setting up a Generic hygrostat contains the words "in the humidifier option" which makes no  sense anymore in the UI context.

So these words can be dropped, making this explanation exactly identical to the same key in the Generic thermostat.

In addition there is an "s" missing in the main description here.

* Replace "be" with "remain" and use "toggle"

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

* Fix the title string to use "Create" instead of "Add"

Anything the user creates should use "Create …", not "Add …".

The description we're addressing in the fix already has this correct. This commit adds the fix for the title.

Makes it consistent with the majority of Helpers, rest needs to be addressed in separate PRs.

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-11-21 18:53:23 +01:00
Marcel van der Veldt 9bbf9be95f Add optional flag to bypass the media proxy in esphome media players (#131191)
* Add optional flag to play_media to bypass media proxy

* use constants

* add test
2024-11-21 11:47:22 -05:00
Matthias Alphart bd0a2b6f68 Add unit translations for KNX integration (#131176)
* Add unit translations for KNX integration

* re-use values
2024-11-21 17:42:12 +01:00
J. Nick Koston fd392eea31 Bump aiohttp to 3.11.7 (#131188) 2024-11-21 17:36:36 +01:00
J. Nick Koston 3550d5838d Bump yarl to 1.18.0 (#131183) 2024-11-21 17:35:42 +01:00
Jan Bouwhuis 9444f7aea2 Set PARALLEL_UPDATES = 0 for MQTT components as no semaphore is needed (#131174) 2024-11-21 17:30:25 +01:00
Jan Bouwhuis 3474642afe Set up MQTT websocket_api and dump, publish actions from async_setup (#131170)
* Set up MQTT websocket_api and dump, publish actions from `async_setup`

* Follow up comments
2024-11-21 17:29:59 +01:00
karwosts 3d499ab849 Dont count unrecorded time for history_stats (#126271) 2024-11-21 10:24:06 -06:00
Erik Montnemery 23acc31616 Improve comments in ConfigEntriesFlowManager.async_finish_flow (#131175) 2024-11-21 16:33:43 +01:00
Michael Arthur d8549409f7 Area units and conversion between metric and US (#123563)
* area conversions

* start work on tests

* add number device class

* update unit conversions to utilise distance constants

* add area unit

* update test unit system

* update device condition and trigger

* update statistic unit converters

* further tests work WIP

* update test unit system

* add missing string translations

* fix websocket tests

* add deprecated notice

* add more missing strings and missing initialisation of unit system

* adjust icon and remove strings from scrape and random

* Fix acre to meters conversion

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

* Tidy up valid units

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

* fix ordering of area

* update order alphabetically

* fix broken test

* update test_init

* Update homeassistant/const.py

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

* remove deprecated unit and fix alphabetical order

* change deprecation and add tests, change to millimeter conversion for inches

* fix order

* re-order defs alphabetically

* add measurement as well

* update icons

* fix up Deprecation of area square meters

* Update core integrations to UnitOfArea

* update test recorder tests

* unit system tests in alphabetical

* update snapshot

* rebuild

* revert alphabetization of functions

* other revert of alphabetical order

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-21 16:10:44 +01:00
epenet 9add3a6c9b Add ability to pass integration domain to report_usage (#130705)
* Add ability to pass integration domain to report_usage

* Adjust

* Fix

* Add tests

* Update test_frame.py

* Update test_frame.py

* Update test_frame.py

* Update test_frame.py

* Update test_frame.py

* Update test_frame.py

* Finish tests

* Docstring

* Replace logger warning with report_usage

* Improve

* docstring

* Improve tests

* Adjust docstring for exclude_integrations

* Fix behavior and improve tests
2024-11-21 16:01:36 +01:00
Charles Garwood 42dcfae6e7 Add quality_scale.yaml for Fully Kiosk Browser integration (#131071)
* Add quality_scale.yaml for Fully Kiosk Browser integration

* Forgot to fill out a couple rules

* missed another...

* Rebase and update a couple rules
2024-11-21 09:45:32 -05:00
epenet c267170616 Use reauth helpers in renault (#131147) 2024-11-21 15:39:35 +01:00
Steven B. 1018a77c91 Update websockets package constraint to 13.1 (#131039) 2024-11-21 15:26:24 +01:00
Charles Garwood fc987ee794 Use runtime_data for Fully Kiosk Browser integration (#131101) 2024-11-21 15:07:39 +01:00
Norbert Rittel 3ed462f7a7 Improve explanation of 'device_tracker.see' action (#131095) 2024-11-21 13:39:06 +01:00
Norbert Rittel 1e1759c030 Fix cast translation string (#131156) 2024-11-21 13:38:34 +01:00
LG-ThinQ-Integration afe986b39c Bump thinqconnect to 1.0.1 (#131132)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-11-21 11:12:36 +01:00
Josef Zweck f1a4baa1b5 Add diagnostics to acaia (#131153) 2024-11-21 10:55:21 +01:00
Norbert Rittel deb82cf072 Fix typo in name of "Alarm arm home instant" action (#131151) 2024-11-21 10:26:40 +01:00
puddly 51e592f450 Add informative header to ZHA update entity release notes (#130099) 2024-11-21 10:17:44 +01:00
Norbert Rittel 27695095dd Fix wrong "(s)" that was leftover changing from "service(s)" to "actions" (#131141)
* Fix wrong "(s)" that was leftover when changing from "service(s)" to "actions"

* Update homeassistant/components/notify/strings.json

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-21 09:41:52 +01:00
bobpaul 092d97a0b0 Bump pylutron-caseta to 0.22.0 (#131129) 2024-11-21 08:53:47 +01:00
Raphael Hehl 08f9d5bdfd Add codeowner for unifiprotect (#131136) 2024-11-21 08:53:27 +01:00
G Johansson e7fedef651 Add created sensor in filesize (#131108) 2024-11-21 08:31:50 +01:00
DeerMaximum 5529cfda09 Nina: Add URL for more information to warning (#131070) 2024-11-21 08:15:27 +01:00
dependabot[bot] ac56a70948 Bump github/codeql-action from 3.27.4 to 3.27.5 (#131134)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-21 08:07:23 +01:00
dependabot[bot] 1aa95c746e Bump codecov/codecov-action from 5.0.5 to 5.0.7 (#131135)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-21 08:07:04 +01:00
Michael 98ec0390bc Add current quality scale status to AVM FRITZ!Box Tools (#131102)
* add current quality_scale .yaml

* Update homeassistant/components/fritz/quality_scale.yaml

* Update homeassistant/components/fritz/quality_scale.yaml

* Update homeassistant/components/fritz/quality_scale.yaml
2024-11-21 04:33:38 +01:00
starkillerOG b8e0d92848 Add Reolink push for battery info and sleep status (#131103)
Add push for battery info and sleep status
2024-11-21 01:48:14 +01:00
Norbert Rittel 782cad97af Replace "service" with "action" in zha:reconfigure_device (#131111)
Replace "service" with "action" in one description

As services are now actions in HA this needs to be fixed.
2024-11-21 01:47:26 +01:00
Raphael Hehl bab9ef7ada Set UniFi Protect icr_lux min to 0 allowing "below 1 lux" (#131115)
unifiprotect set icr_lux min 0 to allow setting "below 1 lux"

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-11-20 18:11:41 -06:00
Raphael Hehl d03fc71bfb Bump uiprotect to 6.6.1 (#131107) 2024-11-21 00:19:17 +01:00
G Johansson 926689ee4f Add startup exception handling to nordpool (#131104) 2024-11-20 22:54:51 +01:00
J. Diego Rodríguez Royo 80e8b8d61b Add diagnostics per device to Home Connect (#131010)
* Add diagnostics per device to Home Connect

* Include programs at device diagnostics

* Applied suggestions from epenet

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

* Applied more suggestions from epenet

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

* Test naming consistency

Co-authored-by: abmantis <amfcalt@gmail.com>

* Add return type to `_generate_entry_diagnostics`

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: abmantis <amfcalt@gmail.com>
2024-11-20 22:01:57 +01:00
epenet deeb55ac50 Add ability to set HA breaking version in report_usage (#130858)
* Add ability to set breaking version in report_usage

* Adjust tests

* Adjust test

* Adjust tests

* Rename breaks_in_version => breaks_in_ha_version
2024-11-20 21:41:57 +01:00
epenet 5539228ba2 Split async_get_issue_tracker loader function (#130856) 2024-11-20 21:41:38 +01:00
Joost Lekkerkerker ae0cd431a0 Implement new Integration Quality Scale (#130518) 2024-11-20 21:39:24 +01:00
Joost Lekkerkerker e6225e3dcc Drop current quality scale (#131072) 2024-11-20 20:54:15 +01:00
Jan-Philipp Benecke 74f24e86c1 Remove import from config flow in SABnzbd (#131078) 2024-11-20 20:51:43 +01:00
Franck Nijhof 8d6fe8b546 Record current IQS state for Twente Milieu (#131063) 2024-11-20 20:25:19 +01:00
Jan-Philipp Benecke f29c6963dc Bump codecov/codecov-action to v5.0.5 (#131055) 2024-11-20 20:22:04 +01:00
Jan-Philipp Benecke e389ef9920 Use runtime_data in sabnzbd (#131069) 2024-11-20 20:20:12 +01:00
Klaas Schoute 75e15ec6ea Use ConfigEntry runtime_data in Pure Energie (#131061) 2024-11-20 20:01:32 +01:00
Jan-Philipp Benecke 06db5a55f8 Add number platform to sabnzbd and deprecate custom action (#131029)
* Add number platform to sabnzbd

* Copy & waste error

* Move to icon translations

* Update snapshot
2024-11-20 19:59:10 +01:00
Jan-Philipp Benecke 309dd5ed1b Remove old entity unique id migration from sabnzbd (#131064) 2024-11-20 19:55:54 +01:00
DeerMaximum b188f8284c Bump pynina to 0.3.4 (#131059) 2024-11-20 19:55:17 +01:00
Michael Hansen 60774575c6 Set HA time zone with freeze_time in agent test (#131058)
* Patch dt_util instead of using freeze_time

* Use freeze_time but set HA timezone
2024-11-20 19:29:36 +01:00
Abílio Costa 4776865584 Add unit translations for github integration (#130538)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-20 18:43:17 +01:00
Álvaro Fernández Rojas 3542bca13d Update aioairzone to v0.9.7 (#131033) 2024-11-20 18:41:14 +01:00
jb101010-2 8e2b78178d Bump pysuezV2 to 1.3.2 (#131037) 2024-11-20 18:40:07 +01:00
Klaas Schoute a0ee8eac37 Use ConfigEntry runtime_data in P1 Monitor (#131048) 2024-11-20 18:38:24 +01:00
Franck Nijhof 74f68316c8 Ensure a comment is required when making an exempt for the IQS (#131051) 2024-11-20 18:37:07 +01:00
Jan-Philipp Benecke 771952d292 Remove deprecated yaml import from sabnzbd (#131052) 2024-11-20 18:36:20 +01:00
Sergio Conde Gómez 94bf77606b Unscape HTML Entities from RSS feeds (#130915)
* Unscape HTML Entities from RSS feeds

* Improve tests
2024-11-20 18:21:16 +01:00
Klaas Schoute e7a2377c7e Update forecast-solar to 4.0.0 (#131044) 2024-11-20 17:54:09 +01:00
Joost Lekkerkerker 514af896f3 Change to rule slugs (#131043) 2024-11-20 17:43:02 +01:00
Paulus Schoutsen c56f377cd5 Use now() from dt_util for Date and Time intents (#131049)
Use now() from dt_util
2024-11-20 10:27:57 -06:00
Joost Lekkerkerker 2cd05e224a Add quality_scale.yaml to track IQS progress (#130953) 2024-11-20 13:49:02 +01:00
Manu 5d804d3172 Remove code-owner from Habitica (#131024) 2024-11-20 12:54:11 +01:00
Petar Petrov 061c19fbf8 Add Z-Wave installer_mode yaml option (#129888)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-20 12:04:29 +01:00
Myles Eftos 621c66a214 Update Amberelectric to use amberelectric version 2.0.12 (#125701)
* Add price descriptor attribute to price sensors

* Adding price descriptor sensor

* Use correct number of sensors in spike sensor tests

* Add tests for normalize_descriptor

* Removing debug message

* Removing price_descriptor attribute from the current sensor

* Refactoring everything to use the new API

* Use SiteStatus object, fix some typnig issues

* fixing test

* Adding predicted price to attributes

* Fix advanced price in forecast

* Testing advanced forecasts

* WIP: Adding advanced forecast sensor. need to add attributes, and tests

* Add advanced price attributes

* Adding forecasts to the advanced price sensor

* Appending forecasts corectly

* Appending forecasts correctly. Again

* Removing sensor for the moment. Will do in another PR

* Fix failing test that had the wrong sign

* Adding test to improve coverage on config_flow test

* Bumping amberelectric dependency to version 2

* Remove advanced code from helpers

* Use f-strings

* Bumping to version 2.0.1

* Bumping amberelectric to version 2.0.2

* Bumping amberelectric to version 2.0.2

* Bumping verion amberelectric.py to 2.0.3. Using correct enums

* Bumping amberelectric.py version to 2.0.4

* Bump version to 2.0.5

* Fix formatting

* fixing mocks to include interval_length

* Bumping to 2.0.6

* Bumping to 2.0.7

* Bumping to 2.0.8

* Bumping to 2.0.9

* Bumping version 2.0.12
2024-11-20 11:27:24 +01:00
Jan-Philipp Benecke 2cfacd8bc5 Add button platform to sabnzbd and deprecate custom actions (#130999) 2024-11-20 09:30:06 +01:00
J. Diego Rodríguez Royo 85610901e0 Add programs to Home Connect diagnostics (#131011) 2024-11-20 09:09:50 +01:00
Raphael Hehl 139f3e294a UniFi Protect small textual fix in action description (#131009) 2024-11-20 09:06:31 +01:00
dependabot[bot] 3d495fe690 Bump codecov/codecov-action from 5.0.2 to 5.0.4 (#131008)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-20 09:02:57 +01:00
Bouwe Westerdijk a857041570 Bump plugwise to v1.5.2 (#131012) 2024-11-20 08:44:34 +01:00
Jan-Philipp Benecke 2a1cdf6ff2 Strip whitespaces from host in ping config flow (#130970) 2024-11-19 21:57:57 -05:00
Manu 5daf95ec8f Add calendars for to-do and daily reminders to Habitica integration (#130789)
* Add calendars for to-do and daily reminders

* revert order

* changes
2024-11-19 18:37:23 -08:00
Manu 397a299f15 Add µV as UnitOfElectricPotential (#130838) 2024-11-19 22:38:22 +01:00
Norbert Rittel 85f3ff94cc Add more UI user-friendly description to six Supervisor actions (#130971) 2024-11-19 22:31:57 +01:00
dotvav cdf0e1363a Bump pypalazzetti to 0.1.13 (#130956) 2024-11-19 22:29:49 +01:00
Franck Nijhof 07051d0d0e Clean up old migration in Twente Milieu (#130998) 2024-11-19 22:28:59 +01:00
G Johansson fa28936995 Use snapshot in Sensibo tests (#130994) 2024-11-19 22:21:12 +01:00
epenet ea989f7ca1 Simplify FanEntity percentage and speed_count shorthand attributes (#130935) 2024-11-19 22:17:29 +01:00
Federico D'Amico c1f03f34b2 Bump microBeesPy to 0.3.3 (#130942) 2024-11-19 22:12:00 +01:00
J. Nick Koston 7fda534d91 Bump aiohttp to 3.11.6 (#130993) 2024-11-19 15:11:00 -06:00
Jan-Philipp Benecke 25f922d87b Add base entity to sabnzbd (#130995) 2024-11-19 22:08:16 +01:00
Petar Petrov c68cadad7a Improve precision of HSV color conversion (#130880) 2024-11-19 22:06:57 +01:00
Bouwe Westerdijk 6f0139389f Bump plugwise to v1.5.1 (#130966) 2024-11-19 22:04:00 +01:00
Jan-Philipp Benecke 81fc83398b Use HassKey in ping (#130973) 2024-11-19 22:02:36 +01:00
Jan-Philipp Benecke b9ff8ebe3a Pass sabnzdb config entry explicitly to coordinator (#130990)
Pass config entry explicitly to coordinator
2024-11-19 21:23:22 +01:00
Jan-Philipp Benecke e53d97db6f Add sensor test to sabnzbd (#130988) 2024-11-19 21:17:38 +01:00
G Johansson 3cb8dedacc Bump holidays to 0.61 (#130984) 2024-11-19 20:53:11 +01:00
Steve Venzerul c4568e6632 Add missing translations and icons for ZHA Sinope devices (#130826)
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-11-19 20:25:12 +01:00
G Johansson 0199418ba9 Add missing catholic category in workday (#130983) 2024-11-19 20:19:53 +01:00
G Johansson c5622df386 Remove deprecated yaml import from dynalite (#130982) 2024-11-19 20:19:30 +01:00
G Johansson 71e8c79cad Remove deprecated not used constants in switchbot (#130980) 2024-11-19 20:19:09 +01:00
Renat Sibgatulin 4adf1992e1 Bump aioairq to 0.4.3 (#130963) 2024-11-19 20:13:33 +01:00
J. Nick Koston 8b4983087b Bump PyJWT to 2.10.0 (#130907)
* Bump PyJWT to 2.10.0

changelog: https://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0

* handle new keys

* add test to verify all default options are checked for merge
2024-11-19 19:55:55 +01:00
J. Nick Koston 3a8a8861d2 Bump aiohttp to 3.11.5 (#130964) 2024-11-19 12:03:13 -06:00
Marco Glauser 42bba24247 Add Hejhome Fingerbot (Tuya whitelabel) configuration (#130732) 2024-11-19 17:30:56 +01:00
Norbert Rittel 48703db78a Update strings.json to replace wrong "todo" with "lawn mower" (#130962) 2024-11-19 16:51:48 +01:00
Norbert Rittel b1260dc4ec Update strings.json to fix typo in "Husqavarna" (#130954) 2024-11-19 15:01:22 +00:00
epenet 7dc2102545 Simplify FanEntity preset_mode shorthand attributes (#130930) 2024-11-19 09:11:47 +01:00
J. Nick Koston b6d79415fe Bump aiohttp to 3.11.4 (#130924) 2024-11-19 01:36:44 -06:00
Daniel Hjelseth Høyer f9a0cc5c31 Add new sensors to Mill (#130896)
* Mill sensors

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>

* Update homeassistant/components/mill/sensor.py

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

* Update homeassistant/components/mill/sensor.py

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

* Update const.py

* Update sensor.py

---------

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-19 08:30:41 +01:00
Thomas55555 4836f4af2b Bump pre-commit-hooks to v5.0.0 (#130888) 2024-11-19 07:47:38 +01:00
Allen Porter 1941850685 Modernize Fitbit entity names (#130828)
* Modernize fitbit entity names

* Use placeholder with tracker device name

* Make names sentence case

* Apply name simplifications from PR feedback

* Remove translations that are duplicate of device class

* Update homeassistant/components/fitbit/sensor.py

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

* Add a test for tracker distance and update snapshots

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-19 07:47:15 +01:00
Kevin Stillhammer c7f0745f48 Catch googlemaps exceptions in google_travel_time (#130903)
Catch googlemaps exceptions
2024-11-18 21:54:09 -05:00
Robert Resch 999f3e0d77 Use RTCIceCandidateInit instead of RTCIceCandidate (#130901) 2024-11-18 21:41:50 -05:00
J. Nick Koston 00250843c6 Bump PySwitchbot to 0.53.2 (#130906)
changelog: https://github.com/sblibs/pySwitchbot/compare/0.53.0...0.53.2
2024-11-18 16:49:19 -05:00
YogevBokobza 2cf3f2b243 Bump aioswitcher to 5.0.0 (#130874)
* Bump aioswitcher to 5.0.0

* fix linting
2024-11-18 21:42:58 +02:00
Robert Resch e48857987b Use camera_capabilities instead frontend_stream_type (#130604) 2024-11-18 20:26:45 +01:00
Charles Yuan 069e6c4554 Fixed Small Inaccuracy in Description String for myUplink (#130900) 2024-11-18 20:23:32 +01:00
Steven B. 5288775941 Bump webrtc-models to 0.3.0 (#130889) 2024-11-18 19:50:31 +01:00
Michael Hansen fb83d30d9d Bump hassil to 2.0.2 (#130891) 2024-11-18 13:48:46 -05:00
starkillerOG a379535127 Reolink fix dev/entity id migration (#130836) 2024-11-18 18:59:17 +01:00
J. Nick Koston 039df1070e Bump bluetooth-adapters to 0.20.2 (#130877) 2024-11-18 18:56:33 +01:00
Raphael Hehl efa86293aa Bump uiprotect to 6.6.0 (#130872) 2024-11-18 16:09:30 +01:00
Josef Zweck 003ae881bf Add binary_sensor platform to acaia (#130676)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-18 15:26:53 +01:00
greyeee eb06dc214f Bump PySwitchbot to 0.53.0 (#130869)
Upgrade PySwitchbot to 0.53.0
2024-11-18 15:02:23 +01:00
Josef Zweck 4c816f54bf Add sensor platform to acaia (#130614)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-18 14:52:49 +01:00
epenet 1ac0b006b2 Pass config_entry explicitly in rachio (#130865) 2024-11-18 14:19:40 +01:00
Jan Bouwhuis db5cc4fcd4 Fix mqtt subscription signature (#130866) 2024-11-18 14:19:11 +01:00
Maciej Bieniek 40fb28a94d Bump accuweather to 4.0.0 (#130868) 2024-11-18 14:12:11 +01:00
MahrWe 44a93a0076 Linkplay additional models (#130262)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-11-18 13:52:06 +01:00
Jon Seager 370ea36797 Bump pytouchlinesl to 0.1.9 (#130867) 2024-11-18 13:30:08 +01:00
Johnny Willemsen a6094c4cce Add diagnostics to HomeConnect (#130500)
Co-authored-by: J. Diego Rodríguez Royo <jdrr1998@hotmail.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-11-18 13:01:07 +01:00
Glenn Waters 75199a901f UPB integration: Change unique ID from int to string. (#130832) 2024-11-18 10:56:47 +01:00
Manu e9eaeedf2b Add entity picture for gems to Habitica integration (#130827) 2024-11-18 10:52:23 +01:00
Matthias Alphart 2f1c1d66cb Support KNX lights with multiple color modes (#130842) 2024-11-18 10:22:10 +01:00
Brunno Vanelli c154ac26eb Bump pykoplenti to 1.3.0 (#130719) 2024-11-18 09:48:22 +01:00
hahn-th caaea1d45b Bump homematicip to 1.1.3 (#130824) 2024-11-18 09:11:51 +01:00
Jack Boswell 9c3ec3319b Bump starlink-grpc-core to 1.2.0 (#130488) 2024-11-18 09:02:11 +01:00
Shay Levy f94e80d4c1 Fix missing Shelly MAC address checks (#130833)
* Fix missing Shelly MAC address checks

* Make new error for mac_address_mismatch

* Use reference in translation
2024-11-18 01:34:33 +02:00
G Johansson 6f947d2612 Use default device sensors also for AirQ devices in Sensibo (#130841) 2024-11-17 23:28:54 +01:00
Santobert 43235713c7 Remove myself from codeowners (#130805) 2024-11-17 14:29:27 -06:00
Raphael Hehl dcadd2d37c Bump uiprotect to 6.5.0 (#130834) 2024-11-17 14:27:29 -06:00
J. Nick Koston 23bf4154f5 Bump yarl to 1.17.2 (#130830)
changelog: https://github.com/aio-libs/yarl/compare/v1.17.1...v1.17.2
2024-11-17 19:41:48 +01:00
dotvav db3d385447 Bump pypalazzetti to 0.1.12 (#130800) 2024-11-17 12:13:24 +01:00
Allen Porter 445690588c Update Google calendar OAuth instructions (#130775)
* Update google calendar oauth instructions

* Replace photos with calendar
2024-11-16 23:10:22 -05:00
Allen Porter 96299b16e2 Remove code for old fitbit config import (#130783)
* Remove code for old fitbit config import

* Remove translations related to issues
2024-11-16 23:09:59 -05:00
Matthias Alphart f58b5418ea Update knx-frontend to 2024.11.16.205004 (#130786) 2024-11-16 23:07:16 -05:00
Allen Porter b64f33e1d7 Remove Nest code related to Works with Nest API removal (#130785) 2024-11-16 23:07:00 -05:00
Michael d8dd6d6abe Fix unexpected stop of media playback via ffmpeg proxy for ESPhome devices (#130788)
disable writing progress stats to stderr in ffmpeg command
2024-11-17 01:58:25 +01:00
Patrick fece83d882 Fix and bump apsystems-ez1 to 2.4.0 (#130740) 2024-11-16 18:49:30 -05:00
David Knowles 9711816542 Increase Hydrawise polling time to 5 minutes (#130759) 2024-11-16 11:42:10 -05:00
Pete Sage acfc4711cd Fix Sonos get_queue action may fail if track metadata is missing (#130756)
initial commit
2024-11-16 11:40:49 -05:00
Jan Bouwhuis c219b512eb Fix file uploads in MQTT config flow not processed in executor (#130746)
Process file uploads in MQTT config flow in executor
2024-11-16 11:40:01 -05:00
Franck Nijhof 0ada59a4fe Update twentemilieu to 2.1.0 (#130752) 2024-11-16 15:06:41 +01:00
TheJulianJES a047abd510 Fix and bump codecov-action to 5.0.2 (#130729) 2024-11-16 08:02:37 +01:00
Sid 9b989ff3d5 Bump ruff to 0.7.4 (#130716) 2024-11-15 22:57:29 +01:00
Matthias Alphart 57212bbf57 KNX: Cache last telegram for each group address (#130566) 2024-11-15 20:06:57 +01:00
YogevBokobza 6279979d50 Switcher add current current temperature sensor (#130653)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-11-15 20:03:20 +01:00
Lennard Beers 5b0d8eb75e Add sensor platform to eq3btsmart (#130438) 2024-11-15 19:03:37 +01:00
Manu e26142949d Add action for using transformation items to Habitica (#129606) 2024-11-15 17:38:30 +01:00
G Johansson 50cc6b4e01 Use shorthand attribute for extra state attributes in statistics (#129353) 2024-11-15 17:37:57 +01:00
Jesse Hills a1f5e4f37a Do not create ESPHome Dashboard update entity if no configuration found (#129751) 2024-11-15 17:22:06 +01:00
dnikles 92aa2f700d Add two WiiM models to linkplay (#130707) 2024-11-15 17:08:10 +01:00
Tristan Bastian ab5ddb8edf Allow reconnecting wireless omada clients (#128491) 2024-11-15 17:02:31 +01:00
Nikolay Vasilchuk 23bac67550 Add starline run sensor (#130444) 2024-11-15 16:21:23 +01:00
dotvav 58087d67d1 Add HVACAction state to palazzetti climate (#130502) 2024-11-15 16:09:33 +01:00
Alistair Galbraith cd79a606d7 Fix scene loading issue (#130627) 2024-11-15 16:08:43 +01:00
David Knowles 9a07f58890 Inline hydrawise sensor value_fn definitions as lambdas (#130702) 2024-11-15 15:37:51 +01:00
Maciej Bieniek c3857661f1 Bump nextdns to version 4.0.0 (#130701) 2024-11-15 15:33:06 +01:00
epenet 821f9b8a41 Fix modern_forms config flow test logic (#130491) 2024-11-15 15:05:59 +01:00
epenet 3c3a6dff04 Add translation checks for issue registry (#130593) 2024-11-15 15:05:04 +01:00
epenet e772eef035 Prevent None strings in description_placeholders (#127103) 2024-11-15 14:39:57 +01:00
Marc Mueller dc09b7a532 Remove old setuptools keys from metadata (#130699) 2024-11-15 14:37:16 +01:00
epenet ca7e73c42f Improve type hints in system_bridge config flow (#130697) 2024-11-15 13:53:42 +01:00
epenet 4140999bdb Improve type hints in modern_forms config flow (#130698) 2024-11-15 13:52:44 +01:00
Marc Mueller 46ecdc680c Update velbus-aio to 2024.11.0 (#130695) 2024-11-15 12:59:11 +01:00
epenet b6d981fe9e Improve type hints in Time-based One Time Password auth module (#130420) 2024-11-15 12:48:11 +01:00
epenet 600f83ddab Finish migration from report to report_usage (#130412) 2024-11-15 12:35:50 +01:00
epenet b57b22f6e3 Drop restore_state backwards compatibility (#130411) 2024-11-15 12:35:09 +01:00
epenet b24931c775 Remove checks for DeviceEntryDisabler and DeviceEntryType enum (#130367) 2024-11-15 12:33:47 +01:00
epenet de1905a529 Use reauth helpers in system_bridge (#130422) 2024-11-15 12:33:03 +01:00
epenet 20b1e38d24 Improve type hints in tolo config flow (#130421) 2024-11-15 12:26:38 +01:00
epenet e45d4434e7 Improve type hints in soundtouch config flow (#130431) 2024-11-15 12:25:19 +01:00
epenet 7b1be8af30 Improve type hints in smlight config flow (#130435) 2024-11-15 12:21:26 +01:00
epenet 5ba5ffdacd Improve type hints in motionblinds_ble config flow (#130439) 2024-11-15 12:19:30 +01:00
epenet 2788ddec3a Improve type hints in aussie_broadband config flow (#130506) 2024-11-15 12:14:20 +01:00
epenet 747c05a263 Improve type hints in starline config flow (#130507) 2024-11-15 12:13:58 +01:00
epenet a57233c152 Improve type hints in roomba config flow (#130512) 2024-11-15 12:13:43 +01:00
epenet 1277e83038 Use BLOOD_GLUCOSE_CONCENTRATION device class in dexcom (#130526) 2024-11-15 12:13:21 +01:00
dependabot[bot] 6e94466f47 Bump github/codeql-action from 3.27.3 to 3.27.4 (#130670)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 10:54:45 +01:00
starkillerOG 76f065ce44 Fix Reolink firmware updates by uploading directly (#127007) 2024-11-15 10:41:23 +01:00
Matt Zimmerman c1f3372980 Bump python-smarttub to 0.0.38 (#130679) 2024-11-15 10:36:24 +01:00
David Knowles 027a643f24 Make Hydrawise poll non-critical data less frequently (#130289) 2024-11-15 10:30:37 +01:00
Thomas55555 35bf584a9c Deprecate returning to dock in Husqvarna Automower (#130649) 2024-11-15 10:06:30 +01:00
puddly 390b83a963 Bump ZHA dependencies (#130563) 2024-11-15 09:55:22 +01:00
epenet 0a2535cf8f Fix missing argument in translation checks (#130674) 2024-11-15 09:51:28 +01:00
epenet 1e303dd706 Fix missing translations in generic (#130672) 2024-11-15 09:48:02 +01:00
Johan Nenzén b3fcc0cf60 Fixes webhook schema for different temp and volume units (#130578) 2024-11-15 09:46:12 +01:00
dependabot[bot] 6ee85e9094 Bump codecov/codecov-action from 4.6.0 to 5.0.0 (#130671)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 09:44:33 +01:00
Johan Nenzén b549c0f67c Bump pyplaato to 0.0.19 (#130641)
Bumps version of pyplaato to 0.0.19
2024-11-15 09:41:35 +01:00
epenet ae95d802cc Fix missing translations in onewire (#130673) 2024-11-15 08:40:57 +01:00
epenet 5806304d79 Use single_config_entry in google_assistant_sdk (#130632)
* Use single_config_entry in google_assistant_sdk

* Cleanup
2024-11-14 22:43:13 -05:00
epenet e8b0b3e05c Fix missing translations in tradfri (#130654)
* Fix missing translations in tradfri

* Simplify
2024-11-14 22:42:15 -05:00
epenet aea8e8abac Fix missing translations in utility_meter (#130652) 2024-11-14 22:42:01 -05:00
epenet 62a5a219d9 Fix missing translations in madvr (#130656) 2024-11-14 22:41:15 -05:00
J. Nick Koston 4a7ae081df Bump aiohttp 3.11.2 (#130663)
fix for cleaning up incorrectly closed WebSocket connections
when a WebSocket task is cancelled

changelog: https://github.com/aio-libs/aiohttp/compare/v3.11.1...v3.11.2
2024-11-14 22:40:48 -05:00
epenet b2d98ae931 Fix missing translations in vilfo (#130650) 2024-11-14 18:50:47 -06:00
epenet eaa8a5a750 Fix missing translations in toon (#130655) 2024-11-14 18:50:09 -06:00
Jan-Philipp Benecke 7688770522 Remove dumping config entry to log in setup of roborock (#130648) 2024-11-14 17:09:16 -05:00
Marc Mueller 3db4d951bf Update mypy-dev to 1.14.0a3 (#130629) 2024-11-14 21:27:40 +01:00
J. Nick Koston f4719a21ea Bump aiohttp to 3.11.1 (#130636) 2024-11-14 14:12:59 -06:00
Mike Degatano 2344b7c9eb Fix translation missing errors in supervisor tests (#130640)
* Fix translation missing errors in supervisor tests

* Add suggestion to suggestions_by_issue mock
2024-11-14 21:11:33 +01:00
Joost Lekkerkerker a1e3c7513b Make Switch as x platform options translatable (#130443)
Make Switch as x options translatable
2024-11-14 19:45:42 +01:00
epenet a97090e0d5 Fix incorrect patch in flume tests (#130631) 2024-11-14 19:41:51 +01:00
epenet 2c8f038c39 Add missing translation string to philips_js (#130637) 2024-11-14 19:40:38 +01:00
epenet 7c34f5ea56 Add missing translation string to lg_netcast (#130635) 2024-11-14 19:40:01 +01:00
epenet 7418466064 Add missing translation string to hvv_departures (#130634) 2024-11-14 19:39:14 +01:00
J. Nick Koston f9a4dd91c1 Bump aiohttp-fast-zlib to 0.2.0 (#130628) 2024-11-14 11:08:53 -06:00
Michael Hansen 5fa9a945d9 Handle sentence triggers and local intents before pipeline agent (#129058)
* Handle sentence triggers and registered intents in Assist LLM API

* Remove from LLM

* Check sentence triggers and local intents first

* Fix type

* Fix type again

* Use pipeline language

* Fix cloud test

* Clean up and fix translation key

* Refactor async_recognize
2024-11-14 10:50:50 -06:00
epenet df55d198c8 Add translation checks for repair flows (#130619)
* Add translation checks for repair flows

* Ignore fake_integration in repairs
2024-11-14 17:25:47 +01:00
Keilin Bickar bfec48cc0e Bump sense-energy to 0.13.4 (#130625) 2024-11-14 16:50:34 +01:00
Josef Zweck 1ce8bfdaa4 Use test helpers for acaia buttons (#130626) 2024-11-14 16:34:17 +01:00
Robert Resch cd12720085 Add Python version to issue ID (#130611) 2024-11-14 16:31:33 +01:00
epenet c7ee7dc880 Refactor translation checks (#130585)
* Refactor translation checks

* Adjust

* Improve

* Restore await

* Delay pytest.fail until the end of the test
2024-11-14 16:26:05 +01:00
epenet 472414a8d6 Add missing translation string to smarty (#130624) 2024-11-14 16:17:08 +01:00
Lennard Beers 0c44c632d4 Add number platform to eq3btsmart (#130429) 2024-11-14 15:38:38 +01:00
Álvaro Fernández Rojas 61d0de3042 Bump aioairzone to 0.9.6 (#130559)
* Update aioairzone to v0.9.6

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Remove _async_migrator_mac_empty and improve tests

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Remove WebServer empty mac fixes as requested by @epenet

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-11-14 15:27:10 +01:00
Thibaut 01332a542c Removing myself from template codeowners (#130617)
* Removing myself as codeowners

* Fix

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-11-14 15:23:55 +01:00
Andre Lengwenus 3d84e35268 Move lcn non-config_entry related code to async_setup (#130603)
* Move non-config_entry related code to async_setup

* Remove action unload
2024-11-14 14:27:19 +01:00
Josef Zweck eea782bbfe Add acaia integration (#130059)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-14 13:28:38 +01:00
Lennard Beers a949d18c30 Bump eq3btsmart to 1.4.1 (#130426) 2024-11-14 13:04:22 +01:00
Marc Mueller a748897bd2 Update hassfest image to Python 3.13 (#130607) 2024-11-14 12:44:06 +01:00
Robert Resch 3201142fd8 Fix hassfest by adding go2rtc reqs (#130602) 2024-11-14 11:01:26 +01:00
starkillerOG d0a58b68e8 Bump reolink-aio to 0.11.1 (#130600) 2024-11-14 10:48:25 +01:00
Simone Chemelli 93f79be2f4 Update uptime deviation for Vodafone Station (#130571)
Update sensor.py
2024-11-14 10:35:03 +01:00
Robert Resch 46cfe6aa32 Refactor camera WebRTC tests (#130581) 2024-11-14 10:28:04 +01:00
Robert Resch 301043ec38 Add require_webrtc_support decorator (#130519) 2024-11-14 10:27:45 +01:00
puddly 245fc246d8 Ensure ZHA setup works with container installs (#130470) 2024-11-14 10:13:29 +01:00
Noah Husby 58fd917cb7 Disable brightness from devices with no display in Cambridge Audio (#130369) 2024-11-14 10:11:44 +01:00
Steven B. 2c1d1f5777 Do not trigger events for updated ring events (#130430) 2024-11-14 10:09:58 +01:00
Luke Lashley 938b1eca22 Fix when the Roborock map is being provisioned (#130574) 2024-11-14 09:52:28 +01:00
Brett Adams 2fda4c82de Force login prompt in Tesla Fleet (#130576) 2024-11-14 09:46:24 +01:00
J. Nick Koston 4200913d03 Fix non-thread-safe operation in powerview number (#130557) 2024-11-14 09:45:08 +01:00
Tony 4aad614497 Bump aioruckus to 0.42 (#130487) 2024-11-14 09:43:59 +01:00
epenet 6a3b4a6a23 Adjust minimum scapy version to 2.6.1 (#130565) 2024-11-13 17:49:39 -06:00
Michael Hansen 51c6ee97b1 Upgrade to hassil 2.0 (#130544)
* Working on hassil 2.0

* Bump to hassil 2.0

* Update snapshots

* Remove debug logging
2024-11-13 16:50:08 -05:00
Simon Lamon 4002bc3c25 Downgrade devcontainer to Python 3.12 again (#130562) 2024-11-13 22:03:34 +01:00
J. Nick Koston c35ef6bda3 Bump aiohttp to 3.11.0 (#130542) 2024-11-13 19:32:14 +01:00
Marc Mueller ed5560aec2 Update base image to Python 3.13 and deprecated 3.12 (#130425) 2024-11-13 19:28:53 +01:00
Sheldon Ip 0a5a2de78e Fix translations in subaru (#130486) 2024-11-13 18:46:52 +01:00
Brig Lamoreaux 7fd337d67f fix translation in srp_energy (#130540) 2024-11-13 18:42:26 +01:00
Marc Mueller 5f68d405b2 Update huum to 0.7.12 (#130527) 2024-11-13 17:26:27 +01:00
Erik Montnemery 093b16c723 Make WS command backup/generate send events (#130524)
* Make WS command backup/generate send events

* Update backup.create service
2024-11-13 16:16:49 +01:00
Steven B. ac4cb52dbb Bump ring-doorbell to 0.9.12 (#130419) 2024-11-13 08:04:23 -06:00
dunnmj 72b976f832 Add Sky remote integration (#124507)
Co-authored-by: Kyle Cooke <saty9@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-13 14:29:04 +01:00
Daniel Hjelseth Høyer f6bc5f050e Bump millheater to 0.12.2 (#130454) 2024-11-13 14:28:19 +01:00
epenet 8300afc00d Improve type hints in fritz config flow (#130511)
* Improve type hints in fritz config flow

* Improve coverage

* Apply suggestions from code review

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

---------

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2024-11-13 13:45:52 +01:00
epenet ab11b84678 Improve type hints in fritzbox config flow (#130509) 2024-11-13 13:01:54 +01:00
Joost Lekkerkerker b78453b85b Bump aiowithings to 3.1.3 (#130504) 2024-11-13 12:21:15 +01:00
Joost Lekkerkerker b270e4556c Avoid core manifest to have an issue tracker (#130514) 2024-11-13 12:16:07 +01:00
Joost Lekkerkerker e90893e2bc Fix Music Assistant manifest (#130515) 2024-11-13 11:43:31 +01:00
dependabot[bot] a06e7e31b9 Bump github/codeql-action from 3.27.1 to 3.27.3 (#130489)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.1 to 3.27.3.
- [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.27.1...v3.27.3)

---
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>
2024-11-13 11:06:38 +01:00
Robert Resch 2eaaadd736 Add go2rtc recommended version (#130508) 2024-11-13 11:01:05 +01:00
G Johansson 0ac00ef092 Fix legacy _attr_state handling in AlarmControlPanel (#130479) 2024-11-13 10:55:28 +01:00
Robert Resch 3092297979 Bump go2rtc-client to 0.1.1 (#130498) 2024-11-13 09:55:52 +01:00
Thomas55555 827875473b Fix RecursionError in Husqvarna Automower coordinator (#123085)
* reach maximum recursion depth exceeded in tests

* second background task

* Update homeassistant/components/husqvarna_automower/coordinator.py

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

* Update homeassistant/components/husqvarna_automower/coordinator.py

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

* test

* modify test

* tests

* use correct exception

* reset mock

* use recursion_limit

* remove unneeded ticks

* test TimeoutException

* set lower recursionlimit

* remove not that important comment and move the other

* test that we connect and listen successfully

* Simulate hass shutting down

* skip testing against the recursion limit

* Update homeassistant/components/husqvarna_automower/coordinator.py

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

* mock

* Remove comment

* Revert "mock"

This reverts commit e8ddaea3d7.

* Move patch to decorator

* Make execution of patched methods predictable

* Parametrize test, make mocked start_listening block

* Apply suggestions from code review

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik <erik@montnemery.com>
2024-11-13 09:54:37 +01:00
Joost Lekkerkerker 5cce369ce8 Bump aiowithings to 3.1.2 (#130469) 2024-11-13 07:55:33 +01:00
Joost Lekkerkerker fdb773c921 Add title to water heater component (#130446) 2024-11-13 07:55:13 +01:00
starkillerOG 8b505a2273 Bump reolink_aio to 0.11.0 (#130481) 2024-11-13 07:35:51 +01:00
Charles Garwood a9f468509b Bump zwave-js-server-python to 0.59.1 (#130468) 2024-11-13 07:14:39 +01:00
J. Nick Koston 4ff8b8015c Bump aiohttp to 3.11.0rc2 (#130484) 2024-11-12 22:07:26 -06:00
mrspouse 5c52e865a0 Correct spelling of BloodGlucoseConcentrationConverter (#130449)
* Correct spelling of BloodGlucoseConcentrationConverter

* Correct spelling of BloodGlucoseConcentrationConverter
2024-11-12 21:48:42 +01:00
Kelvin Dekker 6bfc0cbb0c Fix typo in file strings (#130465) 2024-11-12 21:33:52 +01:00
G Johansson 388473ecd7 Add diagnostics to Nord Pool (#130461) 2024-11-12 19:55:27 +01:00
G Johansson 285468d85f Fix translation in statistics (#130455)
* Fix translation in statistics

* Update homeassistant/components/statistics/strings.json
2024-11-12 18:44:32 +01:00
epenet 167025a18c Simplify modern_forms config flow (#130441)
* Simplify modern_forms config flow

* Rename variable

* Drop CONF_NAME
2024-11-12 18:03:37 +01:00
Joakim Sørensen ac0c75a598 Add upload capability to the backup integration (#128546)
* Add upload capability to the backup integration

* Limit context switch

* rename

* coverage for http

* Test receiving a backup file

* Update test_manager.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-12 15:27:53 +01:00
Robert Resch cb9cc0f801 Go2rtc bump and set ffmpeg logs to debug (#130371) 2024-11-12 11:53:14 +01:00
Lennard Beers 7758d8ba48 Add switch platform to eq3btsmart (#130363) 2024-11-12 11:42:25 +01:00
epenet 7045b776b6 Use report_usage in helpers (#130365) 2024-11-12 09:25:13 +01:00
J. Nick Koston 22aed92461 Bump aiohttp to 3.11.0rc1 (#130320) 2024-11-12 08:29:01 +01:00
LG-ThinQ-Integration 60bf0f6b06 Fix fan's warning TURN_ON, TURN_OFF (#130327)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-11-12 08:26:28 +01:00
G Johansson 3eab72b2aa Improve exception handling in Nord Pool (#130386)
* Improve exception handling in Nord Pool

* Improve auth string

* Remove auth
2024-11-11 23:02:48 +01:00
Daniel Hjelseth Høyer d1c3e1caa9 Bump Tibber 0.30.8 (#130388) 2024-11-11 21:05:52 +01:00
Sid 8b547551e2 Bump ruff to 0.7.3 (#130390) 2024-11-11 21:05:41 +01:00
epenet f1ce7ee8ce Adjust logging for OptionsFlow deprecation (#130360) 2024-11-11 21:02:09 +01:00
J. Nick Koston e388e9f396 Fix missing title placeholders in powerwall reauth (#130389) 2024-11-11 20:48:49 +01:00
Markus Lanthaler 96c12fdd10 Update tuya-device-sharing-sdk to version 0.2.1 (#130333) 2024-11-11 20:40:37 +01:00
Noah Husby e97a5f927c Bump aiorussound to 4.1.0 (#130382) 2024-11-11 20:26:45 +01:00
epenet 313309a7e0 Remove deprecated YAML loaders (#130364) 2024-11-11 20:24:51 +01:00
Barry vd. Heuvel ebe62501d6 Bump Weheat wh-python to 2024.11.02 (#130337) 2024-11-11 20:14:12 +01:00
Robert Resch c54369fe93 Add go2rtc to devcontainer (#130380) 2024-11-11 20:13:20 +01:00
Marc Mueller c89bf6a9aa Update pillow to 11.0.0 (#130194) 2024-11-11 20:12:32 +01:00
epenet 906bdda6fa Use report_usage in integrations (#130366) 2024-11-11 20:09:26 +01:00
Andre Lengwenus f3708549f0 Code cleanup for LCN integration (#130385) 2024-11-11 20:08:38 +01:00
Andre Lengwenus 3f34ddd74f Bump lcn-frontend to 0.2.2 (#130383) 2024-11-11 20:07:12 +01:00
Marc Mueller b19c44b4a5 Update pydantic to 1.10.19 (#130373) 2024-11-11 12:01:47 -06:00
Erik Montnemery 0cc50bc7bc Fix copy-paste error in STATISTIC_UNIT_TO_UNIT_CONVERTER (#130375) 2024-11-11 11:09:06 -06:00
Joost Lekkerkerker e56dec2c8e Bump spotifyaio to 0.8.8 (#130372) 2024-11-11 17:35:54 +01:00
Olivier Corradi e797149a16 Rename "CO2 Signal" display name to Electricity Maps for consistency (#130242)
* Update strings.json for Electricity Maps

* Update strings.json

* Update config_flow.py

* Update test_config_flow.py

* Fix test
2024-11-11 17:34:29 +01:00
Simon Lamon c96f1c87a6 Bump python-linkplay to 0.0.20 (#130348) 2024-11-11 17:30:27 +01:00
Erik Elkins 388c5807ea Add Switchbot Hub 2, Switchbot Meter Pro and Switchbot Meter Pro (CO2) devices to Switchbot Cloud integration. (#130295) 2024-11-11 16:10:52 +01:00
Robert Resch 41c6eeedca Bump deebot-client to 8.4.1 (#130357) 2024-11-11 15:41:18 +01:00
Lennard Beers 829632b0af Add binary sensor platform to eq3btsmart (#130352) 2024-11-11 14:27:52 +01:00
Erik Montnemery 5293fc73d8 Sort some code in cloud preferences (#130345)
Sort some code in cloud prefs
2024-11-11 13:21:16 +01:00
Simon Lamon 870bf388e0 Add seek support to LinkPlay (#130349) 2024-11-11 12:49:56 +01:00
Simon Lamon 7a4dac1eb1 Add Spotify and Tidal to playingmode mapping (#130351) 2024-11-11 12:46:02 +01:00
Erik Montnemery 88480d154a Fix typo in BaseBackupManager.async_restore_backup (#130329) 2024-11-11 12:10:49 +01:00
Lennard Beers 5497c440d9 Prepare eq3btsmart base entity for additional platforms (#130340) 2024-11-11 11:46:11 +01:00
Lennard Beers 1e26cf13d6 Use runtime data for eq3btsmart (#130334) 2024-11-11 10:59:50 +01:00
Nerdix 0dd208a4b9 Add alarm count sensor for Kostal Inverters (#130324) 2024-11-11 09:07:47 +01:00
dependabot[bot] c3492bc0ed Bump github/codeql-action from 3.27.0 to 3.27.1 (#130323) 2024-11-11 08:14:42 +01:00
G Johansson 85bf8d1374 Fix Homekit error handling alarm state unknown or unavailable (#130311) 2024-11-10 22:40:23 +00:00
Jan Bouwhuis e040eb0ff2 Remove extra state attributes from some QNAP sensors (#130310) 2024-11-10 22:26:00 +01:00
Max Shcherbina d7f41ff8a9 Update generic thermostat strings for clarity and accuracy (#130243) 2024-11-10 22:13:38 +01:00
Jan Bouwhuis de5437f61e Remove YAML warning for thethingsnetwork after warning for 6 months (#130307) 2024-11-10 22:12:31 +01:00
Jan Bouwhuis c52a893e21 Remove YAML import from lcl integration after 6 months deprecation (#130305) 2024-11-10 21:10:18 +01:00
Joost Lekkerkerker f7f1830b7e Add support for binary sensor states in Google Assistant (#127652) 2024-11-10 20:34:24 +01:00
Simon Lamon 784ad20fb6 Add diagnostics to LinkPlay (#126768) 2024-11-10 20:31:40 +01:00
Richard Cox 0468e7e7a3 Update Sonarr config flow to standardize ports (#127625)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-11-10 20:23:23 +01:00
dotvav 88c227681d Bump pypalazzetti to 0.1.11 (#130293) 2024-11-10 20:13:31 +01:00
Lennard Beers 3a37ff13a6 Bump eq3btsmart to 1.2.1 (#130297) 2024-11-10 20:12:46 +01:00
Simone Chemelli 73929e6791 Avoid Shelly data update during shutdown (#130301) 2024-11-10 20:11:42 +01:00
Manu 980b0fa5e6 Deprecate api_call action in Habitica integration (#128119) 2024-11-10 19:37:41 +01:00
Tsvi Mostovicz fbc4a87166 Remove Jewish Calendar config flow upgrade (#129612) 2024-11-10 19:35:01 +01:00
Allen Porter 7f9ec2a79e Ignore WebRTC candidates for nest cameras (#130294) 2024-11-10 19:27:40 +01:00
Jan Bouwhuis d8b55d39e4 Remove tibber legacy notify service after 6 months of deprecation (#130292) 2024-11-10 19:27:11 +01:00
Jan Bouwhuis ee41725b53 Remove jewish_calendar yaml support after 6 months of deprecation (#130291) 2024-11-10 16:51:08 +01:00
J. Diego Rodríguez Royo ae1203336d Add links to deprecation issue message for Home Connect Binary door (#129779) 2024-11-10 16:37:53 +01:00
Michael f10063c9be Fix translation key for done response in conversation (#130247) 2024-11-10 16:28:58 +01:00
Åke Strandberg 1da4579a09 Add more f-series models to myuplink (#130283) 2024-11-10 15:46:50 +01:00
Jan Bouwhuis 7fd9339ad8 Remove unused file CONFIG_SCHEMA (#130287) 2024-11-10 15:34:08 +01:00
Jan Bouwhuis de391fa98b Remove geniushub yaml support after 6 months of deprecation (#130285)
* Remove geniushub YAML import after 6 moths of deprecation

* Update homeassistant/components/geniushub/__init__.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-10 14:58:44 +01:00
J. Nick Koston 70211ab78e Bump aiohttp to 3.11.0rc0 (#130284) 2024-11-10 13:45:46 +00:00
Nicholas Romyn a1a08f7755 Ecobee aux cutover threshold (#129474)
* removing extra blank space

* Adding EcobeeAuxCutoverThreshold

First pass.

* minor reorg and changes; testing local check-in

* Adding entity, setting device class and name

* Bumping max value slightly to hopefully accomodate celsius, setting numberMode=box

* fixing the entity name for aux cutover threshold

* Combined async_add_entities

* Using a list comprehension

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

* fixing stuff with listcomprehension

* exchanging call to list.append() to extend with list comprehension

* Updating the class name and the entity name to match the device UI.
Removing abbreviations from entity names

* Fixing tests to match new entity names

* respecting 88 column limit

* Formatting

* Adding test coverage for update/set compressorMinTemp values

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-10 14:13:01 +01:00
G Johansson 433321136d Remove incorrect mark fixture in nordpool (#130278) 2024-11-10 12:28:18 +01:00
Manu 0677bba5bd Add actions for scoring habits and rewards in Habitica (#129605) 2024-11-10 12:26:07 +01:00
G Johansson d0ad834d93 Move manual trigger entity tests (#130134) 2024-11-10 12:14:13 +01:00
Simon Lamon 7d2d6a82b0 Allow dynamic max preset in linkplay play preset (#130160) 2024-11-10 12:02:55 +01:00
Allen Porter e8dc62411a Improve nest camera stream expiration to be defensive against errors (#130265) 2024-11-10 12:01:59 +01:00
G Johansson 7925007ab4 Bump psutil to 6.1.0 (#130254) 2024-11-10 12:00:45 +01:00
dotvav 7515deddab Palazzetti DHCP Discovery (#129731)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-11-10 11:48:52 +01:00
Marc Mueller e382f924e6 Add support for Python 3.13 (#129442) 2024-11-10 11:38:56 +01:00
Max Shcherbina 7fdcb98518 Update description for generic hygrostat description (#130244) 2024-11-10 11:25:32 +01:00
Noah Husby d0dbca41f7 Support additional media player states for Russound RIO (#130261) 2024-11-10 11:20:55 +01:00
G Johansson f3229c723c Bump pynordpool to 0.2.2 (#130257) 2024-11-10 11:19:10 +01:00
J. Nick Koston cafa598fd6 Bump aiohttp to 3.11.0b5 (#130264) 2024-11-10 11:18:12 +01:00
Allen Porter 73a62a09b0 Update nest tests to unload config entries to perform clean teardown (#130266) 2024-11-10 09:54:52 +01:00
Lothar Bach ecd8dde347 Fix path to tesla fleet key file in config folder (#130124)
* Tesla Fleet load key file from config folder

* Fix test

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-11-09 23:21:29 +01:00
Marc Mueller 31a2bb1b98 Fix flaky modbus tests (#130252) 2024-11-09 22:58:16 +01:00
Max Shcherbina 0fc019305e Fix typo in reminder date language string in Todoist integration (#130241) 2024-11-09 21:38:29 +01:00
Marc Mueller adb1c59859 Update grpcio to 1.67.1 (#130240) 2024-11-09 21:37:56 +01:00
Manu 5d0277a0d1 Add actions for quest handling to Habitica (#129650) 2024-11-09 19:34:25 +01:00
Allen Porter 21d81d5a5c Bump google-nest-sdm to 6.1.5 (#130229) 2024-11-09 19:02:15 +01:00
DeerMaximum 0de4bfcc2c Add missing translation string for NINA (#129826) 2024-11-09 18:33:28 +01:00
jjlawren 2cc5486794 Bump SoCo to 0.30.6 (#130223) 2024-11-09 17:14:40 +01:00
Noah Husby e3315383ab Improve entity test coverage for Russound RIO (#129828) 2024-11-09 17:13:57 +01:00
Markus Jacobsen 31b505828b Simplify Bang & Olufsen source determination (#130072) 2024-11-09 17:13:07 +01:00
Daniel Oltmanns b61580a937 Add fan preset mode icons and strings to vesync (#129584) 2024-11-09 16:48:00 +01:00
Markus Jacobsen 928e5348e4 Add custom integration action sections support to hassfest (#130148) 2024-11-09 16:47:02 +01:00
Josef Zweck 622682eb43 Change update after button press for lamarzocco (#129616) 2024-11-09 16:42:10 +01:00
Simon Lamon 97fa568876 No longer thrown an error when device is offline in linkplay (#130161) 2024-11-09 16:11:34 +01:00
Manu c10f078f2a Add sensors for attribute points (str, int, per, con) to Habitica (#130186) 2024-11-09 16:04:10 +01:00
Simone Chemelli e6d16f06fc Fix uptime sensor for Vodafone Station (#130215) 2024-11-09 15:55:39 +01:00
Daniel Hjelseth Høyer c89ab7a142 Bump pyTibber (#130216) 2024-11-09 15:54:58 +01:00
Jan Bouwhuis 6837ea947c Cleanup yaml import and legacy file notify service (#130219) 2024-11-09 15:54:18 +01:00
Marco 5f0f29704b Add smarty reset filters timer button (#129637) 2024-11-09 13:32:00 +01:00
Manu 1f43dc6676 Fix cast skill test in Habitica (#130213) 2024-11-09 13:12:04 +01:00
Marc Mueller 4d7405de2c Install zlib-dev for pillow wheel build (#130211) 2024-11-09 13:03:26 +01:00
Max Shcherbina 4adffdd1a6 Fix wording in Google Calendar create_event strings for consistency (#130183) 2024-11-09 13:01:59 +01:00
Manu 4e2f5bdb7d Add tests for cast skill action in Habitica (#129596) 2024-11-09 12:45:50 +01:00
starkillerOG 03bc711c51 Add Reolink chime vehicle tone (#129835) 2024-11-09 12:25:06 +01:00
Marc Mueller 8b8e949bdf Update wheel builder to 2024.11.0 (#130209) 2024-11-09 12:07:20 +01:00
Erik Montnemery 69ba0d3a50 Report update_percentage in ezviz update entity (#129377) 2024-11-09 11:35:18 +01:00
epenet 25fb70f281 Add blood glucose concentration device class (#129340) 2024-11-09 11:29:24 +01:00
Tom Gamull 0304588bb8 Fix missing unit of measurement for blink wifi strength (#128409) 2024-11-09 11:19:36 +01:00
Josef Zweck 08f5081197 Rename lamarzocco library (#130204) 2024-11-09 11:03:48 +01:00
jb101010-2 701f35488c Add water price sensor to suez water (#130141)
* Suez water: add water price sensor

* sensor description

* clean up
2024-11-09 10:57:22 +01:00
G Johansson d11012b2b7 Move check thresholds valid to platform schema in threshold (#129540) 2024-11-09 10:50:11 +01:00
Josef Zweck 8384100e1b Rename tedee library (#130203) 2024-11-09 10:46:38 +01:00
Tristan Bastian cd0349ee4d Bump tplink-omada-client to 1.4.3 (#130184) 2024-11-09 10:41:08 +01:00
Marc Mueller b413e481cb Update numpy to 2.1.3 (#130191) 2024-11-09 10:12:52 +01:00
Diogo Gomes 9f7e6048f8 Code quality improvements on utility_meter (#129918)
* clean

* update snapshot

* move name, native_value and native_unit_of_measurement to _attr's

* Apply suggestions from code review

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

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-09 00:17:43 +01:00
IceBotYT 2802b77f21 Bump nice-go to 0.3.10 (#130173)
Bump Nice G.O. to 0.3.10
2024-11-09 00:12:14 +01:00
J. Nick Koston 964ad43a27 Bump orjson to 3.10.11 (#130182) 2024-11-09 00:07:05 +01:00
TheJulianJES 182be6e0ea Fix failing UniFi Protect tests on some systems (#129516) 2024-11-08 23:10:29 +01:00
Jakob Schlyter cd11f01ace Add support for MW/GW/TW and GWh/TWh (#130089) 2024-11-08 22:12:16 +01:00
G Johansson 742eca5927 Use TemplateStateFromEntityId in Template trigger entity (#130136) 2024-11-08 22:09:43 +01:00
murfy76 48e7fed901 Add voc and formaldehyde to Tuya CO2 Detector (#130119) 2024-11-08 22:03:01 +01:00
Marc Mueller 0a4c0fe7cc Add option to specify additional markers for wheel build requirements (#129949) 2024-11-08 21:09:53 +01:00
Jan Bouwhuis 9037cb8a7d Fix typo in go2rtc (#130165)
Fix typo in original
2024-11-08 20:38:38 +01:00
Jan Bouwhuis c97cc34879 Use f-strings in go2rtc code and test and do not use abbreviation (#130158) 2024-11-08 20:16:46 +01:00
Sheldon Ip 1ac9217630 Fix translations in ollama (#130164) 2024-11-08 20:15:17 +01:00
Simon Lamon e4036a2f14 Bump python-linkplay to v0.0.18 (#130159) 2024-11-08 20:14:33 +01:00
G Johansson da9c73a767 Add reconfigure flow to Nord Pool (#130151) 2024-11-08 19:53:52 +01:00
Diogo Gomes e4aaaf10c3 Fix utility_meter on DST changes (#129862)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-08 18:44:15 +01:00
Louis Christ a7be76ba0a Fix volume_up not working in some cases in bluesound integration (#130146) 2024-11-08 18:40:43 +01:00
Allen Porter f7cc91903c Fix bugs in nest stream expiration handling (#130150) 2024-11-08 18:37:00 +01:00
Jan Bouwhuis 4a8a674bd3 Refrase imap fetch service description string (#130152) 2024-11-08 18:36:19 +01:00
Robert Resch a8db25fbd8 Split test doesn't need to be executed per Python version (#130147) 2024-11-08 18:05:05 +01:00
Klaas Schoute 2dc81ed866 Force int value on port in P1Monitor (#130084) 2024-11-08 16:15:57 +01:00
Shai Ungar c4762f3ff4 Fix issue when timestamp is None (#130133)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-08 16:15:28 +01:00
Martin Hjelmare 14285973b8 Bump ha-ffmpeg to 3.2.2 (#130142) 2024-11-08 16:00:24 +01:00
epenet 353ccf3ea7 Only apply OptionsFlowWithConfigEntry deprecation to core (#130054)
* Only apply OptionsFlowWithConfigEntry deprecation to core

* Fix match string in pytest.raises

* Improve coverage
2024-11-08 15:55:19 +01:00
Lektri.co 6b90d8ff1a Add binary sensor platform to the Lektrico integration (#129872) 2024-11-08 15:54:46 +01:00
Robert Resch 51e691f832 Add go2rtc workaround for HA managed one until upstream fixes it (#130139) 2024-11-08 15:54:14 +01:00
Joost Lekkerkerker 6c7ac7a6ef Bump spotifyaio to 0.8.7 (#130140) 2024-11-08 15:53:26 +01:00
Bram Kragten 52ed1bf44a Update frontend to 20241106.2 (#130128) 2024-11-08 15:13:05 +01:00
Petar Petrov 3eab0b704e Get/Set custom config parameter for zwave_js node (#129332)
* Get/Set custom config parameter for zwave_js node

* add tests

* handle errors on set

* test FailedCommand
2024-11-08 15:12:18 +01:00
G Johansson 1f32e02ba2 Add Nord Pool integration (#129983) 2024-11-08 15:10:51 +01:00
epenet 074418f8f7 Drop OptionsFlowWithConfigEntry usage in homeassistant_hardware (#130078)
* Drop OptionsFlowWithConfigEntry usage in homeassistant_hardware

* Add homeassistant_hardware as other components rely on it

* Maybe core_files not needed after all
2024-11-08 14:53:46 +01:00
Martin Hjelmare b711b17193 Remove Z-Wave incorrect lock service descriptions (#130034) 2024-11-08 14:50:41 +01:00
Steven B. 03c3d09583 Enable overriding connection port for tplink devices (#129619)
Enable setting a port override during manual config entry setup.

The feature will be undocumented as it's quite a specialized use case generally used for testing purposes.
2024-11-08 14:41:00 +01:00
Robert Resch f49547d598 Bump uv to 0.5.0 (#130127) 2024-11-08 14:19:46 +01:00
jb101010-2 7678be8e2b Suez water: simplify config flow (#130083)
Simplify config flow for suez water. Counter_id can now be automatically be fetched by the integration.
The value is provided only in the source code of suez website and therefore not easily accessible to user not familiar with devlopment.
Still possible to explicitly set the value for user with multiple value or value defined elsewhere.
2024-11-08 14:01:36 +01:00
epenet 7672215095 Trigger full CI run on homeassistant_hardware integration changes (#130129)
Add components/homeassistant_hardware to core files
2024-11-08 13:46:40 +01:00
epenet 18cf96b92b Bring emoncms coverage to 100% (#130092)
Remove mock_setup_entry from emoncms OptionsFlow test
2024-11-08 13:42:19 +01:00
epenet 94d597fd41 Add checks for flow title/description placeholders (#129140)
* Add checks for title placeholders

* Check both title and description

* Improve comment
2024-11-08 13:33:19 +01:00
Alexandre CUER 24b47b50ea Migrate from entry unique id to emoncms unique id (#129133)
* Migrate from entry unique id to emoncms unique id

* Use a placeholder for the documentation URL

* Use async_set_unique_id in config_flow

* use _abort_if_unique_id_configured in config_flow

* Avoid single-use variable

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

* Add async_migrate_entry

* Remove commented code

* Downgrade version if user add server without uuid

* Improve code quality

* Move code migrating HA to emoncms uuid to init

* Fit doc url in less than 88 chars

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

* Improve code quality

* Only update unique_id with async_update_entry

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

* Make emoncms_client compulsory to get_feed_list

* Improve readability with unique id functions

* Rmv test to give more sense to _migrate_unique_id

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-08 13:29:10 +01:00
Markus Jacobsen e3dfa84d65 Bang & Olufsen add beolink grouping (#113438)
* Add Beolink custom services
Add support for media player grouping via beolink
Give media player entity name

* Fix progress not being set to None as Beolink listener
Revert naming changes

* Update API
simplify Beolink attributes

* Improve beolink custom services

* Fix Beolink expandable source check
Add unexpand return value
Set entity name on initialization

* Handle entity naming as intended

* Fix "null" Beolink self friendly name

* Add regex service input validation
Add all_discovered to beolink_expand service
Improve beolink_expand response

* Add service icons

* Fix merge
Remove unnecessary assignment

* Remove invalid typing
Update response typing for updated API

* Revert to old typed response dict method
Remove mypy ignore line
Fix jid possibly used before assignment

* Re add debugging logging

* Fix coroutine
Fix formatting

* Remove unnecessary update control

* Make tests pass
Fix remote leader media position bug
Improve remote leader BangOlufsenSource comparison

* Fix naming and add callback decorators

* Move regex service check to variable
Suppress KeyError
Update tests

* Re-add hass running check

* Improve comments, naming and type hinting

* Remove old temporary fix

* Convert logged warning to raised exception for invalid media_player
Simplify code using walrus operator

* Fix test for invalid media_player grouping

* Improve method naming

* Improve _beolink_sources explanation

* Improve _beolink_sources explanation

* Fix tests

* Remove service responses
Fix and add tests

* Change service to action where applicable

* Show playback progress for listeners

* Fix testing

* Remove useless initialization

* Fix allstandby name

* Fix various casts with assertions
Fix comment placement
Fix group leader group_members rebase error
Replace entity_id method call with attribute

* Add syrupy snapshots for Beolink tests, checking entity states
Use test JIDs 3 and 4 instead of 2 and 3 to avoid invalid attributes in testing

* Add sections for fields using Beolink JIDs directly

* Fix typo

* FIx rebase mistake

* Sort actions alphabetically
2024-11-08 12:06:29 +01:00
nasWebio ed1366f463 Add NASweb integration (#98118)
* Add NASweb integration

* Fix DeviceInfo import

* Remove commented out code

* Change class name for uniquness

* Drop CoordinatorEntity inheritance

* Rename class Output to more descriptive: RelaySwitch

* Update required webio-api version

* Implement on-the-fly addition/removal of entities

* Set coordinator name matching device name

* Set entities with too old status as unavailable

* Drop Optional in favor of modern typing

* Fix spelling of a variable

* Rename commons to more fitting name: helper

* Remove redundant code

* Let unload fail when there is no coordinator

* Fix bad docstring

* Rename cord to coordinator for clarity

* Remove default value for pop and let it raise exception

* Drop workaround and use get_url from helper.network

* Use webhook to send data from device

* Deinitialize coordinator when no longer needed

* Use Python formattable string

* Use dataclass to store integration data in hass.data

* Raise ConfigEntryNotReady when appropriate

* Refactor NASwebData class

* Move RelaySwitch to switch.py

* Fix ConfigFlow tests

* Create issues when entry fails to load

* Respond when correctly received status update

* Depend on webhook instead of http

* Create issue when status is not received during entry set up

* Make issue_id unique across integration entries

* Remove unnecessary initializations

* Inherit CoordinatorEntity to avoid code duplication

* Optimize property access via assignment in __init__

* Use preexisting mechanism to fill schema with user input

* Fix translation strings

* Handle unavailable or unreachable internal url

* Implement custom coordinator for push driven data updates

* Move module-specific constants to respective modules

* Fix requirements_all.txt

* Fix CODEOWNERS file

* Raise ConfigEntryError instead of issue creation

* Fix entity registry import

* Use HassKey as key in hass.data

* Use typed ConfigEntry

* Store runtime data in config entry

* Rewrite to be more Pythonic

* Move add/remove of switch entities to switch.py

* Skip unnecessary check

* Remove unnecessary type hints

* Remove unnecessary nonlocal

* Use a more descriptive docstring

* Add docstrings to NASwebCoordinator

* Fix formatting

* Use correct return type

* Fix tests to align with changed code

* Remove commented code

* Use serial number as config entry id

* Catch AbortFlow exception

* Update tests to check ConfigEntry Unique ID

* Remove unnecessary form abort
2024-11-08 12:03:32 +01:00
Josef Zweck 5d5908a03f Add missing string to tedee plus test (#130081) 2024-11-08 08:47:28 +01:00
Kelvin Dekker 3062bad19e Fix typo in insteon strings (#130085) 2024-11-08 08:47:02 +01:00
Bram Kragten 28832cbd3e Update frontend to 20241106.1 (#130086) 2024-11-08 08:46:48 +01:00
Luke Lashley ce94073321 Bump python-roborock to 2.7.2 (#130100) 2024-11-08 08:39:41 +01:00
J. Nick Koston fa61e02207 Bump aiohttp to 3.11.0b4 (#130097) 2024-11-08 08:36:30 +01:00
Robert Resch d1dab83f10 Merge both stun server into one as it's the same server only on a different port (#130019)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-08 08:22:47 +01:00
Erik Montnemery 2b7d593ebe Avoid collision when replacing existing config entry with same unique id (#130062) 2024-11-08 07:45:16 +01:00
Allen Porter e407b4730d Fix KeyError in nest integration when the old key format does not exist (#130057)
* Fix bug in nest setup when the old key format does not exist

* Further simplify the entry.data check

* Update homeassistant/components/nest/api.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-07 20:03:07 -08:00
YogevBokobza 0d19e85a0d Align Switcher cover platform with changes from light platform (#130094)
Switcher small fix for cover
2024-11-08 02:59:30 +02:00
YogevBokobza dac6271e01 Add Switcher Lights support (#129494)
* switcher lights integration

* fix based on requested changes

* Update light.py

* switcher fix based on requested changes

* fix linting

* fix linting

* Update light.py

* Update light.py

* Update homeassistant/components/switcher_kis/light.py

* Update light.py

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-11-07 22:06:34 +02:00
Marc Mueller 8cae8edc55 Remove temporary pint constraint (#130070) 2024-11-07 19:10:24 +01:00
epenet a3b0909e3f Add new frame helper to better distinguish custom and core integrations (#130025)
* Add new frame helper to clarify options available

* Adjust

* Improve

* Use report_usage in core

* Add tests

* Use is/is not

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

* Use enum.auto()

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-07 18:23:35 +01:00
Markus ee30520b57 Fix esphome mqtt discovery by handling case where payload is a empty string (#129969)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-07 11:16:01 -06:00
Erik Montnemery 536e686892 Don't create repairs asking user to remove duplicate flipr config entries (#130058)
* Don't create repairs asking user to remove duplicate flipr config entries

* Improve comments
2024-11-07 17:38:10 +01:00
epenet ef767c2b9f Improve tests for frame helper (#130046)
* Improve tests for frame helper

* Improve comments

* Add ids

* Apply suggestions from code review
2024-11-07 17:35:58 +01:00
Frank Wickström c1ecc13cb3 Bump huum to 0.7.11 (#130047)
* Update huum dependency 0.7.10 -> 0.7.11

This change includes an explicit MIT license for the package.

* Remove huum from license exceptions list
2024-11-07 17:18:36 +01:00
Erik Montnemery c5e3ba536c Don't create repairs asking user to remove duplicate ignored config entries (#130056) 2024-11-07 17:07:23 +01:00
jb101010-2 0e324c074a Bump PySuez to 1.3.1 (#129825) 2024-11-07 14:25:38 +01:00
epenet a3ba7803db Add checks for translation placeholders (#129963)
* Add checks for translation placeholders

* Remove async

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review
2024-11-07 13:12:00 +01:00
Marc Mueller 49bf5db5ff Update pytest warnings filter (#130027) 2024-11-07 12:55:54 +01:00
Franck Nijhof 50981c26ad Merge branch 'master' into dev 2024-11-07 10:58:42 +01:00
Allen Porter 2adbf7c933 Bump google-nest-sdm to 6.1.4 (#130005)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-07 10:50:40 +01:00
Brett Adams 838ef0bb9f Fix Trunks in Teslemetry and Tesla Fleet (#129986) 2024-11-07 10:36:43 +01:00
sean t 43c2658962 Bump agent-py to 0.0.24 (#130018)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-07 10:34:54 +01:00
epenet bbefa971d8 Add missing placeholder description to twitch (#130013) 2024-11-07 10:32:23 +01:00
Petar Petrov cb97f2f13c Bump zwave-js-server-python to 0.59.0 (#129482) 2024-11-07 10:06:28 +01:00
epenet a657b9bb84 Add temporary package constraint on flexparser and pint to fix CI (#130016)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-11-07 09:57:14 +01:00
Erik Montnemery 2d2f55a4df Report update_percentage in shelly update entity (#129382)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-11-07 08:52:20 +01:00
Michael Hansen df16e6d022 Bump intents to 2024.11.6 (#129982) 2024-11-07 08:29:44 +01:00
Marc Mueller 56212c6fa5 Update numpy to 2.1.2 and pandas to 2.2.3 (#129958) 2024-11-07 08:24:47 +01:00
Keilin Bickar bc964ce7f0 Update sense energy library to 0.13.3 (#129998) 2024-11-07 08:14:54 +01:00
Mike Degatano ed4f55406c Replace Supervisor resolution API calls with aiohasupervisor (#129599)
* Replace Supervisor resolution API calls with aiohasupervisor

* Use consistent types to avoid uuid issues

* Fix mocking in http test

* Changes from feedback

* Put hass first

* Fix typo

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-07 01:33:51 +01:00
epenet 03d5b18974 Remove options property from OptionFlow (#129890)
* Remove options property from OptionFlow

* Update test_config_entries.py

* Partial revert of "Remove deprecated property setters in option flows (#129773)"

* Partial revert "Use new helper properties in crownstone options flow (#129774)"

* Restore onewire init

* Restore onvif

* Restore roborock

* Use deepcopy in onewire

* Restore steam_online

* Restore initial options property in OptionsFlowWithConfigEntry

* re-add options property in SchemaOptionsFlowHandler

* Restore test

* Cleanup
2024-11-06 23:28:01 +01:00
J. Nick Koston 53c486ccd1 Bump aiohttp to 3.11.0b3 (#129363) 2024-11-06 15:59:31 -06:00
Steven B. 9a2a177b28 Bump ring library ring-doorbell to 0.9.9 (#129966) 2024-11-06 15:46:08 -06:00
Manu b808c0c5eb Add state invitation to list access sensor in Bring integration (#129960) 2024-11-06 19:15:25 +01:00
Robert Resch d4adb1f298 Bump go2rtc-client to 0.1.0 (#129965) 2024-11-06 17:59:04 +01:00
Erik Montnemery fe0a822721 Call async_refresh_providers when camera entity feature changes (#129941) 2024-11-06 17:37:23 +01:00
Joost Lekkerkerker 9f427893b1 Remove deprecation issues for LCN once entities removed (#129955) 2024-11-06 17:00:20 +01:00
epenet dea31e5744 Ensure that all files in a folder are in the same test bucket (#129946) 2024-11-06 15:38:24 +01:00
epenet 51d6948848 Use read-only options in google cloud options flow (#129927) 2024-11-06 15:15:35 +01:00
epenet 7ce74cb5ec Use read-only options in onkyo options flow (#129929) 2024-11-06 15:14:59 +01:00
Bram Kragten 29ba140816 Update frontend to 20241106.0 (#129953) 2024-11-06 14:53:59 +01:00
Robert Resch 0ca4f3e1ba Bump go2rtc-client to 0.0.1b5 (#129952) 2024-11-06 14:52:21 +01:00
J. Diego Rodríguez Royo 0430e6794e Delete binary door deprecation issue on unload at Home Connect (#129947) 2024-11-06 14:44:17 +01:00
Marc Mueller 29fa7f827a Fix audit-licenses check for multiple Python versions [ci] (#129951) 2024-11-06 14:20:14 +01:00
Tsvi Mostovicz 57d1001603 Move Jewish Calendar to runtime data (#129609) 2024-11-06 14:19:58 +01:00
Brett Adams 96de4b3828 Improve history coordinator in Teslemetry (#128235) 2024-11-06 13:40:37 +01:00
Teemu R. c6cb2884f4 Add motion sensor setting to tplink (#129393) 2024-11-06 13:40:17 +01:00
Manu 27e81fe0ed Improve error messages in Habitica (#129948)
Improve error messages
2024-11-06 13:23:43 +01:00
Louis Christ 2c1db10986 Map "stop" to MediaPlayerState.IDLE in bluesound integration (#129904)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-06 13:10:23 +01:00
epenet a7ba4bd086 Use read-only options in emoncms options flow (#129926)
* Use read-only options in emoncms options flow

* Don't store URL and API_KEY in entry options
2024-11-06 13:09:05 +01:00
Robert Resch 25449b424f Bump go2rtc-client to 0.0.1b4 (#129942) 2024-11-06 12:05:23 +01:00
Markus Jacobsen f6f89bd807 Update Bang & Olufsen source list as availability changes (#129910) 2024-11-06 11:52:00 +01:00
Daniel Hjelseth Høyer 370d7d6bdf Bump pyTibber to 0.30.4 (#129844) 2024-11-06 11:44:54 +01:00
Kunal Aggarwal 4dbf3359c1 Adding "peaceful" status as on value to Tuya Presence Sensor (#129925) 2024-11-06 11:43:41 +01:00
Joost Lekkerkerker 25eb7173bf Write squeezebox player state after query (#129939) 2024-11-06 11:32:59 +01:00
Joost Lekkerkerker 648c3d500b Bump spotifyaio to 0.8.5 (#129938) 2024-11-06 11:32:35 +01:00
epenet 33016c2977 Use new helper properties in netatmo options flow (#129781)
* Use new helper properties in netatmo options flow

* Update homeassistant/components/netatmo/config_flow.py

* Apply suggestions from code review

* Improve

* Keep options

* Simplify
2024-11-06 10:37:55 +01:00
Robert Resch 5679b061d2 Fix native sync WebRTC offer (#129931) 2024-11-06 10:07:10 +01:00
Nicholas Romyn 2eb2bdd615 Consolidating async_add_entities into one call in Ecobee (#129917)
* Consolidating async_add_entities into one call.

* changing to comprehension.
2024-11-06 08:25:18 +01:00
epenet 184cbfea23 Use read-only options in lastfm options flow (#129928)
Use read-only options in lstfm options flow
2024-11-06 08:14:54 +01:00
dependabot[bot] f88bc008e5 Bump actions/attest-build-provenance from 1.4.3 to 1.4.4 (#129924) 2024-11-06 08:13:41 +01:00
Paulus Schoutsen a927312fb5 Ensure all template names are strings (#129921) 2024-11-05 22:36:26 -05:00
starkillerOG 5f13db2356 Bump reolink_aio to 0.10.4 (#129914) 2024-11-06 00:05:05 +01:00
kingal123 64e84e2aa0 Update pylutron to 0.2.16 (#129653)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-05 22:23:14 +01:00
Michael Hansen 901457e7aa Bump intents and add HassRespond test (#129830) 2024-11-05 22:22:49 +01:00
Robert Resch 89a9c2ec24 Disable uv cache (#129912) 2024-11-05 22:18:41 +01:00
Joost Lekkerkerker 9e04457472 Bump spotifyaio to 0.8.4 (#129899) 2024-11-05 21:04:58 +01:00
Ville Skyttä 6ecdbb677f Bump huawei-lte-api to 1.10.0 (#129911) 2024-11-05 21:03:26 +01:00
G Johansson 79de1d9ed4 Bump holidays to 0.60 (#129909) 2024-11-05 20:26:22 +01:00
Paul Bottein 7fefa5c235 Update frontend to 20241105.0 (#129906) 2024-11-05 20:25:15 +01:00
Brett Adams 94db78a0be Add signing support to Tesla Fleet (#128407)
* Add command signing

* wip

* Update tests

* requirements

* Add test
2024-11-05 20:04:55 +01:00
Diogo Gomes 83a1b06b56 Set friendly name of utility meter select entity when configured through YAML (#128267)
* set select friendly name in YAML

* backward compatibility added

* clean

* cleaner backward compatibility approach

* don't introduce default unique_id

* split test according to review
2024-11-05 19:59:43 +01:00
epenet 1e42a38473 Remove usage of options property in OptionsFlow (part 2) (#129897) 2024-11-05 19:53:05 +01:00
epenet c54ed53a81 Remove usage of options property in OptionsFlow (part 1) (#129895)
* Remove usage of options property in OptionsFlow

* Improve
2024-11-05 19:51:20 +01:00
Manu 611a952232 Prevent update entity becoming unavailable on device disconnect in IronOS (#129840)
* Don't render update entity unavailable when Pinecil device disconnects

* fixes
2024-11-05 18:39:10 +01:00
Erik Montnemery 05e76105ad Improve improv BLE error handling (#129902) 2024-11-05 11:12:05 -05:00
Paulus Schoutsen ed56e5d631 Change Ollama default to llama3.2 (#129901) 2024-11-05 17:02:44 +01:00
Manu 9253fa4471 Add binary sensor platform to Habitica integration (#129613)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-05 17:01:38 +01:00
Joost Lekkerkerker 5f36062ef3 Remove timers from LG ThinQ (#129898) 2024-11-05 16:32:05 +01:00
Erik Montnemery e562b6f42b Map go2rtc log levels to Python log levels (#129894) 2024-11-05 15:57:33 +01:00
dotvav b76a94bd42 Bump pypalazzetti to 0.1.10 (#129832) 2024-11-05 15:34:25 +01:00
Joost Lekkerkerker 4e11ff05de Use default package for yt-dlp (#129886) 2024-11-05 15:23:41 +01:00
J. Diego Rodríguez Royo 080e3d7a42 Removed stale translation and improved set_setting translation at Home Connect (#129878) 2024-11-05 15:17:03 +01:00
Michael Hansen 69e3348cd7 Use different VAD thresholds for before and during voice command (#129848)
* Use two VAD thresholds

* Fix VoiceActivityTimeout class

* Update homeassistant/components/assist_pipeline/audio_enhancer.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-05 08:01:45 -06:00
Alexandre CUER 6caa4baa00 Fix missing translation string in emoncms (#129859) 2024-11-05 14:58:25 +01:00
Robert Resch 4729b19dc6 Skip adding providers if the camera has native WebRTC (#129808)
* Skip adding providers if the camera has native WebRTC

* Update homeassistant/components/camera/__init__.py

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

* Implement suggestion

* Add tests

* Shorten test name

* Fix test

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-05 14:44:37 +01:00
Richard Kroegel 8abbc4abbc Bump bimmer_connected to 0.16.4 (#129838) 2024-11-05 14:13:48 +01:00
Erik Montnemery 3a667bce8c Log go2rtc output with warning level on error (#129882) 2024-11-05 14:05:04 +01:00
starkillerOG 4c86102daf Add Reolink PTZ tilt position sensor (#129837) 2024-11-05 13:39:45 +01:00
Karl Beecken 15bf652f37 Bump python-tado to 0.17.7 (#129842) 2024-11-05 12:30:48 +01:00
Robert Resch eafed2b86c Append a 1 to all go2rtc ports to avoid port conflicts (#129881) 2024-11-05 12:29:51 +01:00
epenet 79901cede9 Drop initialize_options helper from OptionsFlow (#129870) 2024-11-05 12:02:33 +01:00
tdfountain 27dc82d7d0 Add device model ID if provided by NUT (#124189)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-05 11:57:00 +01:00
Mike Degatano ae37c8cc7a Add repair for add-on boot fail (#129847) 2024-11-05 11:53:01 +01:00
Kunal Aggarwal 5eadfcc524 Adding new on values for Tuya Presence Detection Sensor (#129801) 2024-11-05 11:52:38 +01:00
Manu 5fd1e23255 Bump pynecil to 0.2.1 (#129843) 2024-11-05 11:52:11 +01:00
Teemu R. 72bcc6702f Add child lock for tplink thermostats (#129649) 2024-11-05 11:14:53 +01:00
Erik Montnemery 8889464e04 Validate go2rtc server version (#129810) 2024-11-05 11:09:10 +01:00
G Johansson af58b0c3b7 Add reconfigure flow to yale_smart_alarm (#129536) 2024-11-05 11:05:20 +01:00
epenet e9e20229a3 Drop use of initialize_options in androidtv_remote (#129855) 2024-11-05 10:57:03 +01:00
Alex Bush 80ff6dc618 Bump pyfibaro to 0.8.0 (#129846) 2024-11-05 10:56:34 +01:00
epenet fa30100160 Fix flaky tests in device_sun_light_trigger (#129871) 2024-11-05 10:55:40 +01:00
epenet e6c20333b3 Remove dead code in translation checks (#129875) 2024-11-05 10:47:37 +01:00
Joakim Sørensen 3858400a6f Bump hass-nabucasa from 0.83.0 to 0.84.0 (#129873) 2024-11-05 10:10:23 +01:00
epenet 95eefbac20 Drop use of initialize_options in androidtv (#129854)
* Drop use of initialize_options in androidtv

* Initialize instance attribute in init method

* Adjust
2024-11-05 09:01:29 +01:00
epenet e1e731eb48 Drop use of initialize_options in onkyo (#129869)
* Drop use of initialize_options in onkyo

* Apply suggestions from code review

Co-authored-by: Artur Pragacz <49985303+arturpragacz@users.noreply.github.com>

---------

Co-authored-by: Artur Pragacz <49985303+arturpragacz@users.noreply.github.com>
2024-11-05 08:56:58 +01:00
Michael Arthur f7ce4ff25c Update snapshot for lg thinq (#129856)
update snapshot for lg thinq

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-05 08:15:42 +01:00
Artur Pragacz 617e87e02c Fix source mapping in Onkyo (#129716)
* Fix source mapping

* Fix copy paste
2024-11-04 21:56:47 -05:00
starkillerOG dafd54ba2b Bump reolink-aio to 0.10.3 (#129841) 2024-11-04 21:34:40 -05:00
J. Nick Koston e8c3539709 Disable SRTP for unifiprotect RTSPS stream (#129852) 2024-11-04 16:13:52 -06:00
J. Nick Koston e5263dc0c8 Bump uiprotect to 6.4.0 (#129851) 2024-11-04 15:43:22 -06:00
J. Nick Koston 3584c710b9 Fix unifiprotect supported features being set too late (#129850) 2024-11-04 15:13:56 -06:00
G Johansson 0b56ef5699 Fix translation in ovo energy (#129833) 2024-11-04 19:57:49 +01:00
G Johansson 90bd9bb626 Fix translations in hydrawise (#129834) 2024-11-04 19:57:00 +01:00
Bram Kragten 7863927c3a Update frontend to 20241104.0 (#129829) 2024-11-04 19:39:46 +01:00
G Johansson 9fcf757021 Fix translations in landisgyr (#129831) 2024-11-04 19:35:35 +01:00
epenet fc0547ccdf Pass the config entry explicitly in aemet coordinator (#128097) 2024-11-04 19:23:48 +01:00
Joost Lekkerkerker 22f8f117fb Add basic testing framework to LG ThinQ (#127785)
Co-authored-by: jangwon.lee <jangwon.lee@lge.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
Co-authored-by: YunseonPark-LGE <34848373+YunseonPark-LGE@users.noreply.github.com>
Co-authored-by: LG-ThinQ-Integration <LG-ThinQ-Integration@lge.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-11-04 19:22:12 +01:00
epenet 2052579efc Set config_entry explicitly in todoist coordinator (#129421) 2024-11-04 19:18:36 +01:00
epenet b8f2583bc3 Set config_entry explicitly in caldav coordinator (#129424) 2024-11-04 19:17:53 +01:00
epenet 6323a078e1 Set config_entry explicitly in wled coordinator (#129425) 2024-11-04 19:17:07 +01:00
G Johansson ca0be3ec8a Use coordinator async_setup in vizio (#129450) 2024-11-04 19:16:22 +01:00
epenet 91157c21ef Reapply "Fix unused snapshots not triggering failure in CI" (#129311) 2024-11-04 18:59:27 +01:00
epenet cc4fae10f5 Cleanup deprecated OptionsFlowWithConfigEntry (part 2) (#129754) 2024-11-04 18:55:49 +01:00
epenet d180ff417d Cleanup deprecated OptionsFlowWithConfigEntry (part 3) (#129756) 2024-11-04 18:55:01 +01:00
epenet 8870b657d1 Use new helper properties in hyperion options flow (#129777) 2024-11-04 18:54:22 +01:00
epenet 81735b7b47 Use new helper properties in konnected options flow (#129778) 2024-11-04 18:50:00 +01:00
Marc Mueller 7fd261347b Update charset-normalizer to 3.4.0 (#129821) 2024-11-04 18:49:19 +01:00
Robert Resch df796d432e Remove all ice_servers on native sync WebRTC cameras (#129819) 2024-11-04 18:41:37 +01:00
Steven B. f6e36615d6 Bump python-kasa to 0.7.7 (#129817)
Bump tplink dependency python-kasa to 0.7.7
2024-11-04 18:39:39 +01:00
Noah Husby 0278735dbf Use translated errors in Russound RIO (#129820) 2024-11-04 18:07:11 +01:00
tdfountain 9c8d8fef16 Suggest area for NUT based on device location (#129770) 2024-11-04 18:06:45 +01:00
G Johansson 6897b24c10 Fix translations in homeworks (#129824) 2024-11-04 18:03:37 +01:00
G Johansson a2a3f59e65 Fix missing translation in jewish_calendar (#129822) 2024-11-04 18:01:39 +01:00
G Johansson 2626a74840 Fix translations in honeywell (#129823) 2024-11-04 18:00:31 +01:00
Paulus Schoutsen 689260f581 Fix ESPHome dashboard check (#129812) 2024-11-04 17:37:14 +01:00
G Johansson f1a2c8be4b Stop recording of non-changing attributes in threshold (#129541) 2024-11-04 17:36:25 +01:00
epenet 0579d565dd Fix incorrect description placeholders in azure event hub (#129803) 2024-11-04 17:35:47 +01:00
Max Muth f141f5f908 Update codeowners of Fritz integration (#129595)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-04 17:26:12 +01:00
Antoine Reversat 0c25252d9f Bump ayla-iot-unofficial to 1.4.3 (#129743)
Upgrade to ayla-iot-unofficial v1.4.3
2024-11-04 17:20:15 +01:00
Jake Martin 400b377aa8 Bump monzopy to 1.4.2 (#129726)
* Bump monzopy to 1.4.0

* Bump to 1.4.2

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-04 16:55:02 +01:00
Manu a5f3c434e0 Improve exceptions in habitica cast skill action (#129603)
* Raise a different exception when entry not loaded

* adjust type hints

* move `get_config_entry` to services module
2024-11-04 16:46:38 +01:00
epenet 365f8046ac Use new helper properties in yeelight options flow (#129791) 2024-11-04 16:09:50 +01:00
Erik Montnemery 4ac35d40cd Fix create flow logic for single config entry integrations (#129807)
* Fix create flow logic for single config entry integrations

* Adjust MQTT test
2024-11-04 15:45:29 +01:00
J. Nick Koston 7691991a93 Small cleanups to the websocket command phase (#129712)
* Small cleanups to the websocket command phase

- Remove unused argument
- Avoid multiple NamedTuple property lookups

* Update homeassistant/components/websocket_api/http.py

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

* Apply suggestions from code review

* touch ups

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-11-04 15:33:15 +01:00
Willem-Jan van Rootselaar d0c45b1857 Bump python-bsblan to 1.2.1 (#129635)
* Bump python-bsblan dependency to version 1.1.0

* Bump python-bsblan dependency to version 1.2.0

* Bump python-bsblan dependency to version 1.2.1

* Update test diagnostics snapshots to use numeric values and add error handling
2024-11-04 15:31:44 +01:00
Joost Lekkerkerker 02750452df Update Spotify state after mutation (#129607) 2024-11-04 15:01:37 +01:00
Marc Mueller 41a81cbf15 Switch back to av 13.1.0 (#129699) 2024-11-04 14:48:28 +01:00
Andre Lengwenus ff621d5bf3 Bump lcn-frontend to 0.2.1 (#129457) 2024-11-04 14:45:20 +01:00
epenet 6d561a9796 Remove deprecated property setters in option flows (#129773) 2024-11-04 14:21:26 +01:00
Erik Montnemery 4784199038 Fix aborting flows for single config entry integrations (#129805) 2024-11-04 13:59:10 +01:00
Robert Resch df35c8e707 Update go2rtc stream if stream_source is not matching (#129804) 2024-11-04 13:58:12 +01:00
Erik Montnemery 57eeaf1f75 Add watchdog to monitor and respawn go2rtc server (#129497) 2024-11-04 13:42:42 +01:00
Joakim Sørensen 3cadc1796f Use JSON as format for .HA_RESTORE (#129792)
* Use JSON as format for .HA_RESTORE

* Adjust bakup manager test
2024-11-04 13:07:11 +01:00
Joost Lekkerkerker ae06f734ce Improve error handling in Spotify (#129799) 2024-11-04 12:34:00 +01:00
Erik Montnemery 08a53362a7 Fix stringification of discovered hassio uuid (#129797) 2024-11-04 12:26:34 +01:00
jb101010-2 274c928ec0 Add coordinator to suez_water (#129242)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-11-04 12:18:12 +01:00
Robert Resch d75dda0c05 Use RTCIceCandidate instead of str for candidate (#129793) 2024-11-04 10:38:27 +01:00
Joost Lekkerkerker 0c40fcdaeb Bump yt-dlp to 2024.11.04 (#129794) 2024-11-04 10:33:08 +01:00
G Johansson 0a1ba8a4a3 Small code quality improvement/cleanup in random (#129542) 2024-11-04 09:52:35 +01:00
epenet 018acc0a3c Use new helper properties in crownstone options flow (#129774) 2024-11-04 09:43:25 +01:00
epenet 3a293c6bc4 Use new helper properties in dsmr options flow (#129775) 2024-11-04 09:43:10 +01:00
epenet 9155d56190 Use new helper properties in flux_led options flow (#129776) 2024-11-04 09:42:58 +01:00
epenet 461dc13da9 Use new helper properties in motioneye options flow (#129780) 2024-11-04 09:40:13 +01:00
epenet b48e2127b8 Use new helper properties in plaato options flow (#129782) 2024-11-04 09:39:56 +01:00
epenet 11ab992dbb Use new helper properties in recollect_waste options flow (#129783) 2024-11-04 09:39:41 +01:00
epenet 4be2cdf90a Use new helper properties in steam_online options flow (#129785) 2024-11-04 09:39:27 +01:00
epenet cdd5cb2876 Use new helper properties in tomorrowio options flow (#129787) 2024-11-04 09:39:13 +01:00
epenet cdc67aa891 Use new helper properties in verisure options flow (#129788) 2024-11-04 09:38:41 +01:00
epenet 6a22a2b867 Use new helper properties in watttime options flow (#129789) 2024-11-04 09:38:24 +01:00
epenet 0883b23d0c Use new helper properties in yalexs_ble options flow (#129790) 2024-11-04 09:38:11 +01:00
epenet 595459bfda Use new helper properties in rfxtrx options flow (#129784) 2024-11-04 09:34:20 +01:00
Ståle Storø Hauknes 7ab8ff56b3 Bump Airthings BLE to 0.9.2 (#129659)
Bump airthings ble
2024-11-04 08:11:18 +01:00
Nathan Spencer eda36512ec Change alexa arm handler to allow switching arm states unless in armed_away mode (#129701)
* Change alexa arm handler to allow switching arm states unless in armed_away mode

* Address PR comments
2024-11-04 07:49:48 +01:00
LG-ThinQ-Integration 04aee812f8 Bump thinqconnect to 1.0.0 (#129769)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
2024-11-04 07:17:50 +01:00
Allen Porter 6718cce203 Fix nest streams broken due to CameraCapabilities change (#129711)
* Fix nest streams broken due to CameraCapabilities change

* Fix stream cleanup

* Apply suggestions from code review

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

* Update homeassistant/components/nest/camera.py

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-11-03 20:45:09 -08:00
Bouwe Westerdijk 49f0bb6990 Bump plugwise to v1.5.0 (#129668)
* Bump plugwise to v1.5.0

* And adapt
2024-11-03 23:30:21 -05:00
Simon Lamon 38afcbb21f Bump python-linkplay to 0.0.17 (#129683) 2024-11-03 22:56:45 -05:00
Jesse Hills 87ab2beddf Only set ESPHome configuration url to addon if there is an existing configuration for the device (#129356)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-11-03 18:16:49 -06:00
tdfountain a05a34239d Show NUT device serial number if provided in Device Info (#124168) 2024-11-03 17:27:27 -06:00
epenet f11aba9648 Fix flaky tests in advantage_air (#129758) 2024-11-03 17:25:37 -06:00
Michael Hansen c2ef119e50 Add HassRespond intent (#129755)
* Add HassHello intent

* Rename to HassRespond

* LLM's ignore HassRespond intent
2024-11-03 16:38:52 -06:00
epenet 8b6c99776e Cleanup unnecessary OptionsFlowWithConfigEntry (part 1) (#129752)
* Cleanup unnecessary OptionsFlowWithConfigEntry

* Fix emoncms

* Fix imap

* Fix met

* Fix workday
2024-11-03 22:57:18 +01:00
Joost Lekkerkerker 463bffaeb6 Bump spotifyaio to 0.8.3 (#129729) 2024-11-03 21:55:12 +01:00
hahn-th 0cfd8032c0 Add Measurement StateClass to HomematicIP Cloud Wind and Rain Sensor (#129724)
Add Meassurement StateClass to Wind and Rain Sensor
2024-11-03 21:07:59 +01:00
Luca Angemi 144d5ff0cc Add state class to precipitation_intensity in Aemet (#129670)
Update sensor.py
2024-11-03 21:06:46 +01:00
G Johansson ab5c65b08c Improve code quality in yale_smart_alarm options flow (#129531)
* Improve code quality in yale_smart_alarm options flow

* mods

* Fix
2024-11-03 21:04:53 +01:00
Josef Zweck 6b33bf3961 Add missing translation string to lamarzocco (#129713)
* add missing translation string

* Update strings.json

* import pytest again
2024-11-03 20:56:08 +01:00
epenet 89eb395e2d Add OptionsFlow helper for a mutable copy of the config entry options (#129718)
* Add OptionsFlow helper for a mutable copy of the config entry options

* Add tests

* Improve coverage

* error_if_core=False

* Adjust report

* Avoid mutli-line ternary
2024-11-03 20:37:58 +01:00
G Johansson d671d48869 Small cleanup mold_indicator (#129736) 2024-11-03 19:17:37 +01:00
J. Nick Koston ed582fae91 Bump HAP-python to 4.9.2 (#129715) 2024-11-03 11:27:57 -06:00
Manu 4d5c3ee0aa Bump bring-api to 0.9.1 (#129702) 2024-11-03 10:46:16 -06:00
epenet 02046fcdb4 Fix advantage_air CI failure (#129735) 2024-11-03 17:29:33 +01:00
Josef Zweck fbe27749a0 Correct length of the serials in lamarzocco tests (#129725) 2024-11-03 13:35:42 +01:00
Josef Zweck eddab96a69 Add DHCP discovery to lamarzocco (#129675)
* Add DHCP discovery to lamarzocco

* ensure serial is upper

* shorten pattern

* parametrize across models
2024-11-03 09:44:35 +01:00
J. Nick Koston ed3376352d Bump DoorBirdPy to 3.0.8 (#129709) 2024-11-02 22:43:21 -05:00
J. Nick Koston dfbb763031 Disable cleanup_closed on python 3.12.7+ and 3.13.1+ (#129645) 2024-11-02 22:15:56 -05:00
Marc Mueller 5cf13d9273 Additional stream typing improvements (#129695) 2024-11-02 22:22:31 +01:00
Erik Montnemery e18ffc53f2 Revert "Create a script service schema based on fields" (#129591) 2024-11-02 20:39:17 +01:00
Marc Mueller 0eea3176d6 Minor stream typing improvements (#129691) 2024-11-02 19:29:09 +01:00
Marc Mueller 4f20977a8e Update mypy-dev to 1.14.0a2 (#129625) 2024-11-02 19:15:50 +01:00
Marc Mueller 5bd63bb56b Replace AVError with FFmpegError (#129689) 2024-11-02 19:14:59 +01:00
Marc Mueller f7103da818 Refactor av.open calls to support type annotations (#129688) 2024-11-02 19:03:32 +01:00
Klaas Schoute bf4922a7ef Bump autarco lib to v3.1.0 (#129684)
Bump autarco to v3.1.0
2024-11-02 18:42:56 +01:00
J. Nick Koston 6f7eac5c6d Bump sensorpush-ble to 1.7.1 (#129657) 2024-11-02 12:26:31 -05:00
epenet d6e73a89f3 Cleanup unnecessary __init__ method in OptionsFlow (#129651)
* Cleanup unnecessary init step in OptionsFlow

* Increase coverage
2024-11-02 18:15:41 +01:00
Sid 269aefd405 Bump ruff to 0.7.2 (#129669) 2024-11-02 11:29:08 +01:00
J. Nick Koston a6865f1639 Bump aiohomekit to 3.2.6 (#129640) 2024-11-01 14:01:33 -05:00
J. Nick Koston f55aa0b86e Bump aioesphomeapi to 27.0.1 (#129643) 2024-11-01 13:16:15 -05:00
Joost Lekkerkerker 02b34f05aa Bump spotifyaio to 0.8.2 (#129639) 2024-11-01 18:25:26 +01:00
Joost Lekkerkerker 37f42707e5 Fix Geniushub setup (#129569) 2024-11-01 17:33:39 +01:00
Robert Resch 17f3ba1434 Bump webrtc-models to 0.2.0 (#129627) 2024-11-01 17:24:44 +01:00
Joakim Sørensen 31dcc25ba5 Add handler to restore a backup file with the backup integration (#128365)
* Early pushout of restore handling for core/container

* Adjust after rebase

* Move logging definition, we should only do this if we go ahead with the restore

* First round

* More paths

* Add async_restore_backup to base class

* Block restore of new backup files

* manager tests

* Add websocket test

* Add testing to main

* Add coverage for missing backup file

* Catch FileNotFoundError instead

* Patch Path.read_text instead

* Remove HA_RESTORE from keep

* Use secure paths

* Fix restart test

* extend coverage

* Mock argv

* Adjustments
2024-11-01 16:25:22 +01:00
Joost Lekkerkerker 4da93f6a5e Bump spotifyaio to 0.8.1 (#129573) 2024-11-01 15:12:15 +01:00
Marc Mueller 5ed7d32749 Remove unnecessary asyncio EventLoopPolicy init_watcher backport (#129628) 2024-11-01 13:44:49 +01:00
epenet ab5b9dbdc9 Add OptionsFlow helpers to get the current config entry (#129562)
* Add OptionsFlow helpers to get the current config entry

* Add tests

* Improve

* Add ValueError to indicate that the config entry is not available in `__init__` method

* Use a property

* Update config_entries.py

* Update config_entries.py

* Update config_entries.py

* Add a property setter for compatibility

* Add report

* Update config_flow.py

* Add tests

* Update test_config_entries.py
2024-11-01 12:54:35 +01:00
Marco 3b28bf07d1 Add boost switch to Smarty (#129466) 2024-11-01 11:08:55 +01:00
epenet b626c9b450 Ensure entry_id is set on reauth/reconfigure flows (#129319)
* Ensure entry_id is set on reauth/reconfigure flows

* Improve

* Improve

* Use report helper

* Adjust deprecation date

* Update config_entries.py

* Improve message and adjust tests

* Apply suggestions from code review

Co-authored-by: G Johansson <goran.johansson@shiftit.se>

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-11-01 10:29:58 +01:00
Willem-Jan van Rootselaar 5430eca93e Bump python-bsblan to 1.0.0 (#129617) 2024-11-01 10:23:30 +01:00
epenet b41c477f44 Fix flaky camera test (#129576) 2024-11-01 10:15:20 +01:00
Robert Resch 5900413c08 Add zwave_js node_capabilities and invoke_cc_api websocket commands (#125327)
* Add zwave_js node_capabilities and invoke_cc_api websocket commands

* Map isSecure to is_secure

* Add tests

* Add error handling

* fix

* Use to_dict function

* Make response compatible with current expectations

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-11-01 00:32:01 +01:00
Marc Mueller c2ceab741f Remove unnecessary husqvarna_automower_ble test fixture (#129577) 2024-11-01 00:00:52 +01:00
J. Nick Koston 45ff4940eb Pin async-timeout to 4.0.3 (#129592) 2024-10-31 16:18:31 -05:00
Robert Resch 9c8a15cb64 Add go2rtc debug_ui yaml key to enable go2rtc ui (#129587)
* Add go2rtc debug_ui yaml key to enable go2rtc ui

* Apply suggestions from code review

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

* Order imports

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-10-31 20:56:53 +01:00
Erik Montnemery b09e54c961 Bump aiohasupervisor to version 0.2.1 (#129574) 2024-10-31 19:37:31 +01:00
Steven B. f44b7e202a Check for async web offer overrides in camera capabilities (#129519) 2024-10-31 18:57:40 +01:00
Joost Lekkerkerker 0f535e979f Bump aiowithings to 3.1.1 (#129586) 2024-10-31 18:28:53 +01:00
G Johansson 4c2c01b4f6 Use shorthand attribute for native_value in mold_indicator (#129538) 2024-10-31 17:40:14 +01:00
G Johansson b1d48fe9a2 Use class attributes in Times of Day (#129543)
* mypy ignore assignment in Times of Day so we can drop all type checking

* class attributes
2024-10-31 17:37:33 +01:00
Paul Bottein b1dfc3cd23 Update frontend to 20241031.0 (#129583) 2024-10-31 16:35:36 +01:00
epenet 696efe349e Log type as well as value for unique_id checks (#129575) 2024-10-31 15:10:27 +01:00
Jan Bouwhuis 6a32722acc Fix current temperature calculation for incomfort boiler (#129496) 2024-10-31 14:57:09 +01:00
Erik Montnemery 8eaec56c6b Stringify discovered hassio uuid (#129572)
* Stringify discovered hassio uuid

* Correct DiscoveryKey

* Adjust tests
2024-10-31 13:54:27 +01:00
Thomas55555 60d3c9342d Fix flakey test in Husqvarna Automower (#129571) 2024-10-31 13:20:59 +01:00
TheJulianJES 2bd5039f28 Fix capitalization in Philips Hue strings (#129552) 2024-10-31 10:04:51 +01:00
G Johansson 8b1b14a704 Missing config_flow in manifest for local_file (#129529) 2024-10-31 09:50:32 +01:00
starkillerOG 5e674ce1d0 Log Reolink select value KeyError only once (#129559) 2024-10-31 09:49:27 +01:00
Brett Adams 3656bcf752 Fix "home" route in Tesla Fleet & Teslemetry (#129546)
* translate Home to home

* refactor for mypy

* Fix home state

* Revert key change

* Add testing
2024-10-31 08:56:03 +01:00
J. Nick Koston 39093fc2bc Bump yarl to 1.17.1 (#129539)
changelog: https://github.com/aio-libs/yarl/compare/v1.17.0...v1.17.1
2024-10-30 23:56:29 +01:00
Teemu R. efa5838be4 Add last alert timestamp for tplink waterleak (#128644)
* Add last alert timestamp for tplink waterleak

* Fix snapshot
2024-10-30 23:25:30 +01:00
Erik Montnemery 1c6ad2fa66 Allow importing homeassistant.core.Config until 2025.11 (#129537) 2024-10-30 22:56:59 +01:00
starkillerOG af144e1b77 Bump reolink_aio to 0.10.2 (#129528) 2024-10-30 23:24:07 +02:00
Luca Angemi b451bfed81 Fix bthome UnitOfConductivity (#129535)
Fix unit
2024-10-30 23:22:17 +02:00
G Johansson 3e32c50936 Fix async_config_entry_first_refresh used after config entry is loaded in speedtestdotcom (#129527)
* Fix async_config_entry_first_refresh used after config entry is loaded in speedtestdotcom

* is
2024-10-30 21:17:03 +01:00
Bram Kragten 208b15637a Bump version to 2024.12 (#129525) 2024-10-30 20:59:56 +01:00
Marcel van der Veldt c958cce769 Bump Music Assistant Client library to 1.0.5 (#129518) 2024-10-30 19:34:43 +01:00
epenet 602ec54579 Set config_entry explicitly to None in relevant components (#129427)
Set config_entry explicitly to None in components
2024-10-30 19:32:10 +01:00
cryptk fa2bfc5d9d Bump uiprotect to 6.3.2 (#129513) 2024-10-30 18:43:34 +01:00
Aurore 94f906b34c Fix timeout issue on Roomba integration when adding a new device (#129230)
* Update const.py

DEFAULT_DELAY = 1 to DEFAULT_DELAY = 100 to fix timeout when adding a new device

* Update config_flow.py

continuous=False to continuous=True to fix timeout when adding a new device

* Update homeassistant/components/roomba/const.py

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

* Update test_config_flow.py

Change CONF_DELAY to match DEFAULT_DELAY (30 sec instead of 1)

* Update tests/components/roomba/test_config_flow.py

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

* Use constant for DEFAULT_DELAY in tests

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: jbouwh <jan@jbsoft.nl>
2024-10-30 18:41:10 +01:00
2206 changed files with 59196 additions and 16537 deletions
+1
View File
@@ -79,6 +79,7 @@ components: &components
- homeassistant/components/group/**
- homeassistant/components/hassio/**
- homeassistant/components/homeassistant/**
- homeassistant/components/homeassistant_hardware/**
- homeassistant/components/http/**
- homeassistant/components/image/**
- homeassistant/components/input_boolean/**
+4 -4
View File
@@ -10,7 +10,7 @@ on:
env:
BUILD_TYPE: core
DEFAULT_PYTHON: "3.12"
DEFAULT_PYTHON: "3.13"
PIP_TIMEOUT: 60
UV_HTTP_TIMEOUT: 60
UV_SYSTEM_PYTHON: "true"
@@ -509,7 +509,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Docker image
uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 # v6.9.0
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6.10.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@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 # v6.9.0
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355 # v6.10.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@1c608d11d69870c2092266b3f9a6f3abbf17002c # v1.4.3
uses: actions/attest-build-provenance@ef244123eb79f2f7a7e75d99086184180e6d0018 # v1.4.4
with:
subject-name: ${{ env.HASSFEST_IMAGE_NAME }}
subject-digest: ${{ steps.push.outputs.digest }}
+16 -18
View File
@@ -40,9 +40,9 @@ env:
CACHE_VERSION: 11
UV_CACHE_VERSION: 1
MYPY_CACHE_VERSION: 9
HA_SHORT_VERSION: "2024.11"
HA_SHORT_VERSION: "2024.12"
DEFAULT_PYTHON: "3.12"
ALL_PYTHON_VERSIONS: "['3.12']"
ALL_PYTHON_VERSIONS: "['3.12', '3.13']"
# 10.3 is the oldest supported version
# - 10.3.32 is the version currently shipped with Synology (as of 17 Feb 2022)
# 10.6 is the current long-term-support
@@ -622,13 +622,13 @@ jobs:
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.3.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.1.2
with:
@@ -819,11 +819,7 @@ jobs:
needs:
- info
- base
strategy:
fail-fast: false
matrix:
python-version: ${{ fromJson(needs.info.outputs.python_versions) }}
name: Split tests for full run Python ${{ matrix.python-version }}
name: Split tests for full run
steps:
- name: Install additional OS dependencies
run: |
@@ -836,11 +832,11 @@ jobs:
libgammu-dev
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
- name: Set up Python ${{ matrix.python-version }}
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.3.0
with:
python-version: ${{ matrix.python-version }}
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
@@ -858,7 +854,7 @@ jobs:
- name: Upload pytest_buckets
uses: actions/upload-artifact@v4.4.3
with:
name: pytest_buckets-${{ matrix.python-version }}
name: pytest_buckets
path: pytest_buckets.txt
overwrite: true
@@ -923,7 +919,7 @@ jobs:
- name: Download pytest_buckets
uses: actions/download-artifact@v4.1.8
with:
name: pytest_buckets-${{ matrix.python-version }}
name: pytest_buckets
- name: Compile English translations
run: |
. venv/bin/activate
@@ -949,6 +945,7 @@ jobs:
--timeout=9 \
--durations=10 \
--numprocesses auto \
--snapshot-details \
--dist=loadfile \
${cov_params[@]} \
-o console_output_style=count \
@@ -1071,6 +1068,7 @@ jobs:
-qq \
--timeout=20 \
--numprocesses 1 \
--snapshot-details \
${cov_params[@]} \
-o console_output_style=count \
--durations=10 \
@@ -1199,6 +1197,7 @@ jobs:
-qq \
--timeout=9 \
--numprocesses 1 \
--snapshot-details \
${cov_params[@]} \
-o console_output_style=count \
--durations=0 \
@@ -1249,12 +1248,11 @@ jobs:
pattern: coverage-*
- name: Upload coverage to Codecov
if: needs.info.outputs.test_full_suite == 'true'
uses: codecov/codecov-action@v4.6.0
uses: codecov/codecov-action@v5.0.7
with:
fail_ci_if_error: true
flags: full-suite
token: ${{ secrets.CODECOV_TOKEN }}
version: v0.6.0
pytest-partial:
runs-on: ubuntu-24.04
@@ -1345,6 +1343,7 @@ jobs:
-qq \
--timeout=9 \
--numprocesses auto \
--snapshot-details \
${cov_params[@]} \
-o console_output_style=count \
--durations=0 \
@@ -1387,8 +1386,7 @@ jobs:
pattern: coverage-*
- name: Upload coverage to Codecov
if: needs.info.outputs.test_full_suite == 'false'
uses: codecov/codecov-action@v4.6.0
uses: codecov/codecov-action@v5.0.7
with:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
version: v0.6.0
+2 -2
View File
@@ -24,11 +24,11 @@ jobs:
uses: actions/checkout@v4.2.2
- name: Initialize CodeQL
uses: github/codeql-action/init@v3.27.0
uses: github/codeql-action/init@v3.27.5
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.27.0
uses: github/codeql-action/analyze@v3.27.5
with:
category: "/language:python"
+17 -15
View File
@@ -112,7 +112,7 @@ jobs:
strategy:
fail-fast: false
matrix:
abi: ["cp312"]
abi: ["cp312", "cp313"]
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
@@ -135,15 +135,15 @@ jobs:
sed -i "/uv/d" requirements_diff.txt
- name: Build wheels
uses: home-assistant/wheels@2024.07.1
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: "libffi-dev;openssl-dev;yaml-dev;nasm"
skip-binary: aiohttp;multidict;yarl
apk: "libffi-dev;openssl-dev;yaml-dev;nasm;zlib-dev"
skip-binary: aiohttp;multidict;propcache;yarl;SQLAlchemy
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements.txt"
@@ -156,7 +156,7 @@ jobs:
strategy:
fail-fast: false
matrix:
abi: ["cp312"]
abi: ["cp312", "cp313"]
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
@@ -198,6 +198,7 @@ jobs:
split -l $(expr $(expr $(cat requirements_all.txt | wc -l) + 1) / 3) requirements_all_wheels_${{ matrix.arch }}.txt requirements_all.txt
- name: Create requirements for cython<3
if: matrix.abi == 'cp312'
run: |
# Some dependencies still require 'cython<3'
# and don't yet use isolated build environments.
@@ -208,7 +209,8 @@ jobs:
cat homeassistant/package_constraints.txt | grep 'pydantic==' >> requirements_old-cython.txt
- name: Build wheels (old cython)
uses: home-assistant/wheels@2024.07.1
uses: home-assistant/wheels@2024.11.0
if: matrix.abi == 'cp312'
with:
abi: ${{ matrix.abi }}
tag: musllinux_1_2
@@ -223,43 +225,43 @@ jobs:
pip: "'cython<3'"
- name: Build wheels (part 1)
uses: home-assistant/wheels@2024.07.1
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"
skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;propcache;protobuf;pydantic;pymicro-vad;yarl
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-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.txtaa"
- name: Build wheels (part 2)
uses: home-assistant/wheels@2024.07.1
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"
skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;propcache;protobuf;pydantic;pymicro-vad;yarl
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-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.07.1
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"
skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;propcache;protobuf;pydantic;pymicro-vad;yarl
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-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"
+3 -3
View File
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.7.1
rev: v0.8.0
hooks:
- id: ruff
args:
@@ -18,7 +18,7 @@ repos:
exclude_types: [csv, json, html]
exclude: ^tests/fixtures/|homeassistant/generated/|tests/components/.*/snapshots/
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v5.0.0
hooks:
- id: check-executables-have-shebangs
stages: [manual]
@@ -83,7 +83,7 @@ repos:
pass_filenames: false
language: script
types: [text]
files: ^(homeassistant/.+/(icons|manifest|strings)\.json|homeassistant/brands/.*\.json|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py|requirements.+\.txt)$
files: ^(homeassistant/.+/(icons|manifest|strings)\.json|homeassistant/.+/(quality_scale)\.yaml|homeassistant/brands/.*\.json|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py|requirements.+\.txt)$
- id: hassfest-metadata
name: hassfest-metadata
entry: script/run-in-env.sh python3 -m script.hassfest -p metadata,docker
+5
View File
@@ -324,11 +324,13 @@ homeassistant.components.moon.*
homeassistant.components.mopeka.*
homeassistant.components.motionmount.*
homeassistant.components.mqtt.*
homeassistant.components.music_assistant.*
homeassistant.components.my.*
homeassistant.components.mysensors.*
homeassistant.components.myuplink.*
homeassistant.components.nam.*
homeassistant.components.nanoleaf.*
homeassistant.components.nasweb.*
homeassistant.components.neato.*
homeassistant.components.nest.*
homeassistant.components.netatmo.*
@@ -338,6 +340,7 @@ homeassistant.components.nfandroidtv.*
homeassistant.components.nightscout.*
homeassistant.components.nissan_leaf.*
homeassistant.components.no_ip.*
homeassistant.components.nordpool.*
homeassistant.components.notify.*
homeassistant.components.notion.*
homeassistant.components.number.*
@@ -382,6 +385,7 @@ homeassistant.components.recollect_waste.*
homeassistant.components.recorder.*
homeassistant.components.remote.*
homeassistant.components.renault.*
homeassistant.components.reolink.*
homeassistant.components.repairs.*
homeassistant.components.rest.*
homeassistant.components.rest_command.*
@@ -434,6 +438,7 @@ homeassistant.components.starlink.*
homeassistant.components.statistics.*
homeassistant.components.steamist.*
homeassistant.components.stookalert.*
homeassistant.components.stookwijzer.*
homeassistant.components.stream.*
homeassistant.components.streamlabswater.*
homeassistant.components.stt.*
+16
View File
@@ -87,6 +87,22 @@
},
"problemMatcher": []
},
{
"label": "Update syrupy snapshots",
"detail": "Update syrupy snapshots for a given integration.",
"type": "shell",
"command": "python3 -m pytest ./tests/components/${input:integrationName} --snapshot-update",
"dependsOn": ["Compile English translations"],
"group": {
"kind": "test",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"problemMatcher": []
},
{
"label": "Generate Requirements",
"type": "shell",
+18 -8
View File
@@ -40,6 +40,8 @@ build.json @home-assistant/supervisor
# Integrations
/homeassistant/components/abode/ @shred86
/tests/components/abode/ @shred86
/homeassistant/components/acaia/ @zweckj
/tests/components/acaia/ @zweckj
/homeassistant/components/accuweather/ @bieniu
/tests/components/accuweather/ @bieniu
/homeassistant/components/acmeda/ @atmurray
@@ -496,8 +498,8 @@ build.json @home-assistant/supervisor
/tests/components/freebox/ @hacf-fr @Quentame
/homeassistant/components/freedompro/ @stefano055415
/tests/components/freedompro/ @stefano055415
/homeassistant/components/fritz/ @mammuth @AaronDavidSchneider @chemelli74 @mib1185
/tests/components/fritz/ @mammuth @AaronDavidSchneider @chemelli74 @mib1185
/homeassistant/components/fritz/ @AaronDavidSchneider @chemelli74 @mib1185
/tests/components/fritz/ @AaronDavidSchneider @chemelli74 @mib1185
/homeassistant/components/fritzbox/ @mib1185 @flabbamann
/tests/components/fritzbox/ @mib1185 @flabbamann
/homeassistant/components/fritzbox_callmonitor/ @cdce8p
@@ -586,8 +588,8 @@ build.json @home-assistant/supervisor
/tests/components/group/ @home-assistant/core
/homeassistant/components/guardian/ @bachya
/tests/components/guardian/ @bachya
/homeassistant/components/habitica/ @ASMfreaK @leikoilja @tr4nt0r
/tests/components/habitica/ @ASMfreaK @leikoilja @tr4nt0r
/homeassistant/components/habitica/ @tr4nt0r
/tests/components/habitica/ @tr4nt0r
/homeassistant/components/hardkernel/ @home-assistant/core
/tests/components/hardkernel/ @home-assistant/core
/homeassistant/components/hardware/ @home-assistant/core
@@ -954,6 +956,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/msteams/ @peroyvind
/homeassistant/components/mullvad/ @meichthys
/tests/components/mullvad/ @meichthys
/homeassistant/components/music_assistant/ @music-assistant
/tests/components/music_assistant/ @music-assistant
/homeassistant/components/mutesync/ @currentoor
/tests/components/mutesync/ @currentoor
/homeassistant/components/my/ @home-assistant/core
@@ -968,8 +972,8 @@ build.json @home-assistant/supervisor
/tests/components/nam/ @bieniu
/homeassistant/components/nanoleaf/ @milanmeu @joostlek
/tests/components/nanoleaf/ @milanmeu @joostlek
/homeassistant/components/neato/ @Santobert
/tests/components/neato/ @Santobert
/homeassistant/components/nasweb/ @nasWebio
/tests/components/nasweb/ @nasWebio
/homeassistant/components/nederlandse_spoorwegen/ @YarmoM
/homeassistant/components/ness_alarm/ @nickw444
/tests/components/ness_alarm/ @nickw444
@@ -1008,6 +1012,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/noaa_tides/ @jdelaney72
/homeassistant/components/nobo_hub/ @echoromeo @oyvindwe
/tests/components/nobo_hub/ @echoromeo @oyvindwe
/homeassistant/components/nordpool/ @gjohansson-ST
/tests/components/nordpool/ @gjohansson-ST
/homeassistant/components/notify/ @home-assistant/core
/tests/components/notify/ @home-assistant/core
/homeassistant/components/notify_events/ @matrozov @papajojo
@@ -1338,6 +1344,8 @@ build.json @home-assistant/supervisor
/tests/components/siren/ @home-assistant/core @raman325
/homeassistant/components/sisyphus/ @jkeljo
/homeassistant/components/sky_hub/ @rogerselwyn
/homeassistant/components/sky_remote/ @dunnmj @saty9
/tests/components/sky_remote/ @dunnmj @saty9
/homeassistant/components/skybell/ @tkdrob
/tests/components/skybell/ @tkdrob
/homeassistant/components/slack/ @tkdrob @fletcherau
@@ -1479,8 +1487,8 @@ build.json @home-assistant/supervisor
/tests/components/tedee/ @patrickhilker @zweckj
/homeassistant/components/tellduslive/ @fredrike
/tests/components/tellduslive/ @fredrike
/homeassistant/components/template/ @PhracturedBlue @tetienne @home-assistant/core
/tests/components/template/ @PhracturedBlue @tetienne @home-assistant/core
/homeassistant/components/template/ @PhracturedBlue @home-assistant/core
/tests/components/template/ @PhracturedBlue @home-assistant/core
/homeassistant/components/tesla_fleet/ @Bre77
/tests/components/tesla_fleet/ @Bre77
/homeassistant/components/tesla_wall_connector/ @einarhauks
@@ -1565,6 +1573,8 @@ build.json @home-assistant/supervisor
/tests/components/unifi/ @Kane610
/homeassistant/components/unifi_direct/ @tofuSCHNITZEL
/homeassistant/components/unifiled/ @florisvdk
/homeassistant/components/unifiprotect/ @RaHehl
/tests/components/unifiprotect/ @RaHehl
/homeassistant/components/upb/ @gwww
/tests/components/upb/ @gwww
/homeassistant/components/upc_connect/ @pvizeli @fabaff
+1 -1
View File
@@ -13,7 +13,7 @@ ENV \
ARG QEMU_CPU
# Install uv
RUN pip3 install uv==0.4.28
RUN pip3 install uv==0.5.4
WORKDIR /usr/src
+3
View File
@@ -35,6 +35,9 @@ RUN \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Add go2rtc binary
COPY --from=ghcr.io/alexxit/go2rtc:latest /usr/local/bin/go2rtc /bin/go2rtc
# Install uv
RUN pip3 install uv
+5 -5
View File
@@ -1,10 +1,10 @@
image: ghcr.io/home-assistant/{arch}-homeassistant
build_from:
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2024.06.1
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2024.06.1
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2024.06.1
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2024.06.1
i386: ghcr.io/home-assistant/i386-homeassistant-base:2024.06.1
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2024.11.0
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2024.11.0
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2024.11.0
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2024.11.0
i386: ghcr.io/home-assistant/i386-homeassistant-base:2024.11.0
codenotary:
signer: notary@home-assistant.io
base_image: notary@home-assistant.io
+4
View File
@@ -9,6 +9,7 @@ import os
import sys
import threading
from .backup_restore import restore_backup
from .const import REQUIRED_PYTHON_VER, RESTART_EXIT_CODE, __version__
FAULT_LOG_FILENAME = "home-assistant.log.fault"
@@ -182,6 +183,9 @@ def main() -> int:
return scripts.run(args.script)
config_dir = os.path.abspath(os.path.join(os.getcwd(), args.config))
if restore_backup(config_dir):
return RESTART_EXIT_CODE
ensure_config_path(config_dir)
# pylint: disable-next=import-outside-toplevel
+1 -1
View File
@@ -18,7 +18,7 @@ from homeassistant.util.json import json_loads
JWT_TOKEN_CACHE_SIZE = 16
MAX_TOKEN_SIZE = 8192
_VERIFY_KEYS = ("signature", "exp", "nbf", "iat", "aud", "iss")
_VERIFY_KEYS = ("signature", "exp", "nbf", "iat", "aud", "iss", "sub", "jti")
_VERIFY_OPTIONS: dict[str, Any] = {f"verify_{key}": True for key in _VERIFY_KEYS} | {
"require": []
+6 -7
View File
@@ -177,17 +177,17 @@ class TotpAuthModule(MultiFactorAuthModule):
class TotpSetupFlow(SetupFlow):
"""Handler for the setup flow."""
_auth_module: TotpAuthModule
_ota_secret: str
_url: str
_image: str
def __init__(
self, auth_module: TotpAuthModule, setup_schema: vol.Schema, user: User
) -> None:
"""Initialize the setup flow."""
super().__init__(auth_module, setup_schema, user.id)
# to fix typing complaint
self._auth_module: TotpAuthModule = auth_module
self._user = user
self._ota_secret: str = ""
self._url: str | None = None
self._image: str | None = None
async def async_step_init(
self, user_input: dict[str, str] | None = None
@@ -214,12 +214,11 @@ class TotpSetupFlow(SetupFlow):
errors["base"] = "invalid_code"
else:
hass = self._auth_module.hass
(
self._ota_secret,
self._url,
self._image,
) = await hass.async_add_executor_job(
) = await self._auth_module.hass.async_add_executor_job(
_generate_secret_and_qr_code,
str(self._user.name),
)
+126
View File
@@ -0,0 +1,126 @@
"""Home Assistant module to handle restoring backups."""
from dataclasses import dataclass
import json
import logging
from pathlib import Path
import shutil
import sys
from tempfile import TemporaryDirectory
from awesomeversion import AwesomeVersion
import securetar
from .const import __version__ as HA_VERSION
RESTORE_BACKUP_FILE = ".HA_RESTORE"
KEEP_PATHS = ("backups",)
_LOGGER = logging.getLogger(__name__)
@dataclass
class RestoreBackupFileContent:
"""Definition for restore backup file content."""
backup_file_path: Path
def restore_backup_file_content(config_dir: Path) -> RestoreBackupFileContent | None:
"""Return the contents of the restore backup file."""
instruction_path = config_dir.joinpath(RESTORE_BACKUP_FILE)
try:
instruction_content = json.loads(instruction_path.read_text(encoding="utf-8"))
return RestoreBackupFileContent(
backup_file_path=Path(instruction_content["path"])
)
except (FileNotFoundError, json.JSONDecodeError):
return None
def _clear_configuration_directory(config_dir: Path) -> None:
"""Delete all files and directories in the config directory except for the backups directory."""
keep_paths = [config_dir.joinpath(path) for path in KEEP_PATHS]
config_contents = sorted(
[entry for entry in config_dir.iterdir() if entry not in keep_paths]
)
for entry in config_contents:
entrypath = config_dir.joinpath(entry)
if entrypath.is_file():
entrypath.unlink()
elif entrypath.is_dir():
shutil.rmtree(entrypath)
def _extract_backup(config_dir: Path, backup_file_path: Path) -> None:
"""Extract the backup file to the config directory."""
with (
TemporaryDirectory() as tempdir,
securetar.SecureTarFile(
backup_file_path,
gzip=False,
mode="r",
) as ostf,
):
ostf.extractall(
path=Path(tempdir, "extracted"),
members=securetar.secure_path(ostf),
filter="fully_trusted",
)
backup_meta_file = Path(tempdir, "extracted", "backup.json")
backup_meta = json.loads(backup_meta_file.read_text(encoding="utf8"))
if (
backup_meta_version := AwesomeVersion(
backup_meta["homeassistant"]["version"]
)
) > HA_VERSION:
raise ValueError(
f"You need at least Home Assistant version {backup_meta_version} to restore this backup"
)
with securetar.SecureTarFile(
Path(
tempdir,
"extracted",
f"homeassistant.tar{'.gz' if backup_meta["compressed"] else ''}",
),
gzip=backup_meta["compressed"],
mode="r",
) as istf:
for member in istf.getmembers():
if member.name == "data":
continue
member.name = member.name.replace("data/", "")
_clear_configuration_directory(config_dir)
istf.extractall(
path=config_dir,
members=[
member
for member in securetar.secure_path(istf)
if member.name != "data"
],
filter="fully_trusted",
)
def restore_backup(config_dir_path: str) -> bool:
"""Restore the backup file if any.
Returns True if a restore backup file was found and restored, False otherwise.
"""
config_dir = Path(config_dir_path)
if not (restore_content := restore_backup_file_content(config_dir)):
return False
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
backup_file_path = restore_content.backup_file_path
_LOGGER.info("Restoring %s", backup_file_path)
try:
_extract_backup(config_dir, backup_file_path)
except FileNotFoundError as err:
raise ValueError(f"Backup file {backup_file_path} does not exist") from err
_LOGGER.info("Restore complete, restarting")
return True
+7 -1
View File
@@ -50,6 +50,12 @@ def _check_sleep_call_allowed(mapped_args: dict[str, Any]) -> bool:
return False
def _check_load_verify_locations_call_allowed(mapped_args: dict[str, Any]) -> bool:
# If only cadata is passed, we can ignore it
kwargs = mapped_args.get("kwargs")
return bool(kwargs and len(kwargs) == 1 and "cadata" in kwargs)
@dataclass(slots=True, frozen=True)
class BlockingCall:
"""Class to hold information about a blocking call."""
@@ -158,7 +164,7 @@ _BLOCKING_CALLS: tuple[BlockingCall, ...] = (
original_func=SSLContext.load_verify_locations,
object=SSLContext,
function="load_verify_locations",
check_allowed=None,
check_allowed=_check_load_verify_locations_call_allowed,
strict=False,
strict_core=False,
skip_for_tests=True,
+1 -1
View File
@@ -515,7 +515,7 @@ async def async_from_config_dict(
issue_registry.async_create_issue(
hass,
core.DOMAIN,
"python_version",
f"python_version_{required_python_version}",
is_fixable=False,
severity=issue_registry.IssueSeverity.WARNING,
breaks_in_ha_version=REQUIRED_NEXT_PYTHON_HA_RELEASE,
+5
View File
@@ -0,0 +1,5 @@
{
"domain": "sky",
"name": "Sky",
"integrations": ["sky_hub", "sky_remote"]
}
@@ -112,9 +112,6 @@ class AbodeFlowHandler(ConfigFlow, domain=DOMAIN):
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Handle a flow initialized by the user."""
if self._async_current_entries():
return self.async_abort(reason="single_instance_allowed")
if user_input is None:
return self.async_show_form(
step_id="user", data_schema=vol.Schema(self.data_schema)
+2 -1
View File
@@ -9,5 +9,6 @@
},
"iot_class": "cloud_push",
"loggers": ["jaraco.abode", "lomond"],
"requirements": ["jaraco.abode==6.2.1"]
"requirements": ["jaraco.abode==6.2.1"],
"single_config_entry": true
}
@@ -28,7 +28,6 @@
"invalid_mfa_code": "Invalid MFA code"
},
"abort": {
"single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]",
"reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]"
}
},
@@ -0,0 +1,31 @@
"""Initialize the Acaia component."""
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from .coordinator import AcaiaConfigEntry, AcaiaCoordinator
PLATFORMS = [
Platform.BINARY_SENSOR,
Platform.BUTTON,
Platform.SENSOR,
]
async def async_setup_entry(hass: HomeAssistant, entry: AcaiaConfigEntry) -> bool:
"""Set up acaia as config entry."""
coordinator = AcaiaCoordinator(hass, entry)
await coordinator.async_config_entry_first_refresh()
entry.runtime_data = coordinator
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True
async def async_unload_entry(hass: HomeAssistant, entry: AcaiaConfigEntry) -> bool:
"""Unload a config entry."""
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
@@ -0,0 +1,58 @@
"""Binary sensor platform for Acaia scales."""
from collections.abc import Callable
from dataclasses import dataclass
from aioacaia.acaiascale import AcaiaScale
from homeassistant.components.binary_sensor import (
BinarySensorDeviceClass,
BinarySensorEntity,
BinarySensorEntityDescription,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .coordinator import AcaiaConfigEntry
from .entity import AcaiaEntity
@dataclass(kw_only=True, frozen=True)
class AcaiaBinarySensorEntityDescription(BinarySensorEntityDescription):
"""Description for Acaia binary sensor entities."""
is_on_fn: Callable[[AcaiaScale], bool]
BINARY_SENSORS: tuple[AcaiaBinarySensorEntityDescription, ...] = (
AcaiaBinarySensorEntityDescription(
key="timer_running",
translation_key="timer_running",
device_class=BinarySensorDeviceClass.RUNNING,
is_on_fn=lambda scale: scale.timer_running,
),
)
async def async_setup_entry(
hass: HomeAssistant,
entry: AcaiaConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up binary sensors."""
coordinator = entry.runtime_data
async_add_entities(
AcaiaBinarySensor(coordinator, description) for description in BINARY_SENSORS
)
class AcaiaBinarySensor(AcaiaEntity, BinarySensorEntity):
"""Representation of an Acaia binary sensor."""
entity_description: AcaiaBinarySensorEntityDescription
@property
def is_on(self) -> bool:
"""Return true if the binary sensor is on."""
return self.entity_description.is_on_fn(self._scale)
+63
View File
@@ -0,0 +1,63 @@
"""Button entities for Acaia scales."""
from collections.abc import Callable, Coroutine
from dataclasses import dataclass
from typing import Any
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 .coordinator import AcaiaConfigEntry
from .entity import AcaiaEntity
PARALLEL_UPDATES = 0
@dataclass(kw_only=True, frozen=True)
class AcaiaButtonEntityDescription(ButtonEntityDescription):
"""Description for acaia button entities."""
press_fn: Callable[[AcaiaScale], Coroutine[Any, Any, None]]
BUTTONS: tuple[AcaiaButtonEntityDescription, ...] = (
AcaiaButtonEntityDescription(
key="tare",
translation_key="tare",
press_fn=lambda scale: scale.tare(),
),
AcaiaButtonEntityDescription(
key="reset_timer",
translation_key="reset_timer",
press_fn=lambda scale: scale.reset_timer(),
),
AcaiaButtonEntityDescription(
key="start_stop",
translation_key="start_stop",
press_fn=lambda scale: scale.start_stop_timer(),
),
)
async def async_setup_entry(
hass: HomeAssistant,
entry: AcaiaConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up button entities and services."""
coordinator = entry.runtime_data
async_add_entities(AcaiaButton(coordinator, description) for description in BUTTONS)
class AcaiaButton(AcaiaEntity, ButtonEntity):
"""Representation of an Acaia button."""
entity_description: AcaiaButtonEntityDescription
async def async_press(self) -> None:
"""Handle the button press."""
await self.entity_description.press_fn(self._scale)
@@ -0,0 +1,149 @@
"""Config flow for Acaia integration."""
import logging
from typing import Any
from aioacaia.exceptions import AcaiaDeviceNotFound, AcaiaError, AcaiaUnknownDevice
from aioacaia.helpers import is_new_scale
import voluptuous as vol
from homeassistant.components.bluetooth import (
BluetoothServiceInfoBleak,
async_discovered_service_info,
)
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
from homeassistant.const import CONF_ADDRESS, CONF_NAME
from homeassistant.helpers.device_registry import format_mac
from homeassistant.helpers.selector import (
SelectOptionDict,
SelectSelector,
SelectSelectorConfig,
SelectSelectorMode,
)
from .const import CONF_IS_NEW_STYLE_SCALE, DOMAIN
_LOGGER = logging.getLogger(__name__)
class AcaiaConfigFlow(ConfigFlow, domain=DOMAIN):
"""Handle a config flow for acaia."""
def __init__(self) -> None:
"""Initialize the config flow."""
self._discovered: dict[str, Any] = {}
self._discovered_devices: dict[str, str] = {}
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Handle a flow initialized by the user."""
errors: dict[str, str] = {}
if user_input is not None:
mac = user_input[CONF_ADDRESS]
try:
is_new_style_scale = await is_new_scale(mac)
except AcaiaDeviceNotFound:
errors["base"] = "device_not_found"
except AcaiaError:
_LOGGER.exception("Error occurred while connecting to the scale")
errors["base"] = "unknown"
except AcaiaUnknownDevice:
return self.async_abort(reason="unsupported_device")
else:
await self.async_set_unique_id(format_mac(mac))
self._abort_if_unique_id_configured()
if not errors:
return self.async_create_entry(
title=self._discovered_devices[mac],
data={
CONF_ADDRESS: mac,
CONF_IS_NEW_STYLE_SCALE: is_new_style_scale,
},
)
for device in async_discovered_service_info(self.hass):
self._discovered_devices[device.address] = device.name
if not self._discovered_devices:
return self.async_abort(reason="no_devices_found")
options = [
SelectOptionDict(
value=device_mac,
label=f"{device_name} ({device_mac})",
)
for device_mac, device_name in self._discovered_devices.items()
]
return self.async_show_form(
step_id="user",
data_schema=vol.Schema(
{
vol.Required(CONF_ADDRESS): SelectSelector(
SelectSelectorConfig(
options=options,
mode=SelectSelectorMode.DROPDOWN,
)
)
}
),
errors=errors,
)
async def async_step_bluetooth(
self, discovery_info: BluetoothServiceInfoBleak
) -> ConfigFlowResult:
"""Handle a discovered Bluetooth device."""
self._discovered[CONF_ADDRESS] = discovery_info.address
self._discovered[CONF_NAME] = discovery_info.name
await self.async_set_unique_id(format_mac(discovery_info.address))
self._abort_if_unique_id_configured()
try:
self._discovered[CONF_IS_NEW_STYLE_SCALE] = await is_new_scale(
discovery_info.address
)
except AcaiaDeviceNotFound:
_LOGGER.debug("Device not found during discovery")
return self.async_abort(reason="device_not_found")
except AcaiaError:
_LOGGER.debug(
"Error occurred while connecting to the scale during discovery",
exc_info=True,
)
return self.async_abort(reason="unknown")
except AcaiaUnknownDevice:
_LOGGER.debug("Unsupported device during discovery")
return self.async_abort(reason="unsupported_device")
return await self.async_step_bluetooth_confirm()
async def async_step_bluetooth_confirm(
self, user_input: dict[str, Any] | None = None
) -> ConfigFlowResult:
"""Handle confirmation of Bluetooth discovery."""
if user_input is not None:
return self.async_create_entry(
title=self._discovered[CONF_NAME],
data={
CONF_ADDRESS: self._discovered[CONF_ADDRESS],
CONF_IS_NEW_STYLE_SCALE: self._discovered[CONF_IS_NEW_STYLE_SCALE],
},
)
self.context["title_placeholders"] = placeholders = {
CONF_NAME: self._discovered[CONF_NAME]
}
self._set_confirm_only()
return self.async_show_form(
step_id="bluetooth_confirm",
description_placeholders=placeholders,
)
+4
View File
@@ -0,0 +1,4 @@
"""Constants for component."""
DOMAIN = "acaia"
CONF_IS_NEW_STYLE_SCALE = "is_new_style_scale"
@@ -0,0 +1,86 @@
"""Coordinator for Acaia integration."""
from __future__ import annotations
from datetime import timedelta
import logging
from aioacaia.acaiascale import AcaiaScale
from aioacaia.exceptions import AcaiaDeviceNotFound, AcaiaError
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_ADDRESS
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from .const import CONF_IS_NEW_STYLE_SCALE
SCAN_INTERVAL = timedelta(seconds=15)
_LOGGER = logging.getLogger(__name__)
type AcaiaConfigEntry = ConfigEntry[AcaiaCoordinator]
class AcaiaCoordinator(DataUpdateCoordinator[None]):
"""Class to handle fetching data from the scale."""
config_entry: AcaiaConfigEntry
def __init__(self, hass: HomeAssistant, entry: AcaiaConfigEntry) -> None:
"""Initialize coordinator."""
super().__init__(
hass,
_LOGGER,
name="acaia coordinator",
update_interval=SCAN_INTERVAL,
config_entry=entry,
)
self._scale = AcaiaScale(
address_or_ble_device=entry.data[CONF_ADDRESS],
name=entry.title,
is_new_style_scale=entry.data[CONF_IS_NEW_STYLE_SCALE],
notify_callback=self.async_update_listeners,
)
@property
def scale(self) -> AcaiaScale:
"""Return the scale object."""
return self._scale
async def _async_update_data(self) -> None:
"""Fetch data."""
# scale is already connected, return
if self._scale.connected:
return
# scale is not connected, try to connect
try:
await self._scale.connect(setup_tasks=False)
except (AcaiaDeviceNotFound, AcaiaError, TimeoutError) as ex:
_LOGGER.debug(
"Could not connect to scale: %s, Error: %s",
self.config_entry.data[CONF_ADDRESS],
ex,
)
self._scale.device_disconnected_handler(notify=False)
return
# connected, set up background tasks
if not self._scale.heartbeat_task or self._scale.heartbeat_task.done():
self._scale.heartbeat_task = self.config_entry.async_create_background_task(
hass=self.hass,
target=self._scale.send_heartbeats(),
name="acaia_heartbeat_task",
)
if not self._scale.process_queue_task or self._scale.process_queue_task.done():
self._scale.process_queue_task = (
self.config_entry.async_create_background_task(
hass=self.hass,
target=self._scale.process_queue(),
name="acaia_process_queue_task",
)
)
@@ -0,0 +1,31 @@
"""Diagnostics support for Acaia."""
from __future__ import annotations
from dataclasses import asdict
from typing import Any
from homeassistant.core import HomeAssistant
from . import AcaiaConfigEntry
async def async_get_config_entry_diagnostics(
hass: HomeAssistant,
entry: AcaiaConfigEntry,
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
coordinator = entry.runtime_data
scale = coordinator.scale
# collect all data sources
return {
"model": scale.model,
"device_state": (
asdict(scale.device_state) if scale.device_state is not None else ""
),
"mac": scale.mac,
"last_disconnect_time": scale.last_disconnect_time,
"timer": scale.timer,
"weight": scale.weight,
}
+46
View File
@@ -0,0 +1,46 @@
"""Base class for Acaia entities."""
from dataclasses import dataclass
from homeassistant.helpers.device_registry import (
CONNECTION_BLUETOOTH,
DeviceInfo,
format_mac,
)
from homeassistant.helpers.entity import EntityDescription
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN
from .coordinator import AcaiaCoordinator
@dataclass
class AcaiaEntity(CoordinatorEntity[AcaiaCoordinator]):
"""Common elements for all entities."""
_attr_has_entity_name = True
def __init__(
self,
coordinator: AcaiaCoordinator,
entity_description: EntityDescription,
) -> None:
"""Initialize the entity."""
super().__init__(coordinator)
self.entity_description = entity_description
self._scale = coordinator.scale
formatted_mac = format_mac(self._scale.mac)
self._attr_unique_id = f"{formatted_mac}_{entity_description.key}"
self._attr_device_info = DeviceInfo(
identifiers={(DOMAIN, formatted_mac)},
manufacturer="Acaia",
model=self._scale.model,
suggested_area="Kitchen",
connections={(CONNECTION_BLUETOOTH, self._scale.mac)},
)
@property
def available(self) -> bool:
"""Returns whether entity is available."""
return super().available and self._scale.connected
+24
View File
@@ -0,0 +1,24 @@
{
"entity": {
"binary_sensor": {
"timer_running": {
"default": "mdi:timer",
"state": {
"on": "mdi:timer-play",
"off": "mdi:timer-off"
}
}
},
"button": {
"tare": {
"default": "mdi:scale-balance"
},
"reset_timer": {
"default": "mdi:timer-refresh"
},
"start_stop": {
"default": "mdi:timer-play"
}
}
}
}
@@ -0,0 +1,29 @@
{
"domain": "acaia",
"name": "Acaia",
"bluetooth": [
{
"manufacturer_id": 16962
},
{
"local_name": "ACAIA*"
},
{
"local_name": "PYXIS-*"
},
{
"local_name": "LUNAR-*"
},
{
"local_name": "PROCHBT001"
}
],
"codeowners": ["@zweckj"],
"config_flow": true,
"dependencies": ["bluetooth_adapters"],
"documentation": "https://www.home-assistant.io/integrations/acaia",
"integration_type": "device",
"iot_class": "local_push",
"loggers": ["aioacaia"],
"requirements": ["aioacaia==0.1.11"]
}
@@ -0,0 +1,106 @@
rules:
# Bronze
action-setup:
status: exempt
comment: |
No custom actions are defined.
appropriate-polling: done
brands: done
common-modules: done
config-flow-test-coverage: done
config-flow: done
dependency-transparency: done
docs-actions:
status: exempt
comment: |
No custom actions are defined.
docs-high-level-description: done
docs-installation-instructions: done
docs-removal-instructions: todo
entity-event-setup:
status: exempt
comment: |
No explicit event subscriptions.
entity-unique-id: done
has-entity-name: done
runtime-data: done
test-before-configure: done
test-before-setup:
status: exempt
comment: |
Device is expected to be offline most of the time, but needs to connect quickly once available.
unique-config-entry: done
# Silver
action-exceptions:
status: exempt
comment: |
No custom actions are defined.
config-entry-unloading: done
docs-configuration-parameters: done
docs-installation-parameters: done
entity-unavailable: done
integration-owner: done
log-when-unavailable:
status: done
comment: |
Handled by coordinator.
parallel-updates: done
reauthentication-flow:
status: exempt
comment: |
No authentication required.
test-coverage: done
# Gold
devices: done
diagnostics: done
discovery-update-info:
status: exempt
comment: |
No IP discovery.
discovery:
status: done
comment: |
Bluetooth discovery.
docs-data-update: done
docs-examples: done
docs-known-limitations: done
docs-supported-devices: done
docs-supported-functions: done
docs-troubleshooting: done
docs-use-cases: done
dynamic-devices:
status: exempt
comment: |
Device type integration.
entity-category: done
entity-device-class: done
entity-disabled-by-default:
status: exempt
comment: |
No noisy/non-essential entities.
entity-translations: done
exception-translations:
status: exempt
comment: |
No custom exceptions.
icon-translations: done
reconfiguration-flow:
status: exempt
comment: |
Only parameter that could be changed (MAC = unique_id) would force a new config entry.
repair-issues:
status: exempt
comment: |
No repairs/issues.
stale-devices:
status: exempt
comment: |
Device type integration.
# Platinum
async-dependency: done
inject-websession:
status: exempt
comment: |
Bluetooth connection.
strict-typing: done
+143
View File
@@ -0,0 +1,143 @@
"""Sensor platform for Acaia."""
from collections.abc import Callable
from dataclasses import dataclass
from aioacaia.acaiascale import AcaiaDeviceState, AcaiaScale
from aioacaia.const import UnitMass as AcaiaUnitOfMass
from homeassistant.components.sensor import (
RestoreSensor,
SensorDeviceClass,
SensorEntity,
SensorEntityDescription,
SensorExtraStoredData,
SensorStateClass,
)
from homeassistant.const import PERCENTAGE, UnitOfMass, UnitOfVolumeFlowRate
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .coordinator import AcaiaConfigEntry
from .entity import AcaiaEntity
@dataclass(kw_only=True, frozen=True)
class AcaiaSensorEntityDescription(SensorEntityDescription):
"""Description for Acaia sensor entities."""
value_fn: Callable[[AcaiaScale], int | float | None]
@dataclass(kw_only=True, frozen=True)
class AcaiaDynamicUnitSensorEntityDescription(AcaiaSensorEntityDescription):
"""Description for Acaia sensor entities with dynamic units."""
unit_fn: Callable[[AcaiaDeviceState], str] | None = None
SENSORS: tuple[AcaiaSensorEntityDescription, ...] = (
AcaiaDynamicUnitSensorEntityDescription(
key="weight",
device_class=SensorDeviceClass.WEIGHT,
native_unit_of_measurement=UnitOfMass.GRAMS,
state_class=SensorStateClass.MEASUREMENT,
unit_fn=lambda data: (
UnitOfMass.OUNCES
if data.units == AcaiaUnitOfMass.OUNCES
else UnitOfMass.GRAMS
),
value_fn=lambda scale: scale.weight,
),
AcaiaDynamicUnitSensorEntityDescription(
key="flow_rate",
device_class=SensorDeviceClass.VOLUME_FLOW_RATE,
native_unit_of_measurement=UnitOfVolumeFlowRate.MILLILITERS_PER_SECOND,
suggested_display_precision=1,
state_class=SensorStateClass.MEASUREMENT,
value_fn=lambda scale: scale.flow_rate,
),
)
RESTORE_SENSORS: tuple[AcaiaSensorEntityDescription, ...] = (
AcaiaSensorEntityDescription(
key="battery",
device_class=SensorDeviceClass.BATTERY,
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
value_fn=lambda scale: (
scale.device_state.battery_level if scale.device_state else None
),
),
)
async def async_setup_entry(
hass: HomeAssistant,
entry: AcaiaConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up sensors."""
coordinator = entry.runtime_data
entities: list[SensorEntity] = [
AcaiaSensor(coordinator, entity_description) for entity_description in SENSORS
]
entities.extend(
AcaiaRestoreSensor(coordinator, entity_description)
for entity_description in RESTORE_SENSORS
)
async_add_entities(entities)
class AcaiaSensor(AcaiaEntity, SensorEntity):
"""Representation of an Acaia sensor."""
entity_description: AcaiaDynamicUnitSensorEntityDescription
@property
def native_unit_of_measurement(self) -> str | None:
"""Return the unit of measurement of this entity."""
if (
self._scale.device_state is not None
and self.entity_description.unit_fn is not None
):
return self.entity_description.unit_fn(self._scale.device_state)
return self.entity_description.native_unit_of_measurement
@property
def native_value(self) -> int | float | None:
"""Return the state of the entity."""
return self.entity_description.value_fn(self._scale)
class AcaiaRestoreSensor(AcaiaEntity, RestoreSensor):
"""Representation of an Acaia sensor with restore capabilities."""
entity_description: AcaiaSensorEntityDescription
_restored_data: SensorExtraStoredData | None = None
async def async_added_to_hass(self) -> None:
"""Handle entity which will be added."""
await super().async_added_to_hass()
self._restored_data = await self.async_get_last_sensor_data()
if self._restored_data is not None:
self._attr_native_value = self._restored_data.native_value
self._attr_native_unit_of_measurement = (
self._restored_data.native_unit_of_measurement
)
if self._scale.device_state is not None:
self._attr_native_value = self.entity_description.value_fn(self._scale)
@callback
def _handle_coordinator_update(self) -> None:
"""Handle updated data from the coordinator."""
if self._scale.device_state is not None:
self._attr_native_value = self.entity_description.value_fn(self._scale)
self._async_write_ha_state()
@property
def available(self) -> bool:
"""Return True if entity is available."""
return super().available or self._restored_data is not None
@@ -0,0 +1,46 @@
{
"config": {
"flow_title": "{name}",
"abort": {
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
"no_devices_found": "[%key:common::config_flow::abort::no_devices_found%]",
"unsupported_device": "This device is not supported."
},
"error": {
"device_not_found": "Device could not be found.",
"unknown": "[%key:common::config_flow::error::unknown%]"
},
"step": {
"bluetooth_confirm": {
"description": "[%key:component::bluetooth::config::step::bluetooth_confirm::description%]"
},
"user": {
"description": "[%key:component::bluetooth::config::step::user::description%]",
"data": {
"address": "[%key:common::config_flow::data::device%]"
},
"data_description": {
"address": "Select Acaia scale you want to set up"
}
}
}
},
"entity": {
"binary_sensor": {
"timer_running": {
"name": "Timer running"
}
},
"button": {
"tare": {
"name": "Tare"
},
"reset_timer": {
"name": "Reset timer"
},
"start_stop": {
"name": "Start/stop timer"
}
}
}
}
@@ -7,7 +7,6 @@
"integration_type": "service",
"iot_class": "cloud_polling",
"loggers": ["accuweather"],
"quality_scale": "platinum",
"requirements": ["accuweather==3.0.0"],
"requirements": ["accuweather==4.0.0"],
"single_config_entry": true
}
@@ -4,5 +4,6 @@
"codeowners": [],
"documentation": "https://www.home-assistant.io/integrations/acer_projector",
"iot_class": "local_polling",
"quality_scale": "legacy",
"requirements": ["pyserial==3.5"]
}
@@ -3,5 +3,6 @@
"name": "Actiontec",
"codeowners": [],
"documentation": "https://www.home-assistant.io/integrations/actiontec",
"iot_class": "local_polling"
"iot_class": "local_polling",
"quality_scale": "legacy"
}
+1 -1
View File
@@ -37,7 +37,7 @@ STATE_KEY_POSITION = "position"
PLATFORM_SCHEMA = COVER_PLATFORM_SCHEMA.extend(
{
vol.Optional(CONF_ADS_VAR): cv.string,
vol.Required(CONF_ADS_VAR): cv.string,
vol.Optional(CONF_ADS_VAR_POSITION): cv.string,
vol.Optional(CONF_ADS_VAR_SET_POS): cv.string,
vol.Optional(CONF_ADS_VAR_CLOSE): cv.string,
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/ads",
"iot_class": "local_push",
"loggers": ["pyads"],
"quality_scale": "legacy",
"requirements": ["pyads==3.4.0"]
}
@@ -6,6 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/advantage_air",
"iot_class": "local_polling",
"loggers": ["advantage_air"],
"quality_scale": "platinum",
"requirements": ["advantage-air==0.4.4"]
}
+7 -16
View File
@@ -1,10 +1,9 @@
"""The AEMET OpenData component."""
from dataclasses import dataclass
import logging
from aemet_opendata.exceptions import AemetError, TownNotFound
from aemet_opendata.interface import AEMET, ConnectionOptions
from aemet_opendata.interface import AEMET, ConnectionOptions, UpdateFeature
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
@@ -13,20 +12,10 @@ from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers import aiohttp_client
from .const import CONF_STATION_UPDATES, PLATFORMS
from .coordinator import WeatherUpdateCoordinator
from .coordinator import AemetConfigEntry, AemetData, WeatherUpdateCoordinator
_LOGGER = logging.getLogger(__name__)
type AemetConfigEntry = ConfigEntry[AemetData]
@dataclass
class AemetData:
"""Aemet runtime data."""
name: str
coordinator: WeatherUpdateCoordinator
async def async_setup_entry(hass: HomeAssistant, entry: AemetConfigEntry) -> bool:
"""Set up AEMET OpenData as config entry."""
@@ -34,9 +23,11 @@ async def async_setup_entry(hass: HomeAssistant, entry: AemetConfigEntry) -> boo
api_key = entry.data[CONF_API_KEY]
latitude = entry.data[CONF_LATITUDE]
longitude = entry.data[CONF_LONGITUDE]
station_updates = entry.options.get(CONF_STATION_UPDATES, True)
update_features: int = UpdateFeature.FORECAST
if entry.options.get(CONF_STATION_UPDATES, True):
update_features |= UpdateFeature.STATION
options = ConnectionOptions(api_key, station_updates)
options = ConnectionOptions(api_key, update_features)
aemet = AEMET(aiohttp_client.async_get_clientsession(hass), options)
try:
await aemet.select_coordinates(latitude, longitude)
@@ -46,7 +37,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: AemetConfigEntry) -> boo
except AemetError as err:
raise ConfigEntryNotReady(err) from err
weather_coordinator = WeatherUpdateCoordinator(hass, aemet)
weather_coordinator = WeatherUpdateCoordinator(hass, entry, aemet)
await weather_coordinator.async_config_entry_first_refresh()
entry.runtime_data = AemetData(name=name, coordinator=weather_coordinator)
@@ -45,7 +45,7 @@ class AemetConfigFlow(ConfigFlow, domain=DOMAIN):
await self.async_set_unique_id(f"{latitude}-{longitude}")
self._abort_if_unique_id_configured()
options = ConnectionOptions(user_input[CONF_API_KEY], False)
options = ConnectionOptions(user_input[CONF_API_KEY])
aemet = AEMET(aiohttp_client.async_get_clientsession(self.hass), options)
try:
await aemet.select_coordinates(latitude, longitude)
@@ -3,6 +3,7 @@
from __future__ import annotations
from asyncio import timeout
from dataclasses import dataclass
from datetime import timedelta
import logging
from typing import Any, Final, cast
@@ -19,6 +20,7 @@ from aemet_opendata.helpers import dict_nested_value
from aemet_opendata.interface import AEMET
from homeassistant.components.weather import Forecast
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@@ -29,6 +31,16 @@ _LOGGER = logging.getLogger(__name__)
API_TIMEOUT: Final[int] = 120
WEATHER_UPDATE_INTERVAL = timedelta(minutes=10)
type AemetConfigEntry = ConfigEntry[AemetData]
@dataclass
class AemetData:
"""Aemet runtime data."""
name: str
coordinator: WeatherUpdateCoordinator
class WeatherUpdateCoordinator(DataUpdateCoordinator):
"""Weather data update coordinator."""
@@ -36,6 +48,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
def __init__(
self,
hass: HomeAssistant,
entry: AemetConfigEntry,
aemet: AEMET,
) -> None:
"""Initialize coordinator."""
@@ -44,6 +57,7 @@ class WeatherUpdateCoordinator(DataUpdateCoordinator):
super().__init__(
hass,
_LOGGER,
config_entry=entry,
name=DOMAIN,
update_interval=WEATHER_UPDATE_INTERVAL,
)
@@ -15,7 +15,7 @@ from homeassistant.const import (
)
from homeassistant.core import HomeAssistant
from . import AemetConfigEntry
from .coordinator import AemetConfigEntry
TO_REDACT_CONFIG = [
CONF_API_KEY,
+1 -1
View File
@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/aemet",
"iot_class": "cloud_polling",
"loggers": ["aemet_opendata"],
"requirements": ["AEMET-OpenData==0.5.4"]
"requirements": ["AEMET-OpenData==0.6.3"]
}
+1 -2
View File
@@ -55,7 +55,6 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import dt as dt_util
from . import AemetConfigEntry
from .const import (
ATTR_API_CONDITION,
ATTR_API_FORECAST_CONDITION,
@@ -87,7 +86,7 @@ from .const import (
ATTR_API_WIND_SPEED,
CONDITIONS_MAP,
)
from .coordinator import WeatherUpdateCoordinator
from .coordinator import AemetConfigEntry, WeatherUpdateCoordinator
from .entity import AemetEntity
+1 -2
View File
@@ -27,9 +27,8 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AemetConfigEntry
from .const import CONDITIONS_MAP
from .coordinator import WeatherUpdateCoordinator
from .coordinator import AemetConfigEntry, WeatherUpdateCoordinator
from .entity import AemetEntity
@@ -0,0 +1,80 @@
rules:
# Bronze
action-setup:
status: exempt
comment: |
This integration does not provide additional actions.
appropriate-polling: done
brands: done
common-modules: done
config-flow-test-coverage: done
config-flow: done
dependency-transparency: done
docs-actions:
status: exempt
comment: |
This integration does not provide additional actions.
docs-high-level-description: todo
docs-installation-instructions: todo
docs-removal-instructions: todo
entity-event-setup:
status: exempt
comment: |
Entities of this integration does not explicitly subscribe to events.
entity-unique-id: done
has-entity-name: done
runtime-data: done
test-before-configure: done
test-before-setup: done
unique-config-entry: done
# Silver
action-exceptions: todo
config-entry-unloading: done
docs-configuration-parameters: todo
docs-installation-parameters: todo
entity-unavailable: done
integration-owner: done
log-when-unavailable: done
parallel-updates: todo
reauthentication-flow:
status: exempt
comment: |
This integration does not require authentication.
test-coverage: done
# Gold
devices: done
diagnostics: done
discovery-update-info: done
discovery: done
docs-data-update: todo
docs-examples: todo
docs-known-limitations: todo
docs-supported-devices: todo
docs-supported-functions: todo
docs-troubleshooting: todo
docs-use-cases: todo
dynamic-devices:
status: exempt
comment: |
This integration has a fixed single device.
entity-category: done
entity-device-class: done
entity-disabled-by-default: done
entity-translations: done
exception-translations: todo
icon-translations: done
reconfiguration-flow: todo
repair-issues:
status: exempt
comment: |
This integration doesn't have any cases where raising an issue is needed.
stale-devices:
status: exempt
comment: |
This integration has a fixed single device.
# Platinum
async-dependency: done
inject-websession: done
strict-typing: done
@@ -7,6 +7,5 @@
"integration_type": "service",
"iot_class": "cloud_polling",
"loggers": ["airly"],
"quality_scale": "platinum",
"requirements": ["airly==1.1.0"]
}
+6 -10
View File
@@ -1,5 +1,7 @@
"""Config flow for AirNow integration."""
from __future__ import annotations
import logging
from typing import Any
@@ -12,7 +14,6 @@ from homeassistant.config_entries import (
ConfigFlow,
ConfigFlowResult,
OptionsFlow,
OptionsFlowWithConfigEntry,
)
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_RADIUS
from homeassistant.core import HomeAssistant, callback
@@ -120,12 +121,12 @@ class AirNowConfigFlow(ConfigFlow, domain=DOMAIN):
@callback
def async_get_options_flow(
config_entry: ConfigEntry,
) -> OptionsFlow:
) -> AirNowOptionsFlowHandler:
"""Return the options flow."""
return AirNowOptionsFlowHandler(config_entry)
return AirNowOptionsFlowHandler()
class AirNowOptionsFlowHandler(OptionsFlowWithConfigEntry):
class AirNowOptionsFlowHandler(OptionsFlow):
"""Handle an options flow for AirNow."""
async def async_step_init(
@@ -136,12 +137,7 @@ class AirNowOptionsFlowHandler(OptionsFlowWithConfigEntry):
return self.async_create_entry(data=user_input)
options_schema = vol.Schema(
{
vol.Optional(CONF_RADIUS): vol.All(
int,
vol.Range(min=5),
),
}
{vol.Optional(CONF_RADIUS): vol.All(int, vol.Range(min=5))}
)
return self.async_show_form(
+1 -1
View File
@@ -7,5 +7,5 @@
"integration_type": "hub",
"iot_class": "local_polling",
"loggers": ["aioairq"],
"requirements": ["aioairq==0.3.2"]
"requirements": ["aioairq==0.4.3"]
}
@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/airtouch5",
"iot_class": "local_push",
"loggers": ["airtouch5py"],
"requirements": ["airtouch5py==0.2.10"]
"requirements": ["airtouch5py==0.2.11"]
}
@@ -11,5 +11,5 @@
"documentation": "https://www.home-assistant.io/integrations/airzone",
"iot_class": "local_polling",
"loggers": ["aioairzone"],
"requirements": ["aioairzone==0.9.5"]
"requirements": ["aioairzone==0.9.7"]
}
@@ -35,6 +35,7 @@ from homeassistant.helpers.deprecation import (
from homeassistant.helpers.entity import Entity, EntityDescription
from homeassistant.helpers.entity_component import EntityComponent
from homeassistant.helpers.entity_platform import EntityPlatform
from homeassistant.helpers.frame import ReportBehavior, report_usage
from homeassistant.helpers.typing import ConfigType
from homeassistant.util.hass_dict import HassKey
@@ -163,7 +164,6 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
_alarm_control_panel_option_default_code: str | None = None
__alarm_legacy_state: bool = False
__alarm_legacy_state_reported: bool = False
def __init_subclass__(cls, **kwargs: Any) -> None:
"""Post initialisation processing."""
@@ -173,17 +173,15 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
# setting the state directly.
cls.__alarm_legacy_state = True
def __setattr__(self, __name: str, __value: Any) -> None:
def __setattr__(self, name: str, value: Any, /) -> None:
"""Set attribute.
Deprecation warning if setting '_attr_state' directly
unless already reported.
"""
if __name == "_attr_state":
if self.__alarm_legacy_state_reported is not True:
self._report_deprecated_alarm_state_handling()
self.__alarm_legacy_state_reported = True
return super().__setattr__(__name, __value)
if name == "_attr_state":
self._report_deprecated_alarm_state_handling()
return super().__setattr__(name, value)
@callback
def add_to_platform_start(
@@ -194,7 +192,7 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
) -> None:
"""Start adding an entity to a platform."""
super().add_to_platform_start(hass, platform, parallel_updates)
if self.__alarm_legacy_state and not self.__alarm_legacy_state_reported:
if self.__alarm_legacy_state:
self._report_deprecated_alarm_state_handling()
@callback
@@ -203,19 +201,16 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
Integrations should implement alarm_state instead of using state directly.
"""
self.__alarm_legacy_state_reported = True
if "custom_components" in type(self).__module__:
# Do not report on core integrations as they have been fixed.
report_issue = "report it to the custom integration author."
_LOGGER.warning(
"Entity %s (%s) is setting state directly"
" which will stop working in HA Core 2025.11."
" Entities should implement the 'alarm_state' property and"
" return its state using the AlarmControlPanelState enum, please %s",
self.entity_id,
type(self),
report_issue,
)
report_usage(
"is setting state directly."
f" Entity {self.entity_id} ({type(self)}) should implement the 'alarm_state'"
" property and return its state using the AlarmControlPanelState enum",
core_integration_behavior=ReportBehavior.ERROR,
custom_integration_behavior=ReportBehavior.LOG,
breaks_in_ha_version="2025.11",
integration_domain=self.platform.platform_name if self.platform else None,
exclude_integrations={DOMAIN},
)
@final
@property
@@ -275,7 +270,6 @@ class AlarmControlPanelEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_A
"""Check if arm code is required, raise if no code is given."""
if not (_code := self.code_or_default_code(code)) and self.code_arm_required:
raise ServiceValidationError(
f"Arming requires a code but none was given for {self.entity_id}",
translation_domain=DOMAIN,
translation_key="code_arm_required",
translation_placeholders={
@@ -130,7 +130,7 @@
},
"alarm_trigger": {
"name": "Trigger",
"description": "Enables an external alarm trigger.",
"description": "Trigger the alarm manually.",
"fields": {
"code": {
"name": "[%key:component::alarm_control_panel::services::alarm_disarm::fields::code::name%]",
@@ -138,5 +138,10 @@
}
}
}
},
"exceptions": {
"code_arm_required": {
"message": "Arming requires a code but none was given for {entity_id}."
}
}
}
+13 -7
View File
@@ -816,13 +816,19 @@ class AlexaPlaybackController(AlexaCapability):
"""
supported_features = self.entity.attributes.get(ATTR_SUPPORTED_FEATURES, 0)
operations = {
media_player.MediaPlayerEntityFeature.NEXT_TRACK: "Next",
media_player.MediaPlayerEntityFeature.PAUSE: "Pause",
media_player.MediaPlayerEntityFeature.PLAY: "Play",
media_player.MediaPlayerEntityFeature.PREVIOUS_TRACK: "Previous",
media_player.MediaPlayerEntityFeature.STOP: "Stop",
}
operations: dict[
cover.CoverEntityFeature | media_player.MediaPlayerEntityFeature, str
]
if self.entity.domain == cover.DOMAIN:
operations = {cover.CoverEntityFeature.STOP: "Stop"}
else:
operations = {
media_player.MediaPlayerEntityFeature.NEXT_TRACK: "Next",
media_player.MediaPlayerEntityFeature.PAUSE: "Pause",
media_player.MediaPlayerEntityFeature.PLAY: "Play",
media_player.MediaPlayerEntityFeature.PREVIOUS_TRACK: "Previous",
media_player.MediaPlayerEntityFeature.STOP: "Stop",
}
return [
value
@@ -559,6 +559,10 @@ class CoverCapabilities(AlexaEntity):
)
if supported & cover.CoverEntityFeature.SET_TILT_POSITION:
yield AlexaRangeController(self.entity, instance=f"{cover.DOMAIN}.tilt")
if supported & (
cover.CoverEntityFeature.STOP | cover.CoverEntityFeature.STOP_TILT
):
yield AlexaPlaybackController(self.entity, instance=f"{cover.DOMAIN}.stop")
yield AlexaEndpointHealth(self.hass, self.entity)
yield Alexa(self.entity)
+20 -3
View File
@@ -2,6 +2,7 @@
from __future__ import annotations
import asyncio
from collections.abc import Callable, Coroutine
import logging
import math
@@ -764,9 +765,25 @@ async def async_api_stop(
entity = directive.entity
data: dict[str, Any] = {ATTR_ENTITY_ID: entity.entity_id}
await hass.services.async_call(
entity.domain, SERVICE_MEDIA_STOP, data, blocking=False, context=context
)
if entity.domain == cover.DOMAIN:
supported: int = entity.attributes.get(ATTR_SUPPORTED_FEATURES, 0)
feature_services: dict[int, str] = {
cover.CoverEntityFeature.STOP.value: cover.SERVICE_STOP_COVER,
cover.CoverEntityFeature.STOP_TILT.value: cover.SERVICE_STOP_COVER_TILT,
}
await asyncio.gather(
*(
hass.services.async_call(
entity.domain, service, data, blocking=False, context=context
)
for feature, service in feature_services.items()
if feature & supported
)
)
else:
await hass.services.async_call(
entity.domain, SERVICE_MEDIA_STOP, data, blocking=False, context=context
)
return directive.response()
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/alpha_vantage",
"iot_class": "cloud_polling",
"loggers": ["alpha_vantage"],
"quality_scale": "legacy",
"requirements": ["alpha-vantage==2.3.1"]
}
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/amazon_polly",
"iot_class": "cloud_push",
"loggers": ["boto3", "botocore", "s3transfer"],
"quality_scale": "legacy",
"requirements": ["boto3==1.34.131"]
}
@@ -1,7 +1,6 @@
"""Support for Amber Electric."""
from amberelectric import Configuration
from amberelectric.api import amber_api
import amberelectric
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_TOKEN
@@ -15,8 +14,9 @@ type AmberConfigEntry = ConfigEntry[AmberUpdateCoordinator]
async def async_setup_entry(hass: HomeAssistant, entry: AmberConfigEntry) -> bool:
"""Set up Amber Electric from a config entry."""
configuration = Configuration(access_token=entry.data[CONF_API_TOKEN])
api_instance = amber_api.AmberApi.create(configuration)
configuration = amberelectric.Configuration(access_token=entry.data[CONF_API_TOKEN])
api_client = amberelectric.ApiClient(configuration)
api_instance = amberelectric.AmberApi(api_client)
site_id = entry.data[CONF_SITE_ID]
coordinator = AmberUpdateCoordinator(hass, api_instance, site_id)
@@ -3,8 +3,8 @@
from __future__ import annotations
import amberelectric
from amberelectric.api import amber_api
from amberelectric.model.site import Site, SiteStatus
from amberelectric.models.site import Site
from amberelectric.models.site_status import SiteStatus
import voluptuous as vol
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
@@ -23,11 +23,15 @@ API_URL = "https://app.amber.com.au/developers"
def generate_site_selector_name(site: Site) -> str:
"""Generate the name to show in the site drop down in the configuration flow."""
# For some reason the generated API key returns this as any, not a string. Thanks pydantic
nmi = str(site.nmi)
if site.status == SiteStatus.CLOSED:
return site.nmi + " (Closed: " + site.closed_on.isoformat() + ")" # type: ignore[no-any-return]
if site.closed_on is None:
return f"{nmi} (Closed)"
return f"{nmi} (Closed: {site.closed_on.isoformat()})"
if site.status == SiteStatus.PENDING:
return site.nmi + " (Pending)" # type: ignore[no-any-return]
return site.nmi # type: ignore[no-any-return]
return f"{nmi} (Pending)"
return nmi
def filter_sites(sites: list[Site]) -> list[Site]:
@@ -35,7 +39,7 @@ def filter_sites(sites: list[Site]) -> list[Site]:
filtered: list[Site] = []
filtered_nmi: set[str] = set()
for site in sorted(sites, key=lambda site: site.status.value):
for site in sorted(sites, key=lambda site: site.status):
if site.status == SiteStatus.ACTIVE or site.nmi not in filtered_nmi:
filtered.append(site)
filtered_nmi.add(site.nmi)
@@ -56,7 +60,8 @@ class AmberElectricConfigFlow(ConfigFlow, domain=DOMAIN):
def _fetch_sites(self, token: str) -> list[Site] | None:
configuration = amberelectric.Configuration(access_token=token)
api: amber_api.AmberApi = amber_api.AmberApi.create(configuration)
api_client = amberelectric.ApiClient(configuration)
api = amberelectric.AmberApi(api_client)
try:
sites: list[Site] = filter_sites(api.get_sites())
@@ -5,13 +5,13 @@ from __future__ import annotations
from datetime import timedelta
from typing import Any
from amberelectric import ApiException
from amberelectric.api import amber_api
from amberelectric.model.actual_interval import ActualInterval
from amberelectric.model.channel import ChannelType
from amberelectric.model.current_interval import CurrentInterval
from amberelectric.model.forecast_interval import ForecastInterval
from amberelectric.model.interval import Descriptor
import amberelectric
from amberelectric.models.actual_interval import ActualInterval
from amberelectric.models.channel import ChannelType
from amberelectric.models.current_interval import CurrentInterval
from amberelectric.models.forecast_interval import ForecastInterval
from amberelectric.models.price_descriptor import PriceDescriptor
from amberelectric.rest import ApiException
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@@ -31,22 +31,22 @@ def is_forecast(interval: ActualInterval | CurrentInterval | ForecastInterval) -
def is_general(interval: ActualInterval | CurrentInterval | ForecastInterval) -> bool:
"""Return true if the supplied interval is on the general channel."""
return interval.channel_type == ChannelType.GENERAL # type: ignore[no-any-return]
return interval.channel_type == ChannelType.GENERAL
def is_controlled_load(
interval: ActualInterval | CurrentInterval | ForecastInterval,
) -> bool:
"""Return true if the supplied interval is on the controlled load channel."""
return interval.channel_type == ChannelType.CONTROLLED_LOAD # type: ignore[no-any-return]
return interval.channel_type == ChannelType.CONTROLLEDLOAD
def is_feed_in(interval: ActualInterval | CurrentInterval | ForecastInterval) -> bool:
"""Return true if the supplied interval is on the feed in channel."""
return interval.channel_type == ChannelType.FEED_IN # type: ignore[no-any-return]
return interval.channel_type == ChannelType.FEEDIN
def normalize_descriptor(descriptor: Descriptor) -> str | None:
def normalize_descriptor(descriptor: PriceDescriptor | None) -> str | None:
"""Return the snake case versions of descriptor names. Returns None if the name is not recognized."""
if descriptor is None:
return None
@@ -71,7 +71,7 @@ class AmberUpdateCoordinator(DataUpdateCoordinator):
"""AmberUpdateCoordinator - In charge of downloading the data for a site, which all the sensors read."""
def __init__(
self, hass: HomeAssistant, api: amber_api.AmberApi, site_id: str
self, hass: HomeAssistant, api: amberelectric.AmberApi, site_id: str
) -> None:
"""Initialise the data service."""
super().__init__(
@@ -93,12 +93,13 @@ class AmberUpdateCoordinator(DataUpdateCoordinator):
"grid": {},
}
try:
data = self._api.get_current_price(self.site_id, next=48)
data = self._api.get_current_prices(self.site_id, next=48)
intervals = [interval.actual_instance for interval in data]
except ApiException as api_exception:
raise UpdateFailed("Missing price data, skipping update") from api_exception
current = [interval for interval in data if is_current(interval)]
forecasts = [interval for interval in data if is_forecast(interval)]
current = [interval for interval in intervals if is_current(interval)]
forecasts = [interval for interval in intervals if is_forecast(interval)]
general = [interval for interval in current if is_general(interval)]
if len(general) == 0:
@@ -137,7 +138,7 @@ class AmberUpdateCoordinator(DataUpdateCoordinator):
interval for interval in forecasts if is_feed_in(interval)
]
LOGGER.debug("Fetched new Amber data: %s", data)
LOGGER.debug("Fetched new Amber data: %s", intervals)
return result
async def _async_update_data(self) -> dict[str, Any]:
@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/amberelectric",
"iot_class": "cloud_polling",
"loggers": ["amberelectric"],
"requirements": ["amberelectric==1.1.1"]
"requirements": ["amberelectric==2.0.12"]
}
@@ -8,9 +8,9 @@ from __future__ import annotations
from typing import Any
from amberelectric.model.channel import ChannelType
from amberelectric.model.current_interval import CurrentInterval
from amberelectric.model.forecast_interval import ForecastInterval
from amberelectric.models.channel import ChannelType
from amberelectric.models.current_interval import CurrentInterval
from amberelectric.models.forecast_interval import ForecastInterval
from homeassistant.components.sensor import (
SensorEntity,
@@ -52,7 +52,7 @@ class AmberSensor(CoordinatorEntity[AmberUpdateCoordinator], SensorEntity):
self,
coordinator: AmberUpdateCoordinator,
description: SensorEntityDescription,
channel_type: ChannelType,
channel_type: str,
) -> None:
"""Initialize the Sensor."""
super().__init__(coordinator)
@@ -73,7 +73,7 @@ class AmberPriceSensor(AmberSensor):
"""Return the current price in $/kWh."""
interval = self.coordinator.data[self.entity_description.key][self.channel_type]
if interval.channel_type == ChannelType.FEED_IN:
if interval.channel_type == ChannelType.FEEDIN:
return format_cents_to_dollars(interval.per_kwh) * -1
return format_cents_to_dollars(interval.per_kwh)
@@ -87,9 +87,9 @@ class AmberPriceSensor(AmberSensor):
return data
data["duration"] = interval.duration
data["date"] = interval.date.isoformat()
data["date"] = interval.var_date.isoformat()
data["per_kwh"] = format_cents_to_dollars(interval.per_kwh)
if interval.channel_type == ChannelType.FEED_IN:
if interval.channel_type == ChannelType.FEEDIN:
data["per_kwh"] = data["per_kwh"] * -1
data["nem_date"] = interval.nem_time.isoformat()
data["spot_per_kwh"] = format_cents_to_dollars(interval.spot_per_kwh)
@@ -120,7 +120,7 @@ class AmberForecastSensor(AmberSensor):
return None
interval = intervals[0]
if interval.channel_type == ChannelType.FEED_IN:
if interval.channel_type == ChannelType.FEEDIN:
return format_cents_to_dollars(interval.per_kwh) * -1
return format_cents_to_dollars(interval.per_kwh)
@@ -142,10 +142,10 @@ class AmberForecastSensor(AmberSensor):
for interval in intervals:
datum = {}
datum["duration"] = interval.duration
datum["date"] = interval.date.isoformat()
datum["date"] = interval.var_date.isoformat()
datum["nem_date"] = interval.nem_time.isoformat()
datum["per_kwh"] = format_cents_to_dollars(interval.per_kwh)
if interval.channel_type == ChannelType.FEED_IN:
if interval.channel_type == ChannelType.FEEDIN:
datum["per_kwh"] = datum["per_kwh"] * -1
datum["spot_per_kwh"] = format_cents_to_dollars(interval.spot_per_kwh)
datum["start_time"] = interval.start_time.isoformat()
@@ -6,5 +6,6 @@
"documentation": "https://www.home-assistant.io/integrations/amcrest",
"iot_class": "local_polling",
"loggers": ["amcrest"],
"quality_scale": "legacy",
"requirements": ["amcrest==1.9.8"]
}
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/ampio",
"iot_class": "cloud_polling",
"loggers": ["asmog"],
"quality_scale": "legacy",
"requirements": ["asmog==0.0.6"]
}
@@ -16,7 +16,6 @@ from homeassistant.config_entries import (
ConfigFlow,
ConfigFlowResult,
OptionsFlow,
OptionsFlowWithConfigEntry,
)
from homeassistant.core import callback
from homeassistant.helpers.aiohttp_client import async_get_clientsession
@@ -46,9 +45,11 @@ class HomeassistantAnalyticsConfigFlow(ConfigFlow, domain=DOMAIN):
@staticmethod
@callback
def async_get_options_flow(config_entry: ConfigEntry) -> OptionsFlow:
def async_get_options_flow(
config_entry: ConfigEntry,
) -> HomeassistantAnalyticsOptionsFlowHandler:
"""Get the options flow for this handler."""
return HomeassistantAnalyticsOptionsFlowHandler(config_entry)
return HomeassistantAnalyticsOptionsFlowHandler()
async def async_step_user(
self, user_input: dict[str, Any] | None = None
@@ -132,7 +133,7 @@ class HomeassistantAnalyticsConfigFlow(ConfigFlow, domain=DOMAIN):
)
class HomeassistantAnalyticsOptionsFlowHandler(OptionsFlowWithConfigEntry):
class HomeassistantAnalyticsOptionsFlowHandler(OptionsFlow):
"""Handle Homeassistant Analytics options."""
async def async_step_init(
@@ -211,6 +212,6 @@ class HomeassistantAnalyticsOptionsFlowHandler(OptionsFlowWithConfigEntry):
),
},
),
self.options,
self.config_entry.options,
),
)
+10 -9
View File
@@ -135,15 +135,16 @@ async def async_connect_androidtv(
)
aftv = await async_androidtv_setup(
config[CONF_HOST],
config[CONF_PORT],
adbkey,
config.get(CONF_ADB_SERVER_IP),
config.get(CONF_ADB_SERVER_PORT, DEFAULT_ADB_SERVER_PORT),
state_detection_rules,
config[CONF_DEVICE_CLASS],
timeout,
signer,
host=config[CONF_HOST],
port=config[CONF_PORT],
adbkey=adbkey,
adb_server_ip=config.get(CONF_ADB_SERVER_IP),
adb_server_port=config.get(CONF_ADB_SERVER_PORT, DEFAULT_ADB_SERVER_PORT),
state_detection_rules=state_detection_rules,
device_class=config[CONF_DEVICE_CLASS],
auth_timeout_s=timeout,
signer=signer,
log_errors=False,
)
if not aftv.available:
@@ -13,7 +13,7 @@ from homeassistant.config_entries import (
ConfigEntry,
ConfigFlow,
ConfigFlowResult,
OptionsFlowWithConfigEntry,
OptionsFlow,
)
from homeassistant.const import CONF_DEVICE_CLASS, CONF_HOST, CONF_PORT
from homeassistant.core import callback
@@ -186,16 +186,14 @@ class AndroidTVFlowHandler(ConfigFlow, domain=DOMAIN):
return OptionsFlowHandler(config_entry)
class OptionsFlowHandler(OptionsFlowWithConfigEntry):
class OptionsFlowHandler(OptionsFlow):
"""Handle an option flow for Android Debug Bridge."""
def __init__(self, config_entry: ConfigEntry) -> None:
"""Initialize options flow."""
super().__init__(config_entry)
self._apps: dict[str, Any] = self.options.setdefault(CONF_APPS, {})
self._state_det_rules: dict[str, Any] = self.options.setdefault(
CONF_STATE_DETECTION_RULES, {}
self._apps: dict[str, Any] = dict(config_entry.options.get(CONF_APPS, {}))
self._state_det_rules: dict[str, Any] = dict(
config_entry.options.get(CONF_STATE_DETECTION_RULES, {})
)
self._conf_app_id: str | None = None
self._conf_rule_id: str | None = None
@@ -237,7 +235,7 @@ class OptionsFlowHandler(OptionsFlowWithConfigEntry):
SelectOptionDict(value=k, label=v) for k, v in apps_list.items()
]
rules = [RULES_NEW_ID, *self._state_det_rules]
options = self.options
options = self.config_entry.options
data_schema = vol.Schema(
{
@@ -9,7 +9,7 @@
"loggers": ["adb_shell", "androidtv", "pure_python_adb"],
"requirements": [
"adb-shell[async]==0.4.4",
"androidtv[async]==0.0.73",
"androidtv[async]==0.0.75",
"pure-python-adb[async]==0.3.0.dev0"
]
}
@@ -20,7 +20,7 @@ from homeassistant.config_entries import (
ConfigEntry,
ConfigFlow,
ConfigFlowResult,
OptionsFlowWithConfigEntry,
OptionsFlow,
)
from homeassistant.const import CONF_HOST, CONF_MAC, CONF_NAME
from homeassistant.core import callback
@@ -221,13 +221,12 @@ class AndroidTVRemoteConfigFlow(ConfigFlow, domain=DOMAIN):
return AndroidTVRemoteOptionsFlowHandler(config_entry)
class AndroidTVRemoteOptionsFlowHandler(OptionsFlowWithConfigEntry):
class AndroidTVRemoteOptionsFlowHandler(OptionsFlow):
"""Android TV Remote options flow."""
def __init__(self, config_entry: ConfigEntry) -> None:
"""Initialize options flow."""
super().__init__(config_entry)
self._apps: dict[str, Any] = self.options.setdefault(CONF_APPS, {})
self._apps: dict[str, Any] = dict(config_entry.options.get(CONF_APPS, {}))
self._conf_app_id: str | None = None
@callback
@@ -7,7 +7,6 @@
"integration_type": "device",
"iot_class": "local_push",
"loggers": ["androidtvremote2"],
"quality_scale": "platinum",
"requirements": ["androidtvremote2==0.1.2"],
"zeroconf": ["_androidtvremote2._tcp.local."]
}
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/anel_pwrctrl",
"iot_class": "local_polling",
"loggers": ["anel_pwrctrl"],
"quality_scale": "legacy",
"requirements": ["anel-pwrctrl-homeassistant==0.0.1.dev2"]
}
@@ -121,7 +121,6 @@ class AnthropicOptionsFlow(OptionsFlow):
def __init__(self, config_entry: ConfigEntry) -> None:
"""Initialize options flow."""
self.config_entry = config_entry
self.last_rendered_recommended = config_entry.options.get(
CONF_RECOMMENDED, False
)
@@ -5,5 +5,5 @@
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/aosmith",
"iot_class": "cloud_polling",
"requirements": ["py-aosmith==1.0.10"]
"requirements": ["py-aosmith==1.0.12"]
}
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/apache_kafka",
"iot_class": "local_push",
"loggers": ["aiokafka", "kafka_python"],
"quality_scale": "legacy",
"requirements": ["aiokafka==0.10.0"]
}
@@ -6,6 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/apcupsd",
"iot_class": "local_polling",
"loggers": ["apcaccess"],
"quality_scale": "silver",
"requirements": ["aioapcaccess==0.4.2"]
}
@@ -7,7 +7,7 @@
"documentation": "https://www.home-assistant.io/integrations/apple_tv",
"iot_class": "local_push",
"loggers": ["pyatv", "srptools"],
"requirements": ["pyatv==0.15.1"],
"requirements": ["pyatv==0.16.0"],
"zeroconf": [
"_mediaremotetv._tcp.local.",
"_companion-link._tcp.local.",
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/apprise",
"iot_class": "cloud_push",
"loggers": ["apprise"],
"quality_scale": "legacy",
"requirements": ["apprise==1.9.0"]
}
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/aprs",
"iot_class": "cloud_push",
"loggers": ["aprslib", "geographiclib", "geopy"],
"quality_scale": "legacy",
"requirements": ["aprslib==0.7.2", "geopy==2.3.0"]
}
@@ -38,6 +38,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ApSystemsConfigEntry) ->
ip_address=entry.data[CONF_IP_ADDRESS],
port=entry.data.get(CONF_PORT, DEFAULT_PORT),
timeout=8,
enable_debounce=True,
)
coordinator = ApSystemsDataCoordinator(hass, api)
await coordinator.async_config_entry_first_refresh()
@@ -5,12 +5,17 @@ from __future__ import annotations
from dataclasses import dataclass
from datetime import timedelta
from APsystemsEZ1 import APsystemsEZ1M, ReturnAlarmInfo, ReturnOutputData
from APsystemsEZ1 import (
APsystemsEZ1M,
InverterReturnedError,
ReturnAlarmInfo,
ReturnOutputData,
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import LOGGER
from .const import DOMAIN, LOGGER
@dataclass
@@ -43,6 +48,11 @@ class ApSystemsDataCoordinator(DataUpdateCoordinator[ApSystemsSensorData]):
self.api.min_power = device_info.minPower
async def _async_update_data(self) -> ApSystemsSensorData:
output_data = await self.api.get_output_data()
alarm_info = await self.api.get_alarm_info()
try:
output_data = await self.api.get_output_data()
alarm_info = await self.api.get_alarm_info()
except InverterReturnedError:
raise UpdateFailed(
translation_domain=DOMAIN, translation_key="inverter_error"
) from None
return ApSystemsSensorData(output_data=output_data, alarm_info=alarm_info)
@@ -6,5 +6,5 @@
"documentation": "https://www.home-assistant.io/integrations/apsystems",
"integration_type": "device",
"iot_class": "local_polling",
"requirements": ["apsystems-ez1==2.2.1"]
"requirements": ["apsystems-ez1==2.4.0"]
}
@@ -72,5 +72,10 @@
"name": "Inverter status"
}
}
},
"exceptions": {
"inverter_error": {
"message": "Inverter returned an error"
}
}
}
+2 -1
View File
@@ -5,6 +5,7 @@ from __future__ import annotations
from typing import Any
from aiohttp.client_exceptions import ClientConnectionError
from APsystemsEZ1 import InverterReturnedError
from homeassistant.components.switch import SwitchDeviceClass, SwitchEntity
from homeassistant.core import HomeAssistant
@@ -40,7 +41,7 @@ class ApSystemsInverterSwitch(ApSystemsEntity, SwitchEntity):
"""Update switch status and availability."""
try:
status = await self._api.get_device_power_status()
except (TimeoutError, ClientConnectionError):
except (TimeoutError, ClientConnectionError, InverterReturnedError):
self._attr_available = False
else:
self._attr_available = True
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/aqualogic",
"iot_class": "local_push",
"loggers": ["aqualogic"],
"quality_scale": "legacy",
"requirements": ["aqualogic==2.6"]
}
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/aquostv",
"iot_class": "local_polling",
"loggers": ["sharp_aquos_rc"],
"quality_scale": "legacy",
"requirements": ["sharp_aquos_rc==0.3.2"]
}
+2 -1
View File
@@ -3,5 +3,6 @@
"name": "aREST",
"codeowners": [],
"documentation": "https://www.home-assistant.io/integrations/arest",
"iot_class": "local_polling"
"iot_class": "local_polling",
"quality_scale": "legacy"
}
@@ -6,5 +6,6 @@
"integration_type": "hub",
"iot_class": "local_polling",
"loggers": ["arris_tg2492lg"],
"quality_scale": "legacy",
"requirements": ["arris-tg2492lg==2.2.0"]
}
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/aruba",
"iot_class": "local_polling",
"loggers": ["pexpect", "ptyprocess"],
"quality_scale": "legacy",
"requirements": ["pexpect==4.6.0"]
}
+2 -1
View File
@@ -4,5 +4,6 @@
"codeowners": [],
"dependencies": ["mqtt"],
"documentation": "https://www.home-assistant.io/integrations/arwn",
"iot_class": "local_polling"
"iot_class": "local_polling",
"quality_scale": "legacy"
}
@@ -22,8 +22,8 @@ class EnhancedAudioChunk:
timestamp_ms: int
"""Timestamp relative to start of audio stream (milliseconds)"""
is_speech: bool | None
"""True if audio chunk likely contains speech, False if not, None if unknown"""
speech_probability: float | None
"""Probability that audio chunk contains speech (0-1), None if unknown"""
class AudioEnhancer(ABC):
@@ -70,27 +70,27 @@ class MicroVadSpeexEnhancer(AudioEnhancer):
)
self.vad: MicroVad | None = None
self.threshold = 0.5
if self.is_vad_enabled:
self.vad = MicroVad()
_LOGGER.debug("Initialized microVAD with threshold=%s", self.threshold)
_LOGGER.debug("Initialized microVAD")
def enhance_chunk(self, audio: bytes, timestamp_ms: int) -> EnhancedAudioChunk:
"""Enhance 10ms chunk of PCM audio @ 16Khz with 16-bit mono samples."""
is_speech: bool | None = None
speech_probability: float | None = None
assert len(audio) == BYTES_PER_CHUNK
if self.vad is not None:
# Run VAD
speech_prob = self.vad.Process10ms(audio)
is_speech = speech_prob > self.threshold
speech_probability = self.vad.Process10ms(audio)
if self.audio_processor is not None:
# Run noise suppression and auto gain
audio = self.audio_processor.Process10ms(audio).audio
return EnhancedAudioChunk(
audio=audio, timestamp_ms=timestamp_ms, is_speech=is_speech
audio=audio,
timestamp_ms=timestamp_ms,
speech_probability=speech_probability,
)
@@ -29,8 +29,10 @@ from homeassistant.components import (
from homeassistant.components.tts import (
generate_media_source_id as tts_generate_media_source_id,
)
from homeassistant.const import MATCH_ALL
from homeassistant.core import Context, HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers import intent
from homeassistant.helpers.collection import (
CHANGE_UPDATED,
CollectionError,
@@ -109,6 +111,7 @@ PIPELINE_FIELDS: VolDictType = {
vol.Required("tts_voice"): vol.Any(str, None),
vol.Required("wake_word_entity"): vol.Any(str, None),
vol.Required("wake_word_id"): vol.Any(str, None),
vol.Optional("prefer_local_intents"): bool,
}
STORED_PIPELINE_RUNS = 10
@@ -322,6 +325,7 @@ async def async_update_pipeline(
tts_voice: str | None | UndefinedType = UNDEFINED,
wake_word_entity: str | None | UndefinedType = UNDEFINED,
wake_word_id: str | None | UndefinedType = UNDEFINED,
prefer_local_intents: bool | UndefinedType = UNDEFINED,
) -> None:
"""Update a pipeline."""
pipeline_data: PipelineData = hass.data[DOMAIN]
@@ -345,6 +349,7 @@ async def async_update_pipeline(
("tts_voice", tts_voice),
("wake_word_entity", wake_word_entity),
("wake_word_id", wake_word_id),
("prefer_local_intents", prefer_local_intents),
)
if val is not UNDEFINED
}
@@ -398,6 +403,7 @@ class Pipeline:
tts_voice: str | None
wake_word_entity: str | None
wake_word_id: str | None
prefer_local_intents: bool = False
id: str = field(default_factory=ulid_util.ulid_now)
@@ -421,6 +427,7 @@ class Pipeline:
tts_voice=data["tts_voice"],
wake_word_entity=data["wake_word_entity"],
wake_word_id=data["wake_word_id"],
prefer_local_intents=data.get("prefer_local_intents", False),
)
def to_json(self) -> dict[str, Any]:
@@ -438,6 +445,7 @@ class Pipeline:
"tts_voice": self.tts_voice,
"wake_word_entity": self.wake_word_entity,
"wake_word_id": self.wake_word_id,
"prefer_local_intents": self.prefer_local_intents,
}
@@ -780,7 +788,9 @@ class PipelineRun:
# speaking the voice command.
audio_chunks_for_stt.extend(
EnhancedAudioChunk(
audio=chunk_ts[0], timestamp_ms=chunk_ts[1], is_speech=False
audio=chunk_ts[0],
timestamp_ms=chunk_ts[1],
speech_probability=None,
)
for chunk_ts in result.queued_audio
)
@@ -827,7 +837,7 @@ class PipelineRun:
if wake_word_vad is not None:
chunk_seconds = (len(chunk.audio) // sample_width) / sample_rate
if not wake_word_vad.process(chunk_seconds, chunk.is_speech):
if not wake_word_vad.process(chunk_seconds, chunk.speech_probability):
raise WakeWordTimeoutError(
code="wake-word-timeout", message="Wake word was not detected"
)
@@ -955,7 +965,7 @@ class PipelineRun:
if stt_vad is not None:
chunk_seconds = (len(chunk.audio) // sample_width) / sample_rate
if not stt_vad.process(chunk_seconds, chunk.is_speech):
if not stt_vad.process(chunk_seconds, chunk.speech_probability):
# Silence detected at the end of voice command
self.process_event(
PipelineEvent(
@@ -1000,29 +1010,80 @@ class PipelineRun:
if self.intent_agent is None:
raise RuntimeError("Recognize intent was not prepared")
if self.pipeline.conversation_language == MATCH_ALL:
# LLMs support all languages ('*') so use pipeline language for
# intent fallback.
input_language = self.pipeline.language
else:
input_language = self.pipeline.conversation_language
self.process_event(
PipelineEvent(
PipelineEventType.INTENT_START,
{
"engine": self.intent_agent,
"language": self.pipeline.conversation_language,
"language": input_language,
"intent_input": intent_input,
"conversation_id": conversation_id,
"device_id": device_id,
"prefer_local_intents": self.pipeline.prefer_local_intents,
},
)
)
try:
conversation_result = await conversation.async_converse(
hass=self.hass,
user_input = conversation.ConversationInput(
text=intent_input,
context=self.context,
conversation_id=conversation_id,
device_id=device_id,
context=self.context,
language=self.pipeline.conversation_language,
language=input_language,
agent_id=self.intent_agent,
)
processed_locally = self.intent_agent == conversation.HOME_ASSISTANT_AGENT
conversation_result: conversation.ConversationResult | None = None
if user_input.agent_id != conversation.HOME_ASSISTANT_AGENT:
# Sentence triggers override conversation agent
if (
trigger_response_text
:= await conversation.async_handle_sentence_triggers(
self.hass, user_input
)
) is not None:
# Sentence trigger matched
trigger_response = intent.IntentResponse(
self.pipeline.conversation_language
)
trigger_response.async_set_speech(trigger_response_text)
conversation_result = conversation.ConversationResult(
response=trigger_response,
conversation_id=user_input.conversation_id,
)
# Try local intents first, if preferred.
elif self.pipeline.prefer_local_intents and (
intent_response := await conversation.async_handle_intents(
self.hass, user_input
)
):
# Local intent matched
conversation_result = conversation.ConversationResult(
response=intent_response,
conversation_id=user_input.conversation_id,
)
processed_locally = True
if conversation_result is None:
# Fall back to pipeline conversation agent
conversation_result = await conversation.async_converse(
hass=self.hass,
text=user_input.text,
conversation_id=user_input.conversation_id,
device_id=user_input.device_id,
context=user_input.context,
language=user_input.language,
agent_id=user_input.agent_id,
)
except Exception as src_error:
_LOGGER.exception("Unexpected error during intent recognition")
raise IntentRecognitionError(
@@ -1035,7 +1096,10 @@ class PipelineRun:
self.process_event(
PipelineEvent(
PipelineEventType.INTENT_END,
{"intent_output": conversation_result.as_dict()},
{
"processed_locally": processed_locally,
"intent_output": conversation_result.as_dict(),
},
)
)
@@ -1221,7 +1285,7 @@ class PipelineRun:
yield EnhancedAudioChunk(
audio=sub_chunk,
timestamp_ms=timestamp_ms,
is_speech=None, # no VAD
speech_probability=None, # no VAD
)
timestamp_ms += MS_PER_CHUNK
+43 -21
View File
@@ -75,7 +75,7 @@ class AudioBuffer:
class VoiceCommandSegmenter:
"""Segments an audio stream into voice commands."""
speech_seconds: float = 0.3
speech_seconds: float = 0.1
"""Seconds of speech before voice command has started."""
command_seconds: float = 1.0
@@ -96,6 +96,12 @@ class VoiceCommandSegmenter:
timed_out: bool = False
"""True a timeout occurred during voice command."""
before_command_speech_threshold: float = 0.2
"""Probability threshold for speech before voice command."""
in_command_speech_threshold: float = 0.5
"""Probability threshold for speech during voice command."""
_speech_seconds_left: float = 0.0
"""Seconds left before considering voice command as started."""
@@ -124,7 +130,7 @@ class VoiceCommandSegmenter:
self._reset_seconds_left = self.reset_seconds
self.in_command = False
def process(self, chunk_seconds: float, is_speech: bool | None) -> bool:
def process(self, chunk_seconds: float, speech_probability: float | None) -> bool:
"""Process samples using external VAD.
Returns False when command is done.
@@ -134,7 +140,7 @@ class VoiceCommandSegmenter:
self._timeout_seconds_left -= chunk_seconds
if self._timeout_seconds_left <= 0:
_LOGGER.warning(
_LOGGER.debug(
"VAD end of speech detection timed out after %s seconds",
self.timeout_seconds,
)
@@ -142,7 +148,12 @@ class VoiceCommandSegmenter:
self.timed_out = True
return False
if speech_probability is None:
speech_probability = 0.0
if not self.in_command:
# Before command
is_speech = speech_probability > self.before_command_speech_threshold
if is_speech:
self._reset_seconds_left = self.reset_seconds
self._speech_seconds_left -= chunk_seconds
@@ -160,24 +171,29 @@ class VoiceCommandSegmenter:
if self._reset_seconds_left <= 0:
self._speech_seconds_left = self.speech_seconds
self._reset_seconds_left = self.reset_seconds
elif not is_speech:
# Silence in command
self._reset_seconds_left = self.reset_seconds
self._silence_seconds_left -= chunk_seconds
self._command_seconds_left -= chunk_seconds
if (self._silence_seconds_left <= 0) and (self._command_seconds_left <= 0):
# Command finished successfully
self.reset()
_LOGGER.debug("Voice command finished")
return False
else:
# Speech in command.
# Reset silence counter if enough speech.
self._reset_seconds_left -= chunk_seconds
self._command_seconds_left -= chunk_seconds
if self._reset_seconds_left <= 0:
self._silence_seconds_left = self.silence_seconds
# In command
is_speech = speech_probability > self.in_command_speech_threshold
if not is_speech:
# Silence in command
self._reset_seconds_left = self.reset_seconds
self._silence_seconds_left -= chunk_seconds
self._command_seconds_left -= chunk_seconds
if (self._silence_seconds_left <= 0) and (
self._command_seconds_left <= 0
):
# Command finished successfully
self.reset()
_LOGGER.debug("Voice command finished")
return False
else:
# Speech in command.
# Reset silence counter if enough speech.
self._reset_seconds_left -= chunk_seconds
self._command_seconds_left -= chunk_seconds
if self._reset_seconds_left <= 0:
self._silence_seconds_left = self.silence_seconds
self._reset_seconds_left = self.reset_seconds
return True
@@ -226,6 +242,9 @@ class VoiceActivityTimeout:
reset_seconds: float = 0.5
"""Seconds of speech before resetting timeout."""
speech_threshold: float = 0.5
"""Threshold for speech."""
_silence_seconds_left: float = 0.0
"""Seconds left before considering voice command as stopped."""
@@ -241,12 +260,15 @@ class VoiceActivityTimeout:
self._silence_seconds_left = self.silence_seconds
self._reset_seconds_left = self.reset_seconds
def process(self, chunk_seconds: float, is_speech: bool | None) -> bool:
def process(self, chunk_seconds: float, speech_probability: float | None) -> bool:
"""Process samples using external VAD.
Returns False when timeout is reached.
"""
if is_speech:
if speech_probability is None:
speech_probability = 0.0
if speech_probability > self.speech_threshold:
# Speech
self._reset_seconds_left -= chunk_seconds
if self._reset_seconds_left <= 0:
@@ -4,5 +4,6 @@
"codeowners": ["@mtdcr"],
"documentation": "https://www.home-assistant.io/integrations/aten_pe",
"iot_class": "local_polling",
"quality_scale": "legacy",
"requirements": ["atenpdu==0.3.2"]
}
@@ -5,5 +5,6 @@
"documentation": "https://www.home-assistant.io/integrations/atome",
"iot_class": "cloud_polling",
"loggers": ["pyatome"],
"quality_scale": "legacy",
"requirements": ["pyAtome==0.1.1"]
}
@@ -28,5 +28,5 @@
"documentation": "https://www.home-assistant.io/integrations/august",
"iot_class": "cloud_push",
"loggers": ["pubnub", "yalexs"],
"requirements": ["yalexs==8.10.0", "yalexs-ble==2.5.0"]
"requirements": ["yalexs==8.10.0", "yalexs-ble==2.5.5"]
}
@@ -22,13 +22,14 @@ class AussieBroadbandConfigFlow(ConfigFlow, domain=DOMAIN):
VERSION = 1
_reauth_username: str
def __init__(self) -> None:
"""Initialize the config flow."""
self.data: dict = {}
self.options: dict = {CONF_SERVICES: []}
self.services: list[dict[str, Any]] = []
self.client: AussieBB | None = None
self._reauth_username: str | None = None
async def async_auth(self, user_input: dict[str, str]) -> dict[str, str] | None:
"""Reusable Auth Helper."""
@@ -92,7 +93,7 @@ class AussieBroadbandConfigFlow(ConfigFlow, domain=DOMAIN):
errors: dict[str, str] | None = None
if user_input and self._reauth_username:
if user_input:
data = {
CONF_USERNAME: self._reauth_username,
CONF_PASSWORD: user_input[CONF_PASSWORD],

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