Compare commits

...

1785 Commits

Author SHA1 Message Date
Franck Nijhof 85fb4a27a3 Bump version to 2024.4.0b6 2024-04-02 17:35:01 +02:00
Bram Kragten 8cbedbe26b Update frontend to 20240402.1 (#114646) 2024-04-02 17:34:29 +02:00
Steven B 5bd52da13a Bump ring_doorbell integration to 0.8.9 (#114631) 2024-04-02 17:33:24 +02:00
dotvav d53848aae4 Fix Overkiz Hitachi OVP air-to-air heat pump (#114611) 2024-04-02 17:23:51 +02:00
puddly 4e0d6f287e Reduce ZHA OTA logbook entries and extraneous updates (#114591) 2024-04-02 17:23:45 +02:00
Franck Nijhof 5af5f3694e Bump version to 2024.4.0b5 2024-04-02 12:28:20 +02:00
Bram Kragten b539b25682 Update frontend to 20240402.0 (#114627) 2024-04-02 12:28:07 +02:00
Fexiven ca31479d29 Fix Starlink integration startup issue (#114615) 2024-04-02 12:28:04 +02:00
Franck Nijhof 92dfec3c98 Add floor selector (#114614) 2024-04-02 12:28:00 +02:00
max2697 230c29edbe Bump opower to 0.4.2 (#114608) 2024-04-02 12:27:57 +02:00
Jack Boswell 559fe65471 Catch potential ValueError when getting or setting Starlink sleep values (#114607) 2024-04-02 12:27:54 +02:00
mkmer 384d10a51d Add diagnostic platform to Whirlpool (#114578)
* Add diagnostic platform and tests

* lowercase variable

* Correc doc string
2024-04-02 12:27:50 +02:00
Brett Adams e5a620545c Fix battery heater in Tessie (#114568) 2024-04-02 12:27:47 +02:00
Maciej Bieniek 7b84e86f89 Improve Shelly RPC device update progress (#114566)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-02 12:27:44 +02:00
Joost Lekkerkerker 18b6de567d Bump roombapy to 1.8.1 (#114478)
* Bump roombapy to 1.7.0

* Bump

* Bump

* Fix
2024-04-02 12:27:40 +02:00
Pete Sage a6076a0d33 Display sonos album title with URL encoding (#113693)
* unescape the title

When extracting the title from the item_id, it needs to be unescaped.

* sort imports
2024-04-02 12:27:36 +02:00
Paulus Schoutsen 7164993562 Bump version to 2024.4.0b4 2024-04-02 01:51:42 +00:00
mkmer bc21836e7e Bump whirlpool-sixth-sense to 0.18.7 (#114606)
Bump sixth-sense to 0.18.7
2024-04-02 01:51:35 +00:00
J. Nick Koston 52612b10fd Avoid storing raw extracted traceback in system_log (#114603)
This is never actually used and takes up quite a bit of ram
2024-04-02 01:51:35 +00:00
J. Nick Koston 623d85ecaa Fix memory leak when importing a platform fails (#114602)
* Fix memory leak when importing a platform fails

re-raising ImportError would trigger a memory leak

* fixes, coverage

* Apply suggestions from code review
2024-04-02 01:51:33 +00:00
J. Nick Koston 43631d5944 Add missing platforms_exist guard to check_config (#114600)
* Add missing platforms_exist guard to check_config

related issue #112811

When the exception hits, the config will end up being saved in the traceback
so the memory is never released.

This matches the check_config code to homeassistant.config to avoid having
the exception thrown.

* patch

* merge branch
2024-04-02 01:51:33 +00:00
J. Nick Koston 112aab47fb Bump zeroconf to 0.132.0 (#114596)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.131.0...0.132.0
2024-04-02 01:51:32 +00:00
Martin Hjelmare ea13f102e0 Fix reolink media source data access (#114593)
* Add test

* Fix reolink media source data access
2024-04-02 01:51:31 +00:00
jjlawren bb33725e7f Bump plexapi to 4.15.11 (#114581) 2024-04-02 01:51:31 +00:00
Michael bd6890ab83 Filter out ignored entries in ssdp step of AVM Fritz!SmartHome (#114574)
filter out ignored entries in ssdp step
2024-04-02 01:51:30 +00:00
Michael 25c611ffc4 Reduce usage of executer threads in AVM Fritz!Tools (#114570)
* call entity state update calls in one executer task

* remove not needed wrapping

* mark as "non-public" method

* add guard against changes on _entity_update_functions
2024-04-02 01:51:29 +00:00
Maikel Punie fc24b61859 Bump velbusaio to 2024.4.0 (#114569)
Bump valbusaio to 2024.4.0
2024-04-02 01:51:28 +00:00
Joost Lekkerkerker 71588b5c22 Fix wrong icons (#114567)
* Fix wrong icons

* Fix wrong icons
2024-04-02 01:51:27 +00:00
Robert Svensson 14dfb6a255 Bump axis to v60 (#114544)
* Improve Axis MQTT support

* Bump axis to v60
2024-04-02 01:51:27 +00:00
G Johansson ef97255d9c Fix server update from breaking setup in Speedtest.NET (#114524) 2024-04-02 01:51:26 +00:00
J. Nick Koston e8afdd67d0 Fix workday doing blocking I/O in the event loop (#114492) 2024-04-02 01:51:25 +00:00
J. Nick Koston 008e4413b5 Fix late load of anyio doing blocking I/O in the event loop (#114491)
* Fix late load of anyio doing blocking I/O in the event loop

httpx loads anyio which loads the asyncio backend in the event loop
as soon as httpx makes the first request

* tweak
2024-04-02 01:51:24 +00:00
dotvav c373d40e34 Fix Overkiz Hitachi OVP air-to-air heat pump (#114487)
Unpack command parameters instead of passing a list
2024-04-02 01:51:24 +00:00
J. Nick Koston bdf51553ef Improve sonos test synchronization (#114468) 2024-04-02 01:51:23 +00:00
Michael Hansen f2edc15687 Add initial support for floors to intents (#114456)
* Add initial support for floors to intents

* Fix climate intent

* More tests

* No return value

* Add requested changes

* Reuse event handler
2024-04-02 01:51:22 +00:00
J. Nick Koston 286a09d737 Mark executor jobs as background unless created from a tracked task (#114450)
* Mark executor jobs as background unless created from a tracked task

If the current task is not tracked the executor job should not
be a background task to avoid delaying startup and shutdown.

Currently any executor job created in a untracked task or
background task would end up being tracked and delaying
startup/shutdown

* import exec has the same issue

* Avoid tracking import executor jobs

There is no reason to track these jobs as they are always awaited
and we do not want to support fire and forget import executor jobs

* fix xiaomi_miio

* lots of fire time changed without background await

* revert changes moved to other PR

* more

* more

* more

* m

* m

* p

* fix fire and forget tests

* scrape

* sonos

* system

* more

* capture callback before block

* coverage

* more

* more races

* more races

* more

* missed some

* more fixes

* missed some more

* fix

* remove unneeded

* one more race

* two
2024-04-02 01:51:21 +00:00
Shay Levy e8ee2fd25c Cleanup Shelly RGBW light entities (#114410) 2024-04-02 01:51:21 +00:00
Franck Nijhof 11b8b01cde Bump version to 2024.4.0b3 2024-03-29 22:22:45 +01:00
Paul Bottein 4f761c25d8 Update frontend to 20240329.1 (#114459) 2024-03-29 22:22:37 +01:00
J. Nick Koston 953ceb0d8d Avoid tracking import executor jobs (#114453) 2024-03-29 22:22:33 +01:00
Franck Nijhof e53672250f Bump version to 2024.4.0b2 2024-03-29 19:35:52 +01:00
Paul Bottein 84901f1983 Update frontend to 20240329.0 (#114452) 2024-03-29 19:35:44 +01:00
Steven Looman e4d973e8a2 Bump async-upnp-client to 0.38.3 (#114447) 2024-03-29 19:35:40 +01:00
epenet cdd7ce435a Log warnings in Renault initialisation (#114445) 2024-03-29 19:35:37 +01:00
Mick Vleeshouwer c7ce53cc49 Bump pyoverkiz to 1.13.9 (#114442) 2024-03-29 19:35:33 +01:00
Steven B db7d0a0ee9 Bump python-ring-doorbell to 0.8.8 (#114431)
* Bump ring_doorbell to 0.8.8

* Fix intercom history test for new library version

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-29 19:35:30 +01:00
J. Nick Koston 906febadef Cleanup some plex tasks that delayed startup (#114418) 2024-03-29 19:35:27 +01:00
J. Nick Koston bc740f95c9 Avoid concurrent radio operations with powerview hubs (#114399)
Co-authored-by: kingy444 <toddlesking4@hotmail.com>
2024-03-29 19:35:23 +01:00
Alexey ALERT Rubashёff bf4e527f44 Add overkiz bottom tank water temperature and core control water temperature for Atlantic Water Heater (#114186)
* Adds bottom tank water temperature and core conrol water temperature sensors for Atlantic water heater

* Update homeassistant/components/overkiz/sensor.py

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

* Update homeassistant/components/overkiz/sensor.py

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

---------

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-03-29 19:35:20 +01:00
Alexey ALERT Rubashёff 35e582a240 Add overkiz water targets temperature numbers for Atlantic water heater (#114185)
* Adds water targets temperature numbers for Atlantic water heater

* Update homeassistant/components/overkiz/number.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* Update homeassistant/components/overkiz/number.py

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>

* ruff formatting reverted

* Update homeassistant/components/overkiz/number.py

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

* Update homeassistant/components/overkiz/number.py

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

* changed command hardcode to a constant

---------

Co-authored-by: Mick Vleeshouwer <mick@imick.nl>
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-03-29 19:35:17 +01:00
Alexey ALERT Rubashёff 65d25bd780 Add overkiz heating status, absence mode, and boost mode binary sensors for Atlantic Water Heater (#114184)
* Adds heating status, absense mode, and boost mode binary sensors for Atlantic water heater

* Renamed absence mode and boost mode binary sensors

* Update homeassistant/components/overkiz/binary_sensor.py

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

* Update homeassistant/components/overkiz/binary_sensor.py

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

* Update homeassistant/components/overkiz/binary_sensor.py

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

---------

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-03-29 19:35:13 +01:00
Jeremy TRUFIER b8a2c14813 Follow real AtlanticPassAPCZoneControlZone physical mode on Overkiz (HEAT, COOL or HEAT_COOL) (#111830)
* Support HEAT_COOL when mode is Auto on overkiz AtlanticPassAPCZoneControlZone

* Refactor ZoneControlZone to simplify usic by only using a single hvac mode

* Fix linting issues

* Makes more sense to use halves there

* Fix PR feedback
2024-03-29 19:35:09 +01:00
Franck Nijhof 612988cf3e Bump version to 2024.4.0b1 2024-03-28 20:43:23 +01:00
Scott K Logan 7a53ea4b92 Bump aioraven to 0.5.3 (#114397) 2024-03-28 20:43:10 +01:00
Paul Bottein 8e4cf4e4a7 Update frontend to 20240328.0 (#114396) 2024-03-28 20:43:07 +01:00
Franck Nijhof 53ba732ed0 Fix area search for entities of devices (#114394) 2024-03-28 20:43:03 +01:00
Michael Hansen c81e9447f9 Filter preferred TTS format options if not supported (#114392)
Filter preferred format options if not supported
2024-03-28 20:43:00 +01:00
Franck Nijhof 8cd8718855 Fix hassfest service icons check for custom integrations (#114389) 2024-03-28 20:42:58 +01:00
Maciej Bieniek aa30194249 Adapt Tractive integration the latest API changes (#114380)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-03-28 20:42:55 +01:00
Joost Lekkerkerker 80273b4873 Fix Lupusec feedback (#114374) 2024-03-28 20:42:52 +01:00
Joost Lekkerkerker 99282d27c6 Fix Swiss public transport feedback (#114373) 2024-03-28 20:42:48 +01:00
Joost Lekkerkerker ba12652cbc Fix Suez water feedback (#114372) 2024-03-28 20:42:42 +01:00
Joost Lekkerkerker 5e0a0718e3 Fix streamlabswater feedback (#114371) 2024-03-28 20:42:39 +01:00
Marc Mueller 1c6689be41 Update pytile to 2023.12.0 (#114370) 2024-03-28 20:42:36 +01:00
Erik Montnemery b143390d88 Improve device class of utility meter (#114368) 2024-03-28 20:42:33 +01:00
Erik Montnemery 42580a1113 Improve utility meter restore state tests (#114356) 2024-03-28 20:42:30 +01:00
Robert Resch 21bff95bd7 Fix script for checking on existing translations (#114354) 2024-03-28 20:42:27 +01:00
Christopher Bailey 737e5e70ec Bump pyunifiprotect to 5.1.2 (#114348) 2024-03-28 20:42:24 +01:00
J. Nick Koston f204faf202 Fix empty delays in script helper (#114346)
fixes
```
Logger: homeassistant.components.automation.kamermaster_knop_4_acties_licht
Bron: components/automation/__init__.py:726
integratie: Automatisering (documentatie, problemen)
Eerst voorgekomen: 22:17:29 (5 gebeurtenissen)
Laatst gelogd: 22:59:24

While executing automation automation.kamermaster_knop_4_acties_licht
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/automation/__init__.py", line 726, in async_trigger
    return await self.action_script.async_run(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1645, in async_run
    return await asyncio.shield(create_eager_task(run.async_run()))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 454, in async_run
    await self._async_step(log_exceptions=False)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 506, in _async_step
    self._handle_exception(
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 536, in _handle_exception
    raise exception
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 504, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 626, in _async_delay_step
    if timeout_future.done():
       ^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'done'
```
2024-03-28 20:42:21 +01:00
Joakim Plate f141be73c7 Bump fjaraskupan to 2.3.0 (#114344)
Update fjarakupen to 2.3.0

- Support delayed disconnection
- Speed up on/off transitions
2024-03-28 20:42:18 +01:00
Michael Hansen 04bfb1de3c Add more Ollama models (#114339)
Add more models
2024-03-28 20:42:15 +01:00
J. Nick Koston 541a6c5f64 Revert velocity change in powerview (#114337) 2024-03-28 20:42:12 +01:00
Robert Resch 824d6afa24 Remove checked in translations (#114336) 2024-03-28 20:42:09 +01:00
Robert Resch 53cc4b8c37 Download translations only once in the build pipeline (#114335) 2024-03-28 20:42:06 +01:00
Erik Montnemery a91c03b164 Don't access States.last_reported_ts before it's added (#114333) 2024-03-28 20:42:03 +01:00
Øyvind Matheson Wergeland f8edab0c12 Avoid changing local time on Nobø Ecohub (#114332)
nobo_hub: Pass timezone to avoid changing local time on Nobø Ecohub in handshake
2024-03-28 20:42:00 +01:00
Marcel van der Veldt 00993a6be3 Fix Matter airconditioner discovery of climate platform (#114326)
* Discover Thermostat platform for Room Airconditioner device

* add test

* Adjust docstring

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-03-28 20:41:57 +01:00
Maikel Punie a18184a4c0 Bump pyduotecno to 2024.3.2 (#114320) 2024-03-28 20:41:54 +01:00
TheJulianJES e2710184cb Bump zha-quirks to 0.0.113 (#114311) 2024-03-28 20:41:51 +01:00
Martin Hjelmare 9319528e0e Use fallback voice for selected language in cloud (#114246)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-28 20:41:47 +01:00
Franck Nijhof b2e7808114 Bump version to 2024.4.0b0 2024-03-27 18:27:38 +01:00
Bram Kragten 6af0ccfa8d Update frontend to 20240327.0 (#114322) 2024-03-27 18:21:45 +01:00
puddly fc34453caa Support the Home Assistant Connect ZBT-1 (#114213) 2024-03-27 18:20:48 +01:00
Marc Mueller 63e28f958d Use SignalType to improve typing [homekit] (#114297) 2024-03-27 18:05:01 +01:00
Joost Lekkerkerker e626cd12aa Fix feedback in ROVA (#114308) 2024-03-27 18:01:07 +01:00
Lenn 6f1b4fad01 Fix icons for Motionblinds BLE integration (#114321)
Remove icon.json and add to icons.json
2024-03-27 18:00:18 +01:00
Joost Lekkerkerker 544215a609 Handle TypeError in Spotify (#114317) 2024-03-27 17:56:22 +01:00
David F. Mulcahey c518acfef3 Defensively validate ZHA quirks v2 supplied entity metadata (#112643) 2024-03-27 17:48:43 +01:00
G Johansson 65230908c6 Remove deprecated forecast attribute from WeatherEntity (#110761)
* Remove deprecated forecast attribute from WeatherEntity

* Fix some

* Ruff

* ipma

* buienradar

* some more

* Some more

* More and more

* strings

* attr_forecast

* Fix nws

* Fix

* remove from coverage

* Remove recorder test

* Review comments
2024-03-27 16:51:29 +01:00
Jan Bouwhuis 1269031d11 Change min and max humidity for MQTT climate and humidifier (#114292)
Allow floats for humidity on mqtt platforms
2024-03-27 16:46:42 +01:00
Michael Hansen e4d2985589 Bump intents to 2024.3.27 (#114312) 2024-03-27 16:43:15 +01:00
Joost Lekkerkerker 5aabb2a920 Finish ROVA init tests (#114315)
* Finish ROVA init tests

* Finish ROVA init tests

* Finish ROVA init tests
2024-03-27 16:36:42 +01:00
Jeef fc596cde44 Version Bump for WeatherFlow Cloud Backing Lib (#114302)
Version bump to support stations going offline for some time
2024-03-27 16:24:18 +01:00
Joost Lekkerkerker 6289082dab Migrate Rova to has entity name (#114303) 2024-03-27 16:20:51 +01:00
YogevBokobza 4d27f4be51 Refactor switcher kis (#114281)
* switcher: small refactoring

* swithcer: Update switch.py

* more refactoring

* fix ruff
2024-03-27 17:15:49 +02:00
G Johansson c21d508c2d Start deprecation of auxiliary heater in ClimateEntity (#112532)
* Start deprecation of auxiliary heater in ClimateEntity

* No issue for core integrations

* Remove unneded strings

* Move report to state_attributes
2024-03-27 16:10:32 +01:00
MarkGodwin 834f45397d Add support for PoE control of TP-Link Omada Gateways (#114138)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-27 16:05:14 +01:00
Erik Montnemery 23e9be756d Fix exception when logging out from cloud (#114306)
* Fix exception when logging out from cloud

* Add test
2024-03-27 16:02:47 +01:00
Joost Lekkerkerker a9fd4e45cd Raise issue if not Rova area anymore (#114309) 2024-03-27 15:51:49 +01:00
Tereza Tomcova a00c1fa241 Bump pyprusalink to 2.1.1 and support Prusa MK3 (#114210)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-27 15:26:44 +01:00
Robert Resch 1a64be6da6 Fix version_bump --set-nightly-version (#114304) 2024-03-27 14:45:28 +01:00
J. Nick Koston ce022a1793 Fix missing powerview shade data when initial refresh fails (#113033) 2024-03-27 03:38:57 -10:00
Jan-Philipp Benecke 5316b94705 Use setup_test_component_platform helper for alarm_control_panel entity component tests instead of hass.components (#114301) 2024-03-27 14:36:31 +01:00
Marc Mueller 911a31f860 Use SignalType to improve typing [core] (#114298) 2024-03-27 14:25:02 +01:00
Jan-Philipp Benecke 6313571fbc Use setup_test_component_platform helper for binary_sensor entity component tests instead of hass.components (#114293) 2024-03-27 14:24:02 +01:00
Joost Lekkerkerker c222cfd692 Add coordinator to Rova (#114288)
* Add coordinator to Rova

* Add coordinator to Rova

* Fix

* Update homeassistant/components/rova/sensor.py

Co-authored-by: Jan-Philipp Benecke <github@bnck.me>

* Fix

---------

Co-authored-by: Jan-Philipp Benecke <github@bnck.me>
2024-03-27 14:14:49 +01:00
Robert Resch aaecbbdc40 Update bump_version.py to append also the time to nightlies and add possibility to set manual a nightly version (#114300) 2024-03-27 14:12:45 +01:00
Marc Mueller 9ea666b5e1 Use SignalType to improve typing [bthome] (#114295) 2024-03-27 08:22:44 -04:00
Marc Mueller 09ebca9630 Use SignalType to improve typing [esphome] (#114296) 2024-03-27 08:22:10 -04:00
Joost Lekkerkerker 45da6f8f2c Add tests to Rova (#114285) 2024-03-27 13:00:02 +01:00
Erik Montnemery a3059fe504 Record state.last_reported (#114201)
* Record state.last_reported

* Include last_reported in parts of the history API

* Use a bulk update

* fix refactoring error

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-27 12:48:06 +01:00
Marc Mueller 24168dfba7 Update mypy-dev to 1.10.0a3 (#114289)
* Update mypy-dev to 1.10.0a3

* Allow TypedDict init from Type
2024-03-27 12:32:29 +01:00
Jan-Philipp Benecke 34cf0c5721 Use setup_test_component_platform func for cover entity component tests instead of hass.components (#114010)
* Use `mock_platform` for cover entity component tests instead of `hass.components`

* Remove setup fixture and use helper function

* Remove is_on from MockCover

* Run ruff

* Do not override state in `MockCover` in cover tests

* Remove is_on from MockCover
2024-03-27 12:20:19 +01:00
Marc Mueller 3929273b41 Allow float for int argument type [pylint plugin] (#114105) 2024-03-27 11:51:27 +01:00
Jan-Philipp Benecke 5c97049f2e Do not override state property in MockEntity (#114231)
Do not override state in `MockEntity`
2024-03-27 11:36:00 +01:00
Marc Mueller 44eeb2eb5e Allow Humidifier.current_humidity to be a float (#111297)
* Allow Humidifier.current_humidity to be a float

* Code review

* Allow climate humidity values to be float

* Update demo integration
2024-03-27 11:19:20 +01:00
G Johansson b190cdceaf Remove hourly weather entity from metoffice (#112452) 2024-03-27 11:06:31 +01:00
Shai Ungar 69356300f0 Address late review of 17track config flow (#114283)
* some fixes for 17track

* remove await

* fix test
2024-03-27 11:06:13 +01:00
Lenn 6423501498 Add buttons to Motionblinds BLE integration (#114227)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Robert Resch <robert@resch.dev>
2024-03-27 11:05:26 +01:00
Lenn 7b56643278 Add select to Motionblinds BLE integration (#114228)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-03-27 10:50:04 +01:00
J. Nick Koston 2421b42f10 Refactor yeelight scanner to avoid creating tasks to wait for scanner start (#113919) 2024-03-27 10:17:35 +01:00
J. Nick Koston 13d6ebaabf Avoid delaying automation/script startup for sample blueprints (#114277)
Avoid delaying automation/script startup to check if the blueprint folder exists

automations and script both populate sample blueprints if none exist

The check to see if the blueprint folder exists always had to create
an executor job which would delay startup a bit if the executor was
busy. Since we do not need the sample blueprints to be populated
until the start event, we can run this in a task.
2024-03-27 09:55:59 +01:00
Franck Nijhof da78dbb61f Merge branch 'master' into dev 2024-03-27 09:43:52 +01:00
Robert Svensson 03ec1798e4 Bump aiounifi to v73 (#114278) 2024-03-27 09:43:08 +01:00
Franck Nijhof dd2d79b77e Refactor/fix search component, including labels & floors support (#114206)
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
Co-authored-by: Robert Resch <robert@resch.dev>
2024-03-27 09:39:05 +01:00
J. Nick Koston d8acd90370 Run recorder shutdown tasks eagerly (#113018) 2024-03-26 22:25:45 -10:00
Marc Mueller 1d2c2d2055 Move SignalTypes to util (#114236) 2024-03-27 08:41:44 +01:00
JeromeHXP fbb590ea1f Bump ondilo_ico to 0.4.0 (#114022) 2024-03-27 08:41:11 +01:00
dependabot[bot] 4d7da61e99 Bump actions/setup-python from 5.0.0 to 5.1.0 (#114276)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-27 08:39:56 +01:00
Lenn 480b2ec84a Add Motionblinds brand (#114235) 2024-03-27 08:02:25 +01:00
J. Nick Koston 1697b116e4 Combine tts cache init executor jobs (#114271) 2024-03-26 23:58:46 -04:00
tronikos a6fabdc115 Fix Opower accounts that report cost less regularly than usage (#114034)
* Update coordinator.py

* Update coordinator.py
2024-03-26 17:20:16 -04:00
Michael Hansen 72fed878b4 Add Ollama conversation agent (#113962)
* Add ollama conversation agent

* Change iot class

* Much better default template

* Slight adjustment to prompt

* Make casing consistent

* Switch to ollama Python fork

* Add prompt to tests

* Rename to "ollama"

* Download models in config flow

* Update homeassistant/components/ollama/config_flow.py

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-26 16:15:20 -05:00
Jan-Philipp Benecke f94f1fb826 Use setup_test_component_platform func for number entity component tests instead of hass.components (#114017)
* Use `setup_test_component_platform` fixture for number entity component tests instead of `hass.components`

* Now function

* Ruff format
2024-03-26 21:56:38 +01:00
Jan-Philipp Benecke e80d73783c Do not late import config_entry in setup_test_component_platform test helper (#114260) 2024-03-26 21:54:09 +01:00
J. Nick Koston a0d43aeba2 Remove unused code in ESPHome entry_data (#114263) 2024-03-26 10:32:16 -10:00
J. Nick Koston 6599b9a36d Restore scapy pin to >=2.5.0 (#114253) 2024-03-26 10:31:52 -10:00
J. Nick Koston 2649dfaa11 Fix ruff-format on energy sensor (#114261) 2024-03-26 10:05:55 -10:00
Mr. Bubbles 8955ef7fc6 Bump bring-api to 0.5.7 (#114252) 2024-03-26 20:53:45 +01:00
J. Nick Koston f982473e53 Small performance improvements to energy sensors (#114149) 2024-03-26 09:40:06 -10:00
Franck Nijhof 9a32d1bbd5 Add label selector (#111029)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-03-26 20:31:06 +01:00
Jan-Philipp Benecke dce3bde0ab Use setup_test_component_platform helper for update entity component tests instead of hass.components (#114203)
* Use `setup_test_component_platform` helper for update entity component tests instead of `hass.components`

* Run ruff format
2024-03-26 20:20:08 +01:00
Franck Nijhof 9a1906322b Allow numeric state trigger/condition against zone entities (#114221) 2024-03-26 19:41:46 +01:00
Ron Weikamp e1036b3af0 Refactor Riemann sum integral sensor to prepare for time based trigger (#113932)
* Refactor Integration sensor.

* Use local simple function to verify the State is numeric.

* Merge two methods to one.

* Method renaming: _handle_state_change

* Move async_write_ha_state to the caller.

* Add comment on why attr_icon is set to None

* Remove possible None type of State in validation methods.

* Use a dict to map method name to method class.

* Explain derived unit after integration.

* Renaming to _multiply_unit_with_time and elaborate in docstring.

* Set integral unit_of_measurement explicitly to None if source unit_of_measurement is None

* One function for unit of measurement related steps.

* Improve docstring of _multiply_unit_with_time

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

* Apply f-string suggestions from code review

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

* Be more clear in comment about removing the sensors icon default.

* Apply suggestions from code review

Co-authored-by: Diogo Gomes <diogogomes@gmail.com>

* Update homeassistant/components/integration/sensor.py

* Update homeassistant/components/integration/sensor.py

* Update homeassistant/components/integration/sensor.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Diogo Gomes <diogogomes@gmail.com>
2024-03-26 19:09:48 +01:00
Franck Nijhof c247534731 Default floor level to None (and allow unsetting it) (#114249) 2024-03-26 18:58:25 +01:00
Marc Mueller c8260a5966 Remove test cases for task eager_start <3.12 (#114243) 2024-03-26 15:52:38 +01:00
Lenn 53944b260c Bump motionblindsble to 0.0.9 (#114232) 2024-03-26 08:17:29 -04:00
Franck Nijhof 2388e2dda9 Drop Python 3.11 support (#114220) 2024-03-26 12:51:14 +01:00
Marc Mueller 31f5576b6e Add ruff commit to git-blame-ignore-revs (#114229) 2024-03-26 12:16:55 +01:00
Marc Mueller eb81a4204e Allow string formatting for dispatcher SignalType (#114174) 2024-03-26 10:38:29 +01:00
Erik Montnemery dd43947ca0 Add test to ensure non callback event filter is rejected (#114182) 2024-03-26 10:36:08 +01:00
Erik Montnemery bac527f289 Don't allow listening to state_reported in event triggers (#114191)
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2024-03-26 10:35:47 +01:00
Duco Sebel 788813aad6 Implement Identify button and Cloud connection toggle for HomeWizard Watermeter (#113814) 2024-03-26 10:34:36 +01:00
Franck Nijhof 5c69e0d2c6 Add label template functions (#111024) 2024-03-26 10:32:29 +01:00
Cyrill Raccaud e136847b89 Add more timestamp sensors to swiss_public_transport (#107916)
* add more timestamp sensors

* more generic definition for future sensors

* add entity descriptor

* use enable property to prevent sensors from getting added

* set legacy attribute flag for first sensor

* remove departure from extra attributes

* remove breaking changes again and keep for next pr

* fix multiline statements

* outsource the multiline ifs into function

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-26 10:17:25 +01:00
Robert Resch 0338aaf577 Allow pre-releases for "Adjust nightly version" only (#114219) 2024-03-26 10:05:13 +01:00
Joost Lekkerkerker ddee999843 Fix motion blinds formatting (#114222) 2024-03-26 09:57:19 +01:00
Lenn 70c4fa8475 Add Motionblinds BLE integration (#109497)
* initial fork

* intial tests

* Initial test coverage

* extra coverage

* complete config flow tests

* fix generated

* Update CODEOWNERS

* Move logic to PyPi library and update to pass config_flow test and pre-commit

* Remove Button, Select and Sensor platform for initial PR

* Update manifest.json

* Change info logs to debug in cover

* Use _abort_if_unique_id_configured instead of custom loop checking existing entries

* Change platforms list to PLATFORMS global

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Remove VERSION from ConfigFlow

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Replace all info logs by debug

* Use instance attributes in ConfigFlow

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Add return type and docstring to init in ConfigFlow

* Add recovery to tests containing errors

* Make NoBluetoothAdapter and NoDevicesFound abort instead of show error

* Change info logs to debug

* Add and change integration type from hub to device

* Use CONF_ADDRESS from homeassistant.const

* Move cover attributes initialization out of constructor

* Change CONF_ADDRESS in tests from const to homeassistant.const

* Remove unused part of tests

* Change 'not motion_device' to 'motion_device is None'

* Change _attr_connection_type to _connection_type

* Add connections to DeviceInfo

* Add model to DeviceInfo and change MotionBlindType values

* Remove identifiers from DeviceInfo

* Move constants from const to library

* Move calibration and running to library, re-add all platforms

* Remove platforms from init

* Remove button platform

* Remove select platform

* Remove sensor platform

* Bump motionblindsble to 0.0.4

* Remove closed, opening and closing attribute default values

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Remove CONFIG_SCHEMA from init

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Remove unused platform attributes and icons

* Re-add _attr_is_closed to GenericBlind to fix error

* Use entry.async_create_background_task for library instead of entry.async_create_task

* Move updating of position on disconnect to library

* Remove type hints, keep for _attr_is_closed

* Use DISPLAY_NAME constant from library for display name

* Add TYPE_CHECKING condition to assert in config_flow

* Re-add CONFIG_SCHEMA to __init__ to pass hassfest

* Change FlowResult type to ConfigFlowResult

* Fix import in tests

* Fix ruff import

* Fix tests by using value of enum

* Use lowercase name of MotionBlindType enum for data schema selector and translation

* Fix using name instead of value for MotionBlindType

* Improve position None handling

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

* Improve tilt None handling

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

* Change BLIND_TO_ENTITY_TYPE name

* Set entity name of cover to None and use DeviceInfo name

* Add base entity

* Move async_update to base entity

* Move unique ID with suffix to base class

* Add entity.py to .coveragerc

* Remove extra state attribute connection type

* Remove separate line hass.data.setdefault(DOMAIN, {})

* Remove use of field for key and translation_key in MotionCoverEntityDescription

* Remove entity translation with extra state_attributes from strings.json

* Use super().__init__(device, entry)

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

* Change if block in async_update_running

* Use if blocks in async_update_position

* Add additional scanner check before show_form

* Remove default value of device_class in MotionCoverEntityDescription

* Fix entry.data[CONF_BLIND_TYPE] uppercase

* Fix device info model name

* Bump motionblindsble to 0.0.5

* Fix tests

* Move entity_description to MotionblindsBLEEntity

* Change double roller blind name

* Bump motionblindsble to 0.0.6

* Fix ruff

* Use status_query for async_update

* Bump motionblindsble to 0.0.7

* Change bluetooth local name

* Set kw_only=True for dataclass

* Change name of GenericBlind

* Change scanner_count conditional

* Wrap async_register_callback in entry.async_on_unload

* Bump motionblindsble to 0.0.8

* Use set_create_task_factory and set_call_later_factory

* Update bluetooth.py generated

* Simplify COVER_TYPES dictionary

* Move registering callbacks to async_added_to_hass

* Remove check for ATTR_POSITION and ATTR_TILT_POSITION in kwargs

* Add naming consistency for device and entry

* Use if block instead of ternary for _attr_unique_id

* Improve errors ternary in config_flow

* Use set instead of list for running_type

* Improve errors ternary in config_flow

* Remove init from MotionblindsBLECoverEntity and move debug log to async_added_to_hass

* Update debug log create cover

* Fix ruff

* Use identity check instead of equals

* Use identity check instead of equals

* Change MotionblindsBLECoverEntityDescription name

* Change debug log text

* Remove ATTR_CONNECTION from const

* Add types for variables in async_setup_entry

* Add types for variables in async_setup_entry

* Change PositionBlind class name to PositionCover etc

* Improve docstrings

* Improve docstrings

---------

Co-authored-by: starkillerOG <starkiller.og@gmail.com>
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-26 09:52:04 +01:00
Arie Catsman b9fdd56f01 Bump pyenphase to 1.20.1 (#114218) 2024-03-25 22:42:19 -10:00
Matrix 63b4fd09c1 Add YoLink Water Meter Support (#114148)
* Add YS-5006/5007/5008 Water Meter Support

* Add YoLink Water Meter Support

* Update .coveragerc

* fix as suggestion
2024-03-26 09:29:14 +01:00
J. Nick Koston 54a69a2687 Remove async_get_device_class_lookup from entity_registry (#114212)
This function was only ever used in homekit, and since there is
now an index of devices in the entity registry, homekit no longer
uses it.

I searched github code for all references to async_get_device_class_lookup
and the only think I could find using it were forks of core. It seems
unlikely that any custom components are affected by removing this
function
2024-03-26 09:22:53 +01:00
Robert Svensson 3f545cb3d3 Rework Axis entity loader to have a better internal storage structure (#114114)
* Make one single subscribe containing all topics at once

* Update homeassistant/components/axis/hub/entity_loader.py

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

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-26 07:55:07 +01:00
Marc Mueller d0ecad78ac Revert "Update typing-extensions to 4.11.0rc1 (#114116)" (#114216) 2024-03-25 20:44:57 -10:00
J. Nick Koston cabc4f797a Preload storage for integrations we know we are going to setup (#114192) 2024-03-25 15:49:54 -10:00
J. Nick Koston 345fa75562 Bump SQLAlchemy to 2.0.29 (#114208) 2024-03-25 14:39:16 -10:00
Jan-Philipp Benecke 9580adfde9 Use new setup_test_component_platform helper instead of test fixture for light platform (#114200) 2024-03-26 00:17:16 +01:00
Joost Lekkerkerker 6bb4e7d62c Bump ruff to 0.3.4 (#112690)
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-26 00:02:16 +01:00
J. Nick Koston 27219b6962 Bump anyio to 4.3.0 (#114198) 2024-03-25 23:52:28 +01:00
Jan-Philipp Benecke 2f0cfc8b61 Remove deprecated hass.components from system_health tests (#114207) 2024-03-26 00:39:31 +02:00
Jan Bouwhuis 18174ad47d Improve test coverage mqtt discovery test (#114188) 2024-03-25 22:41:11 +01:00
Shay Levy 121182167f Fix Shelly reauth flow (#114180)
* Fix Shelly reauth flow

* Rename shutdown_device to async_shutdown_device
2024-03-25 23:27:44 +02:00
Jan-Philipp Benecke 9b682388f5 Add generic test component platform setup function (#114016)
* Add generic entity platform setup fixture

* rename fixture

* No need for passing hass

* Make function instead of fixture

* Improve typing

* Use Sequence instead

* Migrate flux to use the new helper

* Use list instead

* Use Sequence instead
2024-03-25 21:36:17 +01:00
Jim 6ceeb1e41f Telegram bot proxy params deprecation (#112778)
* Add strings for issues to raise in telegram integration startup

* Allow proxy_params to be passed empty

Allows migration away from proxy_params whilst retaining a configured proxy.

* Raise issues for removing proxy_params config option

* Add types to initialize_bot function

* Add PR link for learn more URL

Update issue message to leave a comment on the PR instead

* Apply suggestions from code review

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

* hass should always be first argument

* Update issues strings to give domain and better direction.

* Update breaks_in_ha_version to something saner

* Apply strings.json suggestions from code review

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-25 21:09:34 +01:00
Erik Montnemery e2ee623d23 Add restrictions for listening to event_reported events (#114183)
* Add restrictions for listening to event_reported events

* Update homeassistant/core.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-25 19:16:50 +01:00
J. Nick Koston c3f4aca4e3 Add reauth support to NUT (#114131) 2024-03-25 07:59:46 -10:00
Robert Resch 135c40cad8 Add Ecovacs last job event entity (#113826)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-25 18:31:04 +01:00
G Johansson 5e70faca5f Refactor options flow in dnsip (#114058)
* Refactor options flow in dnsip

* Mods
2024-03-25 17:38:02 +01:00
Robert Svensson 71a6653f60 Fix Axis not generate unique IDs (#114115) 2024-03-25 12:21:21 -04:00
Robert Svensson c1e1db9863 Adapt to Axis library file structure changes (#114181)
* Adapt to axis library file structure changes

* Bump axis to v59
2024-03-25 12:16:41 -04:00
Thomas55555 b71cbeff51 Bump aioautomower to 2024.3.4 (#114127)
* Bump aioautomower to 2024.3.4

* Update homeassistant/components/husqvarna_automower/sensor.py

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

* adjust imports

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-25 16:11:12 +01:00
Kevin Stillhammer 3d6600364b Bump pywaze to 1.0.0 (#108613) 2024-03-25 16:08:57 +01:00
Max von Webel 7b2166243b Updated temp offset logging in tado component (#106308)
* Updated temp offset logging in tado component

The logging is a bit confusing because it's trimming the digits from the value. Hopefully this makes it a bit more clear.

* Update homeassistant/components/tado/climate.py

Co-authored-by: Jorim Tielemans <tielemans.jorim@gmail.com>

---------

Co-authored-by: Jorim Tielemans <tielemans.jorim@gmail.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-25 15:10:16 +01:00
Manuel Dipolt e2a26f6470 Add base entity to romy integration (#113750)
* cherry picked base entity changes from the branches romy_binary_sensor & romy_sensor

* Update homeassistant/components/romy/entity.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/romy/vacuum.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/romy/entity.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/romy/vacuum.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* Update homeassistant/components/romy/vacuum.py

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>

* code review changes, base entity/coordinator cleanup

---------

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
2024-03-25 14:28:07 +01:00
Joost Lekkerkerker d398eb1f2c Add Withings webhook manager (#106311) 2024-03-25 13:59:36 +01:00
J. Nick Koston 3acb505456 Refactor homekit device linking to use the device index (#114145)
Now that we have an index of devices in the entity registry
we can avoid generating a lookup for devices we do
not care about
2024-03-25 08:28:56 -04:00
Matthias Lohr 95ddade83c Use enums to define choices in tolo (#113992)
* use enums defined in HA to define choices

* move enums to .const
2024-03-25 12:47:56 +01:00
Marc Mueller 49a4fe41c6 Update codespell to 2.2.6 (#114167) 2024-03-25 12:33:25 +01:00
Marc Mueller 56e13ef3fc Update pytest-unordered to 0.6.0 (#114162) 2024-03-25 11:45:07 +01:00
Marc Mueller 81c34ac952 Fix spelling [docstrings + comments] (#114168) 2024-03-25 11:33:00 +01:00
Marc Mueller 9b7cc088be Fix spelling [runtime] (#114169) 2024-03-25 11:32:50 +01:00
Marc Mueller 8ae2fefcf3 Update types packages (#114164) 2024-03-25 11:32:38 +01:00
G Johansson 3ba1b82723 Remove hourly weather entity from met_eireann (#112449) 2024-03-25 11:30:50 +01:00
J. Nick Koston ada781025b Avoid homekit random id generation for existing entries (#114144) 2024-03-25 11:28:26 +01:00
Marc Mueller 188dbfbd2a Update typing-extensions to 4.11.0rc1 (#114116) 2024-03-25 11:27:47 +01:00
Jan Bouwhuis e88ade716d Allow debugging tests by default in vscode (#114065) 2024-03-25 11:25:46 +01:00
Marc Mueller 1b6d1d58ec Update pytest-cov to 5.0.0 (#114160)
* Update pytest-cov to 5.0.0

* Update warnings filter
2024-03-25 11:23:26 +01:00
Marc Mueller 5d293f92b2 Update yamllint to 1.35.1 (#114166) 2024-03-25 11:22:55 +01:00
Marc Mueller 18bb33e2d7 Update pyOpenSSL to 24.1.0 (#114165) 2024-03-25 11:15:47 +01:00
Bouwe Westerdijk ace21c876c Bump plugwise to v0.37.1 (#113245) 2024-03-25 11:15:33 +01:00
Marc Mueller 3643b324c0 Update pipdeptree to 2.16.1 (#114159) 2024-03-25 11:13:25 +01:00
Marc Mueller b2da780044 Update respx to 0.21.0 (#114163) 2024-03-25 11:05:30 +01:00
Marc Mueller ac0dc946d3 Update pytest-timeout to 2.3.1 (#114161) 2024-03-25 11:02:20 +01:00
Marc Mueller 36fdf65782 Update coverage to 7.4.4 (#114158) 2024-03-25 11:00:22 +01:00
Álvaro Fernández Rojas 33d9947a70 Add climate fan modes for Airzone Cloud Aidoo devices (#103574)
* airzone_cloud: climate: add Aidoo speeds support

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

* Add suggested changes

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

* airzone_cloud: climate: rename _set_fan_speeds()

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

* airzone_cloud: climate: drop BASE_FAN_SPEEDS

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

* airzone_cloud: climate: refactor FAN_AUTO speed

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

* airzone_cloud: climate: document standard speeds replacement

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

* airzone_cloud: climate: fix Homekit comment

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

* airzone_cloud: climate: consistent fan speed names

Instead of mixing "low", "medium" and "high" with percentages, let's use only
percentages if there are more speeds.

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

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-03-25 10:50:04 +01:00
Jan Bouwhuis 19fa39d556 Generate ConfigValidationError message from English translations (#113844)
* Fetch ConfigValidationError message from translation cache

* Sync error logmessages with translation cache

* More sync

* Cleanup

* Remove unrelated change

* Follow up comments

* Rebase and improve contructor

* Improve name

* Rename to MULTIPLE_INTEGRATION_CONFIG_ERRORS
2024-03-25 10:39:30 +01:00
Marc Mueller a58049554d Update pytest-asyncio to 0.23.6 (#114155) 2024-03-25 10:10:37 +01:00
Robert Resch c8948e3b1c Use uv and sort jobs in builder.yml (#114153) 2024-03-25 09:50:06 +01:00
Marc Mueller 04bc31a799 Update pre-commit to 3.7.0 (#114154) 2024-03-25 09:35:27 +01:00
Emanuel Winblad 8f0f8f9469 Bump vilfo-api-client to 0.5.0 (#114082) 2024-03-25 09:00:06 +01:00
dependabot[bot] 5c0888ba28 Bump Wandalen/wretry.action from 2.0.0 to 2.1.0 (#114150) 2024-03-25 08:56:33 +01:00
dependabot[bot] aa1179ccc4 Bump github/codeql-action from 3.24.8 to 3.24.9 (#114151) 2024-03-25 08:55:35 +01:00
Christopher Bailey 3e01085c91 Add repair for UniFi Protect if RTSP is disabled on camera (#114088)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-24 17:30:52 -10:00
J. Nick Koston a5128c2148 Covert system_log services to be callbacks (#114143) 2024-03-24 15:55:40 -10:00
J. Nick Koston e8fe3d349b Bump aionut to 4.3.2 (#114142) 2024-03-24 15:55:13 -10:00
Matrix 517826fe48 Bump yolink-api to 0.4.1 fix water depth sensor error when device is not initialize (#113994) 2024-03-24 15:37:39 -10:00
J. Nick Koston 04b3049a7b Bump aionut to 4.2.1 (#114132) 2024-03-24 12:57:58 -10:00
Yuxin Wang 76052a5385 Implement diagnostics platform for APCUPSD (#112284)
* Implement diagnostic platform for APCUPSd

* Put APCUPSd in gold quality scale

* Revert quality scale update

* Use snapshot testing for apcupsd

* Prettify the code
2024-03-24 23:40:41 +01:00
J. Nick Koston 17378ce408 Bump aionut to 4.1.0 (#114125)
Handles auth errors after the password has been sent
This means we will be able to have some decent error
reporting and reauth support in the future

changelog: https://github.com/bdraco/aionut/compare/v4.0.0...v4.1.0
2024-03-24 20:50:32 +01:00
J. Nick Koston d0dc820ced Cancel config entry setup retry at shutdown (#114124) 2024-03-24 09:09:24 -10:00
Jan Bouwhuis c94d8c541b Fix google assistant diagnostics test (#114111)
Improve google assistant diagnostics test
2024-03-24 19:05:47 +01:00
Marc Mueller d779333bef Use TypeVarTuple for add_job and run_job methods (#114122) 2024-03-24 18:52:39 +01:00
Jan Bouwhuis 67ab49b825 Fetch ServiceNotFound message from translation cache and fix super (#114084)
* Fetch ServiceNotFound message from translation cache and fix super

* Fix tests trace component

* Fix script errors
2024-03-24 07:41:13 -10:00
J. Nick Koston 6371b344b9 Ensure discovery can setup legacy device tracker platforms (#114101) 2024-03-24 07:38:05 -10:00
Ernst Klamer c5893f22bf Bump xiaomi-ble to 0.28.0 (#114120) 2024-03-24 07:37:25 -10:00
Marc Mueller 11faf4adcb Replace if in range check (#114107) 2024-03-24 15:20:00 +01:00
Lars Stegman 3a3fb95454 Fix launch library translation keys (#114093)
Fix translation keys
2024-03-24 15:12:25 +01:00
Niels Perfors db3eeec78c Tado: fix 113982 (#114109)
fix-113982
2024-03-24 13:28:09 +01:00
J. Nick Koston d4b180cf75 Fix flapping device_tracker test_bad_platform test (#114102)
https://github.com/home-assistant/core/actions/runs/8408079861/job/23023835074
2024-03-24 13:23:12 +01:00
Robert Svensson 2e2b40f77e Add reconfigure flow to Axis integration (#114067) 2024-03-24 12:48:19 +01:00
Dave T 579084a21e Add more sensors to aurora_abb_powerone (part 2) (#114097) 2024-03-24 11:04:12 +00:00
Floris272 d14a442ac3 Improve blue current integration code (#114004) 2024-03-23 22:35:53 -10:00
Brett Adams ba5a4a17c4 Add vehicle config to coordinator to fix bug in Teslemetry (#113850) 2024-03-23 22:29:10 -10:00
MarkGodwin 925efe0a92 Bump tplink_omada to 1.3.12 for ER7212PC support (#114077) 2024-03-23 22:27:54 -10:00
Allen Porter 2f84183ccd Bump gcal-sync to 6.0.4 (#114085) 2024-03-23 22:24:44 -10:00
J. Nick Koston e8cb6a8e29 Optimize loading of translations (#114089) 2024-03-23 22:22:09 -10:00
J. Nick Koston de831b6e87 Small performance improvement to template expand (#114086)
* Small performance improvement to template expand

- Avoid fetching entity sources each loop
- Skip already found entities
- Avoid startswith in favor of equality check

* unneeded changes
2024-03-24 00:24:52 -04:00
Brett Adams f079c1c236 Allow retry during Config Flow in Advantage Air (#114083) 2024-03-23 12:40:42 -10:00
J. Nick Koston 4ac439ef88 Migrate nut to use aionut (#114078) 2024-03-23 12:02:02 -10:00
G Johansson d4f158d079 Add reconfigure step to holiday (#114057) 2024-03-23 22:55:05 +01:00
Dave T c82c295eed Add more sensors to aurora_abb_powerone (#114074) 2024-03-23 21:52:22 +00:00
J. Nick Koston 1c1d8d0317 Avoid creating inner function in EntityComponent setup (#114050) 2024-03-23 11:31:23 -10:00
Robert Svensson 4e03d9cd47 Centralize loading Axis entities (#114018)
Centralize platform loading
2024-03-23 21:52:00 +01:00
Shay Levy ef3ab54f1d Fix Shelly WallDisplay device power (#114071) 2024-03-23 22:44:53 +02:00
Joost Lekkerkerker ce12d45b50 Catch Mill timeout error (#114068)
* Catch Mill timeout error

* Catch Mill timeout error

* Catch Mill timeout error
2024-03-23 20:57:22 +01:00
J. Nick Koston 82016ff528 Refactor recorder states tests (#114073)
https://github.com/home-assistant/core/pull/113985#discussion_r1536596573
2024-03-23 15:41:12 -04:00
J. Nick Koston 4f18f0d902 Fix setup timings when config entry platform loads are not awaited (#113959)
* Move setup time logging into the context manager

We were fetching the time twice but since the context
manager already has the timing, move it there

* remove log setup assertions from integration test

* tweak logging to give us better data for tracking issues

* redundant

* adjust

* preen

* fixes

* adjust

* make api change internal so nobody uses it

* coverage

* fix test

* fix more tests

* coverage

* more tests assuming internal calls

* fix more

* adjust

* adjust

* fix axis tests

* fix broadlink -- it does not call async_forward_entry_setup

* missed some

* remove useless patch

* rename, detect it both ways

* clear

* debug

* try to fix

* handle phase finishing out while paused

* where its set does not need to know its late as that is an implemenation detail of setup

* where its set does not need to know its late as that is an implemenation detail of setup

* tweak

* simplify

* reduce complexity

* revert order change as it makes review harder

* revert naming changes as it makes review harder

* improve comment

* improve debug

* late dispatch test

* test the other way as well

* Update setup.py

* Update setup.py

* Update setup.py

* simplify

* reduce
2024-03-23 15:26:38 -04:00
Jan Bouwhuis a4f52cc622 Use a constant to reference homeassistant domain (#113889)
* Use CONF_CORE to reference `homeassistant` domain

* Just use DOMAIN

* USE DOMAIN for `homeasistant` domain in config_schema.py

* Use DOMAIN_HA as constant for homeassistant domain

* Rename CONF_CORE to DOMAIN_HA

* Rename DOMAIN_HA to HA_DOMAIN

* Use relative import

* Use direct imports
2024-03-23 19:58:39 +01:00
On Freund c661622332 Add Risco system binary sensors (#114062)
* Add Risco system binary sensors

* Remove leading underscore

* Address code review commments
2024-03-23 19:35:12 +01:00
Jiaqi Wu d75315f225 Add Lutron Serena tilt only wood blinds (#113791) 2024-03-23 07:48:24 -10:00
Brian Rogers dbb4cf0ee7 Add Rachio smart hose timer support (#107901)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-23 07:36:03 -10:00
G Johansson 3c13a28357 Bump holidays to 0.45 (#114069) 2024-03-23 17:24:34 +01:00
Greg Dowling 3ec9312f0e Fix bug in roon media player to use correct 'seek position' while playing a track. (#113999)
Chance source of 'seek position' to be the one that roon updates while playing!
2024-03-23 14:53:40 +01:00
On Freund 1a6ff5c2d5 Bump pyrisco to 0.6.0 (#114063) 2024-03-23 14:45:17 +01:00
Mick Vleeshouwer ebda0d832c Enable turn_on / turn_off features for HitachiAirToAirHeatPump in Overkiz (#112990)
Enable turn_on / turn_off features
2024-03-23 14:27:00 +01:00
Robert Resch 8d51ff0f2c Create registry matrix to run publishing for images in parallel (#114060) 2024-03-23 13:29:29 +01:00
Dave T 9451a14e5c Migrate UpdateCoordinator to its own file in aurora_abb_powerone (#114053)
Migrate *UpdateCoordinator to its own file.
2024-03-23 12:30:38 +01:00
J. Nick Koston de62b7774f Reduce sqlalchemy reflection overhead at recorder setup time (#113989) 2024-03-23 11:25:05 +01:00
G Johansson 7b0abb00aa Show correct ipv6 address in System Monitor (#114024) 2024-03-23 11:24:17 +01:00
Robert Resch ce48e6e574 Fix building images for nightlies (#114054) 2024-03-23 11:22:38 +01:00
J. Nick Koston 31fb02a71d Fix after deps not being considered for integrations before stage 1 (#114045) 2024-03-23 11:21:56 +01:00
J. Nick Koston ac80d38871 Fix flakey stream hls test (#114046) 2024-03-23 11:11:42 +01:00
G Johansson ebe6c35b4c Smhi add reconfigure step to config flow (#114044)
* Add reconfigure step to SMHI

* Check location

* Add test

* Add test entity and device
2024-03-23 11:01:59 +01:00
J. Nick Koston 900e0c07bf Load light profiles in a task to avoid delaying platform setup (#114038) 2024-03-23 10:51:03 +01:00
Jeremy TRUFIER 4f22c85e39 Fix missing linked device on Overkiz integration (#114006)
* Fix missing linked device (#112731)

* Update homeassistant/components/overkiz/executor.py

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

---------

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2024-03-23 10:21:20 +01:00
J. Nick Koston 39c44ad5b7 Move setup of legacy device_tracker see service to legacy setup task (#114043)
* Move setup of legacy device_tracker see service to legacy setup task

device_tracker can setup synchronously now if there are no legacy
platforms that have to be import to validate the config

The see service is not useful until at least one legacy platform
is loaded so there is no reason to wait for it in the base
setup.

* collapse
2024-03-23 09:40:34 +01:00
kingy444 c2771791a3 Add Powerview Type 11 (#114047) 2024-03-22 17:09:36 -10:00
J. Nick Koston 952f47ab18 Combine recorder and frontend bootstrap step (#113985) 2024-03-22 13:50:39 -10:00
Robert Svensson bf8d880e5f Improve axis tests (#114035)
* Combine binary sensor tests into more logical groups

* Improve light tests

* Clean up switch tests

* Improve typing in conftest

* Add typing to camera

* Improve binary sensor

* Improve light

* Improve switch
2024-03-23 00:44:06 +01:00
kingy444 26b6bd83fc Move powerview timeout logic to the upstream api (#113984) 2024-03-22 13:38:33 -10:00
Marc Mueller efc54971d3 Update empty line formatting after module docstring (#114040) 2024-03-23 00:27:57 +01:00
Marc Mueller 1dbc94162d Update byte string formatting (2) (#114039) 2024-03-23 00:22:15 +01:00
Marc Mueller 596ddbb6eb Update pytest warnings filter (#114036) 2024-03-22 23:58:27 +01:00
alexsydell 9e86f82a1b Add ecobee indefinite away preset, remove unusable/broken presets (#108636)
* Add ecobee indefinite away preset, remove unusable/broken presets

* Revert cleanup of presets which no longer work
2024-03-22 22:45:54 +01:00
Robert Svensson d3c68303b0 Improve deCONZ test_non_color_light_reports_color (#114021) 2024-03-22 22:18:22 +01:00
kingy444 7d9fa64a66 Add missing is_closed property to powerview tilt only entities (#113792)
* add tilt closed

* add current positioning
2024-03-22 20:34:00 +01:00
Arie Catsman 205c457a77 Add home battery storage entities for enphase_envoy (#114015) 2024-03-22 08:46:39 -10:00
Robert Svensson 817d931df0 Define and use entity description in Axis entity base class (#114007)
Define and use entity description in entity base class
2024-03-22 13:59:07 -04:00
Franck Nijhof 25909f2ebd 2024.3.3 (#114005) 2024-03-22 18:47:59 +01:00
J. Nick Koston 68e170284f Speed up recorder startup by making schema query read only (#113987) 2024-03-22 18:29:46 +01:00
Robert Svensson bbb80caed3 Tweak marking private methods in UniFi, no need to mark inner functio… (#113964) 2024-03-22 18:10:07 +01:00
Robert Svensson 6800034d5a Rename device to api in Axis integration (#113965) 2024-03-22 18:07:33 +01:00
Robert Svensson 2d2249386e Bump axis to v58 (#114008) 2024-03-22 17:53:17 +01:00
Robert Svensson c6f2ff8e88 Bump axis to v58 (#114008) 2024-03-22 17:52:45 +01:00
Jan-Philipp Benecke cd0c9e1c4f Remove deprecated hass.components from conversation tests and use light setup fixture (#114012) 2024-03-22 17:52:10 +01:00
Jan-Philipp Benecke 01acbc8bba Remove deprecated hass.components from zeroconf tests (#114013) 2024-03-22 17:51:39 +01:00
Jan-Philipp Benecke edc19328c0 Remove deprecated hass.components from scene tests (#114014) 2024-03-22 17:48:53 +01:00
Jan-Philipp Benecke 08529b3806 Remove deprecated hass.components from frontend tests (#114011) 2024-03-22 17:35:43 +01:00
Robert Resch c282172252 Use uv instead of pip on production images (#112496) 2024-03-22 16:50:07 +01:00
Duco Sebel cad3be8213 Add new HomeWizard Energy Socket to tests (#113406) 2024-03-22 16:48:27 +01:00
Franck Nijhof 32b4814f2a Bump version to 2024.3.3 2024-03-22 16:35:21 +01:00
Franck Nijhof d1644f3713 Update cosign to 2.2.3 (#113996) 2024-03-22 16:35:05 +01:00
G Johansson 7df0d3b140 Remove hourly weather entity from NWS (#112503) 2024-03-22 16:32:29 +01:00
G Johansson 4fb11dc4f3 Remove hourly weather entity from Aemet (#110764) 2024-03-22 16:31:43 +01:00
Duco Sebel 48553ece68 Remember entered IP when error happend while setting up HomeWizard (#113815) 2024-03-22 16:10:03 +01:00
Robert Svensson a9e857202d Axis use entity descripton binary sensor platform (#113705) 2024-03-22 15:49:51 +01:00
Federico D'Amico 5b6361080c Add cover platform to microBees (#111135) 2024-03-22 14:31:09 +01:00
Aarni Koskela 29cdac381c Add reformatting commits to .git-blame-ignore-revs (#110481) 2024-03-22 14:29:49 +01:00
Joost Lekkerkerker 8aa6447a4f Add icon translations to Wiz (#112358) 2024-03-22 14:04:13 +01:00
Federico D'Amico aae85edb73 Add binary sensor platform to microBees (#111190) 2024-03-22 14:01:36 +01:00
Massimo Savazzi 16283aad49 Update JVC Projector polling time to be more responsive for automations (#113765) 2024-03-22 14:00:10 +01:00
Jan Bouwhuis 9ca253213c Correct HomeAssistantError __str__ implementation and test (#113991)
Correct HomeAssistant sub class implementation and test
2024-03-22 13:39:36 +01:00
Franck Nijhof ee2e98b475 Update cosign to 2.2.3 (#113996) 2024-03-22 13:27:06 +01:00
Joakim Sørensen a2143a7c1a Return default repairs flow for cloud TTS issues (#113981)
* Set TTS repairs as not fixable

* Return default confirm flow for fixable cloud issues

* Depend on repairs

* Test default repair flow

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-22 11:20:47 +01:00
Paulus Schoutsen 7b431a91b3 2024.3.2 - fix (#113978) 2024-03-21 22:35:16 -04:00
dependabot[bot] 93289c9f09 Bump home-assistant/builder from 2024.01.0 to 2024.03.5 (#113887)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 22:20:49 -04:00
J. Nick Koston abb217086f Group wemo platform forwards to reduce overhead (#113972) 2024-03-21 21:59:50 -04:00
Paulus Schoutsen f10d924e8b 2024.3.2 (#113973)
* Streamline Notion config entry updates (refresh token and user ID) (#112832)

* Bump aioautomower to 2024.3.2 (#113162)

* Bump aioautomower to 2024.3.3 (#113430)

* Check for EA release channel for UniFi Protect (#113432)

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

* Bump `pysnmp-lextudio` to version `6.0.11` (#113463)

* Tado fix water heater (#113464)

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

* Bump aiodhcpwatcher to 0.8.2 (#113466)

* Bump axis to v55 (#113479)

* Bump croniter to 2.0.2 (#113494)

* Revert setting communication delay in Risco init (#113497)

* Bump pyrisco to 0.5.10 (#113505)

* Fix missing context when running script from template entity (#113523)

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

* Bump ical to 7.0.3 to fix local-todo persisted with invalid DTSTART values (#113526)

* Fix Airthings BLE illuminance sensor name (#113560)

* Ignore Shelly block update with cfgChanged None (#113587)

* Catch `TimeoutError` in `Brother` config flow (#113593)

* Catch TimeoutError in Brother config flow

* Update tests

* Remove unnecessary parentheses

---------

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

* Bump axis to v56 (#113608)

* Bump pyunifiprotect to 5.0.1 (#113630)

* Bump pyunifiprotect to 5.0.2 (#113651)

* Add removal condition to Shelly battery sensor (#113703)

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

* Bump aioraven to 0.5.2 (#113714)

* Fix unknown values in onewire (#113731)

* Fix unknown values in onewire

* Update tests

* Bump pymodbus v3.6.6 (#113796)

* Catch API errors in cast media_player service handlers (#113839)

* Catch API errors in cast media_player service handlers

* Remove left over debug code

* Fix wrapping of coroutine function with api_error

* Bump pychromecast to 14.0.1 (#113841)

* Fix startup race in cast (#113843)

* Redact the area of traccar server geofences (#113861)

* Bump pytedee_async to 0.2.17 (#113933)

* Bump axis to v57 (#113952)

* Bump version to 2024.3.2

---------

Co-authored-by: Aaron Bach <bachya1208@gmail.com>
Co-authored-by: Thomas55555 <59625598+Thomas55555@users.noreply.github.com>
Co-authored-by: Christopher Bailey <cbailey@mort.is>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Lex Li <425130+lextm@users.noreply.github.com>
Co-authored-by: Erwin Douna <e.douna@gmail.com>
Co-authored-by: Joostlek <joostlek@outlook.com>
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
Co-authored-by: Diogo Gomes <diogogomes@gmail.com>
Co-authored-by: On Freund <onfreund@gmail.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Allen Porter <allen@thebends.org>
Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
Co-authored-by: Scott K Logan <logans@cottsay.net>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: jan iversen <jancasacondor@gmail.com>
Co-authored-by: Joakim Sørensen <ludeeus@ludeeus.dev>
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
2024-03-21 21:57:36 -04:00
Erik Montnemery 79f2eaaf41 Deprecate the panel_iframe integration (#113410)
* Deprecate the panel_iframe integration

* Address review comments

* Customize issue text

* Update test
2024-03-22 02:48:52 +01:00
J. Nick Koston 5b9f40b0f0 Pre import mobile app platforms to avoid having to wait on them (#113966) 2024-03-22 02:40:15 +01:00
Paul Chanvin b2cab70cc0 Fix argument name in async_update_ha_state warning message (#113969)
Fixed warning message using async_update_ha_state
2024-03-22 02:26:11 +01:00
Paulus Schoutsen 91bb321d8f Bump version to 2024.3.2 2024-03-21 20:25:19 -04:00
Robert Svensson 19ef92735c Bump axis to v57 (#113952) 2024-03-21 20:25:11 -04:00
Josef Zweck 6c274abc50 Bump pytedee_async to 0.2.17 (#113933) 2024-03-21 20:25:10 -04:00
Joakim Sørensen 1e57f52ba2 Redact the area of traccar server geofences (#113861) 2024-03-21 20:25:09 -04:00
Erik Montnemery 8056886c66 Fix startup race in cast (#113843) 2024-03-21 20:25:08 -04:00
Erik Montnemery 14c4cdc089 Bump pychromecast to 14.0.1 (#113841) 2024-03-21 20:25:07 -04:00
Erik Montnemery 4132a3d2ea Catch API errors in cast media_player service handlers (#113839)
* Catch API errors in cast media_player service handlers

* Remove left over debug code

* Fix wrapping of coroutine function with api_error
2024-03-21 20:25:07 -04:00
jan iversen d67cd2af0c Bump pymodbus v3.6.6 (#113796) 2024-03-21 20:25:06 -04:00
epenet 33678ff5a4 Fix unknown values in onewire (#113731)
* Fix unknown values in onewire

* Update tests
2024-03-21 20:25:05 -04:00
Scott K Logan 6859bae0b1 Bump aioraven to 0.5.2 (#113714) 2024-03-21 20:25:04 -04:00
Maciej Bieniek 368586c9d1 Add removal condition to Shelly battery sensor (#113703)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-03-21 20:25:03 -04:00
Christopher Bailey eb8a8424a5 Bump pyunifiprotect to 5.0.2 (#113651) 2024-03-21 20:25:03 -04:00
Christopher Bailey 686487e59c Bump pyunifiprotect to 5.0.1 (#113630) 2024-03-21 20:25:02 -04:00
Robert Svensson fa9f5bd647 Bump axis to v56 (#113608) 2024-03-21 20:25:00 -04:00
Maciej Bieniek 2e2d303291 Catch TimeoutError in Brother config flow (#113593)
* Catch TimeoutError in Brother config flow

* Update tests

* Remove unnecessary parentheses

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-03-21 20:24:59 -04:00
Shay Levy 0a64ae2f7a Ignore Shelly block update with cfgChanged None (#113587) 2024-03-21 20:24:58 -04:00
Joost Lekkerkerker a7908d8250 Fix Airthings BLE illuminance sensor name (#113560) 2024-03-21 20:24:58 -04:00
Allen Porter 4a620e015f Bump ical to 7.0.3 to fix local-todo persisted with invalid DTSTART values (#113526) 2024-03-21 20:24:57 -04:00
Erik Montnemery d5864a40a8 Fix missing context when running script from template entity (#113523)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-21 20:24:56 -04:00
On Freund 05b900321b Bump pyrisco to 0.5.10 (#113505) 2024-03-21 20:24:55 -04:00
On Freund 5163b5f888 Revert setting communication delay in Risco init (#113497) 2024-03-21 20:24:27 -04:00
Diogo Gomes 8bae8fdd75 Bump croniter to 2.0.2 (#113494) 2024-03-21 20:22:08 -04:00
Robert Svensson de966b0eb1 Bump axis to v55 (#113479) 2024-03-21 20:22:07 -04:00
J. Nick Koston 099c228169 Bump aiodhcpwatcher to 0.8.2 (#113466) 2024-03-21 20:21:32 -04:00
Erwin Douna a5994d1d5f Tado fix water heater (#113464)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-03-21 20:16:26 -04:00
Lex Li 26b26a3b1f Bump pysnmp-lextudio to version 6.0.11 (#113463) 2024-03-21 20:16:25 -04:00
Christopher Bailey 273d01c0f4 Check for EA release channel for UniFi Protect (#113432)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-21 20:16:24 -04:00
Thomas55555 a167b0acaf Bump aioautomower to 2024.3.3 (#113430) 2024-03-21 20:16:23 -04:00
Thomas55555 8b00229868 Bump aioautomower to 2024.3.2 (#113162) 2024-03-21 20:15:49 -04:00
Aaron Bach 10fc40e415 Streamline Notion config entry updates (refresh token and user ID) (#112832) 2024-03-21 20:10:42 -04:00
Arie Catsman 5f5d40ed52 Bump pyenphase to 1.20.0 (#113963) 2024-03-21 13:56:31 -10:00
Jan Bouwhuis 4da701a8e9 Add guard to HomeAssistantError __str__ method to prevent a recursive loop (#113913)
* Add guard to HomeAssistantError `__str__` method to prevent a recursive loop

* Use repr of class instance instead

* Apply suggestion to explain __str__ method is missing

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-21 23:12:25 +01:00
Dave T a6d98c1857 Improve user error messages for generic camera (#112814)
* Generic camera: Insufficient error message when configuration fails
Fixes #112279

* Add tests

* Fix typo in string

* Add new error strings to options flow.

* Group and improve error strings following PR review
2024-03-21 21:54:45 +00:00
Robert Svensson 0c791051b8 Bump axis to v57 (#113952) 2024-03-21 21:42:42 +01:00
J. Nick Koston 9a863638f6 Avoid writing HomeKit state to disk unless its missing (#111970) 2024-03-21 09:19:55 -10:00
J. Nick Koston d0708b5b32 Fix grammar in async_get_platform comment (#113948)
https://github.com/home-assistant/core/pull/113917#pullrequestreview-1951203739
2024-03-21 15:10:47 -04:00
Shay Levy 63275d61a5 Add Shelly RGB/RGBW profiles support (#113808)
* Add Shelly RGB/RGBW profiles support

* Update homeassistant/components/shelly/light.py

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

* Use walrus in rgbw_key_ids

* Use walrus in light_key_ids

---------

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2024-03-21 21:04:50 +02:00
Simone Chemelli 8728057b1b Add support for Shelly RPC devices custom TCP port (#110860)
* First coding

* add port to config_entry + gen1 not supported msg

* fix async_step_credentials

* strings

* fix reauth

* fix visit device link

* increased MINOR_VERSION

* apply review comments

* align to latest aioshelly

* missing tests

* introduce port parameter

* update tests

* remove leftover

* remove "port" data_description key

* missing key

* apply review comments

* apply more review comments

* Add tests

* apply review comment

* apply review comment (part 2)

* description update

* fine tuning description

* fix test patching

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-03-21 19:58:56 +01:00
J. Nick Koston 8141a246b0 Remove unrelated patching from scrape test (#113951)
https://github.com/home-assistant/core/pull/105516#discussion_r1534459365

The fixture already is designed to go unavailable on the 3rd update
2024-03-21 19:54:24 +01:00
Thomas55555 63221356f6 Add select platform to Husqvarna Automower (#113816)
* Add select platform to Husqvarna Automower

* docstring

* address review

* pin headlight_modes list

* Apply suggestions from code review

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

* Apply review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-21 17:07:09 +01:00
Josef Zweck b4c36d4676 Bump pytedee_async to 0.2.17 (#113933) 2024-03-21 15:27:51 +01:00
G Johansson 9289fa23a1 Add availability to Scrape config flow (#105516) 2024-03-21 13:13:25 +01:00
Josef Zweck e5fa6f0176 Add Bluetooth support to La Marzocco integration (#108287)
* init

* init tests

* linting

* checks

* tests, linting

* pylint

* add tests

* switch tests

* add water heater tests

* change icons

* extra args cleanup

* moar tests

* services tests

* remove extra platforms

* test for unique id

* back to single instance

* add diagnostics

* remove extra platforms

* test for unique id

* back to single instance

* Add better connection management for Idasen Desk (#102135)

* Return 'None' for light attributes when off instead of removing them (#101946)

* Bump home-assistant-bluetooth to 1.10.4 (#102268)

* Bump orjson to 3.9.9 (#102267)

* Bump opower to 0.0.37 (#102265)

* Bump Python-Roborock to 0.35.0 (#102275)

* Add CodeQL CI Job (#102273)

* Remove unused dsmr sensors (#102223)

* rebase messed up conftest

* more tests for init

* add client to coveragerc

* add client to coveragerc

* next lmcloud version

* strict typing

* more typing

* allow multiple machines

* remove unneeded var

* Update homeassistant/components/lamarzocco/coordinator.py

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

* Update homeassistant/components/lamarzocco/diagnostics.py

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

* Update homeassistant/components/lamarzocco/__init__.py

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

* PR suggestions

* remove base exception

* Update manifest.json

* update lmcloud

* update lmcloud

* remove ignore

* selection bugfix for machines with space in name

* bugfix temps

* add options flow

* send out full user input

* remove options flow

* split the tests to avoid timeouts

* use selectoptionsdict for selection

* removing rccoleman

* improve test coverage to 100%

* Update config_flow.py

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

* Update config_flow.py

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

* Update config_flow.py

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

* autoselect cloud machine for discovered machine

* move default values to 3rd party lib

* bring property changes from lmcloud

* moving things to lmcloud

* move validation to method

* move more things to lmcloud

* remove unused const

* Update homeassistant/components/lamarzocco/coordinator.py

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

* Update homeassistant/components/lamarzocco/coordinator.py

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

* Update homeassistant/components/lamarzocco/__init__.py

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

* Update homeassistant/components/lamarzocco/__init__.py

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

* remove callback from coordinator

* remove waterheater, add switch

* improvement to background task

* next lmcloud

* adapt to lib changes

* Update homeassistant/components/lamarzocco/strings.json

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

* Update homeassistant/components/lamarzocco/entity.py

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

* Update homeassistant/components/lamarzocco/entity.py

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

* Update homeassistant/components/lamarzocco/switch.py

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

* Update homeassistant/components/lamarzocco/switch.py

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

* Update homeassistant/components/lamarzocco/entity.py

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

* Update homeassistant/components/lamarzocco/strings.json

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

* requested changes

* Update homeassistant/components/lamarzocco/switch.py

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

* Update homeassistant/components/lamarzocco/entity.py

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

* Update tests/components/lamarzocco/test_config_flow.py

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

* Update tests/components/lamarzocco/test_config_flow.py

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

* some requested changes

* changes

* requested changes

* move steam boiler to controls

* fix: remove entities from GS3MP model + tests

* remove dataclass decorator

* next lmcloud version

* improvements

* move reauth to user step

* improve config flow

* remove asserts in favor of runtimeerrors

* undo conftest comment

* make duc return none

* Update homeassistant/components/lamarzocco/switch.py

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

* Update homeassistant/components/lamarzocco/entity.py

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

* Update homeassistant/components/lamarzocco/config_flow.py

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

* remove diagnostics, changes

* refine config flow

* remove runtimeerrors in favor of asserts

* move initialization of lm_client to coordinator

* remove things from lmclient

* remove lm_client

* remove lm_client

* bump lm version

* correctly set initialized for tests

* move exception handling inside init + tests

* add test for switch without bluetooth on

* bump lmcloud

* pass httpx client to LMLocalAPI

* add call function to reduce code

* switch to snapshot testing

* remove bluetooth

* bump version

* cleanup import

* remove unused const

* set correct integration_type

* correct default selection in CF

* reduce unnecessary tests by fixture change

* use other json loads helpers

* move prebrew/infusion to select entity

* bump lmcloud

* Update coordinator.py

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

* Update coordinator.py

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

* Update coordinator.py

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

* Update entity.py

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

* Update entity.py

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

* requested feedback

* step description, bump lmcloud

* create init integration functino

* revert

* ruff

* remove leftover BT test

* make main switch main entity

* bump lmcloud

* re-add bluetooth

* improve

* bump firmware (again)

* correct test

* Update homeassistant/components/lamarzocco/coordinator.py

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

* Update homeassistant/components/lamarzocco/entity.py

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

* Update homeassistant/components/lamarzocco/strings.json

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

* separate device test

* add BT to entites

* fix import

* docstring

* minor

* fix rebase

* get device from discovered devices

* tweak

* change tests

* switch to dict

* switch to options

* fix

* fix

---------

Co-authored-by: Abílio Costa <abmantis@users.noreply.github.com>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: tronikos <tronikos@users.noreply.github.com>
Co-authored-by: Luke Lashley <conway220@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: dupondje <jean-louis@dupond.be>
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-21 13:08:11 +01:00
Jan-Philipp Benecke e23943debf Remove deprecated hass.components from flux switch tests and use fixture (#113875) 2024-03-21 11:44:05 +01:00
dependabot[bot] ccfe0ba036 Bump Wandalen/wretry.action from 1.4.10 to 2.0.0 (#113888)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-21 11:43:11 +01:00
starkillerOG cd934c21f9 Add Reolink hdd/sd card storage sensor (#110961) 2024-03-21 11:41:32 +01:00
Erik Montnemery 25fe74aec5 Remove AUX heating from demo climate (#113929) 2024-03-21 11:35:27 +01:00
Ingmar Delsink 67a14d0463 Add transmission-integration path and protocol (#104334)
This updates the config_flow migration from v1.1 to v1.2
including migration tests
2024-03-21 11:05:36 +01:00
Jan-Philipp Benecke ff6812a798 Split light fixture from implementation to only import when fixture is actually used (#113892)
* Split light fixture from implementation to only import when fixture is actually used

* Non-local import
2024-03-21 10:49:32 +01:00
jan iversen e1897906cc modbus: Remove PARALLEL_UPDATES from base_platform (#113928)
Remove PARALLEL_UPDATES from base_platform.
2024-03-21 10:43:58 +01:00
Thomas55555 80c8b94021 Add diagnostics to Husqvarna Automower (#111857) 2024-03-21 10:06:40 +01:00
jan iversen 59c4c85089 Upgrade Modbus quality scale to platinum (#113482)
Quality scale: Platinum.
2024-03-21 09:49:37 +01:00
Sid 8e1f57f663 Enable Ruff PT023, disable PT011, PT012, PT018 (#113900)
* Enable Ruff PT023

* Set mark parantheses to False

* Disable PT011, PT012, PT018
2024-03-21 09:43:27 +01:00
J. Nick Koston 3b66328591 Add a fast path for async_get_platform (#113917) 2024-03-21 09:34:33 +01:00
J. Nick Koston f662e7e3cf Only calculate native value once per update in systemmonitor (#113921) 2024-03-21 09:33:36 +01:00
J. Nick Koston 0b0d3a2091 Add run_immediately to the trace stop listener (#113922) 2024-03-21 09:32:43 +01:00
J. Nick Koston 7758f41c5a Load system info with base functionality (#113923) 2024-03-21 09:24:39 +01:00
Jan Bouwhuis dc38d152df Fetch ServiceNotFound message from translation cache (#113893) 2024-03-21 06:54:29 +01:00
Jan Bouwhuis 8edbf88da1 Fetch MaxLengthExceeded exception mesage from the translation cache (#113904)
* Fetch MaxLengthExceeded exception mesage from the translation cache

* Update homeassistant/components/homeassistant/strings.json

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

* Add case without homeassistant integration

* Fix test

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-21 06:53:26 +01:00
Jesse Hills 6ddef7bbff ESPHome: Add Time Entity support (#113852) 2024-03-21 16:59:43 +13:00
J. Nick Koston aebc95b1d2 Reduce overhead to construct and validate entity service schema (#113920) 2024-03-20 16:07:17 -10:00
J. Nick Koston e015fd2440 Use intersection for determine_script_action (#113915) 2024-03-20 16:06:59 -10:00
J. Nick Koston b574220247 Refactor rate limit helper to track time in seconds (#113898)
* Refactor rate limit helper to track time in seconds

Currently we created datetime and timedelta objects to enforce the
rate limit. When the rate limit was being hit hard, this got expensive.

We now use floats everywhere instead as they are much cheaper which
is important when we are running up against a rate limit, which is
by definition a hot path

The rate limit helper is currently only used for templates and
we do not have any code in the code base that directly passes
in a rate limit so the impact to custom components is expected
to be negligible if any

* misesd two
2024-03-20 19:49:37 -04:00
J. Nick Koston b311fe2a0f Reduce overhead to clear cache in button state (#113895)
Same optimization as #113136
2024-03-20 19:41:24 -04:00
J. Nick Koston 1e54595084 Use faster time compare in history and live logbook (#113897) 2024-03-20 19:40:23 -04:00
J. Nick Koston e9c1753f3a Cache parsing the url for the device registry (#113910)
* Cache parsing the url for the device registry

There are lots of hub integrations that use the same url for every
sub-device which results in a lot of url parsing at startup. The
logic can be simplified quite a bit here by only using yarl
for URLs

* fix onvif
2024-03-20 19:35:01 -04:00
J. Nick Koston 267fe3dc34 Fix system_info importing hassio in the event loop (#113903) 2024-03-20 12:06:40 -10:00
J. Nick Koston ac175a4240 Fix flakey test_reading_yaml_config test (#113902) 2024-03-20 10:39:31 -10:00
J. Nick Koston cf8455336c Small cleanup to unifiprotect subscriptions (#113901) 2024-03-20 10:09:42 -10:00
Erik Montnemery 426f73b1f4 Add State.last_reported (#113511)
* Add State.last_reported

* Update tests

* Update test snapshots

* Call state_reported listeners when firing state_changed event

* Add tests
2024-03-20 21:05:07 +01:00
J. Nick Koston e74791083e Fix duplicate events in live history (#113896) 2024-03-20 20:14:17 +01:00
dependabot[bot] dfbfdf781e Bump home-assistant/builder from 2024.01.0 to 2024.03.5 (#113887)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-20 20:13:44 +01:00
uchagani 15ac81aae9 Bump islamic_prayer_times to 0.0.12 (#113744) 2024-03-20 17:06:57 +01:00
Simone Chemelli bd2ee161f3 Bump aioshelly to 8.2.0 (#113886)
aioshelly bump to 8.2.0
2024-03-20 17:06:16 +01:00
Matrix 3b0ac469d4 YoLink fix cover incorrect state (#104975)
* Fix cover incorrect state

* Change entity to unavailable
2024-03-20 16:45:21 +01:00
Joost Lekkerkerker 0e7e1cb34f Remove obsolete issue strings in WAQI (#113884) 2024-03-20 16:17:12 +01:00
Joakim Sørensen 83cf59e6a8 Provide better debug capabilities for the Traccar Server integration (#113868) 2024-03-20 15:40:46 +01:00
Martin Hjelmare c5f6925948 Add matter device serial number (#113878) 2024-03-20 15:31:48 +01:00
Erik Montnemery afa9517716 Catch API errors in cast media_player service handlers (#113839)
* Catch API errors in cast media_player service handlers

* Remove left over debug code

* Fix wrapping of coroutine function with api_error
2024-03-20 13:10:35 +01:00
Paul Bottein eafb4190ef Change quotes in cloud translations (#113871)
* Escape quote in cloud translations

* Update homeassistant/components/cloud/strings.json

Co-authored-by: Joakim Sørensen <ludeeus@ludeeus.dev>

* Update homeassistant/components/cloud/strings.json

Co-authored-by: Joakim Sørensen <ludeeus@ludeeus.dev>

* Update homeassistant/components/cloud/strings.json

---------

Co-authored-by: Joakim Sørensen <ludeeus@ludeeus.dev>
2024-03-20 07:35:34 -04:00
Jonathan Sider dc9f0a55a6 Update Amcrest services.yaml (#111161) 2024-03-20 11:59:44 +01:00
Alin Balutoiu f8de214560 Make temperature a required parameter for tado climate service (#113872)
Make temperature a required parameter
2024-03-20 11:59:13 +01:00
Franck Nijhof fc6a83559f Add floor template functions (#110847) 2024-03-20 11:58:04 +01:00
Henning Claßen 25be71e05b Bump numato-gpio to v0.13.0 (#113182) 2024-03-20 11:42:01 +01:00
Erwin Douna 42873cacf5 Tado fix water heater (#113464)
Co-authored-by: Joostlek <joostlek@outlook.com>
2024-03-20 11:29:15 +01:00
Floris272 249f708071 Bump bluecurrent-api to 1.2.2 (#110483) 2024-03-20 11:28:27 +01:00
Scott K Logan 6552e12161 Bump aioraven to 0.5.2 (#113714) 2024-03-20 10:57:37 +01:00
Joost Lekkerkerker d2663347e9 Remove Amcrest camera unique id migration (#113870) 2024-03-20 10:36:02 +01:00
Martin Hjelmare ac008a4c6d Deprecate cloud tts gender (#112256)
* Deprecate cloud tts gender option

* Update http api and prefs

* Test migration of prefs to minor version 4

* Adjust breaking date

* Add test for bad voice in http api

* Flatten tts info

* Fix comments

* Fix comment date

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

* Clarify voice validator

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-20 09:42:40 +01:00
Erik Montnemery d31124d5d4 Avoid creating unneeded Context and Event objects when firing events (#113798)
* Avoid creating unneeded Context and Event objects when firing events

* Add test

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-20 09:40:06 +01:00
Jan-Philipp Benecke 638020f168 Remove deprecated hass.components from group light tests and use fixture (#113862) 2024-03-20 08:45:50 +01:00
J. Nick Koston c5eacf55c2 Fix flapping stream hls test (#113858) 2024-03-20 08:27:05 +01:00
Joakim Sørensen 96694878fb Redact the area of traccar server geofences (#113861) 2024-03-20 08:23:16 +01:00
J. Nick Koston fff590d738 Fix flapping device tracker test (#113859)
seen in https://github.com/home-assistant/core/actions/runs/8353028595/job/22864148890?pr=113854
2024-03-20 07:21:26 +01:00
Joost Lekkerkerker 23353812a9 Add icon translations to Github (#111614)
* Add icon translations to Github

* Fix
2024-03-20 07:06:34 +01:00
Jesse Hills 510e7ccf76 Bump aioesphomeapi to 23.2.0 (#113854) 2024-03-19 19:40:09 -10:00
J. Nick Koston 06f356a038 Avoid expensive db queries at startup to check if data is migrated (#113773) 2024-03-19 15:27:40 -10:00
J. Nick Koston 417b491b78 Reduce overhead to write dlna_dmr state (#113776)
* Reduce overhead to write dlna_dmr state

- Only update supported_features once per state write cycle
- Use a dict lookup for state

* useless dispatch

* fix tests

* remove unreachable code
2024-03-19 21:13:34 -04:00
Jessica Smith 02c1088596 Upgrade whirlpool integration to add shared appliances and allow brand selection (#111687)
* update to 1.18.5 and add Brand to config, required for getting shared appliances

* update version to 0.18.6

* start fixing tests

* fix typo

* check for falsy values instead of explicit None

* move CONF_BRAND from global constants to whirlpool constants

* add test for no brand, fix __init__ import

* add brand to string.json

* add brand to re-auth

* add title/description, add brand info to description

* add reauth strings

* pass already initialized data dict

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

* remove trailing comma

* Update strings again

* fix reauth tests to add brand

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-20 02:02:45 +01:00
Marc Mueller 9a38f0de0b Update actions/cache to 4.0.2 (#113817) 2024-03-20 01:16:21 +01:00
Jan-Philipp Benecke 9add4aea70 Remove deprecated hass.components from vilfo config flow tests (#113821) 2024-03-20 01:13:05 +01:00
Jan-Philipp Benecke 685468d845 Use mock_platform for light entity component tests instead of hass.components (#113845)
* Use `mock_platform` for light entity component tests instead of `hass.components`

* Move pytest_plugins to top

* Fix comment
2024-03-20 01:09:48 +01:00
J. Nick Koston 7b67a486bd Migrate legacy device_tracker shutdown to use run_immediately (#113835)
A call_soon is not needed here
2024-03-19 14:07:57 -10:00
J. Nick Koston b26f0bc488 Only create one executor job to shutdown wemo (#113836)
Currently we created two but the work can be done in a single job
2024-03-19 19:59:37 -04:00
J. Nick Koston ec3db0a6aa Migrate camera listeners to use run_immediately (#113840)
None of these need a call_soon
2024-03-19 19:58:59 -04:00
Erik Montnemery 8a9f69b22a Bump pychromecast to 14.0.1 (#113841) 2024-03-19 11:41:10 -10:00
Erik Montnemery bf21553008 Fix startup race in cast (#113843) 2024-03-19 11:37:29 -10:00
J. Nick Koston 658bef5447 Migrate samsungtv stop to use run_immediately (#113834)
There is no need for a call_soon here
2024-03-19 22:01:23 +01:00
J. Nick Koston 6b5518b2bf Fix template sensor test relying on event bus debug logging (#113842) 2024-03-19 10:44:04 -10:00
J. Nick Koston 879e5bc961 Only wait for import flows in setup of there is a config flow (#113780) 2024-03-19 10:38:27 -10:00
Jan-Philipp Benecke c52ee2a898 Remove deprecated hass.components from person test (#113822) 2024-03-19 22:33:40 +02:00
Jan-Philipp Benecke ff03c9db19 Remove deprecated hass.components from cloud client test (#113820) 2024-03-19 22:33:11 +02:00
Jan-Philipp Benecke f96bb6754b Remove deprecated hass.components from http test (#113823) 2024-03-19 22:32:27 +02:00
J. Nick Koston 32c64855b2 Fix duplicate events in live logbook (#113828) 2024-03-19 09:17:23 -10:00
J. Nick Koston 15c0422837 Fix flakey profiler object growth tests (#113825) 2024-03-19 09:17:12 -10:00
Jan-Philipp Benecke b35b4e8bfd Do not patch asyncio.timeout in govee light local test (#113819) 2024-03-19 18:24:36 +01:00
Åke Strandberg 0fa395556d Revert get_model from myuplink lib (#113811) 2024-03-19 17:27:16 +01:00
Franck Nijhof 670bd97777 Find referenced labels in automations & scripts (#113812) 2024-03-19 16:28:37 +01:00
Thomas55555 ea443af557 Add device_tracker platform for husqvarna_automower (#111403)
* Add device_tracker platform for husqvarna_automower

* ruff

* Add snapshot test

* State test

* Fix description

* ruff

* Optimize some docstrings

* Update homeassistant/components/husqvarna_automower/device_tracker.py

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

* Adress review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-19 15:46:35 +01:00
Thomas55555 3a8494cb88 Add binary sensor platform for Husqvarna Automower (#113248)
* Add binary sensor platform for Husqvarna Automower

* revert changes in sensor.py

* use == instead of is

* remove the parantheses

* Apply suggestions from code review

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

* Docstring

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-19 15:30:30 +01:00
Franck Nijhof 38d0854b70 Find referenced floors in automations & scripts (#113802) 2024-03-19 14:18:53 +01:00
Joost Lekkerkerker 44211dc761 Migrate Harmony to has entity name (#104737)
* Migrate Harmony to has entity name

* Fix tests

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-19 14:02:50 +01:00
Ernst Klamer 6106a66ed8 Bump bthome-ble to 3.8.1 (#113800) 2024-03-19 08:15:57 -04:00
Dave T 318b6e3a8b Allow retries on communication exceptions for Aurora ABB Powerone solar inverter (#104492)
* Allow retries on SerialException, AuroraError

* Add test to verify that retry is occuring

* Fix tests and indents

* Only log to info level for normal on/offline

* Review comment: don't log warning, debug and raise UpdateFailed

* Fix tests
2024-03-19 12:21:32 +01:00
Robert Resch 5230a8a210 Simplify UV install in CI (#113803) 2024-03-19 11:49:15 +01:00
Nalin Mahajan 18ef76a018 Add Room Audio Control to Control4 Integration (#87821)
* Add control4 room based media player (#13)

* update attribute names (#14)

* change to data class and set off to idle (#15)

Co-authored-by: nalin29 <nalin29@github.com>

---------

Co-authored-by: nalin29 <nalin29@github.com>
2024-03-19 11:44:52 +01:00
Erik Montnemery 4381780936 Add WS command cloud/remove_data (#109821) 2024-03-19 10:22:58 +01:00
Franck Nijhof d0b4210de5 Update Home Assistant base image to 2024.03.0 (#113797) 2024-03-19 10:07:13 +01:00
jan iversen c2538d5176 Bump pymodbus v3.6.6 (#113796) 2024-03-19 09:37:36 +01:00
Sid 00ec7f11f0 Enable Ruff rule PT007 (#113764)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-03-19 09:01:07 +01:00
Lucas Mindêllo de Andrade 089a3ab6d7 Bump sunweg to 2.1.1 (#113767) 2024-03-19 08:50:11 +01:00
J. Nick Koston 00f94feec9 Start energy load platform task eagerly (#113778) 2024-03-19 08:44:39 +01:00
J. Nick Koston f51ac30b5a Call async task creation api in apple_tv (#113782) 2024-03-19 08:44:13 +01:00
J. Nick Koston 31a9c9451e Use async api in generic_thermostat to create tasks (#113783) 2024-03-19 08:43:49 +01:00
J. Nick Koston 3bb0d04452 Use async api in yamaha_musiccast to create tasks (#113785) 2024-03-19 08:43:27 +01:00
J. Nick Koston 2f88460b68 Use async api in template weather to create tasks (#113784) 2024-03-19 08:43:14 +01:00
J. Nick Koston d740e4c3d7 Migrate restore_state shutdown to use run_immediately (#113786) 2024-03-19 08:42:49 +01:00
Simone Chemelli ae55e8e1ba Align Comelit climate code to humidifier (#113747) 2024-03-19 08:42:07 +01:00
J. Nick Koston 2582172ad1 Create tasks eagerly with core create_task (#113781) 2024-03-19 08:41:39 +01:00
Joost Lekkerkerker 85e13bdb87 Require an icon for a service (#112373) 2024-03-19 08:29:29 +01:00
dependabot[bot] ed9b5d843c Bump github/codeql-action from 3.24.7 to 3.24.8 (#113789)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 08:27:32 +01:00
dependabot[bot] f680065664 Bump dawidd6/action-download-artifact from 3.1.3 to 3.1.4 (#113788) 2024-03-19 08:15:06 +01:00
J. Nick Koston 8b9a8a33f4 Start live history/logbook with eager tasks (#113779) 2024-03-18 21:00:51 -10:00
J. Nick Koston e3ae66ca64 Bump PyMetno to 0.12.0 (#113777)
changelog: https://github.com/Danielhiversen/pyMetno/releases/tag/0.12.0
2024-03-19 06:57:14 +01:00
J. Nick Koston c615b52840 Refactor integration startup time to show wall clock time (#113707)
* Refactor setup time tracking to exclude time waiting on other operations

We now exclude the import time and th time waiting on
base platforms to setup from the setup times

* tweak

* tweak

* tweak

* tweak

* adjust

* fixes

* fixes

* preen

* preen

* tweak

* tweak

* adjust

* tweak

* reduce

* do not count integrtion platforms against their parent integration

* handle legacy tts platforms

* stt as well

* one more wait

* use the same pattern in all the legacy

* fix tts and stt legacy

* fix

* fix

* reduce

* preen

* entity comp does not wait for platforms

* scene blocks as well

* fix test

* test fixes

* coverage

* coverage

* coverage

* fix test

* Update tests/test_setup.py

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

* Update tests/test_setup.py

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

* Update homeassistant/setup.py

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

* strip

* strip WAIT_PLATFORM_INTEGRATION

* strip WAIT_PLATFORM_INTEGRATION

* strip WAIT_PLATFORM_INTEGRATION

* strip WAIT_PLATFORM_INTEGRATION

* remove complexity

* Apply suggestions from code review

* no longer works that way

* fixes

* fixes

* fixes

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-18 21:45:34 -04:00
J. Nick Koston 9be5f3531f Run websocket shutdown listener with run_immediately (#113727) 2024-03-18 11:59:44 -10:00
Franck Nijhof 167e66d45c Add labels to service target (#113753) 2024-03-18 22:32:23 +01:00
Franck Nijhof 541d4b78ac Add WebSocket support for handling labels on areas registry (#113755) 2024-03-18 22:17:13 +01:00
Robert Svensson 506240be10 Streamline naming in deCONZ integration (#111977) 2024-03-18 22:08:06 +01:00
Franck Nijhof e20cc4f8b9 Add WebSocket support for assigning labels to entities (#113757) 2024-03-18 22:03:37 +01:00
Franck Nijhof 51b8ffc69d Add WebSocket support for handling labels on device registry (#113758) 2024-03-18 21:19:27 +01:00
Jan-Philipp Benecke f73f93913f Remove deprecated hass.components from netatmo webhook tests (#113691) 2024-03-18 19:31:13 +01:00
Robert Svensson cb348ddbdb Axis use entity description light platform (#113602)
* Axis use entity description in light platform

* Clean up some old code

* Update homeassistant/components/axis/light.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-18 19:26:29 +01:00
Gido 1ed8232b02 Add config flow to Rova (#113596)
* Add Config Flow for Rova component

* Add tests for Rova config flow

* Fix data type

* Add rova to requirements for tests

* Removed seperate function for area check and global variable

* Add unique name and id to rova entities

* Add support for multiple rova entries

* Fix correct error after connection timeout or http error

* Revert SENSOR_TYPES update

* Add existing rova configuration from yaml as new entity

* Add tests for import configuration.yaml flow

* Cleanup code

* Update valid rova area check in config flow

* Changed abort keys and messages

* Updated using self.add_suggested_values_to_schema

* Update to pass tests

* Added missing strings

* Update sensor unique_ids

* Fix service name formatting

* Update tests for Rova entry

* Update tests to recover after error

* Update test name

* Apply suggestions from code review

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-18 18:00:54 +01:00
Max Holland 815d120645 Add support for Tuya dimmer module (#113741) 2024-03-18 16:59:49 +01:00
Joost Lekkerkerker aba5dcb63e Patch Discovery timeout in govee light local (#113692) 2024-03-18 16:49:39 +01:00
Josef Zweck eaf86ee1ea Log cannot connect exception in Tedee config flow (#113740)
log exception
2024-03-18 16:45:49 +01:00
Aidan Timson 8918eb6922 Add camera in use and pending reboot binary sensors to System Bridge (#104095)
* Add binary sensors

* Fix

* Fix

* Fix translations

* Add icons

* Fix attr

* Update string

* fix name

* Remove unnessasary check

* Remove unrelated changes

* Remove unrelated strings

* Apply suggestions from code review

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

* Update camera_in_use function and value_fn for binary sensors

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-18 16:21:52 +01:00
Xitee 7065625d28 Add additional buttons to OctoPrint (#103139)
* Add 3 new buttons

- System shutdown button
- System reboot button
- Octoprint restart button

* Enable buttons by default

* Add tests

* Fix tests

* Remove accidentally committed unused code

* Add RESTART device class to RestartOctoprint and RebootSystem buttons

* Apply suggestions to octoprint test_button

* Freeze time for OctoPrint button tests

* Make new button base class to prevent implementing the availability check multiple times
2024-03-18 16:20:22 +01:00
Jack Boswell 34b0ff40f3 Allow configuring Starlink sleep schedule (#103057)
* Expose sleep config getters and setters

* Add a switch for toggling sleep schedule

* Add Time platform

* Add frozen to dataclasses

* Update tests

* Add starlink time to coveragerc

* No more mixin

* Update time.py

* Update time.py

* Run data collectors asynchronously

* Fix timezone handling
2024-03-18 16:18:32 +01:00
Erwin Douna e882d47cde Add Downloader config flow, including tests (#98722)
* Adding base line, including tests

* Adding validatge input and expanding tests

* Updating manifest

* Minor patch

* Revert minor patch, wrong nesting

* Adding proper translations

* Including abort message

* Update homeassistant/components/downloader/config_flow.py

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

* Rename exception class

* Refactor import

* Update strings

* Apply suggestions from code review

* Update homeassistant/components/downloader/__init__.py

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

* Update homeassistant/components/downloader/__init__.py

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

* Update homeassistant/components/downloader/__init__.py

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

* Update homeassistant/components/downloader/__init__.py

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

* Update homeassistant/components/downloader/__init__.py

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

* Update homeassistant/components/downloader/__init__.py

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

* Update homeassistant/components/downloader/__init__.py

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

* Reverting back filename and fix typing

* Reverting back mutex/lock

* Upgrade version

* Adding typing

* Removing coroutine

* Removing unload entry (for now)

* Removing comment

* Change type

* Putting download back in setup_entry

* Revert back code

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-18 16:16:24 +01:00
Chris Caron 7dc64a03ef Bump apprise to 1.7.4 (#113629)
Co-authored-by: jan iversen <jancasacondor@gmail.com>
2024-03-18 15:34:08 +01:00
J. Nick Koston 40ce2011be Run dhcp listeners with run_immediately (#113726)
Neither of these need a call_soon
2024-03-18 10:16:20 -04:00
Jan Bouwhuis 3dc8df2403 Get ServiceValidationError message from translation cache only (#113704)
* Get ServiceValidationError message from translation cache only

* Remove message for NotValidPresetModeError
2024-03-18 14:42:21 +01:00
Jan Bouwhuis ec7aecef84 Get HomeAssistantError message from translation cache only (#113688)
Get HomeAssistant error message from translation cache only
2024-03-18 14:39:41 +01:00
Sid 727581eea3 Add first batch of Ruff PT rules (#113665)
* Add first batch of Ruff PT rules

* fix weather test

* Fix pilight test

* Update test_intent.py

* Update pilight test_init.py

* Update test_init.py
2024-03-18 13:26:14 +01:00
J. Nick Koston 8f33bad4ef Move legacy tts setup to use tracked tasks (#113717)
* Move legacy tts setup to a tracked task

* comment

* fix test

* fix test

* fix more tests

* tweak
2024-03-18 13:11:22 +01:00
J. Nick Koston 719d373bd7 Move legacy stt setup to use tracked tasks (#113718)
* Move legacy stt setup to use tracked tasks

* comment
2024-03-18 13:10:12 +01:00
J. Nick Koston 10f2d8b4b1 Move legacy notify setup to use tracked tasks (#113716)
* Move legacy notify setup to a tracked task

* fix test

* fix test

* comment
2024-03-18 13:09:21 +01:00
J. Nick Koston 264e023ab4 Run august stop listener with run_immediately (#113729)
There is no need for a call_soon here
2024-03-18 14:07:00 +02:00
J. Nick Koston 8a144d16f5 Move legacy device_tracker setup to a tracked task (#113715)
* Move legacy device_tracker setup to a tracked task

Legacy platforms are now loaded in a tracked task which
allows anything waiting on device_tracker (such as
a config entry that uses the device_tracker
platform) to proceed.

This also allows us to remove the workaround
of adding device_tracker to
hass.config.components in its setup

* tweak

* tweak

* fix tests
2024-03-18 10:39:59 +01:00
epenet 3844ade572 Fix unknown values in onewire (#113731)
* Fix unknown values in onewire

* Update tests
2024-03-18 10:12:46 +01:00
dependabot[bot] 20897e0a3a Bump dawidd6/action-download-artifact from 3.1.2 to 3.1.3 (#113720) 2024-03-18 08:28:10 +01:00
Ernst Klamer e23ce42d3a Bump xiaomi-ble to 0.27.1 (#113686) 2024-03-17 19:40:03 -10:00
J. Nick Koston fcdb7039f9 Migrate isy994 listeners to use run_immediately (#113661) 2024-03-17 17:38:48 -10:00
J. Nick Koston 9a6804b5d7 Adjust config flow pre-import comment in group (#113702) 2024-03-17 14:28:29 -10:00
Johnny Willemsen 0d279ccd13 Improve scaffold test_config_flow (#113229)
Update test_config_flow.py

Use DOMAIN constant
2024-03-18 00:47:11 +01:00
Sid 82a60fe8ad Enable Ruff RSE (#113695) 2024-03-18 00:40:38 +01:00
Jan Bouwhuis 685553d17d Cache late imported async_get_exception_message for HomeAssistantError (#113683)
* Cache late imported async_get_exception_message for HomeAssistantError

* Use a dict to store the function cache

* Update homeassistant/exceptions.py

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

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-17 21:23:46 +01:00
Maciej Bieniek d8f74571a1 Add removal condition to Shelly battery sensor (#113703)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-03-17 21:21:42 +01:00
J. Nick Koston 4d75940cd2 Start and stop template cache watcher to run_immediately (#113644) 2024-03-17 08:16:26 -10:00
J. Nick Koston 68320b1278 Migrate registry for labels and categories to run_immediately (#113645) 2024-03-17 08:16:11 -10:00
J. Nick Koston 93497dde8b Run registry cleanup listeners immediately (#113646) 2024-03-17 08:15:55 -10:00
J. Nick Koston 091199d24a Run entity registry write_unavailable_states immediately at start (#113647) 2024-03-17 08:15:41 -10:00
J. Nick Koston dbbd6fff01 Move ESPHome disconnects to the close event (#113652) 2024-03-17 08:15:28 -10:00
J. Nick Koston 412fd3dc05 Add run_immediately to usb start/stop listeners (#113658) 2024-03-17 08:15:14 -10:00
Jan-Philipp Benecke 324c922c0d Remove deprecated hass.components from withings webhook tests (#113687)
* Remove deprecated `hass.components` from withings webhook tests

* Use patch.object
2024-03-17 17:48:58 +01:00
Jan-Philipp Benecke 681705394d Remove deprecated hass.components from network helper function (#113615)
* Remove deprecated `hass.components` from network helper function

* Remove deprecated use of `hass.components` in alexa camera tests
2024-03-17 17:42:48 +01:00
J. Nick Koston d9bc09e93a Migrate stream listeners to use run_immediately and eager tasks (#113660)
None of these need to a call_soon and can shutdown a bit faster
2024-03-17 09:42:25 -07:00
Jan-Philipp Benecke 25c4ab070b Use mock_platform for event entity component tests instead of hass.components (#113667) 2024-03-17 17:32:16 +01:00
MarkGodwin 75a489deb9 Add WAN port connection control to TP-Link Omada gateways (#111431)
* Add gateway connection switches

* Add unit tests

* tplink_omada code review feedback

* Rebase and move icons and strings into json
2024-03-17 16:06:57 +01:00
Sid 295b4203a1 Re-ignore Ruff rule PLC1901 (#113675)
Re-ignore PLC1901
2024-03-17 16:04:40 +01:00
Jan Bouwhuis 81ab29a38e Freeze time on zwave_js update test (#113625)
Freeze time on jwave_js update test
2024-03-17 16:02:45 +01:00
Sid 929bcb92e2 Add Ruff LOG rules (#113677)
* Add Ruff LOG rules

* Address review comment

* Update const.py
2024-03-17 15:59:49 +01:00
Jan-Philipp Benecke b8e1862746 Remove deprecated hass.components from image_processing platform (#113613)
* Remove deprecated `hass.components` from image_processing platform

* Add test and change log

* D'oh.. use updated error text
2024-03-17 15:59:29 +01:00
Michael 0643ff1cfe Improve debug logging in Tankerkoenig (#113674) 2024-03-17 13:44:32 +01:00
Sid 6113b99ddd Replace pylint pointless-statement with ruff B018 (#113582)
* Replace pylint pointless-statement with ruff B018

* fix occurrences of B018

* disable pylint expression-not-assigned as well

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-17 10:58:14 +01:00
Erik Montnemery 7b20641651 Add tests of homeworks __init__ (#113581) 2024-03-17 10:22:08 +01:00
Erik Montnemery 398c38b50d Add tests of homeworks button (#113578) 2024-03-17 10:06:57 +01:00
Sid d5fd005db8 Add ruff rule PIE808 (#113621) 2024-03-17 09:56:26 +01:00
Erik Montnemery 1a70dbfd94 Add tests of homeworks light (#113579) 2024-03-17 09:46:36 +01:00
Erik Montnemery 8f6c4f8b33 Add tests of homeworks binary sensor (#113577) 2024-03-17 09:45:49 +01:00
J. Nick Koston 5e8265d8a4 Add run_immediately to bluetooth listeners (#113659) 2024-03-16 19:03:14 -10:00
J. Nick Koston 1f9c8694a8 Save bluetooth passive data eagerly at the stop event (#113648) 2024-03-16 19:02:57 -10:00
J. Nick Koston 6df3e9d7c0 Run bond shutdown listener with run_immediately (#113657) 2024-03-16 17:21:03 -10:00
J. Nick Koston 309fcb5c30 Eagerly shutdown homekit_controller at the stop event (#113650) 2024-03-16 17:15:46 -10:00
J. Nick Koston 4d430520a0 Run yalexs_ble shutdown with run_immediately (#113653) 2024-03-16 17:06:31 -10:00
J. Nick Koston ba7ec4ac16 Eagerly shutdown unifiprotect at the stop event (#113655) 2024-03-16 17:04:04 -10:00
Sid 69564b1a17 Add ruff rule PIE800 (#113619)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-16 16:31:30 -10:00
Christopher Bailey 43652a4ace Deprecate UniFi Protect HDR switch and package sensor (#113636)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-16 16:15:32 -10:00
Christopher Bailey 0a26829ffc Bump pyunifiprotect to 5.0.2 (#113651) 2024-03-16 16:15:18 -10:00
J. Nick Koston 885abe2fda Cleanup sonos shutdown process (#113654) 2024-03-16 16:10:57 -10:00
luar123 26c1b7e72e Bump snapcast to 2.3.6 (#113606) 2024-03-16 21:16:26 -04:00
J. Nick Koston 6a6f3d46a9 Create config entry async_on_unload tasks eagerly (#113626) 2024-03-16 14:43:49 -10:00
J. Nick Koston 91fa612301 Run entity component shutdown immediately (#113635) 2024-03-16 14:42:36 -10:00
J. Nick Koston fa68c5633c Fix zeroconf shutting down too early (#113638) 2024-03-16 14:42:27 -10:00
J. Nick Koston 513da0f71e Run functions from ssdp listeners immediately (#113634) 2024-03-16 13:52:01 -10:00
Sid cede6af496 Consolidate ruff PL and Q rules (#113555) 2024-03-16 13:45:03 -10:00
J. Nick Koston 2f39187628 Shutdown homekit eagerly at the stop event (#113639) 2024-03-16 13:39:48 -10:00
J. Nick Koston 6e3e2d1693 Shutdown config entry manager immediately at the stop event (#113632) 2024-03-16 13:39:31 -10:00
J. Nick Koston 796f4deac2 Run shelly coordinator shutdown immediately at the stop event (#113633)
There is no need to use a call_soon here as we want to shutdown
right away
2024-03-16 19:36:02 -04:00
J. Nick Koston 44cac3c90a Run apple_tv shutdown eagerly at the stop event (#113637)
The shutdown can be done without having to schedule a task on the event loop
2024-03-16 19:34:27 -04:00
Christopher Bailey e703baba0a Add new fields from UniFi Protect v3 (#113631) 2024-03-16 13:17:23 -10:00
Jan-Philipp Benecke 73f11064d7 Use mock_platform for button entity component tests instead of hass.components (#113627) 2024-03-16 12:47:59 -10:00
Sid 11c570ea7b Remove ignore for ruff PLC0208 (#113537) 2024-03-16 12:45:55 -10:00
Sid fe9cc6705c Add ruff rule PIE804 (#113620)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-16 12:45:18 -10:00
Erik Montnemery d0352ed91d Fix missing context when running script from template entity (#113523)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-16 12:37:24 -10:00
Christopher Bailey 0725ff34b1 Bump pyunifiprotect to 5.0.1 (#113630) 2024-03-16 23:26:56 +01:00
Allen Porter a9da9ee443 Bump ical to 7.0.3 to fix local-todo persisted with invalid DTSTART values (#113526) 2024-03-16 12:03:26 -10:00
Robert Svensson ab9b64729a Bump axis to v56 (#113608) 2024-03-16 12:02:52 -10:00
Jan Bouwhuis 554aefed42 Generate HomeAssistantError message from English translations (#113305)
* Fetch exception message from translation cache

* Improve tests

* Return translation key without path, cleanup

* Fetch translations when string variant is requested

* Move import

* revert changes ConfigValidationError

* mypy

* Remove _str__ method instead

* Type _message for mqtt template exception classes

* Revert changes made to test_config.py

* Undo changes TemplateError

* Follow up comments and test coverage
2024-03-16 22:56:48 +01:00
Lex Li 2bc4a5067d snmp: Better sensor support to resolve previous issues (#113624)
Co-authored-by: Christian Kühnel <christian.kuehnel@gmail.com>
Co-authored-by: jan iversen <jancasacondor@gmail.com>
2024-03-16 22:56:21 +01:00
J. Nick Koston 86ccb99f4c Fix race in removing modified devices from the entity registry (#113623) 2024-03-16 11:51:56 -10:00
Jan-Philipp Benecke c58bba55bf Remove deprecated hass.components from legacy device tracker platform (#113612) 2024-03-16 11:19:29 -10:00
Sid 0b9c9aff62 Add ruff rules PIE790, PIE794, PIE807, PIE810 (#113617) 2024-03-16 11:04:58 -10:00
Antoni Czaplicki cbe2a5883b Fix vulcan calendar offset (#113604)
* Fix offset on vulcan calendar

* Combine date, time and zone into one command in vulcan calendar
2024-03-16 13:59:24 -07:00
J. Nick Koston 7d58be1a6a Gather loading platforms in async_process_component_config (#113573) 2024-03-16 10:57:10 -10:00
J. Nick Koston bb12d2e865 Avoid creating tasks in homeassistant_alerts when the debouncer will not fire (#113580) 2024-03-16 16:20:06 -04:00
J. Nick Koston 4174d88ad7 Add a guard to handle unhashable platforms in config (#113607)
Someone might set the platform to [fitbit] instead of fitbit

I have not seen anyone do this, but its good to guard against
it
2024-03-16 16:19:07 -04:00
Jan Bouwhuis 5dccd8204c Freeze time on profile test (#113618) 2024-03-16 21:16:18 +01:00
Jan-Philipp Benecke 4be9d3e7f6 Remove deprecated hass.components from mysensors (#113611) 2024-03-16 20:49:25 +01:00
Sid 6ee273a548 Clean up unneeded ruff noqa directives (#113616) 2024-03-16 09:48:37 -10:00
Robert Svensson c57dcacade Axis use entity description in switch platform (#113595)
* Draft

* Make a generic register platform
2024-03-16 20:47:54 +01:00
Robert Svensson 00361f5293 Remove unnecessary method in UniFi entity loader (#113597) 2024-03-16 18:41:00 +01:00
Sid ccd2e989c3 Enable ruff RUF005 and fix occurrences (#113589) 2024-03-16 07:37:20 -10:00
Massimo Savazzi 2a5c85a020 Add JVC Projector Sensors (#108949)
* Add JVC Projector Sensors - Power Status, Input

* Removed commented line, removed name in icons.json

* fixed icons.json file

* fixed tests

* Update homeassistant/components/jvc_projector/sensor.py

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

* Fixed as requested

* Fixed code as requested

* added fixes

* Fixed sensor creation

* fixed const

* fixed icons

* Added test for both sensors

* Added ha state stest

* fixed commented line and removed useless ones

* Changed time FAST - SLOW to be more responsive

* Rolled back to previous values 6/60

* Update sensor.py

removed off

* Update icons.json

* Removed the Input Sensor entity

* Update tests/components/jvc_projector/test_sensor.py

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

* Update tests/components/jvc_projector/test_sensor.py

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

* Update tests/components/jvc_projector/test_sensor.py

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

* Update tests/components/jvc_projector/test_sensor.py

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

* Update tests/components/jvc_projector/test_sensor.py

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

* Update tests/components/jvc_projector/test_sensor.py

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

* Updated unique id of sensor

Co-authored-by: Steve Easley <steve.easley@gmail.com>

* Added translation and string for Power Status

* Update homeassistant/components/jvc_projector/strings.json

Co-authored-by: Steve Easley <steve.easley@gmail.com>

* Update homeassistant/components/jvc_projector/strings.json

Co-authored-by: Steve Easley <steve.easley@gmail.com>

* Update strings.json

* Update strings.json

added missing ,

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Steve Easley <steve.easley@gmail.com>
2024-03-16 16:52:51 +01:00
Maciej Bieniek 6191b25563 Catch TimeoutError in Brother config flow (#113593)
* Catch TimeoutError in Brother config flow

* Update tests

* Remove unnecessary parentheses

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-03-16 16:01:48 +01:00
J. Nick Koston ef0c17749f Use async_create_task in recorder init tests (#113586) 2024-03-16 15:40:50 +01:00
Shay Levy d17e397455 Ignore Shelly block update with cfgChanged None (#113587) 2024-03-16 16:18:41 +02:00
Shay Levy a7fd1c278c Shelly config flow test wait for tasks to finish (#113588) 2024-03-16 16:18:13 +02:00
Christopher Fenner 1ffc514528 Add battery discharge sensor to ViCare integration (#113502)
Co-authored-by: jan iversen <jancasacondor@gmail.com>
2024-03-16 12:38:54 +01:00
Brett Adams 219cb7a788 Add additional sensors to Teslemetry (#112555)
* Add more sensors

* Fix coverage

* Dont do this rename yet

* Fix case

* Update snapshot

* Add icons

* Remove unused icons

* Update snapshot

* Remove last_value logic from TimeSensor

* Apply suggestions from code review

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

* Update constant case

* Remove useless test

* Add refresh test back

* Add assertion to post coordinator refresh

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-03-16 11:54:37 +01:00
Sid 470ef554d7 Fix freedompro tests for ruff B018 (#113583) 2024-03-16 00:03:25 -10:00
Sid dd3101e161 Fix unifiprotect tests for ruff B018 (#113584) 2024-03-16 00:01:24 -10:00
J. Nick Koston eb90c9a548 Reduce bottlenecks in bootstrap by ordering the setup of integrations (#113570) 2024-03-15 22:38:06 -10:00
J. Nick Koston 702488062b Move group config flow pre-import to its init (#113564) 2024-03-15 18:44:10 -10:00
Erik Montnemery a5cde8a61e Improve typing of State.as_compressed_state (#113540) 2024-03-16 00:01:46 -04:00
Sid 27e844e3bf Add ruff B005, B015, B032 and fix occurrences (#113543)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-15 17:48:37 -10:00
J. Nick Koston bb667abd51 Cleanup some circular imports in group (#113554) 2024-03-15 15:45:43 -10:00
Jan Bouwhuis 6e84dbde35 Fix lingering hassio issues test (#113569) 2024-03-15 15:10:24 -10:00
J. Nick Koston b26928878f Remove group integration platforms that use the default states (#113562)
Remove group integration platforms that use the default

There is no need to register platforms that use the defaults
as the group code already uses STATE_ON/STATE_OFF when there
are no on/off states in the GroupIntegrationRegistry
2024-03-15 20:51:21 -04:00
J. Nick Koston af06e03b71 Add profiler set_asyncio_debug service (#113447)
* Add profiler set_asyncio_debug service

Currently when a user has a problem with there event loop being blocked
the simplest way to enable asyncio debug is to add `debugpy:` to
`configuration.yaml`, however this approach slows the system which
makes the report less useful and harder to track down the problem.

We need a lightweight way to enable debug mode so users can report
problems with the event loop being blocked, and we have a better
chance of finding the source without side effects

* logging

* logging

* logging

* comments

* fix

* icon

* only if enabled

* coverage
2024-03-15 20:49:35 -04:00
On Freund b644c03fa7 Send keep-alive frames in image proxy stream (#113542) 2024-03-15 14:00:33 -10:00
J. Nick Koston 51ece8b1ef Restore group config_flow pre-import (#113558) 2024-03-15 13:09:20 -10:00
Guido Schmitz b96bceadfa Add translations for devolo Home Network exceptions (#105755)
* Add translations for devolo Home Network exceptions

* Add translations for ConfigEntryAuthFailed

* Update homeassistant/components/devolo_home_network/switch.py

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

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-15 23:53:16 +01:00
Joost Lekkerkerker 53a76fc792 Fix Airthings BLE illuminance sensor name (#113560) 2024-03-15 23:48:47 +01:00
Daniel Perna 2b04975332 Remove danielperna84 as codeowner (#109662)
* Remove danielperna84 as codeowner

* Update CODEOWNERS
2024-03-15 23:42:04 +01:00
J. Nick Koston 88f04bb3b4 Avoid calling entry.async_migrate in sonarr tests (#113557)
We should setup the the config entry instead of calling the
migrator directly

This fix was reverted out in #113553
2024-03-15 23:33:48 +01:00
J. Nick Koston 03bb791080 Add missing async_block_till_done to jellyfin test_invalid_auth test (#113556)
This fix was reverted out in #113553
2024-03-15 23:31:55 +01:00
G Johansson e8de1a7031 Revert "Avoid pre-importing config_flows if the integration does not … (#113553)
Revert "Avoid pre-importing config_flows if the integration does not support …"

This reverts commit 9940f51b95.
2024-03-15 23:15:36 +01:00
J. Nick Koston 77a94ea515 Speed up loading sun (#113544)
* Speed up loading sun

* Speed up loading sun

* Speed up loading sun

* adjust

* tweak
2024-03-15 23:01:49 +01:00
Sid d120993477 fix homekit test asserts (#113549) 2024-03-15 22:02:18 +01:00
Sid b261f124d6 fix mqtt siren test asserts (#113550) 2024-03-15 21:59:30 +01:00
Erik Montnemery 397bde4652 Add missing continue in legacy recorder history function (#113535)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-03-15 21:20:39 +01:00
Robert Svensson 3ba29c361a Remove old update of group unique id in deCONZ (#112533) 2024-03-15 21:09:44 +02:00
Robert Svensson 9c2c7f1a45 Remove old update of number unique id in deCONZ (#113524) 2024-03-15 21:08:18 +02:00
Robert Svensson e90388afd1 Remove old update of sensor unique id in deCONZ (#113527) 2024-03-15 21:06:09 +02:00
J. Nick Koston b7f7bed46c Import and create pyudev for usb in the executor (#113478) 2024-03-15 09:05:18 -10:00
Chris Talkington 29f07260f9 Use single_config_entry in jellyfin manifest (#113202) 2024-03-15 13:56:13 -05:00
jan iversen 02d4bf007d Do not allow modbus config without entities (#113516) 2024-03-15 19:49:29 +01:00
Joost Lekkerkerker 422d4ea5b3 Use Volume Flow Rate device class in Opentherm gw (#113531) 2024-03-15 19:12:38 +01:00
Joost Lekkerkerker b6a06f49b7 Use Volume Flow Rate device class in DROP connect (#113528) 2024-03-15 19:12:04 +01:00
Robert Svensson 5b5ff92a05 Support configuring Axis to use HTTPS (#113271) 2024-03-15 18:58:49 +01:00
Joost Lekkerkerker be7c4295dc Fix MyUplink tests (#113534) 2024-03-15 18:26:28 +01:00
Thomas55555 66aa2c038a Freeze timezone in bmw_connected_drive tests (#113533)
Freeze timezone in bmw_connected_drive
2024-03-15 18:22:17 +01:00
Joost Lekkerkerker 066594b25b Use Volume Flow Rate device class in BTHome (#113530) 2024-03-15 18:19:14 +01:00
dontinelli 98132d1cd3 Add Fyta integration (#110816)
* Initial commit for fyta integration

* Update __init__.py

Delete BinarySensor for first PR

* Update __init__.py

Rewind wrongful deletion of comma

* Delete homeassistant/components/fyta/binary_sensor.py

Delete binary_sensor for first pr of integration

* Update manifest.json

Updated requirement to new version of fyta_cli 0.2.1, where bug in import of modules has been resolved.

* Update requirements_test_all.txt

adjust to updated manifest

* Update requirements_all.txt

adjust to updated manifest

* Update test_config_flow.py

* Update config_flow.py

update file to correct error with _entry attribute

* Fyta integration - update initial PR based on review in initial PR #110816 (#2)

* adjustments to pass test for config_flow

* backport of changes in intitial PR to dev

* update text_config_flow

* changes based on review in initial PR #110816

* Update homeassistant/components/fyta/sensor.py

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

* Update homeassistant/components/fyta/config_flow.py

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

* Update homeassistant/components/fyta/config_flow.py

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

* Update homeassistant/components/fyta/sensor.py

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

* Update homeassistant/components/fyta/sensor.py

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

* Update homeassistant/components/fyta/coordinator.py

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

* Update homeassistant/components/fyta/config_flow.py

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

* Update homeassistant/components/fyta/strings.json

Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>

* Update homeassistant/components/fyta/strings.json

Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>

* Update homeassistant/components/fyta/manifest.json

Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>

* Adjustments based on PR-commet of Feb 19 (#3)

* add test for config_flow.validate_input

* update based on pr review

* update based on pr review

* further refinings based on PR review

* Update tests/components/fyta/test_config_flow.py

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

* Update test_config_flow.py

Update tests based on PR comment

* Update homeassistant/components/fyta/sensor.py

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

* Update homeassistant/components/fyta/sensor.py

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

* add handling and test for duplicate entry

* Update homeassistant/components/fyta/coordinator.py

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

* Update homeassistant/components/fyta/sensor.py

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

* Update homeassistant/components/fyta/entity.py

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

* Update test_config_flow.py

parametrize test for exceptions

* Update config_flow.py

Move _async_abort_entries_match, add arguments

* Update coordinator.py

* Update typing in coordinator.py

* Update coordinator.py

update typing

* Update coordinator.py

corrected typo

* Update coordinator.py

* Update entity.py

* Update sensor.py

* Update icons.json

* Update homeassistant/components/fyta/entity.py

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

* Update homeassistant/components/fyta/entity.py

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

* Update entity.py

* Update test_config_flow.py

* Update config_flow.py (change FlowResult to ConfigFlowResult)

* Update config_flow.py

* Update homeassistant/components/fyta/config_flow.py

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

* Update homeassistant/components/fyta/config_flow.py

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

* Update homeassistant/components/fyta/coordinator.py

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

* Update coordinator.py

* Update config_flow.py (typing FlowResult -> ConfigFlowResult)

* Update config_flow.py

* Aktualisieren von config_flow.py

* remove coordinator entities

* Update strings.json

remove plant_number

* Update icons.json

remove plant_number

* Update manifest.json

Update requirement to latest fyta_cli version

* Update requirements_all.txt

* Update requirements_test_all.txt

* Update homeassistant/components/fyta/sensor.py

* Update homeassistant/components/fyta/sensor.py

* Update homeassistant/components/fyta/coordinator.py

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

* Update homeassistant/components/fyta/coordinator.py

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

* Update homeassistant/components/fyta/coordinator.py

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

* Update homeassistant/components/fyta/entity.py

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

* Update homeassistant/components/fyta/strings.json

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

* Update homeassistant/components/fyta/strings.json

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

* Update tests/components/fyta/test_config_flow.py

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

* Update tests/components/fyta/test_config_flow.py

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

* move test-helpers into conftest.py, adjust import of coordinator.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Robert Resch <robert@resch.dev>
2024-03-15 18:13:35 +01:00
soonsouth cfc2f17f35 Remove repetitive words in comments and docstrings (#113529)
chore: remove repetitive words

Signed-off-by: soonsouth <cuibuwei@163.com>
2024-03-15 18:11:12 +01:00
Drew C a73553581b Bump opower to 0.4.1 (#113509) 2024-03-15 18:10:58 +01:00
Mike Degatano 6ede1c543f Protect SupervisorIssues.update method (#113425) 2024-03-15 18:06:14 +01:00
Joost Lekkerkerker 38164c705e Add missing icon for Unifi protect service (#113508) 2024-03-15 16:40:48 +01:00
Joost Lekkerkerker 823481063e Add icon translations to Sonos (#112235) 2024-03-15 16:34:13 +01:00
cosimomeli 4107cd6ad8 Add Ring Intercom open door button (#113514)
* Add button

* Make Ruff happy

* Apply suggestions from code review

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

* Fix doc string

* Format

* Update tests/components/ring/test_button.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-15 15:31:51 +01:00
jan iversen a9fb34d9c2 Remove modbus create_issue from init (#113510)
Create_issue only in check_config.
2024-03-15 15:16:06 +01:00
Erwin Douna 1ff049cc66 Add diagnostics platform to Fastdotcom (#111525) 2024-03-15 14:42:07 +01:00
Joost Lekkerkerker 4b4258881b Remove Sonos migrations (#113506) 2024-03-15 14:40:40 +01:00
Åke Strandberg eb1f37ea9b Filter out irrelevant entities on SMO20 devices in myuplink (#113493) 2024-03-15 14:06:10 +01:00
J. Nick Koston c69ab425c5 Speed up ffmpeg setup (#113496)
* Speed up ffmpeg setup

Only check for old versions of ffmpeg if is_official_image
is False

* Speed up ffmpeg setup

Only check for old versions of ffmpeg if is_official_image
is False

* Speed up ffmpeg setup

Only check for old versions of ffmpeg if is_official_image
is False

* Speed up ffmpeg setup

Only check for old versions of ffmpeg if is_official_image
is False

* Speed up ffmpeg setup

Only check for old versions of ffmpeg if is_official_image
is False

* Speed up ffmpeg setup

Only check for old versions of ffmpeg if is_official_image
is False

* adjust

* adjust

* twea

* Update homeassistant/components/ffmpeg/__init__.py

* forgot about the mock in conftest for comps
2024-03-15 09:05:42 -04:00
jan iversen 1c938f6422 create issues for modbus config errors (#113431) 2024-03-15 13:44:29 +01:00
On Freund 4181c62ec0 Bump pyrisco to 0.5.10 (#113505) 2024-03-15 13:38:39 +01:00
Franck Nijhof 0e2775667d Add category registry (#110897)
* Add category registry

* Add entity registry support

* Update homeassistant/components/config/entity_registry.py

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

* Use ulid instead

* Add tests for adding same name in different scopes

* Handle keyerror on update

* Lookup tweak

* Omit categories from entity registry snapshots

* Use base registry

* Update snapshots

* Update snapshots

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-15 13:25:16 +01:00
Franck Nijhof 436c83e8a7 Add theme color support to labels (#113404) 2024-03-15 13:22:06 +01:00
cosimomeli 360f7dea75 Add Ring Intercom support (#109819)
* Add button entity

* Add support for Ring intercom ("other" device type)

* description

* format

* - Tests
- Fallback when intercom devices arent inside response

* Fix ring button

* Update library

* Fix button after merge

* Move names to strings.json

* Remove button entity_category

* Add wifi sensors to other

* Add last_ sensors to other

* Fix tests

* Add button test

* Add new sensors tests

* Revert "Add last_ sensors to other"

This reverts commit 5c03bba5a1.

* Update library

* Revert "Revert "Add last_ sensors to other""

This reverts commit 27631978d0.

* Fix tests

* Remove default list for other

Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>

* Copy mock to conftest

* Fix history test

* Change time skip

* Remove button

* Fix history test

---------

Co-authored-by: Martin Pham <tuyentq2009@gmail.com>
Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>
2024-03-15 12:59:36 +01:00
Sebastian Noack 30d1f70468 Use on state icons by default in Balboa spa integration (#111911) 2024-03-15 12:52:21 +01:00
J. Nick Koston 9cc0006b92 Ensure TurboJPEG is imported in the executor (#113504)
The import was too late and it eneded up being imported
in the event loop
2024-03-15 12:23:53 +01:00
Shay Levy e0b1531afa Remove OpenCV integration (#113455) 2024-03-15 12:23:30 +01:00
Matthias Alphart 7bcfa94b12 Use single_config_entry in KNX manifest (#112526) 2024-03-15 12:20:32 +01:00
dougiteixeira 13cd6eb00e Add icon translations to Moon (#111386) 2024-03-15 12:12:03 +01:00
Åke Strandberg 86607d2bbb Create more relevant names for myuplink DeviceInfo (#111502) 2024-03-15 12:11:13 +01:00
Robert Svensson e41133e9f0 Remove old update unique id function from deCONZ binary sensor (#112536) 2024-03-15 12:05:45 +01:00
slyoldfox ffe9b7801f Add missing mystrom sensor (#113225)
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-03-15 12:05:10 +01:00
Thomas55555 309f554336 Address late review on adding an error sensor to Husqvarna Automower (#113242) 2024-03-15 12:04:33 +01:00
J. Nick Koston 45195d2ea9 Avoid multiple context switches to setup a sonos speaker (#113378) 2024-03-15 12:03:44 +01:00
Erik Montnemery 103b8b4dc5 Improve State docstring (#113501) 2024-03-15 12:01:11 +01:00
Diogo Gomes 3e3cf45a5d Bump croniter to 2.0.2 (#113494) 2024-03-15 12:00:08 +01:00
On Freund 99e29b75cc Revert setting communication delay in Risco init (#113497) 2024-03-15 11:42:53 +01:00
J. Nick Koston c69495b64f Remove supports_encryption check from mobile_app (#113490)
helpers already ports nacl at top level so this check can never
be False

```
>>> import sys
>>> from nacl.secret import SecretBox
>>> assert nacl in sys.modules
>>>
```
2024-03-15 11:13:44 +01:00
J. Nick Koston 4df2398b9f Move loading of ha-av to the executor (#113485) 2024-03-15 11:02:10 +01:00
Robert Svensson 2b2b5a2b02 Bump axis to v55 (#113479) 2024-03-15 09:38:47 +01:00
Erik Montnemery dd9fdac51e Remove unused tts fixture (#113480) 2024-03-14 22:25:10 -10:00
J. Nick Koston bdede0e0da Start script runs eagerly (#113190) 2024-03-14 16:53:26 -10:00
Lex Li 92e73312ea Bump pysnmp-lextudio to version 6.0.11 (#113463) 2024-03-14 16:19:18 -10:00
J. Nick Koston 3528cc86d7 Fix delayed registry check to only using the short delay at running (#113471) 2024-03-14 15:11:09 -10:00
J. Nick Koston 052d7d1e19 Fix scene integration doing blocking I/O in the event loop to import platforms (#113391) 2024-03-14 14:56:57 -10:00
J. Nick Koston 09934d44c4 Reduce script overhead by avoiding creation of many tasks (#113183)
* Reduce script overhead by avoiding creation of many tasks

* no eager stop

* reduce

* make sure wait being cancelled is handled

* make sure wait being cancelled is handled

* make sure wait being cancelled is handled

* preen

* preen

* result already raises cancelled error, remove redundant code

* no need to raise it into the future

* will never set an exception

* Simplify long action script implementation

* comment

* preen

* dry

* dry

* preen

* dry

* preen

* no need to access protected

* no need to access protected

* dry

* name

* dry

* dry

* dry

* dry

* reduce name changes

* drop one more task

* stale comment

* stale comment
2024-03-14 20:28:27 -04:00
J. Nick Koston e293afe46e Bump aiodhcpwatcher to 1.0.0 (#113469) 2024-03-14 14:16:19 -10:00
J. Nick Koston 4fb127e5af Avoid creating another ssl context in cert_expiry (#113467)
Creating an ssl context does blocking I/O as it has to
read the certs from disk
2024-03-14 19:58:11 -04:00
J. Nick Koston 5b80eb4c3d Reduce overhead to save the larger registries (#113462)
We save the device and entity registry to disk quite often, and
the cost of serializing them to the storage can block the event
loop for >100ms. Add a cache to reduce the change the loop is blocked
at an inopportune time at run time. The first write after startup
will still be a little slow but we do have to serialize the
bulk of it at least once as there is no way to avoid this

```
2024-03-14 11:28:19.765 WARNING (MainThread) [homeassistant.helpers.storage] Writing data with data_func: core.device_registry
2024-03-14 11:28:20.020 WARNING (MainThread) [homeassistant.helpers.storage] Writing data with data_func: core.entity_registry
2024-03-14 11:28:20.178 WARNING (MainThread) [asyncio] Executing <TimerHandle cancelled when=2319925.760294916 Store._async_schedule_callback_delayed_write() created at /Users/bdraco/home-assistant/homeassistant/helpers/storage.py:328> took 0.159 seconds
```
2024-03-14 19:54:43 -04:00
J. Nick Koston 28836be3eb Construct storage data in the executor to avoid blocking the event loop (#113465)
Construct storage data in the executor

Constructing storage data can be expensive for large files and can block the event
loop. While ideally we optimize the construction of the data, there are some places
we cannot make it any faster. To avoid blocking the loop, the construction of
the data is now done in the executor by running the data_func in the executor.

2024-03-14 11:28:20.178 WARNING (MainThread) [asyncio] Executing <TimerHandle cancelled when=2319925.760294916 Store._async_schedule_callback_delayed_write() created at /Users/bdraco/home-assistant/homeassistant/helpers/storage.py:328> took 0.159 seconds

There is some risk that the data_func is not thread-safe and needs to be run in
the event loop, but I could not find any cases in our existing code where it
would be a problem
2024-03-14 19:53:11 -04:00
Åke Strandberg f95d649f44 Add icon translations to myuplink (#111466) 2024-03-15 00:47:10 +01:00
Pete Sage 7cdec9aeeb Bump aiooncue to 0.3.7 (#113451) 2024-03-15 01:42:13 +02:00
J. Nick Koston 5a62be571d Bump aiodhcpwatcher to 0.8.2 (#113466) 2024-03-14 13:09:58 -10:00
Joost Lekkerkerker ba2d382eb6 Add service icons to Image processing (#113416)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-03-14 23:49:05 +01:00
Joost Lekkerkerker cd52f0f243 Add service icons to Notify (#113417)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-03-14 23:48:53 +01:00
jan iversen 7cba34b2e6 Change modbus integration to use async library calls (#113450) 2024-03-14 23:19:52 +01:00
wilburCforce 28ef898775 Support lutron transition time and flash for lights (#109185)
* support transition time for lights

* bug fix and support for FLASH

* updated to flash() to match changes coming in pylutron

* bumped pylutron version in anticipation of next release

* Update manifest.json

* Update requirements_all.txt

* Update requirements_test_all.txt

* Update requirements_test_all.txt

* nits and code improves
2024-03-14 23:07:16 +01:00
Franck Nijhof 221893c1d7 Add aliases support to floor registry WebSocket API (#113401) 2024-03-14 23:07:07 +01:00
Jan Bouwhuis b1c636c886 Fix hassfest icons check for notify and image_processing (#113446) 2024-03-14 22:51:18 +01:00
Jan Bouwhuis 3ed7a7166d Revert "Remove unused test helper mock_area_registry" (#113453) 2024-03-14 22:11:44 +01:00
Matthias Lohr 566cbc71a5 Add aroma therapy select entity for tolo integration (#113442)
* add select entity to allow aroma therapy slot selection

* improved translation readability
2024-03-14 21:03:41 +01:00
Joost Lekkerkerker 3f2a51bcff Add service icons to Climate (#113409) 2024-03-14 20:45:21 +01:00
Christopher Bailey 1ada10299a Check for EA release channel for UniFi Protect (#113432)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-14 09:07:54 -10:00
J. Nick Koston 5512e8b789 Deprecate async_run_job and async_add_job (#113260) 2024-03-14 09:06:55 -10:00
J. Nick Koston aaac879c83 Fix calling sync api in counter/ffmpeg/device_tracker tests (#113441) 2024-03-14 19:34:44 +01:00
Joost Lekkerkerker 2b3f0a9459 Add icon translations to ZHA (#112368) 2024-03-14 19:28:54 +01:00
Joost Lekkerkerker 5c59b4d846 Add service icons to Abode (#113411) 2024-03-14 19:26:01 +01:00
Joost Lekkerkerker 87767a58fc Fix alarm control panel icons (#113413) 2024-03-14 19:25:33 +01:00
Joost Lekkerkerker e68c27ec12 Add service icons to Fan (#113415) 2024-03-14 19:25:22 +01:00
Joost Lekkerkerker 36123717be Allow entity platforms without entity_component in icon validation (#113422)
* Allow entity platforms without entity_component

* Rename variable

---------

Co-authored-by: jbouwh <jan@jbsoft.nl>
2024-03-14 19:10:52 +01:00
Matthias Lohr 7359d66d32 add switch platform for tolo (#113440)
* upgrade tololib dependency to v1.0.0

* add switch to enable/disable aroma therapy

* aroma therapy and salt bath switch

* Update homeassistant/components/tolo/strings.json

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

* removed key from specific property list, it's required by default

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-14 19:10:29 +01:00
Franck Nijhof 2aadd643ed Add floors to service target (#110850) 2024-03-14 19:02:23 +01:00
Joost Lekkerkerker 20626947db Add icon translations to Unifi protect (#112332) 2024-03-14 18:43:09 +01:00
Christopher Bailey 2bf6170a6b Add UniFi Protect service to remove privacy zones (#111292) 2024-03-14 07:34:45 -10:00
Joost Lekkerkerker 02521c9da3 Add service icons to ADS (#113412) 2024-03-14 17:54:55 +01:00
Thomas55555 f1374503c3 Bump aioautomower to 2024.3.3 (#113430) 2024-03-14 17:51:24 +01:00
Joost Lekkerkerker 8a8546579c Add service icons to Scene (#113418) 2024-03-14 17:28:17 +01:00
Jeef 0867ace44a Bump weatherflow_cloud backing lib v0.2.13 (#113181)
* bump backing lib - and switch to rest models

* ci fix
2024-03-14 16:55:25 +01:00
Franck Nijhof f7972ce9b2 2024.3.1 (#113249) 2024-03-14 16:53:07 +01:00
Joost Lekkerkerker 0316681615 Add service icons to Demo (#113414) 2024-03-14 16:49:17 +01:00
Joost Lekkerkerker 796d0381cc Add service icons to Utility meter (#113419)
* Add service icons to Utility meter

* Add service icons to Utility meter

* Update homeassistant/components/utility_meter/icons.json

Co-authored-by: Diogo Gomes <diogogomes@gmail.com>

* Update homeassistant/components/utility_meter/icons.json

Co-authored-by: Diogo Gomes <diogogomes@gmail.com>

---------

Co-authored-by: Diogo Gomes <diogogomes@gmail.com>
2024-03-14 16:48:13 +01:00
Joost Lekkerkerker 70286b38ec Fix icon mistakes (#113420) 2024-03-14 14:49:20 +01:00
Joost Lekkerkerker 606ee3c379 Enable PERF ruff rules (#113408) 2024-03-14 14:10:02 +01:00
Erik Montnemery a16ea3d7bd Deprecate the map integration (#113215)
* Deprecate the map integration

* Revert changes in DashboardsCollection._async_load_data

* Add option to allow single word in dashboard URL

* Update tests

* Translate title

* Add icon

* Improve test coverage
2024-03-14 14:04:41 +01:00
Joost Lekkerkerker fef2d7ddd4 Add service icons to Persistent Notification (#113340) 2024-03-14 14:02:15 +01:00
Joost Lekkerkerker 020b75d5de Add service icons to Blackbird (#113280) 2024-03-14 14:02:01 +01:00
Joost Lekkerkerker 21a2871014 Add service icons to Amcrest (#113276) 2024-03-14 14:01:51 +01:00
Joost Lekkerkerker 1191032b08 Add service icons to REST (#113346) 2024-03-14 14:01:41 +01:00
Joost Lekkerkerker 774b2800bf Add service icons to Group (#113302) 2024-03-14 14:01:30 +01:00
Joost Lekkerkerker d81053a695 Add service icons to History Stats (#113306) 2024-03-14 14:01:20 +01:00
Joost Lekkerkerker 467a6f3ed0 Add service icons to Bluetooth Tracker (#113282) 2024-03-14 14:01:13 +01:00
Joost Lekkerkerker 265ecc141d Add service icons to Bayesian (#113278) 2024-03-14 14:01:04 +01:00
Joost Lekkerkerker d10a244eaa Add service icons to Backup (#113277) 2024-03-14 14:00:57 +01:00
Joost Lekkerkerker 20c2bac32e Add service icons to Modbus (#113332) 2024-03-14 14:00:50 +01:00
Joost Lekkerkerker 09be817f76 Add service icons to Channels (#113284)
* Add service icons to Channels

* Update homeassistant/components/channels/icons.json

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

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-03-14 13:56:02 +01:00
Joost Lekkerkerker 645e780445 Add service icons to Advantage air (#113272) 2024-03-14 13:55:47 +01:00
Matthias Lohr 6a1913b372 Bump tololib to 1.1.0 (#113268)
* upgrade tololib dependency to v1.0.0

* use latest available patch version

* fixed tolo tests

* fixed test cases
2024-03-14 13:55:16 +01:00
Joost Lekkerkerker 1fd447f65b Add service icons to Agent DVR (#113273) 2024-03-14 13:54:45 +01:00
Joost Lekkerkerker 816d984cac Add service icons to DuckDNS (#113290)
* Add service icons to DuckDNS

* Update homeassistant/components/duckdns/icons.json

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

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-03-14 13:53:35 +01:00
Joost Lekkerkerker 500dd9330a Add service icons to Conversation (#113286) 2024-03-14 13:53:14 +01:00
Joost Lekkerkerker 85473b80ca Add service icons to Input Datetime (#113314) 2024-03-14 13:52:59 +01:00
Joost Lekkerkerker 43d4f10582 Add service icons to Logger (#113325)
* Add service icons to Logger

* Update homeassistant/components/logger/icons.json

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

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-03-14 13:52:45 +01:00
Joost Lekkerkerker a3a1647256 Add service icons to Logbook (#113324) 2024-03-14 13:52:27 +01:00
Joost Lekkerkerker c1b05ce93d Add service icons to Dominos (#113288) 2024-03-14 13:52:10 +01:00
Joost Lekkerkerker 40566c3b68 Add service icons to Downloader (#113289) 2024-03-14 13:51:59 +01:00
Joost Lekkerkerker 02a07a3d15 Add service icons to Ebusd (#113291) 2024-03-14 13:51:24 +01:00
Joost Lekkerkerker 064491b915 Add service icons to HDMI CEC (#113304)
* Add service icons to HDMI CEC

* Update homeassistant/components/hdmi_cec/icons.json

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

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-03-14 13:49:18 +01:00
Joost Lekkerkerker 141bdf33df Add service icons to Envisalink (#113292) 2024-03-14 13:48:58 +01:00
Joost Lekkerkerker 423a4dfc33 Add service icons to Foursquare (#113296) 2024-03-14 13:48:31 +01:00
Joost Lekkerkerker ed91ccbfd4 Add service icons to Evohome (#113293) 2024-03-14 13:48:18 +01:00
Joost Lekkerkerker 5e04653431 Add service icons to Ffmpeg (#113294) 2024-03-14 13:47:11 +01:00
Joost Lekkerkerker 0eda6e86c5 Add service icons to Freebox (#113298) 2024-03-14 13:46:33 +01:00
Joost Lekkerkerker dcd56e4ba7 Add service icons to Frontend (#113299) 2024-03-14 13:46:13 +01:00
Joost Lekkerkerker 8fa08c2fd8 Add service icons to Generic Thermostat (#113300) 2024-03-14 13:46:00 +01:00
Joost Lekkerkerker 4d98267cd9 Add service icons to Geniushub (#113301) 2024-03-14 13:45:03 +01:00
Joost Lekkerkerker 46ec25b2ef Add service icons to Habitica (#113303) 2024-03-14 13:44:52 +01:00
Joost Lekkerkerker d88bebc255 Add service icons to Home Assistant (#113307) 2024-03-14 13:43:17 +01:00
Joost Lekkerkerker 3326fe6357 Add service icons to Homematic (#113308) 2024-03-14 13:40:24 +01:00
Joost Lekkerkerker 223e63b2d3 Add service icons to HTML5 (#113309) 2024-03-14 13:39:41 +01:00
Joost Lekkerkerker 95f269ef70 Add service icons to IHC (#113311) 2024-03-14 13:39:09 +01:00
Joost Lekkerkerker 41be0487c6 Add service icons to Input Number (#113315) 2024-03-14 13:38:56 +01:00
Joost Lekkerkerker 5573dbc5a7 Add service icons to Input button (#113313) 2024-03-14 13:38:47 +01:00
Joost Lekkerkerker b6906d963b Add service icons to Input Select (#113316) 2024-03-14 13:36:30 +01:00
Joost Lekkerkerker 645a108e78 Add service icons to Input Text (#113317) 2024-03-14 13:36:03 +01:00
Joost Lekkerkerker d79a8393de Add service icons to Intent Script (#113318) 2024-03-14 13:35:43 +01:00
Joost Lekkerkerker be36626910 Add service icons to Iperf3 (#113319) 2024-03-14 13:35:14 +01:00
Joost Lekkerkerker 557e389159 Add service icons to Keba (#113320) 2024-03-14 13:34:42 +01:00
Joost Lekkerkerker 58f216fc89 Add service icons to Kef (#113321) 2024-03-14 13:33:53 +01:00
Joost Lekkerkerker ca34fb3fbb Add service icons to Keyboard (#113322) 2024-03-14 13:33:01 +01:00
Joost Lekkerkerker 246ec0476f Add service icons to Local file (#113323) 2024-03-14 13:32:30 +01:00
Joost Lekkerkerker c94fb8f660 Add service icons to Logi circle (#113326) 2024-03-14 13:29:22 +01:00
Joost Lekkerkerker f9c1ed42a9 Add service icons to Lovelace (#113327) 2024-03-14 13:29:10 +01:00
Joost Lekkerkerker 03e6e2577a Add service icons to Matrix (#113328)
* Add service icons to Matrix

* Update homeassistant/components/matrix/icons.json
2024-03-14 13:27:38 +01:00
Joost Lekkerkerker bb97063c48 Add service icons to Ness alarm (#113333) 2024-03-14 13:25:54 +01:00
Joost Lekkerkerker 75b4cd2733 Add service icons to Minio (#113331) 2024-03-14 13:25:45 +01:00
Joost Lekkerkerker e303a6dae9 Add service icons to Microsoft Face (#113330) 2024-03-14 13:25:37 +01:00
Joost Lekkerkerker 6442d13a71 Add service icons to Media Extractor (#113329) 2024-03-14 13:25:27 +01:00
Joost Lekkerkerker bac5a4d867 Add service icons to Netatmo (#113335) 2024-03-14 13:20:36 +01:00
Joost Lekkerkerker d58ab85919 Add service icons to Nissan Leaf (#113336) 2024-03-14 13:20:28 +01:00
Joost Lekkerkerker 353b1cd08f Add service icons to nx584 (#113338) 2024-03-14 13:18:04 +01:00
Joost Lekkerkerker 2f16774f66 Add service icons to Pilight (#113341) 2024-03-14 13:16:58 +01:00
Joost Lekkerkerker 415402e7dc Add service icons to Python Scripts (#113342) 2024-03-14 13:16:12 +01:00
Joost Lekkerkerker 821a235c59 Add service icons to QVR Pro (#113343) 2024-03-14 13:15:25 +01:00
Joost Lekkerkerker 8c13b817ea Add service icons to Xiaomi Miio (#113364) 2024-03-14 13:15:11 +01:00
Joost Lekkerkerker bfe6d0873a Add service icons to Remember the milk (#113345) 2024-03-14 13:14:48 +01:00
Joost Lekkerkerker 98c250b910 Add service icons to RFLink (#113348)
* Add service icons to RFLink

* Update homeassistant/components/rflink/icons.json
2024-03-14 13:14:15 +01:00
Joost Lekkerkerker b8d232ab7f Add service icons to Route53 (#113349) 2024-03-14 13:12:51 +01:00
Joost Lekkerkerker 2a2f95ce8e Add service icons to Telegram (#113356) 2024-03-14 13:12:43 +01:00
Joost Lekkerkerker ca1c247574 Add service icons to Toon (#113359) 2024-03-14 13:12:20 +01:00
Joost Lekkerkerker 13a2db0348 Add service icons to Telegram bot (#113357) 2024-03-14 13:12:03 +01:00
Joost Lekkerkerker 5f48083eca Add service icons to Wemo (#113363) 2024-03-14 13:11:55 +01:00
Joost Lekkerkerker ffe6810769 Add service icons to Yamaha (#113365) 2024-03-14 13:05:43 +01:00
Franck Nijhof 064f96f8fa Add floor support to areas WebSocket API (#113402) 2024-03-14 12:55:31 +01:00
Joakim Sørensen a6594f8860 Bump hass-nabucasa from 0.78.0 to 0.79.0 (#113405) 2024-03-14 12:54:43 +01:00
jan iversen 7696973932 Move modbus check_config to setup, to have access to hass (#112828) 2024-03-14 12:54:01 +01:00
Joost Lekkerkerker 77a67191de Add service icons to Ombi (#113339) 2024-03-14 11:42:40 +01:00
Joost Lekkerkerker 1c56c7b136 Add service icons to Snips (#113352) 2024-03-14 11:42:12 +01:00
Joost Lekkerkerker 374695bfa6 Add service icons to Recorder (#113344) 2024-03-14 11:41:43 +01:00
Joost Lekkerkerker 4f120ea223 Add service icons to Schedule (#113350) 2024-03-14 11:41:09 +01:00
Joost Lekkerkerker eeaf8ddd69 Add service icons to SMTP (#113351) 2024-03-14 11:40:46 +01:00
Joost Lekkerkerker 11e69f6baa Add service icons to Timer (#113358) 2024-03-14 11:40:22 +01:00
Joost Lekkerkerker 4c3943e264 Add service icons to System Bridge (#113354) 2024-03-14 11:35:43 +01:00
Chris Talkington 05c0416644 Bump pyipp to 0.15.0 (#113204)
update pyipp to 0.15.0
2024-03-14 11:05:33 +01:00
Joost Lekkerkerker 246017b3fa Add service icons to Alert (#113274) 2024-03-14 11:03:13 +01:00
Joost Lekkerkerker cd902c917c Add service icons to Universal (#113361) 2024-03-14 11:00:27 +01:00
Joost Lekkerkerker 73af5f5be1 Add service icons to Statistics (#113353) 2024-03-14 10:59:49 +01:00
Joost Lekkerkerker ca916bcc98 Add service icons to System Log (#113355) 2024-03-14 10:59:28 +01:00
Joost Lekkerkerker fc85b4f123 Add service icons to Wake on LAN (#113362) 2024-03-14 10:59:01 +01:00
Thomas55555 63e3da1aca Add loggers to Husqvarna Automower (#113381) 2024-03-14 10:58:24 +01:00
Mike Degatano 6ca837b4e1 Supervisor issues update retries on failure (#113373) 2024-03-14 10:57:27 +01:00
Mike Degatano 45ef5a3edf Apply suggestion failures fail supervisor repair (#113372) 2024-03-14 10:57:24 +01:00
Chris Talkington 297c7c11fc Add diagnostics for IPP (#113205) 2024-03-14 10:57:21 +01:00
J. Nick Koston cda9bf7051 Fix failing google diagnostics test (#113095) 2024-03-14 10:57:17 +01:00
Jonny Bergdahl eb04365590 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-14 10:57:13 +01:00
Mike Degatano 5a25349cf7 Supervisor issues update retries on failure (#113373) 2024-03-14 10:55:04 +01:00
Mike Degatano 6d903300be Apply suggestion failures fail supervisor repair (#113372) 2024-03-14 10:53:55 +01:00
J. Nick Koston 6832611550 Fix smartthings doing blocking I/O in the event loop to import platforms (#113382) 2024-03-14 10:47:18 +01:00
Joost Lekkerkerker 972efada75 Add service icons to Zoneminder (#113366) 2024-03-14 10:46:52 +01:00
J. Nick Koston c466008fb4 Migrate sun to use single_config_entry (#113370) 2024-03-14 10:45:59 +01:00
J. Nick Koston c122e32d20 Fix telegram_bot doing blocking I/O in the event loop to import platforms (#113383) 2024-03-14 10:45:11 +01:00
J. Nick Koston 4341b21a61 Migrate auth to use async_import_module to avoid blocking I/O in the event loop (#113387) 2024-03-14 10:44:36 +01:00
Steven B 4aec48d358 Update ring integration imports (#113397)
Update ring imports for patching where library is created
2024-03-14 10:44:17 +01:00
Erik Montnemery 9eea786411 Remove old migration from lovelace (#113388) 2024-03-14 10:43:55 +01:00
Joost Lekkerkerker 7ae852e5ed Enable ISC ruff rule (#113270) 2024-03-14 10:43:03 +01:00
Joost Lekkerkerker 05172d8e4d Improve loops and lists (#113269)
* Enable PERF

* Enable PERF rule

* Enable PERF rule

* Don't enable flag yet
2024-03-14 10:22:20 +01:00
Joost Lekkerkerker 8a98fb7cfd Add service icons to Filter (#113295) 2024-03-14 10:21:38 +01:00
tronikos de726d0e6e Add virtual integration Sacramento Municipal Utility District (SMUD) (#113389)
smud
2024-03-14 09:55:37 +01:00
Joost Lekkerkerker fd9cc3a53e Add service icons to Debug py (#113287) 2024-03-14 09:50:53 +01:00
dependabot[bot] e9e5712c31 Bump docker/login-action from 3.0.0 to 3.1.0 (#113384)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-14 09:48:46 +01:00
tronikos bc6917552f Bump gassist-text to 0.0.11 (#113386)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-13 22:47:09 -10:00
tronikos 438215f220 Bump opower to 0.4.0 (#113390) 2024-03-13 22:46:44 -10:00
Thomas55555 33c75bfd36 Add loggers to Husqvarna Automower (#113381) 2024-03-14 09:29:11 +01:00
Joost Lekkerkerker 34b1f848c1 Add service icons to Unifi (#113360) 2024-03-14 07:04:39 +01:00
Chris Talkington fe99d80054 Add diagnostics for IPP (#113205) 2024-03-14 00:44:07 -05:00
J. Nick Koston c1f5c7c4b7 Remove usage of async_add_job in tests (#113259) 2024-03-13 19:33:33 -10:00
J. Nick Koston c3b5e819c5 Fix group loading too late resulting in incorrect state (#113262) 2024-03-13 19:18:15 -10:00
Joost Lekkerkerker 4ed3ea3b02 Add service icons to REST command (#113347) 2024-03-14 06:10:48 +01:00
J. Nick Koston 4f326df088 Remove async_add_job calls from qwikswitch (#113258) 2024-03-13 18:34:37 -10:00
J. Nick Koston cfe14bca8f Add a helper to import modules from the event loop (#113169)
* Add a helper to import modules in the event loop

Replaces the one used for triggers with a more generic helper
that can be reused and uses a future to avoid importing concurrently

* Add a helper to import modules in the event loop

Replaces the one used for triggers with a more generic helper
that can be reused and uses a future to avoid importing concurrently

* coverage

* make sure we do not retry

* coverage
2024-03-14 00:26:33 -04:00
J. Nick Koston 4f113f256f Migrate script integration to create eager tasks (#113189)
Along with #113183 the script execution may be able to
synchronously without having to be scheduled on the event loop
2024-03-14 00:23:25 -04:00
J. Nick Koston 9d1c683a70 Remove async_add_job calls from configurator (#113256)
The plan is to deprecate `async_add_job` to reduce the number of job APIs we have to maintain.

See #113179 for additional history.

This one got the smallest change possible since its likely to go away as
well at some point
2024-03-14 00:22:40 -04:00
J. Nick Koston 7f37732e71 Migrate solax away from using async_add_job (#113257)
The plan is to deprecate `async_add_job` to reduce the number of job APIs we have to maintain.

See #113179 for additional history.

`async_add_job` was not being used as expected here
2024-03-14 00:22:15 -04:00
J. Nick Koston 9ef0a8cb95 Add default_config to the bootstrap pre-imports (#113263)
This does not make default_config a requirement, it only preloads
the python code for the integration so it does not have to be loaded
when the import executor is busy. While its a tiny init file, it always
ends up at the end of the line and delays startup
2024-03-14 00:15:19 -04:00
J. Nick Koston 870caf90c1 Bump ha-ffmpeg to 3.2.0 (#113297)
No longer needs to use the executor to run subprocesses

changelog: https://github.com/home-assistant-libs/ha-ffmpeg/compare/3.1.0...3.2.0
2024-03-14 00:14:13 -04:00
J. Nick Koston 9940f51b95 Avoid pre-importing config_flows if the integration does not support migration (#113369)
* Avoid pre-importing config_flows if the integration does support migration

Currently we pre-import the config flow module if it exists since
setting up the config entry required comparing the versions found
in the config_flow.py. We can avoid the pre-import if the integration
does not support async_migrate_entry which means we avoid loading
many config flows in memory at startup.

* cover

* fix missing block

* do not call directly

* its too fast now, the test gets more along

* Update homeassistant/loader.py
2024-03-14 00:13:40 -04:00
Marc Mueller d1d28dbfb8 Fix uv cache dir env [ci] (#113312) 2024-03-14 05:01:57 +01:00
J. Nick Koston 6338c8d86e Bump aiodiscover to 2.0.0 (#113337) 2024-03-13 17:24:33 -10:00
J. Nick Koston 3d1a65a1c3 Bump bluetooth-auto-recovery to 1.4.0 (#113368) 2024-03-13 17:13:22 -10:00
J. Nick Koston 9e645e1b00 Bump aiodns to 3.1.1 (#113371) 2024-03-13 16:46:40 -10:00
J. Nick Koston e0828f1efc Ensure apple_tv setup retries later on timeout (#113367) 2024-03-13 15:12:13 -10:00
Joost Lekkerkerker 1abb448106 Add service icons to Command line (#113285) 2024-03-13 14:07:52 -10: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
Franck Nijhof b88cdd78bc Hotfix import error in ZHA for 2024.3.1 patch release (#113250) 2024-03-13 19:35:43 +01:00
J. Nick Koston 41215aa954 Remove remaining async_add_job calls in core (#113217) 2024-03-13 19:29:21 +01:00
Franck Nijhof 525b20ca8e Bump version to 2024.3.1 2024-03-13 19:15:13 +01:00
Maciej Bieniek 5769ba023c Bump brother library to version 4.0.2 (#113235)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-03-13 19:14:09 +01:00
Chris Talkington f7da6b5e81 Bump rokuecp to 0.19.2 (#113198) 2024-03-13 19:14:05 +01:00
Ståle Storø Hauknes 6fdfc554a6 Bump airthings_ble to 0.7.1 (#113172)
Co-authored-by: Ståle Storø Hauknes <LaStrada@users.noreply.github.com>
2024-03-13 19:14:01 +01:00
Michael Hansen 962e5ec92a Bump intents to 2023.3.12 (#113160)
Bump intents
2024-03-13 19:13:57 +01:00
Stefan Agner 095d0d0779 Add message from Bad Request errors to HassioAPIError (#113144)
Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
2024-03-13 19:13:50 +01:00
Josef Zweck d010df7116 bump pytedee_async to 0.2.16 (#113135) 2024-03-13 19:13:07 +01:00
J. Nick Koston a63bf74886 Bump aiodhcpwatcher to 0.8.1 (#113096) 2024-03-13 19:12:19 +01:00
Robert Svensson cac22154a8 Bump axis to v54 (#113091)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-13 19:12:15 +01:00
Marcel van der Veldt 0b2322c466 Fix colormode attribute on grouped Hue light (#113071) 2024-03-13 19:12:12 +01:00
Lukas de Boer 66cd6c0d23 Bump rova to 0.4.1 (#113066) 2024-03-13 19:12:08 +01:00
Marcel van der Veldt a2e9ecfcde Fix for controlling Hue switch entities (#113064) 2024-03-13 19:12:05 +01:00
Alistair Francis 8ac5da95f8 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-13 19:12:01 +01:00
Folke Lemaitre 911b39666d Fix hvac_mode for viessmann devices with heatingCooling mode (#113054) 2024-03-13 19:11:56 +01:00
Scott K Logan 2dbc63809d 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-13 19:10:59 +01:00
Allen Porter a448c904d3 Bump ical to 7.0.1 and always use home assistant timezone for local todo dtstart (#113034) 2024-03-13 19:09:15 +01:00
Maciej Bieniek 7b5f879305 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-13 19:08:24 +01:00
Robert Svensson 76cf25228f Bump axis to v53 (#113019) 2024-03-13 19:07:18 +01:00
Ernst Klamer bbe88c2a5e Bump bthome-ble to 3.8.0 (#113008)
Bump bthome-ble
2024-03-13 19:07:14 +01:00
David Knowles def4f3cb09 Add missing translation placeholder in Hydrawise (#113007)
Add missing translation placeholder
2024-03-13 19:07:11 +01:00
星野SKY 0d262ea9d4 Bump boschshcpy to 0.2.82 (#112890) 2024-03-13 19:07:08 +01:00
J. Nick Koston fc2ca1646a 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-13 19:07:04 +01:00
Jan Bouwhuis 2d7de216a7 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-13 19:07:01 +01:00
mrchi 8f2f9b8184 Bump openwrt-luci-rpc version to 1.1.17 (#112796) 2024-03-13 19:06:58 +01:00
Lex Li 93a01938a4 Upgrade pysnmp-lextudio to version 6.0.9 (#112795) 2024-03-13 19:06:55 +01:00
Shay Levy 70389521bf Bump bthome-ble to 3.7.0 (#112783) 2024-03-13 19:06:52 +01:00
Arie Catsman 3f22ad4eac Bump pyenphase to 1.19.2 (#112747) 2024-03-13 19:06:48 +01:00
Allen Porter d99b9f7a70 Fix local calendar handling of empty recurrence ids (#112745)
* Fix handling of empty recurrence ids

* Revert logging changes
2024-03-13 19:06:45 +01:00
J. Nick Koston 5a125bf379 Guard against db corruption when renaming entities (#112718) 2024-03-13 19:06:41 +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
jan iversen f7b64244b8 Allow duplicate names in different modbus entities (#112701)
Allow duplicate names in different entities.
2024-03-13 19:05:36 +01:00
Maciej Bieniek c2543289b7 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-13 19:03:51 +01:00
Alin Balutoiu 9e977f2c70 Fix tado climate service (#112686) 2024-03-13 19:03:47 +01:00
Aaron Bach e95ce2d390 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-13 19:03:42 +01:00
Aaron Bach 503fbfc038 Bump aionotion to 2024.03.0 (#112675) 2024-03-13 19:03:39 +01:00
Jeef 23fee438a9 Bump weatherflow4py to 0.1.17 (#112661) 2024-03-13 19:03:36 +01:00
Mike Woudenberg 1f9e369b73 Update Loqed helper for more logging (#112646)
Updates Loqed helper for more logging
2024-03-13 19:03:33 +01:00
Robert Svensson 403013b7bd Bump axis to v52 (#112632)
* Bump axis to v51

* Bump to v52
2024-03-13 19:03:30 +01:00
jan iversen e348c7b043 Bump pymodbus to v3.6.5 (#112629) 2024-03-13 19:03:25 +01:00
Thomas55555 4db36d5ea9 Bump aioautomower to 2024.3.0 (#112627)
Fix error in Husqvarna automower in Zones dataclass
2024-03-13 19:02:32 +01:00
Erik Montnemery aebbee681c Make hass-nabucasa a core requirement (#112623) 2024-03-13 18:50:48 +01:00
Bram Kragten 2985ab3922 Update frontend to 20240307.0 (#112620) 2024-03-13 18:47:04 +01:00
jan iversen aa374944a1 modbus scan_interval: 0 is correct configuration (#112619) 2024-03-13 18:46:59 +01:00
jan iversen 84d14cad7f Issue warning modbus configuration when modbus configuration is empty (#112618) 2024-03-13 18:45:53 +01:00
Josef Zweck b9a14d5eb5 Include pytedee_async logger in tedee integration (#112590)
add pytedee logger
2024-03-13 18:42:02 +01:00
Mr. Bubbles 4514f08a42 Fix incorrect filtering of unsupported locales in bring-api (#112589) 2024-03-13 18:40:54 +01:00
Erik Montnemery 2689f78925 Restore the juicenet integration (#112578) 2024-03-13 18:39:46 +01:00
Jeef 85b63c16e9 Bump weatherflow4py to 0.1.14 (#112554)
adding missing rain states
2024-03-13 18:35:59 +01:00
Jeef 4b387b5d77 Weatherflow_cloud backing lib bump (#112262)
Backing lib bump
2024-03-13 18:35:53 +01:00
Michael Hansen fba6e5f065 Bump intents to 2024.3.6 (#112515) 2024-03-13 18:33:28 +01:00
puddly 095aab5f9d 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-13 18:33:25 +01:00
Henning Claßen c60f203aab 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-13 18:33:22 +01:00
Steven Looman 57c8d47ff3 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-13 18:33:19 +01:00
On Freund e087ea5345 Use friendly name for camera media source (#110882) 2024-03-13 18:33:15 +01:00
FieldofClay 3c4bdebcda Ignore AussieBroadband services that don't support usage information (#110253) 2024-03-13 18:33:12 +01:00
mattmccormack 6f6f37ca24 Add auto fan mode icon (#110185) 2024-03-13 18:33:09 +01:00
Jan Stienstra 649dd433d5 Fix optional Jellyfin RunTimeTicks (#108254) 2024-03-13 18:33:00 +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
Franck Nijhof 1aa5a07501 2024.3.0 (#112516) 2024-03-06 18:52:11 +01:00
Franck Nijhof efe9938b33 Bump version to 2024.3.0 2024-03-06 18:37:11 +01: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
Franck Nijhof 1b64989909 Bump version to 2024.3.0b8 2024-03-06 15:03:47 +01:00
Erik Montnemery b480b68e3e Allow start_time >= 1.1.7 (#112500) 2024-03-06 15:03:23 +01:00
Josef Zweck 5294b492fc Bump pytedee_async to 0.2.15 (#112495) 2024-03-06 15:03:19 +01:00
Bram Kragten 080fe4cf5f Update frontend to 20240306.0 (#112492) 2024-03-06 15:03:16 +01:00
Erik Montnemery 8b2f40390b 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 15:01:25 +01:00
Thomas55555 3b63719fad 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 14:58:08 +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
Paulus Schoutsen bc47c80bbf 2024.2.5 (#111648) 2024-02-27 13:23:44 -05:00
Paulus Schoutsen aabaa30fa7 2024.2.4 (#111441) 2024-02-26 11:17:13 -05:00
Franck Nijhof 1ee39275fc 2024.2.3 (#111133) 2024-02-22 16:08:18 +01:00
10471 changed files with 142939 additions and 68538 deletions
+29 -7
View File
@@ -202,6 +202,7 @@ omit =
homeassistant/components/control4/__init__.py
homeassistant/components/control4/director_utils.py
homeassistant/components/control4/light.py
homeassistant/components/control4/media_player.py
homeassistant/components/coolmaster/coordinator.py
homeassistant/components/cppm_tracker/device_tracker.py
homeassistant/components/crownstone/__init__.py
@@ -250,7 +251,7 @@ omit =
homeassistant/components/dormakaba_dkey/lock.py
homeassistant/components/dormakaba_dkey/sensor.py
homeassistant/components/dovado/*
homeassistant/components/downloader/*
homeassistant/components/downloader/__init__.py
homeassistant/components/dsmr_reader/__init__.py
homeassistant/components/dsmr_reader/definitions.py
homeassistant/components/dsmr_reader/sensor.py
@@ -461,6 +462,10 @@ omit =
homeassistant/components/frontier_silicon/browse_media.py
homeassistant/components/frontier_silicon/media_player.py
homeassistant/components/futurenow/light.py
homeassistant/components/fyta/__init__.py
homeassistant/components/fyta/coordinator.py
homeassistant/components/fyta/entity.py
homeassistant/components/fyta/sensor.py
homeassistant/components/garadget/cover.py
homeassistant/components/garages_amsterdam/__init__.py
homeassistant/components/garages_amsterdam/binary_sensor.py
@@ -545,7 +550,6 @@ omit =
homeassistant/components/homematic/notify.py
homeassistant/components/homematic/sensor.py
homeassistant/components/homematic/switch.py
homeassistant/components/homeworks/*
homeassistant/components/horizon/media_player.py
homeassistant/components/hp_ilo/sensor.py
homeassistant/components/huawei_lte/__init__.py
@@ -639,6 +643,12 @@ omit =
homeassistant/components/izone/climate.py
homeassistant/components/izone/discovery.py
homeassistant/components/joaoapps_join/*
homeassistant/components/juicenet/__init__.py
homeassistant/components/juicenet/device.py
homeassistant/components/juicenet/entity.py
homeassistant/components/juicenet/number.py
homeassistant/components/juicenet/sensor.py
homeassistant/components/juicenet/switch.py
homeassistant/components/justnimbus/coordinator.py
homeassistant/components/justnimbus/entity.py
homeassistant/components/justnimbus/sensor.py
@@ -738,7 +748,6 @@ omit =
homeassistant/components/lyric/climate.py
homeassistant/components/lyric/sensor.py
homeassistant/components/mailgun/notify.py
homeassistant/components/map/*
homeassistant/components/mastodon/notify.py
homeassistant/components/matrix/__init__.py
homeassistant/components/matrix/notify.py
@@ -767,9 +776,11 @@ omit =
homeassistant/components/microbees/__init__.py
homeassistant/components/microbees/api.py
homeassistant/components/microbees/application_credentials.py
homeassistant/components/microbees/binary_sensor.py
homeassistant/components/microbees/button.py
homeassistant/components/microbees/const.py
homeassistant/components/microbees/coordinator.py
homeassistant/components/microbees/cover.py
homeassistant/components/microbees/entity.py
homeassistant/components/microbees/light.py
homeassistant/components/microbees/sensor.py
@@ -795,6 +806,11 @@ omit =
homeassistant/components/motion_blinds/cover.py
homeassistant/components/motion_blinds/entity.py
homeassistant/components/motion_blinds/sensor.py
homeassistant/components/motionblinds_ble/__init__.py
homeassistant/components/motionblinds_ble/button.py
homeassistant/components/motionblinds_ble/cover.py
homeassistant/components/motionblinds_ble/entity.py
homeassistant/components/motionblinds_ble/select.py
homeassistant/components/motionmount/__init__.py
homeassistant/components/motionmount/binary_sensor.py
homeassistant/components/motionmount/entity.py
@@ -882,6 +898,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
@@ -917,7 +934,6 @@ omit =
homeassistant/components/onvif/sensor.py
homeassistant/components/onvif/util.py
homeassistant/components/open_meteo/weather.py
homeassistant/components/opencv/*
homeassistant/components/openevse/sensor.py
homeassistant/components/openexchangerates/__init__.py
homeassistant/components/openexchangerates/coordinator.py
@@ -940,7 +956,9 @@ omit =
homeassistant/components/openuv/binary_sensor.py
homeassistant/components/openuv/coordinator.py
homeassistant/components/openuv/sensor.py
homeassistant/components/openweathermap/__init__.py
homeassistant/components/openweathermap/sensor.py
homeassistant/components/openweathermap/weather.py
homeassistant/components/openweathermap/weather_update_coordinator.py
homeassistant/components/opnsense/__init__.py
homeassistant/components/opower/__init__.py
@@ -982,7 +1000,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
@@ -1049,6 +1069,7 @@ omit =
homeassistant/components/rabbitair/fan.py
homeassistant/components/rachio/__init__.py
homeassistant/components/rachio/binary_sensor.py
homeassistant/components/rachio/coordinator.py
homeassistant/components/rachio/device.py
homeassistant/components/rachio/entity.py
homeassistant/components/rachio/switch.py
@@ -1121,6 +1142,7 @@ omit =
homeassistant/components/rocketchat/notify.py
homeassistant/components/romy/__init__.py
homeassistant/components/romy/coordinator.py
homeassistant/components/romy/entity.py
homeassistant/components/romy/vacuum.py
homeassistant/components/roomba/__init__.py
homeassistant/components/roomba/binary_sensor.py
@@ -1135,7 +1157,6 @@ omit =
homeassistant/components/roon/media_player.py
homeassistant/components/roon/server.py
homeassistant/components/route53/*
homeassistant/components/rova/sensor.py
homeassistant/components/rpi_camera/*
homeassistant/components/rtorrent/sensor.py
homeassistant/components/ruuvi_gateway/__init__.py
@@ -1173,7 +1194,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
@@ -1275,6 +1295,7 @@ omit =
homeassistant/components/starlink/device_tracker.py
homeassistant/components/starlink/sensor.py
homeassistant/components/starlink/switch.py
homeassistant/components/starlink/time.py
homeassistant/components/starline/__init__.py
homeassistant/components/starline/account.py
homeassistant/components/starline/binary_sensor.py
@@ -1419,6 +1440,7 @@ omit =
homeassistant/components/tolo/number.py
homeassistant/components/tolo/select.py
homeassistant/components/tolo/sensor.py
homeassistant/components/tolo/switch.py
homeassistant/components/toon/__init__.py
homeassistant/components/toon/binary_sensor.py
homeassistant/components/toon/climate.py
@@ -1588,7 +1610,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
@@ -1671,6 +1692,7 @@ omit =
homeassistant/components/yolink/services.py
homeassistant/components/yolink/siren.py
homeassistant/components/yolink/switch.py
homeassistant/components/yolink/valve.py
homeassistant/components/youless/__init__.py
homeassistant/components/youless/sensor.py
homeassistant/components/zabbix/*
+1
View File
@@ -21,6 +21,7 @@
],
// Please keep this file in sync with settings in home-assistant/.vscode/settings.default.json
"settings": {
"python.experiments.optOutFrom": ["pythonTestAdapter"],
"python.pythonPath": "/usr/local/bin/python",
"python.testing.pytestArgs": ["--no-cov"],
"editor.formatOnPaste": false,
+14
View File
@@ -0,0 +1,14 @@
# Black
4de97abc3aa83188666336ce0a015a5bab75bc8f
# Switch formatting from black to ruff-format (#102893)
706add4a57120a93d7b7fe40e722b00d634c76c2
# Prettify json (component test fixtures) (#68892)
053c4428a933c3c04c22642f93c93fccba3e8bfd
# Prettify json (tests) (#68888)
496d90bf00429d9d924caeb0155edc0bf54e86b9
# Bump ruff to 0.3.4 (#112690)
6bb4e7d62c60389608acf4a7d7dacd8f029307dd
+129 -97
View File
@@ -12,6 +12,8 @@ env:
BUILD_TYPE: core
DEFAULT_PYTHON: "3.12"
PIP_TIMEOUT: 60
UV_HTTP_TIMEOUT: 60
UV_SYSTEM_PYTHON: "true"
jobs:
init:
@@ -25,12 +27,12 @@ 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
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.0.0
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
@@ -49,41 +51,29 @@ jobs:
with:
ignore-dev: true
build_python:
name: Build PyPi package
environment: ${{ needs.init.outputs.channel }}
needs: ["init", "build_base"]
runs-on: ubuntu-latest
if: github.repository_owner == 'home-assistant' && needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.0.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Fail if translations files are checked in
run: |
if [ -n "$(find homeassistant/components/*/translations -type f)" ]; then
echo "Translations files are checked in, please remove the following files:"
find homeassistant/components/*/translations -type f
exit 1
fi
- name: Download Translations
run: python3 -m script.translations download
env:
LOKALISE_TOKEN: ${{ secrets.LOKALISE_TOKEN }}
- name: Build package
- name: Archive translations
shell: bash
run: |
# Remove dist, build, and homeassistant.egg-info
# when build locally for testing!
pip install twine build
python -m build
run: find ./homeassistant/components/*/translations -name "*.json" | tar zcvf translations.tar.gz -T -
- name: Upload package
shell: bash
run: |
export TWINE_USERNAME="__token__"
export TWINE_PASSWORD="${{ secrets.TWINE_TOKEN }}"
twine upload dist/* --skip-existing
- name: Upload translations
uses: actions/upload-artifact@v4.3.1
with:
name: translations
path: translations.tar.gz
if-no-files-found: error
build_base:
name: Build ${{ matrix.arch }} base core image
@@ -95,15 +85,16 @@ jobs:
packages: write
id-token: write
strategy:
fail-fast: false
matrix:
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'
uses: dawidd6/action-download-artifact@v3.1.2
uses: dawidd6/action-download-artifact@v3.1.4
with:
github_token: ${{secrets.GITHUB_TOKEN}}
repo: home-assistant/frontend
@@ -114,7 +105,7 @@ jobs:
- name: Download nightly wheels of intents
if: needs.init.outputs.channel == 'dev'
uses: dawidd6/action-download-artifact@v3.1.2
uses: dawidd6/action-download-artifact@v3.1.4
with:
github_token: ${{secrets.GITHUB_TOKEN}}
repo: home-assistant/intents-package
@@ -125,17 +116,20 @@ jobs:
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v5.0.0
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Adjust nightly version
if: needs.init.outputs.channel == 'dev'
shell: bash
env:
UV_PRERELEASE: allow
run: |
python3 -m pip install packaging tomli
python3 -m pip install .
version="$(python3 script/version_bump.py nightly)"
python3 -m pip install "$(grep '^uv' < requirements_test.txt)"
uv pip install packaging tomli
uv pip install .
python3 script/version_bump.py nightly --set-nightly-version "${{ needs.init.outputs.version }}"
if [[ "$(ls home_assistant_frontend*.whl)" =~ ^home_assistant_frontend-(.*)-py3-none-any.whl$ ]]; then
echo "Found frontend wheel, setting version to: ${BASH_REMATCH[1]}"
@@ -147,7 +141,7 @@ jobs:
sed -i "s|home-assistant-frontend==.*|home-assistant-frontend==${BASH_REMATCH[1]}|" \
homeassistant/package_constraints.txt
python -m script.gen_requirements_all
sed -i "s|home-assistant-frontend==.*||" requirements_all.txt
fi
if [[ "$(ls home_assistant_intents*.whl)" =~ ^home_assistant_intents-(.*)-py3-none-any.whl$ ]]; then
@@ -165,7 +159,7 @@ jobs:
sed -i "s|home-assistant-intents==.*|home-assistant-intents==${BASH_REMATCH[1]}|" \
homeassistant/package_constraints.txt
python -m script.gen_requirements_all
sed -i "s|home-assistant-intents==.*||" requirements_all.txt
fi
- name: Adjustments for armhf
@@ -189,10 +183,15 @@ jobs:
# are not available.
sed -i "s|aiohttp-zlib-ng|aiohttp-zlib-ng\[isal\]|g" requirements_all.txt
- name: Download Translations
run: python3 -m script.translations download
env:
LOKALISE_TOKEN: ${{ secrets.LOKALISE_TOKEN }}
- name: Download translations
uses: actions/download-artifact@v4.1.4
with:
name: translations
- name: Extract translations
run: |
tar xvf translations.tar.gz
rm translations.tar.gz
- name: Write meta info file
shell: bash
@@ -200,14 +199,14 @@ jobs:
echo "${{ github.sha }};${{ github.ref }};${{ github.event_name }};${{ github.actor }}" > rootfs/OFFICIAL_IMAGE
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.0.0
uses: docker/login-action@v3.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2024.01.0
uses: home-assistant/builder@2024.03.5
with:
args: |
$BUILD_ARGS \
@@ -216,17 +215,6 @@ jobs:
--target /data \
--generic ${{ needs.init.outputs.version }}
- name: Archive translations
shell: bash
run: find ./homeassistant/components/*/translations -name "*.json" | tar zcvf translations.tar.gz -T -
- name: Upload translations
uses: actions/upload-artifact@v3
with:
name: translations
path: translations.tar.gz
if-no-files-found: error
build_machine:
name: Build ${{ matrix.machine }} machine core image
if: github.repository_owner == 'home-assistant'
@@ -263,7 +251,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: |
@@ -277,14 +265,14 @@ jobs:
fi
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.0.0
uses: docker/login-action@v3.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build base image
uses: home-assistant/builder@2024.01.0
uses: home-assistant/builder@2024.03.5
with:
args: |
$BUILD_ARGS \
@@ -300,7 +288,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
@@ -336,23 +324,28 @@ jobs:
contents: read
packages: write
id-token: write
strategy:
matrix:
registry: ["ghcr.io/home-assistant", "docker.io/homeassistant"]
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
with:
cosign-release: "v2.0.2"
cosign-release: "v2.2.3"
- name: Login to DockerHub
uses: docker/login-action@v3.0.0
if: matrix.registry == 'docker.io/homeassistant'
uses: docker/login-action@v3.1.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.0.0
if: matrix.registry == 'ghcr.io/home-assistant'
uses: docker/login-action@v3.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
@@ -366,41 +359,37 @@ jobs:
function create_manifest() {
local tag_l=${1}
local tag_r=${2}
local registry=${{ matrix.registry }}
for registry in "ghcr.io/home-assistant" "docker.io/homeassistant"
do
docker manifest create "${registry}/home-assistant:${tag_l}" \
"${registry}/amd64-homeassistant:${tag_r}" \
"${registry}/i386-homeassistant:${tag_r}" \
"${registry}/armhf-homeassistant:${tag_r}" \
"${registry}/armv7-homeassistant:${tag_r}" \
"${registry}/aarch64-homeassistant:${tag_r}"
docker manifest create "${registry}/home-assistant:${tag_l}" \
"${registry}/amd64-homeassistant:${tag_r}" \
"${registry}/i386-homeassistant:${tag_r}" \
"${registry}/armhf-homeassistant:${tag_r}" \
"${registry}/armv7-homeassistant:${tag_r}" \
"${registry}/aarch64-homeassistant:${tag_r}"
docker manifest annotate "${registry}/home-assistant:${tag_l}" \
"${registry}/amd64-homeassistant:${tag_r}" \
--os linux --arch amd64
docker manifest annotate "${registry}/home-assistant:${tag_l}" \
"${registry}/amd64-homeassistant:${tag_r}" \
--os linux --arch amd64
docker manifest annotate "${registry}/home-assistant:${tag_l}" \
"${registry}/i386-homeassistant:${tag_r}" \
--os linux --arch 386
docker manifest annotate "${registry}/home-assistant:${tag_l}" \
"${registry}/i386-homeassistant:${tag_r}" \
--os linux --arch 386
docker manifest annotate "${registry}/home-assistant:${tag_l}" \
"${registry}/armhf-homeassistant:${tag_r}" \
--os linux --arch arm --variant=v6
docker manifest annotate "${registry}/home-assistant:${tag_l}" \
"${registry}/armhf-homeassistant:${tag_r}" \
--os linux --arch arm --variant=v6
docker manifest annotate "${registry}/home-assistant:${tag_l}" \
"${registry}/armv7-homeassistant:${tag_r}" \
--os linux --arch arm --variant=v7
docker manifest annotate "${registry}/home-assistant:${tag_l}" \
"${registry}/armv7-homeassistant:${tag_r}" \
--os linux --arch arm --variant=v7
docker manifest annotate "${registry}/home-assistant:${tag_l}" \
"${registry}/aarch64-homeassistant:${tag_r}" \
--os linux --arch arm64 --variant=v8
docker manifest annotate "${registry}/home-assistant:${tag_l}" \
"${registry}/aarch64-homeassistant:${tag_r}" \
--os linux --arch arm64 --variant=v8
docker manifest push --purge "${registry}/home-assistant:${tag_l}"
cosign sign --yes "${registry}/home-assistant:${tag_l}"
done
docker manifest push --purge "${registry}/home-assistant:${tag_l}"
cosign sign --yes "${registry}/home-assistant:${tag_l}"
}
function validate_image() {
@@ -433,12 +422,14 @@ jobs:
validate_image "ghcr.io/home-assistant/armv7-homeassistant:${{ needs.init.outputs.version }}"
validate_image "ghcr.io/home-assistant/aarch64-homeassistant:${{ needs.init.outputs.version }}"
# Upload images to dockerhub
push_dockerhub "amd64-homeassistant" "${{ needs.init.outputs.version }}"
push_dockerhub "i386-homeassistant" "${{ needs.init.outputs.version }}"
push_dockerhub "armhf-homeassistant" "${{ needs.init.outputs.version }}"
push_dockerhub "armv7-homeassistant" "${{ needs.init.outputs.version }}"
push_dockerhub "aarch64-homeassistant" "${{ needs.init.outputs.version }}"
if [[ "${{ matrix.registry }}" == "docker.io/homeassistant" ]]; then
# Upload images to dockerhub
push_dockerhub "amd64-homeassistant" "${{ needs.init.outputs.version }}"
push_dockerhub "i386-homeassistant" "${{ needs.init.outputs.version }}"
push_dockerhub "armhf-homeassistant" "${{ needs.init.outputs.version }}"
push_dockerhub "armv7-homeassistant" "${{ needs.init.outputs.version }}"
push_dockerhub "aarch64-homeassistant" "${{ needs.init.outputs.version }}"
fi
# Create version tag
create_manifest "${{ needs.init.outputs.version }}" "${{ needs.init.outputs.version }}"
@@ -459,3 +450,44 @@ jobs:
v="${{ needs.init.outputs.version }}"
create_manifest "${v%.*}" "${{ needs.init.outputs.version }}"
fi
build_python:
name: Build PyPi package
environment: ${{ needs.init.outputs.channel }}
needs: ["init", "build_base"]
runs-on: ubuntu-latest
if: github.repository_owner == 'home-assistant' && needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.2
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Download translations
uses: actions/download-artifact@v4.1.4
with:
name: translations
- name: Extract translations
run: |
tar xvf translations.tar.gz
rm translations.tar.gz
- name: Build package
shell: bash
run: |
# Remove dist, build, and homeassistant.egg-info
# when build locally for testing!
pip install twine build
python -m build
- name: Upload package
shell: bash
run: |
export TWINE_USERNAME="__token__"
export TWINE_PASSWORD="${{ secrets.TWINE_TOKEN }}"
twine upload dist/* --skip-existing
+82 -96
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,16 +222,16 @@ 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
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache@v4.0.0
uses: actions/cache@v4.0.2
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 "$(grep '^uv' < requirements_test.txt)"
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.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
lookup-only: true
@@ -267,16 +268,16 @@ 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
uses: actions/setup-python@v5.1.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.2
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.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -307,16 +308,16 @@ 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
uses: actions/setup-python@v5.1.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.2
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.2
with:
path: ${{ env.PRE_COMMIT_CACHE }}
fail-on-cache-miss: true
@@ -346,16 +347,16 @@ 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
uses: actions/setup-python@v5.1.0
id: python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore base Python virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.2
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.2
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
uses: actions/setup-python@v5.1.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.2
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.2
with:
path: ${{ env.PIP_CACHE }}
path: ${{ env.UV_CACHE_DIR }}
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 "$(grep '^uv' < requirements_test.txt)"
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,16 +510,16 @@ 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
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.2
with:
path: venv
fail-on-cache-miss: true
@@ -540,16 +542,16 @@ 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
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
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.2
with:
path: venv
fail-on-cache-miss: true
@@ -573,16 +575,16 @@ 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
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Restore full Python ${{ env.DEFAULT_PYTHON }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.2
with:
path: venv
fail-on-cache-miss: true
@@ -617,10 +619,10 @@ 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
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
@@ -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.2
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.2
with:
path: .mypy_cache
key: >-
@@ -699,16 +701,16 @@ 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
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.2
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,16 +848,16 @@ 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
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.2
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,16 +970,16 @@ 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
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Restore full Python ${{ matrix.python-version }} virtual environment
id: cache-venv
uses: actions/cache/restore@v4.0.0
uses: actions/cache/restore@v4.0.2
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@v2.1.0
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@v2.1.0
with:
action: codecov/codecov-action@v3.1.3
with: |
+3 -3
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.9
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.24.5
uses: github/codeql-action/analyze@v3.24.9
with:
category: "/language:python"
+2 -2
View File
@@ -19,10 +19,10 @@ 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
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
+7 -7
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
+4 -4
View File
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.2.1
rev: v0.3.4
hooks:
- id: ruff
args:
@@ -8,11 +8,11 @@ repos:
- id: ruff-format
files: ^((homeassistant|pylint|script|tests)/.+)?[^/]+\.py$
- repo: https://github.com/codespell-project/codespell
rev: v2.2.2
rev: v2.2.6
hooks:
- id: codespell
args:
- --ignore-words-list=additionals,alle,alot,bund,currenty,datas,farenheit,falsy,fo,haa,hass,iif,incomfort,ines,ist,nam,nd,pres,pullrequests,resset,rime,ser,serie,te,technik,ue,unsecure,withing,zar
- --ignore-words-list=additionals,alle,alot,astroid,bund,caf,convencional,currenty,datas,farenheit,falsy,fo,frequence,haa,hass,iif,incomfort,ines,ist,nam,nd,pres,pullrequests,resset,rime,ser,serie,te,technik,ue,unsecure,vor,withing,zar
- --skip="./.*,*.csv,*.json,*.ambr"
- --quiet-level=2
exclude_types: [csv, json]
@@ -30,7 +30,7 @@ repos:
- --branch=master
- --branch=rc
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.32.0
rev: v1.35.1
hooks:
- id: yamllint
- repo: https://github.com/pre-commit/mirrors-prettier
-1
View File
@@ -1,6 +1,5 @@
*.md
.strict-typing
azure-*.yml
homeassistant/components/*/translations/*.json
homeassistant/generated/*
tests/components/lidarr/fixtures/initialize.js
+1
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.*
-1
View File
@@ -1,5 +1,4 @@
ignore: |
azure-*.yml
tests/fixtures/core/config/yaml_errors/
rules:
braces:
+18 -7
View File
@@ -309,14 +309,16 @@ build.json @home-assistant/supervisor
/tests/components/doorbird/ @oblogic7 @bdraco @flacjacket
/homeassistant/components/dormakaba_dkey/ @emontnemery
/tests/components/dormakaba_dkey/ @emontnemery
/homeassistant/components/downloader/ @erwindouna
/tests/components/downloader/ @erwindouna
/homeassistant/components/dremel_3d_printer/ @tkdrob
/tests/components/dremel_3d_printer/ @tkdrob
/homeassistant/components/drop_connect/ @ChandlerSystems @pfrazer
/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
@@ -453,6 +455,8 @@ build.json @home-assistant/supervisor
/tests/components/frontier_silicon/ @wlcrs
/homeassistant/components/fully_kiosk/ @cgarwood
/tests/components/fully_kiosk/ @cgarwood
/homeassistant/components/fyta/ @dontinelli
/tests/components/fyta/ @dontinelli
/homeassistant/components/garages_amsterdam/ @klaasnicolaas
/tests/components/garages_amsterdam/ @klaasnicolaas
/homeassistant/components/gardena_bluetooth/ @elupus
@@ -568,8 +572,8 @@ build.json @home-assistant/supervisor
/tests/components/homekit/ @bdraco
/homeassistant/components/homekit_controller/ @Jc2k @bdraco
/tests/components/homekit_controller/ @Jc2k @bdraco
/homeassistant/components/homematic/ @pvizeli @danielperna84
/tests/components/homematic/ @pvizeli @danielperna84
/homeassistant/components/homematic/ @pvizeli
/tests/components/homematic/ @pvizeli
/homeassistant/components/homewizard/ @DCSBL
/tests/components/homewizard/ @DCSBL
/homeassistant/components/honeywell/ @rdfurman @mkmer
@@ -669,6 +673,8 @@ build.json @home-assistant/supervisor
/tests/components/jellyfin/ @j-stienstra @ctalkington
/homeassistant/components/jewish_calendar/ @tsvi
/tests/components/jewish_calendar/ @tsvi
/homeassistant/components/juicenet/ @jesserockz
/tests/components/juicenet/ @jesserockz
/homeassistant/components/justnimbus/ @kvanzuijlen
/tests/components/justnimbus/ @kvanzuijlen
/homeassistant/components/jvc_projector/ @SteveEasley @msavazzi
@@ -835,6 +841,8 @@ build.json @home-assistant/supervisor
/tests/components/mopeka/ @bdraco
/homeassistant/components/motion_blinds/ @starkillerOG
/tests/components/motion_blinds/ @starkillerOG
/homeassistant/components/motionblinds_ble/ @LennP @jerrybboy
/tests/components/motionblinds_ble/ @LennP @jerrybboy
/homeassistant/components/motioneye/ @dermotduffy
/tests/components/motioneye/ @dermotduffy
/homeassistant/components/motionmount/ @RJPoelstra
@@ -858,8 +866,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
@@ -925,6 +933,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/octoprint/ @rfleming71
/tests/components/octoprint/ @rfleming71
/homeassistant/components/ohmconnect/ @robbiet480
/homeassistant/components/ollama/ @synesthesiam
/tests/components/ollama/ @synesthesiam
/homeassistant/components/ombi/ @larssont
/homeassistant/components/omnilogic/ @oliver84 @djtimca @gentoosu
/tests/components/omnilogic/ @oliver84 @djtimca @gentoosu
@@ -1093,7 +1103,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
@@ -1189,6 +1198,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
+14 -14
View File
@@ -6,47 +6,47 @@ FROM ${BUILD_FROM}
# Synchronize with homeassistant/core.py:async_stop
ENV \
S6_SERVICES_GRACETIME=240000
S6_SERVICES_GRACETIME=240000 \
UV_SYSTEM_PYTHON=true
ARG QEMU_CPU
# Install uv
RUN pip3 install uv==0.1.24
WORKDIR /usr/src
## Setup Home Assistant Core dependencies
COPY requirements.txt homeassistant/
COPY homeassistant/package_constraints.txt homeassistant/homeassistant/
RUN \
pip3 install \
--only-binary=:all: \
uv pip install \
--no-build \
-r homeassistant/requirements.txt
COPY requirements_all.txt home_assistant_frontend-* home_assistant_intents-* homeassistant/
RUN \
if ls homeassistant/home_assistant_frontend*.whl 1> /dev/null 2>&1; then \
pip3 install homeassistant/home_assistant_frontend-*.whl; \
fi \
&& if ls homeassistant/home_assistant_intents*.whl 1> /dev/null 2>&1; then \
pip3 install homeassistant/home_assistant_intents-*.whl; \
if ls homeassistant/home_assistant_*.whl 1> /dev/null 2>&1; then \
uv pip install homeassistant/home_assistant_*.whl; \
fi \
&& if [ "${BUILD_ARCH}" = "i386" ]; then \
LD_PRELOAD="/usr/local/lib/libjemalloc.so.2" \
MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:20000,muzzy_decay_ms:20000" \
linux32 pip3 install \
--only-binary=:all: \
linux32 uv pip install \
--no-build \
-r homeassistant/requirements_all.txt; \
else \
LD_PRELOAD="/usr/local/lib/libjemalloc.so.2" \
MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:20000,muzzy_decay_ms:20000" \
pip3 install \
--only-binary=:all: \
uv pip install \
--no-build \
-r homeassistant/requirements_all.txt; \
fi
## Setup Home Assistant Core
COPY . homeassistant/
RUN \
pip3 install \
--only-binary=:all: \
uv pip install \
-e ./homeassistant \
&& python3 -m compileall \
homeassistant/homeassistant
+1 -1
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"]
+5 -5
View File
@@ -1,10 +1,10 @@
image: ghcr.io/home-assistant/{arch}-homeassistant
build_from:
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2024.02.1
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2024.02.1
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2024.02.1
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2024.02.1
i386: ghcr.io/home-assistant/i386-homeassistant-base:2024.02.1
aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2024.03.0
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2024.03.0
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2024.03.0
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2024.03.0
i386: ghcr.io/home-assistant/i386-homeassistant-base:2024.03.0
codenotary:
signer: notary@home-assistant.io
base_image: notary@home-assistant.io
+1
View File
@@ -1,4 +1,5 @@
"""Start Home Assistant."""
from __future__ import annotations
import argparse
+13 -6
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)
+15 -3
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]]]:
+1
View File
@@ -1,4 +1,5 @@
"""Constants for the auth module."""
from datetime import timedelta
ACCESS_TOKEN_EXPIRATION = timedelta(minutes=30)
+1
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
+3 -2
View File
@@ -1,7 +1,7 @@
"""Pluggable auth modules for Home Assistant."""
from __future__ import annotations
import importlib
import logging
import types
from typing import Any
@@ -14,6 +14,7 @@ from homeassistant.const import CONF_ID, CONF_NAME, CONF_TYPE
from homeassistant.core import HomeAssistant
from homeassistant.data_entry_flow import FlowResult
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.importlib import async_import_module
from homeassistant.util.decorator import Registry
MULTI_FACTOR_AUTH_MODULES: Registry[str, type[MultiFactorAuthModule]] = Registry()
@@ -148,7 +149,7 @@ async def _load_mfa_module(hass: HomeAssistant, module_name: str) -> types.Modul
module_path = f"homeassistant.auth.mfa_modules.{module_name}"
try:
module = importlib.import_module(module_path)
module = await async_import_module(hass, module_path)
except ImportError as err:
_LOGGER.error("Unable to load mfa module %s: %s", module_name, err)
raise HomeAssistantError(
@@ -1,4 +1,5 @@
"""Example auth module."""
from __future__ import annotations
from typing import Any
+1
View File
@@ -2,6 +2,7 @@
Sending HOTP through notify service
"""
from __future__ import annotations
import asyncio
+1
View File
@@ -1,4 +1,5 @@
"""Time-based One Time Password auth module."""
from __future__ import annotations
import asyncio
+4
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:
@@ -1,4 +1,5 @@
"""Permissions for Home Assistant."""
from __future__ import annotations
from collections.abc import Callable
+1
View File
@@ -1,4 +1,5 @@
"""Permission constants."""
CAT_ENTITIES = "entities"
CAT_CONFIG_ENTRIES = "config_entries"
SUBCAT_ALL = "all"
@@ -1,4 +1,5 @@
"""Entity permissions."""
from __future__ import annotations
from collections import OrderedDict
+1
View File
@@ -1,4 +1,5 @@
"""Permission for events."""
from __future__ import annotations
from typing import Final
+2 -4
View File
@@ -1,4 +1,5 @@
"""Merging of policies."""
from __future__ import annotations
from typing import cast
@@ -57,10 +58,7 @@ def _merge_policies(sources: list[CategoryType]) -> CategoryType:
continue
seen.add(key)
key_sources = []
for src in sources:
if isinstance(src, dict):
key_sources.append(src.get(key))
key_sources = [src.get(key) for src in sources if isinstance(src, dict)]
policy[key] = _merge_policies(key_sources)
+1
View File
@@ -1,4 +1,5 @@
"""Models for permissions."""
from __future__ import annotations
from typing import TYPE_CHECKING
@@ -1,4 +1,5 @@
"""System policies."""
from .const import CAT_ENTITIES, POLICY_READ, SUBCAT_ALL
ADMIN_POLICY = {CAT_ENTITIES: True}
+1
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.
+1
View File
@@ -1,4 +1,5 @@
"""Helpers to deal with permissions."""
from __future__ import annotations
from collections.abc import Callable
+13 -9
View File
@@ -1,8 +1,8 @@
"""Auth providers for Home Assistant."""
from __future__ import annotations
from collections.abc import Mapping
import importlib
import logging
import types
from typing import Any
@@ -13,14 +13,14 @@ 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.helpers.importlib import async_import_module
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"
@@ -157,7 +157,9 @@ async def load_auth_provider_module(
) -> types.ModuleType:
"""Load an auth provider."""
try:
module = importlib.import_module(f"homeassistant.auth.providers.{provider}")
module = await async_import_module(
hass, f"homeassistant.auth.providers.{provider}"
)
except ImportError as err:
_LOGGER.error("Unable to load auth provider %s: %s", provider, err)
raise HomeAssistantError(
@@ -181,9 +183,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 +201,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 +211,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 +236,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 +286,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)
+3 -3
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 = {}
@@ -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 = {}
@@ -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
@@ -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 = {}
@@ -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(
+1
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
+2 -4
View File
@@ -41,12 +41,10 @@ class cached_property(Generic[_T]):
)
@overload
def __get__(self, instance: None, owner: type[Any] | None = None) -> Self:
...
def __get__(self, instance: None, owner: type[Any] | None = None) -> Self: ...
@overload
def __get__(self, instance: Any, owner: type[Any] | None = None) -> _T:
...
def __get__(self, instance: Any, owner: type[Any] | None = None) -> _T: ...
def __get__(
self, instance: Any | None, owner: type[Any] | None = None
+1
View File
@@ -1,4 +1,5 @@
"""Block blocking calls being done in asyncio."""
from http.client import HTTPConnection
import time
+193 -54
View File
@@ -1,12 +1,15 @@
"""Provide methods to bootstrap a Home Assistant instance."""
from __future__ import annotations
import asyncio
from collections import defaultdict
import contextlib
from datetime import timedelta
from functools import partial
from itertools import chain
import logging
import logging.handlers
from operator import itemgetter
from operator import contains, itemgetter
import os
import platform
import sys
@@ -22,17 +25,35 @@ 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,
default_config as default_config_pre_import, # noqa: F401
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
group as group_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,
@@ -43,6 +64,7 @@ from .const import (
from .exceptions import HomeAssistantError
from .helpers import (
area_registry,
category_registry,
config_validation as cv,
device_registry,
entity,
@@ -56,11 +78,13 @@ from .helpers import (
translation,
)
from .helpers.dispatcher import async_dispatcher_send
from .helpers.storage import get_internal_store_manager
from .helpers.system_info import async_get_system_info
from .helpers.typing import ConfigType
from .setup import (
BASE_PLATFORMS,
DATA_SETUP_STARTED,
DATA_SETUP_TIME,
async_get_setup_timings,
async_notify_setup_error,
async_set_domains_to_be_loaded,
async_setup_component,
@@ -69,11 +93,19 @@ from .util.async_ import create_eager_task
from .util.logging import async_activate_log_queue_handler
from .util.package import async_get_user_site, is_virtual_env
with contextlib.suppress(ImportError):
# Ensure anyio backend is imported to avoid it being imported in the event loop
from anyio._backends import _asyncio # noqa: F401
if TYPE_CHECKING:
from .runner import RuntimeConfig
_LOGGER = logging.getLogger(__name__)
SETUP_ORDER_SORT_KEY = partial(contains, BASE_PLATFORMS)
ERROR_LOG_FILENAME = "home-assistant.log"
# hass.data key for logging information.
@@ -87,7 +119,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 +159,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",
@@ -168,16 +200,35 @@ CRITICAL_INTEGRATIONS = {
"frontend",
}
SETUP_ORDER = {
SETUP_ORDER = (
# Load logging as soon as possible
"logging": LOGGING_INTEGRATIONS,
# Setup frontend
"frontend": FRONTEND_INTEGRATIONS,
# Setup recorder
"recorder": RECORDER_INTEGRATIONS,
("logging", LOGGING_INTEGRATIONS),
# Setup frontend and recorder
("frontend, recorder", {*FRONTEND_INTEGRATIONS, *RECORDER_INTEGRATIONS}),
# Start up debuggers. Start these first in case they want to wait.
"debugger": DEBUGGER_INTEGRATIONS,
}
("debugger", DEBUGGER_INTEGRATIONS),
)
#
# Storage keys we are likely to load during startup
# in order of when we expect to load them.
#
# If they do not exist they will not be loaded
#
PRELOAD_STORAGE = [
"core.network",
"http.auth",
"image",
"lovelace_dashboards",
"lovelace_resources",
"core.uuid",
"lovelace.map",
"bluetooth.passive_update_processor",
"bluetooth.remote_scanners",
"assist_pipeline.pipelines",
"core.analytics",
"auth_module.totp",
]
async def async_setup_hass(
@@ -315,14 +366,16 @@ async def async_load_base_functionality(hass: core.HomeAssistant) -> None:
asyncio event loop. By primeing the cache of uname we can
avoid the blocking call in the event loop.
"""
platform.uname().processor # pylint: disable=expression-not-assigned
_ = platform.uname().processor
# Load the registries and cache the result of platform.uname().processor
translation.async_setup(hass)
entity.async_setup(hass)
template.async_setup(hass)
await asyncio.gather(
create_eager_task(get_internal_store_manager(hass).async_initialize()),
create_eager_task(area_registry.async_load(hass)),
create_eager_task(category_registry.async_load(hass)),
create_eager_task(device_registry.async_load(hass)),
create_eager_task(entity_registry.async_load(hass)),
create_eager_task(floor_registry.async_load(hass)),
@@ -332,6 +385,7 @@ async def async_load_base_functionality(hass: core.HomeAssistant) -> None:
create_eager_task(template.async_load_custom_templates(hass)),
create_eager_task(restore_state.async_load(hass)),
create_eager_task(hass.config_entries.async_initialize()),
create_eager_task(async_get_system_info(hass)),
)
@@ -571,7 +625,9 @@ class _WatchPendingSetups:
"""Periodic log and dispatch of setups that are pending."""
def __init__(
self, hass: core.HomeAssistant, setup_started: dict[str, float]
self,
hass: core.HomeAssistant,
setup_started: dict[tuple[str, str | None], float],
) -> None:
"""Initialize the WatchPendingSetups class."""
self._hass = hass
@@ -586,11 +642,15 @@ class _WatchPendingSetups:
now = monotonic()
self._duration_count += SLOW_STARTUP_CHECK_INTERVAL
remaining_with_setup_started = {
domain: (now - start_time)
for domain, start_time in self._setup_started.items()
}
_LOGGER.debug("Integration remaining: %s", remaining_with_setup_started)
remaining_with_setup_started: defaultdict[str, float] = defaultdict(float)
for integration_group, start_time in self._setup_started.items():
domain, _ = integration_group
remaining_with_setup_started[domain] += now - start_time
if remaining_with_setup_started:
_LOGGER.debug("Integration remaining: %s", remaining_with_setup_started)
elif waiting_tasks := self._hass._active_tasks: # pylint: disable=protected-access
_LOGGER.debug("Waiting on tasks: %s", waiting_tasks)
self._async_dispatch(remaining_with_setup_started)
if (
self._setup_started
@@ -600,7 +660,7 @@ class _WatchPendingSetups:
# once we take over LOG_SLOW_STARTUP_INTERVAL (60s) to start up
_LOGGER.warning(
"Waiting on integrations to complete setup: %s",
", ".join(self._setup_started),
self._setup_started,
)
_LOGGER.debug("Running timeout Zones: %s", self._hass.timeout.zones)
@@ -640,13 +700,18 @@ async def async_setup_multi_components(
"""Set up multiple domains. Log on failure."""
# Avoid creating tasks for domains that were setup in a previous stage
domains_not_yet_setup = domains - hass.config.components
# Create setup tasks for base platforms first since everything will have
# to wait to be imported, and the sooner we can get the base platforms
# loaded the sooner we can start loading the rest of the integrations.
futures = {
domain: hass.async_create_task(
async_setup_component(hass, domain, config),
f"setup component {domain}",
eager_start=True,
)
for domain in domains_not_yet_setup
for domain in sorted(
domains_not_yet_setup, key=SETUP_ORDER_SORT_KEY, reverse=True
)
}
results = await asyncio.gather(*futures.values(), return_exceptions=True)
for idx, domain in enumerate(futures):
@@ -663,26 +728,53 @@ async def _async_resolve_domains_to_setup(
hass: core.HomeAssistant, config: dict[str, Any]
) -> tuple[set[str], dict[str, loader.Integration]]:
"""Resolve all dependencies and return list of domains to set up."""
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
)
# Ensure base platforms that have platform integrations are added to
# to `domains_to_setup so they can be setup first instead of
# discovering them when later when a config entry setup task
# notices its needed and there is already a long line to use
# the import executor.
#
# For example if we have
# sensor:
# - platform: template
#
# `template` has to be loaded to validate the config for sensor
# so we want to start loading `sensor` as soon as we know
# it will be needed. The more platforms under `sensor:`, the longer
# it will take to finish setup for `sensor` because each of these
# platforms has to be imported before we can validate the config.
#
# Thankfully we are migrating away from the platform pattern
# so this will be less of a problem in the future.
domains_to_setup.update(platform_integrations)
# Load manifests for base platforms and platform based integrations
# that are defined under base platforms right away since we do not require
# the manifest to list them as dependencies and we want to avoid the lock
# contention when multiple integrations try to load them at once
additional_manifests_to_load = {
*BASE_PLATFORMS,
*chain.from_iterable(platform_integrations.values()),
}
translations_to_load = additional_manifests_to_load.copy()
# Resolve all dependencies so we know all integrations
# that will have to be loaded and start rightaway
# that will have to be loaded and start right-away
integration_cache: dict[str, loader.Integration] = {}
to_resolve: set[str] = domains_to_setup
while to_resolve:
while to_resolve or additional_manifests_to_load:
old_to_resolve: set[str] = to_resolve
to_resolve = set()
if not base_platforms_loaded:
# Load base platforms right away since
# we do not require the manifest to list
# them as dependencies and we want
# to avoid the lock contention when multiple
# integrations try to resolve them at once
base_platforms_loaded = True
to_get = {*old_to_resolve, *BASE_PLATFORMS}
if additional_manifests_to_load:
to_get = {*old_to_resolve, *additional_manifests_to_load}
additional_manifests_to_load.clear()
else:
to_get = old_to_resolve
@@ -691,13 +783,27 @@ 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)
# Make sure manifests for dependencies are loaded in the next
# loop to try to group as many as manifest loads in a single
# call to avoid the creating one-off executor jobs later in
# the setup process
additional_manifests_to_load.update(
dep
for dep in chain(itg.dependencies, itg.after_dependencies)
if dep not in integration_cache
)
if domain not in old_to_resolve:
continue
integrations_to_process.append(itg)
manifest_deps.update(itg.dependencies)
manifest_deps.update(itg.after_dependencies)
needed_requirements.update(itg.requirements)
if not itg.all_dependencies_resolved:
resolve_dependencies_tasks.append(
create_eager_task(
@@ -740,6 +846,12 @@ async def _async_resolve_domains_to_setup(
"check installed requirements",
eager_start=True,
)
#
# Only add the domains_to_setup after we finish resolving
# as new domains are likely to added in the process
#
translations_to_load.update(domains_to_setup)
# Start loading translations for all integrations we are going to set up
# in the background so they are ready when we need them. This avoids a
# lot of waiting for the translation load lock and a thundering herd of
@@ -751,11 +863,22 @@ 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, translations_to_load),
"load translations",
eager_start=True,
)
# Preload storage for all integrations we are going to set up
# so we do not have to wait for it to be loaded when we need it
# in the setup process.
hass.async_create_background_task(
get_internal_store_manager(hass).async_preload(
[*PRELOAD_STORAGE, *domains_to_setup]
),
"preload storage",
eager_start=True,
)
return domains_to_setup, integration_cache
@@ -763,10 +886,8 @@ async def _async_set_up_integrations(
hass: core.HomeAssistant, config: dict[str, Any]
) -> None:
"""Set up all the integrations."""
setup_started: dict[str, float] = {}
setup_started: dict[tuple[str, str | None], float] = {}
hass.data[DATA_SETUP_STARTED] = setup_started
setup_time: dict[str, timedelta] = hass.data.setdefault(DATA_SETUP_TIME, {})
watcher = _WatchPendingSetups(hass, setup_started)
watcher.async_start()
@@ -778,10 +899,9 @@ async def _async_set_up_integrations(
if "recorder" in domains_to_setup:
recorder.async_initialize_recorder(hass)
pre_stage_domains: dict[str, set[str]] = {
name: domains_to_setup & domain_group
for name, domain_group in SETUP_ORDER.items()
}
pre_stage_domains = [
(name, domains_to_setup & domain_group) for name, domain_group in SETUP_ORDER
]
# calculate what components to setup in what stage
stage_1_domains: set[str] = set()
@@ -807,10 +927,18 @@ async def _async_set_up_integrations(
stage_2_domains = domains_to_setup - stage_1_domains
for name, domain_group in pre_stage_domains.items():
for name, domain_group in pre_stage_domains:
if domain_group:
stage_2_domains -= domain_group
_LOGGER.info("Setting up %s: %s", name, domain_group)
to_be_loaded = domain_group.copy()
to_be_loaded.update(
dep
for domain in domain_group
if (integration := integration_cache.get(domain)) is not None
for dep in integration.all_dependencies
)
async_set_domains_to_be_loaded(hass, to_be_loaded)
await async_setup_multi_components(hass, domain_group, config)
# Enables after dependencies when setting up stage 1 domains
@@ -825,7 +953,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 +969,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,11 +980,16 @@ 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()
_LOGGER.debug(
"Integration setup times: %s",
dict(sorted(setup_time.items(), key=itemgetter(1))),
)
if _LOGGER.isEnabledFor(logging.DEBUG):
setup_time = async_get_setup_timings(hass)
_LOGGER.debug(
"Integration setup times: %s",
dict(sorted(setup_time.items(), key=itemgetter(1), reverse=True)),
)
+5
View File
@@ -0,0 +1,5 @@
{
"domain": "motionblinds",
"name": "Motionblinds",
"integrations": ["motion_blinds", "motionblinds_ble"]
}
+11
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:
@@ -1,4 +1,5 @@
"""Support for the Abode Security System."""
from __future__ import annotations
from dataclasses import dataclass, field
@@ -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:
@@ -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:
+7 -5
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)
+12 -10
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(
+1
View File
@@ -1,4 +1,5 @@
"""Constants for the Abode Security System component."""
import logging
LOGGER = logging.getLogger(__package__)
+5 -4
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
@@ -5,5 +5,10 @@
"default": "mdi:robot"
}
}
},
"services": {
"capture_image": "mdi:camera",
"change_setting": "mdi:cog",
"trigger_automation": "mdi:play"
}
}
+5 -4
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:
+5 -4
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:
+25 -21
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."""
+5 -4
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:
@@ -1,4 +1,5 @@
"""The AccuWeather component."""
from __future__ import annotations
from asyncio import timeout
@@ -51,7 +52,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
# Remove ozone sensors from registry if they exist
ent_reg = er.async_get(hass)
for day in range(0, 5):
for day in range(5):
unique_id = f"{coordinator.location_key}-ozone-{day}"
if entity_id := ent_reg.async_get_entity_id(SENSOR_PLATFORM, DOMAIN, unique_id):
_LOGGER.debug("Removing ozone sensor entity %s", entity_id)
@@ -134,4 +135,4 @@ class AccuWeatherDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]):
) as error:
raise UpdateFailed(error) from error
_LOGGER.debug("Requests remaining: %d", self.accuweather.requests_remaining)
return {**current, **{ATTR_FORECAST: forecast}}
return {**current, ATTR_FORECAST: forecast}
@@ -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:
@@ -1,4 +1,5 @@
"""Constants for AccuWeather integration."""
from __future__ import annotations
from typing import Final
@@ -1,4 +1,5 @@
"""Diagnostics support for AccuWeather."""
from __future__ import annotations
from typing import Any
@@ -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
}
+4 -11
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
@@ -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": {
@@ -1,4 +1,5 @@
"""Provide info to system health."""
from __future__ import annotations
from typing import Any
@@ -1,4 +1,5 @@
"""Support for the AccuWeather service."""
from __future__ import annotations
from typing import cast
@@ -145,9 +146,9 @@ class AccuWeatherEntity(
"""Return the UV index."""
return cast(float, self.coordinator.data["UVIndex"])
@property
def forecast(self) -> list[Forecast] | None:
"""Return the forecast array."""
@callback
def _async_forecast_daily(self) -> list[Forecast] | None:
"""Return the daily forecast in native units."""
if not self.coordinator.forecast:
return None
# remap keys from library to keys understood by the weather component
@@ -176,8 +177,3 @@ class AccuWeatherEntity(
}
for item in self.coordinator.data[ATTR_FORECAST]
]
@callback
def _async_forecast_daily(self) -> list[Forecast] | None:
"""Return the daily forecast in native units."""
return self.forecast
@@ -1,4 +1,5 @@
"""Use serial protocol of Acer projector to obtain state of the projector."""
from __future__ import annotations
from typing import Final
@@ -1,4 +1,5 @@
"""Use serial protocol of Acer projector to obtain state of the projector."""
from __future__ import annotations
import logging
@@ -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
+1
View File
@@ -1,4 +1,5 @@
"""Base class for Acmeda Roller Blinds."""
from __future__ import annotations
import aiopulse
+10 -9
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})
+1
View File
@@ -1,4 +1,5 @@
"""Constants for the Rollease Acmeda Automate integration."""
import logging
LOGGER = logging.getLogger(__package__)
+1
View File
@@ -1,4 +1,5 @@
"""Support for Acmeda Roller Blinds."""
from __future__ import annotations
from typing import Any
@@ -1,4 +1,5 @@
"""Errors for the Acmeda Pulse component."""
from homeassistant.exceptions import HomeAssistantError
@@ -1,4 +1,5 @@
"""Helper functions for Acmeda Pulse."""
from __future__ import annotations
from aiopulse import Roller
+1
View File
@@ -1,4 +1,5 @@
"""Code to handle a Pulse Hub."""
from __future__ import annotations
import asyncio
@@ -1,4 +1,5 @@
"""Support for Acmeda Roller Blind Batteries."""
from __future__ import annotations
from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
+4 -3
View File
@@ -1,4 +1,5 @@
"""Support for Actiontec MI424WR (Verizon FIOS) routers."""
from __future__ import annotations
import re
@@ -8,7 +9,7 @@ from typing import Final
LEASES_REGEX: Final[re.Pattern[str]] = re.compile(
r"(?P<ip>([0-9]{1,3}[\.]){3}[0-9]{1,3})"
+ r"\smac:\s(?P<mac>([0-9a-f]{2}[:-]){5}([0-9a-f]{2}))"
+ r"\svalid\sfor:\s(?P<timevalid>(-?\d+))"
+ r"\ssec"
r"\smac:\s(?P<mac>([0-9a-f]{2}[:-]){5}([0-9a-f]{2}))"
r"\svalid\sfor:\s(?P<timevalid>(-?\d+))"
r"\ssec"
)
@@ -1,4 +1,5 @@
"""Support for Actiontec MI424WR (Verizon FIOS) routers."""
from __future__ import annotations
import logging
@@ -1,4 +1,5 @@
"""Model definitions for Actiontec MI424WR (Verizon FIOS) routers."""
from dataclasses import dataclass
@@ -1,4 +1,5 @@
"""The Adax integration."""
from __future__ import annotations
from homeassistant.config_entries import ConfigEntry
+1
View File
@@ -1,4 +1,5 @@
"""Support for Adax wifi-enabled home heaters."""
from __future__ import annotations
from typing import Any, cast
+6 -6
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}
+1
View File
@@ -1,4 +1,5 @@
"""Constants for the Adax integration."""
from typing import Final
ACCOUNT_ID: Final = "account_id"
@@ -1,4 +1,5 @@
"""Support for AdGuard Home."""
from __future__ import annotations
from adguardhome import AdGuardHome, AdGuardHomeConnectionError
@@ -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()
@@ -1,4 +1,5 @@
"""Constants for the AdGuard Home integration."""
import logging
DOMAIN = "adguard"
+2 -1
View File
@@ -1,4 +1,5 @@
"""AdGuard Home base entity."""
from __future__ import annotations
from adguardhome import AdGuardHome, AdGuardHomeError
@@ -43,7 +44,7 @@ class AdGuardHomeEntity(Entity):
async def _adguard_update(self) -> None:
"""Update AdGuard Home entity."""
raise NotImplementedError()
raise NotImplementedError
@property
def device_info(self) -> DeviceInfo:
@@ -1,4 +1,5 @@
"""Support for AdGuard Home sensors."""
from __future__ import annotations
from collections.abc import Callable, Coroutine
@@ -1,4 +1,5 @@
"""Support for AdGuard Home switches."""
from __future__ import annotations
from collections.abc import Callable, Coroutine
+1
View File
@@ -1,4 +1,5 @@
"""Support for Automation Device Specification (ADS)."""
import asyncio
from asyncio import timeout
from collections import namedtuple
@@ -1,4 +1,5 @@
"""Support for ADS binary sensors."""
from __future__ import annotations
import pyads
+1
View File
@@ -1,4 +1,5 @@
"""Support for ADS covers."""
from __future__ import annotations
from typing import Any
+5
View File
@@ -0,0 +1,5 @@
{
"services": {
"write_data_by_name": "mdi:pencil"
}
}
+1
View File
@@ -1,4 +1,5 @@
"""Support for ADS light sources."""
from __future__ import annotations
from typing import Any
+1
View File
@@ -1,4 +1,5 @@
"""Support for ADS sensors."""
from __future__ import annotations
import voluptuous as vol
+1
View File
@@ -1,4 +1,5 @@
"""Support for ADS switch platform."""
from __future__ import annotations
from typing import Any
@@ -1,4 +1,5 @@
"""Advantage Air climate integration."""
from datetime import timedelta
import logging

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