Compare commits

..

918 Commits

Author SHA1 Message Date
Shay Levy
628cc5dccb Update opencv-python-headless to 4.9.0.80 2024-03-13 22:41:47 +00:00
Joost Lekkerkerker
bf02befe4a Add service icons to Browser (#113283) 2024-03-13 18:06:33 -04:00
Joost Lekkerkerker
daaadd16e1 Add service icons to Bluesound (#113281) 2024-03-13 18:06:00 -04:00
Robert Svensson
932e073fee Split out deCONZ config model (#112851)
* Add separate deCONZ config class

* Use config in get_deconz_api
2024-03-13 22:49:49 +01:00
Joost Lekkerkerker
77917506bb Improve lists in integrations [R-S] (#113233)
* Improve lists in integrations [R-S]

* Fix

* Fix
2024-03-13 21:55:00 +01:00
Joost Lekkerkerker
e6a692f354 Improve lists in integrations [N-O] (#113231) 2024-03-13 21:51:38 +01:00
Joost Lekkerkerker
595d07f1c6 Improve lists in integrations [L-M] (#113227)
* Improve lists in integrations [L-M]

* Update homeassistant/components/mailbox/__init__.py

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

* Fix

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-03-13 21:28:21 +01:00
Joost Lekkerkerker
4547131bbc Improve lists in integrations [X-Z] (#113253) 2024-03-13 20:32:12 +01:00
Jonny Bergdahl
64b42a3651 Fix Twitch auth token refresh (#112833)
* Fix for expired token

* Add auth token refresh.

* Eliminate extra auth call

* Fixed mock client

---------

Co-authored-by: Jonny Bergdahl <bergdahl@users.noreply.github.com>
2024-03-13 20:16:00 +01:00
Joost Lekkerkerker
a136638719 Rework Melissa tests (#113241) 2024-03-13 19:54:52 +01:00
Jan-Philipp Benecke
3e85b2ed12 Use async_update_reload_and_abort helper in tailwind (#110885) 2024-03-13 19:46:38 +01:00
Joost Lekkerkerker
49fc59548a Improve lists in integrations [V-W] (#113252) 2024-03-13 19:38:04 +01:00
J. Nick Koston
41215aa954 Remove remaining async_add_job calls in core (#113217) 2024-03-13 19:29:21 +01:00
Joost Lekkerkerker
b34302e51b Add icon translations to Roku (#112214)
* Add icon translations to Roku

* Add icon translations to Roku

* Fix

* Fix
2024-03-13 19:06:16 +01:00
Em
7c4747bb02 Parameterize some tests in generic_thermostat (#105643)
* test(generic_thermostat): parameterize some tests

* refactor: improvements following review
2024-03-13 18:23:52 +01:00
Joost Lekkerkerker
96cebdf096 Improve lists in integrations [T-U] (#113243) 2024-03-13 17:54:46 +01:00
FieldofClay
cdba14acd4 Ignore AussieBroadband services that don't support usage information (#110253) 2024-03-13 17:51:40 +01:00
Maciej Bieniek
b47fb68214 Bump brother library to version 4.0.2 (#113235)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-03-13 17:50:29 +01:00
Maciej Bieniek
3d9a9c3847 Use single_config_entry in Accuweather manifest (#111548)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-03-13 17:38:37 +01:00
J. Nick Koston
8bc3286343 Run coordinator shutdown eagerly (#113174) 2024-03-13 17:33:50 +01:00
Joost Lekkerkerker
9f19e7339d Improve lists in integrations [P-Q] (#113236) 2024-03-13 17:30:30 +01:00
Aarni Koskela
dc7eaee917 CI: Move pytest-github-actions-annotate-failures to test deps, upgrade (#104604)
Move pytest-github-actions-annotate-failures to test deps, upgrade

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-13 17:26:19 +01:00
Joost Lekkerkerker
761933acfe Improve lists in integrations [G-H] (#113168) 2024-03-13 17:25:27 +01:00
Jan-Philipp Benecke
d4ae4a9cd0 Deprecate homeassistant.components.is_on function (#111891) 2024-03-13 17:21:00 +01:00
Joost Lekkerkerker
7e0aac3feb Improve lists in integrations [I-K] (#113221) 2024-03-13 16:56:33 +01:00
Chris Talkington
dbb07c98e2 Bump pyipp to 0.15.0 (#113204)
update pyipp to 0.15.0
2024-03-13 17:22:07 +02:00
Aidan Timson
081a38a21c Add processes services to System Bridge (#103564)
* Add processes services to System Bridge

* Update import and fixes from model updates

* Change log level from info to debug for process retrieval

* Add exception handling for process not found

* Consistency

* Change HomeAssistantError to ServiceValidationError

* Update homeassistant/components/system_bridge/__init__.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-13 14:56:20 +01:00
J. Nick Koston
0ccd813a99 Remove HassJob wrapping from the DataUpdateCoordinator (#113192) 2024-03-13 14:46:45 +01:00
J. Nick Koston
f3984a9d3e Constrain pycountry to >=23.12.11 (#112849) 2024-03-13 13:53:52 +01:00
Joost Lekkerkerker
abc5d6a1b4 Update dsmr reader codeowner (#108152) 2024-03-13 12:17:19 +01:00
Diogo Gomes
669dd36daf Add diagnostics platform to IPMA (#105697) 2024-03-13 12:07:28 +01:00
J. Nick Koston
6666f6a8a5 Simplify clearing _attr cached_property in entities (#113136) 2024-03-13 12:04:27 +01:00
J. Nick Koston
44538ed3c3 Ensure apple_tv connect loop is cancelled on shutdown (#113191) 2024-03-13 12:02:56 +01:00
J. Nick Koston
a65908becc Migrate harmony to use async_run_hass_job (#113178) 2024-03-13 12:02:07 +01:00
J. Nick Koston
fb163278a4 Simplify entity _attr cached_property getter implementation (#113195) 2024-03-13 11:59:36 +01:00
J. Nick Koston
bbef3f7f68 Only extract traceback once in system_log (#113201) 2024-03-13 11:58:34 +01:00
J. Nick Koston
546e5f607f Migrate torque to use async_add_hass_job (#113218) 2024-03-13 11:57:11 +01:00
Stefan Agner
99eaa07f6f Add message from Bad Request errors to HassioAPIError (#113144)
Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
2024-03-13 11:29:39 +01:00
dependabot[bot]
6ecafbcc2c Bump actions/checkout from 4.1.1 to 4.1.2 (#113208)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-13 11:26:16 +01:00
J. Nick Koston
d6f1405874 Migrate one time listeners to use async_run_hass_job (#113179) 2024-03-13 11:06:30 +01:00
Jan Bouwhuis
488dae43d4 Improve lists for MQTT integration (#113184)
* Improve lists for MQTT integration

* Extra diagnostics tests

* Revert changes where the original version was probably faster

* Revert change to gather and await in series
2024-03-13 11:04:59 +01:00
Marc Mueller
b1346f3ccd Update pytest artifact actions to v4 (#110906) 2024-03-13 11:02:46 +01:00
Chris Talkington
2005e787bd Bump rokuecp to 0.19.2 (#113198) 2024-03-13 10:40:39 +01:00
dependabot[bot]
29772926ec Bump Wandalen/wretry.action from 1.4.9 to 1.4.10 (#113206)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-13 10:36:53 +01:00
dependabot[bot]
31a0b539bd Bump github/codeql-action from 3.24.6 to 3.24.7 (#113207)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-13 10:36:17 +01:00
J. Nick Koston
ca9dea79a4 Bump radios to 0.3.1 (#112850) 2024-03-13 10:29:50 +01:00
Jesse Hills
3d7d3d263d ESPHome: Add Date Entity support (#112475)
* ESPHome: Add Date Entity support

* Formatting

* Add missing state test
2024-03-13 08:02:52 +01:00
jjlawren
e5ba4dbde9 Properly mark Plex update sensor when current (#113197) 2024-03-12 18:06:33 -10:00
Jesse Hills
a2a8a8f119 ESPHome: Catch and re-raise client library errors as HomeAssistantErrors (#113026) 2024-03-12 18:06:25 -10:00
Ståle Storø Hauknes
d2bd68ba30 Bump airthings_ble to 0.7.1 (#113172)
Co-authored-by: Ståle Storø Hauknes <LaStrada@users.noreply.github.com>
2024-03-12 15:48:36 -10:00
Ståle Storø Hauknes
45fb5bcb42 Fix radon precision for Airthings BLE (#113185) 2024-03-12 15:45:18 -10:00
J. Nick Koston
e347096ef5 Add a task name to the config entry retry tasks (#113188) 2024-03-12 14:19:22 -10:00
TheJulianJES
9ec0e097ef Remove ZHA IasZone sensor migration (#111893) 2024-03-12 18:18:20 -04:00
J. Nick Koston
1cceaaf193 Small improvement to test run time (#113175) 2024-03-12 23:01:39 +01:00
mattmccormack
5ab7cb6ddd Add auto fan mode icon (#110185) 2024-03-12 21:55:26 +01:00
Aidan Timson
3da07bd160 Fix System Bridge media source data URL (#112612) 2024-03-12 21:54:03 +01:00
Joost Lekkerkerker
688395a3e3 Add icon translations to Bond (#111349) 2024-03-12 21:52:06 +01:00
Aaron Bach
20647af5ae Move Notion coordinator to its own module (#112756)
Co-authored-by: Cretezy <Cretezy@users.noreply.github.com>
2024-03-12 21:51:13 +01:00
Sid
df03e704f8 Add "language" to strings.json (#112869) 2024-03-12 21:49:59 +01:00
J. Nick Koston
4c82196fc8 Avoid some event loop overhead for ESPHome listeners (#113173) 2024-03-12 21:49:31 +01:00
On Freund
b9837a561b Use friendly name for camera media source (#110882) 2024-03-12 21:20:14 +01:00
Pete Sage
46ce438b6d Sonos reduce test time (#111688) 2024-03-12 21:14:27 +01:00
Jeef
848012871f Bump weatherflow4py to 0.1.17 (#112661) 2024-03-12 21:13:30 +01:00
mrchi
182a1fe3a3 Bump openwrt-luci-rpc version to 1.1.17 (#112796) 2024-03-12 21:12:24 +01:00
Brett Adams
1dc3582778 Add icons to Teslemetry (#112546) 2024-03-12 21:06:09 +01:00
Joost Lekkerkerker
78ea9bf681 Use enum device class in Dexcom (#112423)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-03-12 21:02:37 +01:00
Robert Svensson
c761b825ec Fix Axis unique ID (#112132) 2024-03-12 21:01:20 +01:00
Erik Montnemery
2cdf6b9937 Add binary_sensor to homeworks (#112418)
* Add binary_sensor to homeworks

* Update tests
2024-03-12 19:25:27 +01:00
G Johansson
b670066c00 Add options update listener for Speedtest.Net (#112108) 2024-03-12 18:54:46 +01:00
Joost Lekkerkerker
f9b2c35418 Add icon translations to Lametric (#111854) 2024-03-12 18:52:58 +01:00
Thomas55555
21a021944f Bump aioautomower to 2024.3.2 (#113162) 2024-03-12 18:50:57 +01:00
J. Nick Koston
5ae207001f Avoid multiple executor jobs to add wemo devices (#112484) 2024-03-12 18:49:17 +01:00
J. Nick Koston
0f414d8ac5 Ensure HKC debounced availability poll does not block startup (#113130) 2024-03-12 07:43:59 -10:00
J. Nick Koston
c948392ebc Make Bluetooth active coordinator debouncers run tasks in the background (#113129) 2024-03-12 07:43:43 -10:00
J. Nick Koston
4c2a54746d Make august activity update a background task (#112652) 2024-03-12 07:43:27 -10:00
Joost Lekkerkerker
643e6096da Improve lists in integrations [E-F] (#113075) 2024-03-12 18:42:43 +01:00
Joost Lekkerkerker
d33fdd3289 Clean up Abode imports (#113138) 2024-03-12 18:38:57 +01:00
Michael Hansen
18a7f004db Bump intents to 2023.3.12 (#113160)
Bump intents
2024-03-12 12:45:14 -04:00
Scott K Logan
eb81599400 Fix some handle leaks in rainforest_raven (#113035)
There were leaks when
* The component was shutdown
* There was a timeout during the initial device opening

Additionally, the device was not closed/reopened when there was a
timeout reading regular data.
2024-03-12 12:43:25 -04:00
Maciej Bieniek
f01095fb66 Fix availability for GIOS index sensors (#113021)
* Fix availability for index sensors

* Improve test_availability()

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-03-12 12:41:16 -04:00
Steven Looman
cd4e8707ea Improve discovering upnp/igd device by always using the SSDP-discovery for the Unique Device Name (#111487)
* Always use the UDN found in the SSDP discovery, instead of the device description

* Ensure existing DeviceEntries are still matched
2024-03-12 12:38:09 -04:00
Jan-Philipp Benecke
3b1ab6436d Remove deprecated hass.components usage in service tests (#111883) 2024-03-12 17:27:44 +01:00
Joost Lekkerkerker
70f3da93d4 Remove entity description mixin in Screenlogic (#112935)
* Remove entity description mixin in Screenlogic

* Fix
2024-03-12 16:10:04 +01:00
Steven B
5e530fc42e Add motion detection enable/disable to ring camera platform (#108789)
* Add motion detection enable/disable to ring camera platform

* Write ha state directly

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

* Parametrize on off state tests

* Add tests for errors on setting motion detection

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-12 16:05:14 +01:00
Jan-Philipp Benecke
42574fe498 Remove deprecated hass.components usage in device_sun_light_trigger (#111881) 2024-03-12 14:04:42 +01:00
Joost Lekkerkerker
a8d1d90484 Bump yt-dlp to 2024.03.10 (#109763) 2024-03-12 13:57:19 +01:00
Michael Hansen
556855f54e Add device_id to sentence trigger and external conversation APIs (#113094)
* Add device_id to sentence trigger and external conversation APIs

* Remove device_id from external API

* Update tests/components/conversation/snapshots/test_init.ambr

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-12 08:50:06 -04:00
J. Nick Koston
120525e94f Add the ability to create Debouncer tasks as background tasks (#113128)
* Add the ability to Debouncer tasks in the background

This is a more general solution as a followup to
https://github.com/home-assistant/core/pull/112652#discussion_r1517159607

* Add the ability to Debouncer tasks in the background

This is a more general solution as a followup to
https://github.com/home-assistant/core/pull/112652#discussion_r1517159607

* fix
2024-03-12 08:41:12 -04:00
J. Nick Koston
b3dedb3efb Convert sets to list before passing to the JSON serializer in the registries (#113133)
There were a few places we were missing the set to list
conversions in the registries. We do this before its
cached to avoid the JSON serializer having to fallback
to the default method every time since its expensive
to switch back from the native code into python context
for every set.
2024-03-12 08:38:21 -04:00
dependabot[bot]
46ab4bbf32 Bump Wandalen/wretry.action from 1.4.8 to 1.4.9 (#113132)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 11:52:16 +01:00
Jevgeni Kiski
50ac3c8cfd Update vallox_websocket_api to 5.1.1 (#113139)
Bump vallox-websocket-api==5.1.1
2024-03-12 11:32:42 +01:00
Josef Zweck
d929efbae0 Include pytedee_async logger in tedee integration (#112590)
add pytedee logger
2024-03-12 09:37:48 +01:00
Jan Bouwhuis
e28d4f0eae Validate state_class with last_reset_value_template for mqtt sensors (#113099) 2024-03-12 09:08:03 +01:00
Jan Bouwhuis
012291a1f3 Fix google_asssistant sensor state reporting (#112838)
* Fix post google_assistant sensor values as float not string

* Fix aqi reporting and improve tests

* Fix _air_quality_description_for_aqi and  test
2024-03-12 09:07:20 +01:00
Josef Zweck
433d3a5106 bump pytedee_async to 0.2.16 (#113135) 2024-03-12 08:55:21 +01:00
Erik Montnemery
d039bd654b Add reconfigure flow to homeworks (#112419)
* Add reconfigure flow to homeworks

* Fix tests

* Use async_update_reload_and_abort helper

* Try to fix test shutdown
2024-03-12 08:47:44 +01:00
slyoldfox
6c35ae06a0 Add scheduled mode to renault charge mode (#105967)
Add scheduled to renault charge mode - fixes #105751
2024-03-12 08:34:21 +01:00
Thomas55555
4f4391bd09 Add missing device info to Husqvarna Automower (#113090)
* Add missing DeviceInfo to Husqvarna Automower

* add a test

* Adress review

* Update homeassistant/components/husqvarna_automower/entity.py

* fix url

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-12 08:25:35 +01:00
definitio
6f19744469 Add A6 family code for DS2438 1-Wire sensor (#112844)
* Add A6 family code for DS2438

* Add tests

* Fix switch

* Apply code review suggestion

* Add comments
2024-03-12 08:06:02 +01:00
J. Nick Koston
734a614eb8 Switch the reload helper to use async_get_component (#113126) 2024-03-11 16:17:07 -10:00
J. Nick Koston
52b2522be2 Import homeassistant trigger platforms in the executor (#113124) 2024-03-11 15:58:12 -10:00
J. Nick Koston
3f72fae60b Migrate remaining call in check_config helper to use async_get_component (#113123) 2024-03-11 15:56:24 -10:00
J. Nick Koston
1949b9936b Simplify automation startup logic (#113122) 2024-03-11 15:41:05 -10:00
J. Nick Koston
17b202d8cf Await discovery_function in the DiscoveryFlowHandler instead of wrapping it in a task (#113115)
Await discovery_function in the DiscoveryFlowHandler instead of wrapping

This function was always a coro so it can be awaited
directly instead of wrapping it in add_job
2024-03-11 21:37:03 -04:00
J. Nick Koston
ebd17687e0 Remove unnecessary use of async_add_job in openalpr_cloud (#113116) 2024-03-11 21:36:34 -04:00
J. Nick Koston
427de00524 Remove unnecessary use of async_run_job in script helper (#113118)
The function being passed to `async_run` was always a callback
2024-03-11 21:36:18 -04:00
J. Nick Koston
17209525cb Add run_immediately to the zone core config update async_listen (#113119)
Calling async_update_config will never suspend but cannot be changed to a callback
function because it would break the collections api
2024-03-11 21:35:53 -04:00
J. Nick Koston
51f871227e Attach template triggers at start eagerly (#113120)
This method calls async_initialize_triggers which is likely to never
suspend and the attach can avoid being scheduled on the event loop
2024-03-11 21:34:32 -04:00
J. Nick Koston
42527862e0 Migrate scene platform to use async_add_executor_job (#113114) 2024-03-11 15:01:30 -10:00
J. Nick Koston
e71398d1e0 Update timezone in supervisor in an eager task (#113113) 2024-03-11 14:45:58 -10:00
J. Nick Koston
1536a3981f Use run_immediately for starting discovery at the started event (#113112) 2024-03-11 14:29:39 -10:00
J. Nick Koston
b87036eebe Make restore state started a callback function (#113110) 2024-03-11 14:25:15 -10:00
J. Nick Koston
6e59d1cb29 Migrate homekit to use async_at_started (#113102) 2024-03-11 20:08:02 -04:00
J. Nick Koston
5dc44500c3 Make cast async_cast_discovered a callback function (#113111)
Nothing was being awaited here and this function
is never subclassed
2024-03-11 20:07:15 -04:00
J. Nick Koston
620433a79d Run coroutines as eager tasks in async_run_hass_job (#111683)
* Run coroutines as eager tasks in async_run_hass_job

Note that this does not change async_add_hass_job

Do not merge this. For test run only

* Phase out periodic tasks

* false by default or some tests will block forever, will need to fix each one manually

* kwarg works

* kwarg works

* kwarg works

* fixes

* fix more tests

* fix more tests

* fix lifx

* opensky

* pvpc_hourly_pricing

* adjust more

* adjust more

* smarttub

* adjust more

* adjust more

* adjust more

* adjust more

* adjust

* no eager executor

* zha

* qnap_qsw

* fix more

* fix fix

* docs

* its a wrapper now

* add more coverage

* coverage

* cover all combos

* more fixes

* more fixes

* more fixes

* remaining issues are legit bugs in tests

* make tplink test more predictable

* more fixes

* feedreader

* grind out some more

* make test race safe

* limit first scope to triggers

* one more

* Start tasks eagerly in for async_at_start(ed)

A few of these can avoid being scheduled on the loop
during startup

* fix cloud

* Revert "fix cloud"

This reverts commit 5eb3ce695d.

* fix test to do what start does

* flip flag

* flip flag

* Fix here_travel_time creating many refresh requests at startup

- Each entity would try to refresh the coordinator which
  created many tasks. Move the refresh to a single
  async_at_started

- The tests fired the EVENT_HOMEASSISTANT_START event
  but the code used async_at_started which only worked
  because the tests did not set CoreState to not_running

* fix azure

* remove kw

* remove kw

* rip

* cover

* more rips

* more rips

* more rips
2024-03-11 20:05:08 -04:00
J. Nick Koston
53c3e27ed9 Add support for run_immediately to async_listen_once (#113020) 2024-03-11 13:51:03 -10:00
J. Nick Koston
0c877339ca Make sonos binary sensor entity creation callback functions (#113109) 2024-03-11 13:50:43 -10:00
J. Nick Koston
629a045c37 Make sonos household_coordinator setup a callback function (#113108) 2024-03-11 13:50:18 -10:00
J. Nick Koston
6ff8d7d2b9 Make sonos ssdp discovery callback a callback function (#113107) 2024-03-11 13:50:04 -10:00
Robert Svensson
487ae1786f Bump axis to v54 (#113091)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-11 19:41:33 -04:00
J. Nick Koston
281e3922a8 Reduce latency to populate initial HKC bluetooth device state (#113103) 2024-03-11 13:02:20 -10:00
J. Nick Koston
2061cedadb Bump aiodhcpwatcher to 0.8.1 (#113096) 2024-03-11 12:01:06 -10:00
J. Nick Koston
77cdecf0f1 Migrate async_run_job to use eager_start for tasks (#113011) 2024-03-11 11:30:46 -10:00
Mike Woudenberg
52b69bcfde Update Loqed helper for more logging (#112646)
Updates Loqed helper for more logging
2024-03-11 22:20:06 +01:00
Brett Adams
b5761a83c0 Fix location data in Teslemetry (#112866)
Fix location data in coordinator
2024-03-11 22:17:42 +01:00
J. Nick Koston
e29b012eba Fix failing google diagnostics test (#113095) 2024-03-11 11:05:49 -10:00
J. Nick Koston
324266a4e6 Fix race in script stop that could cause async_stop to hang forever (#113089) 2024-03-11 10:48:11 -10:00
Steven B
eff0aac586 Ensure that the ring integration always raises HomeAssistantError for user actions (#109893)
* Wrap library exceptions in HomeAssistantErrors

* Remove commented

* Update post review

* Update post second review
2024-03-11 20:23:49 +01:00
J. Nick Koston
5e94858821 Migrate _async_when_setup to use eager_start (#112872)
This one does not make much difference, but its a lot
easier to do it now instead of in the future
2024-03-11 15:02:35 -04:00
J. Nick Koston
89c24b2f75 Migrate dispatcher to create tasks eagerly (#112845)
There were quite a few of these that never had to suspend.
2024-03-11 14:58:45 -04:00
J. Nick Koston
d7cc30fd2b Start tasks eagerly in for async_at_start(ed) (#112802) 2024-03-11 08:46:11 -10:00
Jan Stienstra
ff4e9eb31e Fix optional Jellyfin RunTimeTicks (#108254) 2024-03-11 19:09:18 +01:00
Paulus Schoutsen
145657dc21 Only load services.yaml for integrations that have it (#112732)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-11 19:05:32 +01:00
Marcel van der Veldt
ec89886fac Fix colormode attribute on grouped Hue light (#113071) 2024-03-11 19:04:44 +01:00
Joost Lekkerkerker
0b6307fa53 Add icon translations to Version (#112343) 2024-03-11 19:00:56 +01:00
Joost Lekkerkerker
23ffcaf187 Improve lists in integrations [B] (#113069) 2024-03-11 18:59:57 +01:00
Alistair Francis
1853c2d73a components/gardena_bluetooth: Improve avaliability reliability (#113056)
* components/gardena_bluetooth: Improve avaliability reliability

The available() function incorrectly returns false even though the device
is accessible.

The last_update_success property should correctly indicate if the device
isn't contactable, so we don't need to call async_address_present().
This is confirmed by seeing that no other users are calling
async_address_present() in the available() function.

This commit removes the call to async_address_present() to help fix the
sensor being unavailable when using a ESPHome BLE proxy.

Signed-off-by: Alistair Francis <alistair@alistair23.me>

---------

Signed-off-by: Alistair Francis <alistair@alistair23.me>
Co-authored-by: Joakim Plate <elupus@ecce.se>
2024-03-11 18:58:43 +01:00
Joost Lekkerkerker
c75342bd9a Improve lists in integrations [C-D] (#113072) 2024-03-11 18:58:35 +01:00
Aaron Bach
4d77bec681 Bump regenmaschine to 2024.03.0 (#113074) 2024-03-11 18:37:00 +01:00
Lukas de Boer
9f31423136 Bump rova to 0.4.1 (#113066) 2024-03-11 17:30:51 +01:00
Ondřej Machulda
7fce629fc4 Change airthings pressure sensor device_class to atmospheric pressure (#113005) 2024-03-11 17:01:19 +01:00
Joost Lekkerkerker
690ba103ed Improve lists in integrations [A] (#113006)
* Use list comprehension [A]

* Use list comprehension [A]

* Update homeassistant/components/aws/notify.py
2024-03-11 16:17:44 +01:00
Joost Lekkerkerker
bf40b33117 Remove fixtures from global fixtures folder (#113060)
Remove fixtures
2024-03-11 10:19:54 -04:00
J. Nick Koston
5e2edb6819 Ensure wemo discovery is run in a background task (#112665) 2024-03-11 15:13:41 +01:00
Joost Lekkerkerker
e13d8200cc Remove entity description mixin in Github (#112771) 2024-03-11 15:12:24 +01:00
J. Nick Koston
d939c48b4a Fix here_travel_time creating many refresh requests at startup (#113041) 2024-03-11 15:11:33 +01:00
Marcel van der Veldt
0eb1adccf8 Fix for Hue not applying effect in scene (#113057) 2024-03-11 15:08:00 +01:00
Folke Lemaitre
ba971890a9 Fix hvac_mode for viessmann devices with heatingCooling mode (#113054) 2024-03-11 15:05:31 +01:00
Marcel van der Veldt
0a7598e2d4 Fix for controlling Hue switch entities (#113064) 2024-03-11 09:49:52 -04:00
Joost Lekkerkerker
2792a5f016 Enable even more SIM ruff rules (#113017)
* SIM202 SIM211 SIM220 SIM221 SIM222 SIM223

* SIM910 SIM911

* SIM

* Update homeassistant/components/mqtt/siren.py

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

* Update homeassistant/components/mqtt/siren.py

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

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-03-11 14:23:52 +01:00
Steven B
48cb09a4a8 Prepare ring update service for deprecation (#108781)
* Prepare ring update service for deprecation

* Update service removal release number
2024-03-11 13:42:52 +01:00
Joost Lekkerkerker
f8d1232598 Move HomematicIP Cloud fixture to integration test (#112987)
* Move HomematicIP Cloud fixture to integration test

* Update tests/components/homematicip_cloud/helper.py

* Update tests/components/homematicip_cloud/helper.py

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-03-11 13:26:44 +01:00
Shai Ungar
3c06fbbd82 Add ConfigFlow for seventeentrack integration (#111196)
* Add config flow to 17Track

* Import config from configuration.yaml

* 1. move import to async_setup_platform
2. add USERNAME (email) in title for uniqueness

* Add options flow

* Add tests

* Add CONF_SHOW_ARCHIVED  and CONF_SHOW_DELIVERED to data from options

* Update homeassistant/components/seventeentrack/__init__.py

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

* Update homeassistant/components/seventeentrack/__init__.py

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

* Update homeassistant/components/seventeentrack/config_flow.py

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

* Update homeassistant/components/seventeentrack/manifest.json

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

* Update homeassistant/components/seventeentrack/config_flow.py

Co-authored-by: Christopher Fenner <9592452+CFenner@users.noreply.github.com>

* Update homeassistant/components/seventeentrack/__init__.py

Co-authored-by: Christopher Fenner <9592452+CFenner@users.noreply.github.com>

* Update homeassistant/components/seventeentrack/sensor.py

Co-authored-by: Christopher Fenner <9592452+CFenner@users.noreply.github.com>

* 1. Added repair issues
2. _async_validate_input inlined
3. added unique id
4. take default scan interval

* fix

* 1. move async_create_issue to async_setup_platform
2. fix tests
3. black + pylint

* combine USER_SCHEMA and OPTIONS_SCHEMA

* small fix

* remove async_setup

* fix tests and add 100% coverage

* 1. remove CONFIG_SCHEMA
2. remove error log
3. add issue with more description when import issues happen
4. some linting

* Update homeassistant/components/seventeentrack/config_flow.py

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

* Update homeassistant/components/seventeentrack/sensor.py

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

* Update homeassistant/components/seventeentrack/sensor.py

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

* Update homeassistant/components/seventeentrack/sensor.py

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

* use freezer
use AsyncMock
fix tests

* add test_flow_fails
parametrize tests where needed
test_import_flow_already_configured - where a unique id already configured (abort flow)

* lint

* fix rebase issues

* some more fix

* 17Track revert tests and put them in a different PR

* adapt tests to MockConfigEntry

* Update tests/components/seventeentrack/test_sensor.py

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

* Update homeassistant/components/seventeentrack/sensor.py

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

* Update homeassistant/components/seventeentrack/sensor.py

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

* Update tests/components/seventeentrack/__init__.py

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

* 1. create fixture for config and another with options
2. set options with default values
3. remove CONFIG_SCHEMA

* Update tests/components/seventeentrack/conftest.py

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

* Update tests/components/seventeentrack/conftest.py

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

* 1. get options from import data and default if not present
2. rename mock_config_entry_no_options -> mock_config_entry_with_default_options

* move ACCOUNT_ID to mock_seventeentrack_api.return_value.profile.account_id

* Apply suggestions from code review

* Update tests/components/seventeentrack/test_config_flow.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Christopher Fenner <9592452+CFenner@users.noreply.github.com>
2024-03-11 12:47:39 +01:00
Ernst Klamer
564c31e846 Bump xiaomi-ble to 0.27.0 (#113013) 2024-03-11 12:39:07 +01:00
Marcel van der Veldt
a7a30581fc Fix adding Hue bridge manually by IP (#113055) 2024-03-11 12:35:41 +01:00
Robert Resch
7fd5c3ed61 Use UV instead of PIP in the CI (#113051) 2024-03-11 12:18:29 +01:00
Joost Lekkerkerker
57e6c8e07a Remove entity description mixin in Juicenet (#112892) 2024-03-11 12:08:42 +01:00
Joost Lekkerkerker
067c222bd9 Remove entity description mixin in Kostal Plenticore (#112898) 2024-03-11 12:07:13 +01:00
Joost Lekkerkerker
d82ffb4e07 Remove entity description mixin in Kraken (#112899) 2024-03-11 12:06:42 +01:00
Joost Lekkerkerker
324fc51375 Remove entity description mixin in Landisgyr Heat Meter (#112901) 2024-03-11 12:06:27 +01:00
Joost Lekkerkerker
62817ba338 Remove entity description mixin in Melnor (#112906) 2024-03-11 12:05:55 +01:00
Joost Lekkerkerker
14e7e4c860 Remove entity description mixin in Netatmo (#112910) 2024-03-11 12:04:04 +01:00
Joost Lekkerkerker
f86119aec7 Remove entity description mixin in Onvif (#112912) 2024-03-11 12:03:50 +01:00
Joost Lekkerkerker
b48032e37e Remove entity description mixin in PECO (#112915) 2024-03-11 12:03:33 +01:00
Joost Lekkerkerker
e08fb68597 Remove entity description mixin in Pi-hole (#112919) 2024-03-11 12:03:13 +01:00
Joost Lekkerkerker
8391dd39d9 Remove entity description mixin in Picnic (#112920) 2024-03-11 12:02:54 +01:00
Joost Lekkerkerker
d0a1781187 Remove entity description in Point (#112921) 2024-03-11 12:02:26 +01:00
Joost Lekkerkerker
d29418ebf5 Remove entity description mixin in Pure Energie (#112923) 2024-03-11 12:01:40 +01:00
Joost Lekkerkerker
7730c3bcf3 Remove entity description mixin in Renson (#112926) 2024-03-11 12:01:01 +01:00
Joost Lekkerkerker
54abc4935f Remove entity description mixin in Rituals Perfume Genie (#112929) 2024-03-11 12:00:35 +01:00
Joost Lekkerkerker
7f3a850ca5 Remove entity description mixin in Meteo-France (#112907) 2024-03-11 12:00:16 +01:00
Joost Lekkerkerker
3c217d737e Remove entity description mixin in Roborock (#112930) 2024-03-11 11:59:48 +01:00
Joost Lekkerkerker
b837a969d8 Remove entity description mixin in Ring (#112928) 2024-03-11 11:59:02 +01:00
Joost Lekkerkerker
22f6558647 Remove entity description mixin in Roomba (#112932) 2024-03-11 11:58:21 +01:00
Joost Lekkerkerker
a1a0738e58 Remove entity description mixin in Skybell (#112939) 2024-03-11 11:57:38 +01:00
Joost Lekkerkerker
37e0a9d9c7 Remove entity description mixin in SleepIQ (#112940) 2024-03-11 11:57:22 +01:00
Joost Lekkerkerker
fb23d5e6fb Remove entity description mixin in Smappee (#112941) 2024-03-11 11:57:01 +01:00
Joost Lekkerkerker
f5c8732307 Remove entity description mixin in Solaredge (#112942) 2024-03-11 11:56:37 +01:00
Joost Lekkerkerker
ff88c46658 Remove entity description mixin in Steamist (#112944) 2024-03-11 11:56:22 +01:00
Joost Lekkerkerker
1bc6277c47 Remove entity description mixin in Tautulli (#112949) 2024-03-11 11:56:03 +01:00
Joost Lekkerkerker
276b8147d3 Remove entity description mixin in Tolo (#112951) 2024-03-11 11:55:33 +01:00
Joost Lekkerkerker
d723d5815c Remove entity description mixin in Transmission (#112958) 2024-03-11 11:55:08 +01:00
Joost Lekkerkerker
b4dfe455cb Remove entity description mixin in Tuya (#112959) 2024-03-11 11:54:46 +01:00
Joost Lekkerkerker
b5c5db9ca0 Remove entity description mixin in Vallox (#112963) 2024-03-11 11:54:00 +01:00
Joost Lekkerkerker
39bfb2b5ba Remove entity description mixin in Venstar (#112964) 2024-03-11 11:53:40 +01:00
Joost Lekkerkerker
90769b460d Remove entity description mixin in VeSync (#112965) 2024-03-11 11:53:18 +01:00
Joost Lekkerkerker
105fca2212 Remove entity description mixin in Whirlpool (#112972) 2024-03-11 11:52:42 +01:00
Joost Lekkerkerker
85b6d70b04 Remove entity description mixin in Xiaomi Miio (#112973) 2024-03-11 11:52:19 +01:00
Joost Lekkerkerker
ea300623f9 Remove entity description mixin in Yalexs BLE (#112974) 2024-03-11 11:51:45 +01:00
Joost Lekkerkerker
2b8f42be39 Remove entity description mixin in Zamg (#112976) 2024-03-11 11:51:21 +01:00
Joost Lekkerkerker
a8bde2df3c Remove entity description mixin in Z-Wave.js (#112979) 2024-03-11 11:49:44 +01:00
Joost Lekkerkerker
0d68c27985 Remove entity description mixin in Honeywell Lyric (#112903) 2024-03-11 11:48:44 +01:00
Joost Lekkerkerker
830f419a8f Remove entity description mixin in SABnzbd (#112933) 2024-03-11 11:48:27 +01:00
Joost Lekkerkerker
65f2c74cb0 Remove entity description mixin in Wallbox (#112969) 2024-03-11 11:46:21 +01:00
Joost Lekkerkerker
53613e69f2 Remove entity description mixin in QNAP QSW (#112924) 2024-03-11 11:44:37 +01:00
Sid
c60aed3012 Bump webmin-xmlrpc to 0.0.2 (#113004) 2024-03-11 11:44:21 +01:00
Joost Lekkerkerker
3b0b729557 Remove YAML configuration from WAQI (#113027) 2024-03-11 11:41:49 +01:00
Joost Lekkerkerker
53750acdab Remove entity description mixin in Minecraft Server (#112908) 2024-03-11 11:29:30 +01:00
Joost Lekkerkerker
9fd96e8a78 Remove entity description mixin in Meater (#112904) 2024-03-11 11:28:54 +01:00
Joost Lekkerkerker
2349ce1abd Move yandex transport fixture to integration test (#112988)
* Move yandex transport fixture to integration test

* Update tests/components/yandex_transport/test_sensor.py

* Ran ruff

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-03-11 11:28:30 +01:00
Joost Lekkerkerker
1fa0ce2f2c Remove entity description mixin in Kaiterra (#112895) 2024-03-11 11:28:26 +01:00
Joost Lekkerkerker
d9996d3add Remove entity description mixin in Launch Library (#112902) 2024-03-11 11:28:08 +01:00
Joost Lekkerkerker
d95f30611e Remove entity description mixin in Kaleidescape (#112896) 2024-03-11 11:25:05 +01:00
Joost Lekkerkerker
da40e83fd9 Remove entity description mixin in Schlage (#112934) 2024-03-11 11:18:34 +01:00
Joost Lekkerkerker
e4b43680e1 Remove entity description mixin in Starlink (#112943) 2024-03-11 11:18:01 +01:00
Joost Lekkerkerker
e696afabe7 Remove entity description mixin in WeatherFlow (#112971) 2024-03-11 11:16:29 +01:00
星野SKY
716a163f5f Bump boschshcpy to 0.2.82 (#112890) 2024-03-11 11:11:32 +01:00
dependabot[bot]
b45bfdb3cc Bump Wandalen/wretry.action from 1.4.7 to 1.4.8 (#113038)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-11 11:08:15 +01:00
Joost Lekkerkerker
981902dd8a Remove entity description mixin in Opower (#112913) 2024-03-11 11:03:06 +01:00
Marcel van der Veldt
e87e0d2d41 Bump aioslimproto to 3.0.0 (#113046) 2024-03-11 10:54:51 +01:00
Brett Adams
6d440e36ad Add tests for Aussie Broadband diagnostics (#113049)
* Add tests for diag

* Fix docstring

* Spelling
2024-03-11 10:54:12 +01:00
Joost Lekkerkerker
a0d50ecdf5 Remove entity description mixin in Tado (#112947) 2024-03-11 10:53:19 +01:00
Joost Lekkerkerker
d0f53c2c99 Remove entity description mixin in Vilfo (#112966) 2024-03-11 10:20:08 +01:00
Simone Chemelli
4095de0566 Allow Shelly CoAP to honour default network adapter (#110997)
* Allow Shelly CoAP to honor default network adapter

* apply review comment

* 1 more debug log line

* adapt code to library changes

* test

* improve test

* one more test
2024-03-11 09:52:15 +01:00
J. Nick Koston
30c3174498 Fix CoreState in cloud google assistant tests (#113045) 2024-03-10 22:50:09 -10:00
J. Nick Koston
fd8ee6c857 Fix google assistant cloud sync test (#113044) 2024-03-10 22:44:21 -10:00
Jan Bouwhuis
17aa49410b Rename mqtt platform setup method (#113042)
* Rename mqtt platform setup method

* Format method to one line
2024-03-11 09:43:47 +01:00
Yuxin Wang
405bf076b2 Remove a redundant check in APCUPSD's config flow (#113032)
Remove a redundant check that is impossible to happen in practice
2024-03-11 08:38:44 +01:00
Joost Lekkerkerker
4b84954d17 Remove entity description mixin in V2C (#112960) 2024-03-11 08:32:43 +01:00
Joost Lekkerkerker
b914ac3185 Move openhardwaremonitor fixture to integration tests (#112982)
* Move openhardwaremonitor fixture

* Update tests/components/openhardwaremonitor/test_sensor.py

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-03-11 08:30:22 +01:00
J. Nick Koston
3387892f59 Schedule tasks eagerly when called from hass.add_job (#113014) 2024-03-10 21:19:49 -10:00
Joost Lekkerkerker
cede16fc40 Move Feedreader fixture to integration test (#112989) 2024-03-10 23:27:38 -04:00
Joost Lekkerkerker
d528378f5d Move london_air fixture to integration test (#112991)
* Move london_air fixture to integration test

* Fix
2024-03-10 23:27:20 -04:00
Joost Lekkerkerker
812bd4af65 Move metoffice fixture to integration test (#112992)
* Move metoffice fixture to integration test

* Fix

* Update tests/components/metoffice/test_config_flow.py

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

* Fix

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-03-10 23:27:00 -04:00
Joost Lekkerkerker
a78e389d9b Move Microsoft face fixture to integration test (#112993)
* Move Microsoft face fixture to integration test

* Update tests/components/microsoft_face/test_init.py

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

* Fix

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-03-10 23:26:37 -04:00
Ernst Klamer
db44efc1a3 Bump bthome-ble to 3.8.0 (#113008)
Bump bthome-ble
2024-03-10 23:25:04 -04:00
J. Nick Koston
b30c7b47f6 Avoid scheduling person updates on the event loop (#113010)
These update call the storage collection async_update_item
which never suspends so they can finish synchronously without
having to be scheduled on the loop when run_immediately,
which schedules the task eagerly is set
2024-03-10 23:24:48 -04:00
J. Nick Koston
b8b8e44454 Migrate duckdns to use async_run_hass_job (#113012)
The code would create a hassjob and than run the wrapped
function with async_run_job so it had to work out the
job type twice
2024-03-10 23:23:02 -04:00
Joost Lekkerkerker
cddce0ce0d Enable more SIM ruff rules (#113015)
* SIM101 SIM103

* SIM107 SIM109

* SIM110

* SIM112 SIM113

* SIM115

* SIM116

* Fix

* Fix

* Fix
2024-03-10 23:20:37 -04:00
J. Nick Koston
e96ef4613c Bump aioesphomeapi to 23.1.1 (#113016)
changelog: https://github.com/esphome/aioesphomeapi/compare/v23.1.0...v23.1.1

Fixes cryptic error message the user tried to send a command
or execute a service call when the device was disconnected
2024-03-10 23:18:49 -04:00
Robert Svensson
416d21c548 Bump axis to v53 (#113019) 2024-03-10 23:17:12 -04:00
Joost Lekkerkerker
0ea91515cf Fix Bang & Olufsen enum naming (#113022) 2024-03-10 23:16:05 -04:00
Allen Porter
23f9aea64d Bump ical to 7.0.1 and always use home assistant timezone for local todo dtstart (#113034) 2024-03-10 23:13:02 -04:00
J. Nick Koston
7ea79148ba Ignore logging events in zha websocket tests (#113031) 2024-03-10 13:13:26 -10:00
David F. Mulcahey
fad5fc5256 Fix race condition when ZHA group members change (#113030) 2024-03-10 13:12:27 -10:00
Yuxin Wang
db31afe019 Migrate APCUPSD to has entity name (#112997)
* Properly set entity names for APCUPSD

* Add test cases to prevent future regressions

* Fix tests due to the updated entity IDs

* Prettify code

* Remove redundant translation key
2024-03-10 23:56:25 +01:00
Joost Lekkerkerker
b125a6b1bb Remove entity description mixin in Shelly (#112938)
* Remove entity description mixin in Shelly

* fix

* Fix
2024-03-10 22:15:23 +01:00
Thomas55555
9a647d9b17 Bump aioautomower to 2024.3.0 (#112627)
Fix error in Husqvarna automower in Zones dataclass
2024-03-10 23:10:27 +02:00
Joost Lekkerkerker
d9f6e4be24 Add icon translations to Husqvarna automower (#111727)
* Add icon translations to Husqvarna automower

* fix
2024-03-10 21:55:31 +01:00
Joost Lekkerkerker
c1d1479bde Add icon translations to Picnic (#112181)
* Add icon translations to Picnic

* fix
2024-03-10 21:53:07 +01:00
Joost Lekkerkerker
2a5be33f34 Remove entity description mixin in Synology DSM (#112946) 2024-03-10 21:52:01 +01:00
Joost Lekkerkerker
a7f71eaa35 Remove entity description mixin in Tractive (#112952)
Remove entity description mixin in
Tractive
2024-03-10 21:45:06 +01:00
Joost Lekkerkerker
c8c00a86a6 Remove entity description mixin in Nettigo Air Monitor (#112909) 2024-03-10 21:44:41 +01:00
David Knowles
08874354c7 Add missing translation placeholder in Hydrawise (#113007)
Add missing translation placeholder
2024-03-10 21:20:46 +01:00
Joost Lekkerkerker
b8ae5e2388 Remove entity description mixin in Switcher Kis (#112945) 2024-03-10 22:06:28 +02:00
Jan Bouwhuis
02ef7ba134 Remove not needed hass.async_block_till_done in test (#113002) 2024-03-10 09:46:25 -10:00
Joost Lekkerkerker
958c843512 Move OpenALPR cloud fixture to integration test (#112994) 2024-03-10 15:17:24 -04:00
Joost Lekkerkerker
d76c20a483 Move uk_transport fixture to integration test (#112995) 2024-03-10 15:17:06 -04:00
Joost Lekkerkerker
65e1502b50 Move wsdot fixture to integration test (#112996) 2024-03-10 15:12:29 -04:00
Joost Lekkerkerker
d531b6e9b7 Remove entity description mixin in LaCrosse View (#112900) 2024-03-10 19:54:11 +01:00
Joost Lekkerkerker
a85571c840 Remove entity description mixin in Justnimbus (#112893) 2024-03-10 19:51:52 +01:00
Joost Lekkerkerker
f37bb6b1bf Remove entity description mixin in Melcloud (#112905) 2024-03-10 19:51:21 +01:00
Joost Lekkerkerker
69a322a6f2 Remove entity description mixin in PEGELONLINE (#112917) 2024-03-10 19:50:49 +01:00
Joost Lekkerkerker
cfc99af9ad Remove entity description mixin in Permobil (#112918) 2024-03-10 19:50:20 +01:00
G Johansson
3f1b8eadd2 Use async_at_started in Speedtest.Net (#112110) 2024-03-10 19:49:57 +01:00
Joost Lekkerkerker
83dc99cd9e Remove entity description mixin in Tradfri (#112953) 2024-03-10 19:49:31 +01:00
Joost Lekkerkerker
7ea1f42b84 Remove entity description mixin in WAQI (#112970) 2024-03-10 19:48:41 +01:00
Joost Lekkerkerker
5bfbe00c57 Remove entity description mixin in Youtube (#112975) 2024-03-10 19:48:14 +01:00
Joost Lekkerkerker
65624a9491 Remove entity description mixin in Zeversolar (#112977) 2024-03-10 19:47:39 +01:00
Joost Lekkerkerker
5d231ed61f Remove entity description mixin in Vodafone Station (#112967) 2024-03-10 19:43:07 +01:00
J. Nick Koston
afa69cca38 Import custom components in the executor by default (#112177)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-10 08:41:33 -10:00
J. Nick Koston
a2318c26c9 Run debouncer tasks eagerly to avoid scheduling on the event loop (#112789) 2024-03-10 08:37:10 -10:00
Jan Bouwhuis
c608d1cb85 Fix mqtt platform setup race (#112888) 2024-03-10 08:36:17 -10:00
Shai Ungar
eb81bf1d49 Improve 17track tests (#112734)
* 17Track tests

* add 17Track sensor to coverage

* extract repeated code

* 1. _goto_future - call tick only once
2. change test name to reflect test
3. remove ifs from test

* remove undersocre from _goto_future
2024-03-10 18:57:28 +01:00
Joost Lekkerkerker
049f0f5e3b Remove entity description mixin in Sensibo (#112936) 2024-03-10 18:17:43 +01:00
Joost Lekkerkerker
5f4881cb28 Remove entity description mixin in Trafikverket Camera (#112954) 2024-03-10 18:16:18 +01:00
Joost Lekkerkerker
a64f043a93 Remove entity description mixin in Trafikverket Ferry (#112955) 2024-03-10 18:15:47 +01:00
Joost Lekkerkerker
39c617eee6 Remove entity description mixin in Trafikverket Train (#112956) 2024-03-10 18:15:18 +01:00
Joost Lekkerkerker
13b8fd4149 Remove entity description mixin in Trafikverket Weatherstation (#112957) 2024-03-10 18:14:47 +01:00
Joost Lekkerkerker
dec98d424f Remove entity description mixin in Overkiz (#112914) 2024-03-10 18:06:17 +01:00
Aaron Bach
113df1ab62 Streamline Notion config entry updates (refresh token and user ID) (#112832) 2024-03-10 11:04:17 -06:00
Joost Lekkerkerker
b59bba8951 Remove entity description mixin in Roku (#112931) 2024-03-10 11:46:40 -05:00
Joost Lekkerkerker
85bc72f9f1 Remove entity description mixin in Renault (#112925)
* Remove entity description mixin in Renault

* Update homeassistant/components/renault/sensor.py

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

* Update homeassistant/components/renault/button.py

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

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-03-10 17:27:47 +01:00
Joost Lekkerkerker
ae003c21c8 Remove entity description mixin in SFR Box (#112937) 2024-03-10 17:10:44 +01:00
Joost Lekkerkerker
f668dfecb2 Remove entity description mixin in Netgear (#112911) 2024-03-10 16:43:43 +01:00
Joost Lekkerkerker
201f733394 Remove entity description mixin in Private BLE Device (#112922) 2024-03-10 15:21:12 +01:00
Henning Claßen
34d316e7b5 Update the numato-gpio dependency of the numato integration to v0.12.0 (#112272)
* Update the numato-gpio dependency of the numato integration to v0.12.0

* Augment numato integration manifest with integration_type

Fulfills a requirement in the PR checklist.
2024-03-10 12:02:25 +02:00
Joost Lekkerkerker
c04438caae Remove entity description mixin in Freebox (#112766) 2024-03-10 10:50:32 +01:00
Ernst Klamer
e91a38eede Add Locks to Xiaomi-BLE (#111156) 2024-03-09 22:29:48 -10:00
A Björck
e631224372 Bump yalexs to 2.0.0 (#111706)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-09 22:11:10 -10:00
Robert Svensson
ffcbab1c20 Split out deCONZ hub (#112854)
* Rename DeconzGateway to DeconzHub

* Move gateway.py to hub/hub.py
2024-03-10 08:25:12 +01:00
J. Nick Koston
f1b5dcdd1b Refactor handling of device updates in ESPHome (#112864) 2024-03-09 20:30:17 -10:00
Marc Mueller
57ce0f77ed Update pytest to 8.1.1 (#112859) 2024-03-09 23:08:36 -05:00
J. Nick Koston
60bddc2861 Schedule coroutine functions eagerly when async_listen uses run_immediately (#112846)
We have a few places where we call async_listen with a callback so we can schedule
the coro eagerly. We can drop these in favor of setting run_immediately now.
2024-03-09 23:04:25 -05:00
J. Nick Koston
0ad14da408 Fix MJPEG fallback when still image URL is missing with basic auth (#112861)
* Fix MJPEG fallback when still image URL is missing with basic auth

I picked up an old DCS-930L (circa 2010) camera to test with
to fix #94877

* Fix MJPEG fallback when still image URL is missing with basic auth

I picked up an old DCS-930L (circa 2010) camera to test with
to fix #94877

* Fix MJPEG fallback when still image URL is missing with basic auth

I picked up an old DCS-930L (circa 2010) camera to test with
to fix #94877

* Fix MJPEG fallback when still image URL is missing with basic auth

I picked up an old DCS-930L (circa 2010) camera to test with
to fix #94877
2024-03-09 23:02:42 -05:00
J. Nick Koston
1ffc459aa7 Only read cpu once during systemmonitor setup (#112863)
* Only read cpu once during systemmonitor setup

* type
2024-03-09 23:00:53 -05:00
Jan Bouwhuis
caaa03536b Cleanup mqtt PLATFORMS constant and CI-test platform filters (#112847) 2024-03-09 23:48:54 +01:00
Joost Lekkerkerker
8ea093ca3b Remove entity description mixin in IPP (#112781) 2024-03-09 15:48:12 -06:00
J. Nick Koston
23ebd80285 Schedule coroutines with eager_task from async_track_state_change_event (#112807) 2024-03-09 11:24:54 -10:00
J. Nick Koston
4882fed939 Avoid saving auth right after we load it during startup (#112008) 2024-03-09 11:03:22 -10:00
Arie Catsman
44abe329a2 Enphase Envoy refactor and extend diagnostics (#109080)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-09 11:03:07 -10:00
Jan Bouwhuis
3b0ea52167 Allow Just-in-Time platform setup for mqtt (#112720)
* Allow Just-in-Time platform setup for mqtt

* Only forward the setup of new platforms

* Fix new  platforms being setup at reload + test

* Revert not related changes

* Remove unused partial

* Address comments, only import plaforms if needed

* Apply suggestions from code review

* Add multipl platform discovery test

* Improve test

* Use a lock per platform
2024-03-09 21:55:00 +01:00
J. Nick Koston
d0d1af8991 Improve performance of image streams (#112810) 2024-03-09 10:26:48 -10:00
Jeffrey Stone
2a6de1c335 Bump mastodon.py version to 1.8.1 (#112728)
bump mastodon.py version to 1.8.1
2024-03-09 21:20:11 +01:00
Lex Li
9974af39ac Upgrade pysnmp-lextudio to version 6.0.9 (#112795) 2024-03-09 09:51:08 -10:00
Joost Lekkerkerker
033dd35655 Add icon translations to Yeelight (#112363)
* Add icon translations to Yeelight

* Add icon translations to Yeelight
2024-03-09 20:48:21 +01:00
Robert Svensson
020b656f51 Split out Axis config data (#112825)
Split out config data
2024-03-09 13:00:25 -05:00
Robert Svensson
03e4a20cdf Rename get_deconz_session to get_deconz_api (#112826)
Move and rename get_deconz_session to get_deconz_api
2024-03-09 18:32:31 +01:00
J. Nick Koston
9ba142f4dd Use eager_start for discovery listeners (#112803)
Many platforms can be loaded without having to suspend or
be scheduled on the event loop
2024-03-09 11:07:15 -05:00
Joost Lekkerkerker
378806f1fa Remove entity description mixin in AVM Fritz!Tools (#112767) 2024-03-09 16:38:44 +01:00
Joost Lekkerkerker
2b2f7d1193 Remove entity description mixin in Geocaching (#112770) 2024-03-09 10:07:10 -05:00
Joost Lekkerkerker
6e1981c43c Remove entity description mixin in Honeywell (#112776) 2024-03-09 10:06:27 -05:00
Joost Lekkerkerker
24b7f03e31 Remove entity description mixin in idasen desk (#112780) 2024-03-09 10:05:07 -05:00
Joost Lekkerkerker
6f03c305d4 Remove entity description mixin in Google wifi (#112774) 2024-03-09 10:03:30 -05:00
Joost Lekkerkerker
b0f0bc6c5c Remove entity description mixin in Environment Canada (#112763) 2024-03-09 10:02:45 -05:00
Joost Lekkerkerker
06637c0960 Remove entity description mixin in EZVIZ (#112764) 2024-03-09 10:01:45 -05:00
Joost Lekkerkerker
bfd7582825 Remove entity description mixin in Glances (#112772) 2024-03-09 10:00:31 -05:00
jan iversen
59083b4e82 Remove deprecated retry_on_empty from modbus (#112822)
Remove deprecated retry_on_empty.
2024-03-09 13:59:09 +01:00
Ville Skyttä
40aaba6b1d Remove outdated prettier and yamllint azure-*.yml ignores (#112819) 2024-03-09 14:44:05 +02:00
Joost Lekkerkerker
fed40a89ca Remove entity description mixin in Huawei LTE (#112777) 2024-03-09 14:41:08 +02:00
jan iversen
797983236f Remove deprecated CLOSE_COMM_ON_ERROR from modbus (#112821) 2024-03-09 13:24:06 +01:00
Jan Bouwhuis
6534943837 Revert "Cleanup mqtt discovery code" (#112818)
Revert "Cleanup mqtt discovery code (#112749)"

This reverts commit 87318c9111.
2024-03-09 12:54:10 +01:00
jan iversen
fca3ac9903 Update modbus test to include a dummy sensor (#112820) 2024-03-09 12:19:57 +01:00
Jan Bouwhuis
87318c9111 Cleanup mqtt discovery code (#112749)
* Cleanup mqtt discovery code

* Cleanup mqtt discovery code
2024-03-09 11:54:27 +01:00
Robert Svensson
a2180b16c3 Move wireless clients into entity_loader (#112813) 2024-03-09 11:30:01 +01:00
Joost Lekkerkerker
b26f00bf39 Remove entity description mixin in Goodwe (#112773) 2024-03-09 11:00:36 +01:00
Joost Lekkerkerker
3301117223 Remove entity description mixin in Jellyfin (#112782) 2024-03-09 11:00:23 +01:00
Robert Svensson
8b2759d810 Move restoring inactive clients method into UniFi entity loader (#112805)
* Move restoring inactive clients method into UniFi entity loader

* Use an initialize method in entity_loader
2024-03-09 10:52:59 +01:00
Robert Svensson
bf5537eb5a Give the UniFi integration better control over what data to load (#112804) 2024-03-09 10:35:25 +01:00
J. Nick Koston
2b0b3c238a Make SSDP tasks background HassJob to avoid delaying startup (#112668) 2024-03-08 23:11:00 -10:00
J. Nick Koston
b7d9f26cee Cache the job type for entity service calls (#112793) 2024-03-08 22:49:08 -10:00
Robert Svensson
19e54debba Unifi more polish on entity description (#112281)
* Make has_entity_name default value True

* Remove previously missed event_is_on and event_to_subscribe

* Provide default value for allowed_fn and supported_fn

* Provide default value for name_fn

* Provide default value for available_fn

* Add doc strings to required functions

* Fix some missed renames from variations of controller to hub
2024-03-09 09:19:38 +01:00
Robert Svensson
f2879e6f39 Break out UniFi platform registration to its own class (#112514) 2024-03-09 09:18:23 +01:00
J. Nick Koston
9ca9d7f48f Use eager_start for tasks to register integration platforms (#112800) 2024-03-08 22:10:57 -10:00
J. Nick Koston
b591bb43f5 Use eager_start for homeassistant triggers (#112801) 2024-03-08 22:10:44 -10:00
jan iversen
693f72eff1 Issue warning modbus configuration when modbus configuration is empty (#112618) 2024-03-09 08:49:11 +01:00
Marc Mueller
6a2f7a6347 Use Mapping as default for Event data (#112769) 2024-03-09 07:37:59 +01:00
J. Nick Koston
a50883d975 Run service call tasks eagerly (#112791) 2024-03-08 20:37:21 -10:00
J. Nick Koston
6a7c255b93 Improve entity translation typing (#112788)
* Improve entity translation typing

* Improve entity translation typing
2024-03-08 22:30:13 -05:00
J. Nick Koston
a66399ad3d Add Event typing to websocket_api for entity subscriptions (#112786) 2024-03-08 22:29:46 -05:00
Shay Levy
ed3ec85e55 Bump bthome-ble to 3.7.0 (#112783) 2024-03-08 22:28:56 -05:00
Allen Porter
2789060bbe Fix local calendar handling of empty recurrence ids (#112745)
* Fix handling of empty recurrence ids

* Revert logging changes
2024-03-08 22:28:04 -05:00
Aaron Bach
3405bda835 Make sure Notion saves new refresh token upon startup (#112676)
* Make sure Notion saves new refresh token upon startup

* Code review

* Typing

* Smoother syntax

* Fix tests

* Fix tests for real
2024-03-08 22:27:56 -05:00
J. Nick Koston
5b2a24b1bb Fix race reloading homekit_controller (#112790)
If the subscribe task was still running during the reload we
would not cancel it. Make it a config entry task so it gets
cancelled at unload
2024-03-08 22:27:08 -05:00
J. Nick Koston
65358c129a Replace periodic tasks with background tasks (#112726)
* Phase out periodic tasks

* false by default or some tests will block forever, will need to fix each one manually

* kwarg works

* kwarg works

* kwarg works

* fixes

* fix more tests

* fix more tests

* fix lifx

* opensky

* pvpc_hourly_pricing

* adjust more

* adjust more

* smarttub

* adjust more

* adjust more

* adjust more

* adjust more

* adjust

* no eager executor

* zha

* qnap_qsw

* fix more

* fix fix

* docs

* its a wrapper now

* add more coverage

* coverage

* cover all combos

* more fixes

* more fixes

* more fixes

* remaining issues are legit bugs in tests

* make tplink test more predictable

* more fixes

* feedreader

* grind out some more

* make test race safe

* one more
2024-03-08 21:45:10 -05:00
J. Nick Koston
08416974c9 Avoid trying to load translations for integrations that have none (#112683) 2024-03-08 14:21:44 -10:00
Joost Lekkerkerker
cf5b11576b Remove entity description mixin in iBeacon (#112779) 2024-03-09 00:04:52 +01:00
Joost Lekkerkerker
bfd9199ad9 Remove entity description mixin in HomeKit Device (#112775) 2024-03-08 23:29:02 +01:00
Joost Lekkerkerker
6671a84661 Remove entity description mixin in Flume (#112765) 2024-03-08 23:28:14 +01:00
Joost Lekkerkerker
945710874b Remove entity description mixin in Fully Kiosk (#112768) 2024-03-08 23:09:17 +01:00
J. Nick Koston
af6f2a516e Guard against db corruption when renaming entities (#112718) 2024-03-08 11:34:07 -10:00
Alin Balutoiu
d868b8d4c5 Fix tado climate service (#112686) 2024-03-08 22:31:02 +01:00
Marc Mueller
de886d8c49 Update EventBus listen type signatures (#112760) 2024-03-08 21:57:23 +01:00
Marc Mueller
cef20506dc Replace EventType with Event [missing] (#112753) 2024-03-08 21:56:42 +01:00
Arie Catsman
c7eabd95e6 Bump pyenphase to 1.19.2 (#112747) 2024-03-08 15:28:03 -05:00
Marc Mueller
aa16a9d707 Add empty line after module docstring (3) (#112750) 2024-03-08 20:38:34 +01:00
puddly
55b2d1a00c Disable updating ZHA coordinator path from discovery info (#112415)
* Never update the device path from config flows

* Bring coverage up to 100%

* Update tests/components/zha/test_config_flow.py

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

---------

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-03-08 14:33:33 -05:00
Marc Mueller
959826c4b4 Update byte string formatting (#112752) 2024-03-08 20:32:40 +01:00
Sid
0e86f182cc Add diagnostics to webmin (#112543) 2024-03-08 20:09:31 +01:00
Marc Mueller
b026b5d589 Replace EventType with Event [helpers] (#112743) 2024-03-08 19:41:50 +01:00
Marc Mueller
3db28d46b2 Replace EventType with Event [t-z] (#112742) 2024-03-08 19:37:26 +01:00
Marc Mueller
84c44c1835 Replace EventType with Event [l-s] (#112741) 2024-03-08 19:37:18 +01:00
Marc Mueller
8f1e2f1a7b Replace EventType with Event [h-i] (#112740) 2024-03-08 19:35:47 +01:00
Marc Mueller
25237e0377 Replace EventType with Event [a-g] (#112739) 2024-03-08 19:35:17 +01:00
Marc Mueller
a6b842f818 Add empty line after module docstring (2) [other] (#112738) 2024-03-08 19:16:38 +01:00
Marc Mueller
32f3f46542 Add empty line after module docstring (2) [tests.components] (#112737) 2024-03-08 19:16:21 +01:00
Marc Mueller
2c06d4fcb9 Add empty line after module docstring (2) [components] (#112736) 2024-03-08 19:15:59 +01:00
Marc Mueller
cb8c14496c Use more f-strings [ruff] (#112695) 2024-03-08 18:44:42 +01:00
Paulus Schoutsen
f416d67d21 Remove built-in support for import_executor in manifest (#112725) 2024-03-08 12:02:32 -05:00
Franck Nijhof
aa7acb89c5 Remove Python 3.11 from CI (#112626) 2024-03-08 17:42:18 +01:00
Marc Mueller
19ab3d6daf Add empty line after module docstring [helpers + other] (#112707) 2024-03-08 10:36:11 -05:00
Marc Mueller
c773d57d39 Add empty line after module docstring [w-z] (#112706) 2024-03-08 10:35:45 -05:00
Marc Mueller
062cc4bfce Add empty line after module docstring [t-v] (#112705) 2024-03-08 10:35:23 -05:00
jan iversen
ea89fa6b1e Allow duplicate names in different modbus entities (#112701)
Allow duplicate names in different entities.
2024-03-08 15:10:35 +01:00
Marc Mueller
a033574ee2 Add empty line after module docstring [r] (#112703) 2024-03-08 15:05:07 +01:00
Marc Mueller
988c71ecc5 Add empty line after module docstring [n-q] (#112702) 2024-03-08 15:04:07 +01:00
Marc Mueller
59a6035d3f Add empty line after module docstring [j-m] (#112700) 2024-03-08 09:01:29 -05:00
Marc Mueller
1722e23df8 Add empty line after module docstring [tests l-p] (#112710) 2024-03-08 14:55:15 +01:00
Maciej Bieniek
7cbe49520e Downgrade pysnmp-lextudio to version 5.0.34 (#112696)
Downgrade pysnmp-lextudio to version 5.0.34

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-03-08 08:54:00 -05:00
Marc Mueller
8809d3aa88 Add empty line after module docstring [g-i] (#112699) 2024-03-08 08:52:48 -05:00
Marc Mueller
ff3a801936 Add empty line after module docstring [a-d] (#112697) 2024-03-08 14:51:32 +01:00
Marc Mueller
38adfbf1a3 Add empty line after module docstring [tests a-e] (#112708) 2024-03-08 08:50:25 -05:00
Marc Mueller
c88b337600 Add empty line after module docstring [tests f-k] (#112709) 2024-03-08 14:50:04 +01:00
Marc Mueller
7d6251ca08 Add empty line after module docstring [tests q-s] (#112711) 2024-03-08 14:47:22 +01:00
Marc Mueller
87165c0d6e Add empty line after module docstring [tests t-z] (#112712) 2024-03-08 14:44:56 +01:00
Marc Mueller
930a396712 Add empty line after module docstring [s] (#112704) 2024-03-08 14:33:51 +01:00
Marc Mueller
0e3945ca6c Add empty line after module docstring [d-f] (#112698) 2024-03-08 14:15:26 +01:00
Marc Mueller
d7e7dc96cc Make Event data generic (#111955) 2024-03-08 13:46:16 +01:00
Aidan Timson
f8b05a0a81 Update systembridgeconnector to version 4.0.3 (#112608) 2024-03-08 12:11:17 +01:00
Robert Resch
7926a76da5 Bump devcontainer to 1-3.12 (#108709) 2024-03-08 12:00:48 +01:00
Mr. Bubbles
6e807df22e Fix incorrect filtering of unsupported locales in bring-api (#112589) 2024-03-08 11:55:18 +01:00
Marc Mueller
2d701d5a7d Use aiohttp.AppKey for http cors keys (#112658) 2024-03-08 11:51:59 +01:00
Aaron Bach
9555e8764a Bump aionotion to 2024.03.0 (#112675) 2024-03-08 11:51:05 +01:00
Thomas55555
9ba5159ae2 Add reauthentication for husqvarna_automower (#109930)
* Add reauthentication for husqvarna_automower

* Remove unneded lines

* Don't extract token on reauth

* Update homeassistant/components/husqvarna_automower/config_flow.py

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

* Update tests/components/husqvarna_automower/conftest.py

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

* Use helper

* Test if authentication is done with the right account

* switch to ConfigFlowResult

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-08 11:30:39 +01:00
Marc Mueller
4893087a7e Add TypeVar defaults for DataUpdateCoordinator (#111949) 2024-03-08 11:14:16 +01:00
Marc Mueller
eb8f8e1ae4 Use aiohttp.AppKey for http ban keys (#112657) 2024-03-08 11:13:24 +01:00
J. Nick Koston
7dcf275966 Speed up importing mqtt platforms (#112682)
Use async_forward_entry_setups so platforms can be loaded in a single
executor job instead of many:

Currently they all have to create a new job because it did not use
async_forward_entry_setups

```
2024-03-08 08:29:29.819 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[light] loop=[] took 12.12s
2024-03-08 08:29:29.822 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[number] loop=[] took 12.12s
2024-03-08 08:29:29.826 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[scene] loop=[] took 12.13s
2024-03-08 08:29:29.829 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[select] loop=[] took 12.13s
2024-03-08 08:29:29.833 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[sensor] loop=[] took 12.14s
2024-03-08 08:29:30.882 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[update] loop=[] took 13.18s
2024-03-08 08:29:30.948 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[button] loop=[] took 13.18s
2024-03-08 08:29:30.949 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[climate] loop=[] took 13.19s
2024-03-08 08:29:31.012 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[fan] loop=[] took 13.25s
2024-03-08 08:29:31.019 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[humidifier] loop=[] took 13.25s
2024-03-08 08:29:31.024 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[image] loop=[] took 13.26s
2024-03-08 08:29:31.034 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[lock] loop=[] took 13.27s
2024-03-08 08:29:31.045 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[vacuum] loop=[] took 13.28s
2024-03-08 08:29:31.050 DEBUG (MainThread) [homeassistant.loader] Importing platforms for mqtt executor=[valve] loop=[] took 13.28s
```
2024-03-08 10:30:31 +01:00
Jim
d2effd8693 Bump python-telegram-bot package to 21.0.1 (#110297)
* Bump python-telegram-bot package version to the latest.

* PySocks is no longer required as python-telegram-bot doesn't use urllib3 anymore.

* Fix moved ParseMode import

* Update filters import to new structure.

* Refactor removed Request objects to HTTPXRequest objects.

* Update to support asyncc functions

* Update timeout to new kwarg

connect_timeout is the most obvious option based on current param description, but this may need changing.

* Compatibility typo.

* Make methods async and use Bot client async natively

* Type needs to be Optional

That's what the source types are from the library
Also handle new possibility of None value

* Add socks support version of the library

* Refactor load_data function

Update to be async friendly
Refactor to use httpx instead of requests.

* Refactor Dispatcher references to Application

This is the newer model of the same class.

* Make more stuff async-friendly.

* Update tests to refactor Dispatcher usage out.

* Remove import and reference directly

* Refactor typing method

* Use async_fire now we have async support

* Fix some over complicate inheritance.

* Add the polling test telegram_text event fired back in.

* Add extra context to comment

* Handler should also be async

* Use underscores instead of camelCase

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

* Renamed kwarg.

* Refactor current timeout param to be read timeout

Reading the old version of the library code I believe this matches the existing functionality best

* Combine unload methods into one listener

* Fix test by stopping HA as part of fixture

* Add new fixture to mock stop_polling call

Use this in all polling tests.

* No longer need to check if application is running

It was to stop a test failing.

* Make sure the updater is started in tests

Mock external call methods
Remove stop_polling mock.

* Use cleaner references to patched methods

* Improve test by letting the library create the Update object

* Mock component tear down methods to be async

* Bump mypy cache version

* Update dependency to install from git

Allows use as a custom component in 2024.3
Allows us to track mypy issue resolution.

* Update manifest and requirements for new python-telegram-bot release.

* Remove pytest filterwarnings entry for old version of python-telegram-bot library.

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-08 08:56:26 +01:00
Robert Svensson
15b59d310a Bump axis to v52 (#112632)
* Bump axis to v51

* Bump to v52
2024-03-08 07:42:37 +01:00
J. Nick Koston
caefdc6192 Avoid writing registries to disk during startup (#112662) 2024-03-07 19:14:42 -10:00
J. Nick Koston
0382d628a3 Close hue api if setup fails (#112164)
fixes #109722
2024-03-07 23:39:44 -05:00
J. Nick Koston
a12fa0383b Make zeroconf lookups background tasks (#112669)
* Make zeroconf lookups background tasks

There were blocking startup and shutdown

* disable for now
2024-03-07 23:37:56 -05:00
J. Nick Koston
d40bd0f6c8 Fix dhcp delaying shutdown (#112670) 2024-03-07 23:37:43 -05:00
J. Nick Koston
c101eb5001 Fix homekit_controller delaying startup and shutdown (#112671)
The alive poll was scheduled as a tracked task but should have
been a background task so it was cancelled.
2024-03-07 23:37:22 -05:00
J. Nick Koston
a6b17dbe68 Schedule polling as periodic tasks (#112640)
* Schedule periodic coordinator updates as background tasks.

Currently, the coordinator's periodic refreshes delay startup because they are not scheduled as background tasks. We will wait if the startup takes long enough for the first planned refresh. Another coordinator's scheduled refresh will be fired on busy systems, further delaying the startup. This chain of events results in the startup taking a long time and hitting the safety timeout because too many coordinators are refreshing.

This case can also happen with scheduled entity refreshes, but it's less common. A future PR will address that case.

* periodic_tasks

* periodic_tasks

* periodic_tasks

* merge

* merge

* merge

* merge

* merge

* fix test that call the sync api from async

* one more place

* cannot chain

* async_run_periodic_hass_job

* sun and pattern time changes from automations also block startup

* Revert "sun and pattern time changes from automations also block startup"

This reverts commit 6de2defa05.

* make sure polling is cancelled when config entry is unloaded

* Revert "Revert "sun and pattern time changes from automations also block startup""

This reverts commit e8f12aad55.

* remove DisabledError from homewizard test as it relies on a race

* fix race

* direct coverage
2024-03-07 23:32:26 -05:00
J. Nick Koston
5da629b3e5 Log waiting tasks in bootstrap that are delaying startup (#112637) 2024-03-07 13:18:18 -10:00
jan iversen
27af6f1466 Bump pymodbus to v3.6.5 (#112629) 2024-03-07 22:38:51 +01:00
Erik Montnemery
49d20eedd4 Remove local imports of hass-nabucasa (#112634) 2024-03-07 20:37:35 +01:00
Joost Lekkerkerker
c1d45f63f5 Fix Bang and olufsen naming (#111344)
* Fix Bang and olufsen naming

* Fix

* Fix tests

* Fix tests
2024-03-07 20:15:52 +01:00
Marc Mueller
f3594c543d Use KEY_HASS [a-g] (#112609) 2024-03-07 18:09:20 +01:00
Marc Mueller
8ca127df2a Use KEY_HASS [h-z] (#112610) 2024-03-07 18:03:44 +01:00
jan iversen
714777e853 modbus scan_interval: 0 is correct configuration (#112619) 2024-03-07 17:55:06 +01:00
Erik Montnemery
177d8f3209 Make hass-nabucasa a core requirement (#112623) 2024-03-07 17:11:45 +01:00
J. Nick Koston
70a3f67e03 Avoid extracting the stack twice in system_log (#112572) 2024-03-07 11:00:05 -05:00
Bram Kragten
1b824a4fea Update frontend to 20240307.0 (#112620) 2024-03-07 10:58:49 -05:00
Erik Montnemery
fa4c0d78e9 Restore the juicenet integration (#112578) 2024-03-07 16:41:54 +01:00
Marc Mueller
531e25cbc6 Change KEY_HASS to be an aiohttp AppKey (#111954) 2024-03-07 13:37:48 +01:00
Erik Montnemery
82efb3d35b Make FlowResult a generic type (#111952) 2024-03-07 12:41:14 +01:00
Jeef
008e025d5c Bump weatherflow4py to 0.1.14 (#112554)
adding missing rain states
2024-03-07 12:39:38 +01:00
Joost Lekkerkerker
d42dd0114d Add icon translations to Twinkly (#112328) 2024-03-07 12:33:28 +01:00
Franck Nijhof
bf23672d39 Merge branch 'master' into dev 2024-03-07 12:12:48 +01:00
dependabot[bot]
a92e65bc54 Bump Wandalen/wretry.action from 1.4.5 to 1.4.7 (#112575)
Bumps [Wandalen/wretry.action](https://github.com/wandalen/wretry.action) from 1.4.5 to 1.4.7.
- [Release notes](https://github.com/wandalen/wretry.action/releases)
- [Commits](https://github.com/wandalen/wretry.action/compare/v1.4.5...v1.4.7)

---
updated-dependencies:
- dependency-name: Wandalen/wretry.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-03-07 09:33:31 +01:00
J. Nick Koston
1fb9cfe37e Speed up the frame helper (#112562) 2024-03-06 20:54:09 -10:00
Jesse Hills
3ccbb2c87a Bump aioesphomeapi to 23.1.0 (#112560) 2024-03-07 16:44:58 +13:00
J. Nick Koston
e12e129065 Make HassJob job_type lookup lazy (#112563) 2024-03-06 17:03:27 -10:00
J. Nick Koston
a7b4cd3512 Pass job type to event listeners when creating entities (#112551) 2024-03-06 16:10:07 -10:00
J. Nick Koston
84455dbe1d Avoid having to work out the job type for each entity service at startup (#112557) 2024-03-06 16:09:55 -10:00
J. Nick Koston
869128e951 Pre import the rest of the recorder platforms before asyncio starts (#112289)
* Pre import the rest of the recorder platforms before asyncio starts

I removed these from #112131 since I had trouble with the weather
tests passing due to a race that I could not figure out. The race
seems to have gone away now (at least locally) so hopefully the CI
will pass now

* Avoid importing counter and proximity integrations in logbook

* Avoid importing counter and proximity integrations in logbook
2024-03-06 20:38:52 -05:00
J. Nick Koston
1772e5257c Move analytics setup to later stage to avoid delaying frontend startup (#112535)
Move analytics setup to stage 1 to avoid delaying frontend startup

analytics was only needed in the frontend startup phase for onboarding.
Its very unlikely the user will be able to complete the onboarding
steps and get to the analytics screen before analytics is done loading
so we can delay loading it until stage 1. To be absolutely sure that
it is ready, the core_config step in onboarding will wait to proceed
if it is some how still being setup
2024-03-06 20:37:41 -05:00
J. Nick Koston
67a177679e Log tasks that are being waited on when startup is blocked (#112542) 2024-03-06 13:33:44 -10:00
Joost Lekkerkerker
74dabff4a7 Add icon translations to Waze Travel Time (#112352)
* Add icon translations to Waze Travel Time

* Fix tests
2024-03-06 17:06:41 -05:00
J. Nick Koston
581a4f82b2 Avoid importing counter and proximity integrations in logbook (#112528) 2024-03-06 11:46:38 -10:00
J. Nick Koston
675b1a392b Fix homekit creating executor jobs to resolve default listen ips (#112522) 2024-03-06 11:46:23 -10:00
J. Nick Koston
b8e39bd968 Increase bootstrap preload test timeout (#112520) 2024-03-06 11:06:55 -10:00
J. Nick Koston
96b2d4f9f0 Reduce executor jobs needed to setup filesize (#112490)
* Reduce executor jobs needed to setup filesize

Move the _get_full_path check into the coordinator so everything
can happen in the executor at setup time

* Reduce executor jobs needed to setup filesize

Move the _get_full_path check into the coordinator so everything
can happen in the executor at setup time

* Update homeassistant/components/filesize/coordinator.py

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

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-06 20:54:01 +01:00
G Johansson
248f2ac2fb Remove hourly weather entity from Environment Canada (#112447)
* Remove hourly weather entity from Environment Canada

* Remove from strings
2024-03-06 20:53:44 +01:00
Michael Hansen
457e27ecfd Bump intents to 2024.3.6 (#112515) 2024-03-06 13:47:58 -06:00
Sid
d50e4f6645 Add snapshot tests to webmin (#112518)
add snapshot tests to webmin
2024-03-06 20:22:08 +01:00
J. Nick Koston
0f3838e7a8 Fix sonos overloading the executor when there are many devices (#112482) 2024-03-06 08:55:47 -10:00
J. Nick Koston
7096701cab Use an eager task for Sonos async_update_device_properties (#112488)
If the device does not need to be polled for the battery state which
is only present on portable speakers, the task will never suspend
and never need to be scheduled on the event loop
2024-03-06 13:10:26 -05:00
Erik Montnemery
770e48d512 Simplify color mode logic in Tuya light (#110327)
* Simplify color mode logic in Tuya light

* Remove exclusion from LightEntity.__should_report_light_issue

* Fix test
2024-03-06 18:28:12 +01:00
Joost Lekkerkerker
c8f39911cc Enable some PERF rules (#112498)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-03-06 17:50:41 +01:00
Joost Lekkerkerker
656ef143da Add icon translations to Wallbox (#112350)
* Add icon translations to Wallbox

* fix
2024-03-06 16:27:13 +01:00
Joost Lekkerkerker
f368457544 Add icon translations to Sonarr (#112233) 2024-03-06 16:05:35 +01:00
Erik Montnemery
ffcb06beb9 Allow start_time >= 1.1.7 (#112500) 2024-03-06 14:56:50 +01:00
Josef Zweck
1daaffc01f Bump pytedee_async to 0.2.15 (#112495) 2024-03-06 14:24:53 +01:00
Joost Lekkerkerker
5400b4055a Remove entity description mixin in Dremel 3D Printer (#112405) 2024-03-06 14:24:05 +01:00
Joost Lekkerkerker
86503526ee Remove entity description mixin in EnergyZero (#112412) 2024-03-06 14:23:00 +01:00
Joost Lekkerkerker
0153c1840f Remove entity description mixin in EasyEnergy (#112407) 2024-03-06 14:22:50 +01:00
Erik Montnemery
807c3ca76b Add custom integration block list (#112481)
* Add custom integration block list

* Fix typo

* Add version condition

* Add block reason, simplify blocked versions, add tests

* Change logic for OK versions

* Add link to custom integration's issue tracker

* Add missing file

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-06 13:56:47 +01:00
Simone Chemelli
780428fde6 Disable Shelly diagnostic binary sensor (#112497) 2024-03-06 13:47:16 +01:00
Joost Lekkerkerker
0cdc90468e Add icon translations to Tailscale (#112302) 2024-03-06 13:38:32 +01:00
Joost Lekkerkerker
a23dbe4727 Add icon translations to Whois (#112356) 2024-03-06 13:36:01 +01:00
Joost Lekkerkerker
6be2fa1293 Add icon translations to Zerproc (#112366) 2024-03-06 13:35:08 +01:00
Joost Lekkerkerker
8440b57349 Remove entity description mixin in August (#112383) 2024-03-06 12:50:59 +01:00
Simone Chemelli
8cd98a5319 Add Shelly restart required binary sensor (#112493) 2024-03-06 12:37:15 +01:00
Joost Lekkerkerker
2684b1f772 Add icon translations to Insteon (#111844) 2024-03-06 12:37:06 +01:00
Joost Lekkerkerker
3e5fdfb570 Add icon translations to isy994 (#111847) 2024-03-06 12:36:59 +01:00
Joost Lekkerkerker
8557d03265 Add icon translations to iZone (#111848) 2024-03-06 12:36:51 +01:00
Joost Lekkerkerker
b07e9df308 Add icon translations to Starline (#112241) 2024-03-06 12:36:44 +01:00
Joost Lekkerkerker
e53dcea007 Add icon translations to Poolsense (#112184) 2024-03-06 12:36:35 +01:00
Joost Lekkerkerker
503d39ef0d Add icon translations to TP-Link Omada (#112318)
* Add icon translations to TP-Link Omada

* Add icon translations to TP-Link Omada
2024-03-06 12:36:20 +01:00
Joost Lekkerkerker
a4444925c8 Add icon translations to Transmission (#112324) 2024-03-06 12:36:01 +01:00
Joost Lekkerkerker
8946cfc1e9 Add icon translations to Tuya (#112326) 2024-03-06 12:35:47 +01:00
Joost Lekkerkerker
abf75c4faf Add icon translations to UPB (#112333) 2024-03-06 12:35:38 +01:00
Joost Lekkerkerker
dc2d83f131 Add icon translations to ViCare (#112346)
* Add icon translations to ViCare

* Add icon translations to ViCare
2024-03-06 12:35:30 +01:00
Joost Lekkerkerker
66fae7ff9d Add icon translations to Wilight (#112357) 2024-03-06 12:27:05 +01:00
Joost Lekkerkerker
1cc58f217b Add icon translations to Zodiac (#112369) 2024-03-06 12:26:45 +01:00
Joost Lekkerkerker
4a22415c2d Add icon translations to Zone (#112370) 2024-03-06 12:26:37 +01:00
Joost Lekkerkerker
e041c3aa0f Remove entity description mixin in EnOcean (#112483)
Remove entity description mixin in Enocean
2024-03-06 12:17:35 +01:00
Bram Kragten
3e7d42a83b Update frontend to 20240306.0 (#112492) 2024-03-06 12:16:29 +01:00
Joost Lekkerkerker
50a33c5a18 Fix typo in Reolink translation keys (#112489)
* Fix typo in Reolink translation keys

* Fix typo in Reolink translation keys
2024-03-06 12:14:21 +01:00
Joost Lekkerkerker
c00426293d Add icon translations to Twentemilieu (#112327) 2024-03-06 11:51:23 +01:00
Joost Lekkerkerker
c8f340966e Add icon translations to Elgato (#111423) 2024-03-06 11:49:36 +01:00
Joost Lekkerkerker
2c42517ac4 Add icon translations to Tailwind (#112303) 2024-03-06 11:37:05 +01:00
Joost Lekkerkerker
4d6a910e64 Remove constructor in WLED Options flow (#112456) 2024-03-06 11:33:02 +01:00
Thomas55555
0a11cb5382 Avoid errors when there is no internet connection in Husqvarna Automower (#111101)
* Avoid errors when no internet connection

* Add error

* Create task in HA

* change from matter to automower

* tests

* Update homeassistant/components/husqvarna_automower/coordinator.py

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

* address review

* Make websocket optional

* fix aioautomower version

* Fix tests

* Use stored websocket

* reset reconnect time after sucessful connection

* Typo

* Remove comment

* Add test

* Address review

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-06 11:25:56 +01:00
Erik Montnemery
8c2c3e0839 Improve integration_entities template function (#111943) 2024-03-06 11:05:06 +01:00
Joost Lekkerkerker
09b1b40833 Add icon translations to Reolink (#112208)
* Add icon translations to Reolink

* Fix

* Update homeassistant/components/reolink/icons.json

Co-authored-by: starkillerOG <starkiller.og@gmail.com>

* Update homeassistant/components/reolink/icons.json

---------

Co-authored-by: starkillerOG <starkiller.og@gmail.com>
2024-03-06 11:02:13 +01:00
Aidan Timson
2599252600 Post System Bridge 4.x.x integration improvements (#112189)
* Dont remove api key during migration

* Fix return

* Fix test

* Make lambda more readable

* Move fixtures to init, move migration test to test_init.py

* Refactor config_entry data assignment

* Refactor system_bridge migration tests

* Fix type for debug message

* Fix type for debug message

* Remove duplicated unused code (rebase error)

* Refactor test_migration_minor_2_to_1 to test_migration_minor_future_to_2

* Fix version check in async_migrate_entry

* Update migration logic to handle future minor version

* Add ConfigEntryState assertion in test_init.py

* Change condition to minor_version < 2

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

* Refactor system bridge migration tests

* Remove minor downgrade code

* Update tests/components/system_bridge/test_init.py

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

* Update tests/components/system_bridge/test_init.py

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

* Apply suggestions from code review

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

* Move dataclass to store requested data to data.py

* Use dataclass in config flow

* Move media player and sensor onto data.py dataclass

* Move data and handler inside validate

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-06 10:47:21 +01:00
Joost Lekkerkerker
39cad5f1ee Remove entity description mixin in Enphase Envoy (#112486) 2024-03-05 23:42:07 -10:00
dependabot[bot]
8e26e36033 Bump Wandalen/wretry.action from 1.4.4 to 1.4.5 (#111700)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-03-06 10:34:48 +01:00
J. Nick Koston
87a82e0562 Fix detection of DLI sockets in wemo (#112485) 2024-03-06 10:34:18 +01:00
J. Nick Koston
72ac2f127f Wait to start emulated_hue until the started event (#112477) 2024-03-05 22:25:11 -10:00
Jan-Philipp Benecke
8770a50859 Remove deprecated hass.components usage in mobile_app (#111888) 2024-03-06 09:11:31 +01:00
Brett Adams
f801ec45ce Bump tesla-fleet-api to 0.4.9 (#112288)
* Bump to 0.4.9

* Use SubscriptionRequired instead of PaymentRequired
2024-03-06 09:09:15 +01:00
Jan-Philipp Benecke
995d93dd33 Remove deprecated hass.components usage in config entry flow (#111880)
* Remove deprecated `hass.components` usage in config entry flow

* Do local import

* Also use local import for webhook
2024-03-06 09:07:09 +01:00
steffenrapp
64dcc4606f Deprecate attributes of Nuki entities (#111419)
* Remove attributes from Nuki entities

* Comment about deprecation

* Update homeassistant/components/nuki/binary_sensor.py

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

* Update homeassistant/components/nuki/binary_sensor.py

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

* Update homeassistant/components/nuki/lock.py

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

* Update homeassistant/components/nuki/sensor.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-06 09:01:14 +01:00
starkillerOG
403b47f712 Add Reolink play quick reply message (#112134) 2024-03-06 08:55:49 +01:00
J. Nick Koston
f3a9756f81 Avoid waiting for integration platforms in the parent integration (#112467) 2024-03-05 21:16:42 -10:00
J. Nick Koston
87739bc072 Add test to ensure bootstrap continues if an integraton raises CancelledError (#112472) 2024-03-05 19:34:16 -10:00
Joost Lekkerkerker
eef661c917 Add icon translations to V2C (#112338) 2024-03-06 06:32:47 +01:00
Joost Lekkerkerker
8d6205cedd Add icon translations to iBeacon (#111811)
* Add icon translations to iBeacon

* Add icon translations to iBeacon
2024-03-06 06:32:31 +01:00
Joost Lekkerkerker
addd957091 Use default icon for Lupusec (#111901) 2024-03-06 06:32:19 +01:00
Joost Lekkerkerker
2ed9c26c22 Add icon translations to Tami4 (#112304) 2024-03-06 06:32:09 +01:00
Joost Lekkerkerker
fdb85f9e9e Add icon translations to TechnoVE (#112306)
* Add icon translations to TechnoVE

* Add icon translations to TechnoVE
2024-03-06 06:31:58 +01:00
Joost Lekkerkerker
70c0f3e207 Add icon translations to Totalconnect (#112316) 2024-03-06 06:31:46 +01:00
Joost Lekkerkerker
f357e13e3d Add icon translations to UPnP (#112335)
* Add icon translations to UPnP

* Add icon translations to UPnP
2024-03-06 06:31:37 +01:00
Joost Lekkerkerker
421014bf8d Add icon translations to Tradfri (#112319) 2024-03-06 06:31:22 +01:00
Joost Lekkerkerker
7f6c6e39c0 Add icon translations to Velux (#112341) 2024-03-06 06:31:08 +01:00
Joost Lekkerkerker
af95d9058f Add icon translations to Vesync (#112344) 2024-03-06 06:30:58 +01:00
Joost Lekkerkerker
102dbdabb5 Add icon translations to Weatherflow (#112353) 2024-03-06 06:30:46 +01:00
Joost Lekkerkerker
9d89adb3d0 Add icon translations to iCloud (#111812) 2024-03-06 06:30:34 +01:00
Joost Lekkerkerker
661209111c Add icon translations to Tado (#112301) 2024-03-06 06:30:21 +01:00
Martin Eberhardt
f12d5ba368 Remove myself as maintainer of the Rejseplanen integration (#112426)
* Remove myself as maintainer of the Rejseplanen integration

Unfortunately I don't have the time or energy to maintain the integration.

I have made a post on the Danish HA Facebook group, encouraging someone to take over. https://www.facebook.com/groups/209025039666209/posts/1515990205636346/

* Update CODEOWNERS
2024-03-06 06:30:10 +01:00
Joost Lekkerkerker
48f1b08e4b Add icon translations to Zeversolar (#112367) 2024-03-06 06:27:15 +01:00
J. Nick Koston
8fe80a4766 Migrate remaining get_platform in check_config to async_get_platform (#112470)
These were very likely to be cached so they were low on the
list to migrate, but since they are called in the event loop
its best to be sure we do no blocking I/O
2024-03-05 23:47:41 -05:00
J. Nick Koston
0f69a0647c Migrate remaining get_platform in config to async_get_platform (#112469)
This was the only remaining case where blocking I/O might have happened
in config. It was unlikely though as async_get_component should have
pre-imported the config platform
2024-03-05 23:47:11 -05:00
J. Nick Koston
982c8f8f4a Fix incorrect scope on checking files to load in translations (#112457)
discovered in https://github.com/home-assistant/core/pull/112295#discussion_r1513505710

We only checked if the last language had files to load
instead of all of them. The checks for each language
are the same because the only reason we would skip
a language is a missing/broken integration or the integration
is a single file. Both of these loop conditions are always
the same reguardless of the language so the check worked
2024-03-05 23:46:24 -05:00
G Johansson
f5700aa318 Bump holidays to 0.44 (#112442) 2024-03-05 21:43:58 -05:00
Robert Svensson
fe0ba1141d Fix handling missing parameter by bumping axis library to v50 (#112437)
Fix handling missing parameter
2024-03-05 21:41:20 -05:00
J. Nick Koston
2c13a81086 Load network storage in a task to reduce startup time (#112460)
We waited for these in series but they are not dependant on
each other
2024-03-05 21:32:23 -05:00
J. Nick Koston
9be4fb0574 Start fetching the source ip sooner in http to reduce setup time (#112461) 2024-03-05 21:32:02 -05:00
J. Nick Koston
aa216f0298 Add system_health to the hassio pre-imports to avoid a late executor job (#112466)
* Add system_health to the hassio pre-imports to avoid a late executor job

`2024-03-05 17:01:33.034 DEBUG (MainThread) [homeassistant.loader] Importing platforms for hassio executor=[system_health] loop=[] took 0.12s`

This one does not take that much time but it happens at a time where
the import executor is the most busy during startup

* key

* move patch as its too early now
2024-03-05 21:31:38 -05:00
J. Nick Koston
e568f867d2 Adjust MAX_LOAD_CONCURRENTLY constant to allow 6 storage loaders (#112468) 2024-03-05 16:31:10 -10:00
J. Nick Koston
3f9dbd3e25 Fix config modules being imported in the event loop (#112462)
* Fix config modules being imported in the event loop

There was a late import in this integration because of the circular import.

The code has been rearranged to avoid the circular imports

* fixes

* fixes

* fix patching

* make eager

* remove unrelated change from this branch
2024-03-05 21:18:57 -05:00
Joost Lekkerkerker
f03be2fd9e Remove entity description mixin in BAF (#112386) 2024-03-05 14:59:07 -10:00
Jan-Philipp Benecke
fc732ecf17 Remove list comprehension when adding entities in Vallox (#112446) 2024-03-05 23:42:47 +01:00
Matthias Alphart
862d04c035 Update xknx to 2.12.2 - Fix thread leak on unsuccessful connections (#112450)
Update xknx to 2.12.2
2024-03-05 23:35:22 +01:00
J. Nick Koston
fbabbc8f92 Limit legacy state translations to custom components (#112295)
* Limit legacy state translations to custom components

We were trying to load **thousands** of `*.light.json`, `*.switch.json` files at run time that did not exist.

There have been replaced with entity translations: https://github.com/home-assistant/developers.home-assistant/pull/1557 https://github.com/home-assistant/core/pull/82701

https://github.com/home-assistant/core/pull/112023 will completely remove them, but
for now we will only load them for custom components to reduce the number
of files having to be examined

* reduce

* reduce

* reduce

* reduce

* comment

* coverage

* try to remove empty dict in loaded_translations fallback when missing
2024-03-05 17:27:45 -05:00
J. Nick Koston
d34e2c1f12 Pre import webhook before asyncio starts (#112441)
This one ends in stage 1 and other components have to wait
for it to be imported. Its cheap to import but it ends up
at the end of the line which means other end up waiting for
it which is time we could be doing startup work

`2024-03-04 23:13:04.347 INFO (MainThread) [homeassistant.bootstrap] Setting up stage 1: {usb, websocket_api, webhook, zeroconf, bluetooth, ssdp, dhcp, cloud, network, api, http, hassio}`

It currently always has a wait time for the import executor

`2024-03-04 23:13:04.496 DEBUG (MainThread) [homeassistant.loader] Component webhook import took 0.146 seconds (loaded_executor=True)`
2024-03-05 17:23:18 -05:00
J. Nick Koston
73e1f8a7e5 Pre import image_upload to avoid loading it after asyncio has started (#112444)
image_upload will always be setup because its a dep of person
and since person is a dep of onboarding which is a dep of
frontend its already a base requirement for homeassistant.

Pillow is now listed as a requirement for homeassistant
so we can be sure it installed by the time bootstrap is
loaded

image_upload loading is currently a bottleneck to
get the frontend loaded because it has to load in the
import executor when everything is busy early in startup
2024-03-05 17:22:59 -05:00
J. Nick Koston
235771aaa2 Bump SQLAlchemy to 2.0.28 (#112314) 2024-03-05 12:14:30 -10:00
dependabot[bot]
a7f84c577d Bump dorny/paths-filter from 3.0.1 to 3.0.2 (#112158) 2024-03-05 23:05:24 +01:00
Erik Montnemery
3d3e9900c3 Add TypeVar default for FlowResult (#112345)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-03-05 22:52:11 +01:00
Joost Lekkerkerker
33fe6ad647 Add icon translations to Tomorrowio (#112315) 2024-03-05 16:37:53 -05:00
jan iversen
4a1681bb4b Allow duplicate modbus addresses on different devices (#112434) 2024-03-05 22:11:04 +01:00
Joost Lekkerkerker
dd3c11f179 Remove entity description mixin in Ecoforest (#112409) 2024-03-05 22:05:14 +01:00
Joost Lekkerkerker
362a10e82e Remove entity description mixin in Doorbird (#112400) 2024-03-05 21:59:48 +01:00
Joost Lekkerkerker
4cf900911b Remove entity description mixin in Daikin (#112398) 2024-03-05 21:59:11 +01:00
Joost Lekkerkerker
05628ecb2f Remove entity description mixin in Comfoconnect (#112397) 2024-03-05 21:55:45 +01:00
Joost Lekkerkerker
96e582c1b7 Remove entity description mixin in Awair (#112384) 2024-03-05 21:54:52 +01:00
Joost Lekkerkerker
066f227476 Remove entity description mixin in Aseko (#112382) 2024-03-05 21:52:06 +01:00
Joost Lekkerkerker
71be56e1fd Remove entity description mixin in Android IP Webcam (#112380) 2024-03-05 21:51:12 +01:00
Joost Lekkerkerker
d369447961 Add icon translations to Twitch (#112329) 2024-03-05 21:50:32 +01:00
Joost Lekkerkerker
cde1273399 Add icon translations to Ukraine Alarm (#112330) 2024-03-05 21:49:39 +01:00
Joost Lekkerkerker
928e95781e Add icon translations to Velbus (#112340) 2024-03-05 21:47:55 +01:00
Joost Lekkerkerker
d7d2a28f5e Remove entity description mixin in Abode (#112374) 2024-03-05 21:47:43 +01:00
Joost Lekkerkerker
75df17a8bb Add icon translations to Vallox (#112339) 2024-03-05 21:46:59 +01:00
Joost Lekkerkerker
aab2c91c87 Add icon translations to Verisure (#112342) 2024-03-05 21:45:48 +01:00
Joost Lekkerkerker
f1e564fb47 Add icon translations to Vilfo (#112347) 2024-03-05 21:45:19 +01:00
Joost Lekkerkerker
153b1947fa Remove entity description mixin in AirNow (#112376) 2024-03-05 21:43:48 +01:00
Daniel Shokouhi
7e5a59756e Remove myself as a codeowner for neato (#112410)
* Remove myself as a codeowner for neato

* Update CODEOWNERS from hassfest
2024-03-05 21:40:51 +01:00
G Johansson
4bdcab7cc2 Rename reconfigure step in apple_tv (#112438) 2024-03-05 21:36:46 +01:00
Robert Svensson
7c9891fff9 Break out UniFi config handling to own class (#111325) 2024-03-05 21:36:26 +01:00
Joost Lekkerkerker
ed23bb7c04 Small cleanup in Dexcom (#112425) 2024-03-05 21:36:11 +01:00
Joost Lekkerkerker
5dea902a9c Add icon translations to Azure DevOps (#112436) 2024-03-05 21:34:50 +01:00
Jan-Philipp Benecke
dda0f0d9aa Remove the deprecated YAML support for Aftership (#112390) 2024-03-05 21:28:50 +01:00
Robert Svensson
1bac51142d Do not use list comprehension in async_add_entities in Unifi (#112435)
Do not use list comprehension in async_add_entities
2024-03-05 21:13:14 +01:00
Jan-Philipp Benecke
968f5f1a34 Remove list comprehension when adding entities in Wallbox (#112433) 2024-03-05 22:10:30 +02:00
Jan-Philipp Benecke
b025d6c6f2 Remove list comprehension when adding entities in Smartthings (#112432) 2024-03-05 21:10:02 +01:00
Joost Lekkerkerker
9a24e97ecb Remove entity description mixin in Devolo Home Network (#112399)
* Remove entity description mixin in Devolo Home Network

* Fix
2024-03-05 21:08:57 +01:00
Joost Lekkerkerker
32bb33c55e Migrate Azure DevOps to has entity name (#112420) 2024-03-05 21:06:13 +01:00
Joost Lekkerkerker
ff21a2fcca Remove entity description mixin in Electric Kiwi (#112411) 2024-03-05 20:47:01 +01:00
Jan-Philipp Benecke
85edafa887 Remove list comprehension when adding entities in opengarage (#112430) 2024-03-05 20:46:43 +01:00
Jan-Philipp Benecke
3cfe346656 Remove list comprehension when adding entities in Nextcloud (#112429) 2024-03-05 20:44:50 +01:00
Joost Lekkerkerker
1824ff6438 Remove entity description mixin in Airzone (#112378) 2024-03-05 19:21:11 +01:00
Erik Montnemery
a515603aaf Add button to homeworks (#112269) 2024-03-05 19:10:13 +01:00
Joost Lekkerkerker
8e2de51710 Remove entity description mixin in Dormakaba dKey (#112401) 2024-03-05 19:07:45 +01:00
Martin Hjelmare
4d82ea516a Add comments why we use loop.create_task in core (#112372) 2024-03-05 07:47:35 -10:00
Joost Lekkerkerker
017b2623e8 Remove entity description mixin in Azure DevOps (#112385) 2024-03-05 18:36:58 +01:00
Joost Lekkerkerker
c06ab0bddf Remove entity description mixin in Aladdin Connect (#112379)
* Remove entity description mixin in Aladdin Connect

* Remove entity description mixin in Aladdin Connect
2024-03-05 18:32:35 +01:00
Joost Lekkerkerker
900112b1e8 Remove entity description mixin in AirQ (#112377) 2024-03-05 18:30:42 +01:00
Joost Lekkerkerker
e076b6aacf Add icon translations to Vodafone Station (#112349) 2024-03-05 18:27:31 +01:00
Joost Lekkerkerker
4a7eab92bb Remove entity description mixin in Ecobee (#112408) 2024-03-05 18:27:18 +01:00
Joost Lekkerkerker
a626a698f0 Remove entity description mixin in Dovado (#112402) 2024-03-05 18:26:20 +01:00
Joost Lekkerkerker
59eac48e33 Remove entity description mixin in Bosch SHC (#112394) 2024-03-05 18:14:41 +01:00
Joost Lekkerkerker
b9ef27799b Remove entity description mixin in Bond (#112393) 2024-03-05 18:12:10 +01:00
Joost Lekkerkerker
cb397cecb1 Remove entity description mixin in BMW (#112391) 2024-03-05 18:11:30 +01:00
Joost Lekkerkerker
7cef704220 Remove entity description mixin in Balboa (#112389) 2024-03-05 18:10:00 +01:00
Joost Lekkerkerker
b0011d903e Add icon translations to Vizio (#112348) 2024-03-05 17:30:26 +01:00
Joost Lekkerkerker
38a6b45f60 Remove entity description mixin in Brother (#112396) 2024-03-05 17:29:40 +01:00
Joost Lekkerkerker
e160d036d9 Remove entity description mixin in Bravia TV (#112395)
* Remove entity description mixin in Bravia TV

* Remove entity description mixin in Bravia TV
2024-03-05 17:29:28 +01:00
Franck Nijhof
e8f2f639c7 Merge branch 'master' into dev 2024-03-05 17:09:15 +01:00
Joost Lekkerkerker
0b113b6b71 Remove entity description mixin in Accuweather (#112375) 2024-03-05 16:20:29 +01:00
J. Nick Koston
946572e382 Simplify loader preload logic for config_flows (#112290)
We previously checked Integration.config_flow to see if we should
pre-import the config flow, but this is now always set for some
integration like `homeassistant_green`, `hassio`, etc. Instead
we can add it to the rest of the platforms since we already know
which files exist. This simplifies the logic and ensures the pre-import
still happens if the file is there even if its not listed in the
manifest

`2024-03-04 22:54:31.906 DEBUG (MainThread) [homeassistant.loader] Importing platforms for homeassistant_green executor=[config_flow] loop=[] took 2.74s`
2024-03-05 10:02:23 -05:00
J. Nick Koston
a277d0c4b5 Migrate system flows to use the discovery helper (#112291)
Ensures we are not creating new flows or loading
their platforms until the started event
once the import executor has clamed down
2024-03-05 10:01:31 -05:00
J. Nick Koston
7cb8a8bbc9 Migrate remaining calls in config modules to async_get_component (#112293)
* Migrate remaining calls in config modules to async_get_component

There were a few cases that were still using get_component that
could have done blocking I/O in the event loop, although it
was unlikely.

The caching check in async_get_component has been moved
up to avoid creating the future if the module is already in
the cache

* fix one more
2024-03-05 09:59:52 -05:00
J. Nick Koston
390f5822fe Initialize triggers eagerly (#112294)
Most of these will never suspend and do not need
to be scheduled as tasks on the event loop
2024-03-05 09:58:43 -05:00
Joost Lekkerkerker
dca7083026 Add icon translations to Uptimerobot (#112336)
* Add icon translations to Uptimerobot

* Add icon translations to Uptimerobot
2024-03-05 15:32:12 +01:00
Joost Lekkerkerker
4fcc446255 Add icon translations to Watttime (#112351) 2024-03-05 15:03:22 +01:00
Joost Lekkerkerker
d0a66b3265 Add icon translations to WebOS TV (#112355)
* Add icon translations to WebOS TV

* Update homeassistant/components/webostv/icons.json

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

* Update homeassistant/components/webostv/icons.json

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

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-03-05 14:59:09 +01:00
fwestenberg
385b29bdf5 Add Beaufort to wind_speed (#105795)
* Add Beaufort to wind_speed

* Add Bft to UnitOfSpeed

* Update tests with Bft

* Remove check for unit

* Fix test_deprecated_constants

* Test depricated constant Beaufort

* Fix test_unit_system.py for Beaufort

* Remove _DEPRECATED_SPEED_FEET_BEAUFORT

* Remove maxsize from lru_cache

* Update test_deprecated_constants

* Update comment

* Add missing docstring

* Apply suggestions from code review

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-05 14:55:59 +01:00
J. Nick Koston
f3eb292c2d Remove async_entity_ids and get_entity_ids from entity registry (#112311)
added in #112277 but not used yet.
2024-03-05 14:50:41 +01:00
Aidan Timson
b070bb25a6 Add support for System Bridge service responses (#100055)
* Add support for System Bridge service responses

* Update conversion to use dataclass

* Update debug statements

* Update debug message
2024-03-05 14:30:53 +01:00
Álvaro Fernández Rojas
bf596562bf Update aioairzone-cloud to v0.4.6 (#112198)
This adds Cloud Push related functionality.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-03-05 15:25:15 +02:00
Joost Lekkerkerker
d3f28718ec Add icon translations to Tedee (#112307)
* Add icon translations to Tedee

* Add icon translations to Tedee
2024-03-05 14:20:59 +01:00
Joost Lekkerkerker
446314bb27 Add icon translations to Syncthing (#112297) 2024-03-05 14:20:50 +01:00
Joost Lekkerkerker
2c34c918fc Add icon translations to Template (#112308) 2024-03-05 14:20:41 +01:00
Joost Lekkerkerker
96fbaa4000 Add icon translations to Todoist (#112312) 2024-03-05 14:20:32 +01:00
Joost Lekkerkerker
7aca347db5 Add icon translations to Tile (#112310) 2024-03-05 14:20:23 +01:00
Joost Lekkerkerker
a13304be5c Add icon translations to Tolo (#112313) 2024-03-05 14:20:12 +01:00
Joost Lekkerkerker
d923b56f9f Add icon translations to Tesla Wall Connector (#112309) 2024-03-05 14:20:03 +01:00
Joost Lekkerkerker
c8a30cfda7 Add icon translations to TP-Link (#112317) 2024-03-05 14:19:08 +01:00
Joost Lekkerkerker
98fa4b3d3c Add icon translations to Trend (#112325) 2024-03-05 14:19:01 +01:00
Joost Lekkerkerker
f0679f6689 Add icon translations to Synology DSM (#112299) 2024-03-05 14:17:24 +01:00
Joost Lekkerkerker
0b6d004b9c Add icon translations to Weatherkit (#112354) 2024-03-05 14:05:13 +01:00
Joost Lekkerkerker
835cce4de9 Add icon translations to Xiaomi Aqara (#112360) 2024-03-05 14:03:51 +01:00
Joost Lekkerkerker
810dd0d643 Add icon translations to Yardian (#112362) 2024-03-05 14:01:09 +01:00
Joost Lekkerkerker
f81b1819b0 Add icon translations to YoLink (#112364) 2024-03-05 14:00:31 +01:00
Joost Lekkerkerker
afdb7d15ca Add icon translations to YouTube (#112365)
* Add icon translations to YouTube

* Add icon translations to YouTube
2024-03-05 13:59:08 +01:00
Joost Lekkerkerker
a26e52aa0c Add icon translations to Yale (#112361) 2024-03-05 13:58:02 +01:00
Joost Lekkerkerker
de803349fb Add icon translations to Workday (#112359) 2024-03-05 13:57:27 +01:00
Joost Lekkerkerker
cd967c1af4 Add icon translations to Trafikverket Weather station (#112323) 2024-03-05 13:00:10 +01:00
Joost Lekkerkerker
54a5820c3e Add icon translations to Trafikverket Camera (#112320) 2024-03-05 12:59:30 +01:00
Joost Lekkerkerker
d9e9b55a4b Add icon translations to Trafikverket Ferry (#112321)
* Add icon translations to Trafikverket Ferry

* Add icon translations to Trafikverket Ferry
2024-03-05 12:58:51 +01:00
Joost Lekkerkerker
6e99ca0d8a Add icon translations to Trafikverket Train (#112322)
* Add icon translations to Trafikverket Train

* Add icon translations to Trafikverket Train
2024-03-05 12:58:19 +01:00
Joost Lekkerkerker
bd3add2cad Add icon translations to Tautulli (#112305)
* Add icon translations to Tautulli

* Add icon translations to Tautulli
2024-03-05 12:26:10 +01:00
Robert Svensson
4437b3bc97 Fix deCONZ light entity might not report a supported color mode (#112116)
* Handle case where deCONZ light entity might not report a supported color mode

* If in an unknown color mode set ColorMode.UNKNOWN

* Fix comment from external discussion
2024-03-05 11:55:22 +01:00
Joost Lekkerkerker
0b4fafddbc Add icon translations to Systemmonitor (#112300)
* Add icon translations to Systemmonitor

* Add icon translations to Systemmonitor
2024-03-05 11:52:50 +01:00
Joost Lekkerkerker
33c1e7d45d Add icon translations to Switcher kis (#112296) 2024-03-05 12:34:18 +02:00
Allen Porter
2e65952eae Cleanup rainbird aiohttp client cleanup on EVENT_HOMEASSISTANT_CLOSE (#112292)
* Add rainbird aiohttp client cleanup for EVENT_HOMEASSISTANT_CLOSE

* Apply suggestions from code review

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-05 09:35:00 +01:00
Joost Lekkerkerker
1feeeb8608 Add icon translations to Plex (#112182) 2024-03-05 09:20:00 +01:00
Joost Lekkerkerker
48de304465 Add icon translations to Permobil (#112170) 2024-03-05 09:19:52 +01:00
Joost Lekkerkerker
b0136ee244 Add icon translations to PECO (#112169) 2024-03-05 09:19:37 +01:00
Joost Lekkerkerker
2397501776 Add icon translations to Pi-hole (#112180) 2024-03-05 09:19:27 +01:00
Joost Lekkerkerker
1d936e9bbf Add icon translations to Shopping list (#112223) 2024-03-05 09:19:19 +01:00
Joost Lekkerkerker
fe60cdd821 Use default icon in Romy (#112215) 2024-03-05 08:51:11 +01:00
Joost Lekkerkerker
14eba0e7ad Add icon translations to Speedtestdotnet (#112237) 2024-03-05 08:50:59 +01:00
Joost Lekkerkerker
0e0c1d337f Add icon translations to P1 monitor (#111998)
* Add icon translations to P1 monitor

* Add icon translations to P1 monitor
2024-03-05 08:50:46 +01:00
Jan Bouwhuis
0c2cf881ac Deprecate old config options for MQTT json light (#111676)
* add deprecaction

* Deprecate old config options for mqtt json light

* Do not deprecate brightness flag

* Enable brightness support by default

* Keep `false` as default for brightness flag

* Add warnings and register issue

* log warning and register on use of color_mode flag

* Remove redundant cv.deprecated logging + follow up comments
2024-03-05 08:49:05 +01:00
Joost Lekkerkerker
4f9d8d3048 Add icon translations to Subaru (#112252) 2024-03-05 08:47:28 +01:00
Joost Lekkerkerker
3005c92585 Add icon translations to Soundtouch (#112236) 2024-03-05 08:47:17 +01:00
Joost Lekkerkerker
ee9802534a Add icon translations to Solaredge (#112231) 2024-03-05 08:47:00 +01:00
Joost Lekkerkerker
0724a06d3a Add icon translations to Snooz (#112230) 2024-03-05 08:46:49 +01:00
Joost Lekkerkerker
79fcedef15 Add icon translations to Skybell (#112225) 2024-03-05 08:46:38 +01:00
Joost Lekkerkerker
ddcb38289e Add icon translations to Roomba (#112217) 2024-03-05 08:46:25 +01:00
Joost Lekkerkerker
b8be90efa8 Add icon translations to Rituals perfume genie (#112213)
* Add icon translations to Rituals perfume genie

* Add icon translations to Rituals perfume genie
2024-03-05 08:45:47 +01:00
Joost Lekkerkerker
a3a758bd17 Add icon translations to Ring (#112212)
* Add icon translations to Ring

* Add icon translations to Ring
2024-03-05 08:45:33 +01:00
Joost Lekkerkerker
85aedbc200 Add icon translations to Renson (#112207) 2024-03-05 08:45:22 +01:00
Joost Lekkerkerker
926159ab9a Add icon translations to RDW (#112203)
* Add icon translations to RDW

* Add icon translations to RDW
2024-03-05 08:45:10 +01:00
Joost Lekkerkerker
161d31d789 Add icon translations to Radiotherm (#112197) 2024-03-05 08:44:57 +01:00
Joost Lekkerkerker
053649faa5 Add icon translations to Radarr (#112196) 2024-03-05 08:44:42 +01:00
Joost Lekkerkerker
2ae90d5eed Add icon translations to Rachio (#112195) 2024-03-05 08:44:30 +01:00
Joost Lekkerkerker
982dab3849 Add icon translations to QNap QSW (#112194) 2024-03-05 08:44:17 +01:00
Joost Lekkerkerker
223be9c788 Add icon translations to QBittorrent (#112193) 2024-03-05 08:44:04 +01:00
Joost Lekkerkerker
30a8c1739f Add icon translations to PS4 (#112190) 2024-03-05 08:43:50 +01:00
Joost Lekkerkerker
2585b240d3 Add icon translations to Prusalink (#112188) 2024-03-05 08:43:37 +01:00
Joost Lekkerkerker
85aadb2a20 Add icon translations to Prosegur (#112187) 2024-03-05 08:43:23 +01:00
Joost Lekkerkerker
ab06f54544 Add icon translations to Profiler (#112186) 2024-03-05 08:43:10 +01:00
Joost Lekkerkerker
fb5e5221ae Add icon translations to Plum lightpad (#112183) 2024-03-05 08:42:59 +01:00
Joost Lekkerkerker
cb3c7f6b0a Add icon translations to Rainforest Raven (#112201) 2024-03-05 08:42:45 +01:00
Joost Lekkerkerker
4cb8df0951 Add icon translations to SMS (#112228) 2024-03-05 08:42:25 +01:00
Robert Svensson
ab4750c2ea Remove unnecessary access to UniFi hub object in tests (#112275)
* Remove unnecessary access to UniFi hub object

* Split strings

* Skip + on concatenating f-strings

* Use single quotes inside double quotes
2024-03-05 08:23:17 +01:00
J. Nick Koston
8b017016b0 Refactor integration platforms to import in the executor (#112168)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-04 19:21:18 -10:00
Joost Lekkerkerker
a9caa3e582 Add icon translations to Elkm1 (#111512) 2024-03-04 18:45:03 -10:00
J. Nick Koston
1e173e82d0 Add support for preloading platforms in the loader (#112282)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-04 16:33:12 -10:00
Mr. Bubbles
d0c81f7d00 Bump bring-api to 0.5.5 (#112266)
Fix KeyError listArticleLanguage
2024-03-04 21:19:26 -05:00
J. Nick Koston
e26c5f5d29 Ensure hassio diagnostics get imported with the integration (#112286) 2024-03-04 16:07:07 -10:00
J. Nick Koston
2c179dc5fb Reduce some linear searches to cleanup the device registry (#112277)
Some of the data we had to search for was already available
in a dict or underlying data structure. Make it available
instead of having to build it every time.

There are more places these can be used, but I only did
the device registry cleanup for now
2024-03-04 20:59:12 -05:00
Marc Mueller
e357c4d5e5 Update pytest to 8.1.0 (#112173) 2024-03-04 23:58:20 +01:00
Robert Svensson
8777606c6f Remove callback decorator from coroutine (#112276) 2024-03-04 15:40:13 -05:00
Luke Lashley
59df20f1d4 Bump python_roborock to 0.40.0 (#112238)
* bump to python_roborock 0.40.0

* manifest went away in merge?
2024-03-04 20:28:53 +01:00
Joost Lekkerkerker
f7acb7c91b Add icon translations to Spotify (#112239) 2024-03-04 20:27:08 +01:00
Joost Lekkerkerker
cfd88d004b Add icon translations to Sure Petcare (#112253) 2024-03-04 20:26:42 +01:00
Isak Nyberg
0663a4be3b Add permobil binary sensor (#112130)
* add binary sensor

* remove _LOGGER and mixin
2024-03-04 20:11:14 +01:00
Joost Lekkerkerker
119df48aac Add icon translations to Streamlabswater (#112247) 2024-03-04 20:08:37 +01:00
Joost Lekkerkerker
fdd264194b Add icon translations to Squeezebox (#112240) 2024-03-04 20:05:59 +01:00
Joost Lekkerkerker
c5e11a00ba Add icon translations to Starlink (#112244) 2024-03-04 20:05:15 +01:00
Joost Lekkerkerker
55d4299269 Add icon translations to Steamist (#112246) 2024-03-04 20:04:13 +01:00
Erik Montnemery
32964a2e90 Add device and enable entity name for Lutron homeworks (#112268) 2024-03-04 19:50:49 +01:00
Erik Montnemery
68141873cd Enable strict typing of homeworks (#112267) 2024-03-04 19:50:33 +01:00
Jeef
7406ae31f6 Weatherflow_cloud backing lib bump (#112262)
Backing lib bump
2024-03-04 13:35:50 -05:00
Álvaro Fernández Rojas
6544e91f62 Update aioairzone to v0.7.6 (#112264)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-03-04 13:34:53 -05:00
Erik Montnemery
7e7f25c859 Add config flow to homeworks (#112042) 2024-03-04 19:09:39 +01:00
Brett Adams
b5528de807 Add sensor platform to Teslemetry (#109088)
* Adding Energy

* Adding Energy

* Work in progress

* Add fixtures

* Add product info

* Add sensors

* Add icons

* Update metadata

* Use SensorEntityDescription for Energy

* Use ENERGY_STORAGE

* Add tests

* Fix coverage

* Update wall connector precision and units

* Change devices

* Fix serial number

* Add icons and VIN to wall connector

* Fix serial number again

* Update snapshots

* Use timestamp for minutes to arrival

* Cleanup snapshot

* Improvements

* Update fixture

* Add "code" to translations

* Add "code" to snapshot

* Use async_add_entities once

* Disable a bunch of sensors

* Ruff

* Improve fixture and test coverage

* Regen Snapshots

* Add init to coordinator
2024-03-04 18:42:56 +01:00
Xiretza
b195c3fa7b Fix spaceapi attribute for closed icon (#108596)
spaceapi: fix attribute for closed icon

The JSON field is "state.icon.closed", not "state.icon.close".
2024-03-04 18:22:18 +01:00
Paul Bottein
4bc9d806e2 Update frontend to 20240304.0 (#112263) 2024-03-04 12:09:49 -05:00
hopkins-tk
3d1fbe444e Fix authentication issues for asekopool (#99495)
* fix: handle authentication issues for asekopool

* fix: handle authentication issues for asekopool

* feat: add config migration

* feat: add re-authentication step

* fix: add reauth message

* fix: add tests for config flow

* fix: tests clean up

* Update homeassistant/components/aseko_pool_live/__init__.py

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

* Update homeassistant/components/aseko_pool_live/__init__.py

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

* fix: Reformat code

* Fix bad merge

* Really fix bad merge

* Update config_flow.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-04 17:20:46 +01:00
Joost Lekkerkerker
91b2dd4b83 Add icon translations to Sensibo (#112222)
* Add icon translations to Sensibo

* Add icon translations to Sensibo

* Add icon translations to Sensibo
2024-03-04 17:20:27 +01:00
belangp
58d0420a6b Add Hyperion sensor to report active priority on each instance (#102333)
* Implement code review comments

* Update homeassistant/components/hyperion/sensor.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-04 17:20:20 +01:00
Brig Lamoreaux
0134715e2b Address srp_energy late review comment (#105756)
Change the reference to already_configured_service.
2024-03-04 17:19:03 +01:00
Joost Lekkerkerker
f0487da6f6 Add icon translations to Swiss public transport (#112254) 2024-03-04 16:58:38 +01:00
Joost Lekkerkerker
d7c91a4195 Add icon translations to Roon (#112218) 2024-03-04 16:56:19 +01:00
Aidan Timson
ce897b8645 Change log level for System Bridge service handlers (#112175)
Change log level from info to debug for System Bridge service handlers
2024-03-04 10:54:58 -05:00
Joost Lekkerkerker
03793d75f8 Add icon translations to Screenlogic (#112220) 2024-03-04 16:53:30 +01:00
Joost Lekkerkerker
3c12f6339e Add icon translations to Season (#112221) 2024-03-04 16:53:10 +01:00
Joost Lekkerkerker
47b7333d99 Add icon translations to Slack (#112226) 2024-03-04 10:51:17 -05:00
Joost Lekkerkerker
863950ab12 Add icon translations to sabNZBd (#112219) 2024-03-04 10:50:40 -05:00
Joost Lekkerkerker
2563db9a0c Add icon translations to Smarttub (#112227) 2024-03-04 16:21:39 +01:00
Mr. Bubbles
34d25cf9e6 Bump bring-api to 0.5.4 (#111654) 2024-03-04 15:57:37 +01:00
Joost Lekkerkerker
6aae44dbb3 Add icon translations to Philips TV (#112179) 2024-03-04 15:47:15 +01:00
Joost Lekkerkerker
511810a4f5 Add icon translations to Songpal (#112234) 2024-03-04 15:46:49 +01:00
Joost Lekkerkerker
7089ace894 Add icon translations to Solarlog (#112232) 2024-03-04 15:46:34 +01:00
Joost Lekkerkerker
2db0da3915 Add icon translations to Renault (#112205)
* Add icon translations to Renault

* Add icon translations to Renault
2024-03-04 15:46:14 +01:00
Joost Lekkerkerker
b8629028da Add icon translations to Rainmachine (#112202) 2024-03-04 15:45:48 +01:00
Joost Lekkerkerker
7eb61b748e Add icon translations to PurpleAir (#112192) 2024-03-04 15:45:36 +01:00
Joost Lekkerkerker
a2b9f59b8c Add icon translations to Private BLE Device (#112185) 2024-03-04 15:44:58 +01:00
Joost Lekkerkerker
15fa302c9a Add icon translations to Recollect Waste (#112204) 2024-03-04 15:37:03 +01:00
Joost Lekkerkerker
35599046ac Add icon translations to Ridwell (#112210) 2024-03-04 15:36:50 +01:00
Joost Lekkerkerker
4cfca55099 Add icon translations to Simplisafe (#112224) 2024-03-04 15:36:41 +01:00
Joost Lekkerkerker
f5367e002b Add icon translations to RFXCOM RFXtrx (#112209) 2024-03-04 15:27:00 +01:00
Joost Lekkerkerker
d811125eb7 Add icon translations to Rainbird (#112200)
* Add icon translations to Rainbird

* Add icon translations to Rainbird
2024-03-04 15:26:41 +01:00
Joost Lekkerkerker
f7ac3912ec Add icon translations to Snapcast (#112229) 2024-03-04 15:26:33 +01:00
Álvaro Fernández Rojas
a55fb1184a Fix pylint/mypy on elmax integration (#112211)
elmax: config_flow: fix mypy/pylint

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-03-04 14:36:37 +01:00
RoboMagus
b381922a20 Issues template function (#95206)
* Add 'issues' template function for listing active issues.

* Add issue template function test

* Add 'issue' template function for getting specific issue by domain and issue_id

* Remove comment

* Fix function description

* Remove reduntant function,
Fix tests

* remove pass_context

* remove issues filter

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

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-04 14:22:14 +01:00
Aidan Timson
c2a991625d Update systembridgeconnector to 4.0.2 (#112174) 2024-03-04 14:16:22 +02:00
J. Nick Koston
917f0f849d Import in the executor by default for core integrations (#112127)
* Import in the executor by default for core integration

* merge correct branch in

* Group loading of platforms in the import executor

* adjust test

* remove other pr

* Fix async_prepare_setup_platform test

The message changed because the order changed but was not caught before
merge because it required the combination of PRs to change
the error message

* fix

* tweak

* fix

* self review

* review

* fix hue mocking

* Update homeassistant/loader.py

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

* lint

* Fix async_get_component loading in the executor when the module is already loaded

The sys.modules check was incorrect (only on dev)

* fix

* Avoid multiple executor jobs with concurrent calls to async_get_component

Return a future that can be awaited if the component is
curently being loaded

* adjust

* coverage

* coverage

* concurrent platforms load test

* doc strings

* coverage

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-04 06:29:32 -05:00
J. Nick Koston
dd00a87ac5 Migrate application_credentials to use async_get_platform (#112161)
This ensures that if application_credentials loads the integration's
application_credentials platform it will get loaded in the executor if enabled
2024-03-04 06:27:52 -05:00
J. Nick Koston
a698bd5800 Migrate rest to use eager tasks for setup (#112166)
The refresh tasks will avoid one iteration of the event loop
to start fetching data

The load tasks will likely never suspend and avoid being
scheduled on the event loop
2024-03-04 06:26:55 -05:00
J. Nick Koston
613bf1c226 Migrate device_automation to use async_get_platform (#112162)
This ensures that if device_automation loads an integration's
platform it will get loaded in the executor if enabled
2024-03-04 06:11:34 -05:00
J. Nick Koston
9d7c947d19 Migrate config to use async_get_component (#112160)
The component should always be loaded here but in the rare
case it might not be, we should not block the loop when it
loads
2024-03-04 06:10:44 -05:00
Erik Montnemery
c58828aac0 Remove unused test helper mock_area_registry (#112172) 2024-03-04 06:09:27 -05:00
dependabot[bot]
1b7c3061f3 Bump actions/download-artifact from 4.1.3 to 4.1.4 (#112159) 2024-03-04 11:50:31 +01:00
Alberto Geniola
86039de3cd Add local API support to elmax (#94392)
* Add support for local (lan) panel integration

* Fix merge conflicts

* Remove executable flag from non-executable files

* Fix tests

* Update homeassistant/components/elmax/__init__.py

Shorten comment

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

* Fix typehint

* Rename DummyPanel into DirectPanel

* Update homeassistant/components/elmax/__init__.py

Rewording

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

* Update homeassistant/components/elmax/__init__.py

Rewording

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

* Refactor option step into menu step

* Change requirement statement

* Refactor dictionary key entries to use existing constants

* Align step names to new constants

* Align step names to new constants amd align tests

* Align step names to new constants amd align tests

* Align step names to new constants

* Simplify logic to handle entire entry instead of a portion of the state

* Simplify working mode checks

* Add data_description dictionary to better explain SSL and FOLLOW_MDSN options

* Add support for local (lan) panel integration

* Fix merge conflicts

* Remove executable flag from non-executable files

* Fix tests

* Update homeassistant/components/elmax/__init__.py

Shorten comment

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

* Fix typehint

* Rename DummyPanel into DirectPanel

* Update homeassistant/components/elmax/__init__.py

Rewording

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

* Update homeassistant/components/elmax/__init__.py

Rewording

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

* Refactor option step into menu step

* Change requirement statement

* Refactor dictionary key entries to use existing constants

* Align step names to new constants

* Align step names to new constants amd align tests

* Align step names to new constants amd align tests

* Align step names to new constants

* Simplify logic to handle entire entry instead of a portion of the state

* Simplify working mode checks

* Add data_description dictionary to better explain SSL and FOLLOW_MDSN options

* Add newline at end of file

* Remove CONF_ELMAX_MODE_DIRECT_FOLLOW_MDNS option

* Fix Ruff pre-check

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-04 11:39:13 +01:00
Aidan Timson
4c67670566 Update System Bridge to support version 4.x.x and above (#107957)
* Update System Bridge to support version 4.x.x and above

Update systembridgeconnector to version 4.0.0.dev4

Update system_bridgeconnector version to 4.0.0.dev6

Refactor WebSocket client handling in config_flow.py

Update strings

Update data handling

Add default field values to SystemBridgeCoordinatorData

Add version check and issue creation for unsupported System Bridge versions

Update coordinator.py to set disks and memory to None

Update system bridge coordinator to use token instead of API key

Update systembridgeconnector version to 4.0.0.dev7

Update systembridgeconnector version to 4.0.0.dev8

Update systembridgeconnector version to 4.0.0.dev9

Changes

Update units

Fix GPU memory calculation in sensor.py

Update GPU memory unit of measurement

Add translation keys for binary sensor names

Cleanup

Add async_migrate_entry function for entry migration

Update systembridgeconnector version to 4.0.0.dev10

Update systembridgeconnector version to 4.0.0.dev11

Add version check and authentication handling

Update token description in strings.json

Fix skipping partitions without data in system_bridge sensor

Update systembridgeconnector version to 4.0.0.dev12

Update systembridgeconnector version to 4.0.0

Add check for unsupported version of System Bridge

Update systembridgeconnector version to 4.0.1

Update debug log message in async_setup_entry function

Remove debug log statement

Fixes

Update key to token

Update tests

Update tests

Remove unused import in test_config_flow.py

Remove added missing translations for another PR

Refactor CPU power per CPU calculation

Make one liner into lambda

Refactors

Fix exception type in async_setup_entry function

Move checks to class and set minor version

Remove unnecessary comment in gpu_memory_free function

Remove translation_key for memory_used_percentage sensor

Reverse string change

Update token placeholder in strings.json

Remove suggested_display_precision from sensor descriptions

Remove suggested_display_precision from GPU sensor setup

Refactor sensor code

* Update migrate entry

* Refactor GPU-related functions to use a decorator

* Move per cpu functions to use decorator

* Refactor functions to use decorators for data availability

* Remove CONF_API_KEY from config entry data

* Add test for migration

* Refactor import statement in test_config_flow.py
2024-03-04 11:14:46 +01:00
Christopher Fenner
faef5da1c5 Handle exception in ViCare integration (#111128) 2024-03-04 10:10:59 +01:00
Allen Porter
ac416f7e07 Add rainbird request debouncer and immediately update entity switch state (#112152) 2024-03-04 10:05:28 +01:00
Yuxin Wang
2c5510df30 Avoid using coordinator in config flow of APCUPSD (#112121)
* Separate data class out of coordinator

* Further fix the imports

* Update homeassistant/components/apcupsd/coordinator.py

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

* Use `or` to make it a bit cleaner when trying to find the UPS model

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>

* Use or to make it a bit cleaner when trying to find the UPS model

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>

* Use plain dict instead of `OrderedDict`

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2024-03-04 09:40:59 +01:00
J. Nick Koston
38f9285bd6 Group platform loads in homekit_controller to minimize executor use (#112148) 2024-03-03 22:39:07 -10:00
J. Nick Koston
40c0b4caf0 Import recorder and common recorder platforms before asyncio starts (#112131) 2024-03-03 22:03:30 -10:00
Jan Bouwhuis
c13231fc00 Improve mqtt value template error logging (#110492)
* Refactor mqtt value template error logging

* Remove import
2024-03-04 08:49:12 +01:00
J. Nick Koston
5227976aa2 Group loading of platforms in the import executor (#112141)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-03 21:32:19 -10:00
Christopher Fenner
e0a8a9d551 Ignore unsupported devices (room sensors, floor heating) in ViCare integration (#112106)
* ignore unsupported devices

* Update __init__.py

* move unsupported device to const

* fix ruff
2024-03-04 07:56:45 +01:00
J. Nick Koston
943996b60b Avoid multiple executor jobs with concurrent calls to async_get_component (#112155) 2024-03-03 20:22:31 -10:00
Robert Svensson
99414d8b85 Streamline UniFi entity descriptions (#112136)
* Use kw_only=True to get rid of Mixins

* Clarify which inputs are optional and make them have default values
Add doc strings to optional inputs
2024-03-04 00:00:17 -05:00
J. Nick Koston
d7507fd8a3 Run more of hassio setup in in tasks (#112151)
* Run more of hassio setup in in tasks

There were a few more places were we waited in sequence
where we have to make remote api calls that could be
moved to tasks

* tweak

* tweak
2024-03-03 23:57:01 -05:00
Adam Goode
a049d0e846 Add types throughout the prometheus tests (#112156) 2024-03-03 20:13:35 -08:00
J. Nick Koston
f4b2c9b569 Fix async_get_component loading in the executor when the module is already loaded (#112153) 2024-03-03 17:56:50 -10:00
J. Nick Koston
bef8376f83 Use MockConfigEntry in hue tests (#112149)
needed for https://github.com/home-assistant/core/pull/112141
2024-03-03 21:21:33 -05:00
J. Nick Koston
331989de4c Migrate condition/state/trigger helper to use async_get_platform (#112144)
Currently these would always load the platform in the loop
if it was not already loaded
2024-03-03 21:20:47 -05:00
J. Nick Koston
f1eab3f11f Preload config flow if it exists when loading a component (#112145)
Since config_entries always requires the config_flow to be loaded
to check for migrations, load it if we know it exists when loading
the underlying integration
2024-03-03 21:16:50 -05:00
J. Nick Koston
d50b4ccd62 Split up hassio coordinator and data into new file to allow preload (#112147)
* Split up hassio coordinator and data into new file to allow preload

Since we cannot mark hassio as having a config_flow, it will
not get preloaded and since cloud will almost always load right
after it and block the import executor, we want to preload
the hassio config_flow and platform modules so the other
dependants can continue on while cloud is being imported
to not delay startup

* tweak

* tweak
2024-03-03 21:16:02 -05:00
Robert Svensson
ec8d23d0af Fix places not changed to hub in Axis tests (#112128) 2024-03-03 20:45:06 -05:00
Allen Porter
5cb5a1141f Limit rainbird aiohttp client session to a single connection (#112146)
Limit rainbird to a single open http connection
2024-03-03 19:54:05 -05:00
David F. Mulcahey
f9e00ed45b Fix ZHA groups page (#112140)
* Fix ZHA groups page

* test
2024-03-03 19:17:02 -05:00
J. Nick Koston
60f81c8340 Fix async_prepare_setup_platform test (#112143) 2024-03-03 14:16:44 -10:00
starkillerOG
68f17b5eab Add Reolink PTZ patrol start/stop (#112129) 2024-03-03 23:13:40 +01:00
J. Nick Koston
d6cbadba3e Ensure setup loads top level component before platforms (#112057) 2024-03-03 11:42:16 -10:00
Joost Lekkerkerker
3c960b7d4e Add icon translations to Melnor (#111906)
* Use default icon for Melnor

* Use default icon for Melnor
2024-03-03 21:33:33 +01:00
J. Nick Koston
ec1400d392 Fix flakey tplink test (#112135)
The test here was assuming the first slow was the one it
wanted, but sometimes the other flow wins the race
2024-03-03 21:29:45 +01:00
J. Nick Koston
ba9733e90b Try to preload the config platform when loading a component (#112104) 2024-03-03 10:23:08 -10:00
starkillerOG
372886bf6c Add package detection to Reolink (#112126)
Add package detection
2024-03-03 12:58:28 -05:00
J. Nick Koston
da6eca7b68 Avoid compiling entity service schema when passed defaults (#112099)
* Avoid compiling entity service schema when passed defaults

* dry
2024-03-03 12:50:04 -05:00
J. Nick Koston
0a462071c8 Import screenlogic in the executor to avoid blocking the loop (#112097) 2024-03-03 12:48:28 -05:00
J. Nick Koston
9af12a0639 Avoid calling async_get_component twice for each component being setup (#112096)
We already have the component so we can pass it to
async_process_component_config to avoid having to
look it up again
2024-03-03 12:48:07 -05:00
starkillerOG
72efb3dab5 Bump reolink-aio to 0.8.9 (#112124)
* Update strings.json

* Bump reolink-aio to 0.8.9
2024-03-03 12:47:09 -05:00
Jan-Philipp Benecke
f20e1ad560 Exclude tankerkoenig attributes from recording (#112109) 2024-03-03 12:46:51 -05:00
Robert Svensson
4eb24b2db7 Clean up setup and teardown of Axis integration (#112120) 2024-03-03 12:42:44 -05:00
Luke Lashley
74f1420410 Add the ability to resume cleaning on start button (#112122) 2024-03-03 12:41:31 -05:00
Michael
409dc02d36 Ignore failing gas stations in Tankerkoening (#112125) 2024-03-03 18:29:02 +01:00
G Johansson
cdd7b94a95 Move all System Monitor updates into single Data Update Coordinator (#112055) 2024-03-03 07:24:04 -10:00
J. Nick Koston
faee9d996d Import steamist in the executor to avoid blocking the loop (#112111) 2024-03-03 07:21:55 -10:00
Jan-Philipp Benecke
911cf60678 Address late review for Ping (#112123)
* Address late review for Ping

* Fix import
2024-03-03 18:10:22 +01:00
J. Nick Koston
a37c82e34c Add comment to integration platform helper about blocking I/O (#112103) 2024-03-03 07:00:35 -10:00
David F. Mulcahey
7af82161a0 Bump Zigpy to 0.63.4 (#112117) 2024-03-03 11:31:23 -05:00
Joakim Plate
13653be09b Add event platform to rfxtrx (#111526) 2024-03-03 17:15:54 +01:00
J. Nick Koston
9fff638311 Load wyoming in the executor to avoid blocking the event loop (#112107) 2024-03-03 08:56:08 -06:00
Åke Strandberg
073fcfcd6f Add tests for number of devices created in myuplink (#111816)
* Add tests for number of devices created

* Change default fixture to 2 devices in one system

* Update snapshot

* Change deviuce to test

* Merge tests to one module
2024-03-03 14:27:24 +01:00
Joost Lekkerkerker
f02e60533d Add icon translations to Nexia (#111980)
* Add icon translations to Nexia

* Add icon translations to Nexia
2024-03-03 14:08:33 +01:00
Joost Lekkerkerker
895dc6fce1 Add icon translations to Nextbus (#111981) 2024-03-03 14:08:19 +01:00
Álvaro Fernández Rojas
25ba046ff1 Fix flakey airzone_cloud tests by avoiding creation of the websocket (#112102) 2024-03-03 00:56:14 -10:00
Matrix
2f223ae377 Add YoLInk YS7905-UC Support (#111709)
* Add YS7905-UC Support

* Fix as suggestion
2024-03-03 11:11:45 +01:00
Jan-Philipp Benecke
25551fa938 Move Ping binary sensor attributes to sensor entities (#112004)
* Move Ping binary sensor attributes to sensor entities

* Process code review

* Update snapshot
2024-03-03 11:08:28 +01:00
J. Nick Koston
6a243d6705 Preload platform integrations to better group executor usage (#112010) 2024-03-02 23:03:35 -10:00
J. Nick Koston
c8cb0ff61d Avoid trying to import platforms that do not exist (#112028)
* Avoid trying to import platforms that do not exist

* adjust

* fixes

* cleanup

* cleanup

* cleanup

* Apply suggestions from code review

* docs

* fixes

* fixes

* comment

* coverage

* coverage

* coverage

* Switch config to use async_get_component

This was another path where integrations that were marked to load in the executor
would be loaded in the loop

* Switch config to use async_get_component/async_get_platform

This was another path where integrations that were marked to load in the executor
would be loaded in the loop

* merge

* refactor

* refactor

* coverage

* preen

* preen
2024-03-02 22:14:28 -05:00
David Knowles
a253991c6d Bump pydrawise to 2024.3.0 (#112066) 2024-03-02 22:00:50 -05:00
J. Nick Koston
dc3c7c95f7 Import stream in the executor to avoid blocking the event loop (#112078)
* Import stream in the executor to avoid blocking the event loop

This one has some large deps

* one more place

* avoid call if no change

* just in case
2024-03-02 22:00:28 -05:00
J. Nick Koston
aaa2d8745f Import template in the executor to avoid blocking the event loop (#112070)
Importing template has a very long dep tree
2024-03-02 21:59:34 -05:00
J. Nick Koston
2fe12ade4c Ensure all homekit_controller controllers are imported in advance (#112079)
* Ensure all homekit_controllers are imported in advance

We want to avoid importing them in the event loop later

* Ensure all homekit_controllers are imported in advance

We want to avoid importing them in the event loop later
2024-03-02 21:56:33 -05:00
J. Nick Koston
131068358a Import yeelight in the executor to avoid blocking the event loop (#112080) 2024-03-02 21:55:55 -05:00
J. Nick Koston
f415746e26 Import caldav in the executor to avoid blocking the event loop (#112081)
2024-03-02 18:21:51.794 DEBUG (MainThread) [homeassistant.loader] Component caldav import took 0.676 seconds (loaded_executor=False)
2024-03-02 21:55:20 -05:00
J. Nick Koston
8d2fe73faa Fix bootstrap being fetched three times during unifiprotect startup (#112082)
We always fetch it to check if the device is online.
Avoid fetching it again for migration by passing
it to the migrators
2024-03-02 21:55:04 -05:00
J. Nick Koston
ea9c969d15 Fix executor being overloaded in caldav (#112084)
Migrate to using a single executor job instead of creating
one per calendar. If the user had a lot of calendars the
executor would get overloaded
2024-03-02 21:53:51 -05:00
J. Nick Koston
08c96efebe Import baf in the executor to avoid blocking the event loop (#112086) 2024-03-02 21:52:40 -05:00
J. Nick Koston
5e5da2bf3a Import integrations using sense-energy in the executor to avoid loop blocking (#112087)
Import integrations using sense-enegy in the executor to avoid blocking the event loop
2024-03-02 21:52:11 -05:00
J. Nick Koston
a07f6d9d76 Import smtp in the executor to avoid blocking the loop (#112089)
This one has no external requirements, but the email imports
from stdlib take ~0.6s on a green
2024-03-02 21:51:45 -05:00
J. Nick Koston
6421a08ba8 Avoid expensive inspect calls in config validators (#112085)
* Avoid expensive inspect calls in config validators

inspect has a performance problem https://github.com/python/cpython/issues/92041

We now avoid calling inspect unless we are going to log

* remove unused

* reduce

* get_integration_logger
2024-03-02 21:50:35 -05:00
J. Nick Koston
9353ad0690 Import switchbot in the executor to avoid blocking the event loop (#112077) 2024-03-03 01:18:03 +01:00
J. Nick Koston
3808e8b0bc Switch config to use async_get_component/async_get_platform (#112071) 2024-03-02 13:56:25 -10:00
J. Nick Koston
08897137ff Pre-import more frontend deps to avoid importing when the event loop is running (#112031) 2024-03-02 13:44:06 -10:00
elmurato
9e428c6c5f Fix setup failure due to temporary DNS issue in Minecraft Server (#112068)
Change ConfigEntryError to ConfigEntryNotReady on failed init
2024-03-02 17:28:27 -05:00
J. Nick Koston
0ff2106589 Import snmp in the executor to avoid blocking the event loop (#112065)
Do not mark for backport to 2024.3 as we are no longer backporting new ones
2024-03-02 17:19:09 -05:00
Paulus Schoutsen
dd1ad71166 Only load camera prefs once (#112064) 2024-03-02 17:18:34 -05:00
Shay Levy
ec4331fc19 Bump bthome-ble to 3.6.0 (#112060)
* Bump bthome-ble to 3.6.0

* Fix discovery info typing
2024-03-02 23:11:22 +01:00
Isak Nyberg
b734a9ffc8 Add device class for permobil record distance sensor (#112062)
fix record_distance device_class
2024-03-02 22:50:24 +01:00
J. Nick Koston
85ec48ff31 Import anonymize_data in unifiprotect init to avoid it being imported in the event loop (#112052)
Improve anonymize_data in unifiprotect init to avoid it being imported in the event loop
2024-03-02 16:08:22 -05:00
J. Nick Koston
546fc1e282 Refactor file_upload to avoid janus dep (#112032) 2024-03-02 10:58:08 -10:00
J. Nick Koston
dca6104b4b Bump unifi-discovery to 1.1.8 (#112056) 2024-03-02 10:38:45 -10:00
J. Nick Koston
fd07d83c09 Import ambient_station in the executor to avoid blocking the event loop (#112053) 2024-03-02 15:16:57 -05:00
J. Nick Koston
ee69a3ea8a Import co2signal in the executor to avoid blocking the event loop (#112058) 2024-03-02 15:14:04 -05:00
J. Nick Koston
567d4d5926 Simplify load_executor check in loader (#112029) 2024-03-02 09:01:11 -10:00
Jeef
14b737e9b8 Bump weatherflow4py to v0.1.12 (#112040)
Backing lib bump
2024-03-02 19:15:21 +01:00
Álvaro Fernández Rojas
61e28291be Update aioairzone-cloud to v0.4.5 (#112034)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-03-02 19:14:00 +01:00
Joakim Sørensen
e691e45017 Use description key instead of name for Tibber RT unique ID (#112035)
* Use translation key instead of name for Tibber RT unique ID

* migration

* use decription.key instead
2024-03-02 17:48:27 +01:00
Robert Svensson
ece5587e1f Streamline naming in the Axis integration (#112044)
* Rename device.py to hub.py

* Rename AxisNetworkDevice to AxisHub

* Move hub.py into hub package

* Rename get_axis_device to get_axis_api

* Split out get_axis_api to its own module

* Rename device object to hub

* Rename device to api in config flow

* Convenience method to get hub
2024-03-02 11:32:51 -05:00
Jan-Philipp Benecke
196089e8b7 Remove deprecated hass.components.hassio usage (#111878) 2024-03-02 15:38:31 +01:00
Joakim Sørensen
9478b7de29 Fix config schema for velux (#112037) 2024-03-02 06:52:20 -05:00
Joost Lekkerkerker
0f66292d35 Add icon translations to Netgear (#111972) 2024-03-02 12:42:00 +01:00
Joost Lekkerkerker
0f71e45fe2 Add entity and icon translations to Onvif (#111991)
* Add icon translations to Onvif

* Add icon translations to Onvif

* Update homeassistant/components/onvif/strings.json
2024-03-02 10:30:48 +01:00
Joost Lekkerkerker
9887340298 Add icon translations to Opentherm gw (#111995) 2024-03-02 10:30:21 +01:00
Joost Lekkerkerker
fbb894a0ff Add icon translations to Nmap tracker (#111983) 2024-03-02 10:30:10 +01:00
Robert Svensson
c770c6c78f Apply better names to a couple of dicts in Axis config flow (#111964)
Apply better names to a couple of dicts
2024-03-02 07:10:34 +01:00
J. Nick Koston
c0f7ade92b Convert command_line to use asyncio for subprocesses (#111927)
* Convert command_line to use asyncio for subprocesses

* fixes

* fix

* fixes

* more test fixes

* more fixes

* fixes

* preen
2024-03-01 23:15:10 -05:00
J. Nick Koston
5f65315e86 Reduce samsungtv startup time (#112007)
Create the startup tasks eagerly

This one is a bit high
2024-03-01 22:43:08 -05:00
J. Nick Koston
4249d17c1b Reduce ESPHome reconnect time (#112001)
Use eager tasks to request device_info and entities which avoids
waiting one event loop to send the requests to the device
2024-03-01 22:16:01 -05:00
Chris Helming
8ff2a39238 Fix minor language issues in strings.json (#112006)
language fix: allow -> allows
2024-03-02 02:00:03 +01:00
Joost Lekkerkerker
8077654002 Add icon translations to ovo energy (#111997) 2024-03-02 01:01:46 +01:00
Joost Lekkerkerker
ea6913d436 Add icon translations to OpenAI Conversation (#111992) 2024-03-02 00:57:25 +01:00
Joost Lekkerkerker
17191b5af2 Add icon translations to Openhome (#111993) 2024-03-02 00:56:50 +01:00
Joost Lekkerkerker
dd2d7e579d Add icon translations to Opensky (#111994)
* Add icon translations to Opensky

* Add icon translations to Opensky
2024-03-02 00:56:34 +01:00
Joost Lekkerkerker
46a86667d3 Add icon translations to Octoprint (#111988) 2024-03-02 00:35:53 +01:00
Joost Lekkerkerker
10c06a1553 Add icon translations to Ondilo ico (#111990) 2024-03-02 00:35:40 +01:00
Joost Lekkerkerker
f3e0060128 Add icon translations to Omnilogic (#111989) 2024-03-02 00:35:27 +01:00
Joost Lekkerkerker
2e12e5cda1 Add icon translations to Netgear LTE (#111974)
* Add icon translations to Netgear LTE

* Add icon translations to Netgear LTE

* Update homeassistant/components/netgear_lte/icons.json
2024-03-02 00:35:17 +01:00
Joost Lekkerkerker
a78382a3f7 Add icon translations to NZBGet (#111985) 2024-03-02 00:31:10 +01:00
Joost Lekkerkerker
0cc1fd5e99 Add icon translations to Nextcloud (#111982) 2024-03-02 00:28:37 +01:00
Joost Lekkerkerker
4ae7102f63 Add icon translations to Modern Forms (#111933)
* Add icon translations to Modern Forms

* Add icon translations to Modern Forms
2024-03-02 00:20:21 +01:00
David F. Mulcahey
fbb982f8ce Bump Zigpy to 0.63.3 (#112002) 2024-03-01 18:13:09 -05:00
Joost Lekkerkerker
357840ec53 Add icon translations to Notion (#111984) 2024-03-01 23:55:49 +01:00
Joost Lekkerkerker
23480292c5 Add icon translations to OpenUV (#111996)
Co-authored-by: Aaron Bach <bachya1208@gmail.com>
2024-03-01 23:55:37 +01:00
Mick Vleeshouwer
273e125859 Bump pyOverkiz to 1.13.8 (#111930)
Bump pyoverkiz to 1.13.8
2024-03-01 23:29:47 +01:00
Paulus Schoutsen
0628c26ea0 Update reporting for media_source.async_resolve_media (#111969)
* Update reporting for media_source.async_resolve_media

* Don't raise on core

* Fix tests
2024-03-01 16:18:58 -05:00
Marc Mueller
16b162cd07 Fix util create_eager_task typing (#111976) 2024-03-01 21:04:45 +01:00
Marc Mueller
daf8d1939b Fix generic HassJob typing (#111973) 2024-03-01 20:51:45 +01:00
Joost Lekkerkerker
bdfd272dc0 Use default icon for Melcloud (#111905) 2024-03-01 20:23:11 +01:00
Joost Lekkerkerker
694c391c6b Add icon translations to Modem callerID (#111929) 2024-03-01 20:21:10 +01:00
Joost Lekkerkerker
23a1c559b2 Add icon translations to Motion blinds (#111935) 2024-03-01 20:19:59 +01:00
Joost Lekkerkerker
4ca8a02771 Add icon translations to Nanoleaf (#111946) 2024-03-01 20:18:59 +01:00
Joost Lekkerkerker
28ab4abe00 Add icon translations to Neato (#111947) 2024-03-01 20:17:55 +01:00
Joost Lekkerkerker
0daa860e94 Add icon translations to MQTT (#111945) 2024-03-01 20:16:11 +01:00
Paul Bottein
d592e95ba4 Update frontend to 20240301.0 (#111961) 2024-03-01 13:38:08 -05:00
Marc Mueller
1f173aff17 Fix loader test warning (#111965) 2024-03-01 19:26:44 +01:00
Arie Catsman
99f08fb417 Fix LingeringTask after test completion in enphase_envoy (#111940) 2024-03-01 07:12:08 -10:00
gibwar
52fe0a5e96 Fix utility meter reset without tarrifs (#102884)
* Fix utility meter reset without tarrifs

When using a utility_meter helper set up with a "Meter reset cycle" of
"No cycle" it is impossible to properly reset the meter to 0 and utilize
the "last reset" and "last period" attributes on the helper.

With these changes the service call can now directly reset a meter in
such a configuration and the UI selector has been updated to include
utility meters in the selection list.

Fixes #96920

* Undo UI target selection modes

As requested to not cause confusion by being able to reset individual
meters when using multiple tariffs.

* Adjust logic to only reset standalone sensors

The original logic would allow resetting meters with multiple tariffs
which was an unintended side effect.
2024-03-01 16:44:24 +01:00
Joost Lekkerkerker
c37f1c67f1 Add icon translations to Monoprice (#111934) 2024-03-01 07:59:11 -05:00
Joost Lekkerkerker
646c316102 Add icon translations to Motioneye (#111936) 2024-03-01 07:58:04 -05:00
Joost Lekkerkerker
8bbfb6cc55 Add icon translations to Lyric (#111902)
Use default icon for Lyric
2024-03-01 13:42:42 +01:00
Joost Lekkerkerker
65e004dc99 Add icon translations to Local IP (#111900) 2024-03-01 13:40:58 +01:00
Joost Lekkerkerker
e43c62af1e Add icon translations to Litterrobot (#111899) 2024-03-01 13:40:37 +01:00
Marc Mueller
f0be33fc6a Update mypy to a custom version (#111258)
* Update mypy to a custom version

* Fix call_soon_threadsafe typing

Result from a recent typeshed change -> better asyncio callback typing with Ts
2024-03-01 13:31:28 +01:00
Joost Lekkerkerker
841d4e320f Add icon translations to Mill (#111907) 2024-03-01 07:22:57 -05:00
Joost Lekkerkerker
1f3b0a4371 Add icon translations to Minecraft Server (#111928)
* Add icon translations to Minecraft Server

* Add icon translations to Minecraft Server

* Add icon translations to Minecraft
2024-03-01 07:20:51 -05:00
Joost Lekkerkerker
59d605c82c Add icon translations to min max (#111908) 2024-03-01 07:19:06 -05:00
Joost Lekkerkerker
d757e5ebe9 Add icon translations to LifX (#111897) 2024-03-01 13:16:00 +01:00
Erik Montnemery
3a5e0c14bf Remove config flow specifics from FlowResult (#111932)
* Remove config flow specifics from FlowResult

* Improve docstring

* Update pylint rules
2024-03-01 13:07:13 +01:00
Joost Lekkerkerker
e209ae3d4e Add icon translations to LCN (#111895) 2024-03-01 12:49:16 +01:00
Joost Lekkerkerker
b29ddfb9be Add icon translations to Lidarr (#111896) 2024-03-01 12:44:27 +01:00
Joost Lekkerkerker
689651ee2c Add icon translations to Idasen desk (#111813) 2024-03-01 12:42:26 +01:00
Joost Lekkerkerker
677e12b033 Add icon translations to IFTTT (#111842) 2024-03-01 12:41:30 +01:00
Joost Lekkerkerker
d606e96d13 Add icon translations to Keymitt BLE (#111851) 2024-03-01 12:34:28 +01:00
Joost Lekkerkerker
05b0518854 Add icon translations to Medcom BLE (#111904)
Use default icon for Medcom BLE
2024-03-01 12:33:24 +01:00
G Johansson
9989a63cdf Add reconfigure step to config flow (#108794)
* Initial commit reconfigure

* test config config_entries

* Fix reconfigure

* test_config_entries

* review comment

* No reconfigure if reauth ongoing

* Fix tests

* Fix tests

* handle source creating flows

* combine

* No black

* Also check reconfigure in reauth flow

* Fix support

* Add entry id

* reset data entry flow

* Mods

* context data

* reset formatting

* Fix config flow platforms

* Fix tests

* Fix step message

* Handling reconfigure step

* Fix more tests

* Config entries tests

* entry_id always means reconfigure

* Mods

* Remove no longer valid exception

* Fixes

* reset silabs test

* dev reg

* resets

* assist pipeline

* Adjust config_entries

* Fix

* Fixes

* docstrings

* Review comment

* docstring
2024-03-01 12:29:35 +01:00
Joost Lekkerkerker
fd9e9ebf50 Add icon translations to Hydrawise (#111810) 2024-03-01 12:29:23 +01:00
Joost Lekkerkerker
3d987a9190 Add icon translations to Flux LED (#111545) 2024-03-01 12:29:02 +01:00
Joost Lekkerkerker
cc2ce4f4a6 Add icon translations to Flipr (#111540) 2024-03-01 12:25:34 +01:00
Joost Lekkerkerker
7b79c21835 Add icon translations to EZVIZ (#111532) 2024-03-01 12:23:08 +01:00
Joost Lekkerkerker
18e1b3bbbc Add icon translations to Enocean (#111514) 2024-03-01 12:21:31 +01:00
Joost Lekkerkerker
ae930215d4 Add icon translations to Kodi (#111853) 2024-03-01 12:11:52 +01:00
dependabot[bot]
93f2d2bd19 Bump github/codeql-action from 3.24.5 to 3.24.6 (#111917) 2024-03-01 10:57:39 +01:00
dependabot[bot]
8a236077b0 Bump actions/cache from 4.0.0 to 4.0.1 (#111916) 2024-03-01 10:57:24 +01:00
Jevgeni Kiski
ce3d774222 Add Vallox filter replacement date (#111391)
* Vallox: reset filter button

* Better names

* Change from button to date platform

* Review

* Fix

* Drop ValloxDateEntityDescription

* Stale docstrings

* Stale docstring
2024-03-01 10:02:50 +01:00
Michael Hansen
0d0b64d351 Move HassSetPosition to homeassistant domain (#111867)
* Move HassSetPosition to homeassistant domain

* Add test for unsupported domain with HassSetPosition

* Split service intent handler

* cleanup

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-02-29 21:53:52 -05:00
Christopher Bailey
5890a7d38c Add person tracking for UniFi Protect (#111289) 2024-02-29 16:26:24 -10:00
J. Nick Koston
72fe170dc8 Remove unused variable in stats _sorted_statistics_to_dict (#111912) 2024-02-29 16:23:33 -10:00
Robert Svensson
d81ed37501 Fix unsupported device type in deCONZ integration (#111892) 2024-02-29 21:05:43 -05:00
Jan-Philipp Benecke
914abcec32 Change hass.components removal version in log to 2024.9 (#111903) 2024-02-29 21:05:33 -05:00
J. Nick Koston
c1750f7c3a Fix circular imports in core integrations (#111875)
* Fix circular imports in core integrations

* fix circular import

* fix more circular imports

* fix more circular imports

* fix more circular imports

* fix more circular imports

* fix more circular imports

* fix more circular imports

* fix more circular imports

* adjust

* fix

* increase timeout

* remove unused logger

* keep up to date

* make sure its reprod
2024-02-29 21:04:41 -05:00
J. Nick Koston
25510fc13c Limit executor imports to a single thread (#111898)
* Limit executor imports to a single thread

* test for import executor

* test for import executor

* test for import executor

* fixes

* better fix
2024-02-29 21:02:13 -05:00
J. Nick Koston
3b93c21d9d Switch influxdb to use a SimpleQueue (#111798) 2024-02-29 12:49:43 -10:00
J. Nick Koston
0b0036fb12 Bump habluetooth to 2.4.2 (#111885) 2024-02-29 12:49:28 -10:00
Robert Svensson
b39b2d161c Deconz fix gradient color mode (#111890)
* Fix deconz gradient colormode

* Fix gradient light not reporting color mode in deCONZ
2024-02-29 22:43:47 +01:00
Álvaro Fernández Rojas
3b1688f6bd Update aioairzone to v0.7.5 (#111879)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-02-29 22:41:33 +01:00
Michael
2a135b64b6 Add missing unit of measurement for tolerance option in proximity (#111876) 2024-02-29 22:16:27 +01:00
Erik Montnemery
b0ed8c4961 Migrate integrations s-t to generic flowhandler (#111865) 2024-02-29 22:16:14 +01:00
Erik Montnemery
e0c1feb22c Migrate integrations n-r to generic flowhandler (#111864) 2024-02-29 20:09:01 +01:00
Erik Montnemery
52e7912caf Migrate integrations i-m to generic flowhandler (#111863) 2024-02-29 20:08:46 +01:00
Erik Montnemery
9ec9ac4fd4 Migrate integrations u-z to generic flowhandler (#111866) 2024-02-29 20:08:16 +01:00
Erik Montnemery
e06446d0fa Migrate integrations e-h to generic flowhandler (#111862) 2024-02-29 20:07:36 +01:00
Erik Montnemery
6fe28d3764 Migrate integrations a-d to generic flowhandler (#111861) 2024-02-29 20:07:14 +01:00
J. Nick Koston
ba4120d779 Fallback to event loop import on deadlock (#111868) 2024-02-29 09:01:03 -10:00
dotvav
af625a6696 Support HitachiAirToAirHeatPump (ovp:HLinkMainController) in Overkiz integration (#102159)
* Support OVP devices

Support OVP devices

* Fix coding style

* Fix coding style and unnecessary constants

* Move fanmodes inside class

* Apply suggestions from code review

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

* Remove duplicate widget

* Update homeassistant/components/overkiz/climate_entities/hitachi_air_to_air_heat_pump_ovp.py

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

* Format ruff

* Fix mypy

---------

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-02-29 13:18:59 -05:00
Joost Lekkerkerker
cac2c46a42 Add icon translations to KNX (#111852)
* Add icon translations to KNX

* Update homeassistant/components/knx/icons.json

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Update homeassistant/components/knx/icons.json

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Update homeassistant/components/knx/icons.json

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Update homeassistant/components/knx/icons.json

Co-authored-by: Matthias Alphart <farmio@alphart.net>

* Update homeassistant/components/knx/icons.json

Co-authored-by: Matthias Alphart <farmio@alphart.net>

---------

Co-authored-by: Matthias Alphart <farmio@alphart.net>
2024-02-29 19:12:05 +01:00
Michael Hansen
f0deae319e Use correct service name with Wyoming satellite + local wake word detection (#111870)
* Use correct service name with satellite + local wake word detection

* Don't load platforms for satellite services

* Update homeassistant/components/wyoming/data.py

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

* Fix ruff error

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-02-29 13:09:38 -05:00
Bram Kragten
66b17a8e0d Update frontend to 20240228.1 (#111859) 2024-02-29 12:05:22 -05:00
Joost Lekkerkerker
eaff66477d Add icon translations to Intellifire (#111845) 2024-02-29 17:21:00 +01:00
Joost Lekkerkerker
87632dcb6a Add icon translations to Kaleidescape (#111850) 2024-02-29 17:20:12 +01:00
Joost Lekkerkerker
0d85e316a2 Add icon translations to Justnimbus (#111849) 2024-02-29 17:19:56 +01:00
Joost Lekkerkerker
36a5c71dc7 Add icon translations to Lastfm (#111855)
* Add icon translations to Lastfm

* Add icon translations to Lastfm
2024-02-29 17:01:09 +01:00
Joost Lekkerkerker
6e6d3e7565 Add icon translations to Laundrify (#111856) 2024-02-29 17:00:15 +01:00
Robert Resch
bfdc640e04 Remove unused translation key from Ecovacs mower (#111754)
* Remove unused translation key

* Update snapshots
2024-02-29 10:54:02 -05:00
Erik Montnemery
a0e558c457 Add generic classes BaseFlowHandler and BaseFlowManager (#111814)
* Add generic classes BaseFlowHandler and BaseFlowManager

* Migrate zwave_js

* Update tests

* Update tests

* Address review comments
2024-02-29 16:52:39 +01:00
Erik Montnemery
3a8b6412ed Remove areas template filter (#111827) 2024-02-29 10:52:26 -05:00
David F. Mulcahey
73b6e2bac8 Add support for ZHA entities exposed by Zigpy quirks (#111176)
* Add counter entities to the ZHA coordinator device

* rework to prepare for non coordinator device counters

* Initial scaffolding to support quirks v2 entities

* update for zigpy changes

* add assertion error message

* clean up test

* update group entity discovery kwargs

* constants and clearer names

* apply custom device configuration

* quirks switches

* quirks select entities

* quirks sensor entities

* update discovery

* move call to super

* add complex quirks v2 discovery test

* remove duplicate replaces

* add quirks v2 button entity support

* add quirks v2 binary sensor entity support

* fix exception in counter entitiy discovery

* oops

* update formatting

* support custom on and off values

* logging

* don't filter out entities quirks says should be created

* fix type alias warnings

* sync up with zigpy changes and additions

* add a binary sensor test

* button coverage

* switch coverage

* initial select coverage

* number coverage

* sensor coverage

* update discovery after rebase

* coverage

* single line

* line lengths

* fix double underscore

* review comments

* set category from quirks in base entity

* line lengths

* move comment

* imports

* simplify

* simplify
2024-02-29 10:38:21 -05:00
J. Nick Koston
f44b759a99 Import rest in the executor to avoid blocking the event loop (#111804)
fixes #111803

`2024-02-28 15:43:53.708 DEBUG (MainThread) [homeassistant.loader] Component rest import took 1.646 seconds (loaded_executor=False) `
2024-02-29 10:37:36 -05:00
J. Nick Koston
aa183ed09e Import flux_led in the executor to avoid blocking the event loop (#111806)
`Component flux_led import took 0.313 seconds (loaded_executor=False)`
2024-02-29 10:37:07 -05:00
J. Nick Koston
94224c4c73 Import logbook in the executor to avoid blocking the event loop (#111807)
This one is likely because of all the sqlalchemy object construction
for the queries

`Component logbook import took 0.245 seconds (loaded_executor=False)`
2024-02-29 10:36:54 -05:00
J. Nick Koston
a664f296e2 Import upnp in the executor to avoid blocking the event loop (#111808)
`2024-02-29 01:23:54.490 DEBUG (MainThread) [homeassistant.loader] Component upnp import took 0.349 seconds (loaded_executor=False)
`
2024-02-29 10:36:22 -05:00
J. Nick Koston
db9cda4fd2 Import homekit in the executor to avoid blocking the event loop (#111809)
`homekit import took 0.635 seconds (loaded_executor=False)`

not sure how I missed this one
2024-02-29 10:35:50 -05:00
Jan-Philipp Benecke
58d966a18f Import discovergy in the executor to avoid blocking the event loop (#111824) 2024-02-29 10:35:34 -05:00
J. Nick Koston
f59268b2ee Include filename in exception when loading a json file fails (#111802)
* Include filename in exception when loading a json file fails

* fix
2024-02-29 10:30:29 -05:00
Paulus Schoutsen
9512fb420d Import cryptography OpenSSL backend (#111840)
* Import cryptography OpenSSL backend

* No need to impor top-level. Included.

* Update homeassistant/bootstrap.py
2024-02-29 10:28:32 -05:00
Joost Lekkerkerker
b70eea7fb2 Add icon translations to IPP (#111846)
* Add icon translations to IPP

* Add icon translations to IPP
2024-02-29 16:09:47 +01:00
J. Nick Koston
63c3d6e113 Fix race in config entry setup again (#111800)
Because the setup again was scheduled as a task, it would
not unset self._async_cancel_retry_setup in time and we would
try to unsub self._async_cancel_retry_setup after it had already
fired. Change it to call a callback that runs right away so it
unsets self._async_cancel_retry_setup as soon as its called
so there is no race

fixes #111796
2024-02-29 15:47:36 +01:00
Jan-Philipp Benecke
bc6b4d01c8 Deprecate hass.components and log warning if used inside custom component (#111508)
* Deprecate @bind_hass and log error if used inside custom component

* Log also when accessing `hass.components`

* Log warning only when `hass.components` is used

* Change version

* Process code review
2024-02-29 12:25:46 +01:00
J. Nick Koston
af4771a198 Import enphase_envoy in the executor to avoid blocking the event loop (#111805) 2024-02-28 22:25:55 -10:00
Joost Lekkerkerker
cb2c845c04 Add icon translations to Hue (#111725) 2024-02-29 09:22:35 +01:00
Michael Hansen
0985a7ab91 Bump intents and add sentence tests (#111791) 2024-02-28 23:25:33 -05:00
Robert Svensson
458391ee2b Axis improve coverage binary tests (#111758)
* Parametrize binary sensor tests

* Add test coverage to the different *guard apps

* Add object analytics tests
2024-02-28 23:14:50 -05:00
Álvaro Fernández Rojas
224f6dbdbb Use proper constant in Airzone Cloud climate tests (#111747)
tests: airzone_cloud: avoid using airzone const

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-02-28 23:14:08 -05:00
Paulus Schoutsen
c6fd9e25ce get_matter_device_info: Test the Matter config entry is set up (#111792)
Ensure the Matter config entry is set up
2024-02-28 23:09:48 -05:00
Allen Porter
1eac7bcbec Fix calendar trigger to survive config entry reloads (#111334)
* Fix calendar trigger to survive config entry reloads

* Apply suggestions from code review

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-02-29 03:45:51 +01:00
J. Nick Koston
59b7f8d103 Fix tplink blocking startup by waiting for discovery (#111788)
* Fix tplink blocking statup by waiting for discovery

* remove started
2024-02-28 21:34:08 -05:00
J. Nick Koston
b11e97e132 Fix flux_led blocking startup by waiting for discovery (#111787)
* Avoid blocking startup by waiting for discovery in flux_led

* remove started discovery
2024-02-28 21:16:38 -05:00
J. Nick Koston
b40978597c Import discord in the executor to avoid blocking the event loop (#111790)
`2024-02-28 19:20:04.485 DEBUG (MainThread) [homeassistant.loader] Component discord import took 1.181 seconds (loaded_executor=False)`
2024-02-29 03:02:25 +01:00
J. Nick Koston
7527e87e26 Fix steamist blocking startup by waiting for discovery (#111789)
Fix steamist blocking statup by waiting for discovery
2024-02-29 03:00:47 +01:00
Paulus Schoutsen
4eb0f86a65 Remove 'values' from services validation (#111440)
* Remove 'values' from services validation

* Remove extra blank line
2024-02-29 02:53:03 +01:00
J. Nick Koston
9f8fbb747e Pre-import api, config, and lovelace in bootstrap to avoid loading them at runtime (#111752) 2024-02-28 15:40:16 -10:00
J. Nick Koston
943bd179f8 Import analytics_insights in the executor to avoid blocking the event loop (#111786)
fixes #111780
2024-02-29 02:09:12 +01:00
J. Nick Koston
3fbeb7e400 Fix time trigger tests with leap year (#111785) 2024-02-28 14:51:27 -10:00
J. Nick Koston
675ddaf742 Bump securetar to 2024.2.1 (#111782) 2024-02-28 14:31:41 -10:00
Jan-Philipp Benecke
f31244bac4 Add normalized name registry items base class (#111666)
* Add normalized name base registry items class

* Add tests
2024-02-29 01:31:33 +01:00
J. Nick Koston
f1398dd127 Import backup in the executor to avoid blocking the event loop (#111781) 2024-02-28 14:20:10 -10:00
J. Nick Koston
5bf7a00989 Move DATA_LOGGING constant to homeassistant.const (#111763) 2024-02-28 14:09:51 -10:00
J. Nick Koston
3c8fcaf912 Import androidtv_remote in the executor to avoid blocking the event loop (#111776)
fixes #111775
2024-02-28 19:01:39 -05:00
Marcel van der Veldt
c861bd6c56 Bump Python Matter Server to 5.7.0 (#111765) 2024-02-28 19:01:11 -05:00
Marc Mueller
42a28f4e67 Improve zha coordinator typing (#111767) 2024-02-28 19:00:31 -05:00
J. Nick Koston
61f6df527e Import cryptography early since importing openssl is not thread-safe (#111768) 2024-02-28 19:00:17 -05:00
Marcel van der Veldt
220e66faad Bump aiohue to 4.7.1 (#111770)
bump aiohue to 4.7.1
2024-02-28 18:59:44 -05:00
J. Nick Koston
73f283435d Import blink in the executor to avoid blocking the event loop (#111772)
fixes #111771
2024-02-28 18:59:26 -05:00
J. Nick Koston
bd07b654d5 Import coinbase in the executor to avoid blocking the event loop (#111774)
fixes #111773
2024-02-28 18:59:13 -05:00
J. Nick Koston
ab74c11d33 Import opower in the executor to avoid blocking the event loop (#111778)
fixes #111777
2024-02-28 18:58:23 -05:00
Bram Kragten
09c16ffb3d Bump version to 2024.4.0.dev0 (#111755) 2024-02-29 00:46:32 +01:00
J. Nick Koston
826009cdc5 Import isy994 in the executor to avoid blocking the event loop (#111766) 2024-02-28 12:39:19 -10:00
puddly
016f2c7581 Improve ZHA group color modes (#111669)
* Set the color mode based on supported color modes

* Replace `zha` with `tuya` in unit test
2024-02-28 17:20:19 -05:00
Jeremy TRUFIER
eeb87247e9 Add overkiz support for Atlantic Shogun ZoneControl 2.0 (AtlanticPassAPCHeatingAndCoolingZone) (#110510)
* Add Overkiz support for AtlanticPassAPCHeatingAndCoolingZone widget

* Add support for AUTO HVAC mode for Atlantic Pass APC ZC devices that support it

* Add support for multiple IO controllers for same widget (mainly for Atlantic APC)

* Implement PR feedback

* Small PR fixes

* Fix constant inversion typo
2024-02-28 23:16:03 +01:00
Isak Nyberg
fb10ef9ac0 Add permobil entity (#111761)
* add permobil entity

* small fixes

* remove sensor init
2024-02-28 22:55:47 +01:00
yanuino
e886bc8939 Read min/max number of showers from state for DomesticHotWaterProduction in Overkiz integration (#111535)
* Read min/max number of showers from state

* Rewrite code for Read min/max number of showers from state

* Set _attr_ instead of inherited value
2024-02-28 22:32:46 +01:00
9761 changed files with 53178 additions and 24767 deletions

View File

@@ -545,7 +545,10 @@ omit =
homeassistant/components/homematic/notify.py
homeassistant/components/homematic/sensor.py
homeassistant/components/homematic/switch.py
homeassistant/components/homeworks/*
homeassistant/components/homeworks/__init__.py
homeassistant/components/homeworks/binary_sensor.py
homeassistant/components/homeworks/button.py
homeassistant/components/homeworks/light.py
homeassistant/components/horizon/media_player.py
homeassistant/components/hp_ilo/sensor.py
homeassistant/components/huawei_lte/__init__.py
@@ -888,6 +891,7 @@ omit =
homeassistant/components/notify_events/notify.py
homeassistant/components/notion/__init__.py
homeassistant/components/notion/binary_sensor.py
homeassistant/components/notion/coordinator.py
homeassistant/components/notion/sensor.py
homeassistant/components/notion/util.py
homeassistant/components/nsw_fuel_station/sensor.py
@@ -988,7 +992,9 @@ omit =
homeassistant/components/pandora/media_player.py
homeassistant/components/pencom/switch.py
homeassistant/components/permobil/__init__.py
homeassistant/components/permobil/binary_sensor.py
homeassistant/components/permobil/coordinator.py
homeassistant/components/permobil/entity.py
homeassistant/components/permobil/sensor.py
homeassistant/components/philips_js/__init__.py
homeassistant/components/philips_js/light.py
@@ -1179,7 +1185,6 @@ omit =
homeassistant/components/serial_pm/sensor.py
homeassistant/components/sesame/lock.py
homeassistant/components/seven_segments/image_processing.py
homeassistant/components/seventeentrack/sensor.py
homeassistant/components/shodan/sensor.py
homeassistant/components/sia/__init__.py
homeassistant/components/sia/alarm_control_panel.py
@@ -1594,7 +1599,6 @@ omit =
homeassistant/components/weatherflow_cloud/const.py
homeassistant/components/weatherflow_cloud/coordinator.py
homeassistant/components/weatherflow_cloud/weather.py
homeassistant/components/webmin/sensor.py
homeassistant/components/wiffi/__init__.py
homeassistant/components/wiffi/binary_sensor.py
homeassistant/components/wiffi/sensor.py

View File

@@ -25,7 +25,7 @@ jobs:
publish: ${{ steps.version.outputs.publish }}
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
with:
fetch-depth: 0
@@ -57,7 +57,7 @@ jobs:
if: github.repository_owner == 'home-assistant' && needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.0.0
@@ -99,7 +99,7 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Download nightly wheels of frontend
if: needs.init.outputs.channel == 'dev'
@@ -207,7 +207,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2024.03.5
uses: home-assistant/builder@2024.01.0
with:
args: |
$BUILD_ARGS \
@@ -263,7 +263,7 @@ jobs:
- green
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set build additional args
run: |
@@ -284,7 +284,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2024.03.5
uses: home-assistant/builder@2024.01.0
with:
args: |
$BUILD_ARGS \
@@ -300,7 +300,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Initialize git
uses: home-assistant/actions/helpers/git-init@master
@@ -338,7 +338,7 @@ jobs:
id-token: write
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Install Cosign
uses: sigstore/cosign-installer@v3.4.0

View File

@@ -34,11 +34,11 @@ on:
env:
CACHE_VERSION: 5
PIP_CACHE_VERSION: 4
MYPY_CACHE_VERSION: 7
HA_SHORT_VERSION: "2024.3"
DEFAULT_PYTHON: "3.11"
ALL_PYTHON_VERSIONS: "['3.11', '3.12']"
UV_CACHE_VERSION: 1
MYPY_CACHE_VERSION: 8
HA_SHORT_VERSION: "2024.4"
DEFAULT_PYTHON: "3.12"
ALL_PYTHON_VERSIONS: "['3.12']"
# 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
@@ -56,7 +56,7 @@ env:
# - 15.2 is the latest (as of 9 Feb 2023)
POSTGRESQL_VERSIONS: "['postgres:12.14','postgres:15.2']"
PRE_COMMIT_CACHE: ~/.cache/pre-commit
PIP_CACHE: /tmp/pip-cache
UV_CACHE_DIR: /tmp/uv-cache
SQLALCHEMY_WARN_20: 1
PYTHONASYNCIODEBUG: 1
HASS_CI: 1
@@ -89,7 +89,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Generate partial Python venv restore key
id: generate_python_cache_key
run: >-
@@ -103,7 +103,7 @@ jobs:
echo "key=pre-commit-${{ env.CACHE_VERSION }}-${{
hashFiles('.pre-commit-config.yaml') }}" >> $GITHUB_OUTPUT
- name: Filter for core changes
uses: dorny/paths-filter@v3.0.1
uses: dorny/paths-filter@v3.0.2
id: core
with:
filters: .core_files.yaml
@@ -118,7 +118,7 @@ jobs:
echo "Result:"
cat .integration_paths.yaml
- name: Filter for integration changes
uses: dorny/paths-filter@v3.0.1
uses: dorny/paths-filter@v3.0.2
id: integrations
with:
filters: .integration_paths.yaml
@@ -222,7 +222,7 @@ jobs:
- info
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.0.0
@@ -231,7 +231,7 @@ jobs:
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v4.0.0
uses: actions/cache@v4.0.1
with:
path: venv
key: >-
@@ -243,10 +243,11 @@ jobs:
python -m venv venv
. venv/bin/activate
python --version
pip install "$(cat requirements_test.txt | grep pre-commit)"
pip install "$(cat requirements_test.txt | grep uv)"
uv pip install "$(cat requirements_test.txt | grep pre-commit)"
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v4.0.0
uses: actions/cache@v4.0.1
with:
path: ${{ env.PRE_COMMIT_CACHE }}
lookup-only: true
@@ -267,7 +268,7 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.0.0
id: python
@@ -276,7 +277,7 @@ jobs:
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: venv
fail-on-cache-miss: true
@@ -285,7 +286,7 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -307,7 +308,7 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.0.0
id: python
@@ -316,7 +317,7 @@ jobs:
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: venv
fail-on-cache-miss: true
@@ -325,7 +326,7 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -346,7 +347,7 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.0.0
id: python
@@ -355,7 +356,7 @@ jobs:
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: venv
fail-on-cache-miss: true
@@ -364,7 +365,7 @@ jobs:
needs.info.outputs.pre-commit_cache_key }}
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -440,37 +441,37 @@ jobs:
python-version: ${{ fromJSON(needs.info.outputs.python_versions) }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.0.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Generate partial pip restore key
id: generate-pip-key
- name: Generate partial uv restore key
id: generate-uv-key
run: >-
echo "key=pip-${{ env.PIP_CACHE_VERSION }}-${{
echo "key=uv-${{ env.UV_CACHE_VERSION }}-${{
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')" >> $GITHUB_OUTPUT
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v4.0.0
uses: actions/cache@v4.0.1
with:
path: venv
lookup-only: true
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Restore pip wheel cache
- name: Restore uv wheel cache
if: steps.cache-venv.outputs.cache-hit != 'true'
uses: actions/cache@v4.0.0
uses: actions/cache@v4.0.1
with:
path: ${{ env.PIP_CACHE }}
path: ${{ env.UV_CACHE }}
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
steps.generate-pip-key.outputs.key }}
steps.generate-uv-key.outputs.key }}
restore-keys: |
${{ runner.os }}-${{ steps.python.outputs.python-version }}-pip-${{ env.PIP_CACHE_VERSION }}-${{ env.HA_SHORT_VERSION }}-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-uv-${{ env.UV_CACHE_VERSION }}-${{ env.HA_SHORT_VERSION }}-
- name: Install additional OS dependencies
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
@@ -492,10 +493,11 @@ jobs:
python -m venv venv
. venv/bin/activate
python --version
PIP_CACHE_DIR=$PIP_CACHE pip install -U "pip>=21.3.1" setuptools wheel
PIP_CACHE_DIR=$PIP_CACHE pip install -r requirements_all.txt
PIP_CACHE_DIR=$PIP_CACHE pip install -r requirements_test.txt
pip install -e . --config-settings editable_mode=compat
pip install "$(cat requirements_test.txt | grep uv)"
uv pip install -U "pip>=21.3.1" setuptools wheel
uv pip install -r requirements_all.txt
uv pip install -r requirements_test.txt
uv pip install -e . --config-settings editable_mode=compat
hassfest:
name: Check hassfest
@@ -508,7 +510,7 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.0.0
@@ -517,7 +519,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: venv
fail-on-cache-miss: true
@@ -540,7 +542,7 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.0.0
@@ -549,7 +551,7 @@ jobs:
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: venv
fail-on-cache-miss: true
@@ -573,7 +575,7 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.0.0
@@ -582,7 +584,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: venv
fail-on-cache-miss: true
@@ -617,7 +619,7 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.0.0
@@ -633,7 +635,7 @@ jobs:
env.HA_SHORT_VERSION }}-$(date -u '+%Y-%m-%dT%H:%M:%s')" >> $GITHUB_OUTPUT
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: venv
fail-on-cache-miss: true
@@ -641,7 +643,7 @@ jobs:
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Restore mypy cache
uses: actions/cache@v4.0.0
uses: actions/cache@v4.0.1
with:
path: .mypy_cache
key: >-
@@ -699,7 +701,7 @@ jobs:
bluez \
ffmpeg
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.0.0
@@ -708,7 +710,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: venv
fail-on-cache-miss: true
@@ -717,13 +719,6 @@ jobs:
- name: Register Python problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/python.json"
- name: Install Pytest Annotation plugin
run: |
. venv/bin/activate
# Ideally this should be part of our dependencies
# However this plugin is fairly new and doesn't run correctly
# on a non-GitHub environment.
pip install pytest-github-actions-annotate-failures==0.1.3
- name: Register pytest slow test problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/pytest-slow.json"
@@ -797,10 +792,11 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Upload pytest output
if: success() || failure() && (steps.pytest-full.conclusion == 'failure' || steps.pytest-partial.conclusion == 'failure')
uses: actions/upload-artifact@v3.1.2
uses: actions/upload-artifact@v4.3.1
with:
name: pytest-${{ github.run_number }}
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{ matrix.group }}
path: pytest-*.txt
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.3.1
@@ -852,7 +848,7 @@ jobs:
ffmpeg \
libmariadb-dev-compat
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.0.0
@@ -861,7 +857,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: venv
fail-on-cache-miss: true
@@ -870,20 +866,13 @@ jobs:
- name: Register Python problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/python.json"
- name: Install Pytest Annotation plugin
run: |
. venv/bin/activate
# Ideally this should be part of our dependencies
# However this plugin is fairly new and doesn't run correctly
# on a non-GitHub environment.
pip install pytest-github-actions-annotate-failures==0.1.3
- name: Register pytest slow test problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/pytest-slow.json"
- name: Install SQL Python libraries
run: |
. venv/bin/activate
pip install mysqlclient sqlalchemy_utils
uv pip install mysqlclient sqlalchemy_utils
- name: Compile English translations
run: |
. venv/bin/activate
@@ -923,10 +912,12 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${mariadb}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v3.1.2
uses: actions/upload-artifact@v4.3.1
with:
name: pytest-${{ github.run_number }}
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.mariadb }}
path: pytest-*.txt
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.3.1
@@ -979,7 +970,7 @@ jobs:
ffmpeg \
postgresql-server-dev-14
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ matrix.python-version }}
id: python
uses: actions/setup-python@v5.0.0
@@ -988,7 +979,7 @@ jobs:
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.1
with:
path: venv
fail-on-cache-miss: true
@@ -997,20 +988,13 @@ jobs:
- name: Register Python problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/python.json"
- name: Install Pytest Annotation plugin
run: |
. venv/bin/activate
# Ideally this should be part of our dependencies
# However this plugin is fairly new and doesn't run correctly
# on a non-GitHub environment.
pip install pytest-github-actions-annotate-failures==0.1.3
- name: Register pytest slow test problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/pytest-slow.json"
- name: Install SQL Python libraries
run: |
. venv/bin/activate
pip install psycopg2 sqlalchemy_utils
uv pip install psycopg2 sqlalchemy_utils
- name: Compile English translations
run: |
. venv/bin/activate
@@ -1051,10 +1035,12 @@ jobs:
2>&1 | tee pytest-${{ matrix.python-version }}-${postgresql}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v3.1.2
uses: actions/upload-artifact@v4.3.1
with:
name: pytest-${{ github.run_number }}
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.postgresql }}
path: pytest-*.txt
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.3.1
@@ -1077,14 +1063,14 @@ jobs:
timeout-minutes: 10
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Download all coverage artifacts
uses: actions/download-artifact@v4.1.3
uses: actions/download-artifact@v4.1.4
with:
pattern: coverage-*
- name: Upload coverage to Codecov (full coverage)
if: needs.info.outputs.test_full_suite == 'true'
uses: Wandalen/wretry.action@v1.4.4
uses: Wandalen/wretry.action@v1.4.10
with:
action: codecov/codecov-action@v3.1.3
with: |
@@ -1095,7 +1081,7 @@ jobs:
attempt_delay: 30000
- name: Upload coverage to Codecov (partial coverage)
if: needs.info.outputs.test_full_suite == 'false'
uses: Wandalen/wretry.action@v1.4.4
uses: Wandalen/wretry.action@v1.4.10
with:
action: codecov/codecov-action@v3.1.3
with: |

View File

@@ -21,14 +21,14 @@ jobs:
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Initialize CodeQL
uses: github/codeql-action/init@v3.24.5
uses: github/codeql-action/init@v3.24.7
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.24.5
uses: github/codeql-action/analyze@v3.24.7
with:
category: "/language:python"

View File

@@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.0.0

View File

@@ -28,7 +28,7 @@ jobs:
architectures: ${{ steps.info.outputs.architectures }}
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Get information
id: info
@@ -88,15 +88,15 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Download env_file
uses: actions/download-artifact@v4.1.3
uses: actions/download-artifact@v4.1.4
with:
name: env_file
- name: Download requirements_diff
uses: actions/download-artifact@v4.1.3
uses: actions/download-artifact@v4.1.4
with:
name: requirements_diff
@@ -126,15 +126,15 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Download env_file
uses: actions/download-artifact@v4.1.3
uses: actions/download-artifact@v4.1.4
with:
name: env_file
- name: Download requirements_diff
uses: actions/download-artifact@v4.1.3
uses: actions/download-artifact@v4.1.4
with:
name: requirements_diff

View File

@@ -1,6 +1,5 @@
*.md
.strict-typing
azure-*.yml
homeassistant/components/*/translations/*.json
homeassistant/generated/*
tests/components/lidarr/fixtures/initialize.js

View File

@@ -228,6 +228,7 @@ homeassistant.components.homekit_controller.select
homeassistant.components.homekit_controller.storage
homeassistant.components.homekit_controller.utils
homeassistant.components.homewizard.*
homeassistant.components.homeworks.*
homeassistant.components.http.*
homeassistant.components.huawei_lte.*
homeassistant.components.humidifier.*

View File

@@ -1,5 +1,4 @@
ignore: |
azure-*.yml
tests/fixtures/core/config/yaml_errors/
rules:
braces:

View File

@@ -315,8 +315,8 @@ build.json @home-assistant/supervisor
/tests/components/drop_connect/ @ChandlerSystems @pfrazer
/homeassistant/components/dsmr/ @Robbie1221 @frenck
/tests/components/dsmr/ @Robbie1221 @frenck
/homeassistant/components/dsmr_reader/ @depl0y @glodenox
/tests/components/dsmr_reader/ @depl0y @glodenox
/homeassistant/components/dsmr_reader/ @sorted-bits @glodenox
/tests/components/dsmr_reader/ @sorted-bits @glodenox
/homeassistant/components/duotecno/ @cereal2nd
/tests/components/duotecno/ @cereal2nd
/homeassistant/components/dwd_weather_warnings/ @runningman84 @stephan192 @andarotajo
@@ -860,8 +860,8 @@ build.json @home-assistant/supervisor
/tests/components/nam/ @bieniu
/homeassistant/components/nanoleaf/ @milanmeu
/tests/components/nanoleaf/ @milanmeu
/homeassistant/components/neato/ @dshokouhi @Santobert
/tests/components/neato/ @dshokouhi @Santobert
/homeassistant/components/neato/ @Santobert
/tests/components/neato/ @Santobert
/homeassistant/components/nederlandse_spoorwegen/ @YarmoM
/homeassistant/components/ness_alarm/ @nickw444
/tests/components/ness_alarm/ @nickw444
@@ -1095,7 +1095,6 @@ build.json @home-assistant/supervisor
/tests/components/recovery_mode/ @home-assistant/core
/homeassistant/components/refoss/ @ashionky
/tests/components/refoss/ @ashionky
/homeassistant/components/rejseplanen/ @DarkFox
/homeassistant/components/remote/ @home-assistant/core
/tests/components/remote/ @home-assistant/core
/homeassistant/components/renault/ @epenet
@@ -1191,6 +1190,8 @@ build.json @home-assistant/supervisor
/tests/components/senz/ @milanmeu
/homeassistant/components/serial/ @fabaff
/homeassistant/components/seven_segments/ @fabaff
/homeassistant/components/seventeentrack/ @shaiu
/tests/components/seventeentrack/ @shaiu
/homeassistant/components/sfr_box/ @epenet
/tests/components/sfr_box/ @epenet
/homeassistant/components/sharkiq/ @JeffResc @funkybunch

View File

@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.11
FROM mcr.microsoft.com/devcontainers/python:1-3.12
SHELL ["/bin/bash", "-o", "pipefail", "-c"]

View File

@@ -1,4 +1,5 @@
"""Start Home Assistant."""
from __future__ import annotations
import argparse

View File

@@ -1,4 +1,5 @@
"""Provide an authentication layer for Home Assistant."""
from __future__ import annotations
import asyncio
@@ -19,13 +20,13 @@ from homeassistant.core import (
HomeAssistant,
callback,
)
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.event import async_track_point_in_utc_time
from homeassistant.util import dt as dt_util
from . import auth_store, jwt_wrapper, models
from .const import ACCESS_TOKEN_EXPIRATION, GROUP_ID_ADMIN, REFRESH_TOKEN_EXPIRATION
from .mfa_modules import MultiFactorAuthModule, auth_mfa_module_from_config
from .models import AuthFlowResult
from .providers import AuthProvider, LoginFlow, auth_provider_from_config
EVENT_USER_ADDED = "user_added"
@@ -88,9 +89,13 @@ async def auth_manager_from_config(
return manager
class AuthManagerFlowManager(data_entry_flow.FlowManager):
class AuthManagerFlowManager(
data_entry_flow.FlowManager[AuthFlowResult, tuple[str, str]]
):
"""Manage authentication flows."""
_flow_result = AuthFlowResult
def __init__(self, hass: HomeAssistant, auth_manager: AuthManager) -> None:
"""Init auth manager flows."""
super().__init__(hass)
@@ -98,11 +103,11 @@ class AuthManagerFlowManager(data_entry_flow.FlowManager):
async def async_create_flow(
self,
handler_key: str,
handler_key: tuple[str, str],
*,
context: dict[str, Any] | None = None,
data: dict[str, Any] | None = None,
) -> data_entry_flow.FlowHandler:
) -> LoginFlow:
"""Create a login flow."""
auth_provider = self.auth_manager.get_auth_provider(*handler_key)
if not auth_provider:
@@ -110,8 +115,10 @@ class AuthManagerFlowManager(data_entry_flow.FlowManager):
return await auth_provider.async_login_flow(context)
async def async_finish_flow(
self, flow: data_entry_flow.FlowHandler, result: FlowResult
) -> FlowResult:
self,
flow: data_entry_flow.FlowHandler[AuthFlowResult, tuple[str, str]],
result: AuthFlowResult,
) -> AuthFlowResult:
"""Return a user as result of login flow."""
flow = cast(LoginFlow, flow)

View File

@@ -1,4 +1,5 @@
"""Storage for auth models."""
from __future__ import annotations
from datetime import timedelta
@@ -30,6 +31,17 @@ GROUP_NAME_ADMIN = "Administrators"
GROUP_NAME_USER = "Users"
GROUP_NAME_READ_ONLY = "Read Only"
# We always save the auth store after we load it since
# we may migrate data and do not want to have to do it again
# but we don't want to do it during startup so we schedule
# the first save 5 minutes out knowing something else may
# want to save the auth store before then, and since Storage
# will honor the lower of the two delays, it will save it
# faster if something else saves it.
INITIAL_LOAD_SAVE_DELAY = 300
DEFAULT_SAVE_DELAY = 1
class AuthStore:
"""Stores authentication info.
@@ -467,12 +479,12 @@ class AuthStore:
self._groups = groups
self._users = users
self._async_schedule_save()
self._async_schedule_save(INITIAL_LOAD_SAVE_DELAY)
@callback
def _async_schedule_save(self) -> None:
def _async_schedule_save(self, delay: float = DEFAULT_SAVE_DELAY) -> None:
"""Save users."""
self._store.async_delay_save(self._data_to_save, 1)
self._store.async_delay_save(self._data_to_save, delay)
@callback
def _data_to_save(self) -> dict[str, list[dict[str, Any]]]:

View File

@@ -1,4 +1,5 @@
"""Constants for the auth module."""
from datetime import timedelta
ACCESS_TOKEN_EXPIRATION = timedelta(minutes=30)

View File

@@ -4,6 +4,7 @@ Since we decode the same tokens over and over again
we can cache the result of the decode of valid tokens
to speed up the process.
"""
from __future__ import annotations
from datetime import timedelta

View File

@@ -1,4 +1,5 @@
"""Pluggable auth modules for Home Assistant."""
from __future__ import annotations
import importlib

View File

@@ -1,4 +1,5 @@
"""Example auth module."""
from __future__ import annotations
from typing import Any

View File

@@ -2,6 +2,7 @@
Sending HOTP through notify service
"""
from __future__ import annotations
import asyncio

View File

@@ -1,4 +1,5 @@
"""Time-based One Time Password auth module."""
from __future__ import annotations
import asyncio

View File

@@ -1,4 +1,5 @@
"""Auth models."""
from __future__ import annotations
from datetime import datetime, timedelta
@@ -11,6 +12,7 @@ from attr import Attribute
from attr.setters import validate
from homeassistant.const import __version__
from homeassistant.data_entry_flow import FlowResult
from homeassistant.util import dt as dt_util
from . import permissions as perm_mdl
@@ -26,6 +28,8 @@ TOKEN_TYPE_NORMAL = "normal"
TOKEN_TYPE_SYSTEM = "system"
TOKEN_TYPE_LONG_LIVED_ACCESS_TOKEN = "long_lived_access_token"
AuthFlowResult = FlowResult[tuple[str, str]]
@attr.s(slots=True)
class Group:

View File

@@ -1,4 +1,5 @@
"""Permissions for Home Assistant."""
from __future__ import annotations
from collections.abc import Callable

View File

@@ -1,4 +1,5 @@
"""Permission constants."""
CAT_ENTITIES = "entities"
CAT_CONFIG_ENTRIES = "config_entries"
SUBCAT_ALL = "all"

View File

@@ -1,4 +1,5 @@
"""Entity permissions."""
from __future__ import annotations
from collections import OrderedDict

View File

@@ -1,4 +1,5 @@
"""Permission for events."""
from __future__ import annotations
from typing import Final

View File

@@ -1,4 +1,5 @@
"""Merging of policies."""
from __future__ import annotations
from typing import cast

View File

@@ -1,4 +1,5 @@
"""Models for permissions."""
from __future__ import annotations
from typing import TYPE_CHECKING

View File

@@ -1,4 +1,5 @@
"""System policies."""
from .const import CAT_ENTITIES, POLICY_READ, SUBCAT_ALL
ADMIN_POLICY = {CAT_ENTITIES: True}

View File

@@ -1,4 +1,5 @@
"""Common code for permissions."""
from collections.abc import Mapping
# MyPy doesn't support recursion yet. So writing it out as far as we need.

View File

@@ -1,4 +1,5 @@
"""Helpers to deal with permissions."""
from __future__ import annotations
from collections.abc import Callable

View File

@@ -1,4 +1,5 @@
"""Auth providers for Home Assistant."""
from __future__ import annotations
from collections.abc import Mapping
@@ -13,14 +14,13 @@ from voluptuous.humanize import humanize_error
from homeassistant import data_entry_flow, requirements
from homeassistant.const import CONF_ID, CONF_NAME, CONF_TYPE
from homeassistant.core import HomeAssistant, callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
from homeassistant.util import dt as dt_util
from homeassistant.util.decorator import Registry
from ..auth_store import AuthStore
from ..const import MFA_SESSION_EXPIRATION
from ..models import Credentials, RefreshToken, User, UserMeta
from ..models import AuthFlowResult, Credentials, RefreshToken, User, UserMeta
_LOGGER = logging.getLogger(__name__)
DATA_REQS = "auth_prov_reqs_processed"
@@ -181,9 +181,11 @@ async def load_auth_provider_module(
return module
class LoginFlow(data_entry_flow.FlowHandler):
class LoginFlow(data_entry_flow.FlowHandler[AuthFlowResult, tuple[str, str]]):
"""Handler for the login flow."""
_flow_result = AuthFlowResult
def __init__(self, auth_provider: AuthProvider) -> None:
"""Initialize the login flow."""
self._auth_provider = auth_provider
@@ -197,7 +199,7 @@ class LoginFlow(data_entry_flow.FlowHandler):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> FlowResult:
) -> AuthFlowResult:
"""Handle the first step of login flow.
Return self.async_show_form(step_id='init') if user_input is None.
@@ -207,7 +209,7 @@ class LoginFlow(data_entry_flow.FlowHandler):
async def async_step_select_mfa_module(
self, user_input: dict[str, str] | None = None
) -> FlowResult:
) -> AuthFlowResult:
"""Handle the step of select mfa module."""
errors = {}
@@ -232,7 +234,7 @@ class LoginFlow(data_entry_flow.FlowHandler):
async def async_step_mfa(
self, user_input: dict[str, str] | None = None
) -> FlowResult:
) -> AuthFlowResult:
"""Handle the step of mfa validation."""
assert self.credential
assert self.user
@@ -282,6 +284,6 @@ class LoginFlow(data_entry_flow.FlowHandler):
errors=errors,
)
async def async_finish(self, flow_result: Any) -> FlowResult:
async def async_finish(self, flow_result: Any) -> AuthFlowResult:
"""Handle the pass of login flow."""
return self.async_create_entry(data=flow_result)

View File

@@ -1,4 +1,5 @@
"""Auth provider that validates credentials via an external command."""
from __future__ import annotations
import asyncio
@@ -10,10 +11,9 @@ from typing import Any, cast
import voluptuous as vol
from homeassistant.const import CONF_COMMAND
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
from ..models import Credentials, UserMeta
from ..models import AuthFlowResult, Credentials, UserMeta
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
CONF_ARGS = "args"
@@ -138,7 +138,7 @@ class CommandLineLoginFlow(LoginFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> FlowResult:
) -> AuthFlowResult:
"""Handle the step of the form."""
errors = {}

View File

@@ -1,4 +1,5 @@
"""Home Assistant auth provider."""
from __future__ import annotations
import asyncio
@@ -12,11 +13,10 @@ import voluptuous as vol
from homeassistant.const import CONF_ID
from homeassistant.core import HomeAssistant, callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.storage import Store
from ..models import Credentials, UserMeta
from ..models import AuthFlowResult, Credentials, UserMeta
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
STORAGE_VERSION = 1
@@ -321,7 +321,7 @@ class HassLoginFlow(LoginFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> FlowResult:
) -> AuthFlowResult:
"""Handle the step of the form."""
errors = {}

View File

@@ -1,4 +1,5 @@
"""Example auth provider."""
from __future__ import annotations
from collections.abc import Mapping
@@ -8,10 +9,9 @@ from typing import Any, cast
import voluptuous as vol
from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
from ..models import Credentials, UserMeta
from ..models import AuthFlowResult, Credentials, UserMeta
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
USER_SCHEMA = vol.Schema(
@@ -98,7 +98,7 @@ class ExampleLoginFlow(LoginFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> FlowResult:
) -> AuthFlowResult:
"""Handle the step of the form."""
errors = None

View File

@@ -2,6 +2,7 @@
It will be removed when auth system production ready
"""
from __future__ import annotations
from collections.abc import Mapping
@@ -11,12 +12,11 @@ from typing import Any, cast
import voluptuous as vol
from homeassistant.core import async_get_hass, callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue
from ..models import Credentials, UserMeta
from ..models import AuthFlowResult, Credentials, UserMeta
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
AUTH_PROVIDER_TYPE = "legacy_api_password"
@@ -101,7 +101,7 @@ class LegacyLoginFlow(LoginFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> FlowResult:
) -> AuthFlowResult:
"""Handle the step of the form."""
errors = {}

View File

@@ -3,6 +3,7 @@
It shows list of users if access from trusted network.
Abort login flow if not access from trusted network.
"""
from __future__ import annotations
from collections.abc import Mapping
@@ -19,13 +20,12 @@ from typing import Any, cast
import voluptuous as vol
from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.network import is_cloud_connection
from .. import InvalidAuthError
from ..models import Credentials, RefreshToken, UserMeta
from ..models import AuthFlowResult, Credentials, RefreshToken, UserMeta
from . import AUTH_PROVIDER_SCHEMA, AUTH_PROVIDERS, AuthProvider, LoginFlow
IPAddress = IPv4Address | IPv6Address
@@ -226,7 +226,7 @@ class TrustedNetworksLoginFlow(LoginFlow):
async def async_step_init(
self, user_input: dict[str, str] | None = None
) -> FlowResult:
) -> AuthFlowResult:
"""Handle the step of the form."""
try:
cast(

View File

@@ -6,6 +6,7 @@ Since we have dropped support for Python 3.10, we can remove this backport.
This file is kept for now to avoid breaking custom components that might
import it.
"""
from __future__ import annotations
from enum import StrEnum

View File

@@ -1,4 +1,5 @@
"""Block blocking calls being done in asyncio."""
from http.client import HTTPConnection
import time

View File

@@ -1,4 +1,5 @@
"""Provide methods to bootstrap a Home Assistant instance."""
from __future__ import annotations
import asyncio
@@ -22,17 +23,33 @@ import yarl
from . import config as conf_util, config_entries, core, loader, requirements
# Pre-import config and lovelace which have no requirements here to avoid
# Pre-import frontend deps which have no requirements here to avoid
# loading them at run time and blocking the event loop. We do this ahead
# of time so that we do not have to flag frontends deps with `import_executor`
# of time so that we do not have to flag frontend deps with `import_executor`
# as it would create a thundering heard of executor jobs trying to import
# frontend deps at the same time.
from .components import (
api as api_pre_import, # noqa: F401
auth as auth_pre_import, # noqa: F401
config as config_pre_import, # noqa: F401
http,
device_automation as device_automation_pre_import, # noqa: F401
diagnostics as diagnostics_pre_import, # noqa: F401
file_upload as file_upload_pre_import, # noqa: F401
history as history_pre_import, # noqa: F401
http, # not named pre_import since it has requirements
image_upload as image_upload_import, # noqa: F401 - not named pre_import since it has requirements
logbook as logbook_pre_import, # noqa: F401
lovelace as lovelace_pre_import, # noqa: F401
onboarding as onboarding_pre_import, # noqa: F401
recorder as recorder_import, # noqa: F401 - not named pre_import since it has requirements
repairs as repairs_pre_import, # noqa: F401
search as search_pre_import, # noqa: F401
sensor as sensor_pre_import, # noqa: F401
system_log as system_log_pre_import, # noqa: F401
webhook as webhook_pre_import, # noqa: F401
websocket_api as websocket_api_pre_import, # noqa: F401
)
from .components.sensor import recorder as sensor_recorder # noqa: F401
from .const import (
FORMAT_DATETIME,
KEY_DATA_LOGGING as DATA_LOGGING,
@@ -87,7 +104,6 @@ STAGE_2_TIMEOUT = 300
WRAP_UP_TIMEOUT = 300
COOLDOWN_TIME = 60
MAX_LOAD_CONCURRENTLY = 6
DEBUGGER_INTEGRATIONS = {"debugpy"}
CORE_INTEGRATIONS = {"homeassistant", "persistent_notification"}
@@ -128,6 +144,7 @@ DEFAULT_INTEGRATIONS = {
# These integrations are set up unless recovery mode is activated.
#
# Integrations providing core functionality:
"analytics", # Needed for onboarding
"application_credentials",
"backup",
"frontend",
@@ -590,7 +607,10 @@ class _WatchPendingSetups:
domain: (now - start_time)
for domain, start_time in self._setup_started.items()
}
_LOGGER.debug("Integration remaining: %s", remaining_with_setup_started)
if remaining_with_setup_started:
_LOGGER.debug("Integration remaining: %s", remaining_with_setup_started)
elif waiting_tasks := self._hass._active_tasks: # pylint: disable=protected-access
_LOGGER.debug("Waiting on tasks: %s", waiting_tasks)
self._async_dispatch(remaining_with_setup_started)
if (
self._setup_started
@@ -666,6 +686,9 @@ async def _async_resolve_domains_to_setup(
base_platforms_loaded = False
domains_to_setup = _get_domains(hass, config)
needed_requirements: set[str] = set()
platform_integrations = conf_util.extract_platform_integrations(
config, BASE_PLATFORMS
)
# Resolve all dependencies so we know all integrations
# that will have to be loaded and start rightaway
@@ -682,7 +705,7 @@ async def _async_resolve_domains_to_setup(
# to avoid the lock contention when multiple
# integrations try to resolve them at once
base_platforms_loaded = True
to_get = {*old_to_resolve, *BASE_PLATFORMS}
to_get = {*old_to_resolve, *BASE_PLATFORMS, *platform_integrations}
else:
to_get = old_to_resolve
@@ -691,13 +714,16 @@ async def _async_resolve_domains_to_setup(
integrations_to_process: list[loader.Integration] = []
for domain, itg in (await loader.async_get_integrations(hass, to_get)).items():
if not isinstance(itg, loader.Integration) or domain not in old_to_resolve:
if not isinstance(itg, loader.Integration):
continue
integrations_to_process.append(itg)
integration_cache[domain] = itg
needed_requirements.update(itg.requirements)
if domain not in old_to_resolve:
continue
integrations_to_process.append(itg)
manifest_deps.update(itg.dependencies)
manifest_deps.update(itg.after_dependencies)
needed_requirements.update(itg.requirements)
if not itg.all_dependencies_resolved:
resolve_dependencies_tasks.append(
create_eager_task(
@@ -751,7 +777,9 @@ async def _async_resolve_domains_to_setup(
# wait for the translation load lock, loading will be done by the
# time it gets to it.
hass.async_create_background_task(
translation.async_load_integrations(hass, {*BASE_PLATFORMS, *domains_to_setup}),
translation.async_load_integrations(
hass, {*BASE_PLATFORMS, *platform_integrations, *domains_to_setup}
),
"load translations",
eager_start=True,
)
@@ -825,7 +853,10 @@ async def _async_set_up_integrations(
):
await async_setup_multi_components(hass, stage_1_domains, config)
except TimeoutError:
_LOGGER.warning("Setup timed out for stage 1 - moving forward")
_LOGGER.warning(
"Setup timed out for stage 1 waiting on %s - moving forward",
hass._active_tasks, # pylint: disable=protected-access
)
# Add after dependencies when setting up stage 2 domains
async_set_domains_to_be_loaded(hass, stage_2_domains)
@@ -838,7 +869,10 @@ async def _async_set_up_integrations(
):
await async_setup_multi_components(hass, stage_2_domains, config)
except TimeoutError:
_LOGGER.warning("Setup timed out for stage 2 - moving forward")
_LOGGER.warning(
"Setup timed out for stage 2 waiting on %s - moving forward",
hass._active_tasks, # pylint: disable=protected-access
)
# Wrap up startup
_LOGGER.debug("Waiting for startup to wrap up")
@@ -846,7 +880,10 @@ async def _async_set_up_integrations(
async with hass.timeout.async_timeout(WRAP_UP_TIMEOUT, cool_down=COOLDOWN_TIME):
await hass.async_block_till_done()
except TimeoutError:
_LOGGER.warning("Setup timed out for bootstrap - moving forward")
_LOGGER.warning(
"Setup timed out for bootstrap waiting on %s - moving forward",
hass._active_tasks, # pylint: disable=protected-access
)
watcher.async_stop()

View File

@@ -6,11 +6,13 @@ Component design guidelines:
format "<DOMAIN>.<OBJECT_ID>".
- Each component should publish services only under its own domain.
"""
from __future__ import annotations
import logging
from homeassistant.core import HomeAssistant, split_entity_id
from homeassistant.helpers.frame import report
from homeassistant.helpers.group import expand_entity_ids
_LOGGER = logging.getLogger(__name__)
@@ -21,6 +23,15 @@ def is_on(hass: HomeAssistant, entity_id: str | None = None) -> bool:
If there is no entity id given we will check all.
"""
report(
(
"uses homeassistant.components.is_on."
" This is deprecated and will stop working in Home Assistant 2024.9, it"
" should be updated to use the function of the platform directly."
),
error_if_core=True,
)
if entity_id:
entity_ids = expand_entity_ids(hass, [entity_id])
else:

View File

@@ -1,4 +1,5 @@
"""Support for the Abode Security System."""
from __future__ import annotations
from dataclasses import dataclass, field

View File

@@ -1,10 +1,13 @@
"""Support for Abode Security System alarm control panels."""
from __future__ import annotations
from jaraco.abode.devices.alarm import Alarm as AbodeAl
from jaraco.abode.devices.alarm import Alarm
import homeassistant.components.alarm_control_panel as alarm
from homeassistant.components.alarm_control_panel import AlarmControlPanelEntityFeature
from homeassistant.components.alarm_control_panel import (
AlarmControlPanelEntity,
AlarmControlPanelEntityFeature,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
STATE_ALARM_ARMED_AWAY,
@@ -28,7 +31,7 @@ async def async_setup_entry(
)
class AbodeAlarm(AbodeDevice, alarm.AlarmControlPanelEntity):
class AbodeAlarm(AbodeDevice, AlarmControlPanelEntity):
"""An alarm_control_panel implementation for Abode."""
_attr_name = None
@@ -37,7 +40,7 @@ class AbodeAlarm(AbodeDevice, alarm.AlarmControlPanelEntity):
AlarmControlPanelEntityFeature.ARM_HOME
| AlarmControlPanelEntityFeature.ARM_AWAY
)
_device: AbodeAl
_device: Alarm
@property
def state(self) -> str | None:

View File

@@ -1,10 +1,17 @@
"""Support for Abode Security System binary sensors."""
from __future__ import annotations
from typing import cast
from jaraco.abode.devices.sensor import BinarySensor as ABBinarySensor
from jaraco.abode.helpers import constants as CONST
from jaraco.abode.devices.sensor import BinarySensor
from jaraco.abode.helpers.constants import (
TYPE_CONNECTIVITY,
TYPE_MOISTURE,
TYPE_MOTION,
TYPE_OCCUPANCY,
TYPE_OPENING,
)
from homeassistant.components.binary_sensor import (
BinarySensorDeviceClass,
@@ -26,11 +33,11 @@ async def async_setup_entry(
data: AbodeSystem = hass.data[DOMAIN]
device_types = [
CONST.TYPE_CONNECTIVITY,
CONST.TYPE_MOISTURE,
CONST.TYPE_MOTION,
CONST.TYPE_OCCUPANCY,
CONST.TYPE_OPENING,
TYPE_CONNECTIVITY,
TYPE_MOISTURE,
TYPE_MOTION,
TYPE_OCCUPANCY,
TYPE_OPENING,
]
async_add_entities(
@@ -43,7 +50,7 @@ class AbodeBinarySensor(AbodeDevice, BinarySensorEntity):
"""A binary sensor implementation for Abode device."""
_attr_name = None
_device: ABBinarySensor
_device: BinarySensor
@property
def is_on(self) -> bool:

View File

@@ -1,12 +1,14 @@
"""Support for Abode Security System cameras."""
from __future__ import annotations
from datetime import timedelta
from typing import Any, cast
from jaraco.abode.devices.base import Device as AbodeDev
from jaraco.abode.devices.base import Device
from jaraco.abode.devices.camera import Camera as AbodeCam
from jaraco.abode.helpers import constants as CONST, timeline as TIMELINE
from jaraco.abode.helpers import timeline
from jaraco.abode.helpers.constants import TYPE_CAMERA
import requests
from requests.models import Response
@@ -30,8 +32,8 @@ async def async_setup_entry(
data: AbodeSystem = hass.data[DOMAIN]
async_add_entities(
AbodeCamera(data, device, TIMELINE.CAPTURE_IMAGE)
for device in data.abode.get_devices(generic_type=CONST.TYPE_CAMERA)
AbodeCamera(data, device, timeline.CAPTURE_IMAGE)
for device in data.abode.get_devices(generic_type=TYPE_CAMERA)
)
@@ -41,7 +43,7 @@ class AbodeCamera(AbodeDevice, Camera):
_device: AbodeCam
_attr_name = None
def __init__(self, data: AbodeSystem, device: AbodeDev, event: Event) -> None:
def __init__(self, data: AbodeSystem, device: Device, event: Event) -> None:
"""Initialize the Abode device."""
AbodeDevice.__init__(self, data, device)
Camera.__init__(self)

View File

@@ -1,4 +1,5 @@
"""Config flow for the Abode Security System component."""
from __future__ import annotations
from collections.abc import Mapping
@@ -14,16 +15,15 @@ from jaraco.abode.helpers.errors import MFA_CODE_REQUIRED
from requests.exceptions import ConnectTimeout, HTTPError
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
from homeassistant.data_entry_flow import FlowResult
from .const import CONF_POLLING, DOMAIN, LOGGER
CONF_MFA = "mfa_code"
class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
class AbodeFlowHandler(ConfigFlow, domain=DOMAIN):
"""Config flow for Abode."""
VERSION = 1
@@ -43,7 +43,7 @@ class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
self._polling: bool = False
self._username: str | None = None
async def _async_abode_login(self, step_id: str) -> FlowResult:
async def _async_abode_login(self, step_id: str) -> ConfigFlowResult:
"""Handle login with Abode."""
errors = {}
@@ -74,7 +74,7 @@ class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
return await self._async_create_entry()
async def _async_abode_mfa_login(self) -> FlowResult:
async def _async_abode_mfa_login(self) -> ConfigFlowResult:
"""Handle multi-factor authentication (MFA) login with Abode."""
try:
# Create instance to access login method for passing MFA code
@@ -92,7 +92,7 @@ class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
return await self._async_create_entry()
async def _async_create_entry(self) -> FlowResult:
async def _async_create_entry(self) -> ConfigFlowResult:
"""Create the config entry."""
config_data = {
CONF_USERNAME: self._username,
@@ -118,7 +118,7 @@ class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Handle a flow initialized by the user."""
if self._async_current_entries():
return self.async_abort(reason="single_instance_allowed")
@@ -135,7 +135,7 @@ class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
async def async_step_mfa(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Handle a multi-factor authentication (MFA) flow."""
if user_input is None:
return self.async_show_form(
@@ -146,7 +146,9 @@ class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
return await self._async_abode_mfa_login()
async def async_step_reauth(self, entry_data: Mapping[str, Any]) -> FlowResult:
async def async_step_reauth(
self, entry_data: Mapping[str, Any]
) -> ConfigFlowResult:
"""Handle reauthorization request from Abode."""
self._username = entry_data[CONF_USERNAME]
@@ -154,7 +156,7 @@ class AbodeFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
async def async_step_reauth_confirm(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Handle reauthorization flow."""
if user_input is None:
return self.async_show_form(

View File

@@ -1,4 +1,5 @@
"""Constants for the Abode Security System component."""
import logging
LOGGER = logging.getLogger(__package__)

View File

@@ -1,8 +1,9 @@
"""Support for Abode Security System covers."""
from typing import Any
from jaraco.abode.devices.cover import Cover as AbodeCV
from jaraco.abode.helpers import constants as CONST
from jaraco.abode.devices.cover import Cover
from jaraco.abode.helpers.constants import TYPE_COVER
from homeassistant.components.cover import CoverEntity
from homeassistant.config_entries import ConfigEntry
@@ -21,14 +22,14 @@ async def async_setup_entry(
async_add_entities(
AbodeCover(data, device)
for device in data.abode.get_devices(generic_type=CONST.TYPE_COVER)
for device in data.abode.get_devices(generic_type=TYPE_COVER)
)
class AbodeCover(AbodeDevice, CoverEntity):
"""Representation of an Abode cover."""
_device: AbodeCV
_device: Cover
_attr_name = None
@property

View File

@@ -1,11 +1,12 @@
"""Support for Abode Security System lights."""
from __future__ import annotations
from math import ceil
from typing import Any
from jaraco.abode.devices.light import Light as AbodeLT
from jaraco.abode.helpers import constants as CONST
from jaraco.abode.devices.light import Light
from jaraco.abode.helpers.constants import TYPE_LIGHT
from homeassistant.components.light import (
ATTR_BRIGHTNESS,
@@ -34,14 +35,14 @@ async def async_setup_entry(
async_add_entities(
AbodeLight(data, device)
for device in data.abode.get_devices(generic_type=CONST.TYPE_LIGHT)
for device in data.abode.get_devices(generic_type=TYPE_LIGHT)
)
class AbodeLight(AbodeDevice, LightEntity):
"""Representation of an Abode light."""
_device: AbodeLT
_device: Light
_attr_name = None
def turn_on(self, **kwargs: Any) -> None:

View File

@@ -1,8 +1,9 @@
"""Support for the Abode Security System locks."""
from typing import Any
from jaraco.abode.devices.lock import Lock as AbodeLK
from jaraco.abode.helpers import constants as CONST
from jaraco.abode.devices.lock import Lock
from jaraco.abode.helpers.constants import TYPE_LOCK
from homeassistant.components.lock import LockEntity
from homeassistant.config_entries import ConfigEntry
@@ -21,14 +22,14 @@ async def async_setup_entry(
async_add_entities(
AbodeLock(data, device)
for device in data.abode.get_devices(generic_type=CONST.TYPE_LOCK)
for device in data.abode.get_devices(generic_type=TYPE_LOCK)
)
class AbodeLock(AbodeDevice, LockEntity):
"""Representation of an Abode lock."""
_device: AbodeLK
_device: Lock
_attr_name = None
def lock(self, **kwargs: Any) -> None:

View File

@@ -1,12 +1,21 @@
"""Support for Abode Security System sensors."""
from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass
from typing import cast
from jaraco.abode.devices.sensor import Sensor as AbodeSense
from jaraco.abode.helpers import constants as CONST
from jaraco.abode.devices.sensor import Sensor
from jaraco.abode.helpers.constants import (
HUMI_STATUS_KEY,
LUX_STATUS_KEY,
STATUSES_KEY,
TEMP_STATUS_KEY,
TYPE_SENSOR,
UNIT_CELSIUS,
UNIT_FAHRENHEIT,
)
from homeassistant.components.sensor import (
SensorDeviceClass,
@@ -22,27 +31,22 @@ from . import AbodeDevice, AbodeSystem
from .const import DOMAIN
ABODE_TEMPERATURE_UNIT_HA_UNIT = {
CONST.UNIT_FAHRENHEIT: UnitOfTemperature.FAHRENHEIT,
CONST.UNIT_CELSIUS: UnitOfTemperature.CELSIUS,
UNIT_FAHRENHEIT: UnitOfTemperature.FAHRENHEIT,
UNIT_CELSIUS: UnitOfTemperature.CELSIUS,
}
@dataclass(frozen=True)
class AbodeSensorDescriptionMixin:
"""Mixin for Abode sensor."""
value_fn: Callable[[AbodeSense], float]
native_unit_of_measurement_fn: Callable[[AbodeSense], str]
@dataclass(frozen=True)
class AbodeSensorDescription(SensorEntityDescription, AbodeSensorDescriptionMixin):
@dataclass(frozen=True, kw_only=True)
class AbodeSensorDescription(SensorEntityDescription):
"""Class describing Abode sensor entities."""
value_fn: Callable[[Sensor], float]
native_unit_of_measurement_fn: Callable[[Sensor], str]
SENSOR_TYPES: tuple[AbodeSensorDescription, ...] = (
AbodeSensorDescription(
key=CONST.TEMP_STATUS_KEY,
key=TEMP_STATUS_KEY,
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement_fn=lambda device: ABODE_TEMPERATURE_UNIT_HA_UNIT[
device.temp_unit
@@ -50,13 +54,13 @@ SENSOR_TYPES: tuple[AbodeSensorDescription, ...] = (
value_fn=lambda device: cast(float, device.temp),
),
AbodeSensorDescription(
key=CONST.HUMI_STATUS_KEY,
key=HUMI_STATUS_KEY,
device_class=SensorDeviceClass.HUMIDITY,
native_unit_of_measurement_fn=lambda _: PERCENTAGE,
value_fn=lambda device: cast(float, device.humidity),
),
AbodeSensorDescription(
key=CONST.LUX_STATUS_KEY,
key=LUX_STATUS_KEY,
device_class=SensorDeviceClass.ILLUMINANCE,
native_unit_of_measurement_fn=lambda _: LIGHT_LUX,
value_fn=lambda device: cast(float, device.lux),
@@ -73,8 +77,8 @@ async def async_setup_entry(
async_add_entities(
AbodeSensor(data, device, description)
for description in SENSOR_TYPES
for device in data.abode.get_devices(generic_type=CONST.TYPE_SENSOR)
if description.key in device.get_value(CONST.STATUSES_KEY)
for device in data.abode.get_devices(generic_type=TYPE_SENSOR)
if description.key in device.get_value(STATUSES_KEY)
)
@@ -82,12 +86,12 @@ class AbodeSensor(AbodeDevice, SensorEntity):
"""A sensor implementation for Abode devices."""
entity_description: AbodeSensorDescription
_device: AbodeSense
_device: Sensor
def __init__(
self,
data: AbodeSystem,
device: AbodeSense,
device: Sensor,
description: AbodeSensorDescription,
) -> None:
"""Initialize a sensor for an Abode device."""

View File

@@ -1,10 +1,11 @@
"""Support for Abode Security System switches."""
from __future__ import annotations
from typing import Any, cast
from jaraco.abode.devices.switch import Switch as AbodeSW
from jaraco.abode.helpers import constants as CONST
from jaraco.abode.devices.switch import Switch
from jaraco.abode.helpers.constants import TYPE_SWITCH, TYPE_VALVE
from homeassistant.components.switch import SwitchEntity
from homeassistant.config_entries import ConfigEntry
@@ -15,7 +16,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AbodeAutomation, AbodeDevice, AbodeSystem
from .const import DOMAIN
DEVICE_TYPES = [CONST.TYPE_SWITCH, CONST.TYPE_VALVE]
DEVICE_TYPES = [TYPE_SWITCH, TYPE_VALVE]
async def async_setup_entry(
@@ -41,7 +42,7 @@ async def async_setup_entry(
class AbodeSwitch(AbodeDevice, SwitchEntity):
"""Representation of an Abode switch."""
_device: AbodeSW
_device: Switch
_attr_name = None
def turn_on(self, **kwargs: Any) -> None:

View File

@@ -1,4 +1,5 @@
"""The AccuWeather component."""
from __future__ import annotations
from asyncio import timeout

View File

@@ -1,4 +1,5 @@
"""Adds config flow for AccuWeather."""
from __future__ import annotations
from asyncio import timeout
@@ -9,11 +10,9 @@ from aiohttp import ClientError
from aiohttp.client_exceptions import ClientConnectorError
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.config_entries import ConfigEntry
from homeassistant.config_entries import ConfigEntry, ConfigFlow, ConfigFlowResult
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME
from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.schema_config_entry_flow import (
@@ -33,20 +32,15 @@ OPTIONS_FLOW = {
}
class AccuWeatherFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
class AccuWeatherFlowHandler(ConfigFlow, domain=DOMAIN):
"""Config flow for AccuWeather."""
VERSION = 1
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Handle a flow initialized by the user."""
# Under the terms of use of the API, one user can use one free API key. Due to
# the small number of requests allowed, we only allow one integration instance.
if self._async_current_entries():
return self.async_abort(reason="single_instance_allowed")
errors = {}
if user_input is not None:

View File

@@ -1,4 +1,5 @@
"""Constants for AccuWeather integration."""
from __future__ import annotations
from typing import Final

View File

@@ -1,4 +1,5 @@
"""Diagnostics support for AccuWeather."""
from __future__ import annotations
from typing import Any

View File

@@ -8,5 +8,6 @@
"iot_class": "cloud_polling",
"loggers": ["accuweather"],
"quality_scale": "platinum",
"requirements": ["accuweather==2.1.1"]
"requirements": ["accuweather==2.1.1"],
"single_config_entry": true
}

View File

@@ -1,4 +1,5 @@
"""Support for the AccuWeather service."""
from __future__ import annotations
from collections.abc import Callable
@@ -45,19 +46,11 @@ from .const import (
PARALLEL_UPDATES = 1
@dataclass(frozen=True)
class AccuWeatherSensorDescriptionMixin:
"""Mixin for AccuWeather sensor."""
value_fn: Callable[[dict[str, Any]], str | int | float | None]
@dataclass(frozen=True)
class AccuWeatherSensorDescription(
SensorEntityDescription, AccuWeatherSensorDescriptionMixin
):
@dataclass(frozen=True, kw_only=True)
class AccuWeatherSensorDescription(SensorEntityDescription):
"""Class describing AccuWeather sensor entities."""
value_fn: Callable[[dict[str, Any]], str | int | float | None]
attr_fn: Callable[[dict[str, Any]], dict[str, Any]] = lambda _: {}
day: int | None = None

View File

@@ -17,9 +17,6 @@
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]",
"requests_exceeded": "The allowed number of requests to Accuweather API has been exceeded. You have to wait or change API Key."
},
"abort": {
"single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]"
}
},
"entity": {

View File

@@ -1,4 +1,5 @@
"""Provide info to system health."""
from __future__ import annotations
from typing import Any

View File

@@ -1,4 +1,5 @@
"""Support for the AccuWeather service."""
from __future__ import annotations
from typing import cast

View File

@@ -1,4 +1,5 @@
"""Use serial protocol of Acer projector to obtain state of the projector."""
from __future__ import annotations
from typing import Final

View File

@@ -1,4 +1,5 @@
"""Use serial protocol of Acer projector to obtain state of the projector."""
from __future__ import annotations
import logging

View File

@@ -1,4 +1,5 @@
"""The Rollease Acmeda Automate integration."""
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant

View File

@@ -1,4 +1,5 @@
"""Base class for Acmeda Roller Blinds."""
from __future__ import annotations
import aiopulse

View File

@@ -1,4 +1,5 @@
"""Config flow for Rollease Acmeda Automate Pulse Hub."""
from __future__ import annotations
from asyncio import timeout
@@ -8,14 +9,13 @@ from typing import Any
import aiopulse
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
from homeassistant.const import CONF_HOST, CONF_ID
from homeassistant.data_entry_flow import FlowResult
from .const import DOMAIN
class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
class AcmedaFlowHandler(ConfigFlow, domain=DOMAIN):
"""Handle a Acmeda config flow."""
VERSION = 1
@@ -26,7 +26,7 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Handle a flow initialized by the user."""
if (
user_input is not None
@@ -40,12 +40,13 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
entry.unique_id for entry in self._async_current_entries()
}
hubs: list[aiopulse.Hub] = []
with suppress(TimeoutError):
async with timeout(5):
async for hub in aiopulse.Hub.discover():
if hub.id not in already_configured:
hubs.append(hub)
hubs: list[aiopulse.Hub] = [
hub
async for hub in aiopulse.Hub.discover()
if hub.id not in already_configured
]
if not hubs:
return self.async_abort(reason="no_devices_found")
@@ -66,7 +67,7 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
),
)
async def async_create(self, hub: aiopulse.Hub) -> FlowResult:
async def async_create(self, hub: aiopulse.Hub) -> ConfigFlowResult:
"""Create the Acmeda Hub entry."""
await self.async_set_unique_id(hub.id, raise_on_progress=False)
return self.async_create_entry(title=hub.id, data={CONF_HOST: hub.host})

View File

@@ -1,4 +1,5 @@
"""Constants for the Rollease Acmeda Automate integration."""
import logging
LOGGER = logging.getLogger(__package__)

View File

@@ -1,4 +1,5 @@
"""Support for Acmeda Roller Blinds."""
from __future__ import annotations
from typing import Any

View File

@@ -1,4 +1,5 @@
"""Errors for the Acmeda Pulse component."""
from homeassistant.exceptions import HomeAssistantError

View File

@@ -1,4 +1,5 @@
"""Helper functions for Acmeda Pulse."""
from __future__ import annotations
from aiopulse import Roller

View File

@@ -1,4 +1,5 @@
"""Code to handle a Pulse Hub."""
from __future__ import annotations
import asyncio

View File

@@ -1,4 +1,5 @@
"""Support for Acmeda Roller Blind Batteries."""
from __future__ import annotations
from homeassistant.components.sensor import SensorDeviceClass, SensorEntity

View File

@@ -1,4 +1,5 @@
"""Support for Actiontec MI424WR (Verizon FIOS) routers."""
from __future__ import annotations
import re

View File

@@ -1,4 +1,5 @@
"""Support for Actiontec MI424WR (Verizon FIOS) routers."""
from __future__ import annotations
import logging

View File

@@ -1,4 +1,5 @@
"""Model definitions for Actiontec MI424WR (Verizon FIOS) routers."""
from dataclasses import dataclass

View File

@@ -1,4 +1,5 @@
"""The Adax integration."""
from __future__ import annotations
from homeassistant.config_entries import ConfigEntry

View File

@@ -1,4 +1,5 @@
"""Support for Adax wifi-enabled home heaters."""
from __future__ import annotations
from typing import Any, cast

View File

@@ -1,4 +1,5 @@
"""Config flow for Adax integration."""
from __future__ import annotations
import logging
@@ -8,14 +9,13 @@ import adax
import adax_local
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
from homeassistant.const import (
CONF_IP_ADDRESS,
CONF_PASSWORD,
CONF_TOKEN,
CONF_UNIQUE_ID,
)
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import (
@@ -31,14 +31,14 @@ from .const import (
_LOGGER = logging.getLogger(__name__)
class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
class AdaxConfigFlow(ConfigFlow, domain=DOMAIN):
"""Handle a config flow for Adax."""
VERSION = 2
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Handle the initial step."""
data_schema = vol.Schema(
{
@@ -63,7 +63,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
async def async_step_local(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Handle the local step."""
data_schema = vol.Schema(
{vol.Required(WIFI_SSID): str, vol.Required(WIFI_PSWD): str}
@@ -110,7 +110,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
async def async_step_cloud(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Handle the cloud step."""
data_schema = vol.Schema(
{vol.Required(ACCOUNT_ID): int, vol.Required(CONF_PASSWORD): str}

View File

@@ -1,4 +1,5 @@
"""Constants for the Adax integration."""
from typing import Final
ACCOUNT_ID: Final = "account_id"

View File

@@ -1,4 +1,5 @@
"""Support for AdGuard Home."""
from __future__ import annotations
from adguardhome import AdGuardHome, AdGuardHomeConnectionError

View File

@@ -1,4 +1,5 @@
"""Config flow to configure the AdGuard Home integration."""
from __future__ import annotations
from typing import Any
@@ -7,7 +8,7 @@ from adguardhome import AdGuardHome, AdGuardHomeConnectionError
import voluptuous as vol
from homeassistant.components.hassio import HassioServiceInfo
from homeassistant.config_entries import ConfigFlow
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
from homeassistant.const import (
CONF_HOST,
CONF_PASSWORD,
@@ -16,7 +17,6 @@ from homeassistant.const import (
CONF_USERNAME,
CONF_VERIFY_SSL,
)
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import DOMAIN
@@ -31,7 +31,7 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
async def _show_setup_form(
self, errors: dict[str, str] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Show the setup form to the user."""
return self.async_show_form(
step_id="user",
@@ -50,7 +50,7 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
async def _show_hassio_form(
self, errors: dict[str, str] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Show the Hass.io confirmation form to the user."""
assert self._hassio_discovery
return self.async_show_form(
@@ -61,7 +61,7 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Handle a flow initiated by the user."""
if user_input is None:
return await self._show_setup_form(user_input)
@@ -104,7 +104,9 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
},
)
async def async_step_hassio(self, discovery_info: HassioServiceInfo) -> FlowResult:
async def async_step_hassio(
self, discovery_info: HassioServiceInfo
) -> ConfigFlowResult:
"""Prepare configuration for a Hass.io AdGuard Home add-on.
This flow is triggered by the discovery component.
@@ -116,7 +118,7 @@ class AdGuardHomeFlowHandler(ConfigFlow, domain=DOMAIN):
async def async_step_hassio_confirm(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Confirm Supervisor discovery."""
if user_input is None:
return await self._show_hassio_form()

View File

@@ -1,4 +1,5 @@
"""Constants for the AdGuard Home integration."""
import logging
DOMAIN = "adguard"

View File

@@ -1,4 +1,5 @@
"""AdGuard Home base entity."""
from __future__ import annotations
from adguardhome import AdGuardHome, AdGuardHomeError

View File

@@ -1,4 +1,5 @@
"""Support for AdGuard Home sensors."""
from __future__ import annotations
from collections.abc import Callable, Coroutine

View File

@@ -1,4 +1,5 @@
"""Support for AdGuard Home switches."""
from __future__ import annotations
from collections.abc import Callable, Coroutine

View File

@@ -1,4 +1,5 @@
"""Support for Automation Device Specification (ADS)."""
import asyncio
from asyncio import timeout
from collections import namedtuple

View File

@@ -1,4 +1,5 @@
"""Support for ADS binary sensors."""
from __future__ import annotations
import pyads

View File

@@ -1,4 +1,5 @@
"""Support for ADS covers."""
from __future__ import annotations
from typing import Any

View File

@@ -1,4 +1,5 @@
"""Support for ADS light sources."""
from __future__ import annotations
from typing import Any

View File

@@ -1,4 +1,5 @@
"""Support for ADS sensors."""
from __future__ import annotations
import voluptuous as vol

View File

@@ -1,4 +1,5 @@
"""Support for ADS switch platform."""
from __future__ import annotations
from typing import Any

View File

@@ -1,4 +1,5 @@
"""Advantage Air climate integration."""
from datetime import timedelta
import logging

View File

@@ -1,4 +1,5 @@
"""Binary Sensor platform for Advantage Air integration."""
from __future__ import annotations
from homeassistant.components.binary_sensor import (

View File

@@ -1,4 +1,5 @@
"""Climate platform for Advantage Air integration."""
from __future__ import annotations
import logging

View File

@@ -1,4 +1,5 @@
"""Config Flow for Advantage Air integration."""
from __future__ import annotations
from typing import Any
@@ -6,9 +7,8 @@ from typing import Any
from advantage_air import ApiError, advantage_air
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
from homeassistant.const import CONF_IP_ADDRESS, CONF_PORT
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import ADVANTAGE_AIR_RETRY, DOMAIN
@@ -23,7 +23,7 @@ ADVANTAGE_AIR_SCHEMA = vol.Schema(
)
class AdvantageAirConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
class AdvantageAirConfigFlow(ConfigFlow, domain=DOMAIN):
"""Config Advantage Air API connection."""
VERSION = 1
@@ -32,7 +32,7 @@ class AdvantageAirConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
async def async_step_user(
self, user_input: dict[str, Any] | None = None
) -> FlowResult:
) -> ConfigFlowResult:
"""Get configuration from the user."""
errors = {}
if user_input:

View File

@@ -1,4 +1,5 @@
"""Constants used by Advantage Air integration."""
DOMAIN = "advantage_air"
ADVANTAGE_AIR_RETRY = 10
ADVANTAGE_AIR_STATE_OPEN = "open"

View File

@@ -1,4 +1,5 @@
"""Cover platform for Advantage Air integration."""
from typing import Any
from homeassistant.components.cover import (

View File

@@ -1,4 +1,5 @@
"""Provides diagnostics for Advantage Air."""
from __future__ import annotations
from typing import Any

View File

@@ -1,4 +1,5 @@
"""Advantage Air parent entity class."""
from typing import Any
from advantage_air import ApiError

View File

@@ -1,4 +1,5 @@
"""Light platform for Advantage Air integration."""
from typing import Any
from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity

View File

@@ -1,4 +1,5 @@
"""The Advantage Air integration models."""
from __future__ import annotations
from dataclasses import dataclass

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