Compare commits

...

4861 Commits

Author SHA1 Message Date
Erik Montnemery a4c34fe207 Fix typo in lovelace (#119523) 2024-06-12 14:14:59 -04:00
J. Nick Koston ae3134d875 Simplify unifiprotect device removal code (#119517) 2024-06-12 12:03:12 -05:00
J. Nick Koston 8f7686082c Refactor unifiprotect media_source to remove type ignores (#119516) 2024-06-12 12:02:53 -05:00
Caius-Bonus 7f7128adbf Add Danfoss Ally thermostat and derivatives to ZHA (#86907)
* zha integration: Add danfoss specific clusters and attributes; add thermostat.pi_heating_demand and thermostat_ui.keypad_lockout

* zha integration: fix Danfoss thermostat viewing direction not working because of use of bitmap8 instead of enum8

* ZHA Integration: add missing ThermostatChannelSensor

* ZHA integration: format using black

* zha integration: fix flake8 issues

* ZHA danfoss: Add MinHeatSetpointLimit, MaxHeatSetpointLimit, add reporting and read config for danfoss and keypad_lockout.

* ZHA danfoss: fix mypy complaining about type of _attr_entity_category

* ZHA danfoss: ruff fix

* fix tests

* pylint: disable-next=hass-invalid-inheritance

* fix pylint tests

* refactoring

* remove scheduled setpoint

* remove scheduled setpoint in manufacturer specific

* refactor

* fix tests

* change cluster ids

* remove custom clusters

* code quality

* match clusters in manufacturerspecific on quirk class

* fix comment

* fix match on quirk in manufacturerspecific.py

* correctly extend cluster handlers in manufacturerspecific.py and remove workaround for illegal use of attribute updated signals in climate.py

* fix style

* allow non-danfoss thermostats to work in manufacturerspecific.py

* correct order of init of parent and subclasses in manufacturerspecific.py

* improve entity names

* fix pylint

* explicitly state changing size of tuple

* ignore tuple size change error

* really ignore error

* initial

* fix tests

* match on specific name and quirk name

* don't restructure file as it is out of scope

* move back

* remove unnecessary change

* fix tests

* fix tests

* remove code duplication

* reduce code duplication

* empty line

* remove unused variable

* end file on newline

* comply with recent PRs

* correctly initialize all attributes

* comply with recent PRs

* make class variables private

* forgot one reference

* swap 2 lines for consistency

* reorder 2 lines

* fix tests

* align with recent PR

* store cluster handlers in only one place

* edit tests

* use correct device for quirk id

* change quirk id

* fix tests

* even if there is a quirk id, it doesn't have to have a specific cluster handler

* add tests

* use quirk id for manufacturer specific cluster handlers

* use quirk_ids instead of quirks_classes

* rename quirk_id

* rename quirk_id

* forgot to rename here

* rename id

* add tests

* fix tests

* fix tests

* use quirk ids from zha_quirks

* use quirk id from zha_quirks

* wrong translation

* sync changes with ZCL branch

* sync

* style

* merge error

* move bitmapSensor

* merge error

* merge error

* watch the capitals

* fix entity categories

* more decapitalization

* translate BitmapSensor

* translate all enums

* translate all enums

* don't convert camelcase to snakecase

* don't change enums at all

* remove comments

* fix bitmaps and add enum for algorithm scale factor

* improve readability if bitmapsensor

* fix capitals

* better setpoint response time

* feedback

* lowercase every enum to adhere to the translation_key standard

* remove enum state translations and use enums from quirks

* correctly capitalize OrientationEnum

* bump zha dependencies; this will have to be done in a separate PR, but this aids review

* accidentally removed enum

* tests

* comment

* Migrate reporting and ZCL attribute config out of `__init__`

* hvac.py shouldn't be changed in this pull request

* change wording comment

* I forgot I changed the size of the tuple.

---------

Co-authored-by: puddly <32534428+puddly@users.noreply.github.com>
2024-06-12 12:48:37 -04:00
Robert Svensson 707e422a31 Add UniFi sensor for number of clients connected to a device (#119509)
Co-authored-by: Kim de Vos <kim.de.vos@vippsmobilepay.com>
2024-06-12 18:20:31 +02:00
J. Nick Koston 4fb8202de1 Refactor adding entities to unifiprotect (#119512) 2024-06-12 18:11:59 +02:00
Jan-Philipp Benecke b92372c4ca Partially revert "Add more debug logging to Ping integration" (#119487) 2024-06-12 18:08:44 +02:00
epenet 2f5f372f63 Remove pointless TODO in recorder tests (#119490) 2024-06-12 18:08:01 +02:00
J. Nick Koston db3029dc5f Remove unreachable sensor code in unifiprotect (#119501) 2024-06-12 18:07:20 +02:00
epenet 0f0c2f0553 Fix redefined-argument-from-local pylint warning in tests (#119475) 2024-06-12 17:58:58 +02:00
epenet 44901bdcd1 Fix deprecated-typing-alias pylint warnings in zha tests (#119453) 2024-06-12 17:57:27 +02:00
epenet 0489d0b396 Fix attribute-defined-outside-init pylint warning in anova tests (#119472) 2024-06-12 17:56:52 +02:00
epenet a0c445764c Ignore super-init-not-called pylint warnings in tests (#119474) 2024-06-12 17:54:38 +02:00
epenet 3d1165519d Fix broad-exception-raised in component tests (#119467) 2024-06-12 17:53:42 +02:00
Robert Hillis aaa674955c Store runtime data inside the config entry in Dlink (#119442) 2024-06-12 17:52:10 +02:00
epenet c3c3a705fa Fix attribute-defined-outside-init pylint warnings in tests (#119471) 2024-06-12 17:51:08 +02:00
J. Nick Koston 3f188b7e27 Migrate unifiprotect to use entry.runtime_data (#119507) 2024-06-12 17:49:18 +02:00
Joost Lekkerkerker 4766f48f47 Migrate Airzone to runtime_data (#119494) 2024-06-12 17:44:03 +02:00
Joost Lekkerkerker b953ff73c0 Migrate Airzone cloud to runtime_data (#119495) 2024-06-12 17:42:51 +02:00
Maciej Bieniek cd928d5571 Support reconfigure flow in Brother integration (#117298)
* Add reconfigure flow

* Improve config flow

* Check if it is the same printer

* Improve description

* Add tests

* Improve strings

* Add missing reconfigure_successful string

* Improve test names and comments

* Format

* Mock unload entry

* Use add_suggested_values_to_schema()

* Do not abort when another device's IP has been used

* Remove unnecessary code

* Suggested changes

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-12 17:39:44 +02:00
Robert Hillis 5b91ea4550 Store runtime data inside the config entry in Goalzero (#119440) 2024-06-12 16:52:18 +02:00
Robert Hillis dc3ade6558 Store runtime data inside the config entry in Google Mail (#119439) 2024-06-12 16:49:40 +02:00
Joost Lekkerkerker 420ee782ff Migrate Airtouch4 to runtime_data (#119493) 2024-06-12 16:45:21 +02:00
epenet 99b349fa2c Fix consider-using-dict-items warnings in tests (#119497) 2024-06-12 16:44:29 +02:00
epenet cb39d2d16b Ignore existing fixme pylint warnings in tests (#119500)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-06-12 16:40:26 +02:00
epenet 4962895f19 Fix consider-using-enumerate warnings in tests (#119506) 2024-06-12 16:27:56 +02:00
epenet fb1b0058ee Fix consider-using-tuple pylint warnings in component tests (#119464)
* Fix consider-using-tuple pylint warnings in component tests

* Apply su

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

---------

Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2024-06-12 15:50:27 +02:00
Rami Mosleh e065c70969 Store transmission coordinator in runtime_data (#119502)
store transmission coordinator in runtime_data
2024-06-12 15:38:35 +02:00
tronikos 2ca580898d Fix typo in Camera.turn_on (#119386) 2024-06-12 08:50:34 -04:00
Joost Lekkerkerker 3a4b46208f Migrate AirGradient to runtime_data (#119491)
* Migrate AirGradient to runtime_data

* Migrate AirGradient to runtime_data
2024-06-12 08:49:03 -04:00
Matthias Alphart 171707e8b7 Translation support for device automation extra fields (#115892)
* Translation support for device trigger extra fields

* Move extra_fields translations to backend
2024-06-12 14:10:02 +02:00
AlCalzone 8ca0de1d20 Forward Z-Wave JS node found event to frontend (#118866)
* forward Z-Wave `node found` event to frontend

* add tests
2024-06-12 13:48:47 +02:00
David Bonnes e6b2a9b5c4 Remove redundant logging from evohome (#119482)
remove redundant logging
2024-06-12 13:45:03 +02:00
Robert Hillis 35b13e355b Store runtime data inside the config entry in Google Sheets (#119438) 2024-06-12 12:48:55 +02:00
Erwin Douna ade936e6d5 Revert Use integration fallback configuration for tado water heater fallback (#119466) 2024-06-12 12:47:47 +02:00
epenet 20817955af Fix bad-chained-comparison pylint warning in tests (#119477) 2024-06-12 12:35:55 +02:00
epenet abb8c58b87 Fix consider-using-tuple pylint warnings in core tests (#119463) 2024-06-12 12:35:01 +02:00
Robert Hillis 10b32e6a24 Store runtime data inside the config entry in Dremel 3D Printer (#119441)
* Store runtime data inside the config entry in Dremel 3D Printer

* add typing for config entry
2024-06-12 12:27:44 +02:00
epenet c70cfbb535 Fix arguments-renamed pylint warning in tests (#119473) 2024-06-12 12:25:29 +02:00
epenet d69e62c096 Ignore undefined-loop-variable pylint warnings in zha tests (#119476) 2024-06-12 12:24:16 +02:00
epenet 8323266960 Use pytest.mark.parametrize in airthings_ble tests (#119461) 2024-06-12 12:23:24 +02:00
epenet 7d631c28a6 Ignore attribute-defined-outside-init pylint warnings in tests (#119470) 2024-06-12 12:22:31 +02:00
epenet 2a7e78a80f Ignore broad-exception-raised pylint warnings in tests (#119468) 2024-06-12 12:21:41 +02:00
J. Nick Koston 0c79eeabdf Bump uiprotect to 1.1.0 (#119449) 2024-06-12 10:10:40 +02:00
Joakim Plate 47d3993805 Add loggers to gardena bluetooth (#119460) 2024-06-12 10:08:41 +02:00
Sebastian Goscik 35417649cd Bump uiprotect to v1.0.1 (#119436) 2024-06-11 18:20:00 -05:00
MJJ 34cfa0fd0e Bump buieradar to 1.0.6 (#119433) 2024-06-11 17:01:11 -05:00
Josef Zweck bce8f2a25a Migrate lamarzocco to entry.runtime_data (#119425)
migrate lamarzocco to entry.runtime_data
2024-06-11 22:27:47 +02:00
J. Nick Koston 400b8a8361 Bump uiprotect to 1.0.0 (#119415) 2024-06-11 20:59:28 +02:00
J. Nick Koston 4f28f3a5fc Fix incorrect key name in unifiprotect options strings (#119417) 2024-06-11 20:58:05 +02:00
Douglas Krahmer e6df0be072 Add support for Tuya non-standard contact sensors (#115557)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-06-11 18:09:57 +02:00
Aidan Timson c907912dd1 Restructure and setup dedicated coordinator for Azure DevOps (#119199) 2024-06-11 18:08:58 +02:00
epenet a0abd537c6 Adjust nacl import in tests (#119392) 2024-06-11 18:06:30 +02:00
epenet 9e8f9abbf7 Ignore misplaced-bare-raise warnings in tests (#119403) 2024-06-11 17:59:54 +02:00
epenet 7388271689 Fix unspecified-encoding warnings in tests (#119405) 2024-06-11 17:58:40 +02:00
epenet 6bb9011db3 Fix use-implicit-booleaness-not-len warnings in tests (#119407) 2024-06-11 17:57:58 +02:00
epenet 7384140a60 Fix pointless-exception-statement warning in tests (#119402) 2024-06-11 17:20:23 +02:00
epenet 5531e54745 Ignore no-name-in-module warnings in tests (#119401) 2024-06-11 16:37:07 +02:00
Erik Montnemery 8620bef5b0 Support shared keys starting with period in services.yaml (#118789) 2024-06-11 16:31:19 +02:00
epenet ea571a6997 Fix unnecessary-dunder-call pylint warnings in tests (#119379) 2024-06-11 16:18:16 +02:00
epenet bdf69c2e5b Remove deprecated imports in config tests (#119393) 2024-06-11 16:11:10 +02:00
epenet fce4fc663e Fix import-outside-toplevel pylint warnings in core tests (#119394) 2024-06-11 16:10:34 +02:00
epenet 4bca0ad956 Fix incorrect constants in google_travel_time tests (#119395) 2024-06-11 16:10:17 +02:00
epenet 50356aa877 Drop use of deprecated constant in zha tests (#119397) 2024-06-11 16:09:53 +02:00
epenet 68a84c365d Fix incorrect constants in streamlabswater tests (#119399) 2024-06-11 16:09:02 +02:00
Sebastian Schneider 6df7c34aa2 Add switch to Tuya thermostat: child_lock (#113052) 2024-06-11 15:22:49 +02:00
Erik Montnemery 8c27214dc9 Use statistic tables' duration attribute instead of magic numbers (#119356) 2024-06-11 15:12:20 +02:00
epenet 18722aeccb Improve type hints and fix pylint warnings in util tests (#119355) 2024-06-11 15:07:40 +02:00
epenet e14146d7c9 Fix consider-using-with pylint warnings in matrix tests (#119365) 2024-06-11 15:06:44 +02:00
epenet 2e9f63ced6 Fix use-maxsplit-arg pylint warnings in tests (#119366) 2024-06-11 15:06:16 +02:00
Jafar Atili 9af13e54c1 Bump pyElectra to 1.2.3 (#119369) 2024-06-11 15:05:53 +02:00
epenet 65befcf5d4 Fix import pylint warning in core tests (#119359) 2024-06-11 15:04:00 +02:00
epenet e57bac6da8 Fix confusing-with-statement pylint warnings (#119364) 2024-06-11 15:03:03 +02:00
epenet 1974ea4fdd Improve type hints in yaml util tests (#119358) 2024-06-11 15:01:54 +02:00
epenet d9b3ee35a0 Fix typo in pylint plugin (#119362) 2024-06-11 15:01:14 +02:00
epenet 5abdc83b2e Fix non-parent-init-called pylint warning in google_assistant tests (#119367) 2024-06-11 15:00:23 +02:00
epenet d376371c25 Fix pylint warnings in testing config custom components (#119370) 2024-06-11 14:59:49 +02:00
epenet 2c7022950c Fix import-outside-toplevel pylint warnings in tests (#119389) 2024-06-11 14:57:50 +02:00
epenet 43db0e457c Fix pylint warnings in xiaomi tests (#119373) 2024-06-11 14:56:53 +02:00
Erik Montnemery f9cf7598da Fix missing checks in core config test (#119387) 2024-06-11 14:13:12 +02:00
Erik Montnemery 27fe00125d Fix typo in auth (#119388) 2024-06-11 14:01:23 +02:00
Erik Montnemery 904b89df80 Allow importing typing helper in core files (#119377)
* Allow importing typing helper in core files

* Really fix the circular import

* Update test
2024-06-11 13:48:12 +02:00
epenet 572700a326 Ignore c-extension-no-member pylint warnings in tests (#119378) 2024-06-11 12:57:43 +02:00
epenet 18f30d2ee9 Fix pointless-string-statement pylint warning in emulated_hue tests (#119368) 2024-06-11 11:57:54 +02:00
Jirka a3356f4ee6 Fix typo in Tibber service description (#119354) 2024-06-11 09:36:12 +02:00
G Johansson fc915dc1bf Calculate attributes when entity information available in Group sensor (#119021) 2024-06-11 09:26:44 +02:00
Maciej Bieniek b84ea1edeb Bump imgw-pib backend library to version 1.0.5 (#119360)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-11 09:22:55 +02:00
kaareseras 511547c29a Fix Azure data explorer (#119089)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-06-11 09:18:06 +02:00
epenet 08eb8232e5 Fix namespace-import pylint warning in shelly tests (#119349) 2024-06-11 08:08:47 +02:00
epenet a3ac0af56d Ignore some pylint errors in component tests (#119352) 2024-06-11 08:01:52 +02:00
epenet 4320445c30 Use absolute import in roborock tests (#119353) 2024-06-11 07:59:46 +02:00
epenet ecad1bef7e Avoid cross-domain imports in scrape tests (#119351) 2024-06-11 07:57:45 +02:00
Paulus Schoutsen 0ea9581cfc OpenAI to respect custom conversation IDs (#119307) 2024-06-11 07:49:14 +02:00
Jesse Hills cdd9f19cf9 Bump aioesphomeapi to 24.6.0 (#119348) 2024-06-11 07:32:40 +02:00
Jan Bouwhuis 8942088419 Customize incomfort binary sensor icons (#119331) 2024-06-11 07:07:52 +02:00
Ishima 013c117570 Add Xiaomi Air Purifier Pro H EU (zhimi.airpurifier.vb2) (#119149) 2024-06-11 07:06:25 +02:00
Ruben Bokobza 35347929ca Bump pyElectra to 1.2.1 (#118958) 2024-06-11 07:04:25 +02:00
middlingphys cceb0d8b47 Fix typo in Ecovacs integration (#119346) 2024-06-11 06:56:31 +02:00
Jan Bouwhuis dd6cfdf731 Bump incomfort backend client to v0.6.2 (#119330) 2024-06-11 06:55:05 +02:00
Joakim Plate 958a456275 Allow source sensor to be changed in threshold helper (#119157)
* Allow source sensor to be changed in threshold helper

* Make sure old device link is removed on entry change

* Add test case for changed association
2024-06-11 06:41:29 +02:00
J. Nick Koston f02383e10d Bump uiprotect to 0.13.0 (#119344) 2024-06-10 22:50:44 -05:00
Jake Martin 9bb9792607 Move runtime_data deletion after unload (#119224)
* Move runtime_data deletion after unload.

Doing this before unload means we can't use, eg. the coordinator, during teardown.

* Re-order config entry on unload

* Add test

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-06-10 22:11:07 -04:00
J. Nick Koston 3308f07d4b Speed up generating large stats results (#119210)
* Speed up generating large stats results

* naming

* fix type

* fix type

* tweak

* tweak

* delete unused code
2024-06-10 21:22:59 -04:00
J. Nick Koston 0149698002 Bump uiprotect to 0.10.1 (#119327)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-06-10 20:03:23 -05:00
Jan Bouwhuis ea6729ab5f Fix enigma2 option flow (#119335) 2024-06-10 23:43:30 +02:00
swcloudgenie 68a9f3a048 Fix AladdinConnect OAuth domain (#119336)
fix aladdin connect oauth domain
2024-06-10 23:40:24 +02:00
J. Nick Koston 8855289d9c Migrate august to use yalexs 6.0.0 (#119321) 2024-06-10 21:50:11 +02:00
Erik Montnemery def9d5b101 Fix statistic_during_period after core restart (#119323) 2024-06-10 21:44:55 +02:00
Álvaro Fernández Rojas 632f136c02 Update Airzone Cloud to v0.5.2 and add fan speeds to Zones (#119314)
* Update aioairzone-cloud to v0.5.2
* airzone_cloud: climate: add zone fan speeds support

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-06-10 21:18:48 +02:00
Bas Brussee b30a924e03 Add price service call to Tibber (#117366)
Co-authored-by: Daniel Hjelseth Høyer <mail@dahoiv.net>
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-06-10 21:16:51 +02:00
Sid 6184fd26d3 Add options flow to enigma2 (#115795)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-06-10 21:13:12 +02:00
Brett Adams 4a9ebd9af1 Refactor helpers and bump Teslemetry (#119246) 2024-06-10 21:12:09 +02:00
Quentin 04c8a5574a Fix elgato light color detection (#119177) 2024-06-10 20:58:15 +02:00
Jan Bouwhuis 51d78c3c25 Improve incomfort binary sensors (#119292)
* Improve incomfort binary_sensor, add is_burning, is_pumping and is_tapping

* Update test snapshot

* Use helper for fault code label name

* Update tests

* Remove extra state attribute

* Make default Fault `none` to supprt localization

* Update snapshot
2024-06-10 20:57:36 +02:00
osohotwateriot 53d5a65f2c Add OSO Energy temperature sensors (#119301) 2024-06-10 20:48:41 +02:00
Cyr-ius 8d3e3faf02 Use runtime_data in Husqvarna Automower (#119309) 2024-06-10 20:46:29 +02:00
epenet 650cf13bca Improve type hints in aiohttp_client helper tests (#119300) 2024-06-10 20:31:19 +02:00
J. Nick Koston 612743077a Improve workday test coverage (#119259) 2024-06-10 20:26:52 +02:00
epenet eb6af2238c Improve type hints in registry helper tests (#119302) 2024-06-10 20:25:34 +02:00
karwosts aa419686cb Fix statistic_during_period wrongly prioritizing ST statistics over LT (#115291)
* Fix statistic_during_period wrongly prioritizing ST statistics over LT

* comment

* start of a test

* more testcases

* fix sts insertion range

* update from review

* remove unneeded comments

* update logic

* min/mean/max testing
2024-06-10 20:23:21 +02:00
Bram Kragten f75cc1da24 Update frontend to 20240610.0 (#119320) 2024-06-10 20:22:04 +02:00
epenet ac08cd1201 Revert SamsungTV migration (#119234) 2024-06-10 20:20:25 +02:00
Jan-Philipp Benecke 508564ece2 Add more debug logging to Ping integration (#119318) 2024-06-10 20:09:39 +02:00
Josef Zweck 42b984ee4f Migrate lamarzocco to lmcloud 1.1 (#113935)
* migrate to 1.1

* bump to 1.1.1

* fix newlines docstring

* cleanup entity_description fns

* strict generics

* restructure import

* tweaks to generics

* tweaks to generics

* removed exceptions

* move initialization, websocket clean shutdown

* get rid of duplicate entry addign

* bump lmcloud

* re-add calendar, auto on/off switches

* use asdict for diagnostics

* change number generator

* use name as entry title

* also migrate title

* don't migrate title

* remove generics for now

* satisfy mypy

* add s

* adapt

* migrate entry.runtime_data

* remove auto/onoff

* add issue on wrong gw firmware

* silence mypy

* remove breaks in ha version

* parametrize issue test

* Update update.py

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

* Update test_config_flow.py

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

* regen snapshots

* mapping steam level

* remove commented code

* fix typo

* coderabbitai availability tweak

* remove microsecond moving

* additonal schedule for coverage

* be more specific on date offset

* keep mappings the same

* config_entry imports sharpened

* remove unneccessary testcase, clenup date moving

* remove superfluous calendar testcase from diag

* guard against future version downgrade

* use new entry for downgrade test

* switch to lmcloud 1.1.11

* revert runtimedata

* revert runtimedata

* version to helper

* conistent Generator

* generator from typing_extensions

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-06-10 19:59:39 +02:00
Jan Bouwhuis b7f74532dc Fix incomfort water heater return translated fault code (#119311) 2024-06-10 19:30:12 +02:00
Jan Bouwhuis d6bcb1c5fd Add HVACAction to incomfort climate devices (#119315)
* Add HVACAction to incomfort climate devices

* Use IDLE state when not heating
2024-06-10 19:23:12 +02:00
J. Nick Koston d74d418c06 Bump uiprotect to 0.4.1 (#119308) 2024-06-10 18:58:26 +02:00
Simone Chemelli 404ff9fd69 bump aiobotocore to 2.13.0 (#119297)
bump aiobotocore
2024-06-10 18:57:25 +03:00
tronikos 5f9455e0fd Log errors in Intent.async_handle (#119182)
* Log errors in Intent.async_handle

* log exception stack trace

* Update homeassistant/helpers/intent.py

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-06-10 11:33:12 -04:00
William Taylor 30fab7b807 Add support for animal detection in unifiprotect (#116290)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-06-10 10:16:36 -05:00
chammp 52379ad7cb Add code_format_template to template locks (#106947)
* Add code_format to template locks

* Replace code_format with code_format_template

* Add test case for template eval to None

* Apply suggestion to not call super()

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

* Add more negative tests

* Handle template render errors

* Better error message

* Add custom test lock config for code format

* Add type hints from upstream

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-06-10 16:54:17 +02:00
epenet c896458fcf Fix namespace-import pylint warning in components (#119299) 2024-06-10 15:55:08 +02:00
epenet fbaba3753b Fix root-import pylint warning in components (#119294)
* Fix root-import pylint warning in components

* Adjust

* Adjust
2024-06-10 15:14:49 +02:00
epenet 94b9ae14c9 Use Registry fixture in zwave_js tests (#119277) 2024-06-10 15:00:05 +02:00
epenet 6733f86c61 Use service_calls fixture in helper tests (#119275)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-06-10 14:57:34 +02:00
epenet 9c12067565 Don't run tests if lint-ruff-format fails (#119291) 2024-06-10 14:55:47 +02:00
Franck Nijhof bedff29165 Fix persistence on OpenWeatherMap raised repair issue (#119289) 2024-06-10 14:55:28 +02:00
Sébastien Clément 80b2b05bd8 Change qBittorrent lib to qbittorrentapi (#113394)
* Change qBittorrent lib to qbittorrentapi

* Fix tests

* Convert qbittorrent service to new lib

* Add missing translation key

* Catch APIConnectionError in service call

* Replace type ignore by Any typing

* Remove last type: ignore

* Use lib type for torrent_filter

* Change import format

* Fix remaining Any type

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-06-10 14:27:20 +02:00
epenet 960d1289ef Avoid references to websocket_api.const in core and other components (#119285) 2024-06-10 13:49:44 +02:00
epenet 2e3c3789d3 Use relative imports in tests [s-z] (#119283) 2024-06-10 13:33:15 +02:00
epenet ac588ddc75 Use relative imports in tests [j-r] (#119282) 2024-06-10 13:32:31 +02:00
epenet 94720fd015 Fix root-import pylint warning in dlna_dmr tests (#119286) 2024-06-10 13:31:29 +02:00
epenet 8cbfc5a58b Use service_calls fixture in arcam_fmj tests (#119274) 2024-06-10 13:09:51 +02:00
epenet b8e57f6174 Use relative imports in tests [a-i] (#119280) 2024-06-10 12:52:34 +02:00
epenet e818de1da8 Use service_calls fixture in scaffold (#119266) 2024-06-10 10:44:00 +02:00
Jan Bouwhuis e114e6f862 Improve incomfort boiler state strings (#119270) 2024-06-10 10:07:38 +02:00
epenet 42f3dd636f Use service_calls fixture in bthome tests (#119268) 2024-06-10 10:05:47 +02:00
epenet a5cde4b32b Use device_registry fixture in webostv tests (#119269) 2024-06-10 09:40:54 +02:00
epenet 1ebc1685f7 Improve type hints in camera tests (#119264) 2024-06-10 09:30:00 +02:00
epenet d9362a2f2f Improve type hints in axis tests (#119260)
* Improve type hints in axis tests

* A couple more

* One more

* Improve light

* Improve hub

* Improve config-flow
2024-06-10 08:49:43 +02:00
epenet 2d2f5de191 Improve type hints in blueprint tests (#119263) 2024-06-10 08:49:18 +02:00
Austin Drummond ea3097f84c Fix control 4 on os 2 (#119104) 2024-06-10 08:48:11 +02:00
Diogo Gomes 0873322af7 Moves V2C from hass.data to config_entry.runtime_data (#119165)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-06-10 08:47:08 +02:00
Angel Nunez Mencias 731df892c6 Fixes crashes when receiving malformed decoded payloads (#119216)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-06-10 08:41:22 +02:00
epenet 733e563500 Improve type hints in blackbird tests (#119262) 2024-06-10 08:39:24 +02:00
J. Nick Koston d4baad62ef Bump uiprotect to 0.4.0 (#119256) 2024-06-10 08:36:36 +02:00
Allen Porter edc7c58bba Bump google-nest-sdm to 4.0.5 (#119255) 2024-06-10 08:35:54 +02:00
Kevin Stillhammer 42e2c2b3e9 google_travel_time: Merge user_input validation (#119221) 2024-06-10 08:26:24 +02:00
wittypluck f6c6b3cf6c Fix Glances v4 network and container issues (glances-api 0.8.0) (#119226) 2024-06-10 08:25:39 +02:00
Allen Porter f046545883 Fix nest to cancel event listener on config entry unload (#119257) 2024-06-10 08:18:50 +02:00
J. Nick Koston 8b6fbd5b3f Fix climate on/off in nexia (#119254) 2024-06-10 08:17:29 +02:00
Franck Nijhof 8b5627b1be Temporary pin CI to Python 3.12.3 (#119261) 2024-06-10 08:08:52 +02:00
Brett Adams 159503b8d3 Add model to Teslemetry Wall Connectors (#119251) 2024-06-10 07:48:09 +02:00
Joakim Plate 8a0cc55278 Always provide a currentArmLevel in Google assistant (#119238) 2024-06-10 07:47:16 +02:00
Jan Bouwhuis 4376e0931a Add boiler entity state translations for incomfort water_heater entities (#119211) 2024-06-10 07:46:07 +02:00
Abílio Costa be22214a33 Fix wrong arg name in Idasen Desk config flow (#119247) 2024-06-10 03:02:38 +02:00
J. Nick Koston d657feafa6 Switch unifiprotect lib to use uiprotect (#119243) 2024-06-09 18:25:39 -05:00
starkillerOG b70a33a718 Add Reolink manual record switch (#119232)
Add manual record switch
2024-06-09 23:02:11 +02:00
Ethem Cem Özkan 39820caa1a Bump python-roborock to 2.3.0 (#119228) 2024-06-09 22:58:49 +02:00
starkillerOG 0c585e1836 Bump reolink-aio to 0.9.2 (#119236) 2024-06-09 22:57:12 +02:00
David Knowles 9b41fa5f25 Bump pyschlage to 2024.6.0 (#119233) 2024-06-09 22:56:19 +02:00
Robert Svensson 325352e197 Fixture cleanup in UniFi tests (#119227)
* Make sure all mock_device_registry are used with usefixtuers

* Make sure to use name with fixtures and rename functions to start with fixture_

* Streamline config_entry_setup

* Type all *_payload

* Mark @pytest.mark.usefixtures("mock_default_requests")

* Clean up unnecessary newlines after docstring
2024-06-09 16:07:36 -04:00
epenet 7dfaa05793 Improve type hints in amberelectric tests (#119229) 2024-06-09 22:04:40 +02:00
epenet 06c1c435d1 Improve type hints in ambient_station tests (#119230) 2024-06-09 21:50:13 +02:00
Jake Martin c03f9d264e Bump monzopy to 1.3.0 (#119225) 2024-06-09 20:24:33 +02:00
Jan Bouwhuis 4ca38f227a Fix - Remove unneeded assert in teslemetry test (#119219)
Remove unneded assert in teslemetry test
2024-06-09 19:21:37 +02:00
J. Nick Koston 7065c0993d Reduce overhead to reduce statistics (#119187) 2024-06-09 18:33:10 +02:00
J. Nick Koston 909df675e0 Use a listcomp for history results (#119188) 2024-06-09 18:32:33 +02:00
Brett Adams 38ab121db5 Add cabin overheat protection entity to Teslemetry (#118449)
* test_cabin_overheat_protection

* Fix snapshot

* Translate error

* Review Feedback
2024-06-09 18:30:36 +02:00
Joakim Plate 30e11ed068 Update links between config entry and device on sensor change in integral (#119213) 2024-06-09 18:26:33 +02:00
G Johansson 09ba9547ed Fix envisalink alarm (#119212) 2024-06-09 18:14:46 +02:00
Kevin Stillhammer 93fa9e778b Add reconfigure step for google_travel_time (#115178)
* Add reconfigure step for google_travel_time

* Do not allow to change name

* Duplicate tests for reconfigure

* Use link for description in strings.json

* Try except else

* Extend existing config flow tests
2024-06-09 18:13:32 +02:00
Jan Bouwhuis 361c46d491 Bump incomfort backend client to v0.6.1 (#119209) 2024-06-09 17:48:17 +02:00
Joost Lekkerkerker b4c9b3f109 Create DWD device with unique_id instead of entry_id (#116498)
Co-authored-by: Matthias Alphart <farmio@alphart.net>
2024-06-09 16:36:36 +02:00
Erik Montnemery 04a5a1d18b Improve demo config flow and add tests (#118481)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-06-09 16:02:58 +02:00
Joost Lekkerkerker b26f613d06 Add config flow to MPD (#117907) 2024-06-09 16:01:19 +02:00
Robert Svensson c9911e4dd4 Rework UniFi tests to not use runtime data (#119202) 2024-06-09 15:56:26 +02:00
Jan Bouwhuis 34f20fce36 Bump incomfort backend library to v0.6.0 (#119207) 2024-06-09 15:52:34 +02:00
Joost Lekkerkerker 279f183ce3 Remove Harmony switches (#119206) 2024-06-09 15:51:01 +02:00
J. Nick Koston d9f1d40805 Migrate august to use yalexs 5.2.0 (#119178) 2024-06-09 12:30:41 +02:00
Robert Svensson ff493a8a9d Rewrite the UniFi button entity tests (#118771) 2024-06-09 12:25:06 +02:00
Jonathan Jogenfors 5829d9d8ab Fix sia custom bypass arming in night mode (#119168) 2024-06-09 12:03:15 +02:00
Shay Levy 04222c32b5 Handle Shelly BLE errors during connect and disconnect (#119174) 2024-06-09 11:59:40 +02:00
Sid b937fc0cfe Add fallback to entry_id when no mac address is retrieved in enigma2 (#119185) 2024-06-09 11:59:14 +02:00
Jakob Schlyter f32b29e700 Add myself as codeowner for amazon_polly (#119189) 2024-06-09 11:57:54 +02:00
tronikos 9e7a6408c2 Bump opower to 0.4.7 (#119183) 2024-06-09 09:45:59 +02:00
Robert Hillis a38d88730d Remove Netgear LTE yaml import (#119180)
Remove Netgear LTE yaml config
2024-06-09 09:44:56 +02:00
Michael b577ce61b8 Use more conservative timeout values in Synology DSM (#119169)
use ClientTimeout object
2024-06-08 23:52:14 +02:00
J. Nick Koston ad7097399e Ensure multiple executions of a restart automation in the same event loop iteration are allowed (#119100)
* Add test for restarting automation

related issue #119097

* fix

* add a delay since restart is an infinite loop

* tests
2024-06-08 17:07:39 -04:00
tronikos 0ca4314d48 Make supported_features of manual alarm_control_panel configurable (#119122) 2024-06-08 16:54:32 -04:00
Guy Shefer 7e1806229b Fix Tami4 component breaking API changes (#119158)
* fix tami4 api breaking changes

* fix tests
2024-06-08 16:52:15 -04:00
Robert Svensson d6097573f5 Remove old UniFi test infrastructure (#119160)
Clean up hub
2024-06-08 16:44:24 -04:00
Michael d6ec8a4a96 Bump py-synologydsm-api to 2.4.4 (#119156)
bump py-synologydsm-api to 2.4.4
2024-06-08 21:24:59 +02:00
Sid a662ee772c Use runtime_data for enigma2 (#119154)
* Use runtime_data for enigma2

* Update __init__.py
2024-06-08 20:40:34 +02:00
xyzroe ae0e751a6d Add ZHA XZG firmware discovery (#116828) 2024-06-08 18:06:25 +02:00
Sid 721b2c2ca8 Enable Ruff PT012 (#113957) 2024-06-08 17:59:08 +02:00
Robert Svensson 915658daa1 Fix failing UniFi tests related to utcnow (#119131)
* test

* Fix missed test
2024-06-08 17:58:47 +02:00
Paulus Schoutsen c49ca5ed56 Ensure intent tools have safe names (#119144) 2024-06-08 17:53:47 +02:00
Tom Brien fff2c1115d Fix workday timezone (#119148) 2024-06-08 17:53:20 +02:00
Franck Nijhof a64d6e548c Update Home Assistant base image to 2024.06.0 (#119147) 2024-06-08 17:52:23 +02:00
Raman Gupta 2c41451abc Add new security keys to zwave_js config flow (#115835) 2024-06-08 11:31:05 -04:00
Richard Kroegel 43343ea44a Adjust BMW enum sensors translations (#118754)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-06-08 17:08:37 +02:00
Christian Neumeier a2504dafbc Refactor Zeversolar init tests (#118551)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-06-08 16:34:17 +02:00
epenet 5166426d0a Add type hints for service_calls fixture in pylint plugin (#118356) 2024-06-08 16:32:27 +02:00
Richard Kroegel b04a65f4d1 Change BMW select and sensor enums to lowercase (#118751)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-06-08 16:25:45 +02:00
Maciej Bieniek cb672b85f4 Add icon translations to AccuWeather (#119134)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-08 15:57:22 +02:00
Maciej Bieniek 27df79daf1 Use translation placeholders in AccuWeather (#118760)
* Use translation placeholder

* Update test snapshot

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-08 14:00:55 +02:00
Joost Lekkerkerker 53f1cd8e72 Improve withings diagnostics (#119128) 2024-06-08 12:27:24 +02:00
Joost Lekkerkerker 522a1e9d56 Add support for segmental measurements in Withings (#119126) 2024-06-08 11:56:23 +02:00
Joost Lekkerkerker 675048cc38 Bump aiowaqi to 3.1.0 (#119124) 2024-06-08 11:28:45 +02:00
Matthias Alphart fff5715a06 Require KNX boolean service descriptor selectors (#118597) 2024-06-08 11:09:52 +02:00
Lucas Mindêllo de Andrade ad2ff500de Bump sunweg to 3.0.1 (#118435) 2024-06-08 10:57:44 +02:00
Shay Levy 742dd61d36 Bump aioshelly to 10.0.1 (#119123) 2024-06-08 10:44:37 +02:00
t0bst4r deac59f1ee Add intelligent language matching for Google Assistant SDK Agents (#112600)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-06-08 09:50:15 +02:00
tronikos f605c10f42 Properly handle escaped unicode characters passed to tools in Google Generative AI (#119117) 2024-06-08 09:02:00 +02:00
rwalker777 f07e7ec543 Add Tuya based bluetooth lights (#119103) 2024-06-08 08:59:14 +02:00
tronikos 5fdfafd57f Catch GoogleAPICallError in Google Generative AI (#119118) 2024-06-08 08:51:42 +02:00
Brett Adams e4be3d8435 Improve the reliability of tests in Tessie (#118596) 2024-06-07 22:11:35 +02:00
Marc Mueller 00f78dc522 Update typing-extensions to 4.12.2 (#119098) 2024-06-07 22:06:51 +02:00
Robert Svensson 20df747806 Use fixtures in UniFi device tracker tests (#118912) 2024-06-07 21:28:02 +02:00
Erik Montnemery 6c15351c18 Add support for common references in strings.json (#118783)
* Add support for common references in strings.json

* Update tests
2024-06-07 20:59:26 +02:00
epenet b2a54c50e2 Move mock_zeroconf to decorator in tests (#119061) 2024-06-07 20:55:20 +02:00
tronikos ae59d0eadf Bump google-generativeai to 0.6.0 (#119062) 2024-06-07 20:50:55 +02:00
epenet 4a4c98caad Move mock_async_zeroconf to decorator in zeroconf tests (#119063) 2024-06-07 20:49:58 +02:00
J. Nick Koston 1bda33b1e9 Bump home-assistant-bluetooth to 1.12.1 (#119026) 2024-06-07 13:48:36 -05:00
OzGav aa121ebf73 Add previous track intent (#113222)
* add previous track intent

* add stop and clear playlist

* Remove clear_playlist and stop

* Remove clear_playlist and stop

* Use extra constraints

---------

Co-authored-by: Michael Hansen <mike@rhasspy.org>
2024-06-07 13:34:22 -05:00
J. Nick Koston 440185be25 Fix refactoring error in snmp switch (#119028) 2024-06-07 20:09:48 +02:00
epenet cd7f2f9f77 Fix incorrect type hints in azure_data_explorer tests (#119065) 2024-06-07 20:07:38 +02:00
epenet 9008b4295c Improve type hints in assist_pipeline tests (#119066) 2024-06-07 12:39:25 -05:00
paulusbrand 624017a0f9 Add template Base64 decode encoding parameter (#116603)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-06-07 17:01:35 +02:00
Joost Lekkerkerker 0556d9d4ed Fix Azure Data Explorer strings (#119067) 2024-06-07 16:31:50 +02:00
epenet 37b0e8fa33 Improve type hints in airvisual test fixtures (#119079) 2024-06-07 07:35:33 -06:00
epenet 5bf42e64e3 Improve type hints in arcam_fmj tests (#119072) 2024-06-07 15:33:43 +02:00
Dos Moonen 59c8270b1a Bump solax from 3.1.0 to 3.1.1 (#118888) 2024-06-07 15:16:07 +02:00
epenet 549f66fd6f Move mock_async_zeroconf to decorator in homekit tests (#119060) 2024-06-07 12:30:02 +02:00
Yuxin Wang 81ee5fb46b Refine sensor descriptions for APCUPSD (#114137)
* Refine sensor descriptions for APCUPSD

* Add device class for cumonbatt

* Add UoM to STESTI and TIMELEFT

* Remove device class for STESTI
2024-06-07 12:28:59 +02:00
Greg Dowling 92ed20ffbf Add mute_toggle to roon volume events (#114171)
Add mute_toggle event.
2024-06-07 12:25:14 +02:00
Robert Svensson a8becb1248 Use fixtures in UniFi sensor tests (#118921) 2024-06-07 12:15:03 +02:00
Joost Lekkerkerker f6c66dfd27 Bump aiowithings to 3.0.1 (#118854) 2024-06-07 12:11:15 +02:00
epenet bfff3c0524 Add type hint to mock_async_zeroconf in test fixtures (#119057) 2024-06-07 12:09:18 +02:00
epenet 5f309b69cf Add type hints to current_request_with_host in tests (#119054) 2024-06-07 11:40:23 +02:00
epenet 907297cd1a Improve type hints in config tests (#119055) 2024-06-07 11:40:03 +02:00
epenet 1c8a9cc3b8 Remove unused caplog fixtures in tests (#119056) 2024-06-07 11:38:56 +02:00
epenet b3a71dcea3 Improve type hints in homekit_controller tests (#119053) 2024-06-07 11:31:45 +02:00
Marc Mueller af65da3875 Add type ignore comments (#119052) 2024-06-07 11:13:33 +02:00
Jeef 4600960895 Align weatherflow_cloud weather conditions with Home Assistant supported conditions (#114497)
* WeatherFlow Cloud changing icon mapping specificaly for Colorado

* changing name to state_map
2024-06-07 11:02:41 +02:00
Huyuwei 7947f63860 Enable retrieving sensor data from WoHub2 device and update pySwitchbot to 0.47.2 (#118567) 2024-06-07 10:56:12 +02:00
dependabot[bot] 5fafbebf87 Bump dawidd6/action-download-artifact from 4 to 5 (#118851)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-07 10:54:31 +02:00
G Johansson f2d674d28d Bump babel to 2.15.0 (#119006) 2024-06-07 10:53:54 +02:00
Mike Degatano 78f53341b7 Always have addon url in detached_addon_missing (#119011) 2024-06-07 10:52:15 +02:00
epenet 42b1cfe6b9 Improve type hints in azure_event_hub tests (#119047)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-06-07 10:50:03 +02:00
epenet 7638380add Improve type hints in kaleidescape tests (#119040) 2024-06-07 10:49:09 +02:00
epenet c107d980fa Improve type hints in motionblinds_ble tests (#119049) 2024-06-07 10:43:56 +02:00
epenet d5a68ad311 Improve type hints in zamg tests (#119042) 2024-06-07 10:25:11 +02:00
Christopher Fenner 539b9d76fc Add photovoltaic sensors to ViCare integration (#113664)
* Add photovoltaic sensors

* Update strings.json

* Apply suggestions from code review

* change uom for daily sensor
2024-06-07 10:21:24 +02:00
Lorenzo Monaco 78c7af40ed Ecovacs get_positions service (#118572)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-06-07 10:11:49 +02:00
Shay Levy 9a6902d827 Hold connection lock in Shelly RPC reconnect (#119009) 2024-06-07 09:50:05 +02:00
J. Nick Koston 6ba8b7a5d6 Remove isal from after_dependencies in http (#119000) 2024-06-07 09:21:53 +02:00
G Johansson c60dee16bc Ignore deprecation warning in python-holidays (#119007) 2024-06-07 09:21:04 +02:00
epenet 4f6a98cee3 Remove unused request fixtures (#119044) 2024-06-07 09:19:03 +02:00
Joost Lekkerkerker 6e9db52a5f Fix AirGradient name (#119046) 2024-06-07 09:18:16 +02:00
Joost Lekkerkerker 6027af3d36 Fix unit of measurement for airgradient sensor (#118981) 2024-06-07 09:17:36 +02:00
J. Nick Koston aa0a90cd98 Fix remember_the_milk calling configurator async api from the wrong thread (#119029) 2024-06-07 09:07:47 +02:00
epenet 8628a1e449 Improve type hints in airnow tests (#119038) 2024-06-07 09:03:35 +02:00
Marc Mueller 274cd41d57 Fix Generator annotations in tests (1) (#119018) 2024-06-07 08:43:32 +02:00
Marc Mueller 7195a21126 Fix Generator annotations in tests (2) (#119019) 2024-06-07 08:34:38 +02:00
Maciej Bieniek 27e8a4ed6f Add the missing humidity value to the Accuweather daily forecast (#119013)
Add the missing humidity value to the daily forecast

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-07 07:23:44 +02:00
Michael Hansen 87114bf19b Fix exposure checks on some intents (#118988)
* Check exposure in climate intent

* Check exposure in todo list

* Check exposure for weather

* Check exposure in humidity intents

* Add extra checks to weather tests

* Add more checks to todo intent test

* Move climate intents to async_match_targets

* Update test_intent.py

* Update test_intent.py

* Remove patch
2024-06-06 20:41:25 -05:00
Joakim Plate 8c025ea1f7 Update gardena library to 1.4.2 (#119010) 2024-06-07 00:48:23 +02:00
Rami Mosleh 7337c13747 Use torrent id to identify torrents that should trigger events (#118897) 2024-06-07 00:44:21 +02:00
Matthias Alphart a7429e5f50 Fix KNX climate.set_hvac_mode not turning on (#119012) 2024-06-06 22:40:04 +02:00
Jordi 7219a4fa98 Add Aquacell integration (#117117)
* Initial commit

* Support changed API
Change sensor entity descriptions

* Fix sensor not handling coordinator update

* Implement re-authentication flow and handle token expiry

* Bump aioaquacell

* Bump aioaquacell

* Cleanup and initial tests

* Fixes for config flow tests

* Cleanup

* Fixes

* Formatted

* Use config entry runtime
Use icon translations
Removed reauth
Removed last updated sensor
Changed lid in place to binary sensor
Cleanup

* Remove reauth strings

* Removed binary_sensor platform
Fixed sensors not updating properly

* Remove reauth tests
Bump aioaquacell

* Moved softener property to entity class
Inlined validate_input method
Renaming of entities
Do a single async_add_entities call to add all entities
Reduced code in try blocks

* Made tests parameterized and use test fixture for api
Cleaned up unused code
Removed traces of reauth

* Add check if refresh token is expired
Add tests

* Add missing unique_id to config entry mock
Inlined _update_config_entry_refresh_token method
Fix incorrect test method name and comment

* Add snapshot test
Changed WiFi level to WiFi strength

* Bump aioaquacell to 0.1.7

* Move test_coordinator tests to test_init
Add test for duplicate config entry
2024-06-06 22:33:58 +02:00
Robert Svensson ec3a976410 Use fixtures in UniFi image tests (#118887) 2024-06-06 14:23:10 -04:00
Robert Svensson d695660164 Use fixtures in UniFi diagnostics tests (#118905) 2024-06-06 14:22:41 -04:00
Michael Hansen bca8958d4b Prioritize literal text with name slots in sentence matching (#118900)
Prioritize literal text with name slots
2024-06-06 14:20:34 -04:00
Gedaliah Knizhnik 696a079ba8 Add extra sensor to the Jewish Calendar integration (#116734)
* Added sensor for always three star tzeit

* Changed sensor name

* Change sensor name
2024-06-06 14:17:52 -04:00
Steven B 333ac56904 Fully mock the ring_doorbell api and remove requests_mock (#113140)
* Fully mock ring_doorbell library

* Add comments and docstrings

* Simplify devices_mocks and fake RingDevices

* Update post review

* Consolidate device filtering in conftest

* Fix ruff lambda assignment failure

* Fix ruff check fail

* Update post review
2024-06-06 20:13:19 +02:00
Mr. Bubbles 99b85e16d1 Set username as entry title in Bring integration (#118974)
Set username as entry title
2024-06-06 20:03:58 +02:00
David Bonnes d40c940c20 Move evohome's API broker to the coordinator module (#118565)
* move Broker to coordinator module

* mypy tweak

* mypy
2024-06-06 13:02:50 -04:00
J. Nick Koston 62b1bde0e8 Only entity verify state writable once after success unless hass is missing (#118896) 2024-06-06 11:46:44 -05:00
Marc Mueller ffea72f866 Increment ci cache version (#118998) 2024-06-06 18:25:24 +02:00
epenet 5914ff0de8 Improve type hints in apple_tv tests (#118980) 2024-06-06 17:44:22 +02:00
Marc Mueller 837ee7c4fb Import Generator from typing_extensions (4) (#118992) 2024-06-06 17:41:37 +02:00
Marc Mueller 59e178df3b Import Generator from typing_extensions (5) (#118993) 2024-06-06 17:33:27 +02:00
epenet 632238a7f9 Move mock_bluetooth* fixtures to decorator (#118846) 2024-06-06 17:31:08 +02:00
Marc Mueller 33ed4fd862 Import Generator from typing_extensions (3) (#118990) 2024-06-06 17:28:59 +02:00
David Knowles 0ecab967dd Bump pydrawise to 2024.6.3 (#118977) 2024-06-06 17:28:13 +02:00
epenet fb51163075 Move socket_enabled fixture to decorator (#118847) 2024-06-06 17:27:38 +02:00
epenet 6de26ca811 Unhide facebook tests (#118867) 2024-06-06 17:24:48 +02:00
Marc Mueller 279483ddb0 Import Generator from typing_extensions (2) (#118989) 2024-06-06 17:24:22 +02:00
Maciej Bieniek 49c7b1aab9 Bump imgw-pib library to version 1.0.4 (#118978)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-06 17:14:02 +02:00
Marc Mueller c3456215b8 Update requests to 2.32.3 (#118868)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-06-06 17:11:49 +02:00
Marc Mueller fe21e2b8ba Import Generator from typing_extensions (1) (#118986) 2024-06-06 17:02:13 +02:00
Marc Mueller 69708db8e0 Update mypy-dev to 1.11.0a6 (#118881) 2024-06-06 16:14:39 +02:00
Rami Mosleh cab58fa9b2 Check if imap message text has a value instead of checking if its not None (#118901)
* Check if message_text has a value instead of checking if its not None

* Strip message_text to ensure that its actually empty or not

* Add test with multipart payload having empty plain text
2024-06-06 14:10:03 +02:00
G Johansson 4ec6ba445b Remove unused constant in Tag (#118966)
Remove not used constant in Tag
2024-06-06 13:49:17 +02:00
G Johansson 0d2e441de5 Bump python-holidays to 0.50 (#118965) 2024-06-06 13:34:03 +02:00
Åke Strandberg 3d8fc96592 Migrate myuplink to runtime_data (#118960) 2024-06-06 13:31:47 +02:00
G Johansson 2a4f7439a2 Fix Alarm control panel not require code in several integrations (#118961) 2024-06-06 13:21:30 +02:00
Sebastian Lövdahl a5959cfb83 Address post-merge review comments from Vallox reconfigure support PR (#118903)
Address late review comments from Vallox reconfigure support PR
2024-06-06 12:52:57 +02:00
epenet 622a69447d Add type hints to hdmi_cec assert_state function (#118940)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-06-06 12:39:24 +02:00
Maciej Bieniek 29952d8128 Bump imgw-pib backend library to version 1.0.2 (#118953)
Bump imgw-pib to version 1.0.2

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-06 12:26:07 +02:00
epenet 857b5c9c1b Fix type hints in google tests (#118941) 2024-06-06 12:19:41 +02:00
epenet 492b158818 Add return type hints in tests (a-i) (#118939) 2024-06-06 12:17:08 +02:00
Mr. Bubbles 6e8d6f5994 Load fixture with decorator to avoid variable not accessed error (#118954)
Use fixture decorator
2024-06-06 12:15:13 +02:00
epenet f425420899 Improve type hints in rainforest_raven tests (#118950) 2024-06-06 12:10:13 +02:00
Sid 121bfc9766 Bump ruff to 0.4.8 (#118894) 2024-06-06 12:05:35 +02:00
epenet c373e36995 Centralize duplicate fixtures in rainforest_raven tests (#118945) 2024-06-06 10:44:02 +02:00
epenet 7eda8aafc8 Ignore nested functions when enforcing type hints in tests (#118948) 2024-06-06 10:43:31 +02:00
Mr. Bubbles 093e85d59a Fix some minor typos in ista EcoTrend integration (#118949)
Fix typos
2024-06-06 10:43:12 +02:00
J. Nick Koston e37ee68434 Bump cryptography to 42.0.8 (#118889) 2024-06-06 10:20:39 +02:00
epenet c7cc465e5c Add return type hints in tests (k-z) (#118942) 2024-06-06 10:11:29 +02:00
Regin Larsen b5b7c9bcd5 Bump xiaomi-ble to 0.29.0 (#118895) 2024-06-06 09:16:57 +02:00
Mr. Bubbles 4596b89201 Bump pyecotrend_ista to 3.2.0 (#118924) 2024-06-06 09:10:46 +02:00
J. Nick Koston f9205cd88d Avoid additional timestamp conversion to set state (#118885)
Avoid addtional timestamp conversion to set state

Since we already have the timestamp, we can pass it on to the State
object and avoid the additional timestamp conversion which can be as
much as 30% of the state write runtime.

Since datetime objects are limited to microsecond precision, we need
to adjust some tests to account for the additional precision that we
will now be able to get in the database
2024-06-05 23:43:34 -04:00
J. Nick Koston 475c20d529 Always do thread safety check when writing state (#118886)
* Always do thread safety check when writing state

Refactor the 3 most common places where the thread safety check
for the event loop to be inline to make the check fast enough
that we can keep it long term. While code review catches most
of the thread safety issues in core, some of them still make
it through, and new ones keep getting added. Its not possible
to catch them all with manual code review, so its worth the
tiny overhead to check each time.

Previously the check was limited to custom components
because they were the most common source of thread
safety issues.

* Always do thread safety check when writing state

Refactor the 3 most common places where the thread safety check
for the event loop to be inline to make the check fast enough
that we can keep it long term. While code review catches most
of the thread safety issues in core, some of them still make
it through, and new ones keep getting added. Its not possible
to catch them all with manual code review, so its worth the
tiny overhead to check each time.

Previously the check was limited to custom components
because they were the most common source of thread
safety issues.

* async_fire is more common than expected with ccs

* fix mock

* fix hass mocking
2024-06-05 23:41:55 -04:00
Ernst Klamer 64b23419e0 Bump bthome-ble to 3.9.1 (#118907)
bump bthome-ble to 3.9.1
2024-06-05 23:38:30 -04:00
J. Nick Koston a0957069f0 Revert "Bump orjson to 3.10.3 (#116945)" (#118920)
This reverts commit dc50095d06.
2024-06-05 23:37:35 -04:00
Jan-Philipp Benecke 7407995ff1 Fix flaky Google Assistant test (#118914)
* Fix flaky Google Assistant test

* Trigger full ci
2024-06-05 17:37:14 -04:00
Josef Zweck feaf50eee7 Address Webhook async_generate_url review (#118910)
code styling
2024-06-05 22:38:23 +02:00
Erik Montnemery 8099ea8817 Improve WS command validate_config (#118864)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: Robert Resch <robert@resch.dev>
2024-06-05 18:53:44 +02:00
Michael Hansen 6efc3b95a4 Bump intents to 2024.6.5 (#118890) 2024-06-05 18:43:28 +02:00
Robert Resch 0562c3085f Replace slave by meter in v2c (#118893) 2024-06-05 18:21:03 +02:00
Åke Strandberg e2dd88be6e Add more unit-based sensor descriptions to myuplink (#113104)
* Add more unit-based sensor descriptions

* Move late addition to icon translations
2024-06-05 17:45:52 +02:00
r-xyz 0487b38ed3 Add support for sending telegram messages to topics (#112715)
* Add support for sending telegram messages to topics
    Based on original PR #104059 by [jgresty](https://github.com/jgresty).
    Did not manage to merge conflicts, so I remade the changes from scratch, including suggestions from previous PR reviews.

    Topics were added to telegram groups in November 2022, and to the
    telegram-bot library in version 20.0. They are a purely additive change
    that is exposed by a single parameter `message_thread_id`. Not passing
    this parameter will not change the behaviour from current.

    This same parameter is used to send messages to threads and messages to
    topics inside groups.

    https://telegram.org/blog/topics-in-groups-collectible-usernames/it?setln=en#topics-in-groups

    Fixes #81888
    Fixes #91750

* telegram_bot: add tests for threads feature.

* telegram_bot: fixed tests for threads.

* telegram_bot: fixed wrong line.

* Update test_telegram_bot.py

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-06-05 17:41:40 +02:00
Robert Svensson 862c04a4b6 Use fixtures in UniFi service tests (#118838)
* Use fixtures in UniFi service tests

* Fix comments
2024-06-05 17:04:28 +02:00
Joost Lekkerkerker c4cfd9adf0 Add entity translations to incomfort (#118876) 2024-06-05 17:03:58 +02:00
Joost Lekkerkerker 60c06732b1 Add state and device class to incomfort (#118877)
* Add state and device class to incomfort

* Add state and device class to incomfort
2024-06-05 16:06:23 +02:00
Dmitriy 906c906653 Fix Ezviz last alarm picture (#112074)
* Fix Ezviz last alarm picture

* Review fixes
2024-06-05 15:55:59 +02:00
Josef Zweck d0a036c617 Allow more input params to webhook generate_url helper (#112334)
* allow more params to helper

* switch back to f-string

* add test

* switch to proper method

* add allow_external, internal params

* fx default

* add signature comparison

* remove test, change prefer_external

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-06-05 15:55:37 +02:00
Jan Bouwhuis 066cd6dbef Improve repair issue when notify service is still being used (#118855)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-06-05 15:41:22 +02:00
starkillerOG edd3c45c09 Add binary "sleeping" sensor to Reolink (#118774) 2024-06-05 14:30:15 +02:00
Pete Sage 0d1fb1fc9f Fix Hydrawise sensor availability (#118669)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-06-05 14:18:41 +02:00
Bram Kragten 3a4b84a4ce Update frontend to 20240605.0 (#118875) 2024-06-05 13:32:50 +02:00
epenet 4b663dbf01 Rename esphome fixture (#118865) 2024-06-05 13:31:59 +02:00
Marc Mueller 873a842166 Update coverage to 7.5.3 (#118870) 2024-06-05 13:31:31 +02:00
Joost Lekkerkerker 986d8986a9 Introduce incomfort boiler entity (#118861) 2024-06-05 13:09:24 +02:00
Joost Lekkerkerker 8d11279bc9 Remove obsolete polling from incomfort water heater (#118860)
Remove obsolete polling
2024-06-05 12:55:40 +02:00
Joost Lekkerkerker 239984f87d Add entity descriptions to incomfort binary sensor (#118863)
* Detach name from unique id in incomfort

* Add entity descriptions to incomfort

* Revert "Detach name from unique id in incomfort"

This reverts commit 17448444664f6b84c5e5e2a18899444eafe75785.

* yes
2024-06-05 12:51:39 +02:00
Marc Mueller 68a537a05a Fix TypeAliasType not callable in senz (#118872) 2024-06-05 12:47:52 +02:00
Michał Jaworski aedb0a3ca4 Add new sensors to blebox (#118837)
blebox: add mapping for new sensor types introduced in blebox_uniapi>-2.4.0

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-06-05 12:17:56 +02:00
Michał Jaworski 5e9eae14fc Bump blebox-uniapi fom 2.2.2 to 2.4.2 (#118836)
* blebox: udpdate version in manifest and add new sensor key mapping

* blebox: add more sensor types

* blebox: use blebox_uniapi==2.4.1

* blebox: use blebox_uniapi==2.4.2

* blebox: update requirements_all.txt

* blebox: revert introduction of illuminance and power meter sensors set
2024-06-05 12:11:49 +02:00
Joost Lekkerkerker 7a7a9c610a Detach name from unique id in incomfort (#118862)
* Detach name from unique id in incomfort

* Add entity descriptions to incomfort

* Revert "Add entity descriptions to incomfort"

This reverts commit 2b6ccd4c3bb921a1b607239a33ef15834dd23e8c.
2024-06-05 11:40:37 +02:00
Jan Bouwhuis 9a510cfe32 Add data coordinator to incomfort integration (#118816)
* Add data coordinator to incomfort integration

* Remove unused code and redundant comment, move entity class

* Use freezer

* Cleanup snapshot

* Use entry.runtime_data

* Use freezer, use mock_config_entry

* Use tick

* Use ConfigEntryError while we do not yet support a re-auth flow, update tests

* Use tick with async_fire_time_changed
2024-06-05 10:45:01 +02:00
Ethem Cem Özkan adc21e7c55 Bump python-roborock to 2.2.3 (#118853)
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-06-05 10:22:05 +02:00
epenet 9c8aa8456e Move enable_bluetooth fixture to decorator (#118849) 2024-06-05 09:20:48 +02:00
epenet c7e065c413 Move enable_custom_integrations fixture to decorator (#118844) 2024-06-05 09:20:08 +02:00
Erwin Douna 985e42e50c Add more typing to DSMR Reader (#118852) 2024-06-05 09:05:31 +02:00
dependabot[bot] 357cc7d4cc Bump github/codeql-action from 3.25.7 to 3.25.8 (#118850)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-05 08:58:48 +02:00
Diogo Gomes ba7f82d5e2 Add diagnostic to V2C (#118823)
* add diagnostic platform

* add diagnostic platform

* add diagnostic platform
2024-06-05 08:55:49 +02:00
Paulus Schoutsen 72309364f5 Fix the radio browser doing I/O in the event loop (#118842) 2024-06-04 23:59:25 -04:00
starkillerOG 678c06beb3 Conserve Reolink battery by not waking the camera on each update (#118773)
* update to new cmd_list type

* Wake battery cams each 1 hour

* fix styling

* fix epoch

* fix timezone

* force full update when using generic update service

* improve comment

* Use time.time() instead of datetime

* fix import order
2024-06-04 21:54:31 -04:00
starkillerOG 8723441227 Add Reolink serial number to device info of IPC camera (#118834)
* Add UID to dev info

* Add camera_uid to test
2024-06-04 21:37:40 -04:00
Franck Nijhof 46bb9cb014 Fix capitalization of protocols in Reolink option flow (#118839) 2024-06-04 21:35:54 -04:00
J. Nick Koston ed0568c655 Ensure config entries are not unloaded while their platforms are setting up (#118767)
* Report non-awaited/non-locked config entry platform forwards

Its currently possible for config entries to be reloaded while their platforms
are being forwarded if platform forwards are not awaited or done after the
config entry is setup since the lock will not be held in this case.

In https://developers.home-assistant.io/blog/2022/07/08/config_entry_forwards
we advised to await platform forwards to ensure this does not happen, however
for sleeping devices and late discovered devices, platform forwards may happen
later.

If config platform forwards are happening during setup, they should be awaited

If config entry platform forwards are not happening during setup, instead
async_late_forward_entry_setups should be used which will hold the lock to
prevent the config entry from being unloaded while its platforms are being
setup

* Report non-awaited/non-locked config entry platform forwards

Its currently possible for config entries to be reloaded while their platforms
are being forwarded if platform forwards are not awaited or done after the
config entry is setup since the lock will not be held in this case.

In https://developers.home-assistant.io/blog/2022/07/08/config_entry_forwards
we advised to await platform forwards to ensure this does not happen, however
for sleeping devices and late discovered devices, platform forwards may happen
later.

If config platform forwards are happening during setup, they should be awaited

If config entry platform forwards are not happening during setup, instead
async_late_forward_entry_setups should be used which will hold the lock to
prevent the config entry from being unloaded while its platforms are being
setup

* run with error on to find them

* cert_exp, hold lock

* cert_exp, hold lock

* shelly async_late_forward_entry_setups

* compact

* compact

* found another

* patch up mobileapp

* patch up hue tests

* patch up smartthings

* fix mqtt

* fix esphome

* zwave_js

* mqtt

* rework

* fixes

* fix mocking

* fix mocking

* do not call async_forward_entry_setup directly

* docstrings

* docstrings

* docstrings

* add comments

* doc strings

* fixed all in core, turn off strict

* coverage

* coverage

* missing

* coverage
2024-06-04 21:34:39 -04:00
J. Nick Koston 67b3be8432 Remove useless threading locks in mqtt (#118737) 2024-06-04 14:21:03 -05:00
Jack Boswell 278751607f Fix calculation of Starlink sleep end setting (#115507)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-06-04 14:19:09 -05:00
Robert Svensson b4f6325278 Use fixtures in UniFi switch tests (#118831) 2024-06-04 21:01:03 +02:00
Robert Svensson c2e245f9d4 Use fixtures in UniFi update tests (#118818) 2024-06-04 21:00:50 +02:00
arturyak 513262c0ff Add missing FAN_ONLY mode to ccm15 (#118804) 2024-06-04 20:58:58 +02:00
Tsvi Mostovicz 98455cbd93 Fix updating options in Jewish Calendar (#118643) 2024-06-04 20:55:38 +02:00
Gerben Jongerius f18ddb628c Bump youless dependency version to 2.1.0 (#118820) 2024-06-04 20:52:37 +02:00
Jan Bouwhuis 956623d964 Fix device name not set on all incomfort platforms (#118827)
* Prelimenary tests for incomfort integration

* Use snapshot_platform

* Use helper

* Ensure the device name is set in device info

* Move snapshot tests to platform test modules

* Move unused snapshot file

* Naming and docstr

* update snapshots

* cleanup snapshots

* Add water heater tests
2024-06-04 20:51:34 +02:00
Michał Huryn 5fca2c09c5 blebox: update codeowners (#118817) 2024-06-04 20:49:00 +02:00
Jan-Philipp Benecke c83aba0fd1 Initialize the Sentry SDK within an import executor job to not block event loop (#118830) 2024-06-04 20:47:06 +02:00
J. Nick Koston c8e7298556 Remove myself as codeowner for unifiprotect (#118824) 2024-06-04 13:21:56 -05:00
J. Nick Koston 72e4aee155 Ensure name of task is logged for unhandled loop exceptions (#118822) 2024-06-04 12:48:29 -04:00
Maciej Bieniek 709e32a38a Check if Shelly entry.runtime_data is available (#118805)
* Check if runtime_data is available

* Add tests

* Use `is` operator

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-04 18:40:18 +02:00
Bram Kragten 6483c46991 Update frontend to 20240604.0 (#118811) 2024-06-04 18:26:47 +02:00
Stefan Agner e2f45bfbdc Bump Python Matter Server library to 6.1.0 (#118806) 2024-06-04 18:23:22 +02:00
epenet b81f0b600f Move current_request_with_host fixture to decorator (#118810)
* Move current_request_with_host fixture to decorator

* One more
2024-06-04 17:50:22 +02:00
Paulus Schoutsen 52ad90a68d Include script description in LLM exposed entities (#118749)
* Include script description in LLM exposed entities

* Fix race in test

* Fix type

* Expose script

* Remove fields
2024-06-04 11:18:07 -04:00
ollo69 8610436948 Add remote entity to AndroidTV (#103496)
* Add remote entity to AndroidTV

* Add tests for remote entity

* Requested changes on tests
2024-06-04 17:02:30 +02:00
epenet b09f3eb313 Fix incorrect current_request_with_host type hint (#118809) 2024-06-04 16:26:39 +02:00
epenet 80975d7a63 Move None bluetooth fixtures to decorator (#118802) 2024-06-04 16:26:07 +02:00
epenet f120f55d86 Move enable_bluetooth fixture to decorator (#118803) 2024-06-04 16:20:11 +02:00
epenet 3d31af3eb4 Move entity_registry_enabled_by_default to decorator [a-p] (#118794) 2024-06-04 16:18:42 +02:00
epenet 089874f818 Move mock_hass_config fixture to decorator (#118807) 2024-06-04 16:05:56 +02:00
Joost Lekkerkerker 2ac5f8db06 Set unique id in aladdin connect config flow (#118798) 2024-06-04 16:00:53 +02:00
Richard Kroegel 1eb13b48a2 Add tests for BMW binary_sensor and lock (#118436)
* BMW: Add tests for binary_sensor & lock

* Use entity_registry_enabled_by_default fixture

* Update tests/components/bmw_connected_drive/test_binary_sensor.py

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

* Move fixtures to decorator

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

* Use fixture decorators if possible

* Fix rebase

* Spelling adjustments

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

* Use snapshot_platform helper

* Spelling

* Remove comment

---------

Co-authored-by: Richard <rikroe@users.noreply.github.com>
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-06-04 15:08:15 +02:00
Markus Jacobsen 67e9e90346 Bang & Olufsen add overlay/announce play_media functionality (#113434)
* Add overlay service

* Convert custom service to play_media announce

* Remove debugging
2024-06-04 13:48:22 +02:00
Joost Lekkerkerker 0aac4b26a4 Make Weatherflow a brand (#118785) 2024-06-04 13:40:48 +02:00
Joost Lekkerkerker 1877c1eec9 Make Ruuvi a brand (#118786) 2024-06-04 13:40:06 +02:00
epenet 20b5aa3e0e Move entity_registry_enabled_by_default to decorator [q-z] (#118793) 2024-06-04 13:38:32 +02:00
epenet 3ac0fa53c8 Cleanup unused FixtureRequest in tests (#118780) 2024-06-04 11:49:21 +02:00
Joost Lekkerkerker fce5f2a93f Move Aladdin stale device removal to init module (#118784) 2024-06-04 11:34:21 +02:00
Erik Montnemery c0912a019c Deduplicate light services.yaml (#118738)
* Deduplicate light services.yaml

* Remove support for .-keys
2024-06-04 11:30:34 +02:00
Joost Lekkerkerker 7ed119b0b6 Re-enable sensor platform for Aladdin Connect (#118782) 2024-06-04 11:04:10 +02:00
dependabot[bot] d905542f49 Bump dawidd6/action-download-artifact from 3.1.4 to 4 (#118772)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-04 11:00:00 +02:00
Alexandre CUER a1e4d4ddd7 Remove duplicate code in emoncms (#118610)
* Remove duplicate & property extra_state_attributes

* Add methods _update_attributes and _update_value

* correction in _update_value

* Update homeassistant/components/emoncms/sensor.py

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

* Update homeassistant/components/emoncms/sensor.py

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

* Update homeassistant/components/emoncms/sensor.py

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

* Update homeassistant/components/emoncms/sensor.py

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

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-06-04 10:56:43 +02:00
Joost Lekkerkerker 43a9a4f9ed Bump airgradient to 0.4.3 (#118776) 2024-06-04 10:53:16 +02:00
Joost Lekkerkerker e9f01be090 Add coordinator to Aladdin Connect (#118781) 2024-06-04 10:51:28 +02:00
Aidan Timson 42414d55e0 Azure DevOps build sensor attributes to new sensors (#114948)
* Setup for split

* Adjust to allow for None

* Create

* Add missing

* Fix datetime parsing in Azure DevOps sensor

* Remove definition id and name

These aren't needed and will never change

* Add tests for each sensor

* Add tests for edge cases

* Rename translations

* Update

* Use base sensor descriptions

* Remove

* Drop status

using this later for an event entity

* Switch to timestamp

* Switch to timestamp

* Merge

* Update snapshot

* Improvements from @joostlek

* Update homeassistant/components/azure_devops/sensor.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-06-04 10:50:43 +02:00
Mr. Bubbles 7815840194 Add ista EcoTrend integration (#118360)
* Add ista EcoTrend integration

* move code out of try

* Use account owners name as entry title

* update config flow tests

* add tests for init

* Add reauth flow

* Add tests for sensors

* add translations for reauth

* trigger statistics import on first refresh

* Move statistics and reauth flow to other PR

* Fix tests

* some changes

* draft_final_final

* remove unnecessary icons

* changed tests

* move device_registry test to init

* add text selectors
2024-06-04 10:45:53 +02:00
epenet b54a68750b Add type hints for FixtureRequest in tests (#118779) 2024-06-04 10:37:54 +02:00
Joost Lekkerkerker 16fd19f01a Use model from Aladdin Connect lib (#118778)
* Use model from Aladdin Connect lib

* Fix
2024-06-04 10:29:51 +02:00
Joost Lekkerkerker da408c6703 Initial cleanup for Aladdin connect (#118777) 2024-06-04 10:13:31 +02:00
Richard Kroegel 7fb2802910 Allow per-sensor unit conversion on BMW sensors (#110272)
* Update BMW sensors to use device_class

* Test adjustments

* Trigger CI

* Remove unneeded cast

* Set suggested_display_precision to 0

* Rebase for climate_status

* Change charging_status to ENUM device class

* Add test for Enum translations

* Pin Enum sensor values

* Use snapshot_platform helper

* Remove translation tests

* Formatting

* Remove comment

* Use const.STATE_UNKOWN

* Fix typo

* Update strings

* Loop through Enum sensors

* Revert enum sensor changes

---------

Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-06-04 09:06:23 +02:00
starkillerOG cba07540e9 Bump reolink-aio to 0.9.1 (#118655)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-06-04 08:00:40 +02:00
Aaron Bach d43d12905d Don't require code to arm SimpliSafe (#118759) 2024-06-04 07:20:37 +02:00
J. Nick Koston 553311cc7d Add os.walk to asyncio loop blocking detection (#118769) 2024-06-04 06:53:37 +02:00
Joakim Sørensen 53ab215dfc Update hass-nabucasa to version 0.81.1 (#118768) 2024-06-04 06:27:54 +02:00
Jan Bouwhuis e799270578 Recover mqtt abbrevations optimizations (#118762)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-06-04 06:20:18 +02:00
Michael Hansen 289263087c Bump intents to 2024.6.3 (#118748) 2024-06-03 22:47:09 -04:00
Michael Hansen 0257aa4839 Clean up exposed domains (#118753)
* Remove lock and script

* Add media player

* Fix tests
2024-06-03 21:26:40 -05:00
J. Nick Koston 35a1ecea27 Speed up statistics_during_period websocket api (#118672) 2024-06-03 18:08:46 -05:00
Jan Bouwhuis 2c206c18d4 Do not log mqtt origin info if the log level does not allow it (#118752) 2024-06-03 23:38:31 +02:00
Jan Bouwhuis 39f5f30ca9 Revert "Allow MQTT device based auto discovery" (#118746)
Revert "Allow MQTT device based auto discovery (#109030)"

This reverts commit 585892f067.
2024-06-03 22:30:37 +02:00
Paulus Schoutsen 035e19be01 Google Gen AI: Copy messages to avoid changing the trace data (#118745) 2024-06-03 22:29:50 +02:00
Paulus Schoutsen 299c0de968 Update OpenAI prompt on each interaction (#118747) 2024-06-03 22:27:05 +02:00
David Bonnes 8ea3a6843a Harden evohome against failures to retrieve zone schedules (#118517) 2024-06-03 21:48:48 +02:00
Jan Bouwhuis ff27f8ef10 Add device info to incomfort entities (#118741)
* Add device info to incomfort entities

* Add DOMAIN import
2024-06-03 21:30:13 +02:00
Joost Lekkerkerker 2a92f78453 Require firmware version 3.1.1 for airgradient (#118744) 2024-06-03 21:08:28 +02:00
Jan Bouwhuis dd1dd4c6a3 Migrate Intergas InComfort/Intouch Lan2RF gateway YAML to config flow (#118642)
* Add config flow

* Make sure the device is polled - refactor

* Fix

* Add tests config flow

* Update test requirements

* Ensure dispatcher has a unique signal per heater

* Followup on review

* Follow up comments

* One more docstr

* Make specific try blocks and refactoring

* Handle import exceptions

* Restore removed lines

* Move initial heater update in try block

* Raise issue failed import

* Update test codeowners

* Remove entity device info

* Remove entity device info

* Appy suggestions from code review

* Remove broad exception handling from entry setup

* Test coverage
2024-06-03 20:37:48 +02:00
Michael Hansen aac31059b0 Resolve areas/floors to ids in intent_script (#118734) 2024-06-03 20:29:26 +02:00
J. Nick Koston 588380392d Small speed up to read-only database sessions (#118674) 2024-06-03 19:50:05 +02:00
tronikos f9dff1632e Use ISO format when passing date to LLMs (#118705) 2024-06-03 19:48:50 +02:00
Richard Kroegel 60bcd27a47 Use snapshot_platform helper for BMW tests (#118735)
* Use snapshot_platform helper

* Remove comments

---------

Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-06-03 19:46:04 +02:00
Paulus Schoutsen 3cc13d454f Remove dispatcher from Tag entity (#118671)
* Remove dispatcher from Tag entity

* type

* Don't use  helper

* Del is faster than pop

* Use id in update

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-06-03 20:39:40 +03:00
David Knowles ebe4888c21 Bump pydrawise to 2024.6.2 (#118608) 2024-06-03 19:29:20 +02:00
Bram Kragten 049cac3443 Update frontend to 20240603.0 (#118736) 2024-06-03 19:25:01 +02:00
Joost Lekkerkerker 16485af7fc Configure device in airgradient config flow (#118699) 2024-06-03 19:23:07 +02:00
Diogo Gomes 91ca7db02f Address reviews comments in #117147 (#118714) 2024-06-03 19:22:00 +02:00
mkmer ca1ed6f610 Remove unintended translation key from blink (#118712) 2024-06-03 19:13:18 +02:00
J. Nick Koston 9cb113e5d4 Convert mqtt to use a timer instead of task sleep loop (#118666) 2024-06-03 11:19:19 -05:00
J. Nick Koston 099ad77078 Migrate recorder instance to use HassKey (#118673) 2024-06-03 11:19:00 -05:00
epenet 5d594a509c Add type hints for MockAgent in conversation tests (#118701) 2024-06-03 17:44:13 +02:00
epenet f178467b0e Add type hints for TTS test fixtures (#118704) 2024-06-03 17:43:18 +02:00
Jan-Philipp Benecke 32d4431f9b Rename Discovergy to inexogy (#118724) 2024-06-03 17:30:17 +02:00
Diogo Gomes 827dfec311 Bump pytrydan to 0.7.0 (#118726) 2024-06-03 17:27:06 +02:00
epenet dd90fb15e1 Fix incorrect type hint in dremel_3d_printer tests (#118709) 2024-06-03 17:16:48 +02:00
Erik Montnemery 99e02fe2b2 Remove tag_id from tag store (#118713) 2024-06-03 17:15:57 +02:00
Erik Montnemery 01b4589ef6 Tweak light service schema (#118720) 2024-06-03 17:13:48 +02:00
Paulus Schoutsen bdcfd93129 Automatically fill in slots based on LLM context (#118619)
* Automatically fill in slots from LLM context

* Add tests

* Apply suggestions from code review

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

---------

Co-authored-by: Allen Porter <allen@thebends.org>
2024-06-03 10:36:41 -04:00
RJPoelstra 8a68529dd1 Bump python-MotionMount to 2.0.0 (#118719) 2024-06-03 16:27:42 +02:00
Matrix 595c9a2e01 Fixing device model compatibility issues. (#118686) 2024-06-03 15:56:42 +02:00
epenet 771ed33b14 Bump renault-api to 0.2.3 (#118718) 2024-06-03 15:53:23 +02:00
Joost Lekkerkerker c32eb97ac0 Disable both option in Airgradient select (#118702) 2024-06-03 15:49:51 +02:00
Paul Bottein 6d02453c8a Bump python-roborock to 2.2.2 (#118697) 2024-06-03 15:39:50 +02:00
starkillerOG 26ab4ad918 Add HDR type attribute to Kodi (#109603)
Co-authored-by: Andriy Kushnir <me@orhideous.name>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-06-03 14:37:36 +02:00
Jake Martin a3b60cb054 Add Monzo config reauth (#117726)
* Add reauth config flow

* Trigger reauth on Monzo AuthorisaionExpiredError

* Add missing abort strings

* Use FlowResultType enum

* One extra == swapped for is

* Use helper in reauth

* Patch correct function in reauth test

* Remove unecessary **

* Swap patch and calls check for access token checks

* Do reauth trigger test without patch

* Remove unnecessary str() on user_id - always str anyway

* Update tests/components/monzo/test_config_flow.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-06-03 13:18:15 +02:00
Richard Kroegel ef7c7f1c05 Refactor fixture calling for BMW tests (#118708)
* Refactor BMW tests to use pytest.mark.usefixtures

* Fix freeze_time

---------

Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-06-03 13:16:12 +02:00
Erik Montnemery 765114bead Don't store tag_id in tag storage (#118707) 2024-06-03 13:11:00 +02:00
Mick Vleeshouwer 87a1b8e83c Bump pyoverkiz to 1.13.11 (#118703) 2024-06-03 11:43:40 +02:00
David Bonnes 185ce8221b Update the codeowners of the incomfort integration (#118706) 2024-06-03 11:29:54 +02:00
Åke Strandberg 855ba68b62 Allow removal of myuplink device from GUI (#117009)
* Allow removal of device from GUI

* Check that device is orphaned before removing
2024-06-03 10:59:42 +02:00
Jan Bouwhuis 1b87a2dd73 Update codeowners incomfort integration (#118700) 2024-06-03 10:38:24 +02:00
Erik Montnemery 35dcda29b9 Use ULID instead of UUID for config entry id and flow ID (#118677) 2024-06-03 10:34:09 +02:00
epenet 6cf7889c38 Add type hints for requests_mock.Mocker in test fixtures (#118678) 2024-06-03 10:30:08 +02:00
epenet 9be972b13e Add type hints for list[Device] in test fixtures (#118681) 2024-06-03 10:21:24 +02:00
epenet f39dd40be1 Add type hints for hass_storage in test fixtures (#118682) 2024-06-03 10:20:57 +02:00
epenet fdec1b0b16 Add type hints for ClientSessionGenerator in test fixtures (#118689) 2024-06-03 10:19:49 +02:00
epenet 77c627e6f3 Fix incorrect blueprint type hints in tests (#118694) 2024-06-03 10:19:13 +02:00
epenet d5eebb202b Remove unused fixture from elmax tests (#118684) 2024-06-03 10:18:36 +02:00
epenet 8772a59f5c Add type hints for Recorder in test fixtures (#118685) 2024-06-03 10:17:51 +02:00
epenet 666fc2333a Add type hints for AiohttpClientMocker in test fixtures (#118691) 2024-06-03 10:13:22 +02:00
epenet c93d42d59b Add type hints for FrozenDateTimeFactory in test fixtures (#118690) 2024-06-03 10:12:58 +02:00
J. Nick Koston 134088e1f6 Revert "Add websocket API to get list of recorded entities (#92640)" (#118644)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-06-03 10:11:24 +02:00
epenet 891f9c9578 Add error message to device registry helper (#118676) 2024-06-03 09:58:02 +02:00
dependabot[bot] a87b422d3e Bump github/codeql-action from 3.25.6 to 3.25.7 (#118680)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 09:52:04 +02:00
epenet 1db7c7946e Add type hints for MqttMockHAClient in test fixtures (#118683) 2024-06-03 09:29:15 +02:00
epenet 9a5706fa30 Add type hints for pytest.LogCaptureFixture in test fixtures (#118687) 2024-06-03 09:28:54 +02:00
Jan Bouwhuis bb259b607f Refactor incomfort platform attributes (#118667)
* Refector incomfort platform attributes

* Initialize static entity properties as class level
2024-06-03 08:32:05 +02:00
Richard Kroegel 7c5a6602b3 Set lock state to unkown on BMW API error (#118559)
* Revert to previous lock state on BMW API error

* Set lock state to unkown on error and force refresh from API

---------

Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-06-03 07:48:48 +02:00
Marlon c23ec96174 Add BaseEntity for apsystems integration (#117514)
* Add BaseEntity for apsystems integration

* Exclude entity.py from apsystems from coverage

* Remove api from BaseEntity from apsystems as it is not yet used

* Split BaseEntity and BaseCoordinatorEntity in apsystems integration

* Clean up of asserting unique_id everywhere in apsystems integration

* Remove BaseCoordinatorEntity from apsystems

* Remove double type declaration originating from merge in apsystems
2024-06-03 07:28:13 +02:00
Thomas55555 78e5f9578c Clean up Husqvarna Automower number platform (#118641)
Address late review and remove unneeded loop in Husqvarna Automower
2024-06-03 05:13:02 +02:00
G Johansson 6a8a975fae Remove config flow import from fastdotcom (#118665) 2024-06-02 21:04:35 -04:00
G Johansson dd1d21c77a Fix entity state dispatching for Tag entities (#118662) 2024-06-02 20:41:16 -04:00
puddly 746939c8cd Bump ZHA dependencies (#118658)
* Bump bellows to 0.39.0

* Do not create a backup if there is no active ZHA gateway object

* Bump universal-silabs-flasher as well
2024-06-02 16:55:48 -04:00
Jan Bouwhuis 375f48142c Fix handling undecoded mqtt sensor payloads (#118633) 2024-06-02 21:25:05 +02:00
Maciej Bieniek afc29fdbe7 Add support for the DS18B20 temperature sensor to Nettigo Air Monitor integration (#118601)
Add support for DS18B20 temperature sensor

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-02 20:55:36 +02:00
Joost Lekkerkerker 51394cefba Fix incorrect placeholder in SharkIQ (#118640)
Update strings.json
2024-06-02 20:15:35 +02:00
J. Nick Koston 51ed4f89ec Use more efficient chunked_or_all for recorder table managers (#118646) 2024-06-02 13:04:53 -05:00
Adam Pasztor 54a1a4ab41 Bump pyads to 3.4.0 (#116934)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-06-02 15:41:44 +02:00
epenet 37fc16d7b6 Fix incorrect patch type hint in main conftest (#118461) 2024-06-02 15:34:30 +02:00
Marc Mueller dbb27755a4 Update mypy-dev to 1.11.0a5 (#118519) 2024-06-02 15:28:24 +02:00
J. Nick Koston 8f94205014 Include a traceback for non-strict event loop blocking detection (#118620) 2024-06-02 06:36:25 -04:00
epenet e976db8443 Address late review comment in samsungtv (#118539)
Address late comment in samsungtv
2024-06-02 10:42:42 +02:00
Luca Angemi d67ed42edc Fix telegram bot send_document (#118616) 2024-06-02 01:32:24 -05:00
Michael 46eb779c5c Avoid future exception during setup of Synology DSM (#118583)
* avoid future exception during integration setup

* clear future flag during setup

* always clear the flag (with comment)
2024-06-01 23:51:17 +02:00
Marc Mueller e485a0c6f2 Update typing-extensions to 4.12.1 (#118615) 2024-06-01 22:26:23 +02:00
Alexandre CUER 1f922798d8 Add new codeowner for emoncms integration (#118609)
adding new codeowner
2024-06-01 21:14:18 +02:00
Sid daadc4662a Bump ruff to 0.4.7 (#118612) 2024-06-01 20:04:04 +02:00
Maciej Bieniek 649d6ec11a Bump nettigo_air_monitor library to version 3.2.0 (#118600)
* Bump nam to version 3.2.0

* Update test snapshot

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-06-01 18:10:45 +02:00
Dave T b69789d056 Don't prompt user to verify still image if none was provided in generic camera (#118599)
Skip user prompt for preview image if only stream
2024-06-01 10:30:32 -04:00
Thomas Ytterdal ca89d22a34 Ignore myuplink sensors without a description that provide non-numeric values (#115525)
Ignore sensors without a description that provide non-numeric values

Co-authored-by: Jan-Philipp Benecke <jan-philipp@bnck.me>
2024-06-01 11:27:03 +02:00
epenet 6115dffd80 Cleanup pylint ignore in melnor tests (#118564) 2024-06-01 08:03:32 +02:00
Joost Lekkerkerker 51933b0f47 Improve typing in Zabbix (#118545) 2024-06-01 07:40:26 +02:00
tronikos a4612143e6 Use gemini-1.5-flash-latest in google_generative_ai_conversation.generate_content (#118594) 2024-05-31 21:57:14 -07:00
tronikos 7af469f81e Strip Google AI text responses (#118593)
* Strip Google AI test responses

* strip each part
2024-05-31 21:55:52 -07:00
Paulus Schoutsen f3b20d30ae Add base prompt for LLMs (#118592) 2024-06-01 00:21:37 -04:00
tronikos dfb407728f Stop instructing LLM to not pass the domain as a list (#118590) 2024-05-31 20:21:18 -04:00
Robert Svensson 3232fd0eaf Improve UniFi config flow tests (#118587)
* Use proper fixtures in config flow tests

* Improve rest of config flow tests

* Small improvement

* Rename fixtures
2024-06-01 00:27:53 +02:00
epenet 738935a73a Update device connections in samsungtv (#118556) 2024-05-31 16:07:51 -05:00
Jan-Philipp Benecke 32b51b8792 Run ruff format for device registry (#118582) 2024-05-31 22:22:48 +02:00
Joost Lekkerkerker f6800e6968 Improve typing in Zengge (#118547) 2024-05-31 21:35:42 +02:00
epenet 41e852a01b Add ability to replace connections in DeviceRegistry (#118555)
* Add ability to replace connections in DeviceRegistry

* Add more tests

* Improve coverage

* Apply suggestion

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

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-05-31 15:31:44 -04:00
Denis Shulyaka bae96e7d36 Add Google Generative AI Conversation system prompt user_name and llm_context variables (#118510)
* Google Generative AI Conversation: Add variables to the system prompt

* User name and llm_context

* test for template variables

* test for template variables

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-31 15:28:44 -04:00
Denis Shulyaka 46da43d09d Add OpenAI Conversation system prompt user_name and llm_context variables (#118512)
* OpenAI Conversation: Add variables to the system prompt

* User name and llm_context

* test for user name

* test for user id

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-31 15:28:23 -04:00
Paulus Schoutsen 80e9ff672a Fix openAI tool calls (#118577) 2024-05-31 19:28:52 +02:00
starkillerOG 51d8f83a54 Add state translation to Reolink AI detections (#118560) 2024-05-31 17:55:59 +02:00
Josef Zweck d956db691a Migrate openai_conversation to entry.runtime_data (#118535)
* switch to entry.runtime_data

* check for missing config entry

* Update homeassistant/components/openai_conversation/__init__.py

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-05-31 11:16:39 -04:00
J. Nick Koston ade0f94a20 Remove duplicate getattr call in entity wrap_attr (#118558) 2024-05-31 11:11:46 -04:00
Paulus Schoutsen 6dd01dbff7 Rename llm.ToolContext to llm.LLMContext (#118566) 2024-05-31 11:11:24 -04:00
J. Nick Koston 6656f7d6b9 Log directory blocking I/O functions that run in the event loop (#118529)
* Log directory I/O functions that run in the event loop

* tests
2024-05-31 11:09:19 -04:00
J. Nick Koston 1fef4fa1f6 Prevent time.sleep calls from blocking the event loop (#118561)
* Prevent time.sleep calls from blocking the event loop

We have been warning on these since Jan 2022. 2+ years seems more than enough
time to give to fix these. see https://github.com/home-assistant/core/pull/63766

* Prevent time.sleep calls from blocking the event loop

We have been warning on these since Jan 2022. 2+ years seems more than enough
time to give to fix these. see https://github.com/home-assistant/core/pull/63766
2024-05-31 11:08:22 -04:00
Michael Chisholm 15f726da50 Fix KeyError in dlna_dmr SSDP config flow when checking existing config entries (#118549)
Fix KeyError checking existing dlna_dmr config entries
2024-05-31 10:52:19 -04:00
J. Nick Koston d67f14ac0b Fix openweathermap config entry migration (#118526)
* Fix openweathermap config entry migration

The options keys were accidentally migrated to data so
they could no longer be changed in the options flow

* more fixes

* adjust

* reduce

* fix

* adjust
2024-05-31 10:51:38 -04:00
Bas Brussee bff2d3e2ee Revert "Fix Tibber sensors state class" (#118409)
Revert "Fix Tibber sensors state class (#117085)"

This reverts commit 658c1f3d97.
2024-05-31 10:50:22 -04:00
osohotwateriot cf3e758aa1 Move OSO Energy base entity class to separate module (#118563)
Move base entity class to separate file
2024-05-31 16:13:20 +02:00
Maciej Bieniek 8f5ddd5bcc Bump brother backend library to version 4.2.0 (#118557)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-31 09:00:33 -05:00
Brett Adams 929568c3b5 Fix off_grid_vehicle_charging_reserve_percent in Teselemetry (#118532) 2024-05-31 07:54:40 -05:00
Maciej Bieniek c85743822a In Brother integration use SnmpEngine from SNMP integration (#118554)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-31 07:52:43 -05:00
Luca Angemi 5ed9d58a7b Fix telegram doing blocking I/O in the event loop (#118531) 2024-05-31 07:45:52 -05:00
J. Nick Koston 76391d71d6 Fix snmp doing blocking I/O in the event loop (#118521) 2024-05-31 07:44:28 -05:00
Joost Lekkerkerker a23b5e97e6 Fix typo in OWM strings (#118538)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-05-31 07:11:59 -05:00
epenet 0974ea9a5a Adjust "hass" type hint for test fixtures in pylint plugin (#118548)
Adjust "hass" type hint in pylint plugin
2024-05-31 13:06:49 +02:00
epenet 7e1f4cd3fb Check fixtures for type hints in pylint plugin (#118313)
* Check fixtures for type hints in pylint plugin

* Apply suggestion
2024-05-31 12:42:42 +02:00
Tsvi Mostovicz 9fc51891ca Fix YAML deprecation breaking version in jewish calendar and media extractor (#118546)
* Fix YAML deprecation breaking version

* Update

* fix media extractor deprecation as well

* Add issue_domain
2024-05-31 12:35:40 +02:00
epenet ec4545ce4a Small performance improvement to pylint plugin (#118475)
* Small improvement to pylint plugin

* Adjust

* Improve

* Rename variable and drop used argument
2024-05-31 12:03:29 +02:00
Alexandre CUER 8a3b49434e Code quality improvements in emoncms integration (#118468)
* type hints
remove unused var interval

* corrections as suggested by epenet

* reintroducing property extra_state_attributes
so that the extra parameters update correctly
2024-05-31 11:50:18 +02:00
epenet 7804076064 Drop single-use constant from pylint plugin (#118540)
* Drop single-use constant from pylint plugin

* Typo
2024-05-31 11:18:55 +02:00
David Bonnes 85d979847c Move evohome helper functions to separate module (#118497)
initial commit
2024-05-31 10:22:15 +02:00
Maciej Bieniek cdcf091c9c Pass the message as an exception argument in Tractive integration (#118534)
Pass the message as an exception argument

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-31 09:11:52 +02:00
Markus Jacobsen cb502263fd Bang & Olufsen fix straggler from previous PR (#118488)
* Fix callback straggler from previous PR

* Update homeassistant/components/bang_olufsen/media_player.py

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-05-30 22:23:43 -04:00
Jan-Philipp Benecke 2b4e9212bc Log aiohttp error in rest_command (#118453) 2024-05-30 22:17:44 -04:00
epenet 83e77720e9 Improve type hints for mock_bluetooth/enable_bluetooth (#118484) 2024-05-30 22:16:45 -04:00
tronikos 2b7685b71d Add Google Assistant SDK diagnostics (#118513) 2024-05-30 22:13:54 -04:00
Josef Zweck eae04bf2e9 Add typing for OpenAI client and fallout (#118514)
* typing for client and consequences

* Update homeassistant/components/openai_conversation/conversation.py

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-05-30 22:13:18 -04:00
tronikos 2bd142d3a6 Improve LLM prompt (#118520) 2024-05-30 22:03:57 -04:00
tronikos 272c51fb38 Fix unnecessary single quotes escaping in Google AI (#118522) 2024-05-30 19:56:06 -04:00
tronikos 0d6c7d0973 Fix LLMs asking which area when there is only one device (#118518)
* Ignore deprecated open and close cover intents for LLMs

* Fix LLMs asking which area when there is only one device

* remove unrelated changed

* remove unrelated changes
2024-05-30 17:14:11 -04:00
G Johansson b5ec24ef63 Fix key issue in config entry options in Openweathermap (#118506) 2024-05-30 16:35:36 -04:00
G Johansson 5c6753f4c0 Fix tado non-string unique id for device trackers (#118505)
* Fix tado none string unique id for device trackers

* Add comment

* Fix comment
2024-05-30 16:31:02 -04:00
Mr. Bubbles 2b016d29c9 Fix typing and streamline code in One-Time Password integration (#118511)
* Fix some issues

* some changes
2024-05-30 22:29:28 +02:00
tronikos 6d82cfa91a Ignore deprecated open and close cover intents for LLMs (#118515) 2024-05-30 16:29:13 -04:00
epenet a5dc4cb1c7 Fix incorrect zeroconf type hint in tests (#118465)
* Fix incorrect `mock_async_zeroconf` type hint

* Adjust thread

* One more

* Fix mock_zeroconf also

* Adjust

* Adjust
2024-05-30 21:57:09 +02:00
Matthias Alphart 1352c4e427 Increase test coverage for KNX Climate (#117903)
* Increase test coverage fro KNX Climate

* fix test type annotation
2024-05-30 21:42:11 +02:00
Diogo Gomes 822273a6a3 Add support for V2C Trydan 2.1.7 (#117147)
* Support for firmware 2.1.7

* add device ID as unique_id

* add device ID as unique_id

* add test device id as unique_id

* backward compatibility

* move outside try

* Sensor return type

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

* not needed

* make slave error enum state

* fix enum

* Update homeassistant/components/v2c/sensor.py

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

* Update homeassistant/components/v2c/strings.json

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

* Update homeassistant/components/v2c/strings.json

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

* simplify tests

* fix misspellings from upstream library

* add sensor tests

* just enough coverage for enum sensor

* Refactor V2C tests (#117264)

* Refactor V2C tests

* fix rebase issues

* ruff

* review

* fix https://github.com/home-assistant/core/issues/117296

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-30 20:42:48 +02:00
Ron Weikamp 43c69c71c2 Add time based integration trigger to Riemann sum integral helper sensor (#110685)
* Schedule max dt for Riemann Integral sensor

* Simplify validation. Dont integrate on change if either old or new state is not numeric.

* Add validation to integration methods. Rollback requirement for both states to be always numeric.

* Use 0 max_dt for disabling time based updates.

* Use docstring instead of pass keyword in abstract methods.

* Use time_period config validation for max_dt

* Use new_state for scheduling max_dt. Only schedule if new state is numeric.

* Use default 0 (None) for max_dt.

* Rename max_dt to max_age.

* Rollback accidental renaming of different file

* Remove unnecessary and nonsensical max value.

* Improve new config description

* Use DurationSelector in config flow

* Rename new config to max_sub_interval

* Simplify by checking once for the integration strategy

* Use positive time period validation of sub interval in platform schema

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

* Remove return keyword

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

* Simplify scheduling of interval exceeded callback

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

* Improve documentation

* Be more clear about when time based integration is disabled.

* Update homeassistant/components/integration/config_flow.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-30 20:40:23 +02:00
G Johansson 4d27dd0fb0 Remove not needed hass object from Tag (#118498) 2024-05-30 19:24:34 +02:00
David Bonnes a3fcd6b32f Fix evohome so it doesn't retrieve schedules unnecessarily (#118478) 2024-05-30 19:23:58 +02:00
dontinelli f1465baada Adjustment of unit of measurement for light (#116695) 2024-05-30 19:18:48 +02:00
Jan Bouwhuis 796d940f2f Fix group platform dependencies (#118499) 2024-05-30 19:14:54 +02:00
G Johansson 34df767762 Fix blocking call in holiday (#118496) 2024-05-30 19:11:19 +02:00
Paulus Schoutsen 80588d9c67 Ignore the toggle intent (#118491) 2024-05-30 12:53:50 -04:00
Paulus Schoutsen ae3741c364 Intent script: allow setting description and platforms (#118500)
* Add description to intent_script

* Allow setting platforms
2024-05-30 12:53:42 -04:00
Tsvi Mostovicz 12215c51b3 Fix Jewish calendar unique id's (#117985)
* Initial commit

* Fix updating of unique id

* Add testing to check the unique id is being updated correctly

* Reload the config entry and confirm the unique id has not been changed

* Move updating unique_id to __init__.py as suggested

* Change the config_entry variable's name back from config to config_entry

* Move the loop into the update_unique_ids method

* Move test from test_config_flow to test_init

* Try an early optimization to check if we need to update the unique ids

* Mention the correct version

* Implement suggestions

* Ensure all entities are migrated correctly

* Just to be sure keep the previous assertion as well
2024-05-30 18:27:15 +02:00
Ron Weikamp 2814ed5003 Add allow_negative configuration option to DurationSelector (#116134)
* Add configuration option positive to DurationSelector

* Rename to allow_negative in conjunction with a deprecation notice

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

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-30 17:42:34 +02:00
Marcel van der Veldt a95c074ab8 Extend Matter sensor discovery schemas for Air Purifier / Air Quality devices (#118483)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-05-30 16:59:45 +02:00
Bram Kragten 56e4fa86b0 Update frontend to 20240530.0 (#118489) 2024-05-30 16:55:49 +02:00
Marcel van der Veldt 2ca4077608 Mark Matter climate dry/fan mode support on Panasonic AC (#118485) 2024-05-30 16:39:04 +02:00
Oleg Kurapov 2cc38b426a Add XML support to RESTful binary sensor (#110062)
* Add XML support to RESTful binary sensor

* Add test for binary sensor with XML input data

* Address mypy validation results by handling None returns

* Use proper incorrect XML instead of blank

* Change failure condition to match the behavior of the library method

* Change error handling for bad XML to expect ExpatError

* Parametrize bad XML test to catch both empty and invalid XML

* Move exception handling out of the shared method

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-30 16:29:50 +02:00
Erik Montnemery 4b95ea864f Fix a typo in hassfest (#118482) 2024-05-30 15:46:08 +02:00
Markus Jacobsen 12f2bcc3a4 Bang & Olufsen sort supported media_player features alphabetically (#118476)
Sort supported media_player features alphabetically
2024-05-30 14:31:38 +02:00
Robert Resch 7f49077ec6 Set enity_category to config for airgradient select entities (#118477) 2024-05-30 14:20:02 +02:00
Tsvi Mostovicz e3f6d4cfbf Use const instead of literal string in HVV integration (#118479)
Use const instead of literal string
2024-05-30 13:59:38 +02:00
lunmay c387698c6f Typo fix in media_extractor (#118473) 2024-05-30 13:24:58 +02:00
Maciej Bieniek cf51179009 Add tests for Tractive integration (#118470)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-30 12:45:11 +02:00
Alexey Guseynov fc5d58effd Add Total Volatile Organic Compounds (tVOC) matter discovery schema (#116963) 2024-05-30 12:20:02 +02:00
David Bonnes 46aa3ca97c Move evohome constants to separate module (#118471)
* move constants to const.py

* make module docstring tweaks

* move schemas back to init
2024-05-30 11:13:45 +01:00
Robert Resch ac979e9105 Bump deebot-client to 7.3.0 (#118462) 2024-05-30 11:40:05 +02:00
ashionky c0ccc86954 Bump refoss to v1.2.1 (#118450) 2024-05-30 11:03:18 +02:00
Maciej Bieniek 9bd1c408bd Raise ConfigEntryNotReady when there is no _id in the Tractive data (#118467)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-30 11:00:36 +02:00
epenet 06251d403a Fix special case in pylint type hint plugin (#118454)
* Fix special case in pylint type hint plugin

* Simplify

* Simplify

* Simplify

* Apply

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

---------

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-05-30 10:41:32 +02:00
epenet c6e0e93680 Cleanup mock_get_source_ip from tests (#118459) 2024-05-30 09:37:01 +02:00
epenet 9221eeb2f7 Add check for usefixtures decorator in pylint plugin (#118456) 2024-05-30 08:54:56 +02:00
epenet baaf16e9b3 Adjust type hint for request_mock.Mocker in pylint plugin (#118458) 2024-05-30 08:53:42 +02:00
epenet 1317837986 Improve type hints in tests (q-z) (#118381) 2024-05-30 08:48:02 +02:00
epenet 242ee04642 Improve type hints in tests (i-p) (#118380) 2024-05-30 08:47:08 +02:00
epenet 092cdcfe91 Improve type hints in tests (a-h) (#118379) 2024-05-30 08:46:18 +02:00
tronikos 4893faa671 Instruct LLM to not pass a list to the domain (#118451) 2024-05-30 08:37:45 +02:00
tronikos 639f6c640c Improve LLM prompt (#118443)
* Improve LLM prompt

* test

* improvements

* improvements
2024-05-29 21:44:33 -04:00
J. Nick Koston ef79842c2f Fix google_mail doing blocking i/o in the event loop (take 2) (#118441) 2024-05-29 18:55:53 -04:00
tronikos e50defa7f5 Bump opower to 0.4.6 (#118434) 2024-05-29 11:37:36 -10:00
J. Nick Koston f957ba09de Fix blocking I/O in the event loop in meteo_france (#118429) 2024-05-29 23:37:24 +02:00
Evgeny ab9581c617 Fix OpenWeatherMap migration (#118428) 2024-05-29 11:12:24 -10:00
swcloudgenie a670169325 New official genie garage integration (#117020)
* new official genie garage integration

* move api constants into api module

* move scan interval constant to cover.py
2024-05-29 16:13:28 -04:00
J. Nick Koston f93a3127f2 Fix workday doing blocking I/O in the event loop (#118422) 2024-05-29 22:07:56 +02:00
J. Nick Koston 1743d1700d Ensure paho.mqtt.client is imported in the executor (#118412)
fixes #118405
2024-05-29 15:55:34 -04:00
J. Nick Koston 5fae2bd7c5 Fix google_tasks doing blocking I/O in the event loop (#118418)
fixes #118407
2024-05-29 15:55:22 -04:00
J. Nick Koston 9e9e1f75f2 Fix google_mail doing blocking I/O in the event loop (#118421)
fixes #118411
2024-05-29 15:55:12 -04:00
Michael Hansen 43ceb1c6c8 Handle case where timer device id exists but is not registered (delayed command) (#118410)
Handle case where device id exists but is not registered
2024-05-29 15:18:46 -04:00
Marcel van der Veldt a0443ac328 Add translation strings for Matter Fan presets (#118401) 2024-05-29 21:12:47 +02:00
Marcel van der Veldt 8cc15e82df Fix light discovery for Matter dimmable plugin unit (#118404) 2024-05-29 21:09:50 +02:00
Franck Nijhof eca8dd93c5 Bump version to 2024.7.0dev0 (#118399) 2024-05-29 20:54:49 +02:00
Joost Lekkerkerker c80718628e Add select entities to AirGradient (#117136) 2024-05-29 20:12:51 +02:00
TheJulianJES 6382cb9134 Bump zha-quirks to 0.0.116 (#118393) 2024-05-29 19:52:25 +02:00
Marcel van der Veldt 7136be5047 Bump Python Matter Server library to 6.1.0(b0) (#118388) 2024-05-29 19:20:18 +02:00
Bram Kragten 23381ff30c Bump frontend to 20240529.0 (#118392) 2024-05-29 19:06:46 +02:00
Michael Hansen 3ffbbcfa5c Allow delayed commands to not have a device id (#118390) 2024-05-29 12:39:41 -04:00
Joost Lekkerkerker 181ae1227a Bump airgradient to 0.4.2 (#118389) 2024-05-29 18:17:26 +02:00
G Johansson 9e3e7f5b48 Entity for Tags (#115048)
Co-authored-by: Robert Resch <robert@resch.dev>
Co-authored-by: Erik <erik@montnemery.com>
2024-05-29 17:45:19 +02:00
Sid f37edc207e Bump ruff to 0.4.6 (#118384) 2024-05-29 17:35:54 +02:00
Markus Jacobsen 7fda7ccafc Convert unnecessary coroutines into functions (#118311) 2024-05-29 16:44:43 +02:00
Michael 916c6a2f46 Rework and simplify the cleanup of orphan AVM Fritz!Tools entities (#117706) 2024-05-29 15:52:49 +02:00
tronikos 3d15e15e59 Add Android TV Remote debug logs to help with zeroconf issue (#117960) 2024-05-29 15:50:13 +02:00
Joost Lekkerkerker 9e342a61f3 Bump yt-dlp to 2024.05.27 (#118378) 2024-05-29 15:38:21 +02:00
epenet 461ac1e0bc Add ClientSessionGenerator type hints in tests (#118377) 2024-05-29 14:49:14 +02:00
epenet d10362e226 Add AiohttpClientMocker type hints in tests (#118373) 2024-05-29 14:38:46 +02:00
osohotwateriot d69431ea48 Bump pyosoenergyapi to 1.1.4 (#118368) 2024-05-29 14:15:26 +02:00
epenet 1fbf93fd36 Add SnapshotAssertion type hints in tests (#118371) 2024-05-29 14:11:58 +02:00
epenet 166c588cac Add LogCaptureFixture type hints in tests (#118372) 2024-05-29 14:10:00 +02:00
tronikos aeee222df4 Default to gemini-1.5-flash-latest in Google Generative AI (#118367)
Default to flash
2024-05-29 08:04:47 -04:00
tronikos 4056c4c2cc Ask LLM to pass area name and domain (#118357) 2024-05-29 08:03:43 -04:00
tronikos c75cb08aae Fix LLM tracing for Google Generative AI (#118359)
Fix LLM tracing for Gemini
2024-05-29 08:02:59 -04:00
tronikos b7ee90a53c Expose useful media player attributes to LLMs (#118363) 2024-05-29 08:01:40 -04:00
karwosts 6e5dcd8b8d Support in blueprint schema for input sections (#110513)
* initial commit for sections

* updates

* add description

* fix test

* rename collapsed key

* New schema

* update snapshots

* Testing for sections

* Validate no duplicate input keys across sections

* rename all_inputs

* Update homeassistant/components/blueprint/models.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-29 13:13:01 +02:00
tronikos d83ab7bb04 Fix issue when you have multiple Google Generative AI config entries and you remove one of them (#118365) 2024-05-29 11:59:06 +02:00
dontinelli aa957600ce Set quality scale of fyta to platinum (#118307) 2024-05-29 11:41:59 +02:00
Joakim Sørensen d33068d00c Update pylaunches dependency to version 2.0.0 (#118362) 2024-05-29 11:18:29 +02:00
Adam Kapos 43f42dd512 Extend image_upload to return the original image (#116652) 2024-05-29 11:16:23 +02:00
Jan Bouwhuis 585892f067 Allow MQTT device based auto discovery (#109030)
* Add MQTT device based auto discovery

* Respect override of component options over shared ones

* Add state_topic, command_topic, qos and encoding as shared options

* Add shared option test

* Rename device.py to schemas.py

* Remove unused legacy `platform` attribute to avoid confusion

* Split validation device and origin info

* Require `origin` info on device based discovery

* Log origin info for only once for device discovery

* Fix tests and linters

* ruff

* speed up _replace_all_abbreviations

* Fix imports and merging errors - add slots attr

* Fix unrelated const changes

* More unrelated changes

* join string

* fix merge

* Undo move

* Adjust logger statement

* fix task storm to load platforms

* Revert "fix task storm to load platforms"

This reverts commit 8f12a5f2511ab872880a186f5a4605c8bae80c7d.

* bail if logging is disabled

* Correct mixup object_id and node_id

* Auto migrate entities to device discovery

* Add device discovery test for device_trigger

* Add migration support for non entity platforms

* Use helper to remove discovery payload

* Fix tests after update branch

* Add discovery migration test

* Refactor

* Repair after rebase

* Fix discovery is broken after migration

* Improve comments

* More comment improvements

* Split long lines

* Add comment to indicate payload dict can be empty

* typo

* Add walrus and update comment

* Add tag to migration test

* Join try blocks

* Refactor

* Cleanup not used attribute

* Refactor

* Move _replace_all_abbreviations out of try block

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-29 11:12:05 +02:00
Bouwe Westerdijk 83e62c5239 Discover new device at runtime in Plugwise (#117688)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-05-29 11:00:07 +02:00
G Johansson 6b7ff2bf44 Add default code to alarm_control_panel (#112540) 2024-05-29 10:46:53 +02:00
Erwin Douna 38da61a5ac Add DSMR Reader icons (#118329) 2024-05-29 10:41:51 +02:00
G Johansson 13ebc6fb0e Add more tests to Yale Smart Alarm (#116501) 2024-05-29 10:34:20 +02:00
epenet bead6b0094 Rename service_calls fixture in template tests (#118358) 2024-05-29 10:27:52 +02:00
Stefan Agner cae22e5109 Adjust add-on installation error message (#118309) 2024-05-29 09:41:09 +02:00
epenet 98d24dd276 Improve typing for calls fixture in tests (m-z) (#118350)
* Improve typing for `calls` fixture in tests (m-z)

* More

* More
2024-05-29 09:30:41 +02:00
epenet 0c38aa56f5 Rename calls fixture in components tests (#118355) 2024-05-29 09:26:44 +02:00
epenet 0f8588a857 Rename calls fixture in mqtt tests (#118354)
Rename calls fixture in mqtt
2024-05-29 09:25:34 +02:00
epenet e488f9b87f Rename calls fixture in calendar tests (#118353) 2024-05-29 09:24:36 +02:00
J. Nick Koston 0888233f06 Make Recorder dialect_name a cached_property (#117922) 2024-05-29 09:23:40 +02:00
Bygood91 f7d2d94fdc Add Google assistant Gate device type (#118144) 2024-05-29 09:18:02 +02:00
dependabot[bot] 09d4112784 Bump docker/login-action from 3.1.0 to 3.2.0 (#118351)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-29 09:16:54 +02:00
Robert Resch e087abe802 Add ws endpoint to remove expiration date from refresh tokens (#117546)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-29 09:09:59 +02:00
epenet 7e62061b9a Improve typing for calls fixture in tests (a-l) (#118349)
* Improve typing for `calls` fixture in tests (a-l)

* More

* More
2024-05-29 09:06:48 +02:00
Raman Gupta 89ae425ac2 Update zwave_js WS APIs for provisioning (#117400) 2024-05-29 02:47:09 -04:00
osohotwateriot 1c2cda5033 Add OSO Energy binary sensors (#117174) 2024-05-29 08:36:20 +02:00
Maximilian Hildebrand 05d0174e07 Add august open action (#113795)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-28 20:35:53 -10:00
G Johansson ae6c394b53 Add smoke detector temperature to Yale Smart Alarm (#116306) 2024-05-29 08:34:00 +02:00
Erik Montnemery 7abffd7cc8 Don't report entities with invalid unique id when loading the entity registry (#118290) 2024-05-29 08:32:39 +02:00
Quentame 4d7b1288d1 Fix epic_games_store mystery game URL (#118314) 2024-05-29 08:32:29 +02:00
Jan-Philipp Benecke 2c99925286 Use runtime_data in ping (#118332) 2024-05-29 08:12:54 +02:00
J. Nick Koston 76aa504e36 Fix last_reported_timestamp not being updated when last_reported is changed (#118341)
* Reduce number of calls to last_reported_timestamp

When a state is created, last_update is always the same
as last_reported, and we only update it later if it changes
so we can pre-set the cached property to avoid it being
run when the recorder accesses it later.

* fix cache not being overridden

* coverage
2024-05-28 19:03:19 -10:00
J. Nick Koston f3fa843b9d Replace pop calls with del where the result is discarded in restore_state (#118339) 2024-05-28 23:14:40 -04:00
J. Nick Koston 79bc179ce8 Improve websocket message coalescing to handle thundering herds better (#118268)
* Increase websocket peak messages to match max expected entities

During startup the websocket would frequently disconnect if more than
4096 entities were added back to back. Some MQTT setups will have more
than 10000 entities. Match the websocket peak value to the max expected
entities

* coalesce more

* delay more if the backlog gets large

* wait to send if the queue is building rapidly

* tweak

* tweak for chrome since it works great in firefox but chrome cannot handle it

* Revert "tweak for chrome since it works great in firefox but chrome cannot handle it"

This reverts commit 439e2d76b11d2355c552c8a577d0e85fc7262808.

* adjust for chrome

* lower number

* remove code

* fixes

* fast path for bytes

* compact

* adjust test since we see the close right away now on overload

* simplify check

* reduce loop

* tweak

* handle ready right away
2024-05-28 23:14:06 -04:00
J. Nick Koston b94bf1f214 Add cache to more complex entity filters (#118344)
Many of these do regexes and since the entity_ids are almost
always the same we should cache these
2024-05-28 23:07:50 -04:00
Paulus Schoutsen d22871f1fd Reduce the intent response data sent to LLMs (#118346)
* Reduce the intent response data sent to LLMs

* No longer delete speech
2024-05-28 23:07:00 -04:00
J. Nick Koston fa9ebb062c Small speed up to connecting dispatchers (#118342) 2024-05-28 16:49:58 -10:00
Paulus Schoutsen c097a05ed4 Tweak Assist LLM API prompt (#118343) 2024-05-28 22:43:22 -04:00
Michael Hansen d223e1f2ac Add Conversation command to timers (#118325)
* Add Assist command to timers

* Rename to conversation_command. Execute in timer code.

* Make agent_id optional

* Fix arg

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-28 20:33:31 -05:00
Paulus Schoutsen 615a1eda51 LLM Assist API to ignore intents if not needed for exposed entities or calling device (#118283)
* LLM Assist API to ignore timer intents if device doesn't support it

* Refactor to use API instances

* Extract ToolContext class

* Limit exposed intents based on exposed entities
2024-05-28 21:29:18 -04:00
J. Nick Koston e0264c8604 Replace pop calls with del where the result is discarded in entity (#118340) 2024-05-28 15:26:53 -10:00
J. Nick Koston 9de066d9e1 Replace pop calls with del where the result is discarded in mqtt (#118338) 2024-05-28 15:26:35 -10:00
J. Nick Koston fd9d4dbb34 Use del instead of pop in the entity platform remove (#118337) 2024-05-28 15:26:22 -10:00
Paulus Schoutsen 0cf574dc42 Update the recommended model for Google Gen AI (#118323) 2024-05-28 21:21:28 -04:00
Markus Jacobsen 8d7dff0228 Fix source_change not triggering an update (#118312) 2024-05-28 21:19:10 -04:00
Marcel van der Veldt 5f5288d8b9 Several fixes for the Matter climate platform (#118322)
* extend hvacmode mapping with extra modes

* Fix climate platform

* adjust tests

* fix reversed test

* cleanup

* dry and fan hvac mode test
2024-05-28 21:18:35 -04:00
Joakim Sørensen 7f1a616c9a Use None default for traccar server battery level sensor (#118324)
Do not set -1 as default for traccar server battery level
2024-05-28 21:15:22 -04:00
Jesse Hills 035e21ddbb [esphome] 100% voice assistant test coverage (#118334) 2024-05-28 21:14:47 -04:00
J. Nick Koston 097ca3a0ae Mark sonos group update a background task (#118333) 2024-05-28 14:53:28 -10:00
Michael Hansen 9e1676bee4 Filter timers more when pausing/unpausing (#118331) 2024-05-28 19:36:34 -04:00
Joakim Plate acfc027456 Update ha philips_js to 3.2.2 (#118326) 2024-05-28 23:13:17 +02:00
J. Nick Koston 69353d2719 Speed up mqtt debug info on message callback (#118303) 2024-05-28 11:10:07 -10:00
Michael Hansen 2dc49f0410 Add platforms to intent handlers (#118328) 2024-05-28 16:46:08 -04:00
dontinelli 5eb1d72691 Raise UpdateFailed on fyta API error (#118318)
* Raise UpdateFailed

* Update homeassistant/components/fyta/coordinator.py

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

* Remove logger

* simplify code

---------

Co-authored-by: Robert Resch <robert@resch.dev>
2024-05-28 21:18:15 +02:00
Jesse Hills 7f530ee0e4 [esphome] Assist timers (#118275)
* [esphome] Assist timers

* Add intent to manifest dependencies

* Add test

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-28 14:57:58 -04:00
Michael Hansen 06d6f99964 Respect WyomingSatelliteMuteSwitch state on start (#118320)
* Respect WyomingSatelliteMuteSwitch state on start

* Fix test

---------

Co-authored-by: Kostas Chatzikokolakis <kostas@chatzi.org>
2024-05-28 14:55:02 -04:00
Michael Hansen 75ab4d2398 Add temperature slot to light turn on intent (#118321) 2024-05-28 14:53:49 -04:00
epenet a59621bf9e Add more type hints to pylint plugin (#118319) 2024-05-28 18:37:38 +02:00
epenet 0b2aac8f4c Use registry fixtures in tests (z) (#118300) 2024-05-28 18:25:49 +02:00
Michael Hansen 106cb4cfb7 Bump intents and add tests for new error messages (#118317)
* Add new error keys

* Bump intents and test new error messages

* Fix response text
2024-05-28 12:24:24 -04:00
epenet 05fc7cfbde Enforce namespace use for import conventions (#118215)
* Enforce namespace use for import conventions

* Include all registries

* Only apply to functions

* Use blacklist

* Rephrase comment

* Add async_entries_for_config_entry

* Typo

* Improve

* More core files

* Revert "More core files"

This reverts commit 9978b9370629af402a9a18f184b6f3a7ad45b08d.

* Revert diagnostics amends

* Include category/floor/label registries

* Performance

* Adjust text
2024-05-28 18:15:53 +02:00
Kostas Chatzikokolakis 14132b5090 Don't set 'assist in progess' flag on wake_word-end (#113585) 2024-05-28 11:09:59 -05:00
Paulus Schoutsen f0d7f48930 Handle generic commands as area commands in the LLM Assist API (#118276)
* Handle generic commands as area commands in the LLM Assist API

* Add word area
2024-05-28 11:21:17 -04:00
Mike Degatano dbcef2e3c3 Add more supervisor info to system info panel (#115715)
* Add virtualization field fo system info

* Add ntp sync and host connectivity

* Prevent nonetype errors

* Add supervisor_connectivity and fix tests

* Add mock of network info to other fixtures

* Update more fixtures with network/info mock
2024-05-28 16:14:42 +02:00
epenet e58d060f82 Use registry fixtures in tests (s) (#118295) 2024-05-28 15:41:03 +02:00
Poshy163 90500c4b97 Thread: Add more Thread vendor to brand mappings (#115888)
Co-authored-by: Stefan Agner <stefan@agner.ch>
Co-authored-by: Robert Resch <robert@resch.dev>
2024-05-28 15:33:32 +02:00
epenet f07f183a3e Use registry fixtures in tests (v-y) (#118299) 2024-05-28 14:26:14 +02:00
epenet 8d8696075b Use registry fixtures in tests (r) (#118293) 2024-05-28 14:23:31 +02:00
epenet 2545b7d3bb Use registry fixtures in tests (t-u) (#118297) 2024-05-28 14:23:01 +02:00
epenet ef6c7621cf Use registry fixtures in scaffold (#118308) 2024-05-28 14:20:01 +02:00
epenet 301c17cba7 Use registry fixtures in tests (o-p) (#118292) 2024-05-28 13:42:38 +02:00
epenet ead0e797c1 Use registry fixtures in tests (m-n) (#118291) 2024-05-28 13:40:45 +02:00
epenet 8837c50da7 Use registry fixtures in tests (a-h) (#118288) 2024-05-28 13:15:16 +02:00
Sebastian Lövdahl e9ab9b818f Add reconfigure step for vallox (#115915)
* Add reconfigure step for vallox

* Reuse translation
2024-05-28 13:13:53 +02:00
epenet 01be006d40 Use registry fixtures in tests (tailscale) (#118301) 2024-05-28 13:12:51 +02:00
Marcel van der Veldt 21f5ac7715 Fix Matter device ID for non-bridged composed device (#118256) 2024-05-28 12:47:46 +02:00
starkillerOG a5f81262aa Bump reolink-aio to 0.8.11 (#118294) 2024-05-28 12:29:30 +02:00
Ludovic BOUÉ f44dfe8fef Add Matter fan platform (#111212)
Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
2024-05-28 12:24:58 +02:00
ollo69 7f934bafc2 Add diagnostics test to AndroidTV (#117129) 2024-05-28 10:56:32 +02:00
J. Nick Koston a3c3f938a7 Migrate mqtt mixin async_added_to_hass inner functions to bound methods (#118280) 2024-05-27 22:45:40 -10:00
Erwin Douna fb95b91507 Add DSMR Reader tests (#115808)
* Add DSMR Reader sensor tests

* Change to paramatization

* Removing patch

* Emulate the test

* Go for 100% test coverage

* Adding defintions.py

* Add myself as code owner to keep improving
2024-05-28 10:42:21 +02:00
Mr. Bubbles 98710e6c91 Fix some typing errors in Bring integration (#115641)
Fix typing errors
2024-05-28 10:25:39 +02:00
Ville Skyttä 3b938e592f Add additional Huawei LTE 5G sensors (#108928)
* Add some Huawei LTE 5G sensor descriptions

Closes https://github.com/home-assistant/core/issues/105786

* Mark cqi1 and nrcqi1 as diagnostic
2024-05-28 09:59:28 +02:00
Brett Adams b71f6a2b7d Use entry.runtime_data in Tessie (#118287) 2024-05-28 09:05:24 +02:00
J. Nick Koston 3ba3e3135e Fix flakey bootstrap test (#118285) 2024-05-28 08:11:14 +02:00
Michael 5d61743a5b Bump aiovlc to 0.3.2 (#118258) 2024-05-28 07:58:20 +02:00
Tsvi Mostovicz ea91f7a5aa Change strings to const in Jewish Calendar (#118274) 2024-05-28 07:49:39 +02:00
tronikos 4f7a91828e Mock llm prompts in test_default_prompt for Google Generative AI (#118286) 2024-05-28 00:40:26 -04:00
J. Nick Koston 69a177e864 Migrate mqtt discovery subscribes to use internal helper (#118279) 2024-05-27 18:14:58 -10:00
tronikos 63227f14ed Add diagnostics to Google Generative AI (#118262)
* Add diagnostics for Google Generative AI

* Remove quality scale from manifest

* include options in diagnostics
2024-05-28 00:02:32 -04:00
Ben Thomas f6f6bf8953 SharkIQ Fix for vacuums without room support (#118209)
* Fix SharkIQ vacuums without room support crashing the SharkIQ integration

* Fix ruff format

* Fix SharkIQ tests to account for robot identifier and second expected value
2024-05-27 23:57:21 -04:00
Ben Thomas 4d7802215c Fix rooms not being matched correctly in sharkiq.clean_room (#118277)
* Fix rooms not being matched correctly in sharkiq.clean_room

* Update sharkiq tests to account for new room matching logic
2024-05-27 23:51:51 -04:00
tronikos 0c245f1976 Fix freezing on HA startup when there are multiple Google Generative AI config entries (#118282)
* Fix freezing on HA startup when there are multiple Google Generative AI config entries

* Add timeout to list_models
2024-05-27 23:49:16 -04:00
Paulus Schoutsen aa78998f41 Make sure conversation entities have correct name in list output (#118272) 2024-05-27 21:45:14 -04:00
J. Nick Koston a5644c8ddb Rewrite flow handler to flow result conversion as a list comp (#118269) 2024-05-27 15:39:59 -10:00
Paulus Schoutsen 6f248acfd5 LLM Assist API: Inline all exposed entities (#118273)
Inline all exposed entities
2024-05-27 21:12:10 -04:00
Jesse Hills a23da3bd46 Bump aioesphomeapi to 24.5.0 (#118271) 2024-05-28 13:03:01 +12:00
tronikos f2d0512f39 Make sure HassToggle and HassSetPosition have description (#118267) 2024-05-27 20:30:34 -04:00
J. Nick Koston 33ff84469a Align max expected entities constant between modules (#118102) 2024-05-27 14:06:16 -10:00
tronikos 722feb285b Handle multiple function_call and text parts in Google Generative AI (#118270) 2024-05-27 19:57:03 -04:00
Jan Bouwhuis bfc3194661 Fix mqtt not publishing null payload payload to remove discovery (#118261) 2024-05-27 12:53:22 -10:00
G Johansson 6067ea2454 Cleanup tag integration (#118241)
* Cleanup tag integration

* Fix review comments
2024-05-27 21:53:06 +02:00
Josef Zweck c349797938 Add new lock states to tedee integration (#117108) 2024-05-27 15:04:44 -04:00
G Johansson d9ce4128c0 Add entry.runtime_data typing for Teslemetry (#118253) 2024-05-27 19:11:55 +02:00
dontinelli e54fbcec77 Add diagnostics for fyta (#118234)
* Add diagnostics

* add test for diagnostics

* Redact access_token

* remove unnecessary redaction
2024-05-27 18:34:05 +02:00
Josef Zweck 70820c1702 Migrate tedee to entry.runtime_data (#118246)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-05-27 16:11:38 +02:00
Åke Strandberg b61919ec71 Add helper strings for myuplink application credentials (#115349) 2024-05-27 15:58:22 +02:00
Michael a24d97d79d Convert Feedreader to use an update coordinator (#118007) 2024-05-27 14:48:41 +02:00
epenet 97f6b578c8 Enforce namespace import in core (#118235) 2024-05-27 14:03:00 +02:00
Josef Zweck 9828a50dca Add quality scale (platinum) to tedee integration (#106940) 2024-05-27 12:57:58 +02:00
Maciej Bieniek 805f634634 Bump nettigo_air_monitor to version 3.1.0 (#118227)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-27 12:54:10 +02:00
epenet e7ce01e649 Enforce namespace import in components (#118218) 2024-05-27 12:50:11 +02:00
shelvacu 33bdcb46cf Fix XMPP giving up on first auth fail (#118224) 2024-05-27 12:44:56 +02:00
epenet fa038bef92 Use area_registry fixture in component tests (#118236) 2024-05-27 12:40:08 +02:00
Brett Adams 46158f5c14 Allow older vehicles to sleep in Teslemetry (#117229)
* Allow older vehicles to sleep

* Remove updated_once

* move pre2021 to lib

* bump

* Bump again

* Bump to 0.5.11

* Fix VIN so it matches the check

* Fix snapshot

* Snapshots

* Fix self.updated_once

* Remove old pre2021 attribute

* fix snapshots

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-05-27 12:37:33 +02:00
dontinelli 2a8fc7f310 Add Fyta sensor tests (#117995)
* Add test for init

* update tests

* split common.py into const.py and __init__.py

* Update tests/components/fyta/__init__.py

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

* add autospec, tidy up

* adjust len-test

* add test_sensor.py, amend tests for coordinator.py

* Update tests/components/fyta/conftest.py

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

* move load_unload with expired token into own test

* Update tests/components/fyta/test_init.py

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

* ruff change

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-27 12:01:11 +02:00
Tsvi Mostovicz 1565561c03 Remove platform sensor from Jewish Calendar binary sensor (#118231) 2024-05-27 11:47:08 +02:00
Joost Lekkerkerker f2762c9031 Bump yt-dlp to 2024.05.26 (#118229) 2024-05-27 11:38:30 +02:00
Claes Hallström efcfbbf189 Add key expiry disabled binary sensor to Tailscale (#117667) 2024-05-27 11:37:00 +02:00
Duco Sebel 22cc7d34d5 Fix unique_id not being unique in HomeWizard (#117940) 2024-05-27 11:23:10 +02:00
J. Nick Koston 6b8223e339 Try to read multiple packets in MQTT (#118222) 2024-05-27 11:07:24 +02:00
Arie Catsman 83e4c2927c Implement reconfigure step for enphase_envoy (#115781) 2024-05-27 11:06:55 +02:00
Richard Kroegel 10291b1ce8 Bump bimmer_connected to 0.15.3 (#118179)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-05-27 11:01:22 +02:00
Joost Lekkerkerker 481c50f7a5 Remove platform setup from Jewish calendar (#118226) 2024-05-27 10:51:54 +02:00
Joost Lekkerkerker a2b1dd8a5f Add config flow to Media Extractor (#115717) 2024-05-27 10:43:49 +02:00
J. Nick Koston 87989a88cd Remove translation and icon component path functions (#118214)
These functions have been stripped down to always return
the same path so there was no longer a need to have a
function for this. This is left-over cleanup from
previous refactoring.
2024-05-27 10:35:52 +02:00
Joost Lekkerkerker 3d2ecd6a28 Refactor Twitch tests (#114330)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: Michael <35783820+mib1185@users.noreply.github.com>
2024-05-27 10:09:12 +02:00
J. Nick Koston 21b9a4ef2e Increase MQTT incoming buffer to 8MiB (#118220) 2024-05-27 10:07:53 +02:00
J. Nick Koston 3ebcee9bbb Fix mqtt chunk subscribe logging (#118217) 2024-05-26 21:56:09 -10:00
J. Nick Koston 3680d1f8c5 Remove legacy mqtt debug_info implementation (#118212) 2024-05-26 21:55:54 -10:00
J. Nick Koston cfc2cadb77 Eagerly remove MQTT entities on reload (#118213) 2024-05-26 21:55:42 -10:00
G Johansson e6142985a5 Use config entry runtime data in Scrape (#118191)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-05-27 08:48:54 +02:00
G Johansson 4d52d920ee Create EventEntity for Folder Watcher (#116526) 2024-05-27 08:47:02 +02:00
J. Nick Koston 5b608bea01 Remove extra inner function for mqtt reload service (#118211) 2024-05-26 18:55:00 -10:00
J. Nick Koston 872e9f2d5e Fix thundering herd of mqtt component setup tasks (#118210)
We had a thundering herd of tasks to back up against the lock to load each MQTT platform at startup because we had to wait to import the platforms.
2024-05-27 00:29:35 -04:00
Paulus Schoutsen ecb05989ca Add exposed entities to the Assist LLM API prompt (#118203)
* Add exposed entities to the Assist LLM API prompt

* Check expose entities in Google test

* Copy Google default prompt test cases to LLM tests
2024-05-27 00:27:08 -04:00
J. Nick Koston c391d73fec Remove unneeded time fetch in mqtt discovery (#118208) 2024-05-26 18:07:27 -10:00
J. Nick Koston 25f199c39c Improve performance of verify_event_loop_thread (#118198) 2024-05-26 17:39:15 -10:00
Paulus Schoutsen 87fc27eeae Teach Context about deepcopy (#118206)
Teach context about deepcopy
2024-05-26 23:14:02 -04:00
J. Nick Koston c15f7f304f Remove unneeded dispatcher in mqtt discovery (#118205) 2024-05-26 17:07:24 -10:00
Paulus Schoutsen 9dc580e5de Add (deep)copy support to read only dict (#118204) 2024-05-26 23:05:45 -04:00
J. Nick Koston 56431ef750 Pre-set the HassJob job_type cached_property if its known (#118199) 2024-05-26 16:13:48 -10:00
J. Nick Koston 811ec57c31 Convert mqtt entity discovery to use callbacks (#118200) 2024-05-26 16:12:40 -10:00
Paulus Schoutsen 1602c8063c Standardize LLM instructions prompt (#118195)
* Standardize instructions prompt

* Add time/date to default instructions
2024-05-26 20:24:26 -04:00
J. Nick Koston 98d7821f47 Avoid creating template objects in mqtt sensor if they are not configured (#118194) 2024-05-26 12:09:06 -10:00
Brett Adams 841d5dfd4f Fix flaky test in Teslemetry (#118196)
Cleanup tests
2024-05-26 17:31:11 -04:00
Michael Hansen 3766c72ddb Forward timer events to Wyoming satellites (#118128)
* Add timer tests

* Forward timer events to satellites

* Use config entry for background tasks
2024-05-26 17:29:46 -04:00
J. Nick Koston 039bc3501b Fix mqtt switch types (#118193)
Remove unused code, add missing type for _is_on_map
2024-05-26 23:18:07 +02:00
tronikos 0588806922 Promote Google Generative AI to platinum quality (#118158)
* Promote Google Generative AI to platinum quality

* make exception for diagnostics
2024-05-26 17:07:31 -04:00
J. Nick Koston f0b4f4655c Simplify mqtt switch state message processor (#118187) 2024-05-26 10:42:24 -10:00
J. Nick Koston e74292e358 Move sensor mqtt state update functions to bound methods (#118188) 2024-05-26 10:42:09 -10:00
J. Nick Koston 226d010ab2 Simplify mqtt connection state dispatcher (#118184) 2024-05-26 10:21:21 -10:00
Jan Bouwhuis b7f1f805fa Simplify subscription mqtt entity platforms (#118177) 2024-05-26 09:25:54 -10:00
G Johansson 008b56b4dd Bump holidays to 0.49 (#118181) 2024-05-26 20:29:58 +02:00
Tsvi Mostovicz 11646cab5f Move Jewish calendar constants to const file (#118180)
* Move Jewish calendar constants to const file

* Add a few missed constants

* Move CONF_LANGUAGE to it's correct path
2024-05-26 19:23:02 +02:00
tronikos 0972b29510 Add Google Generative AI reauth flow (#118096)
* Add reauth flow

* address comments
2024-05-26 11:44:48 -04:00
Angel Nunez Mencias b85cf36a68 Upgrade thethingsnetwork to v3 (#113375)
* thethingsnetwork upgrade to v3

* add en translations and requirements_all

* fix most of the findings

* hassfest

* use ttn_client v0.0.3

* reduce content of initial release

* remove features that trigger errors

* remove unneeded

* add initial testcases

* Exception warning

* add strict type checking

* add strict type checking

* full coverage

* rename to conftest

* review changes

* avoid using private attributes - use protected instead

* simplify config_flow

* remove unused options

* review changes

* upgrade client

* add types client library - no need to cast

* use add_suggested_values_to_schema

* add ruff fix

* review changes

* remove unneeded comment

* use typevar for TTN value

* use typevar for TTN value

* review

* ruff error not detected in local

* test review

* re-order fixture

* fix test

* reviews

* fix case

* split testcases

* review feedback

* Update homeassistant/components/thethingsnetwork/__init__.py

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

* Update homeassistant/components/thethingsnetwork/__init__.py

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

* Update tests/components/thethingsnetwork/test_config_flow.py

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

* Remove deprecated var

* Update tests/components/thethingsnetwork/test_config_flow.py

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

* Remove unused import

* fix ruff warning

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-26 16:30:33 +02:00
Robert Svensson a7938091bf Use fixtures to setup UniFi config entries (#118126) 2024-05-26 16:30:22 +02:00
J. Nick Koston caa65708fb Collapse websocket_api _state_diff into _state_diff_event (#118170) 2024-05-26 16:04:34 +02:00
Jan Bouwhuis 4a5c5fa311 Remove remove unreachable code in async_wait_for_mqtt_client (#118172) 2024-05-26 16:04:03 +02:00
J. Nick Koston 8b3cad372e Avoid constructing mqtt availability template objects when there is no template (#118171) 2024-05-26 02:02:13 -10:00
J. Nick Koston c368ffffd5 Add async_get_hass_or_none (#118164) 2024-05-26 13:38:46 +02:00
Mike Degatano 05c24e92d1 Add repair for detached addon issues (#118064)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-05-26 13:37:50 +02:00
Paulus Schoutsen 233c3bb2be Add render prompt method when no API selected (#118136) 2024-05-26 13:35:15 +02:00
J. Nick Koston dff8c06166 Fix unnecessary calls to update entity display_precision (#118159) 2024-05-26 13:32:59 +02:00
J. Nick Koston 80371d3a73 Reduce duplicate publish code in mqtt (#118163) 2024-05-26 01:22:54 -10:00
J. Nick Koston 5d37217d96 Avoid expensive inspection of callbacks to setup mqtt subscriptions (#118161) 2024-05-26 01:22:44 -10:00
J. Nick Koston 607aaa0efe Speed up template result parsing (#118168) 2024-05-26 13:09:12 +02:00
Paulus Schoutsen 4a3808c08e Don't crash when firing event for timer for unregistered device (#118132) 2024-05-26 13:08:00 +02:00
J. Nick Koston 6697cf07a6 Fix parallel script execution in queued mode (#118153) 2024-05-26 13:05:31 +02:00
Brett Adams f12f82caac Add update platform to Teslemetry (#118145)
* Add update platform

* Add tests

* updates

* update test

* Fix support features comment

* Add assertion
2024-05-26 13:04:02 +02:00
J. Nick Koston 7bbb33b415 Improve script disallowed recursion logging (#118151) 2024-05-26 12:58:34 +02:00
G-Two 189cf88537 Bump subarulink to 0.7.11 (#117743) 2024-05-26 12:56:43 +02:00
Michael 66119c9d47 Clean up PIhole unneccesary async_block_till_done call (#118166)
leanup unneccesary async_bock_till_done calls
2024-05-26 12:40:22 +02:00
Michael 1b191230e4 Clean up AVM Fritz!Box Tools unneccesary async_block_till_done call (#118165)
cleanup unneccesary async_bock_till_done calls
2024-05-26 12:40:07 +02:00
Brett Adams 28a6f9eae7 Add number platform to Teslemetry (#117470)
* Add number platform

* Cast numbers

* rework numbers

* Add number platform

* Update docstrings

* fix json

* Remove speed limit

* Fix snapshot

* remove speed limit icon

* Remove speed limit strings

* rework min max

* Fix coverage

* Fix snapshot

* Apply suggestions from code review

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

* Type callable

* Fix types

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-05-26 11:02:35 +02:00
Michael 74f288286a Bump py-sucks to 0.9.10 (#118148)
bump py-sucks to 0.9.10
2024-05-26 10:55:04 +02:00
Brett Adams 711f7e1ac3 Add media player platform to Teslemetry (#117394)
* Add media player

* Add tests

* Better service assertions

* Update strings.json

* Update snapshot

* Docstrings

* Fix json

* Update diag

* Review feedback

* Update snapshot

* use key for title
2024-05-26 10:36:35 +02:00
Brett Adams af8542ebe1 Add button platform to Teslemetry (#117227)
* Add buttons

* Add buttons

* Fix docstrings

* Rebase entry.runtime_data

* Revert testing change

* Fix tests

* format json

* Type callable

* Remove refresh

* Update icons.json

* Update strings.json

* Update homeassistant/components/teslemetry/button.py

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

* import Awaitable

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-26 09:04:07 +02:00
J. Nick Koston 04101b044b Avoid constructing mqtt json attrs template if its not defined (#118146) 2024-05-25 16:13:54 -10:00
Shay Levy 0ae5275f01 Bump aioswitcher to 3.4.3 (#118123) 2024-05-26 00:04:44 +02:00
J. Nick Koston 5eeeb8c11f Remove code that is no longer used in mqtt (#118143) 2024-05-25 11:59:34 -10:00
Shay Levy 6a0e7cfea5 Clean up WebOS TV unneccesary async_block_till_done calls (#118142) 2024-05-26 00:37:44 +03:00
Jan Bouwhuis 991d6d92db Refactor mqtt callbacks for valve (#118140) 2024-05-25 11:34:56 -10:00
J. Nick Koston 9be829ba1f Make mqtt internal subscription a normal function (#118092)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-05-25 11:34:24 -10:00
Shay Levy ecd48cc447 Clean up Shelly unneccesary async_block_till_done calls (#118141) 2024-05-26 00:28:48 +03:00
Jan Bouwhuis d4a95b3735 Refactor mqtt callbacks for light basic, json and template schema (#118113) 2024-05-25 11:24:38 -10:00
Jan Bouwhuis f21c0679b4 Rework mqtt callbacks for camera, image and event (#118109) 2024-05-25 11:23:45 -10:00
Jan Bouwhuis ae0c00218a Refactor mqtt callbacks for vacuum (#118137) 2024-05-25 11:19:37 -10:00
Jan Bouwhuis fc9f7aee7e Refactor mqtt callbacks for switch (#118127) 2024-05-25 11:17:54 -10:00
Jan Bouwhuis 6b1b15ef9b Refactor mqtt callbacks for text (#118130) 2024-05-25 11:16:54 -10:00
Jan Bouwhuis e740e2cdc1 Refactor mqtt callbacks for select platform (#118121) 2024-05-25 11:16:16 -10:00
Jan Bouwhuis 3dbe9a41af Refactor mqtt callbacks for number (#118119) 2024-05-25 11:15:53 -10:00
Jan Bouwhuis c510031fcf Refactor mqtt callbacks for siren (#118125) 2024-05-25 11:15:22 -10:00
Jan Bouwhuis 0f44ebd51e Refactor mqtt callbacks for update platform (#118131) 2024-05-25 11:14:48 -10:00
Jan Bouwhuis e30297d837 Refactor mqtt callbacks for lawn_mower (#118117) 2024-05-25 11:13:43 -10:00
Jan Bouwhuis 05d8ec85aa Refactor mqtt callbacks for lock (#118118) 2024-05-25 11:13:14 -10:00
Jan Bouwhuis 6580a07308 Refactor mqtt callbacks for humidifier (#118116) 2024-05-25 11:11:07 -10:00
Jan Bouwhuis b4acadc992 Rework mqtt callbacks for fan (#118115) 2024-05-25 11:09:24 -10:00
Jan Bouwhuis 5d7a735da6 Rework mqtt callbacks for device_tracker (#118110) 2024-05-25 11:07:50 -10:00
Jan Bouwhuis 521ed0a220 Fix mqtt callback exception logging (#118138)
* Fix mqtt callback exception logging

* Improve code

* Add test
2024-05-25 22:46:33 +02:00
elmurato 569763b7a8 Reach platinum level in Minecraft Server (#105432)
Reach platinum level
2024-05-25 22:13:32 +02:00
Denis Shulyaka cee3be5f7a Break long strings in LLM tools (#118114)
* Break long code strings

* Address comments

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-25 14:24:51 -04:00
Allen Porter 89e2c57da6 Add conversation agent debug tracing (#118124)
* Add debug tracing for conversation agents

* Minor cleanup
2024-05-25 14:16:51 -04:00
Marc Mueller 2f16c3aa80 Fix mqtt callback typing (#118104) 2024-05-25 18:59:29 +02:00
Matthias Alphart 344bb568f4 Add diagnostics support for Fronius (#117845)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-05-25 14:01:24 +02:00
Michael 73f9234107 Remove deprecated services from AVM Fritz!Box Tools (#118108) 2024-05-25 13:52:28 +02:00
tronikos 0182bfcc81 Google Generative AI: 100% test coverage for conversation (#118112)
100% coverage for conversation
2024-05-25 07:52:20 -04:00
MatthewFlamm 8fbe39f2a7 Improve nws tests by centralizing and removing unneeded patching (#118052) 2024-05-25 13:50:15 +02:00
Michael a89dcbc78b Use PEP 695 type alias for ConfigEntry type in Forecast Solar (#118107) 2024-05-25 13:48:58 +02:00
Brett Adams ec76f34ba5 Add device tracker platform to Teslemetry (#117341) 2024-05-25 12:29:27 +01:00
Michael 10efb2017b Use PEP 695 type alias for ConfigEntry type in Spotify (#118106)
Use PEP 695 type alias for ConfigEntry type
2024-05-25 12:55:40 +02:00
Jan Bouwhuis 6fc6d109c9 Freeze and fix plaato CI tests (#118103) 2024-05-25 12:34:44 +02:00
nopoz 543d47d7f7 Allow Meraki API v2 or v2.1 (#115828) 2024-05-25 12:33:39 +02:00
J. Nick Koston de275878c4 Small speed up to mqtt _async_queue_subscriptions (#118094) 2024-05-25 12:32:15 +02:00
Franck Nijhof 09cbc35b46 Merge branch 'master' into dev 2024-05-25 12:28:34 +02:00
Shay Levy e8226a8056 Store Switcher runtime data in config entry (#118054) 2024-05-25 12:17:33 +02:00
J. Nick Koston 3f76b865fa Switch mqtt to use async_unload_platforms (#118097) 2024-05-25 11:55:36 +02:00
J. Nick Koston b58e0331cf Migrate zwave_js to use async_unload_platforms (#118101) 2024-05-25 11:54:25 +02:00
J. Nick Koston 2954cba65d Migrate zha to use async_unload_platforms (#118100) 2024-05-25 11:53:42 +02:00
J. Nick Koston 131c1807c4 Migrate vera to use async_unload_platforms (#118099) 2024-05-25 11:48:55 +02:00
J. Nick Koston 204cd376cb Migrate firmata to use async_unload_platforms (#118098) 2024-05-25 11:48:06 +02:00
J. Nick Koston 4da125e27b Simplify mqtt discovery cooldown calculation (#118095) 2024-05-24 23:27:22 -10:00
Allister Maguire 5c60a5ae59 Bump pyenvisalink version to 4.7 (#118086) 2024-05-25 11:16:51 +02:00
Joakim Plate 943799f4d9 Adjust title of integration sensor (#116954) 2024-05-25 11:00:47 +02:00
Michael a43fe71413 Store runtime data inside the config entry in Forecast Solar (#117033) 2024-05-25 10:54:38 +02:00
Michael 0ea1474556 Store runtime data inside the config entry in Spotify (#117037) 2024-05-25 10:41:23 +02:00
J. Nick Koston ad638dbcc5 Speed up removing MQTT subscriptions (#118088) 2024-05-25 10:28:14 +02:00
Maikel Punie ffcc9100a6 Bump velbusaio to 2024.5.1 (#118091) 2024-05-25 10:24:06 +02:00
Paulus Schoutsen 81f3387d06 Flip prompts to put user prompt on top (#118085) 2024-05-25 00:33:24 -04:00
Paulus Schoutsen 69f237fa9e Update Google safety defaults to match Google (#118084) 2024-05-25 00:02:53 -04:00
Paulus Schoutsen 676fe5a9a2 Add recommended model options to OpenAI (#118083)
* Add recommended options to OpenAI

* Use string join
2024-05-25 00:01:48 -04:00
Paulus Schoutsen c59d4f9bba Add no-API LLM prompt back to Google (#118082)
* Add no-API LLM prompt back

* Use string join
2024-05-25 00:00:04 -04:00
Paulus Schoutsen 86a24cc3b9 Fix default Google AI prompt on initial setup (#118078) 2024-05-24 23:55:11 -04:00
Paulus Schoutsen a257f63119 Add device info to OpenAI (#118077) 2024-05-24 23:55:01 -04:00
J. Nick Koston d71c7705ae Convert remaining mqtt attrs classes to dataclasses (#118073) 2024-05-24 17:44:50 -10:00
J. Nick Koston 42232ecc8a Remove unused code in template helper (#118075) 2024-05-24 17:44:24 -10:00
J. Nick Koston 6923fb1601 Avoid template context manager overhead when template is already compiled (#118079) 2024-05-24 17:44:02 -10:00
J. Nick Koston 5cb3bc19c0 Speed up async_render_with_possible_json_value (#118080) 2024-05-24 17:43:42 -10:00
J. Nick Koston 3416162fdb Remove OrderedDict from entity_values as dict guarantees order on newer cpython (#118081) 2024-05-24 17:43:20 -10:00
J. Nick Koston f026083712 Speed up is_template_string by avoiding regex engine (#118076) 2024-05-24 17:42:55 -10:00
Paulus Schoutsen 4b0f58ec63 Add device info to Google (#118074) 2024-05-24 22:23:25 -04:00
Denis Shulyaka da74ac06d7 Add user name and location to the LLM assist prompt (#118071)
Add user name and location to the llm assist prompt
2024-05-24 22:23:05 -04:00
tronikos 620487fe75 Add Google Generative AI safety settings (#117679)
* Add safety settings

* snapshot-update

* DROPDOWN

* fix test

* rename const

* Update const.py

* Update strings.json
2024-05-24 21:48:39 -04:00
tronikos 5ca27f5d0c Google Generative AI: add timeout to ensure we don't block HA startup (#118066)
* timeout

* fix

* tests
2024-05-24 21:31:02 -04:00
Jan Bouwhuis c9a79f6293 Fix lingering mqtt test (#118072) 2024-05-24 14:34:18 -10:00
J. Nick Koston 90d10dd773 Use defaultdict instead of setdefault in mqtt client (#118070) 2024-05-24 14:34:06 -10:00
J. Nick Koston 3031e4733b Reduce duplicate code to handle mqtt message replies (#118067) 2024-05-24 14:33:21 -10:00
J. Nick Koston c7a1c59215 Avoid catch_log_exception overhead in MQTT for simple callbacks (#118036) 2024-05-24 14:32:32 -10:00
J. Nick Koston 65a702761b Avoid generating matchers that will never be used in MQTT (#118068) 2024-05-24 14:04:03 -10:00
Jan Bouwhuis fa1ef8b0cf Split mqtt subscribe and unsubscribe calls to smaller chunks (#118035) 2024-05-24 13:33:28 -10:00
Jan Bouwhuis 01f3a5a97c Consequently ignore empty MQTT state payloads and set state to unknown on "None" payload (#117813)
* Consequently ignore empty MQTT state payloads and set state to `unknown` on "None" payload

* Do not change preset mode behavior

* Add device tracker ignoring empty state

* Ignore empty state for lock

* Resolve merge errors
2024-05-25 01:29:43 +02:00
Jan Bouwhuis c616fc036e Move recorder chunk utils to shared collection utils (#118065) 2024-05-24 12:49:39 -10:00
Jan Bouwhuis 7522bbfa9d Refactor mqtt callbacks for climate and water_heater (#118040)
* Refactor mqtt callbacks for climate and water_heater

* Reduce callbacks
2024-05-25 00:20:05 +02:00
J. Nick Koston cf73a47fc0 Significantly speed up single use callback dispatchers (#117934) 2024-05-24 11:21:10 -10:00
Aaron Bach 881237189d Add activity type to appropriate RainMachine switches (#117875) 2024-05-24 22:40:13 +02:00
Jan Bouwhuis 35a20d9c60 Refactor mqtt callbacks for cover (#118044) 2024-05-24 10:26:24 -10:00
Jan Bouwhuis 4b89443f62 Refactor mqtt callbacks for alarm_control_panel (#118037) 2024-05-24 10:20:37 -10:00
Christian Neumeier ee38099a91 Add tests to Zeversolar integration (#117928) 2024-05-24 22:18:29 +02:00
Paulus Schoutsen 7554ca9460 Allow llm API to render dynamic template prompt (#118055)
* Allow llm API to render dynamic template prompt

* Make rendering api prompt async so it can become a RAG

* Fix test
2024-05-24 16:04:48 -04:00
Franck Nijhof c347311851 2024.5.5 (#118049) 2024-05-24 22:01:44 +02:00
Paulus Schoutsen 3b2cdb63f1 Update OpenAI defaults (#118059)
* Update OpenAI defaults

* Update max temperature
2024-05-24 15:37:44 -04:00
J. Nick Koston 750ec261be Add state check to config entry setup to ensure it cannot be setup twice (#117193) 2024-05-24 21:28:04 +02:00
Paulus Schoutsen ffc3560dad Remove unneeded asserts (#118056)
* Remove unneeded asserts

* No need to guard changing a timer that is owned by a disconnected device
2024-05-24 14:56:57 -04:00
Michael Hansen 5be15c94bc Require registered device id for all timer intents (#117946)
* Require device id when registering timer handlers

* Require device id for timer intents

* Raise errors for unregistered device ids

* Add callback

* Add types for callback to __all__

* Clean up

* More clean up
2024-05-24 12:55:52 -05:00
Michael Hansen 77e385db52 Fix intent helper test (#118053)
Fix test
2024-05-24 12:59:19 -04:00
Franck Nijhof 8128449879 Fix rc pylint warning in MQTT (#118050) 2024-05-24 18:41:46 +02:00
Franck Nijhof 3f7e57dde2 Bump version to 2024.5.5 2024-05-24 16:13:44 +02:00
Marcel van der Veldt 81bf31bbb1 Extend the blocklist for Matter transitions with more models (#118038) 2024-05-24 16:13:32 +02:00
J. Nick Koston f5c20b3528 Bump pySwitchbot to 0.46.1 (#118025) 2024-05-24 16:13:29 +02:00
Erik Montnemery 3238bc83b8 Improve async_get_issue_tracker for custom integrations (#118016) 2024-05-24 16:13:26 +02:00
J. Nick Koston f4b653a767 Update pySwitchbot to 0.46.0 to fix lock key retrieval (#118005)
* Update pySwitchbot to 0.46.0 to fix lock key retrieval

needs https://github.com/Danielhiversen/pySwitchbot/pull/236

* bump

* fixes
2024-05-24 16:13:22 +02:00
Shay Levy 09779b5f6e Add Shelly debug logging for async_reconnect_soon (#117945) 2024-05-24 16:13:19 +02:00
On Freund ac97f25d6c Bump pyrympro to 0.0.8 (#117919) 2024-05-24 16:13:15 +02:00
Joakim Plate 7e18527dfb Update philips_js to 3.2.1 (#117881)
* Update philips_js to 3.2.0

* Update to 3.2.1
2024-05-24 16:13:12 +02:00
Peter 7d5f9b1adf Prevent time pattern reschedule if cancelled during job execution (#117879)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-24 16:13:09 +02:00
Bernardus Jansen 0fb5aaf0f8 Tesla Wall Connector fix spelling error/typo (#117841) 2024-05-24 16:13:05 +02:00
puddly 6956d0d65a Account for disabled ZHA discovery config entries when migrating SkyConnect integration (#117800)
* Properly handle disabled ZHA discovery config entries

* Update tests/components/homeassistant_sky_connect/test_util.py

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

---------

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-05-24 16:13:02 +02:00
Franck Nijhof db73074185 Update wled to 0.18.0 (#117790) 2024-05-24 16:12:59 +02:00
J. Nick Koston dae4d316ae Fix race in config entry setup (#117756) 2024-05-24 16:12:55 +02:00
J. Nick Koston 56b55a0df5 Block older versions of custom integration mydolphin_plus since they cause crashes (#117751) 2024-05-24 16:12:50 +02:00
Ricardo Steijn 8d24f68f55 Bump crownstone-sse to 2.0.5, crownstone-cloud to 1.4.11 (#117748) 2024-05-24 16:12:46 +02:00
Anrijs b44821b805 Bump aranet4 to 2.3.4 (#117738)
bump aranet4 lib version to 2.3.4
2024-05-24 16:12:43 +02:00
Michael 66c52e144e Consider only active config entries as media source in Synology DSM (#117691)
consider only active config entries as media source
2024-05-24 16:12:40 +02:00
On Freund 66fccb7296 Bump pyrisco to 0.6.2 (#117682) 2024-05-24 16:12:36 +02:00
J. Nick Koston ecb587c4ca Fix setting MQTT socket buffer size with WebsocketWrapper (#117672) 2024-05-24 16:12:33 +02:00
Bouwe Westerdijk c6a9388aea Add options-property to Plugwise Select (#117655) 2024-05-24 16:12:29 +02:00
Ville Skyttä 85f0fffa5a Filter out HTML greater/less than entities from huawei_lte sensor values (#117209) 2024-05-24 16:12:26 +02:00
Pete Sage 9dc66404e7 Fix Sonos album artwork performance (#116391) 2024-05-24 16:12:05 +02:00
epenet 6a10e89f6d Exclude gold and platinum integrations from .coveragerc (#117563) 2024-05-24 16:10:22 +02:00
J. Nick Koston a8fba691ee Add types to event tracker data (#118010)
* Add types to event tracker data

* fixes

* do not test event internals in other tests

* fixes

* Update homeassistant/helpers/event.py

* cleanup

* cleanup
2024-05-24 10:09:39 -04:00
dontinelli 7183260d95 Change ZoneInfo to async_get_time_zone in fyta (#117996) 2024-05-24 16:09:18 +02:00
epenet 44f715bd02 Use issue_registry fixture in component tests (#118041) 2024-05-24 15:54:20 +02:00
Robert Resch cb62f4242e Remove strict connection (#117933) 2024-05-24 15:50:22 +02:00
Jan Bouwhuis 6f81852eb4 Rename MQTT mixin classes (#118039) 2024-05-24 15:41:59 +02:00
Brian Rogers 080bba5d9b Update Rachio hose timer battery sensor (#118045) 2024-05-24 15:31:05 +02:00
epenet 0b4f1cff98 Use issue_registry fixture in core tests (#118042) 2024-05-24 15:26:32 +02:00
Marc Mueller dd22ee3dac Improve annotation styling (#118032) 2024-05-24 15:05:53 +02:00
J. Nick Koston 2308ff2cbf Add json cache to lovelace config (#117843) 2024-05-24 14:07:43 +02:00
Yuval Aboulafia 2c09f72c33 Add config flow to Jewish Calendar (#84464)
* Initial commit

* add basic tests (will probably fail)

* Set basic UID for now

* Various improvements

* use new naming convention?

* bit by bit, still not working tho

* Add tz selection

* Remove failing tests

* update unique_id

* add the tests again

* revert to previous binary_sensor test

* remove translations

* apply suggestions

* remove const.py

* Address review

* revert changes

* Initial fixes for tests

* Initial commit

* add basic tests (will probably fail)

* Set basic UID for now

* Various improvements

* use new naming convention?

* bit by bit, still not working tho

* Add tz selection

* Remove failing tests

* update unique_id

* add the tests again

* revert to previous binary_sensor test

* remove translations

* apply suggestions

* remove const.py

* Address review

* revert changes

* Fix bad merges in rebase

* Get tests to run again

* Fixes due to fails in ruff/pylint

* Fix binary sensor tests

* Fix config flow tests

* Fix sensor tests

* Apply review

* Adjust candle lights

* Apply suggestion

* revert unrelated change

* Address some of the comments

* We should only allow a single jewish calendar config entry

* Make data schema easier to read

* Add test and confirm only single entry is allowed

* Move OPTIONS_SCHEMA to top of file

* Add options test

* Simplify import tests

* Test import end2end

* Use a single async_forward_entry_setups statement

* Revert schema updates for YAML schema

* Remove unneeded brackets

* Remove CONF_NAME from config_flow

* Assign hass.data[DOMAIN][config_entry.entry_id] to a local variable before creating the sensors

* Data doesn't have a name remove slugifying of it

* Test that the entry has been created correctly

* Simplify setup_entry

* Use suggested values helper and flatten location dictionary

* Remove the string for name exists as this error doesn't exist

* Remove name from config entry

* Remove _attr_has_entity_name - will be added in a subsequent PR

* Don't override entity id's - we'll fixup the naming later

* Make location optional - will by default revert to the user's home location

* Update homeassistant/components/jewish_calendar/strings.json

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

* No need for local lat/long variable

* Return name attribute, will deal with it in another PR

* Revert unique_id changes, will deal with this in a subsequent PR

* Add time zone data description

* Don't break the YAML config until the user has removed it.

* Cleanup initial config flow test

---------

Co-authored-by: Tsvi Mostovicz <ttmost@gmail.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-24 14:04:17 +02:00
Marcel van der Veldt 23597a8cdf Extend the blocklist for Matter transitions with more models (#118038) 2024-05-24 13:50:10 +02:00
Fabrice d4acd86819 Make co/co2 threshold configurable via entity_config (#112978)
* make co/co2 threshold configurable via entity_config

* Split threshold into co/co2_threshold configuration
2024-05-24 13:28:19 +02:00
Philip Rosenberg-Watt e7d23d8b49 Add APRS object tracking (#113080)
* Add APRS object tracking

Closes issue #111731

* Fix unit test

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-24 13:13:02 +02:00
Jan Bouwhuis f12aee28a8 Improve error logging on invalid MQTT entity state (#118006)
* Improve error logging on invalid MQTT entity state

* Explain not hanlding TpeError and ValueError

* Move length check closer to source

* use _LOGGER.exception
2024-05-24 13:11:52 +02:00
Em 7d44321f0f Remove duplicate tests in generic_thermostat (#105622)
Tests using `setup_comp_4` and `setup_comp_6` have been replaced by a parameterized tests in #105643. Tests using `setup_comp_5` are therefore still duplicates and are removed.
2024-05-24 12:24:05 +02:00
Brett Adams b99476284b Add Cover platform to Teslemetry (#117340)
* Add cover

* Test coverage

* Json lint

* Apply suggestions from code review

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

* Update tests

* Fix features

* Update snapshot from fixture

* Apply suggestions from code review

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-05-24 12:09:23 +02:00
Jan Bouwhuis 9333965b23 Create bound callback_message_received method for handling mqtt callbacks (#117951)
* Create bound callback_message_received method for handling mqtt callbacks

* refactor a bit

* fix ruff

* reduce overhead

* cleanup

* cleanup

* Revert changes alarm_control_panel

* Add sensor and binary sensor

* use same pattern for MqttAttributes/MqttAvailability

* remove useless function since we did not need to add to it

* code cleanup

* collapse

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-24 11:18:25 +02:00
epenet d4df86da06 Move TibberDataCoordinator to separate module (#118027) 2024-05-24 11:05:54 +02:00
epenet 95840a031a Move nuki coordinator to separate module (#117975) 2024-05-24 10:55:26 +02:00
Thomas55555 13385912d1 Refactor Husqvarna Automower (#117938) 2024-05-24 10:54:19 +02:00
Sid bc72f82776 Convert namedtuple to NamedTuple for smartthings (#115395) 2024-05-24 10:53:05 +02:00
Pete Sage 1ad2e4951d Fix Sonos album artwork performance (#116391) 2024-05-24 10:42:45 +02:00
mkmer 5c263b039e Catch client connection error in Honeywell (#117502)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-05-24 10:40:30 +02:00
epenet bb0b01e4a9 Add error message to snapshot_platform helper (#117974) 2024-05-24 10:38:23 +02:00
J. Nick Koston 488b2edfd8 Bump pySwitchbot to 0.46.1 (#118025) 2024-05-24 10:37:10 +02:00
epenet 39f618d5e5 Add snapshot tests to nuki (#117973) 2024-05-24 10:36:59 +02:00
Ulfmerbold2000 e274316a50 Add missing Ecovacs life spans (#117134)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-05-24 10:36:13 +02:00
Fredrik Erlandsson d1904941c1 Fix issue with device_class.capitalize() in point (#117969) 2024-05-24 10:35:44 +02:00
Marc Mueller 905adb2431 Update codespell ignore list (#118018) 2024-05-24 10:24:34 +02:00
Marc Mueller 3b4b36a9fd Fix partial typing (#118022) 2024-05-24 10:24:18 +02:00
Marc Mueller 0e03e591e7 Improve callable annotations (#118024) 2024-05-24 10:24:09 +02:00
J. Nick Koston b7a18e9a8f Avoid calling split_entity_id in event add/remove filters (#118015) 2024-05-24 10:01:33 +02:00
Marc Mueller 01ace8cffd Update typing-extensions to 4.12.0 (#118020) 2024-05-24 10:00:43 +02:00
epenet a6ca5c5b84 Add logging to SamsungTV turn-on (#117962)
* Add logging to SamsungTV turn-on

* Apply suggestions from code review

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

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-24 09:59:29 +02:00
Erik Montnemery f896c7505b Improve async_get_issue_tracker for custom integrations (#118016) 2024-05-24 09:55:05 +02:00
Evgeny 24d31924a0 Migrate OpenWeaterMap to new library (support API 3.0) (#116870)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-23 21:51:10 -10:00
epenet 5bca9d142c Use snapshot in renault diagnostics tests (#118021) 2024-05-24 09:42:33 +02:00
epenet 19aaa8ccee Move plaato coordinator to separate module (#118019) 2024-05-24 09:42:12 +02:00
Franck Nijhof 9224997411 Add sequence action for automations & scripts (#117690)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-05-24 09:34:49 +02:00
kingy444 e70d8aec96 Daikin Aircon - Add strings and debug (#116674) 2024-05-24 09:28:44 +02:00
epenet edd14929e3 Add snapshot tests to plaato (#118017) 2024-05-24 09:23:09 +02:00
Brett Adams 96d9342f13 Add models to energy sites in Teslemetry (#117419)
* Add models to energy sites and test devices

* Fix device testing

* Revert VIN

* Fix snapshot

* Fix snapshot

* fix snap

* Sort list
2024-05-24 09:18:22 +02:00
Shay Levy cb59eb183d Switcher - use single_config_entry and register_discovery_flow in con… (#118000) 2024-05-24 09:15:17 +02:00
Brett Adams ad90ecef3f Add binary sensor platform to Teslemetry (#117230)
* Add binary sensor platform

* Add tests

* Cleanup

* Add refresh test

* Fix runtime_data after rebase

* Remove streaming strings

* test error

* updated_once

* fix updated_once

* assert_entities_alt

* Update homeassistant/components/teslemetry/binary_sensor.py

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

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-05-24 08:55:27 +02:00
epenet 8da799e420 Move omnilogic coordinator to separate module (#118014) 2024-05-24 08:48:05 +02:00
Marc Mueller 301c484e05 Fix vallow test fixtures (#118003) 2024-05-24 08:31:21 +02:00
Thomas55555 528d67ee06 Remove unused snapshots [a-f] (#117999) 2024-05-24 08:28:04 +02:00
Brett Adams 3c7857f0f0 Add lock platform to Teslemetry (#117344)
* Add lock platform

* Tests and fixes

* Fix json

* Review Feedback

* Apply suggestions from code review

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

* wording

* Fix rebase

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-05-24 08:26:29 +02:00
Marc Mueller dc47792ff2 Update codespell to 2.3.0 (#118001) 2024-05-24 08:22:29 +02:00
J. Nick Koston 93daac9b3d Update pySwitchbot to 0.46.0 to fix lock key retrieval (#118005)
* Update pySwitchbot to 0.46.0 to fix lock key retrieval

needs https://github.com/Danielhiversen/pySwitchbot/pull/236

* bump

* fixes
2024-05-23 23:59:44 -04:00
Paulus Schoutsen d1af40f1eb Google gen updates (#117893)
* Add a recommended model for Google Gen AI

* Add recommended settings to Google Gen AI

* Revert no API msg

* Use correct default settings

* Make sure options are cleared when using recommended

* Update snapshots

* address comments
2024-05-23 17:16:48 -04:00
Shay Levy c0bcf00bf8 Remove Switcher YAML import support (#117994) 2024-05-23 21:12:19 +02:00
epenet 4ee1460eec Move moehlenhoff_alpha2 coordinator to separate module (#117970) 2024-05-23 21:06:00 +02:00
epenet 34deac1a61 Add snapshot tests to omnilogic (#117986) 2024-05-23 21:04:31 +02:00
J. Nick Koston bdc3bb57f3 Bump habluetooth to 3.1.1 (#117992) 2024-05-23 20:43:14 +02:00
Shay Levy 36d77414c6 Enable Switcher assume buttons for all devices (#117993) 2024-05-23 20:29:49 +02:00
Allen Porter 978fe2d7b0 Bump to google-nest-sdm to 4.0.4 (#117982) 2024-05-23 20:27:48 +02:00
agrauballe ef138eb976 Deconz - Added trigger support for Aqara WB-R02D mini switch (#117917)
Added support for Aqara WB-R02D mini switch

Co-authored-by: agr <agr@kamstrup.com>
2024-05-23 18:04:37 +02:00
J. Nick Koston c5cc9801a6 Cache serialize of manifest for loaded integrations (#117965)
* Cache serialize of manifest for loaded integrations

The manifest/list and manifest/get websocket apis
are called frequently when moving around in the UI.
Since the manifest does not change we can make
the the serialized version a cached property

* reduce

* reduce
2024-05-23 10:52:05 -04:00
J. Nick Koston 09e7156d2d Fix turbojpeg init doing blocking I/O in the event loop (#117971)
* Fix turbojpeg init doing blocking I/O in the event loop

fixes
```
Detected blocking call to open inside the event loop by integration camera at homeassistant/components/camera/img_util.py, line 100: TurboJPEGSingleton.__instance = TurboJPEG() (offender: /usr/local/lib/python3.12/ctypes/util.py, line 276: with open(filepath, rb) as fh:), please create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+camera%22
```

* Update homeassistant/components/camera/img_util.py

* Fix turbojpeg init doing blocking I/O in the event loop

fixes
```
Detected blocking call to open inside the event loop by integration camera at homeassistant/components/camera/img_util.py, line 100: TurboJPEGSingleton.__instance = TurboJPEG() (offender: /usr/local/lib/python3.12/ctypes/util.py, line 276: with open(filepath, rb) as fh:), please create a bug report at https://github.com/home-assistant/core/issues?q=is%3Aopen+is%3Aissue+label%3A%22integration%3A+camera%22
```

* already suppressed and logged
2024-05-23 10:50:25 -04:00
epenet 6b2ddcca5e Move rainmachine coordinator to separate module (#117983)
* Move rainmachine coordinator to separate module

* Coverage
2024-05-23 16:41:50 +02:00
epenet 162f5ccbde Add snapshot platform tests to rainmachine (#117978)
* Add snapshot tests to rainmachine

* Add sensor and switch tests
2024-05-23 16:29:39 +02:00
epenet 0c243d699c Use SnapshotAssertion in rainmachine diagnostic tests (#117979)
* Use SnapshotAssertion in rainmachine diagnostic tests

* Force entry_id

* Adjust

* Fix incorrect fixtures

* Adjust
2024-05-23 16:22:31 +02:00
Brett Adams 880b315890 Add switch platform to Teslemetry (#117482)
* Add switch platform

* Add tests

* Add test

* Fixes

* ruff

* Rename to storm watch

* Remove valet

* Apply suggestions from code review

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

* ruff

* Review feedback

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-05-23 14:28:18 +02:00
epenet bc51a4c524 Add snapshot tests to moehlenhoff_alpha2 (#117967)
* Add tests to moehlenhoff_alpha2

* Adjust coverage

* Adjust coverage

* Adjust coverage

* Adjust patch

* Adjust
2024-05-23 11:54:20 +02:00
epenet bbe8e69795 Cleanup pylint ignore (#117964) 2024-05-23 11:09:33 +02:00
dontinelli 6682244abf Improve fyta tests (#117661)
* Add test for init

* update tests

* split common.py into const.py and __init__.py

* Update tests/components/fyta/__init__.py

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

* add autospec, tidy up

* adjust len-test

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-23 10:51:30 +02:00
Joost Lekkerkerker e8f544d216 Bump airgradient to 0.4.1 (#117963) 2024-05-23 10:25:54 +02:00
J. Nick Koston 6c6a5f496a Simplify async_track_time_interval implementation (#117956) 2024-05-22 21:56:49 -10:00
Matthias Alphart fc4ea774ca Fix run-in-env script for not running in venv (#117961) 2024-05-23 09:14:59 +02:00
kaareseras cd14d9b0e3 Add Azure data explorer (#68992)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-05-23 09:14:09 +02:00
Galorhallen 767d971c5f Better handling of EADDRINUSE for Govee light (#117943) 2024-05-23 08:45:49 +02:00
Jan-Philipp Benecke 88257c9c42 Allow to reconfigure integrations with single_config_entry set (#117939) 2024-05-23 08:41:12 +02:00
Sid cc17725d1d Bump ruff to 0.4.5 (#117958) 2024-05-23 07:29:09 +02:00
Shay Levy 178c185a2f Add Shelly debug logging for async_reconnect_soon (#117945) 2024-05-22 23:15:15 -04:00
J. Nick Koston e663d4f602 Refactor state_reported listener setup to avoid merge in async_fire_internal (#117953)
* Refactor state_reported listener setup to avoid merge in async_fire_internal

Instead of merging the listeners in async_fire_internal, setup the listener for
state_changed at the same time so async_fire_internal can avoid having to copy
another list

* Refactor state_reported listener setup to avoid merge in async_fire_internal

Instead of merging the listeners in async_fire_internal, setup the listener for
state_changed at the same time so async_fire_internal can avoid having to copy
another list

* tweak

* tweak

* tweak

* tweak

* tweak
2024-05-22 23:14:50 -04:00
Paulus Schoutsen 1f7245ecf2 Update LLM no tools message (#117935) 2024-05-22 21:17:03 -04:00
Jan Bouwhuis 050fc73056 Refactor shared mqtt schema's to new module (#117944)
* Refactor mqtt schema's to new module

* Remove unrelated change
2024-05-23 01:12:25 +02:00
Mischa Siekmann ad69a23fda Send MEDIA_ANNOUNCE flag to ESPHome media_player (#116993) 2024-05-23 09:47:34 +12:00
Peter eb76386c68 Prevent time pattern reschedule if cancelled during job execution (#117879)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-22 10:36:03 -10:00
Kevin Worrel 40fdc840ab Add number entities for screenlogic values used in SI calc (#117812) 2024-05-22 09:52:09 -10:00
Michael be6598ea4f Store runtime data inside the config entry in iBeacon (#117936)
store runtime data inside the config entry

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-22 20:44:41 +02:00
epenet deded19bb3 Add available and state to SamsungTV remote (#117909)
* Add available and state to SamsungTV remote

* Align turn_off

* Fix merge

* Fix merge (again)
2024-05-22 20:35:34 +02:00
J. Nick Koston 0d5c8e30cd Migrate issue registry to use singleton helper (#117848)
* Migrate issue registry to use singleton helper

The other registries were already migrated, but since this
one had a read only flag, it required a slightly different
solution since it uses the same hass.data key

* refactor
2024-05-22 14:13:19 -04:00
Allen Porter 7a6b107248 Move nest diagnostic tests to use snapshots (#117929) 2024-05-22 14:11:07 -04:00
Joost Lekkerkerker 0c5296b38f Add lock to token validity check (#117912) 2024-05-22 14:10:23 -04:00
puddly 55c8ef1c7b Simplify SkyConnect setup flow (#117868)
* Delay firmware probing until after the user picks the firmware type

* Remove confirmation step

* Fix unit tests

* Simplify unit test patching logic

Further simplify unit tests

* Bump Zigbee firmware up to the first choice

* Reuse `async_step_pick_firmware` during options flow

* Proactively validate all ZHA entries, not just the first
There can only be one (for now) so this changes nothing functionally

* Add unit test for bad firmware when configuring Thread
2024-05-22 14:09:30 -04:00
J. Nick Koston 6113b58e9c Speed up registry indices (#117897)
* Use defaultdict for registry indices

defaultdict is faster and does not have to create an empty
dict that gets throw away when the key is already present

* Use defaultdict for registry indices

defaultdict is faster and does not have to create an empty
dict that gets throw away when the key is already present
2024-05-22 14:07:39 -04:00
Michael Hansen f99ec87338 Fail if targeting all devices in the house in service intent handler (#117930)
* Fail if targeting all devices in the house

* Update homeassistant/helpers/intent.py

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-22 13:53:31 -04:00
Thomas55555 eeeb5b2725 Add switch for stay out zones in Husqvarna Automower (#117809)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-05-22 18:51:21 +02:00
On Freund f9eb3db897 Bump pyrympro to 0.0.8 (#117919) 2024-05-22 18:14:04 +02:00
tronikos e4130480c3 Google Generative AI: Handle response with empty parts in generate_content (#117908)
Handle response with empty parts in generate_content
2024-05-22 07:47:16 -07:00
mkmer 5b1677ccb7 Use common title for reauth confirm in Whirlpool config flow (#117924)
* Add missing placeholder

* Use common title for reauth
2024-05-22 16:45:54 +02:00
G Johansson d1bdf73bc5 Add clear night to smhi (#115998) 2024-05-22 16:03:48 +02:00
Marc Mueller 5c9c71ba2c Fix performance regression with SignalType (#117920) 2024-05-22 13:58:37 +02:00
Joost Lekkerkerker 5229f0d0ef Exclude modbus from diagnostics hassfest check (#117855) 2024-05-22 13:09:20 +02:00
epenet 5ee42ec780 Remove duplicate code in SamsungTV (#117913) 2024-05-22 12:29:25 +02:00
J. Nick Koston 9454dfc719 Bump habluetooth to 3.1.0 (#117905) 2024-05-22 12:28:13 +02:00
J. Nick Koston 4e3c4400a7 Refactor MQTT to replace get_mqtt_data with HassKey (#117899) 2024-05-21 23:21:51 -10:00
Chris b4d0562063 Adopt new runtime entry data model for AlarmDecoder (#117856)
* Adopt new runtime entity data model for AlarmDecoder

Transition the AlarmDecoder integration to the new runtime entity model.

* Apply change suggestions by epenet

Tested & applied the suggestions from epenet.
2024-05-22 10:47:37 +02:00
epenet b898c86c89 Add MAC cleanup to SamsungTV (#117906)
* Add MAC cleanup to samsungtv

* Simplify

* Adjust

* leftover

* Appl

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

* Update diagnostics tests

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-22 10:36:21 +02:00
MatthewFlamm 52bb02b376 Keep observation data valid for 60 min and retry with no data for nws (#117109)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-21 22:14:05 -10:00
epenet cddb057eae Adjust conftest type hints (#117900) 2024-05-22 09:34:17 +02:00
epenet 39b4e890a0 Add coordinator to SamsungTV (#117863)
* Introduce samsungtv coordinator

* Adjust

* Adjust media_player

* Remove remote

* Adjust

* Fix mypy

* Adjust

* Use coordinator.async_refresh
2024-05-22 09:20:05 +02:00
Jakob Schlyter 2e68363755 Improve typing via hassfest serializer (#117382) 2024-05-22 08:22:18 +02:00
J. Nick Koston 1985a2ad8b Small speed up to creating flows (#117896)
Use a defaultdict instead of setdefault
2024-05-22 08:16:08 +02:00
Robert Svensson 5abf77662a Support carbon dioxide and formaldehyde sensors in deCONZ (#117877)
* Add formaldehyde sensor
* Add carbon dioxide sensor
* Bump pydeconz to v116
2024-05-22 07:33:55 +02:00
J. Nick Koston f42b98336c Reduce overhead to validate mqtt topics (#117891)
* Reduce overhead to validate mqtt topics

valid_topic would iterate all the chars 4x, refactor to only
do it 1x

valid_subscribe_topic would enumerate all the chars when there was
no + in the string

* check if adding a cache helps

* tweak lrus based on testing stats

* note to future maintainers

* note to future maintainers

* keep standard lru_cache size as increasing makes no material difference
2024-05-21 23:11:05 -04:00
Denis Shulyaka 2f0215b034 LLM Tools support for OpenAI integration (#117645)
* initial commit

* Add tests

* Move tests to the correct file

* Fix exception type

* Undo change to default prompt

* Add intent dependency

* Move format_tool out of the class

* Fix tests

* coverage

* Adjust to new API

* Update strings

* Update tests

* Remove unrelated change

* Test referencing non-existing API

* Add test to verify no exception on tool conversion for Assist tools

* Bump voluptuous-openapi==0.0.4

* Add device_id to tool input

* Fix tests

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-21 22:45:04 -04:00
J. Nick Koston 09213d8933 Avoid creating tasks to subscribe to discovery in MQTT (#117890) 2024-05-21 16:39:23 -10:00
Denis Shulyaka 009c9e79ae LLM Tools: Add device_id (#117884) 2024-05-21 21:24:46 -04:00
J. Nick Koston 4ed45a322c Reduce overhead to call get_mqtt_data (#117887)
We call this 100000s of times if there are many subscriptions

https://github.com/home-assistant/core/pull/109030#issuecomment-2123612530
2024-05-21 21:11:27 -04:00
J. Nick Koston f429bfa903 Fix mqtt timer churn (#117885)
Borrows the same design from homeassistant.helpers.storage to avoid
rescheduling the timer every time async_schedule is called if a timer
is already running.

Instead of the timer fires too early it gets rescheduled for the time
we wanted it. This avoids 1000s of timer add/cancel during startup
2024-05-21 21:05:33 -04:00
J. Nick Koston 1800a60a6d Simplify and speed up mqtt_config_entry_enabled check (#117886) 2024-05-21 21:04:31 -04:00
Joakim Plate 5f7b84caea Update philips_js to 3.2.1 (#117881)
* Update philips_js to 3.2.0

* Update to 3.2.1
2024-05-22 00:11:10 +02:00
Matthias Alphart 70cf176d93 Add value_template option to KNX expose (#117732)
* Add value_template option to KNX expose

* template exception handling
2024-05-22 00:09:42 +02:00
Matthias Alphart 622d1e4c50 Add data point type option to knx.telegram trigger (#117463)
* Add data point type (dpt) option to `knx.telegram` trigger

* Rename from `dpt` to `type` to match services

* Add test for GroupValueRead telegrams

* Fix device trigger schema inheritance

* Typesafe dispatcher signal

* readability

* Avoid re-decoding with same transcoder
2024-05-22 00:03:54 +02:00
Matthias Alphart b94735a445 Add async_turn_on/off methods for KNX climate entities (#117882)
Add async_turn_on/off methods for KNX climate entities
2024-05-21 23:54:43 +02:00
Sid c2b3bf3fb9 Enable Ruff RET502 (#115139) 2024-05-21 22:19:33 +02:00
Paulus Schoutsen ff2b851683 Make Google AI model picker a dropdown (#117878) 2024-05-21 22:13:07 +02:00
Paulus Schoutsen f21226dd0e Address late feedback Google LLM (#117873) 2024-05-21 20:11:18 +02:00
mkmer 2a9b31261c Add missing placeholder name to reauth (#117869)
add placeholder name to reauth
2024-05-21 12:57:23 -04:00
Michael Hansen 8079cc0464 Add description to intent handlers and use in LLM helper (#117864) 2024-05-21 12:54:34 -04:00
wittypluck 0c37a065ad Add support for Glances v4 (#117664) 2024-05-21 16:21:36 +02:00
J. Nick Koston 0112c7fcfd Small speed up to logbook humanify (#117854) 2024-05-21 09:10:20 -04:00
J. Nick Koston e12d23bd48 Speed up async_get_loaded_integrations (#117851)
* Speed up async_get_loaded_integrations

Use a setcomp and difference to find the components to split
to avoid the loop. A setcomp is inlined in python3.12 so its
much faster

* Speed up async_get_loaded_integrations

Use a setcomp and difference to find the components to split
to avoid the loop. A setcomp is inlined in python3.12 so its
much faster

* simplify

* fix compat

* bootstrap

* fix tests
2024-05-21 09:08:49 -04:00
J. Nick Koston 266ce9e268 Cache area registry JSON serialize (#117847)
We already cache the entity and device registry, but since I never
used area until recently I did not have enough to notice that they
were not cached
2024-05-21 09:03:31 -04:00
J. Nick Koston 905692901c Simplify service description cache logic (#117846) 2024-05-21 09:02:32 -04:00
J. Nick Koston e8fc4e0f19 Small speed up to adding event bus listeners (#117849) 2024-05-21 13:52:44 +02:00
epenet bfffcc3ad6 Simplify samsungtv unload (#117838) 2024-05-21 10:01:52 +02:00
epenet 54d048fb11 Remove silver integrations from NO_DIAGNOSTICS (#117840) 2024-05-21 10:01:13 +02:00
Bernardus Jansen d5e0ffc4d8 Tesla Wall Connector fix spelling error/typo (#117841) 2024-05-21 10:00:29 +02:00
Robert Resch 5e3483ac3c Use uv instead of pip in development env (#113517) 2024-05-21 09:56:31 +02:00
Marc Mueller d44f949b19 Use PEP 695 misc (2) (#117814) 2024-05-21 09:45:57 +02:00
J. Nick Koston c1b4c977e9 Convert solax to use DataUpdateCoordinator (#117767) 2024-05-21 09:44:10 +02:00
Thomas55555 bb758bcb26 Bump aioautomower to 2024.5.1 (#117815) 2024-05-21 09:43:36 +02:00
Marc Mueller 58d0ac7f21 Remove future import to fix broken typing.get_type_hints call (#117837) 2024-05-21 09:39:47 +02:00
J. Nick Koston 508cc2e5a1 Remove @ from codeowners when downloading diagnostics (#117825)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-21 09:32:07 +02:00
Bernardus Jansen d0b1ac6918 Tesla wall connector add sensors (#117769) 2024-05-21 09:30:24 +02:00
dependabot[bot] 0fb78b3ab3 Bump github/codeql-action from 3.25.5 to 3.25.6 (#117835)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 09:29:06 +02:00
epenet aaa5df9981 Refactor SamsungTV auth check (#117834) 2024-05-21 09:14:17 +02:00
dependabot[bot] ae0988209b Bump codecov/codecov-action from 4.4.0 to 4.4.1 (#117836)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 09:09:53 +02:00
Allen Porter fc931ac449 Stop the nest subscriber on Home Assistant stop (#117830) 2024-05-20 22:59:11 -07:00
Marc Mueller 9cbcf5f2a5 Improve zwave_js TypeVar usage (#117810)
* Improve zwave_js TypeVar usage

* Use underscore for TypeVar name
2024-05-21 07:42:07 +02:00
Marc Mueller 26fb7627ed Update scaffold templates to use runtime_data (#117819) 2024-05-21 07:15:08 +02:00
J. Nick Koston c9d1b127d8 Improve error message when template is rendered from wrong thread (#117822)
* Improve error message when template is rendered from wrong thread

* Improve error message when template is rendered from wrong thread
2024-05-20 23:26:48 -04:00
J. Nick Koston 58210b1968 Bump tesla-powerwall to 0.5.2 (#117823) 2024-05-20 16:51:39 -10:00
J. Nick Koston 7c58f05898 Bump dbus-fast to 2.21.3 (#117824) 2024-05-20 16:27:02 -10:00
puddly 4dc670056c Account for disabled ZHA discovery config entries when migrating SkyConnect integration (#117800)
* Properly handle disabled ZHA discovery config entries

* Update tests/components/homeassistant_sky_connect/test_util.py

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

---------

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-05-20 21:35:57 -04:00
J. Nick Koston 7714f807b4 Detect incorrect exception in forwarded platforms (#117754)
* Detect incorrect exception in forwarded platforms

If an integration raises ConfigEntryError/ConfigEntryAuthFailed/ConfigEntryAuthFailed
in a forwarded platform it would affect the state of the config entry and cause it to
process unloads and setup retries in while the other platforms continued to setup

* Detect incorrect exception in forwarded platforms

If an integration raises ConfigEntryError/ConfigEntryAuthFailed/ConfigEntryAuthFailed
in a forwarded platform it would affect the state of the config entry and cause it to
process unloads and setup retries in while the other platforms continued to setup

* Update homeassistant/config_entries.py

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

* adjust

* fix

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-20 20:01:59 -04:00
MatthewFlamm 4d447ee0a7 Bump pynws to 1.8.1 for nws (#117820) 2024-05-20 10:43:31 -10:00
Marc Mueller bc2ee96cae Remove quotes surrounding annotations (#117817) 2024-05-20 22:06:58 +02:00
Marc Mueller 1ad8151bd1 Use PEP 695 type alias in tests (#117797) 2024-05-20 19:03:04 +02:00
Michael Hansen e8aa4b069a Unpause media players that were paused outside voice (#117575)
* Unpause media players that were paused outside voice

* Use time.time()

* Update last paused as media players change state

* Add sleep to test

* Use context

* Implement suggestions
2024-05-20 11:02:36 -05:00
Marc Mueller 32bf02479b Enable UP040 ruff check (#117792) 2024-05-20 15:57:03 +02:00
Franck Nijhof 7f92ee5e04 Update wled to 0.18.0 (#117790) 2024-05-20 14:49:52 +03:00
Marc Mueller 7998f874c0 Use PEP 695 for function annotations with scoping (#117787) 2024-05-20 12:43:39 +02:00
Marc Mueller f50973c76c Use PEP 695 misc (#117788) 2024-05-20 12:01:49 +02:00
Marc Mueller 649981e503 Update mypy-dev to 1.11.0a3 (#117786) 2024-05-20 11:40:55 +02:00
Marlon 2809070e85 Set integration_type to device for apsystems integration (#117782) 2024-05-20 11:13:08 +02:00
epenet 1bf7a4035c Downgrade tellduslive quality scale to silver (#117784) 2024-05-20 11:07:26 +02:00
epenet ae5769dc50 Downgrade point quality scale to silver (#117783) 2024-05-20 11:06:56 +02:00
J. Nick Koston 5a609c34bb Fix blocking I/O in the event loop when loading timezones (#117721) 2024-05-20 11:06:03 +02:00
Marc Mueller 0293315b23 Use PEP 695 for covariant class annotations (#117780) 2024-05-20 10:55:44 +02:00
Marc Mueller f76842d7db Use PEP 695 for hass_dict annotations (#117779) 2024-05-20 10:46:50 +02:00
Marc Mueller 7b27101f8a Use PEP 695 for class annotations (3) (#117777) 2024-05-20 10:46:01 +02:00
Marc Mueller 8f0fb4db3e Use PEP 695 for class annotations (4) (#117778) 2024-05-20 10:44:52 +02:00
Marc Mueller eedce95bc9 Use PEP 695 for class annotations (2) (#117776) 2024-05-20 10:43:59 +02:00
Marc Mueller b93312b62c Use PEP 695 for class annotations (1) (#117775) 2024-05-20 10:42:57 +02:00
epenet 3f15b44a11 Move environment_canada coordinator to separate module (#117426) 2024-05-20 10:00:01 +02:00
Marc Mueller e48cf6fad2 Update pylint to 3.2.2 (#117770) 2024-05-20 09:59:22 +02:00
J. Nick Koston 149120b749 Add setup time detail to diagnostics (#117766) 2024-05-20 09:52:28 +02:00
J. Nick Koston 13ba8e62a9 Fix race in config entry setup (#117756) 2024-05-20 09:47:47 +02:00
J. Nick Koston d11003ef12 Block older versions of custom integration mydolphin_plus since they cause crashes (#117751) 2024-05-20 09:45:52 +02:00
J. Nick Koston fe769c4527 Fix missing type for mqtt websocket wrapper (#117752) 2024-05-20 09:32:50 +02:00
epenet 570d5f2b55 Add turn_on to SamsungTV remote (#117403)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-19 20:14:20 -10:00
Ricardo Steijn 14f1e8c520 Bump crownstone-sse to 2.0.5, crownstone-cloud to 1.4.11 (#117748) 2024-05-19 19:18:28 -10:00
Alberto Geniola 9fab2aa2bc Update elmax_api to v0.0.5 (#117693)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-19 19:16:46 -10:00
Denis Shulyaka c3196a5667 LLM Tools support for Google Generative AI integration (#117644)
* initial commit

* Undo prompt chenges

* Move format_tool out of the class

* Only catch HomeAssistantError and vol.Invalid

* Add config flow option

* Fix type

* Add translation

* Allow changing API access from options flow

* Allow model picking

* Remove allowing HASS Access in main flow

* Move model to the top in options flow

* Make prompt conditional based on API access

* convert only once to dict

* Reduce debug logging

* Update title

* re-order models

* Address comments

* Move things

* Update labels

* Add tool call tests

* coverage

* Use LLM APIs

* Fixes

* Address comments

* Reinstate the title to not break entity name

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-19 22:11:25 -04:00
J. Nick Koston ac3321cef1 Fix setting MQTT socket buffer size with WebsocketWrapper (#117672) 2024-05-19 14:09:21 -10:00
Jan-Philipp Benecke 99565bef27 Bump pydiscovergy to 3.0.1 (#117740) 2024-05-19 20:56:58 +02:00
Maciej Bieniek 826f6c6f7e Refactor tests for Brother integration (#117377)
* Refactor tests - step 1

* Remove fixture

* Refactor test_init

* Refactor test_diagnostics

* Refactor test_config_flow

* Increase test coverage

* Cleaning

* Cleaning

* Check config entry state in test_async_setup_entry

* Simplify patching

* Use AsyncMock when patching

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-19 20:41:47 +02:00
Anrijs d2008ffdd7 Bump aranet4 to 2.3.4 (#117738)
bump aranet4 lib version to 2.3.4
2024-05-19 21:08:39 +03:00
Guido Schmitz e68bf623a7 Use reauth helper in devolo Home Control (#117739) 2024-05-19 19:31:19 +02:00
Joost Lekkerkerker 1b105a3c97 Use helper in Withings reauth (#117727) 2024-05-19 19:25:31 +02:00
Shay Levy d84890bc59 Bump aioshelly to 10.0.0 (#117728) 2024-05-19 19:25:12 +02:00
Guido Schmitz 38f0c47942 Use reauth helper in devolo Home Network (#117736) 2024-05-19 19:23:30 +02:00
Jake Martin cc60fc6d9f Bump monzopy to 1.2.0 (#117730) 2024-05-19 15:37:25 +02:00
jjlawren b8c5dcaeef Bump PlexAPI to 4.15.13 (#117712) 2024-05-19 11:36:25 +02:00
Maciej Bieniek da42a8e1c6 Use SnmpEngine stored in hass.data by singleton in Brother integration (#117043) 2024-05-19 11:33:21 +02:00
Paulus Schoutsen d001e7daea Add API class to LLM helper (#117707)
* Add API class to LLM helper

* Add more tests

* Rename intent to assist to broaden scope
2024-05-18 21:14:05 -04:00
Shay Levy bfc52b9fab Avoid Shelly RPC reconnect during device shutdown (#117702) 2024-05-19 02:05:51 +03:00
Paulus Schoutsen c59010c499 Remove AngellusMortis as code-owner Unifi Protect (#117708) 2024-05-18 22:54:00 +02:00
Paulus Schoutsen 98330162e9 Add GitHub CoPilot to extensions devcontainer (#117699) 2024-05-18 22:30:22 +02:00
Michael 6d3cafb43b Move entity definitions into own module in AVM Fritz!Tools (#117701)
* move entity definitions into own module

* merge entity description mixin

* add entity.py to .coveragerc
2024-05-18 22:25:25 +02:00
Michael a983a8c6d8 Consider only active config entries as media source in Synology DSM (#117691)
consider only active config entries as media source
2024-05-18 16:38:22 +02:00
epenet d81bb8cdcd Allow manual delete of stale Renault vehicles (#116229) 2024-05-18 13:46:38 +02:00
Ville Skyttä a27cc24da2 Filter out HTML greater/less than entities from huawei_lte sensor values (#117209) 2024-05-18 13:45:42 +02:00
epenet 3a8bdfbfdf Use remove_device helper in tasmota tests (#116617) 2024-05-18 13:43:21 +02:00
Joost Lekkerkerker 1d16e219e4 Refactor Aurora tests (#117323) 2024-05-18 13:40:30 +02:00
Sid 54ba393be8 Add __pycache__ to gitignore (#114056) 2024-05-18 13:30:03 +02:00
Brett Adams 1b0c91fa4d Improve diagnostics in Teslemetry (#117613) 2024-05-18 13:27:23 +02:00
Joost Lekkerkerker b39028acf2 Improve Monzo tests (#117036) 2024-05-18 13:20:08 +02:00
epenet 4dad9c8859 Move plenticore coordinators to separate module (#117491) 2024-05-18 13:11:22 +02:00
Joost Lekkerkerker c38539b368 Use generator expression in poolsense (#117582) 2024-05-18 13:10:06 +02:00
Marc Mueller 10dfa91e54 Remove useless TypeVars (#117687) 2024-05-18 12:58:51 +02:00
Marc Mueller 97a4101900 Use PEP 695 for dispatcher helper typing (#117685) 2024-05-18 12:47:03 +02:00
Bouwe Westerdijk fe6df8db1e Add options-property to Plugwise Select (#117655) 2024-05-18 12:39:58 +02:00
Marc Mueller 3cd1717437 Improve YieldFixture typing (#117686) 2024-05-18 12:35:02 +02:00
Marc Mueller 26a599ad11 Use PEP 695 for function annotations (1) (#117658) 2024-05-18 11:45:54 +02:00
Marc Mueller 900b6211ef Use PEP 695 for function annotations (2) (#117659) 2024-05-18 11:44:39 +02:00
Marc Mueller 4cf0a3f154 Use PEP 695 for function annotations (3) (#117660) 2024-05-18 11:43:32 +02:00
Marc Mueller 34ea781031 Use PEP 695 for decorator typing with type aliases (1) (#117662) 2024-05-18 11:42:39 +02:00
Marc Mueller 907b9c42e5 Use PEP 695 for decorator typing with type aliases (2) (#117663) 2024-05-18 11:41:46 +02:00
tronikos d65437e347 Bump google-generativeai==0.5.4 (#117680) 2024-05-18 11:38:33 +02:00
On Freund b97cf9ce42 Bump pyrisco to 0.6.2 (#117682) 2024-05-18 11:37:24 +02:00
Maciej Bieniek fe65ef72a7 Add missing string reconfigure_successful for NAM reconfigure flow (#117683)
Add missing string reconfigure_successful

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-18 11:24:39 +02:00
David Knowles 034197375c Clean up some bad line wrapping in Hydrawise (#117671)
Fix some bad line wrapping
2024-05-18 10:26:22 +02:00
epenet a904557bbb Move philips_js coordinator to separate module (#117561) 2024-05-18 10:21:22 +02:00
epenet 7ceaf2d3f0 Move tomorrowio coordinator to separate module (#117537)
* Move tomorrowio coordinator to separate module

* Adjust imports
2024-05-18 09:01:50 +02:00
Christopher Tremblay b015dbfccb Add AlarmDecoder device info (#117357)
* Update AlarmDecoder component to newer model

This commit makes AlarmDecoder operate as a proper device entity following the new model introduced a few years ago.

Code also has an internal dependency on a newer version of adext (>= 0.4.3) which has been updated correspondingly.

* Created AlarmDecoder entity

Added an alarmdecoder entity so the device_info can be re-used across the integration

* Move _attr_has_entity_name to base entity

As per code review suggestion, clean up the object model.

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

* Missed one suggestion with the prior commit

Moves _attr_has_entity_name to base entity

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

* Address some ruff issues

* Apply additional ruff cleanups

Ran ruff again to clean up a few files tat weren't picked up last time

* Apply suggestions from code review

Some additional cleanup of style & removal of unnecessary code

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

* Properly generated the integration file

generation had to happen twice for this to work.  Now that it's generated, I'm including the missing update.

* Apply suggestions from code review

Use local client variable instead of self._client

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

* Sort the manifest

documentation was added, but it wasn't sorted properly in the key/value pairs

* Add alarmdecoder entity file to coverage ignore file

Added the alarmdecoder entity file so it is ignored for coverage

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-05-18 08:59:44 +02:00
Mr. Bubbles 2b195cab72 Fix Habitica doing blocking I/O in the event loop (#117647) 2024-05-17 21:06:26 -04:00
Maikel Punie 3efdeaaa77 Bump pyduotecno to 2024.5.1 (#117643) 2024-05-17 18:37:59 +02:00
Allen Porter caa35174cb Add Google Gen AI Conversation Agent Entity (#116362)
* Add Google Gen AI Conversation Agent Entity

* Rename agent to entity

* Revert ollama changes

* Don't copy service tests to conversation_test.py

* Move logger and cleanup snapshots

* Move property after init

* Set logger to use package

* Cleanup hass from constructor

* Fix merges

* Revert ollama change
2024-05-17 11:00:11 -04:00
epenet fce4263493 Move p1_monitor coordinator to separate module (#117562) 2024-05-17 16:34:47 +02:00
Marc Mueller c41962455e Use PEP 695 for decorator typing (2) (#117639) 2024-05-17 16:31:01 +02:00
Marc Mueller 25d1ca747b Use PEP 695 for decorator typing (3) (#117640) 2024-05-17 16:27:32 +02:00
Marc Mueller 34bd291615 Use PEP 695 for decorator typing (1) (#117638) 2024-05-17 16:27:02 +02:00
epenet 067c9e63e9 Adjust bootstrap script to use correct version of pre-commit (#117621) 2024-05-17 16:18:44 +02:00
Joost Lekkerkerker 9cf8e49b01 Fix icons and strings in Balboa (#117618) 2024-05-17 16:17:36 +02:00
epenet a29a0a36e5 Move elmax coordinator to separate module (#117425) 2024-05-17 16:02:19 +02:00
epenet bbcbf57117 Add snapshot tests to elmax (#117637)
* Add snapshot tests to elmax

* Rename test methods

* Re-generate
2024-05-17 15:55:38 +02:00
Marc Mueller 44049c34f9 Use PEP 695 type alias for ConfigEntry types (#117632) 2024-05-17 15:42:58 +02:00
Joost Lekkerkerker 0b8a5ac9ad Add snapshot tests to Balboa (#117620) 2024-05-17 15:38:39 +02:00
epenet 081bf1cc39 Move modern_forms coordinator to separate module (#117610) 2024-05-17 15:19:40 +02:00
Bas Brussee 658c1f3d97 Fix Tibber sensors state class (#117085)
* set correct state classes

* revert bool to pass mypy locally
2024-05-17 09:10:08 -04:00
tronikos a7ca36e88c Android TV Remote: Mention the TV will turn on in the reauth flow (#117548)
* Update strings.json

* Remove duplicate space

---------

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2024-05-17 09:05:46 -04:00
Franck Nijhof 3dc3de95fa 2024.5.4 (#117631) 2024-05-17 15:04:13 +02:00
Marc Mueller 87bb7ced79 Use PEP 695 for simple type aliases (#117633) 2024-05-17 14:42:21 +02:00
Franck Nijhof 5c8f7fe52a Fix rc pylint warning for Home Assistant Analytics (#117635) 2024-05-17 14:13:10 +02:00
Franck Nijhof 8896d134e9 Bump version to 2024.5.4 2024-05-17 13:45:47 +02:00
Robert Svensson f043b2db49 Improve syncing light states to deCONZ groups (#117588) 2024-05-17 13:45:03 +02:00
Joost Lekkerkerker 5cd101d2b1 Fix poolsense naming (#117567) 2024-05-17 13:45:00 +02:00
Joost Lekkerkerker ab9ed0eba4 Handle uncaught exceptions in Analytics insights (#117558) 2024-05-17 13:44:57 +02:00
starkillerOG 4548ff619c Bump reolink-aio to 0.8.10 (#117501) 2024-05-17 13:44:53 +02:00
Erik Montnemery b1746faa47 Fix API creation for passwordless pi_hole (#117494) 2024-05-17 13:43:50 +02:00
starkillerOG 615ae780ca Reolink fix not unregistering webhook during ReAuth (#117490) 2024-05-17 13:38:56 +02:00
J. Nick Koston b86513c3a4 Fix non-thread-safe state write in tellduslive (#117487) 2024-05-17 13:38:51 +02:00
Maikel Punie 970ad8c07c Bump pyduotecno to 2024.5.0 (#117446) 2024-05-17 13:38:48 +02:00
Franck Nijhof 819e9860a8 Update wled to 0.17.1 (#117444) 2024-05-17 13:38:44 +02:00
mk-81 e7ff552de6 Fix Kodi on/off status (#117436)
* Fix Kodi Issue 104603

Fixes issue, that Kodi media player is displayed as online even when offline. The issue occurrs when using HTTP(S) only (no web Socket) integration after kodi was found online once.
Issue: In async_update the connection exceptions from self._kodi.get_players are not catched and therefore self._players (and the like) are not reset. The call of self._connection.connected returns always true for HTTP(S) connections.

Solution: Catch Exceptions from self._kodi.get_players und reset state in case of HTTP(S) only connection. Otherwise keep current behaviour.

* Fix Kodi Issue 104603 / code style adjustments

as requested
2024-05-17 13:38:41 +02:00
Jiaqi Wu f48f8eefe7 Fix Lutron Serena Tilt Only Wood Blinds set tilt function (#117374) 2024-05-17 13:38:38 +02:00
J. Nick Koston c90818e10c Fix squeezebox blocking startup (#117331)
fixes #117079
2024-05-17 13:38:33 +02:00
tronikos 642a6b44eb Call Google Assistant SDK service using async_add_executor_job (#117325) 2024-05-17 13:38:30 +02:00
Joost Lekkerkerker bca20646bb Fix Aurora naming (#117314) 2024-05-17 13:38:26 +02:00
Jan Bouwhuis dba4785c9b Increase MQTT broker socket buffer size (#117267)
* Increase MQTT broker socket buffer size

* Revert unrelated change

* Try to increase buffer size

* Set INITIAL_SUBSCRIBE_COOLDOWN back to 0.5 sec

* Sinplify and add test

* comments

* comments

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-17 13:38:23 +02:00
Raman Gupta 57cf91a8d4 Fix zwave_js discovery logic for node device class (#117232)
* Fix zwave_js discovery logic for node device class

* simplify check
2024-05-17 13:38:19 +02:00
jjlawren 17c6a49ff8 Bump SoCo to 0.30.4 (#117212) 2024-05-17 13:38:17 +02:00
Tom Harris 5941cf05e4 Fix issue changing Insteon Hub configuration (#117204)
Add Hub version to config schema
2024-05-17 13:38:14 +02:00
Thomas55555 a53b8cc0e2 Add reauth for missing token scope in Husqvarna Automower (#117098)
* Add repair for wrong token scope to Husqvarna Automower

* avoid new installations with missing scope

* tweaks

* just reauth

* texts

* Add link to correct account

* Update homeassistant/components/husqvarna_automower/strings.json

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

* Update homeassistant/components/husqvarna_automower/strings.json

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

* Update homeassistant/components/husqvarna_automower/strings.json

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

* Add comment

* directly assert mock_missing_scope_config_entry.state is loaded

* assert that a flow is started

* pass complete url to strings and simplify texts

* shorten long line

* address review

* simplify tests

* grammar

* remove obsolete fixture

* fix test

* Update tests/components/husqvarna_automower/test_init.py

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

* test if reauth flow has started

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-05-17 13:38:11 +02:00
Michal Čihař 9d25d228ab Reduce update interval in Ondilo Ico (#116989)
Ondilo: reduce update interval

The API seems to have sticter rate-limiting and frequent requests fail
with HTTP 400.

Fixes #116593
2024-05-17 13:38:08 +02:00
tronikos 652ee1b90d Avoid exceptions when Gemini responses are blocked (#116847)
* Bump google-generativeai to v0.5.2

* Avoid exceptions when Gemini responses are blocked

* pytest --snapshot-update

* set error response

* add test

* ruff
2024-05-17 13:38:05 +02:00
Thomas55555 afb5e622cd Catch auth exception in husqvarna automower (#115365)
* Catch AuthException in Husqvarna Automower

* don't use getattr

* raise ConfigEntryAuthFailed
2024-05-17 13:38:01 +02:00
Maikel Punie 4501658a16 Mark Duotecno entities unavailable when tcp goes down (#114325)
When the tcp connection to the duotecno smartbox goes down, mark all entities as unavailable.
2024-05-17 13:37:58 +02:00
amura11 52147e5196 Fix Fully Kiosk set config service (#112840)
* Fixed a bug that prevented setting Fully Kiosk config values using a template

* Added test to cover change

* Fixed issue identified by Ruff

* Update services.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-17 13:37:52 +02:00
Marc Mueller 4edee94a81 Update mypy-dev to 1.11.0a2 (#117630) 2024-05-17 13:32:20 +02:00
epenet eacbebce22 Prevent const.py in coverage ignore list (#117625) 2024-05-17 12:53:58 +02:00
Joost Lekkerkerker 098ba125d1 Extract Monzo coordinator in separate module (#117034) 2024-05-17 12:40:19 +02:00
epenet addc4a84ff Rename hassio coordinator module (#117611) 2024-05-17 12:10:21 +02:00
epenet ac62faee23 Bump pre-commit to 3.7.1 (#117619) 2024-05-17 11:44:51 +02:00
starkillerOG abe83f5515 Fix Reolink battery translation_key unneeded (#117616) 2024-05-17 09:09:01 +02:00
dependabot[bot] 1589226618 Bump actions/checkout from 4.1.4 to 4.1.6 (#117612)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-17 08:45:23 +02:00
Robert Svensson bbfc2456ec Improve syncing light states to deCONZ groups (#117588) 2024-05-17 08:44:09 +02:00
J. Nick Koston 48ea15cc6e Fix dlna_dmr task flood when player changes state (#117606) 2024-05-17 08:40:14 +02:00
epenet bbf86335be Move opengarage coordinator to separate module (#117608) 2024-05-17 08:05:43 +02:00
epenet 407d0f88f0 Rename openweathermap coordinator module (#117609) 2024-05-17 08:05:11 +02:00
Tom Harris 9420e041ac Fix issue changing Insteon Hub configuration (#117204)
Add Hub version to config schema
2024-05-16 21:45:03 -04:00
Robert Svensson 0e3c0ccfd8 Remove old deCONZ entity cleanup (#117590) 2024-05-16 21:42:09 -04:00
Robert Svensson 657b3ceedc Rework deCONZ services to load once and never unload (#117592)
* Rework deCONZ services to load once and never unload

* Fix hassfest
2024-05-16 21:41:23 -04:00
Marc Mueller 4300ff6b60 Mark HassJob target as Final (#117578) 2024-05-17 00:01:07 +02:00
MatthewFlamm 121aa158c9 Use config entry runtime_data in nws (#117593) 2024-05-16 23:14:44 +02:00
starkillerOG f788f88052 Add Reolink battery entities (#117506)
* add battery sensors

* Disable Battery Temperature and State by default

* fix mypy

* Use device class for icon
2024-05-16 21:41:19 +02:00
Joost Lekkerkerker 68b7302cdc Add Poolsense platform tests (#117579) 2024-05-16 21:35:00 +02:00
MatthewFlamm 9aa7d3057b Add diagnostics for nws (#117587)
* add diagnostics

* remove hassfezt exception
2024-05-16 21:26:22 +02:00
Chris Talkington 5635bcce86 Bump pyipp to 0.16.0 (#117583)
bump pyipp to 0.16.0
2024-05-16 13:04:35 -05:00
Joost Lekkerkerker cd8dac65b3 Refactor Poolsense config flow tests (#117573) 2024-05-16 17:51:57 +02:00
Maciej Bieniek 789073384b Support reconfigure flow in Shelly integration (#117525)
* Support reconfigure flow

* Update strings

* Add tests

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-16 17:47:12 +02:00
epenet 996132f3f8 Ensure gold and platinum integrations implement diagnostic (#117565) 2024-05-16 11:33:23 -04:00
Joost Lekkerkerker 0335a01fba Use runtime data in Poolsense (#117570) 2024-05-16 17:31:14 +02:00
Joakim Sørensen 535aa05c65 Update hass-nabucasa dependency to version 0.81.0 (#117568) 2024-05-16 11:08:01 -04:00
epenet d670f1d81d Move pure_energie coordinator to separate module (#117560) 2024-05-16 16:51:25 +02:00
Michael Hansen e168cb96e9 Add area filter and rounded time to timers (#117527)
* Add area filter

* Add rounded time to status

* Fix test

* Extend test

* Increase test coverage
2024-05-16 09:45:14 -05:00
Joost Lekkerkerker ba395fb9f3 Fix poolsense naming (#117567) 2024-05-16 16:42:40 +02:00
epenet d019c25ae4 Move pvpc coordinator to separate module (#117559) 2024-05-16 16:06:50 +02:00
dfaour 6f5e820090 Improve recorder statistics error messages (#113498)
* Update statistics.py

Added more detail error descriptions to make debugging easier

* Update statistics.py

formatting corrected
2024-05-16 13:44:03 +02:00
Joost Lekkerkerker 4cded378bf Handle uncaught exceptions in Analytics insights (#117558) 2024-05-16 13:43:03 +02:00
epenet 59645aeb0f Move risco coordinator to separate module (#117549) 2024-05-16 13:29:57 +02:00
epenet 388132cfc8 Move rainforest_eagle coordinator to separate module (#117556) 2024-05-16 12:57:20 +02:00
Simone Chemelli 32a9cb4b14 Add Shelly motion sensor switch (#115312)
* Add Shelly motion sensor switch

* update name

* make motion switch a restore entity

* add test

* apply review comment

* Update tests/components/shelly/test_switch.py

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

* Update tests/components/shelly/test_switch.py

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

* Update tests/components/shelly/test_switch.py

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

* Update tests/components/shelly/test_switch.py

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

* rename switch

* Update tests/components/shelly/test_switch.py

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

* Update tests/components/shelly/test_switch.py

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

* Update tests/components/shelly/test_switch.py

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

* fix ruff

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-05-16 12:49:49 +02:00
Marc Mueller 53da59a454 Replace meaningless TypeVar usage (#117553) 2024-05-16 12:48:02 +02:00
Marc Mueller ab07bc5298 Improve ReloadServiceHelper typing (#117552) 2024-05-16 12:47:43 +02:00
Sid 9d10e42d79 Only allow ethernet and wi-fi interfaces as unique ID in webmin (#113084) 2024-05-16 12:16:13 +02:00
Jeffrey Stone e6f5b08264 Add functionality to Mastodon (#112862)
* Adds functionality to Mastodon

* protect media type

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

* update log warning

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

* protect upload media

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

* Update protected functions

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-16 12:08:50 +02:00
epenet 962dd81eb7 Move upcloud coordinator to separate module (#117536) 2024-05-16 11:45:22 +02:00
epenet c2bf4b905c Move surepetcare coordinator to separate module (#117544) 2024-05-16 11:44:36 +02:00
Christopher Tremblay 2a540e1100 Bump adext to 0.4.3 (#117496) 2024-05-16 10:54:44 +02:00
Mischa Siekmann 481264693e Bump aioesphomeapi to 24.4.0 (#117543) 2024-05-16 10:53:00 +02:00
epenet 8bbac8040f Move gogogate2 coordinator to separate module (#117433) 2024-05-16 09:11:49 +02:00
epenet 07d289d1c6 Move switcher_kis coordinator to separate module (#117538) 2024-05-16 10:11:19 +03:00
epenet 2cd9bc1c2c Move xbox coordinator to separate module (#117421) 2024-05-16 09:10:41 +02:00
Sid 6ce1d97e7a Add Webmin filesystem sensors (#112660)
* Add Webmin filesystem sensors

* fix names

* update snapshots

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-16 09:03:35 +02:00
epenet 465e3d421e Move google coordinator to separate module (#117473) 2024-05-15 20:40:51 -07:00
J. Nick Koston f1e8262db2 Bump bleak to 0.22.1 (#117383) 2024-05-16 12:36:27 +09:00
Michael Hansen daee3d8db0 Don't prioritize "name" slot if it's a wildcard in default conversation agent (#117518)
* Don't prioritize "name" slot if it's a wildcard

* Fix typing error
2024-05-15 22:23:24 -04:00
Denis Shulyaka f31873a846 Add LLM tools (#115464)
* Add llm helper

* break out Tool.specification as class members

* Format state output

* Fix intent tests

* Removed auto initialization of intents - let conversation platforms do that

* Handle DynamicServiceIntentHandler.extra_slots

* Add optional description to IntentTool init

* Add device_id and conversation_id parameters

* intent tests

* Add LLM tools tests

* coverage

* add agent_id parameter

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* Apply suggestions from code review

* Fix tests

* Fix intent schema

* Allow a Python function to be registered as am LLM tool

* Add IntentHandler.effective_slot_schema

* Ensure IntentHandler.slot_schema to be vol.Schema

* Raise meaningful error on tool not found

* Move this change to a separate PR

* Update todo integration intent

* Remove Tool constructor

* Move IntentTool to intent helper

* Convert custom serializer into class method

* Remove tool_input from FunctionTool auto arguments to avoid recursion

* Remove conversion into Open API format

* Apply suggestions from code review

* Fix tests

* Use HassKey for helpers (see #117012)

* Add support for functions with typed lists, dicts, and sets as type hints

* Remove FunctionTool

* Added API to get registered intents

* Move IntentTool to the llm library

* Return only handlers in intents.async.get

* Removed llm tool registration from intent library

* Removed tool registration

* Add bind_hass back for now

* removed area and floor resolving

* fix test

* Apply suggestions from code review

* Improve coverage

* Fix intent_type type

* Temporary disable HassClimateGetTemperature intent

* Remove bind_hass

* Fix usage of slot schema

* Fix test

* Revert some test changes

* Don't mutate tool_input

---------

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-15 19:16:47 -04:00
Paulus Schoutsen 4aba92ad04 Fix the type of slot schema of intent handlers (#117520)
Fix the slot schema of dynamic intenet handler
2024-05-15 16:45:15 -04:00
Paulus Schoutsen a95baf0d39 Set integration type for wyoming (#117519)
* Set integration type to wyoming

* Add entry_type
2024-05-15 16:17:49 -04:00
Jan-Philipp Benecke 5e194b8a82 Do not register mqtt mock config flow with handlers (#117521) 2024-05-15 16:17:27 -04:00
epenet 0a625baeed Rename fritz coordinator module (#117440)
* Rename fritz coordinator module

* Update .coveragerc

* Adjust .coveragerc

* Adjust coverage

* Adjust coverage
2024-05-15 21:58:29 +02:00
IceBotYT ebb02a7081 Add light platform to Linear garage door (#111426)
* Add light platform

* Fix light test

* Suggestions by CFenner

* Fix tests

* More fixes

* Revert test changes

* Undo base entity

* Rebase

* Fix to use base entity

* Fix name

* More fixes

* Fix tests

* Add translation key

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-15 21:43:31 +02:00
starkillerOG 38c2688ec2 Add Reolink PIR entities (#117507)
* Add PIR entities

* fix typo
2024-05-15 21:10:52 +02:00
Matthias Alphart ec4c8ae228 Allow templates for enabling actions (#117049)
* Allow templates for enabling automation actions

* Use `cv.template` instead of `cv.template_complex`

* Rename test function
2024-05-15 21:03:52 +02:00
Matthias Alphart 076f57ee07 Allow templates for enabling conditions (#117047)
* Allow templates for enabling automation conditions

* Use `cv.template` instead of `cv.template_complex`
2024-05-15 21:03:28 +02:00
epenet aa2485c7b9 Move vallox coordinator to separate module (#117503)
* Move vallox coordinator to separate module

* Move logic into coordinator class

* Adjust
2024-05-15 21:01:21 +02:00
epenet 2c6071820e Move vizio coordinator to separate module (#117498) 2024-05-15 21:00:21 +02:00
Marlon 3604a34823 Post review comments on APsystems (#117504)
* Cleanup for apsystems and fix for strings

* Migrate to typed ConfigEntry Data for apsystems

* Improve strings for apsystems

* Improve config flow tests for apsystems by cleaning up fixtures

* Do not use Dataclass for Config Entry Typing

* Improve translations for apsystems by using sentence case and removing an apostrophe

* Rename test fixture and remove unnecessary comment in tests from apsystems

* Remove default override with default in coordinator from apsystems
2024-05-15 19:56:12 +02:00
Brett Adams 4125b6e15f Add select platform to Teslemetry (#117422)
* Add select platform

* Add tests

* Tests WIP

* Add tests

* Update homeassistant/components/teslemetry/select.py

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

* Update homeassistant/components/teslemetry/select.py

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

* use references

* Fix typo

* Update homeassistant/components/teslemetry/select.py

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

* Update homeassistant/components/teslemetry/select.py

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

* Make less confusing for @joostlek

* Update homeassistant/components/teslemetry/select.py

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

* Update homeassistant/components/teslemetry/select.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-05-15 18:17:28 +02:00
Åke Strandberg c4c96be880 Add alarm and connectivity binary_sensors to myuplink (#111643)
* Add alarm and connectivity binary_sensors

* Get is_on for correct system

* Make coverage 100% in binary_sensor

* Address review comments

* Revert dict comprehension for now
2024-05-15 17:13:56 +02:00
Anil Daoud 8eaf471dd2 Improve error handing in kaiterra data retrieval when no aqi data is present (#112885)
* Update api_data.py

change log level on typeerror on line 103 from error to debug, it occurs too often to be useful as an error

* Update api_data.py

restore error level and add a type check instead

* Update homeassistant/components/kaiterra/api_data.py

actually filter for aqi being None rather than None or 0

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

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-15 16:22:58 +02:00
starkillerOG fd8dbe0367 Bump reolink-aio to 0.8.10 (#117501) 2024-05-15 16:19:02 +02:00
Dennis Lee 4d34350f66 Add Jellyfin audio_codec optionflow (#113036)
* Fix #92419; Add Jellyfin audio_codec optionflow

* Use CONF_AUDIO_CODEC constant, clean up code based on suggestions

* Fixed typos

* Parameterize Tests

* Use parameterized test for jellyfin test media resolve

* Apply suggestions from code review

* Update homeassistant/components/jellyfin/config_flow.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-15 16:11:11 +02:00
tronikos d2d39bce3a Android TV Remote: Support launching any app by its application ID/package name (#116906)
Bumps androidtvremote2 to 0.1.1
2024-05-15 15:48:57 +02:00
Marcel van der Veldt 5af8041c57 Fix ghost events for Hue remotes (#113047)
* Use report values for events

* adjust tests
2024-05-15 15:48:15 +02:00
epenet 4e600b7b19 Move venstar coordinator to separate module (#117500) 2024-05-15 15:18:26 +02:00
Maikel Punie d5a1587b1c Mark Duotecno entities unavailable when tcp goes down (#114325)
When the tcp connection to the duotecno smartbox goes down, mark all entities as unavailable.
2024-05-15 15:12:47 +02:00
amura11 2a9d29c5f5 Fix Fully Kiosk set config service (#112840)
* Fixed a bug that prevented setting Fully Kiosk config values using a template

* Added test to cover change

* Fixed issue identified by Ruff

* Update services.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-15 15:01:55 +02:00
epenet 60193a3c2d Move mill coordinator to separate module (#117493) 2024-05-15 13:52:32 +02:00
epenet 4803db7cf0 Move prusalink coordinators to separate module (#117495) 2024-05-15 13:51:22 +02:00
Erik Montnemery 6ecc0ec3a1 Fix API creation for passwordless pi_hole (#117494) 2024-05-15 13:39:07 +02:00
epenet 6bd3648c77 Move melnor coordinator to separate module (#117486) 2024-05-15 12:13:05 +02:00
J. Nick Koston 37c55d81e3 Fix non-thread-safe state write in tellduslive (#117487) 2024-05-15 12:08:24 +02:00
starkillerOG e286621f93 Reolink fix not unregistering webhook during ReAuth (#117490) 2024-05-15 12:04:12 +02:00
epenet 6c892b227b Rename mikrotik coordinator module (#117488) 2024-05-15 12:02:33 +02:00
epenet 73ed49e4b7 Remove ignore-wrong-coordinator-module in pylint CI (#117479) 2024-05-15 11:51:14 +02:00
epenet 6116caa7ed Move idasen_desk coordinator to separate module (#117485) 2024-05-15 11:26:40 +02:00
epenet 48c03a6564 Move gios coordinator to separate module (#117471) 2024-05-15 11:26:04 +02:00
Aidan Timson 65e6e1fa28 Add exception translations to System Bridge integration (#112206)
* Add exception translations to System Bridge integration

* Add translated error to coordinator

* Refactor strings.json in system_bridge component

* Sort

* Add HomeAssistantError import
2024-05-15 11:00:56 +02:00
Dave T 30f789d5e9 Set integration type for generic (#117464) 2024-05-15 09:33:47 +02:00
epenet a36ad6bb64 Move ialarm coordinator to separate module (#117478) 2024-05-15 09:30:44 +02:00
Joost Lekkerkerker 72d873ce70 Rename add entities function in Aurora (#117480) 2024-05-15 09:27:19 +02:00
Franck Nijhof bed31f302a Revert "Bump opower to 0.4.5 and use new account.id" (#117476) 2024-05-15 09:22:45 +02:00
Erik Montnemery e6296ae502 Revert "Add Viam image processing integration" (#117477) 2024-05-15 09:20:40 +02:00
Renat Sibgatulin be5d6425dc Add options flow to the airq integration (#109337)
* Add support for options to airq integration

Expose to the user the following configuration:
1. A choice between fetching from the device either:
    a. the averaged (previous and the new default behaviour) or
    b. noisy momentary sensor reading
2. A toggle to clip (spuriously) negative sensor values (default
    functionality, previously unexposed)

To those ends:
- Introduce an `OptionsFlowHandler` alongside with a listener
  `AirQCoordinator.async_set_options`
- Introduce constants to handle represent options
- Add tests and strings

* Drop OptionsFlowHandler in favour of SchemaOptionsFlowHandler

Modify `AirQCoordinator.__init__` to accommodate the change in option
handling, and drop `async_set_options` which slipped through the
previous commit.

* Ruff formatting
2024-05-15 09:13:26 +02:00
epenet f188668d8a Rename gree coordinator module (#117474) 2024-05-15 08:57:27 +02:00
epenet a4ceba2e0f Split homeassistant_alerts constants and coordinator (#117475) 2024-05-15 08:54:12 +02:00
dependabot[bot] 141355e776 Bump codecov/codecov-action from 4.3.1 to 4.4.0 (#117472)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-15 08:52:04 +02:00
J. Nick Koston 3f053eddbd Add websocket API to get list of recorded entities (#92640)
* Add API to get list of recorded entities

* update for latest codebase

* ruff

* Update homeassistant/components/recorder/websocket_api.py

* Update homeassistant/components/recorder/websocket_api.py

* Update homeassistant/components/recorder/websocket_api.py

* add suggested test
2024-05-15 08:41:56 +02:00
J. Nick Koston d29084d6fc Improve thread safety check messages to better convey impact (#117467)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-15 13:49:57 +09:00
Paulus Schoutsen 8f9273e945 Fix intent_type type (#117469) 2024-05-14 21:32:11 -07:00
Marlon d4d30f1c46 Add integration for APsystems EZ1 microinverter (#114531)
* Add APsystems local API integration

* Fix session usage in config_flow in apsystems local api

* Remove skip check option for apsystems_loca api

* Update APsystems API dependency and increased test coverage to 100%

* Utilize EntityDescriptions for APsystems Local integration

* Ensure coverage entries are sorted (#114424)

* Ensure coverage entries are sorted

* Use autofix

* Adjust

* Add comment to coverage file

* test CI

* revert CI test

---------

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

* Use patch instead of Http Mocks for APsystems API tests

* Fix linter waring for apsystemsapi

* Fix apsystemsapi test

* Fix CODEOWNERS for apsystemsapi

* Address small PR review changes for apsystems_local

* Remove wrong lines in coveragerc

* Add serial number for apsystems_local

* Remove option of custom refresh interval fro apsystems_local

* Remove function override and fix stale comments

* Use native device id and name storage instead of custom one for apsystems_local

* Use runtime_data for apsystems_local

* Don't store entry data in runtime data

* Move from apsystems_local to apsystems domain

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2024-05-14 22:50:25 -04:00
Scott K Logan 2590db1b6d Fix brand ID for Rainforest Automation (#113770) 2024-05-14 22:50:48 +02:00
Floris272 b4eeb00f9e Separate Blue Current timestamp sensors (#111942) 2024-05-14 22:46:31 +02:00
Dave T 03cce66f23 Set integration type for aurora_abb_powerone (#117462) 2024-05-14 22:36:15 +02:00
Ben Van Mechelen dad9423c08 Add water meter to Youless intergration (#117452)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2024-05-14 21:50:38 +02:00
Michael Hansen d441a62aa6 Remove "device_id" slot from timers (#117460)
Remove "device_id" slot
2024-05-14 15:48:24 -04:00
Ben Van Mechelen 6322821b65 Bump youless_api to 1.1.1 (#117459) 2024-05-14 21:34:50 +02:00
c0mputerguru 420afe0029 Bump opower to 0.4.5 and use new account.id (#117330) 2024-05-14 21:21:31 +02:00
Sean Chen b6a530c405 Add PM10 sensor to AirNow (#117432) 2024-05-14 21:17:09 +02:00
Erik Montnemery 7f3d6fe1f0 Fix lying docstring in entity_platform (#117450) 2024-05-14 21:15:05 +02:00
Richard Kroegel 13e2bc7b6f Enable raising ConfigEntryAuthFailed on BMW coordinator init (#116643)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-05-14 21:14:35 +02:00
Robert Svensson fa815234be Make UniFi use runtime data (#117457) 2024-05-14 21:04:26 +02:00
Franck Nijhof faff5f4738 Some minor cleanups in WLED (#117453) 2024-05-14 21:02:31 +02:00
mk-81 0df9006bf7 Fix Kodi on/off status (#117436)
* Fix Kodi Issue 104603

Fixes issue, that Kodi media player is displayed as online even when offline. The issue occurrs when using HTTP(S) only (no web Socket) integration after kodi was found online once.
Issue: In async_update the connection exceptions from self._kodi.get_players are not catched and therefore self._players (and the like) are not reset. The call of self._connection.connected returns always true for HTTP(S) connections.

Solution: Catch Exceptions from self._kodi.get_players und reset state in case of HTTP(S) only connection. Otherwise keep current behaviour.

* Fix Kodi Issue 104603 / code style adjustments

as requested
2024-05-14 21:02:17 +02:00
Michael Hansen 641754e0bb Pass device_id to intent handlers (#117442) 2024-05-14 13:59:49 -05:00
Joost Lekkerkerker d88851a85a Refactor Linear tests (#116336) 2024-05-14 20:47:14 +02:00
Michael Hansen add6ffaf70 Add Assist timers (#117199)
* First pass at timers

* Move to separate file

* Refactor to using events

* Add pause/unpause/status

* Add ordinal

* Add test for timed Assist command

* Fix name matching

* Fix IntentHandleError

* Fix again

* Refactor to callbacks

* is_paused -> is_active

* Rename "set timer" to "start timer"

* Move tasks to timer manager

* More fixes

* Remove assist command

* Remove cancel by ordinal

* More tests

* Remove async on callbacks

* Export async_register_timer_handler
2024-05-14 14:42:32 -04:00
epenet 458cc838cf Rename wemo coordinator module (#117437) 2024-05-14 20:21:50 +02:00
Andrew Sayre 223bf99ac9 Update SmartThings codeowners (#117448) 2024-05-14 19:40:39 +02:00
Josef Zweck d0e99b62da Re-introduce webhook to tedee integration (#110247)
* bring webhook over to new branch

* change log levels

* Update homeassistant/components/tedee/coordinator.py

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

* fix minor version

* ruff

* mock config entry version

* fix

* ruff

* add cleanup during webhook registration

* feedback

* ruff

* Update __init__.py

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

* Update homeassistant/components/tedee/__init__.py

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

* add downgrade test

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-14 19:38:58 +02:00
Ethem Cem Özkan b684801cae Use integration fallback configuration for tado water heater fallback (#111014)
* 103619 tado water heater fallback

* extracted a method to remove code duplication

* test cases and suggested changes

* tests

* util method for connector

* Update homeassistant/components/tado/climate.py

Co-authored-by: Andriy Kushnir <me@orhideous.name>

* missing import after applies suggestion

* early return

* simplify if statements

* simplify pr

* pr requested changes

* better docstring

---------

Co-authored-by: Andriy Kushnir <me@orhideous.name>
2024-05-14 19:27:26 +02:00
Maikel Punie ad6e6a1810 Bump pyduotecno to 2024.5.0 (#117446) 2024-05-14 19:22:13 +02:00
Franck Nijhof c94d7b3294 Update wled to 0.17.1 (#117444) 2024-05-14 19:17:50 +02:00
epenet 3f4fd41549 Rename flo coordinator module (#117438) 2024-05-14 17:34:02 +02:00
Christopher Fenner eca67eb901 Add ability to change heating programs for heat pumps in ViCare integration (#110924)
* heating programs

* fix heating program

* fix heating program

* remove commented code

* simplify

* Update types.py

* update vicare_programs in init
2024-05-14 17:01:34 +02:00
epenet 83f5133065 Move evil_genius_labs coordinator to separate module (#117435) 2024-05-14 10:32:41 -04:00
Denis Shulyaka 9add251b0a Add context to telegram_bot events (#109920)
* Add context for received messages events

* Add context for sent messages events

* ruff

* ruff

* ruff

* Removed user_id mapping

* Add tests
2024-05-14 15:48:59 +02:00
Robert Hillis 121966245b Bump pyefergy to 22.5.0 (#117395) 2024-05-14 15:42:41 +02:00
Diogo Gomes 450c57969a Add diagnostic platform to utility_meter (#114967)
* Add diagnostic to identify next_reset

* Add test

* add next_reset attr

* Trigger CI

* set as _unrecorded_attributes
2024-05-14 15:20:59 +02:00
J. Nick Koston 7871e9279b Adjust thread safety check messages to point to developer docs (#117392) 2024-05-14 15:20:31 +02:00
epenet 77de1b2331 Move abode service registration (#117418) 2024-05-14 15:18:45 +02:00
epenet 2e155f4de5 Move esphome coordinator to separate module (#117427) 2024-05-14 15:16:47 +02:00
Joost Lekkerkerker 92bb76ed24 Use snapshot platform helper in Flexit bacnet (#117428) 2024-05-14 15:10:21 +02:00
epenet 09fccf5188 Rename sharkiq coordinator module (#117429) 2024-05-14 15:07:19 +02:00
Matthias Alphart bca277a027 Add knx.telegram integration specific trigger; update KNX Interface device trigger (#107592)
* Add `knx.telegram` integration specific trigger

* Move implementation to trigger.py, use it from device_trigger

* test device_trigger

* test trigger.py

* Add "incoming" and "outgoing" and handle legacy device triggers

* work with mixed group address styles

* improve coverage

* Add no-op option

* apply changed linting rules

* Don't distinguish legacy device triggers from new ones

that's now supported since frontend has fixed default values of extra_fields

* review suggestion: reuse trigger schema for device trigger extra fields

* cleanup for readability

* Remove no-op option
2024-05-14 14:45:49 +02:00
Matthias Alphart ba48da7678 Allow templates for enabling automation triggers (#114458)
* Allow templates for enabling automation triggers

* Test exception for non-limited template

* Use `cv.template` instead of `cv.template_complex`

* skip trigger with invalid enable template

instead of returning and thus not evaluating other triggers
2024-05-14 14:44:21 +02:00
Marc Mueller 2a6a0e6230 Update pytest warnings filter (#117413) 2024-05-14 13:59:45 +02:00
J. Nick Koston 6d7345ea1c Speed up loading YAML (#117388)
Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>
2024-05-14 13:56:42 +02:00
Nick Hehr 55bf0b6647 Add Viam image processing integration (#101786)
* feat: scaffold integration, configure client

* feat: register services, allow API key auth flow

* feat: register detection, classification services

* test(viam): add test coverage

* chore(viam): update viam-sdk version

* fix(viam): add service schemas and translation keys

* test(viam): update config flow to use new selector values

* chore(viam): update viam-sdk to 0.11.0

* feat: add exceptions translation stings

* refactor(viam): use constant keys, defer filesystem IO execution

* fix(viam): add missing constants, resolve correct image for services

* fix(viam): use lokalize string refs, resolve more constant strings

* fix(viam): move service registration to async_setup

* refactor: abstract services into separate module outside of manager

* refactor(viam): extend common vol schemas

* refactor(viam): consolidate common service values

* refactor(viam): replace FlowResult with ConfigFlowResult

* chore(viam): add icons.json for services

* refactor(viam): use org API key to connect to robot

* fix(viam): close app client if user abort config flow

* refactor(viam): run ruff formatter

* test(viam): confirm 100% coverage of config_flow

* refactor(viam): simplify manager, clean up config flow methods

* refactor(viam): split auth step into auth_api & auth_location

* refactor(viam): remove use of SelectOptionDict for auth choice, update strings

* fix(viam): use sentence case for translation strings

* test(viam): create mock_viam_client fixture for reusable mock
2024-05-14 13:35:56 +02:00
Federico D'Amico 746cfd3492 Add climate platform to microBees (#111152)
* Add climate platform to microBees

* add list comprehension

* fixes

* fixes

* fixes

* fix multiline ternary

* use a generator expression instead of filter + lambda.

* bug fixes

* Update homeassistant/components/microbees/climate.py

---------

Co-authored-by: Marco Lettieri <m.lettieri@microbees.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-14 12:11:19 +02:00
epenet ed2c30b830 Move abode base entities to separate module (#117417) 2024-05-14 11:41:27 +02:00
Marc Mueller 09a8c06133 Update pylint to 3.1.1 (#117416) 2024-05-14 11:40:37 +02:00
epenet 438db92d86 Use ConfigEntry runtime_data in agent_dvr (#117412) 2024-05-14 11:10:40 +02:00
epenet 010ed8da9c Use ConfigEntry runtime_data in aemet (#117411) 2024-05-14 10:59:55 +02:00
Franck Nijhof 003622defd Update gotailwind to 0.2.3 (#117402) 2024-05-14 10:54:53 +02:00
dependabot[bot] 744e82f4fe Bump github/codeql-action from 3.25.4 to 3.25.5 (#117409) 2024-05-14 10:53:34 +02:00
epenet 635a89b9f9 Use ConfigEntry runtime_data in advantage_air (#117408) 2024-05-14 10:52:49 +02:00
Marc Mueller 31f980b054 Update types packages (#117407) 2024-05-14 10:48:54 +02:00
Franck Nijhof 053c898101 Update apprise to 1.8.0 (#117370) 2024-05-14 10:39:05 +02:00
Marc Mueller d60f97262e Update uv to 0.1.43 (#117405) 2024-05-14 10:38:50 +02:00
Franck Nijhof f5f57908dc Use ConfigEntry runtime_data in Tailwind (#117404) 2024-05-14 10:30:53 +02:00
Allen Porter b84829f70f Import and cache supported feature enum flags only when needed (#117270)
* Import and cache supported feature enum flags only when needed

* Add comment aboud being loaded from executor.

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-13 21:07:39 -07:00
J. Nick Koston 13414a0a32 Pass loop to create_eager_task in loops from more coros (#117390) 2024-05-14 09:48:25 +09:00
J. Nick Koston 9381462877 Migrate restore_state to use the singleton helper (#117385) 2024-05-14 09:13:44 +09:00
Jiaqi Wu 728e1a2223 Fix Lutron Serena Tilt Only Wood Blinds set tilt function (#117374) 2024-05-14 09:05:12 +09:00
Thomas55555 b2996844be Add reauth for missing token scope in Husqvarna Automower (#117098)
* Add repair for wrong token scope to Husqvarna Automower

* avoid new installations with missing scope

* tweaks

* just reauth

* texts

* Add link to correct account

* Update homeassistant/components/husqvarna_automower/strings.json

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

* Update homeassistant/components/husqvarna_automower/strings.json

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

* Update homeassistant/components/husqvarna_automower/strings.json

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

* Add comment

* directly assert mock_missing_scope_config_entry.state is loaded

* assert that a flow is started

* pass complete url to strings and simplify texts

* shorten long line

* address review

* simplify tests

* grammar

* remove obsolete fixture

* fix test

* Update tests/components/husqvarna_automower/test_init.py

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

* test if reauth flow has started

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-05-13 23:00:51 +02:00
J. Nick Koston 9c97269fad Bump dbus-fast to 2.21.2 (#117195) 2024-05-14 05:52:43 +09:00
Jan Bouwhuis 85e651fd5a Create helper for File config flow step handling (#117371) 2024-05-13 22:40:01 +02:00
Joakim Plate f23419ed35 Update to arcam 1.5.2 (#117375) 2024-05-13 20:59:50 +02:00
Maciej Bieniek 0d09226661 Support reconfigure flow in Nettigo Air Monitor integration (#117318)
* Add reconfigure flow

* Fix input

* Add tests

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-13 19:17:14 +02:00
Laurence Presland c3f95a4f7a Implement support for SwitchBot Meter, MeterPlus, and Outdoor Meter (#115522)
* Implement support for SwitchBot MeterPlus

Add temperature, humidity, and battery sensor entities for the MeterPlus device

* Rename GH username

* Update homeassistant/components/switchbot_cloud/coordinator.py

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

* Refactor to use EntityDescriptions

Concat entity ID in SwitchBotCloudSensor init

* Remove __future__ import

* Make scan interval user configurable

* Add support for Meter and Outdoor Meter

* Revert "Make scan interval user configurable"

This reverts commit e256c35bb71e598cf879e05e1df21dff8456b09d.

* Remove device-specific default scan intervals

* Update homeassistant/components/switchbot_cloud/sensor.py

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

* Update homeassistant/components/switchbot_cloud/sensor.py

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

* Update homeassistant/components/switchbot_cloud/sensor.py

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

* Fix ruff errors

* Reorder manifest keys

* Update CODEOWNERS

* Add sensor.py to coveragerc

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-13 15:18:28 +02:00
Jan Bouwhuis 548eb35b79 Migrate File notify entity platform (#117215)
* Migrate File notify entity platform

* Do not load legacy notify service for new  config entries

* Follow up comment

* mypy

* Correct typing

* Only use the name when importing notify services

* Make sure a name is set on new entires
2024-05-13 11:22:13 +02:00
Erik Montnemery 0b47bfc823 Add minor version + migration to config entry store (#117350) 2024-05-13 10:16:18 +02:00
Erik Montnemery b006aadeff Remove options from FlowResult (#117351) 2024-05-13 10:11:33 +02:00
Erik Montnemery 90ef19a255 Alphabetize some parts of config_entries (#117347) 2024-05-13 09:39:18 +02:00
Erik Montnemery b09565b4ff Remove migration of config entry data pre version 0.73 (#117345) 2024-05-13 09:39:04 +02:00
Bouwe Westerdijk 84cc650bb3 Implement runtime data for Plugwise (#117172) 2024-05-13 09:38:06 +02:00
Erik Montnemery d0c60ab21b Fix typo and useless default in config_entries (#117346) 2024-05-13 09:26:18 +02:00
Paulus Schoutsen f3b694ee42 Add gh cli to dev container (#117321) 2024-05-13 15:33:42 +09:00
Brett Adams af0dd189d9 Improve error handling in Teslemetry (#117336)
* Improvement command handle

* Add test for ignored reasons
2024-05-12 19:37:59 -07:00
Marc Hörsken 4d5ae57390 Add camera recording service to blink (#110612)
Add camera clip recording service to blink

Revival of #46598 by @fronzbot, therefore:

Co-authored-by: Kevin Fronczak <kfronczak@gmail.com>
2024-05-12 19:35:01 -07:00
Raman Gupta 61b906e29f Bump zwave-js-server-python to 0.56.0 (#117288)
* Bump zwave-js-server-python to 0.56.0

* Fix deprecation warning

* Fix tests

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-12 22:19:47 -04:00
tronikos 492ef67d02 Call Google Assistant SDK service using async_add_executor_job (#117325) 2024-05-12 22:19:20 -04:00
J. Nick Koston 38ce7b15b0 Fix squeezebox blocking startup (#117331)
fixes #117079
2024-05-12 22:18:52 -04:00
J. Nick Koston 11f49280c9 Enable open protection in the event loop (#117289) 2024-05-13 08:50:31 +09:00
J. Nick Koston d06932bbc2 Refactor asyncio loop protection to improve performance (#117295) 2024-05-13 07:01:55 +09:00
Joost Lekkerkerker aae39759d9 Clean up aurora (#117315)
* Clean up aurora

* Fix

* Fix

* Fix
2024-05-12 21:54:32 +02:00
Joost Lekkerkerker 8ab4113b4b Fix Aurora naming (#117314) 2024-05-12 15:36:21 -04:00
Robert Hillis 0a8feae49a Add test for radarr update failure (#116882) 2024-05-12 20:23:53 +02:00
Marc Mueller 3434fb70fb Remove ConfigEntry runtime_data on unload (#117312) 2024-05-12 13:53:22 -04:00
Jan Bouwhuis a1bc929421 Migrate Tibber notify service (#116893)
* Migrate tibber notify service

* Tests and repair flow

* Use notify repair flow helper

* Cleanup strings after using helper, use HomeAssistantError

* Add entry state assertions to unload test

* Update comment

* Update comment
2024-05-12 19:52:08 +02:00
Jan Bouwhuis 07061b14d0 Fix typo in mqtt test name (#117305) 2024-05-12 16:44:39 +02:00
Jan Bouwhuis 606a2848db Fix import on File config entry and other improvements (#117210)
* Address comments

* Remove Name option for File based sensor

* Make sure platform schema is applied
2024-05-12 15:09:54 +02:00
J. Nick Koston c971d08454 Fix flume doing blocking I/O in the event loop (#117293)
constructing FlumeData opens files
2024-05-12 08:28:22 -04:00
Brett Adams 7509ccff40 Use entry runtime data in Teslemetry (#117283)
* runtime_data

* runtime_data

* Remove some code

* format

* Fix missing entry.runtime_data
2024-05-12 08:25:09 -04:00
J. Nick Koston f318a3b5e2 Fix blocking I/O in the event loop to get MacOS system_info (#117290)
* Fix blocking I/O in the event look to get MacOS system_info

* split pr

* Update homeassistant/helpers/system_info.py

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

* Update homeassistant/helpers/system_info.py

---------

Co-authored-by: Jan-Philipp Benecke <jan-philipp@bnck.me>
2024-05-12 08:16:21 -04:00
Jan Bouwhuis 65a4e5a1af Spelling of controlling in mqtt valve tests (#117301) 2024-05-12 14:06:21 +02:00
Marc Mueller 4f4389ba85 Improve bluetooth generic typing (#117157) 2024-05-12 13:15:30 +02:00
Jan Bouwhuis 92254772ca Increase MQTT broker socket buffer size (#117267)
* Increase MQTT broker socket buffer size

* Revert unrelated change

* Try to increase buffer size

* Set INITIAL_SUBSCRIBE_COOLDOWN back to 0.5 sec

* Sinplify and add test

* comments

* comments

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-12 13:13:41 +02:00
J. Nick Koston f4e8d46ec2 Small speed ups to bootstrap tests (#117285) 2024-05-12 20:05:02 +09:00
J. Nick Koston 437fe3fa4e Fix mimetypes doing blocking I/O in the event loop (#117292)
The first time aiohttp calls mimetypes, it will load the mime.types file

We now init the db in the executor to avoid blocking the event loop
2024-05-12 10:47:52 +02:00
Ville Skyttä 34175846ff Bump upcloud-api to 2.5.1 (#117231)
Upgrade upcloud-python-api to 2.5.1

- https://github.com/UpCloudLtd/upcloud-python-api/releases/tag/v2.0.1
- https://github.com/UpCloudLtd/upcloud-python-api/releases/tag/v2.5.0
- https://github.com/UpCloudLtd/upcloud-python-api/releases/tag/v2.5.1
2024-05-12 08:10:02 +00:00
J. Nick Koston eac4aaef10 Use a dictcomp to reconstruct DeviceInfo in the device_registry (#117286)
Use a dictcomp to reconstruct DeviceInfo

a dictcomp is faster than many sets on the dict by at least
25%

We call this for nearly every device in the registry at
startup
2024-05-12 08:07:12 +02:00
Erik Montnemery 0acf392a50 Use MockConfigEntry in hue tests (#117237)
Use MockConfigEntry in hue tests
2024-05-11 23:36:54 -04:00
J. Nick Koston b061e7d1aa Small speed up to setting up integrations and config entries (#117278)
* Small speed up to setting up integration and config entries

When profiling tests, I noticed many calls to get_running_loop. In the places
where we are already in a coro, pass the existing loop so it does not have to
be looked up. I did not do this for places were we are not in a coro since there
is risk that an integration could be doing a non-thread-safe call and its better
that the code raises when trying to fetch the running loop vs the performance
improvement for these cases.

* fix merge

* missed some
2024-05-11 22:39:20 -04:00
Abílio Costa 15825b9444 Fix docstring in Idasen Desk (#117280) 2024-05-12 09:14:52 +09:00
J. Nick Koston 481de8cdc9 Ensure config entry operations are always holding the lock (#117214)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-12 08:20:08 +09:00
Erik Montnemery f55fcca0bb Tweak config_entries tests (#117242) 2024-05-11 21:45:03 +02:00
Joost Lekkerkerker 9f53c807c6 Refactor V2C tests (#117264)
* Refactor V2C tests

* Refactor V2C tests

* Refactor V2C tests

* Refactor V2C tests

* Update tests/components/v2c/conftest.py

* Refactor V2C tests
2024-05-11 21:28:37 +02:00
Jan Bouwhuis 7eb8f265fe Add shared notify service migration repair helper (#117213)
* Add shared notifiy service migration repair helper

* Delete ecobee repairs.py

* Update dependency

* Fix file test

* Fix homematic tests

* Improve tests for file  and homematic
2024-05-11 21:13:44 +02:00
Erik Montnemery d1525b1edf Sort parameters to MockConfigEntry (#117239) 2024-05-11 14:16:29 -04:00
Erik Montnemery 35900cd579 Use mock_config_flow helper in bootstrap tests (#117240) 2024-05-11 14:11:42 -04:00
Erik Montnemery 021b057a87 Use mock_config_flow helper in config_entries tests (#117241) 2024-05-11 14:11:18 -04:00
Erik Montnemery 5c1f6aeb60 Use mock_config_flow helper in config tests (#117245) 2024-05-11 14:09:00 -04:00
Raman Gupta 1f792fc2aa Start using runtime_data for zwave_js (#117261)
* Start using runtime_data for zwave_js

* fix bug
2024-05-11 14:08:30 -04:00
Tom Harris a892062f01 Bump pyinsteon to 1.6.1 (#117196)
* Bump pyinsteon

* Bump pyinsteon

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-11 13:41:14 -04:00
mtielen e5f8e08d62 Bump wolf-comm to 0.0.8 (#117218) 2024-05-11 18:29:59 +02:00
hahn-th 8e71fca511 Bump homematicip to 1.1.1 (#117175) 2024-05-11 18:24:56 +02:00
Raman Gupta 9655db3d55 Fix zwave_js discovery logic for node device class (#117232)
* Fix zwave_js discovery logic for node device class

* simplify check
2024-05-11 17:41:03 +02:00
Erik Montnemery 3bea124d84 Sort asserts in config config_entries tests (#117244) 2024-05-11 17:38:07 +02:00
Erik Montnemery 813f97dedc Rename some MQTT tests (#117246) 2024-05-11 16:57:46 +02:00
Erik Montnemery 745c4aef30 Rename some rflink tests (#117247) 2024-05-11 14:18:41 +01:00
Erik Montnemery acc78b26f7 Rename some translation helper tests (#117248) 2024-05-11 14:17:53 +01:00
Erik Montnemery 6f50c60e60 Rename some runner tests (#117249) 2024-05-11 14:16:41 +01:00
Erik Montnemery 90a50c162d Use MockConfigEntry in unifi tests (#117238) 2024-05-11 11:11:53 +02:00
J. Nick Koston daef625985 Speed up init and finish flow (#117226)
Since every flow now has to check for single config entry, change
the check to see if a config entry exists first before calling
the _support_single_config_entry_only since _support_single_config_entry_only
has to load the integration which adds up quite a bit in test runs
2024-05-11 09:47:17 +02:00
Paul Donald c979597ec4 Prevent shutdown fault-log trace-back (#116735)
Closes issue #116710
2024-05-11 07:59:05 +02:00
G Johansson 70a1e627b6 Add device class to Command Line cover (#117183) 2024-05-11 06:22:30 +01:00
J. Nick Koston d7aa24fa50 Only load translations for an integration once per test session (#117118) 2024-05-11 12:00:02 +09:00
J. Nick Koston 9e107a02db Fix flakey advantage_air test (#117224) 2024-05-10 21:39:01 -05:00
Allen Porter f35b9c2b22 Bump pyrainbird to 6.0.1 (#117217)
* Bump pyrainbird to 6.0.0

* Bump to 6.0.1
2024-05-10 19:00:08 -07:00
jjlawren b180e14224 Bump SoCo to 0.30.4 (#117212) 2024-05-10 21:38:38 -04:00
J. Nick Koston 52cca26473 Use async_get_loaded_integration in config_entries (#117192) 2024-05-11 10:30:34 +09:00
Allen Porter 25c97a5eab Bump ical to 8.0.1 (#117219) 2024-05-10 21:25:16 -04:00
J. Nick Koston 3ad489d835 Fix flakey sonos test teardown (#117222)
https://github.com/home-assistant/core/actions/runs/9039805087/job/24843300480?pr=117214
2024-05-10 21:24:49 -04:00
J. Nick Koston 2e60e09ba2 Ensure config entry setup lock is held when removing a config entry (#117086) 2024-05-11 09:47:26 +09:00
J. Nick Koston c74c2f3652 Add state check to config entry setup to ensure it cannot be setup twice (#117193) 2024-05-11 07:09:28 +09:00
Jan Bouwhuis c21dac855a Fix File entry setup config parsing whole YAML config (#117206)
Fix File entry setup config parsingwhole YAML config
2024-05-10 22:05:40 +02:00
Marc-Olivier Arsenault db6e3f7cbf Add update_without_throttle to ecobee number (#116504)
add update_without_throttle
2024-05-10 21:54:28 +02:00
Paulus Schoutsen 9b6500582a 2024.5.3 (#117203) 2024-05-10 15:08:20 -04:00
Denis Shulyaka 8168aff253 Update SetPositionIntentHandler intent schema (#116794)
Update SetPositionIntentHandler

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-05-10 14:33:11 -04:00
Paulus Schoutsen e2da28fbdb Bump version to 2024.5.3 2024-05-10 18:14:24 +00:00
Robert Resch 2c8b3ac8bb Bump deebot-client to 7.2.0 (#117189) 2024-05-10 18:10:05 +00:00
Diogo Gomes f07c00a05b Bump pytrydan to 0.6.0 (#117162) 2024-05-10 18:10:04 +00:00
Jan Bouwhuis 56b38cd842 Fix typo in xiaomi_ble translation strings (#117144) 2024-05-10 18:10:03 +00:00
J. Nick Koston 1b519a4610 Handle tilt position being None in HKC (#117141) 2024-05-10 18:10:02 +00:00
mletenay 09490d9e0a Bump goodwe to 0.3.5 (#117115) 2024-05-10 18:10:02 +00:00
Jan Bouwhuis c0cd76b3bf Make the mqtt discovery update tasks eager and fix race (#117105)
* Fix mqtt discovery race for update rapidly followed on creation

* Revert unrelated renaming local var
2024-05-10 18:10:01 +00:00
MatthewFlamm b9ed2dab5f Fix nws blocking startup (#117094)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-10 18:10:00 +00:00
J. Nick Koston 11f86d9e0b Improve config entry has already been setup error message (#117091) 2024-05-10 18:10:00 +00:00
mletenay 82fab7df39 Goodwe Increase max value of export limit to 200% (#117090) 2024-05-10 18:09:59 +00:00
puddly d40689024a Add a missing addon_name placeholder to the SkyConnect config flow (#117089) 2024-05-10 18:09:58 +00:00
Arie Catsman 9e7e839f03 Bump pyenphase to 1.20.3 (#117061) 2024-05-10 18:09:57 +00:00
Chris Talkington 08ba5304fe Bump rokuecp to 0.19.3 (#117059) 2024-05-10 18:09:57 +00:00
Jan Bouwhuis f34a0dc5ce Log an exception mqtt client call back throws (#117028)
* Log an exception mqtt client call back throws

* Supress exceptions and add test
2024-05-10 18:09:56 +00:00
J. Nick Koston 1a13e1d024 Simplify MQTT subscribe debouncer execution (#117006) 2024-05-10 18:09:55 +00:00
Marc Mueller bee518dc78 Update jinja2 to 3.1.4 (#116986) 2024-05-10 18:09:54 +00:00
Matrix fdc59547e0 Bump Yolink api to 0.4.4 (#116967) 2024-05-10 18:09:54 +00:00
Mr. Bubbles 57861dc091 Update strings for Bring notification service (#116181)
update translations
2024-05-10 18:09:53 +00:00
Pete Sage 624baebbaa Fix Sonos select_source timeout error (#115640) 2024-05-10 18:09:52 +00:00
Diogo Gomes 8953616d11 Bump pytrydan to 0.6.0 (#117162) 2024-05-10 19:59:28 +02:00
Denis Shulyaka f2460a6975 Update media_player intent schema (#116793)
Update media_player/intent.py
2024-05-10 11:27:04 -04:00
Jan Bouwhuis 96ccf7f2da Log some mqtt of the discovery logging at debug level (#117185) 2024-05-10 14:49:27 +02:00
Marc Mueller 9f321642b2 Import TypedDict from typing (#117161) 2024-05-10 14:18:13 +02:00
Robert Resch 22b83657f9 Bump deebot-client to 7.2.0 (#117189) 2024-05-10 13:33:18 +02:00
Markus ed4c3196ab Add ESPhome discovery via MQTT (#116499)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-10 13:32:42 +02:00
Brett Adams 62d70b1b10 Add energy site coordinator to Teslemetry (#117184)
* Add energy site coordinator

* Add missing string

* Add another missing string

* Aprettier
2024-05-10 12:38:20 +02:00
Jan Bouwhuis 55c4ba12f6 Migrate file integration to config entry (#116861)
* File integration entry setup

* Import to entry and tests

* Add config flow

* Exception handling and tests

* Add config flow tests

* Add issue for micration and deprecation

* Check whole entry data for uniqueness

* Revert changes change new notify entity

* Follow up on code review

* Keep name service option

* Also keep sensor name

* Make name unique

* Follow up comment

* No default timestamp needed

* Remove default name as it is already set

* Use links
2024-05-10 10:54:36 +02:00
Brett Adams 1a4e416bf4 Refactor Teslemetry integration (#112480)
* Refactor Teslemetry

* Add abstractmethod

* Remove unused timestamp const

* Ruff

* Fix

* Update snapshots

* ruff

* Ruff

* ruff

* Lint

* Fix tests

* Fix tests and diag

* Refix snapshot

* Ruff

* Fix

* Fix bad merge

* has as property

* Remove _handle_coordinator_update

* Test and error changes
2024-05-10 10:52:33 +02:00
Bertrand Roussel 11f5b48724 Add standard deviation calculation to group (#112076)
* Add standard deviation calculation to group

* Add missing bits

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-05-10 10:16:09 +02:00
RJPoelstra 8c54587d7e Improve base entity state in Vogel's MotionMount integration (#109043)
* Update device info when name changes

* Entities now report themselves as being unavailable when the MotionMount is disconnected

* Don't update device_info when name changes

* Use `device_entry` property to update device name

* Assert device is available

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

* Add missing import

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-10 09:58:16 +02:00
tizianodeg d4fbaef4f6 Raise ServiceValidationError in Nibe climate services (#117171)
Fix ClimateService to rise ServiceValidationError for stack free logs
2024-05-10 09:22:20 +02:00
J. Nick Koston 4138c7a0ef Handle tilt position being None in HKC (#117141) 2024-05-10 00:47:13 -05:00
Sid e4a3cab801 Bump ruff to 0.4.4 (#117154) 2024-05-09 22:13:11 +02:00
Thomas55555 3fa2db84f0 Catch auth exception in husqvarna automower (#115365)
* Catch AuthException in Husqvarna Automower

* don't use getattr

* raise ConfigEntryAuthFailed
2024-05-09 16:56:26 +02:00
Jan Bouwhuis 82e12052e4 Fix typo in xiaomi_ble translation strings (#117144) 2024-05-09 16:31:36 +02:00
J. Nick Koston 333d5a9251 Speed up test teardown when no config entries are loaded (#117095)
Avoid the gather call when there are no loaded config entries
2024-05-09 10:14:07 -04:00
Kevin Worrel c1f0ebee2c Add screenlogic service tests (#116356) 2024-05-09 07:19:58 -05:00
Joost Lekkerkerker b30a02dee6 Add base entity for Airgradient (#117135) 2024-05-09 11:12:47 +02:00
Joost Lekkerkerker 6485973d9b Add airgradient integration (#114113) 2024-05-09 10:54:29 +02:00
dependabot[bot] 32061d4eb1 Bump github/codeql-action from 3.25.3 to 3.25.4 (#117127) 2024-05-09 09:28:24 +02:00
J. Nick Koston 19c26b79af Move available property in BasePassiveBluetoothCoordinator to PassiveBluetoothDataUpdateCoordinator (#117056) 2024-05-08 17:45:57 -05:00
Marc Mueller 04c0b7d3df Use HassKey for importlib helper (#117116) 2024-05-08 17:42:28 -05:00
Luke Lashley a77add1b77 Add better testing to vacuum platform (#112523)
* Add better testing to vacuum platform

* remove state strings

* some of the MR comments

* move MockVacuum

* remove manifest extra

* fix linting

* fix other linting

* Fix create entity calls

* Format

* remove create_entity

* change to match notify

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-05-09 00:33:23 +02:00
mletenay f9413fcc9c Bump goodwe to 0.3.5 (#117115) 2024-05-09 00:17:20 +02:00
Luke Lashley 412e9bb072 Add test data for Zeo and Dyad devices to Roborock (#117054) 2024-05-09 00:16:48 +02:00
mletenay b60c90e5ee Goodwe Increase max value of export limit to 200% (#117090) 2024-05-09 00:08:08 +02:00
Michael 12759b50cc Store runtime data inside the config entry in Tuya (#116822) 2024-05-09 00:04:26 +02:00
J. Nick Koston 89049bc022 Fix config entry _async_process_on_unload being called for forwarded platforms (#117084) 2024-05-08 23:59:37 +02:00
puddly ac9b8cce37 Add a missing addon_name placeholder to the SkyConnect config flow (#117089) 2024-05-08 23:57:50 +02:00
Sid fe9e5e4382 Ignore Ruff SIM103 (#115732)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-08 23:56:59 +02:00
Sid ac54cdcdb4 Enable Ruff RUF010 (#115371)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-08 23:54:49 +02:00
Jan Bouwhuis 589104f63d Export MQTT subscription helpers at integration level (#116150) 2024-05-08 23:46:50 +02:00
Luke Lashley 6da432a5c3 Bump python-roborock to 2.1.1 (#117078) 2024-05-08 23:46:24 +02:00
J. Nick Koston 00150881a5 Migrate elkm1 to use config entry runtime_data (#117077) 2024-05-08 23:44:39 +02:00
J. Nick Koston 8464c95fb4 Migrate yalexs_ble to use config entry runtime_data (#117082) 2024-05-08 23:43:25 +02:00
J. Nick Koston 6eeeafa8b8 Speed up tests by making mock_get_source_ip session scoped (#117096) 2024-05-08 23:42:35 +02:00
J. Nick Koston 03dcede211 Avoid creating inner tasks to load storage (#117099) 2024-05-08 23:41:20 +02:00
J. Nick Koston ead69af27c Avoid creating a task to clear the hass instance at test teardown (#117103) 2024-05-08 23:39:45 +02:00
J. Nick Koston 8c37b3afd7 Migrate govee_ble to use config entry runtime_data (#117076) 2024-05-08 23:22:40 +02:00
J. Nick Koston 1d833d3795 Avoid storing Bluetooth scanner in hass.data (#117074) 2024-05-08 16:08:12 -05:00
Jan Bouwhuis 840d8cb39f Add open and opening state support to MQTT lock (#117110) 2024-05-08 22:52:57 +02:00
J. Nick Koston 159f0fcce7 Migrate baf to use config entry runtime_data (#117081) 2024-05-08 22:37:14 +02:00
Jan Bouwhuis 20b29242f1 Make the mqtt discovery update tasks eager and fix race (#117105)
* Fix mqtt discovery race for update rapidly followed on creation

* Revert unrelated renaming local var
2024-05-08 21:42:11 +02:00
MatthewFlamm 6b3ffad77a Fix nws blocking startup (#117094)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-08 14:16:20 -05:00
J. Nick Koston 84a91a86a9 Improve config entry has already been setup error message (#117091) 2024-05-08 14:16:08 -05:00
tizianodeg 92b246fda9 Fix nibe_heatpump climate for models without cooling support (#114599)
* fix nibe_heatpump climate for models without cooling support

* add test for set temperature with no cooling support

* fixup use self._coil_setpoint_cool None

* fixup add new test to explicitly test unsupported cooling
2024-05-08 21:02:43 +02:00
G Johansson 7862596ef3 Add open state to LockEntity (#111968)
* Add `open` state to LockEntity

* Add tests

* Fixes

* Fix tests

* strings and icons

* Adjust demo open lock

* Fix lock and tests

* fix import

* Fix strings

* mute ruff

* Change sequence

* Sequence2

* Group on states

* Fix ruff

* Fix tests

* Add more test cases

* Sorting
2024-05-08 20:42:22 +02:00
Peter Antonvich 189c07d502 Correct state class of ecowitt hourly rain rate sensors (#110475)
* Update sensor.py for Hourly Rain Rates mm and in

hourly_rain_rate from integration ecowitt has state class total_increasing, but its state is not strictly increasing

* Update sensor.py format
2024-05-08 17:19:16 +02:00
Troon cc99a9b62a Add an add template filter (#109884)
* Addition of add filter

This change adds an `add` filter, the addition equivalent of the existing `multiply` filter.

* Test for add filter

* Update test_template.py

* Update tests/helpers/test_template.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-08 15:39:36 +02:00
Chris Talkington 1e35dd9f6f Bump rokuecp to 0.19.3 (#117059) 2024-05-08 08:38:44 -05:00
Luke Lashley 22bc11f397 Convert Anova to cloud push (#109508)
* current state

* finish refactor

* Apply suggestions from code review

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

* address MR comments

* Change to sensor setup to be listener based.

* remove assert for websocket handler

* added assert for log

* remove mixin

* fix linting

* fix merge change

* Add clarifying comment

* Apply suggestions from code review

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

* Address MR comments

* bump version and fix typing check

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-08 14:53:44 +02:00
J. Nick Koston de62e205dd Bump bleak to 0.22.0 (#116955) 2024-05-08 07:35:33 -05:00
Joost Lekkerkerker b54077026a Bump pylutron to 0.2.13 (#117062)
* Bump pylutron to 0.2.13

* Bump pylutron to 0.2.13
2024-05-08 14:32:23 +02:00
Michael d9ad0c101b Apply late review on Synology DSM (#117060)
keep CONF_TIMEOUT in options to allow downgrades
2024-05-08 14:30:58 +02:00
Simone Chemelli ad05a542ae Bump aiovodafone to 0.6.0 (#117064)
bump aiovodafone to 0.6.0
2024-05-08 14:26:43 +02:00
Arie Catsman c437d3f858 Bump pyenphase to 1.20.3 (#117061) 2024-05-08 07:02:49 -05:00
Erik Montnemery fd8c36d93b User eager task in github config flow (#117066) 2024-05-08 11:25:57 +02:00
Sid dc1aba0a05 Use runtime_data in webmin (#117058) 2024-05-08 09:04:20 +02:00
Maciej Bieniek 40be1424b5 Store Tractive data in config_entry.runtime_data (#116781)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-05-08 09:03:26 +02:00
Maciej Bieniek e16a88a9c9 Set the quality scale to platinum for IMGW-PIB integration (#116912)
* Increase test coverage

* Set the quality scale to platinum

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-08 08:51:25 +02:00
Michael 2891a63281 Store runtime data inside the config entry in IPP (#116765)
* store runtime data inside the config entry

* improve tests
2024-05-08 01:16:06 -05:00
Kevin Stillhammer 3844e2d533 Add service waze_travel_time.get_travel_times (#108170)
* Add service waze_travel_time.get_travel_times

* Align strings with home-assistant.io

* Remove not needed service args

* Use SelectSelectorConfig.sort

* Move vehicle_type mangling to async_get_travel_times
2024-05-08 07:56:17 +02:00
Michael Hansen 7923471b94 Intent target matching and media player enhancements (#115445)
* Working

* Tests are passing

* Fix climate

* Requested changes from review
2024-05-07 22:01:03 -04:00
J. Nick Koston 8401b05d40 Move thread safety check in category_registry sooner (#117050) 2024-05-07 19:55:43 -05:00
Lennard Beers 3b51bf266a Update eq3btsmart library dependency to 1.1.8 (#117051)
* Update eq3btsmart dependency to 1.1.8

* Update test dependency and manifest for eq3btsmart to 1.1.8
2024-05-07 19:49:00 -05:00
J. Nick Koston 0b2c29fdb9 Move thread safety in floor_registry sooner (#117044) 2024-05-07 18:48:38 -05:00
Joost Lekkerkerker 27d45f04c4 Fix capitalization in Monzo strings (#117035)
* Fix capitalization in Monzo strings

* Fix capitalization in Monzo strings

* Fix capitalization in Monzo strings
2024-05-07 22:33:10 +02:00
J. Nick Koston fc3c384e0a Move thread safety in label_registry sooner (#117026) 2024-05-07 15:15:30 -05:00
Michael 9557ea902e Store runtime data inside the config entry in Apple TV (#117032)
store runtime data inside the config entry
2024-05-07 22:13:53 +02:00
Michael 7f7d025b44 Store runtime data inside the config entry in Upnp (#117030)
store runtime data inside the config entry
2024-05-07 22:05:04 +02:00
Maciej Bieniek 35d44ec90a Store Airly runtime data in config entry (#117031)
* Store runtime data in config entry

* Fix tests

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-07 22:04:37 +02:00
John Hollowell 640cd519dd Add Venstar HVAC stage sensor (#107510)
* Add sensor for which stage of heating/cooling is active

for example, a 2-stage heating system would initially use the first stage for heat and if it was unable to fulfill the demand, the thermostat would call for the second stage heat in addition to the first stage heat already in use.

* Add translation keys for english

* Apply suggestions from code review

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

* Add translation of entity name

* Update sensor name to correctly be translatable

---------

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
2024-05-07 21:43:01 +02:00
J. Nick Koston 649dd55da9 Simplify MQTT subscribe debouncer execution (#117006) 2024-05-07 14:41:31 -05:00
G Johansson 38a3c3a823 Fix double executor in Filesize (#117029) 2024-05-07 21:34:07 +02:00
Álvaro Fernández Rojas 3774d8ed54 Add climate temp ranges support for Airzone Cloud (#115025)
airzone_cloud: climate: add temperature ranges support

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-05-07 21:29:45 +02:00
Thomas Kistler 14fcf7be8e Add flow and rain sensor support to Hydrawise (#116303)
* Add flow and rain sensor support to Hydrawise

* Address comments

* Cleanup

* Review comments

* Address review comments

* Added tests

* Add icon translations

* Add snapshot tests

* Clean up binary sensor

* Mypy cleanup

* Another mypy error

* Reviewer feedback

* Clear next_cycle sensor when the value is unknown

* Reviewer feedback

* Reviewer feedback

* Remove assert

* Restructure switches, sensors, and binary sensors

* Reviewer feedback

* Reviewer feedback
2024-05-07 21:26:10 +02:00
Jan Bouwhuis a3248ccff9 Log an exception mqtt client call back throws (#117028)
* Log an exception mqtt client call back throws

* Supress exceptions and add test
2024-05-07 21:19:46 +02:00
Marc Mueller db138f3727 Add MediaSourceProtocol to improve platform typing (#117001) 2024-05-07 21:18:11 +02:00
Mr. Bubbles e5b91aa522 Update strings for Bring notification service (#116181)
update translations
2024-05-07 21:10:04 +02:00
J. Nick Koston 26cc1cd3db Use singleton helper for registries (#117027) 2024-05-07 21:04:01 +02:00
Jake Martin 6e024d54f1 Add Monzo integration (#101731)
* Initial monzo implementation

* Tests and fixes

* Extracted api to pypi package

* Add app confirmation step

* Corrected data path for accounts

* Removed useless check

* Improved tests

* Exclude partially tested files from coverage check

* Use has_entity_name naming

* Bumped monzopy to 1.0.10

* Remove commented out code

* Remove reauth from initial PR

* Remove useless code

* Correct comment

* Remove reauth tests

* Remove device triggers from intial PR

* Set attr outside constructor

* Remove f-strings where no longer needed in entity.py

* Rename field to make clearer it's a Callable

* Correct native_unit_of_measurement

* Remove pot transfer service from intial PR

* Remove reauth string

* Remove empty fields in manifest.json

* Freeze SensorEntityDescription and remove Mixin

Also use list comprehensions for producing sensor lists

* Use consts in application_credentials.py

* Revert "Remove useless code"

Apparently this wasn't useless

This reverts commit c6b7109e47202f866c766ea4c16ce3eb0588795b.

* Ruff and pylint style fixes

* Bumped monzopy to 1.1.0

Adds support for joint/business/etc account pots

* Update test snapshot

* Rename AsyncConfigEntryAuth

* Use dataclasses instead of dictionaries

* Move OAuth constants to application_credentials.py

* Remove remaining constants and dependencies for services from this PR

* Remove empty manifest entry

* Fix comment

* Set device entry_type to service

* ACC_SENSORS -> ACCOUNT_SENSORS

* Make value_fn of sensors return StateType

* Rename OAuthMonzoAPI again

* Fix tests

* Patch API instead of integration for unavailable test

* Move pot constant to sensor.py

* Improve type safety in async_get_monzo_api_data()

* Update async_oauth_create_entry() docstring

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-05-07 20:38:58 +02:00
G Johansson 5bef2d5d25 Use entry runtime data on Filesize (#116962)
* Use entry runtime data on Filesize

* Fix comment

* ignore

* Another way

* Refactor
2024-05-07 20:07:32 +02:00
Michal Čihař 789aadcc4c Reduce update interval in Ondilo Ico (#116989)
Ondilo: reduce update interval

The API seems to have sticter rate-limiting and frequent requests fail
with HTTP 400.

Fixes #116593
2024-05-07 19:55:03 +02:00
Erwin Douna 968af28c54 Add Tado reconfigure step (#115970)
Co-authored-by: Matthias Alphart <farmio@alphart.net>
2024-05-07 19:50:07 +02:00
Marc Mueller f9e2ab2e81 Improve issue_registry event typing (#117023) 2024-05-07 19:49:02 +02:00
G Johansson b9d26c097f Holiday update calendar once per day (#116421) 2024-05-07 18:52:51 +02:00
Marc Mueller 018e7731ae Add SignificantChangeProtocol to improve platform typing (#117002) 2024-05-07 18:40:57 +02:00
Jan Bouwhuis 7148c849d6 Only log loop client subscription log if log level is DEBUG (#117008)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-07 18:38:59 +02:00
Marc Mueller 15618a8a97 Use HassKey for loader (#116999) 2024-05-07 18:37:01 +02:00
Marc Mueller b21632ad05 Improve energy platform typing (#117003) 2024-05-07 11:28:42 -05:00
Marc Mueller 2db64c7e6d Use HassKey for helpers (1) (#117012) 2024-05-07 11:25:16 -05:00
Marc Mueller 8f614fb06d Use HassKey for helpers (2) (#117013) 2024-05-07 11:24:13 -05:00
Marc Mueller c50a340cbc Use HassKey for setup and bootstrap (#116998) 2024-05-07 11:18:20 -05:00
Marc Mueller fd5885ec83 Use HassKey for registries (#117000) 2024-05-07 18:03:14 +02:00
G-Two 5ad52f122d Return raw API data for subaru device diagnostics (#114119) 2024-05-07 17:32:17 +02:00
Marc Mueller 95a27796f2 Update imports from alarm_control_panel (#117014) 2024-05-07 17:21:29 +02:00
Joost Lekkerkerker 1559562c26 Clean up Ondilo config flow (#116931) 2024-05-07 14:15:56 +02:00
Maciej Bieniek 16d86e5d4c Store Philips TV runtime data in config entry (#116952)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-07 14:10:44 +02:00
Sid 2cc916db6d Replace pylint broad-except with Ruff BLE001 (#116250) 2024-05-07 14:00:27 +02:00
Marc Mueller b35fbd8d20 Update tqdm to 4.66.4 (#116984) 2024-05-07 13:56:36 +02:00
Marc Mueller f9755f5c4c Update jinja2 to 3.1.4 (#116986) 2024-05-07 13:56:11 +02:00
Thomas55555 9e5bb92851 Fix flakey test in Husqvarna Automower (#116981) 2024-05-07 12:08:52 +02:00
pemontto 1c414966fe Add support for round-robin DNS (#115218)
* Add support for RR DNS

* 🧪 Update tests for DNS IP round-robin

* 🤖 Configure DNS IP round-robin automatically

* 🐛 Sort IPv6 addresses correctly

* Limit returned IPs and cleanup test class

* 🔟 Change max DNS results to 10

* Rename IPs to ip_addresses
2024-05-07 11:49:13 +02:00
Marc Mueller 3d700e2b71 Add HassDict implementation (#103844) 2024-05-07 10:53:13 +02:00
J. Nick Koston fd52588565 Bump SQLAlchemy to 2.0.30 (#116964) 2024-05-07 10:42:13 +02:00
Pete Sage 731fe17224 Fix Sonos select_source timeout error (#115640) 2024-05-07 10:08:12 +02:00
SLaks b5cd0e629d Upgrade to hdate 0.10.8 (#116202)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-07 09:28:54 +02:00
Matrix 6ac44f3f14 Bump Yolink api to 0.4.4 (#116967) 2024-05-07 07:51:10 +02:00
ollo69 5db8082f91 Review AndroidTV decorator exception management (#114133) 2024-05-06 18:00:12 -05:00
Thomas55555 8e66e5bb11 Bump aioautomower to 2024.5.0 (#116942) 2024-05-06 17:59:34 -05:00
Abílio Costa 486b8ca7c4 Make Idasen Desk react to bluetooth changes (#115939) 2024-05-06 17:52:54 -05:00
G Johansson 4037f52d62 Bump python-holidays to 0.48 (#116951)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-06 23:36:47 +02:00
Jan Bouwhuis eaf277844f Correct typo in MQTT translations (#116956) 2024-05-06 23:21:34 +02:00
J. Nick Koston dc50095d06 Bump orjson to 3.10.3 (#116945) 2024-05-06 22:45:23 +02:00
Jan Bouwhuis 821c7d813d Correct formatting mqtt MQTT_DISCOVERY_DONE and MQTT_DISCOVERY_UPDATED message (#116947) 2024-05-06 22:32:46 +02:00
Guido Schmitz e65f2f1984 Use ConfigEntry runtime_data in devolo Home Network (#116694) 2024-05-06 22:31:39 +02:00
G Johansson b3008b074e Remove ambiclimate integration (#116410) 2024-05-06 22:15:04 +02:00
Joakim Plate 2b6dd59cfc Allow reconfiguration of integration sensor (#116740)
* Allow reconfiguration of integration sensor

* Adjust allowed options to not change unit
2024-05-06 21:03:46 +02:00
G Johansson ebd1efa53b Handle exceptions in panic button for Yale Smart Alarm (#116515)
* Handle exceptions in panic button for Yale Smart Alarm

* Change key
2024-05-06 20:51:37 +02:00
Joost Lekkerkerker ffa8265365 Snapshot Ondilo Ico devices (#116932)
Co-authored-by: JeromeHXP <dartdoka@mainguet.fr>
2024-05-06 20:34:29 +02:00
Sid b456d97e65 Replace pylint protected-access with Ruff SLF001 (#115735) 2024-05-06 20:33:26 +02:00
mtielen 460c05dc43 Revert polling interval back to orginal value in Wolflink (#116758) 2024-05-06 20:09:41 +02:00
Maciej Bieniek 57283d16d9 Store AccuWeather runtime data in config entry (#116946)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-06 20:06:47 +02:00
Joakim Plate 1ef09048e6 Allow the rounding to be optional in integral (#116884) 2024-05-06 20:06:26 +02:00
Franck Nijhof a8f3b699b3 2024.5.2 (#116937) 2024-05-06 19:49:06 +02:00
Maciej Bieniek 09be56964d AccuWeather tests refactoring (#116923)
* Add mock_accuweather_client

* Improve tests

* Fix exceptions

* Remove unneeded update_listener()

* Fix arguments for fixtures

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-06 19:41:48 +02:00
Franck Nijhof 72d6b4d1c9 Use ConfigEntry runtime_data in TwenteMilieu (#116642) 2024-05-06 19:21:34 +02:00
Marc Mueller f5c54bcc0d Use runtime_data for wled (#116615) 2024-05-06 19:19:47 +02:00
Joost Lekkerkerker f92fb0f492 Remove deprecated WAQI state attributes (#116595) 2024-05-06 19:12:45 +02:00
Marc Mueller 8c053a351c Use runtime_data for elgato (#116614) 2024-05-06 19:12:01 +02:00
Joost Lekkerkerker 95405ba6bb Add dataclass to Ondilo Ico (#116928) 2024-05-06 19:10:49 +02:00
Marc Mueller 52b8c189d7 Fix wiz test warning (#116693) 2024-05-06 19:10:06 +02:00
Joost Lekkerkerker 485f3b0f0a Set pH device class in Ondilo Ico (#116930) 2024-05-06 19:09:02 +02:00
J. Nick Koston f3b08e89a5 Small speed ups to async_get_integration (#116900) 2024-05-06 19:08:33 +02:00
Bram Kragten eb6ccea8aa Update frontend to 20240501.1 (#116939) 2024-05-06 18:43:20 +02:00
Bram Kragten 71d65e38b5 Update frontend to 20240501.1 (#116939) 2024-05-06 18:40:01 +02:00
Michael ead9c4af38 Store runtime data inside the config entry in Radio Browser (#116821) 2024-05-06 17:54:44 +02:00
Franck Nijhof 6b93f8d997 Bump version to 2024.5.2 2024-05-06 17:19:04 +02:00
Jan Bouwhuis ab113570c3 Fix initial mqtt subcribe cooldown timeout (#116904) 2024-05-06 17:18:26 +02:00
Robert Hillis ed6788ca3f fix radarr coordinator updates (#116874) 2024-05-06 17:18:23 +02:00
J. Nick Koston 9533f5b490 Fix non-thread-safe operations in amcrest (#116859)
* Fix non-thread-safe operations in amcrest

fixes #116850

* fix locking

* fix locking

* fix locking
2024-05-06 17:18:19 +02:00
mletenay 7c9653e397 Bump goodwe to 0.3.4 (#116849) 2024-05-06 17:18:16 +02:00
tronikos 73eabe821c Bump androidtvremote2 to v0.0.15 (#116844) 2024-05-06 17:18:13 +02:00
Michael 834c2e2a09 Avoid duplicate data fetch during Synologs DSM setup (#116839)
don't do first refresh of central coordinator, is already done by api.setup before
2024-05-06 17:18:10 +02:00
Michael 421f74cd7f Increase default timeout to 30 seconds in Synology DSM (#116836)
increase default timeout to 30s and use it consequently
2024-05-06 17:18:06 +02:00
J. Nick Koston c049888b00 Fix non-thread-safe state write in lutron event (#116829)
fixes #116746
2024-05-06 17:18:01 +02:00
Paulus Schoutsen ad5e0949b6 Hide conversation agents that are exposed as agent entities (#116813) 2024-05-06 16:58:30 +02:00
J. Nick Koston ae28c604e5 Fix airthings-ble data drop outs when Bluetooth connection is flakey (#116805)
* Fix airthings-ble data drop outs when Bluetooth adapter is flakey

fixes #116770

* add missing file

* update
2024-05-06 16:57:55 +02:00
Jan Bouwhuis dbe303d95e Fix IMAP config entry setup (#116797) 2024-05-06 16:51:29 +02:00
J. Nick Koston ad7688197f Ensure all synology_dsm coordinators handle expired sessions (#116796)
* Ensure all synology_dsm coordinators handle expired sessions

* Ensure all synology_dsm coordinators handle expired sessions

* Ensure all synology_dsm coordinators handle expired sessions

* handle cancellation

* add a debug log message

---------

Co-authored-by: mib1185 <mail@mib85.de>
2024-05-06 16:51:26 +02:00
Patrick Decat 79460cb017 fix UnboundLocalError on modified_statistic_ids in compile_statistics (#116795)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-06 16:51:23 +02:00
J. Nick Koston 18bcc61427 Bump bluetooth-adapters to 0.19.2 (#116785) 2024-05-06 16:51:19 +02:00
J. Nick Koston 57bbd10517 Refactor statistics to avoid creating tasks (#116743) 2024-05-06 16:51:16 +02:00
Joost Lekkerkerker f068b8cdb8 Remove suggested UoM from Opower (#116728) 2024-05-06 16:51:12 +02:00
Joost Lekkerkerker bbb94d9e17 Fix Bosch-SHC switch state (#116721) 2024-05-06 16:51:09 +02:00
J. Nick Koston 6d537e2a66 Bump aiohttp-isal to 0.3.1 (#116720) 2024-05-06 16:51:06 +02:00
J. Nick Koston 17c5aa2871 Improve logging of _TrackPointUTCTime objects (#116711) 2024-05-06 16:51:03 +02:00
Erik Montnemery f4830216a8 Add workaround for data entry flow show progress (#116704)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-05-06 16:50:52 +02:00
Erik Montnemery 1cea22b8ba Fix search/replace mistake in recorder tests (#116933) 2024-05-06 09:03:21 -05:00
Erik Montnemery 2e945aed54 Convert recorder auto_repairs tests to use async API (#116927) 2024-05-06 08:25:48 -05:00
Erik Montnemery 5150557372 Convert recorder util tests to use async API (#116926) 2024-05-06 08:25:41 -05:00
epenet 9f9493c504 Simplify config entry check in SamsungTV (#116907)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-06 08:12:04 -05:00
Erik Montnemery 9807b2ec11 Convert recorder statistics tests to use async API (#116925) 2024-05-06 08:10:58 -05:00
Erik Montnemery d01d161fe2 Convert recorder history tests to use async API (#116909) 2024-05-06 08:10:45 -05:00
Joost Lekkerkerker 9517800da6 Add snapshot tests to Ondilo Ico (#116929) 2024-05-06 15:08:15 +02:00
Maciej Bieniek 74df693079 Add new sensors to IMGW-PIB integration (#116631)
Add flood warning/alarm level sensors

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-06 15:03:25 +02:00
Mr. Bubbles d81fad1ef1 Reduce API calls to fetch Habitica tasks (#116897) 2024-05-06 08:02:54 -05:00
ollo69 7e8fab65ff Store runtime data inside the config entry in AsusWrt (#116889) 2024-05-06 08:00:15 -05:00
Erik Montnemery f5fe80bc90 Convert recorder init tests to use async API (#116918) 2024-05-06 07:59:39 -05:00
JeromeHXP c9930d912e Handle errors retrieving Ondilo data and bump ondilo to 0.5.0 (#115926)
* Bump ondilo to 0.5.0 and handle errors retrieving data

* Bump ondilo to 0.5.0 and handle errors retrieving data

* Updated ruff recommendation

* Refactor

* Refactor

* Added exception log and updated call to update data

* Updated test cases to test through state machine

* Updated test cases

* Updated test cases after comments

* REnamed file

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-05-06 14:41:28 +02:00
Jan Bouwhuis 4b8b9ce92d Fix initial mqtt subcribe cooldown timeout (#116904) 2024-05-06 14:32:37 +02:00
tronikos 5c4afe55fd Avoid exceptions when Gemini responses are blocked (#116847)
* Bump google-generativeai to v0.5.2

* Avoid exceptions when Gemini responses are blocked

* pytest --snapshot-update

* set error response

* add test

* ruff
2024-05-06 18:22:22 +10:00
Paulus Schoutsen 4fce99edb5 Only call conversation should_expose once (#116891)
Only call should expose once
2024-05-05 21:37:10 -04:00
J. Nick Koston 5d5f311898 Move thread safety check in issue_registry sooner (#116899) 2024-05-05 20:32:55 -05:00
tronikos 2a4686e1b7 Bump google-generativeai to v0.5.2 (#116845) 2024-05-05 18:59:29 -05:00
Mr. Bubbles db4eeffeed Bump bring-api to 0.7.1 (#115532)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-05 18:59:21 -05:00
Mr. Bubbles afe55e2918 Bump Habitipy to 0.3.1 (#116378)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-06 01:44:54 +02:00
ollo69 e6fda4b357 Store runtime data inside the config entry in AndroidTV (#116895) 2024-05-05 18:15:33 -05:00
mletenay 9684867a57 Bump goodwe to 0.3.4 (#116849) 2024-05-05 18:05:21 -05:00
elmurato 2e52a7c4c0 Abort Minecraft Server config flow if device is already configured (#116852)
* Abort config flow if device is already configured

* Fix review findings

* Rename newly added test case
2024-05-06 00:21:50 +02:00
J. Nick Koston 673bbc1372 Switch out aiohttp-isal for aiohttp-fast-zlib to make isal optional (#116814)
* Switch out aiohttp-isal for aiohttp-fast-zlib to make isal optional

aiohttp-isal does not work on core installs where the system has 32bit userland and a 64bit kernel because we have no way to detect this configuration or handle it.

fixes #116681

* Update homeassistant/components/isal/manifest.json

* Update homeassistant/components/isal/manifest.json

* hassfest

* isal

* fixes

* Apply suggestions from code review

* make sure isal is updated before http

* fix tests

* late import
2024-05-05 17:06:12 -04:00
J. Nick Koston 092a2de340 Fix non-thread-safe operations in amcrest (#116859)
* Fix non-thread-safe operations in amcrest

fixes #116850

* fix locking

* fix locking

* fix locking
2024-05-05 16:58:38 -04:00
J. Nick Koston a57f4b8f42 Index auth token ids to avoid linear search (#116583)
* Index auth token ids to avoid linear search

* async_remove_refresh_token

* coverage
2024-05-05 16:47:26 -04:00
J. Nick Koston c8e6292cb7 Refactor statistics to avoid creating tasks (#116743) 2024-05-05 16:39:45 -04:00
J. Nick Koston d970c19342 Fix airthings-ble data drop outs when Bluetooth connection is flakey (#116805)
* Fix airthings-ble data drop outs when Bluetooth adapter is flakey

fixes #116770

* add missing file

* update
2024-05-05 16:37:10 -04:00
J. Nick Koston 2964471e19 Keep august offline key up to date when it changes (#116857)
We only did discovery for the key at setup time. If it
changed, a reloaded of the integration was needed to
update the key. We now update it every time we update
the lock detail.
2024-05-05 16:33:55 -04:00
J. Nick Koston 91fa8b50cc Turn on thread safety checks in async_dispatcher_send (#116867)
* Turn on thread safety checks in async_dispatcher_send

We keep seeing issues where async_dispatcher_send is called from
a thread which means we call the callback function on the other
side in the thread as well which usually leads to a crash

* Turn on thread safety checks in async_dispatcher_send

We keep seeing issues where async_dispatcher_send is called from
a thread which means we call the callback function on the other
side in the thread as well which usually leads to a crash

* adjust
2024-05-05 16:29:43 -04:00
J. Nick Koston b41b1bb998 Refactor entity_platform polling to avoid double time fetch (#116877)
* Refactor entity_platform polling to avoid double time fetch

Replace async_track_time_interval with loop.call_later
to avoid the useless time fetch every time the listener
fired since we always throw it away

* fix test
2024-05-05 16:28:01 -04:00
J. Nick Koston 76cd498c44 Replace utcnow().timestamp() with time.time() in auth_store (#116879)
utcnow().timestamp() is a slower way to get time.time()
2024-05-05 16:25:27 -04:00
J. Nick Koston 6339c63176 Improve recorder and worker thread matching in RecorderPool (#116886)
* Improve recorder and worker thread matching in RecorderPool

Previously we would look at the name of the threads. This
was a brittle if because other integrations may name their
thread Recorder or DbWorker. Instead we now use explict thread
ids which ensures there will never be a conflict

* fix

* fixes

* fixes
2024-05-05 16:25:10 -04:00
Robert Hillis ee031f4850 fix radarr coordinator updates (#116874) 2024-05-05 18:54:17 +02:00
Michael 203d110787 Remove timeout option and set timeout static to 30 seconds in Synology DSM (#116815)
* remove timeout option, set timeout static to 30 seconds

* be slightly faster :)
2024-05-05 18:51:35 +02:00
Mr. Bubbles b53081dc51 Add update coordinator for Habitica integration (#116427)
* Add DataUpdateCoordinator and exception handling for service

* remove unnecessary lines

* revert changes to service

* remove type check

* store coordinator in config_entry

* add exception translations

* update HabiticaData

* Update homeassistant/components/habitica/__init__.py

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

* Update homeassistant/components/habitica/sensor.py

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

* remove auth exception

* fixes

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-05 17:02:28 +02:00
tronikos ffe6b9b6f0 Bump androidtvremote2 to v0.0.15 (#116844) 2024-05-05 15:44:40 +02:00
Joost Lekkerkerker da5d975e22 Add Sensor descriptions for Bosch SHC (#116775)
* Add Sensor descriptions for Bosch SHC

* fix

* fix

* fix
2024-05-05 15:44:11 +02:00
J. Nick Koston cb9914becd Fix non-thread-safe state write in lutron event (#116829)
fixes #116746
2024-05-05 15:43:39 +02:00
Austin Mroczek 91f5e2c8d3 Bump tcc to 2024.5 (#116827)
bump tcc to 2024.5
2024-05-05 15:38:16 +02:00
Maciej Bieniek 3498cb3ced Increase test coverage for Total Connect (#116851)
Increase test coverage

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-05 15:37:24 +02:00
Michael b4ec1f5877 Avoid duplicate data fetch during Synologs DSM setup (#116839)
don't do first refresh of central coordinator, is already done by api.setup before
2024-05-05 15:09:26 +02:00
Michael 3d7d8fa28b Increase default timeout to 30 seconds in Synology DSM (#116836)
increase default timeout to 30s and use it consequently
2024-05-05 15:07:18 +02:00
Joost Lekkerkerker 486bb6d89f Use parametrize in drop connect sensor tests (#107078)
* Use parametrize in drop connect sensor tests

* Use parametrize in drop connect sensor tests

* Make common helper

* Assert the whole entity state

* fix

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Co-authored-by: jbouwh <jan@jbsoft.nl>
2024-05-05 14:10:34 +02:00
Jan Bouwhuis 9fd31f6c92 Correct stale docstring on mqtt config flow method (#116848) 2024-05-05 14:06:13 +02:00
Joost Lekkerkerker 7d5aa03bf0 Move Totalconnect coordinator to separate module (#116368)
* Move Totalconnect coordinator to separate module

* Move Totalconnect coordinator to separate module

* Move Totalconnect coordinator to separate module
2024-05-05 13:05:36 +02:00
Maciej Bieniek 7e11fec761 Migrate properties to instance variables in NAM coordinator (#116703)
* Migrate properties to instance variables

* Fix unique_id type

* Update homeassistant/components/nam/__init__.py

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

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-05 13:04:01 +02:00
J. Nick Koston b4bac7705e Ensure all synology_dsm coordinators handle expired sessions (#116796)
* Ensure all synology_dsm coordinators handle expired sessions

* Ensure all synology_dsm coordinators handle expired sessions

* Ensure all synology_dsm coordinators handle expired sessions

* handle cancellation

* add a debug log message

---------

Co-authored-by: mib1185 <mail@mib85.de>
2024-05-05 12:09:57 +02:00
Michael f5394dc3a3 Store runtime data inside the config entry in Android TV Remote (#116824) 2024-05-05 08:59:19 +02:00
Paulus Schoutsen 33e9a6bd58 Hide conversation agents that are exposed as agent entities (#116813) 2024-05-04 19:09:38 -05:00
Michael 59349d2859 Store runtime data inside the config entry in System Monitor (#116816)
* replace optional timeout by sane default

* SystemMonitorConfigEntry noz needed in repairs.py
2024-05-05 02:03:57 +02:00
Mr. Bubbles 95ddb734ed Store runtime data inside the config entry in Bring (#116820) 2024-05-05 01:57:00 +02:00
Michael e66581e3a2 Store runtime data inside the config entry in Certificate Expiry (#116819)
replace optional timeout by sane default
2024-05-05 01:33:24 +02:00
Michael ddf9d6c53a Store runtime data inside the config entry in Local ToDo (#116818)
store runtime data inside the config entry
2024-05-05 01:10:34 +02:00
J. Nick Koston 0380116ef6 Improve logging of _TrackPointUTCTime objects (#116711) 2024-05-04 17:35:44 -05:00
Michael 910c991a58 Store runtime data inside the config entry in Sun (#116808)
* store runtime data inside the config entry

* move to entry.async_on_unload()
2024-05-04 23:39:12 +02:00
Michael 90a3c2e357 Store runtime data inside the config entry in NUT (#116771)
* store runtime data inside the config entry

* remove unsued constants

* add test for InvalidDeviceAutomationConfig exception

* assert entry

* add more specific type hint
2024-05-04 23:08:01 +02:00
Michael 4a25e67234 Store runtime data inside the config entry in Pi-Hole (#116806) 2024-05-04 22:52:13 +02:00
Michael 55ffc82be1 Store runtime data inside the config entry in Speedtest.net (#116802) 2024-05-04 22:32:53 +02:00
Michael 65120e5789 Store runtime data inside the config entry in VLC telnet (#116803)
store runtime data inside the config entry
2024-05-04 21:52:53 +02:00
Michael 64b5881652 Store runtime data inside the config entry in OpenWeatherMap (#116788) 2024-05-04 21:19:50 +02:00
Jan Bouwhuis 8bc5a798ca Fix IMAP config entry setup (#116797) 2024-05-04 13:18:26 -05:00
Erik Montnemery 1e72e9e0b2 Add workaround for data entry flow show progress (#116704)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-05-04 13:17:21 -05:00
Patrick Decat ac12d2a463 fix UnboundLocalError on modified_statistic_ids in compile_statistics (#116795)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-04 13:16:58 -05:00
Michael f143ed9eeb Store runtime data inside the config entry in SamsungTV (#116787) 2024-05-04 19:12:31 +02:00
Michael ec46d4d644 Store runtime data inside the config entry in Nextcloud (#116790) 2024-05-04 19:03:25 +02:00
Michael 831282c3ba Store runtime data inside the config entry in Met.no (#116767) 2024-05-04 18:59:01 +02:00
Joost Lekkerkerker 985fd49909 Remove suggested UoM from Opower (#116728) 2024-05-04 10:29:42 -05:00
J. Nick Koston a2a8cf6361 Bump aiohttp-isal to 0.3.1 (#116720) 2024-05-04 10:29:00 -05:00
J. Nick Koston a444b832ed Bump bluetooth-adapters to 0.19.2 (#116785) 2024-05-04 10:26:14 -05:00
Maciej Bieniek 19eb51deeb Move Brother DataUpdateCoordinator to the coordinator module (#116772)
* Store data in config_entry.runtime_data

* Update homeassistant/components/brother/__init__.py

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

* Fix setdefault

* Do not include ignored and disabled

* Check loaded entries

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-04 16:29:08 +02:00
Maciej Bieniek 63484fdadd Store BraviaTV data in config_entry.runtime_data (#116778) 2024-05-04 15:50:33 +02:00
mkmer 2132b170f2 Update unique_id to string in Honeywell (#116726)
* Update unique_id to string

* Update homeassistant/components/honeywell/climate.py

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

* Update homeassistant/components/honeywell/climate.py

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

* Update homeassistant/components/honeywell/climate.py

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

* Add typing for devices

* Add tests

* Use methods to verify unique_id

* Update tests/components/honeywell/test_climate.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-04 14:18:50 +02:00
Marc Mueller f9d95efac0 Improve CoordinatorWeatherEntity generic typing (#116760) 2024-05-04 14:02:23 +02:00
Michael 8238cd9f22 Store runtime data inside the config entry in Shelly (#116763) 2024-05-04 12:41:25 +02:00
Michael e5543e3b95 Store runtime data inside the config entry in DWD (#116764) 2024-05-04 12:36:28 +02:00
Sid a5df229715 Bump ruff to 0.4.3 (#116749) 2024-05-04 11:56:40 +02:00
Sean Chen ac0eabad9f Fix UpdateCoordinator types in CoordinatorWeatherEntity constructor (#116747) 2024-05-04 10:32:37 +02:00
mtielen 8ec1576c67 Fix active state mapping in wolflink (#116659)
* Fix active state mapping for certain entities
2024-05-04 09:23:40 +01:00
Joost Lekkerkerker 45d44ac49e Fix Bosch-SHC switch state (#116721) 2024-05-03 23:54:27 +02:00
Robert Svensson 81a269f4f5 Use runtime_data in Axis integration (#116729)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-05-03 21:52:37 +02:00
Jan-Philipp Benecke ce8cea86a2 Use ConfigEntry runtime_data in Discovergy (#116671) 2024-05-03 21:29:35 +02:00
Franck Nijhof ab8a811c9f 2024.5.1 (#116696) 2024-05-03 17:17:43 +02:00
Allen Porter 9b4099950c Cleanup OpenAI and Ollama conversation entities (#116714) 2024-05-03 10:59:08 -04:00
Maciej Bieniek 1eed5442e2 Bump nettigo-air-monitor to version 3.0.1 (#116699)
Bump nettigo-air-monitor to version 3.0.1

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-03 14:36:42 +02:00
Erik Montnemery e9b9d2d545 Convert recorder entity registry tests to use async API (#116448)
* Convert recorder entity registry tests to use async API

* Address review comment

* Make sure recorder is patch is set up before hass fixture
2024-05-03 14:10:58 +02:00
Erik Montnemery f309064a7f Convert sensor recorder tests to use async API (#116373)
* Convert sensor recorder tests to use async API

* Fix accidentally renamed test

* Avoid unnecessary calls to async_wait_recording_done

* Avoid auto-commits for every state change

* Make sure recorder patches are set up before hass fixture
2024-05-03 14:07:38 +02:00
Maciej Bieniek 3c3a948c33 EntityDescription doesn't need to be generic for NextDNS binary sensor and switch platforms (#116697) 2024-05-03 13:56:38 +02:00
Guido Schmitz cb26e3c633 Use ConfigEntry runtime_data in devolo Home Control (#116672) 2024-05-03 13:55:04 +02:00
Maciej Bieniek 5274165007 Use runtime_data to store NextDNS data (#116691)
* Use runtime_data to store data

* Use data type instead of CoordinatorDataT

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-03 13:39:10 +02:00
Franck Nijhof 9d2fd8217f Bump version to 2024.5.1 2024-05-03 13:38:38 +02:00
Guido Schmitz 79d50a0685 Add test for HA stop to devolo Home Control (#116682)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-05-03 13:36:15 +02:00
Felipe Martins Diel 7e8cbafc6f Fix BroadlinkRemote._learn_command() (#116692) 2024-05-03 13:36:03 +02:00
Marc Mueller a4f9a64588 Fix fyta test timezone handling (#116689) 2024-05-03 13:36:00 +02:00
J. Nick Koston 7a56ba1506 Block dreame_vacuum versions older than 1.0.4 (#116673) 2024-05-03 13:35:56 +02:00
Glenn Waters 66bb3ecac9 Bump env_canada lib to 0.6.2 (#116662) 2024-05-03 13:35:53 +02:00
J. Nick Koston ac302f38b1 Bump habluetooth to 2.8.1 (#116661) 2024-05-03 13:35:49 +02:00
puddly abeb65e43d Bump ZHA dependency bellows to 0.38.4 (#116660)
Bump ZHA dependencies

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-05-03 13:35:46 +02:00
Galorhallen c36fd5550b Bump govee-light-local library and fix wrong information for Govee lights (#116651) 2024-05-03 13:35:42 +02:00
Robert Svensson 6be25c784d Bump aiounifi to v77 (#116639) 2024-05-03 13:35:38 +02:00
Marc Mueller c338f1b964 Add constraint for tuf (#116627) 2024-05-03 13:35:35 +02:00
Kevin Stillhammer 8193b82f4a Bump pywaze to 1.0.1 (#116621)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-03 13:35:31 +02:00
Ståle Storø Hauknes 7c1502fa05 Bump Airthings BLE to 0.8.0 (#116616)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-03 13:35:27 +02:00
Matthias Alphart 575a3da772 Fix inheritance order for KNX notify (#116600) 2024-05-03 13:35:23 +02:00
Joost Lekkerkerker 0e488ef505 Improve coordinator in Ondilo ico (#116596)
* Improve coordinator in Ondilo ico

* Improve coordinator in Ondilo ico
2024-05-03 13:35:19 +02:00
Ståle Storø Hauknes fabbe2f28f Fix Airthings BLE model names (#116579) 2024-05-03 13:35:16 +02:00
Tomasz 99ab8d2956 Bump sanix to 1.0.6 (#116570)
dependency version bump
2024-05-03 13:35:12 +02:00
Marcel van der Veldt 523de94184 Fix Matter startup when Matter bridge is present (#116569) 2024-05-03 13:35:09 +02:00
Glenn Waters 65839067e3 Bump elkm1_lib to 2.2.7 (#116564)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-03 13:35:05 +02:00
Glenn Waters 5da6f83d10 Bump upb_lib to 0.5.6 (#116558) 2024-05-03 13:35:02 +02:00
Jan Bouwhuis ea6a9b8316 Fix MQTT discovery cooldown too short with large setup (#116550)
* Fix MQTT discovery cooldown too short with large setup

* Set to 5 sec

* Only change the discovery cooldown

* Fire immediatly when teh debouncing period is over
2024-05-03 13:34:58 +02:00
J. Nick Koston 49de59432e Add a lock to homekit_controller platform loads (#116539) 2024-05-03 13:34:55 +02:00
GraceGRD 624e4a2b48 Bump opentherm_gw to 2.2.0 (#116527) 2024-05-03 13:34:52 +02:00
MatthewFlamm 4e4ac79595 Fix nws forecast coordinators and remove legacy forecast handling (#115857)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-03 13:34:48 +02:00
Marc Mueller 28ab45d5d8 Fix snapcast test warning (#116687) 2024-05-03 13:29:05 +02:00
Marc Mueller 15b24dfbc2 Fix fyta test warning (#116688) 2024-05-03 13:28:36 +02:00
Marcel van der Veldt 217795865b Fix Matter startup when Matter bridge is present (#116569) 2024-05-03 13:27:01 +02:00
Maciej Bieniek 309b3451b6 Move NAM Data Update Coordinator to the coordinator module (#116686)
Move Data Update Coordinator to the coordinator module

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-03 13:13:56 +02:00
Felipe Martins Diel 453ce0fc4e Fix BroadlinkRemote._learn_command() (#116692) 2024-05-03 13:11:22 +02:00
Galorhallen fd398a3b3c Bump govee-light-local library and fix wrong information for Govee lights (#116651) 2024-05-03 13:07:45 +02:00
Marc Mueller 4a2b595cc8 Fix fyta test timezone handling (#116689) 2024-05-03 13:07:12 +02:00
MatthewFlamm 6413376ccb Fix nws forecast coordinators and remove legacy forecast handling (#115857)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-03 13:06:40 +02:00
J. Nick Koston ee7f818fcd Block dreame_vacuum versions older than 1.0.4 (#116673) 2024-05-03 12:17:01 +02:00
J. Nick Koston 2b2b46c774 Bump habluetooth to 3.0.1 (#116663) 2024-05-03 12:15:51 +02:00
Maciej Bieniek 395fe0f47f Bump imgw_pib to version 1.0.1 (#116630)
Bump imgw_pib to version 1.0.1

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-03 11:44:51 +02:00
Jan Bouwhuis 84308c9e53 Add title feature to notify entity platform (#116426)
* Add title feature to notify entity platform

* Add overload variants

* Remove overloads, update signatures

* Improve test coverage

* Apply suggestions from code review

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

* Do not use const

* fix typo

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-05-03 11:17:28 +02:00
J. Nick Koston ecdad19296 Drop pyserial-asyncio from zha (#116638) 2024-05-03 02:12:28 -05:00
Erik Montnemery 27fcf72275 Convert history tests to use async API (#116447)
* Convert history tests to use async API

* Add new fixture to help patch recorder

* Modify

* Modify

* Update tests/conftest.py

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

* Rename fixture

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-05-03 08:14:46 +02:00
Allen Porter 897794f53b Clean up small changes from OpenAI conversation entity change (#116395)
Small cleanups in OpenAI conversation
2024-05-02 19:38:12 -05:00
J. Nick Koston c07f02534b Migrate bluetooth to use the singleton helper (#116629) 2024-05-02 19:35:16 -05:00
puddly 007b15dc8b Bump ZHA dependency bellows to 0.38.4 (#116660)
Bump ZHA dependencies

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-05-02 19:31:28 -05:00
Marc-Olivier Arsenault 0e23d0439b Add ecobee ventilator 20 min timer (#115969)
* add 20 min timer Ecobee

* modify local value with estimated time

* add ecobee test switch

* removed manual setting of data

* Add no throttle updates

* add more test cases

* move timezone calculation in update function

* update attribute based on feedback

* use timezone for time comparaison

* add location data to tests

* remove is_on function

* update python-ecobee-api lib

* remove uncessary checks

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-05-03 02:08:25 +02:00
Glenn Waters a3791fde09 Bump env_canada lib to 0.6.2 (#116662) 2024-05-02 18:17:41 -05:00
J. Nick Koston 43a0c880eb Bump habluetooth to 2.8.1 (#116661) 2024-05-02 18:15:56 -05:00
Jan Bouwhuis 5ddf21e4da Cleanup MQTT sensor last_reset_topic config parameter a year after removal (#116657) 2024-05-03 00:04:58 +02:00
Erik Montnemery b013d6ade9 Fix flaky hassio test (#116658) 2024-05-02 16:24:14 -05:00
J. Nick Koston a1a314f63a Replace pyserial-asyncio with pyserial-asyncio-fast in serial (#116636) 2024-05-02 16:23:47 -05:00
Jan Bouwhuis cbf853a84f Improve docstring on roborock image entity method (#116654)
* Improve docstring on roborock image entity method

* Update homeassistant/components/roborock/image.py

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

* More line breaks

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-05-02 23:09:52 +02:00
Jan Bouwhuis 2ec9728edb Cleanup unused class attr for MQTT config flow (#116653) 2024-05-02 23:09:16 +02:00
Jon Deeming 949ef49c09 Add vesync Vital 100S UK & EU Model mappings (#115948)
Add Vital 100S UK & EU Model mappings, fixes devices not being retrieved via VeSync APIs, using existing 100S device
2024-05-02 22:57:28 +02:00
Jan Bouwhuis 41b688645a Refactor group state logic (#116318)
* Refactor group state logic

* Fix

* Add helper and tests for groups with entity platforms multiple ON states

* Adress comments

* Do not store object and avoid linear search

* User dataclass, cleanup multiline ternary

* Add test cases for grouped groups

* Remove dead code

* typo in comment

* Update metjod and module docstr
2024-05-02 21:55:46 +02:00
Marc Mueller 8e7026d643 Use runtime_data for airnow (#116619) 2024-05-02 21:00:05 +02:00
Marc Mueller f2b7733e8c Use runtime_data for airthings (#116622)
Co-authored-by: Matthias Alphart <farmio@alphart.net>
2024-05-02 20:59:34 +02:00
Marc Mueller 1c65aacde5 Use runtime_data for airq (#116620) 2024-05-02 20:58:37 +02:00
Jan Bouwhuis bedd5c1cef Cleanup removed MQTT broker settings (#116633) 2024-05-02 20:37:21 +02:00
Robert Svensson ecc431e231 Bump aiounifi to v77 (#116639) 2024-05-02 19:53:17 +02:00
Marc Mueller 3133dea803 Use runtime_data for aftership (#116618) 2024-05-02 18:38:52 +02:00
Marc Mueller d19dac7290 Use runtime_data for airtouch5 (#116625) 2024-05-02 18:36:35 +02:00
Kevin Stillhammer bf709bae9c Bump pywaze to 1.0.1 (#116621)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-02 09:54:06 -05:00
Marc Mueller 0977ad017d Use runtime_data for airthings_ble (#116623)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-02 09:38:01 -05:00
Ståle Storø Hauknes adfd63be8c Bump Airthings BLE to 0.8.0 (#116616)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-02 09:37:02 -05:00
Maciej Bieniek 37d9ed899d Add binary_sensor platform to IMGW-PIB integration (#116624)
* Add binary_sensor platform

* Add tests

* Remove state attributes

* Remove attrs from strings.json

* Use base entity class

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-02 16:16:26 +02:00
Marc Mueller 1ec7a515d2 Add constraint for tuf (#116627) 2024-05-02 09:12:26 -05:00
Joost Lekkerkerker a2bd045c9d Improve coordinator in Ondilo ico (#116596)
* Improve coordinator in Ondilo ico

* Improve coordinator in Ondilo ico
2024-05-02 15:57:47 +02:00
Marc Mueller 1fc8fdf9ff Use runtime_data for august (#116610) 2024-05-02 07:39:02 -05:00
Marc Mueller ef242f2883 Use runtime_data for bond (#116611) 2024-05-02 07:38:59 -05:00
Marc Mueller 6bb2ab519f Use runtime_data for co2signal (#116612) 2024-05-02 14:04:21 +02:00
Matthias Alphart 70ae082281 Use entry.runtime_data in Fronius (#116604) 2024-05-02 13:42:48 +02:00
Marc Mueller 63a45035dd Use runtime_data for ambient_station (#116608) 2024-05-02 13:42:16 +02:00
Marc Mueller 5e8c9d66fb Use runtime_data for airvisual_pro (#116607) 2024-05-02 13:41:32 +02:00
Marc Mueller 64d9fac6db Use runtime_data for acmeda (#116606) 2024-05-02 13:40:49 +02:00
Matthias Alphart 8eb1970721 Fix inheritance order for KNX notify (#116600) 2024-05-02 11:44:32 +02:00
Franck Nijhof 10bc66ac77 Merge branch 'master' into dev 2024-05-02 11:22:38 +02:00
blob810 1170ce1296 Add shutter tilt support for Shelly Wave Shutter QNSH-001P10 (#116211)
* Add shutter tilt support for Shelly Wave Shutter QNSH-001P10

* Add shelly_europe_ltd_qnsh_001p10_state.json fixture

* Update test_discovery.py

* Load shelly wave shutter 001p10 node fixture

* Update test_discovery.py

Check if entity of first node exists.

* Update test_discovery.py

Add additional comments

* Clean whitespace

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-05-02 11:02:35 +02:00
dependabot[bot] 71c5f33e69 Bump codecov/codecov-action from 4.3.0 to 4.3.1 (#116592)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4.3.0...v4.3.1)

---
updated-dependencies:
- dependency-name: codecov/codecov-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-05-02 10:24:36 +02:00
dependabot[bot] 9c3a4c5365 Bump sigstore/cosign-installer from 3.4.0 to 3.5.0 (#115399)
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](https://github.com/sigstore/cosign-installer/compare/v3.4.0...v3.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-05-02 10:18:44 +02:00
Thomas55555 86637f7171 Address late review for Husqvarna Automower (#116536)
* Address late review for Husqvarna Automower

* fix wrong base entity
2024-05-02 10:05:45 +02:00
David Knowles 67e199fb2f Bump pydrawise to 2024.4.1 (#116449)
* Bump pydrawise to 2024.4.1

* Fix typing errors

* Use assert instead of cast

* Remove unused import
2024-05-02 07:56:27 +02:00
Glenn Waters 62a87b8430 Bump elkm1_lib to 2.2.7 (#116564)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-05-01 19:51:04 -05:00
J. Nick Koston 657c9ec25b Add a lock to homekit_controller platform loads (#116539) 2024-05-01 19:23:43 -05:00
Ståle Storø Hauknes 713ce0dd17 Fix Airthings BLE model names (#116579) 2024-05-01 19:19:40 -05:00
Tomasz afbe0ce096 Bump sanix to 1.0.6 (#116570)
dependency version bump
2024-05-02 00:21:40 +02:00
Marc Mueller 2cb3a31db1 Improve fitbit generic coordinator typing (#116562) 2024-05-02 00:00:47 +02:00
Marc Mueller 86f96db9b0 Improve asuswrt decorator typing (#116563) 2024-05-02 00:00:30 +02:00
GraceGRD aa1af37d1b Bump opentherm_gw to 2.2.0 (#116527) 2024-05-01 16:13:09 -05:00
Marc Mueller 8bc214b185 Improve airly generic coordinator typing (#116561) 2024-05-01 22:41:11 +02:00
Marc Mueller bd24ce8d4d Improve tankerkoenig generic coordinator typing (#116560) 2024-05-01 22:33:07 +02:00
Glenn Waters fa920fd910 Bump upb_lib to 0.5.6 (#116558) 2024-05-01 15:32:56 -05:00
J. Nick Koston 041456759f Remove duplicate mid handling in MQTT (#116531) 2024-05-01 15:18:44 -05:00
Joost Lekkerkerker e68901235b Store runtime data in entry in Analytics Insights (#116441) 2024-05-01 22:13:38 +02:00
G Johansson 3bf67f3ddd Use config entry runtime data in Trafikverket Train (#116556) 2024-05-01 22:08:19 +02:00
G Johansson b089f89f14 Use config entry runtime data in Trafikverket Ferry (#116557) 2024-05-01 22:05:47 +02:00
G Johansson 5e9a864f5b Use config entry runtime data in Sensibo (#116530)
* Use config entry runtime data in Sensibo

* Add typing

* Fixes coordinator

* Move import
2024-05-01 22:02:36 +02:00
G Johansson b2c1cd3e2a Use config entry runtime data in Trafikverket Camera (#116552) 2024-05-01 21:59:07 +02:00
G Johansson 6cb703aa1d Use config entry runtime data in Trafikverket Weather (#116554) 2024-05-01 21:58:21 +02:00
Michael 054fb5af31 Store runtime data inside the config entry in PegelOnline (#116534) 2024-05-01 21:54:05 +02:00
Michael a4139f1a61 Store runtime data inside the config entry in Proximity (#116533) 2024-05-01 21:51:47 +02:00
Michael ad61e5f237 Store runtime data inside the config entry in Tankerkoenig (#116532) 2024-05-01 21:48:31 +02:00
Marc Mueller a25e202ef0 Use runtime data for FritzBox Call Monitor (#116553) 2024-05-01 21:27:34 +02:00
Jan Bouwhuis 7fd60ddba4 Fix MQTT discovery cooldown too short with large setup (#116550)
* Fix MQTT discovery cooldown too short with large setup

* Set to 5 sec

* Only change the discovery cooldown

* Fire immediatly when teh debouncing period is over
2024-05-01 21:19:55 +02:00
G Johansson ef2ae7b600 Use runtime data in Yale Smart Alarm (#116548) 2024-05-01 21:13:29 +02:00
Maciej Bieniek ae6a497cd1 Add diagnostics platform to IMGW-PIB integration (#116551)
* Add diagnostics

* Add tests

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-01 21:06:22 +02:00
Michael c5cac8fed4 Store runtime data inside the config entry in AVM Fritz!Smarthome (#116523) 2024-05-01 20:51:39 +02:00
Franck Nijhof 2f47668422 2024.5.0 (#116538) 2024-05-01 20:47:10 +02:00
J. Nick Koston 343d97527c Ensure mqtt handler is restored if its already registered in bootstrap test (#116549) 2024-05-01 20:23:14 +02:00
J. Nick Koston f73c55b434 Ensure mqtt handler is restored if its already registered in bootstrap test (#116549) 2024-05-01 20:22:18 +02:00
J. Nick Koston 21466180aa Ensure mock mqtt handler is cleaned up after test_bootstrap_dependencies (#116544) 2024-05-01 19:46:54 +02:00
J. Nick Koston 573cd8e94a Ensure mock mqtt handler is cleaned up after test_bootstrap_dependencies (#116544) 2024-05-01 19:45:47 +02:00
Franck Nijhof 858874f0da Bump version to 2024.5.0 2024-05-01 18:59:07 +02:00
Franck Nijhof 1641f24314 Bump version to 2024.5.0b7 2024-05-01 18:32:41 +02:00
J. Nick Koston e1c08959b0 Fix stop event cleanup when reloading MQTT (#116525) 2024-05-01 18:32:33 +02:00
Marcel van der Veldt b42f367128 Add blocklist for known Matter devices with faulty transitions (#116524) 2024-05-01 18:32:24 +02:00
Marcel van der Veldt 1db770ab3a Add blocklist for known Matter devices with faulty transitions (#116524) 2024-05-01 18:30:59 +02:00
J. Nick Koston 0b08ae7e44 Reduce timestamp function call overhead in core states (#116517)
* Reduce timestamp function call overhead in core states

The recorder or the websocket_api will always call the timestamps, so we will set the timestamp values when creating the State to avoid the function call overhead in the property we know will always be called.

* Reduce timestamp function call overhead in core states

The recorder or the websocket_api will always call the timestamps, so we will set the timestamp values when creating the State to avoid the function call overhead in the property we know will always be called.

* reduce scope of change since last_reported is not called in websocket_api

* reduce scope of change since last_reported is not called in websocket_api
2024-05-01 11:04:20 -05:00
J. Nick Koston 25df41475a Simplify MQTT mid handling (#116522)
* Simplify MQTT mid handling

switch from asyncio.Event to asyncio.Future

* preen

* preen

* preen
2024-05-01 11:03:10 -05:00
J. Nick Koston 2fe17acaf7 Bump yalexs to 3.1.0 (#116511)
changelog: https://github.com/bdraco/yalexs/compare/v3.0.1...v3.1.0
2024-05-01 11:01:54 -05:00
Maciej Bieniek 9e8f7b5618 Store GIOS runtime data in entry (#116510)
Use entry.runtime_data

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-01 17:28:20 +02:00
J. Nick Koston 2ad6353bf8 Fix stop event cleanup when reloading MQTT (#116525) 2024-05-01 10:22:50 -05:00
G Johansson 51f9e661a4 Workday only update once a day (#116419)
* Workday only update once a day

* Fix tests
2024-05-01 17:11:47 +02:00
Franck Nijhof 1e4e891f0b Bump version to 2024.5.0b6 2024-05-01 16:24:03 +02:00
Joost Lekkerkerker 15aa8949ee Improve scrape strings (#116519) 2024-05-01 16:23:54 +02:00
J. Nick Koston 780a6b314f Fix blocking I/O to import modules in mysensors (#116516) 2024-05-01 16:23:50 +02:00
Marcel van der Veldt 082721e1ab Bump python matter server library to 5.10.0 (#116514) 2024-05-01 16:23:47 +02:00
J. Nick Koston 4312f36dbe Fix non-thread-safe operations in ihc (#116513) 2024-05-01 16:23:43 +02:00
puddly f89677cd76 Bump ZHA dependencies (#116509) 2024-05-01 16:23:39 +02:00
Joost Lekkerkerker b7a138b02a Improve scrape strings (#116519) 2024-05-01 16:22:25 +02:00
puddly 07e608d815 Bump ZHA dependencies (#116509) 2024-05-01 16:00:17 +02:00
Marcel van der Veldt 0b340e1477 Bump python matter server library to 5.10.0 (#116514) 2024-05-01 15:42:53 +02:00
J. Nick Koston c39d3b501e Fix non-thread-safe operations in ihc (#116513) 2024-05-01 15:23:33 +02:00
J. Nick Koston 61a7bc7aab Fix blocking I/O to import modules in mysensors (#116516) 2024-05-01 15:22:50 +02:00
Maciej Bieniek c46be022c8 Add IMGW-PIB integration (#116468)
* Add sensor platform

* Add tests

* Fix icons.json

* Use entry.runtime_data

* Remove validate_input function

* Change abort reason to cannot_connect

* Remove unnecessary square brackets

* Move _attr_attribution outside the constructor

* Use native_value property

* Use is with ENUMs

* Import SOURCE_USER

* Change test name

* Use freezer.tick

* Tests refactoring

* Remove test_setup_entry

* Test creating entry after error

* Add missing async_block_till_done

* Fix translation key

* Remove coordinator type annotation

* Enable strict typing

* Assert config entry unique_id

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-05-01 14:38:36 +02:00
Franck Nijhof 0eb734b6bf Bump version to 2024.5.0b5 2024-05-01 13:41:34 +02:00
Bram Kragten ad16c5bc25 Update frontend to 20240501.0 (#116503) 2024-05-01 13:41:18 +02:00
max2697 fabc3d751e Bump opower to 0.4.4 (#116489) 2024-05-01 13:40:25 +02:00
Luke Lashley 31cfabc44d Fix roborock image crashes (#116487) 2024-05-01 13:40:22 +02:00
J. Nick Koston 7d51556e1e Hold a lock to prevent concurrent setup of config entries (#116482) 2024-05-01 13:40:18 +02:00
Bram Kragten ac24105777 Update frontend to 20240430.0 (#116481) 2024-05-01 13:40:15 +02:00
Jan Bouwhuis 3d86577cab Add test MQTT subscription is completed when birth message is sent (#116476) 2024-05-01 13:40:12 +02:00
J. Nick Koston 6971898a43 Fix non-thread-safe operation in roon volume callback (#116475) 2024-05-01 13:40:08 +02:00
puddly c54d53b88a Change SkyConnect integration type back to hardware and fix multi-PAN migration bug (#116474)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-05-01 13:40:05 +02:00
J. Nick Koston c574d86ddb Fix local_todo blocking the event loop (#116473) 2024-05-01 13:40:01 +02:00
J. Nick Koston 3d13345575 Ensure MQTT resubscribes happen before birth message (#116471) 2024-05-01 13:39:58 +02:00
J. Nick Koston c77cef0391 Bump bluetooth-adapters to 0.19.1 (#116465) 2024-05-01 13:39:55 +02:00
Joost Lekkerkerker 3351b82667 Fix zoneminder async v2 (#116451) 2024-05-01 13:39:52 +02:00
Richard Kroegel 78d19854dd Bump bimmer_connected to 0.15.2 (#116424)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-05-01 13:39:48 +02:00
Marcel van der Veldt c0d529b072 Some fixes for the Matter light discovery schema (#116108)
* Fix discovery schema for light platform

* fix switch platform discovery schema

* extend light tests

* Update switch.py

* clarify comment

* use parameter for supported_color_modes
2024-05-01 13:39:16 +02:00
Bram Kragten 53d5960f49 Update frontend to 20240501.0 (#116503) 2024-05-01 12:53:45 +02:00
Luke Lashley 835ce919f4 Fix roborock image crashes (#116487) 2024-05-01 11:56:02 +02:00
Marcel van der Veldt 8230bfcf8f Some fixes for the Matter light discovery schema (#116108)
* Fix discovery schema for light platform

* fix switch platform discovery schema

* extend light tests

* Update switch.py

* clarify comment

* use parameter for supported_color_modes
2024-05-01 11:46:52 +02:00
Joost Lekkerkerker ac608ef86a Remove unused argument from DWD coordinator (#116496) 2024-05-01 11:19:26 +02:00
wittypluck 7a10959e58 Use websocket client to test device removal in Unifi (#116309)
* Use websocket client to test device removal from registry

* Rename client to ws_client to avoid confusion with Unifi clients

* Use remove_device helper
2024-05-01 08:46:03 +02:00
max2697 58c7a97149 Bump opower to 0.4.4 (#116489) 2024-05-01 07:11:47 +02:00
J. Nick Koston 6cf1c5c1f2 Hold a lock to prevent concurrent setup of config entries (#116482) 2024-04-30 18:47:12 -05:00
Jan Bouwhuis 3c7cbf5794 Add test MQTT subscription is completed when birth message is sent (#116476) 2024-04-30 18:15:46 -05:00
J. Nick Koston 2401580b6f Make a copy of capability_attributes instead of making a new dict (#116477) 2024-04-30 17:54:33 -05:00
Bram Kragten d39707ee4f Update frontend to 20240430.0 (#116481) 2024-05-01 00:46:25 +02:00
Richard Kroegel 0d0865e783 Bump bimmer_connected to 0.15.2 (#116424)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-04-30 22:49:28 +02:00
J. Nick Koston d524baafd2 Fix non-thread-safe operation in roon volume callback (#116475) 2024-04-30 22:47:27 +02:00
puddly 963d8d6a76 Change SkyConnect integration type back to hardware and fix multi-PAN migration bug (#116474)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-30 22:47:17 +02:00
Robert Resch 1641df18ce Store runtime data in entry in Ecovacs (#116445) 2024-04-30 22:44:56 +02:00
J. Nick Koston 2e9b1916c0 Ensure MQTT resubscribes happen before birth message (#116471) 2024-04-30 22:31:40 +02:00
J. Nick Koston 6c446b4e59 Fix local_todo blocking the event loop (#116473) 2024-04-30 22:31:09 +02:00
G Johansson 23a8b29bfe Bring sensibo to full coverage (again) (#116469) 2024-04-30 21:31:52 +02:00
Christopher Bailey c7a84b1c7b Bump pydantic constraint (#116401)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-30 13:13:56 -05:00
J. Nick Koston 9995207817 Avoid re-encoding the message id as bytes for every event/state change (#116460) 2024-04-30 12:02:28 -05:00
J. Nick Koston fbe1781ebc Bump bluetooth-adapters to 0.19.1 (#116465) 2024-04-30 11:53:55 -05:00
J. Nick Koston 6be2b334d8 Avoid netloc ipaddress re-encoding to construct ingress urls (#116431) 2024-04-30 11:44:25 -05:00
J. Nick Koston ff104f54b5 Small performance improvements to ingress forwarding (#116457) 2024-04-30 11:43:58 -05:00
andarotajo 1e63665bf2 Mock dwdwfsapi in all tests that use it (#116414)
* Mock dwdwfsapi in all tests

* Add mocking for config entries

* Fix assertions in init test
2024-04-30 18:08:15 +02:00
epenet a440783208 Store runtime data in entry in renault (#116454) 2024-04-30 17:39:03 +02:00
epenet 0005f8400d Move Renault service registration (#116459)
* Move Renault service registration

* Hassfest
2024-04-30 17:10:40 +02:00
Maciej Bieniek f9b1b371e9 Remove entity description mixin in NextDNS (#116456)
Remove entity description mixin

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-30 16:05:49 +02:00
J. Nick Koston feb6cfdd56 Add pydantic to skip-binary (#116406) 2024-04-30 09:00:06 -05:00
epenet 8291769361 Store runtime data in entry in onewire (#116450)
* Store runtime data in entry in onewire

* Adjust
2024-04-30 15:55:20 +02:00
Joost Lekkerkerker a12301f696 Fix zoneminder async v2 (#116451) 2024-04-30 08:07:15 -05:00
Joost Lekkerkerker 6f406603a6 Store runtime data in entry in Withings (#116439)
* Add entry runtime data to Withings

* Store runtime data in entry in Withings

* Fix

* Fix

* Update homeassistant/components/withings/coordinator.py

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

---------

Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-04-30 13:00:11 +02:00
epenet ad84ff18eb Use remove_device helper in tests (1/2) (#116240)
* Use remove_device helper in tests

* Update test_tag.py

* Update test_tag.py
2024-04-30 12:52:33 +02:00
epenet a3942e019b Use remove_device helper in tests (2/2) (#116442)
Use remove_device helper in tests (part 2)
2024-04-30 12:50:35 +02:00
Franck Nijhof 5b7e09b886 Bump version to 2024.5.0b4 2024-04-30 12:47:51 +02:00
Joost Lekkerkerker 7cbb2892c1 Add user id to coordinator name in Withings (#116440)
* Add user id to coordinator name in Withings

* Add user id to coordinator name in Withings

* Fix
2024-04-30 12:47:44 +02:00
Joost Lekkerkerker 5510315b87 Fix zoneminder async (#116436) 2024-04-30 12:47:41 +02:00
Michael bd8ded1e55 Fix error handling in Shell Command integration (#116409)
* raise proper HomeAssistantError on command timeout

* raise proper HomeAssistantError on non-utf8 command output

* add error translation and test it

* Update homeassistant/components/shell_command/strings.json

* Update tests/components/shell_command/test_init.py

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-04-30 12:47:38 +02:00
Joost Lekkerkerker 1a1dfbd489 Remove semicolon in Modbus (#116399) 2024-04-30 12:47:34 +02:00
Graham Wetzler 3477c81ed1 Bump smart_meter_texas to 0.5.5 (#116321) 2024-04-30 12:47:31 +02:00
Collin Fair 5d9abf9ac5 Fix stale prayer times from islamic-prayer-times (#115683) 2024-04-30 12:47:28 +02:00
Joost Lekkerkerker 8843780aab Set Synology camera device name as entity name (#109123) 2024-04-30 12:47:24 +02:00
Joost Lekkerkerker d84d2109c2 Add user id to coordinator name in Withings (#116440)
* Add user id to coordinator name in Withings

* Add user id to coordinator name in Withings

* Fix
2024-04-30 12:41:34 +02:00
Marc Mueller dace9b32de Store runtime data inside ConfigEntry (#115669) 2024-04-30 11:29:43 +02:00
dontinelli 258e20bfc4 Update fyta async_migrate_entry (#116433)
Update async_migrate_entry __init__.py
2024-04-30 10:02:31 +02:00
Joost Lekkerkerker fd8287bc15 Set Synology camera device name as entity name (#109123) 2024-04-30 09:49:35 +02:00
Joost Lekkerkerker 59d618bed1 Fix zoneminder async (#116436) 2024-04-30 09:48:58 +02:00
Graham Wetzler b777947978 Bump smart_meter_texas to 0.5.5 (#116321) 2024-04-30 09:47:06 +02:00
Collin Fair 7184543f12 Fix stale prayer times from islamic-prayer-times (#115683) 2024-04-30 09:18:09 +02:00
G Johansson 822646749d Remove entity category "system" check from entity registry (#116412) 2024-04-30 04:01:12 +02:00
Marc Mueller 8233b621f0 Update pytest to 8.2.0 (#116379) 2024-04-29 21:50:11 +02:00
Guy Sie f5700279d3 Add Open Home Foundation link (#116405) 2024-04-29 21:28:47 +02:00
Robert Resch 630ddd6a8c Revert "Remove strict connection" (#116416) 2024-04-29 21:26:40 +02:00
Thomas55555 f001e8524a Add Workarea cutting height to Husqvarna Automower (#116115)
* add work_area cutting_height

* add

* add default work_area

* ruff/mypy

* better names

* fit to api bump

* tweaks

* more tweaks

* layout

* address review

* change entity name

* tweak test

* cleanup entities

* fix for mowers with no workareas

* assure not other entities get deleted

* sort & remove one callback

* remove typing callbacks

* rename entity to entity_entry
2024-04-29 21:10:45 +02:00
Michael c5953045d4 Add error translations to AVM Fritz!Tools (#116413) 2024-04-29 20:48:54 +02:00
rale a6fdd4e1e2 Report webOS media player state (#113774)
* support for webos media player state

* add test coverage and don't use assumed state if media player state is available

* fallback to assumed state if media state isn't available

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

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-04-29 21:43:46 +03:00
Michael 50d83bbdbf Fix error handling in Shell Command integration (#116409)
* raise proper HomeAssistantError on command timeout

* raise proper HomeAssistantError on non-utf8 command output

* add error translation and test it

* Update homeassistant/components/shell_command/strings.json

* Update tests/components/shell_command/test_init.py

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-04-29 20:19:14 +02:00
Joost Lekkerkerker d1c58467c5 Remove semicolon in Modbus (#116399) 2024-04-29 20:13:36 +02:00
Franck Nijhof a7faf2710f Bump version to 2024.5.0b3 2024-04-29 19:44:22 +02:00
Bram Kragten 06e032b838 Update frontend to 20240429.0 (#116404) 2024-04-29 19:44:12 +02:00
Robert Resch 8f2d10c49a Remove strict connection (#116396) 2024-04-29 19:44:09 +02:00
Steve Easley 39d923dc02 Fix jvcprojector command timeout with some projectors (#116392)
* Fix projector timeout in pyprojector lib v1.0.10

* Fix projector timeout by increasing time between power command and refresh.

* Bump jvcprojector lib to ensure unknown power states are handled
2024-04-29 19:44:06 +02:00
Mr. Bubbles 99e3236fb7 Deprecate YAML configuration of Habitica (#116374)
Add deprecation issue for yaml import
2024-04-29 19:44:03 +02:00
dontinelli 7ee79002b3 Store access token in entry for Fyta (#116260)
* save access_token and expiration date in ConfigEntry

* add MINOR_VERSION and async_migrate_entry

* shorten reading of expiration from config entry

* add additional consts and test for config entry migration

* Update homeassistant/components/fyta/coordinator.py

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

* Update homeassistant/components/fyta/__init__.py

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

* omit check for datetime data type

* Update homeassistant/components/fyta/__init__.py

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

* Update homeassistant/components/fyta/coordinator.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-29 19:43:59 +02:00
dontinelli ac45d20e1f Bump fyta_cli to 0.4.1 (#115918)
* bump fyta_cli to 0.4.0

* Update PLANT_STATUS and add PLANT_MEASUREMENT_STATUS

* bump fyta_cli to v0.4.0

* minor adjustments of states to API documentation
2024-04-29 19:43:55 +02:00
Robert Resch dfc198cae0 Remove strict connection (#116396) 2024-04-29 19:33:31 +02:00
Bram Kragten b3c1a86194 Update frontend to 20240429.0 (#116404) 2024-04-29 18:34:20 +02:00
Steve Easley 420d6a2d9d Fix jvcprojector command timeout with some projectors (#116392)
* Fix projector timeout in pyprojector lib v1.0.10

* Fix projector timeout by increasing time between power command and refresh.

* Bump jvcprojector lib to ensure unknown power states are handled
2024-04-29 18:25:16 +02:00
dontinelli 180e178a69 Store access token in entry for Fyta (#116260)
* save access_token and expiration date in ConfigEntry

* add MINOR_VERSION and async_migrate_entry

* shorten reading of expiration from config entry

* add additional consts and test for config entry migration

* Update homeassistant/components/fyta/coordinator.py

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

* Update homeassistant/components/fyta/__init__.py

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

* omit check for datetime data type

* Update homeassistant/components/fyta/__init__.py

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

* Update homeassistant/components/fyta/coordinator.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-29 17:09:07 +02:00
dontinelli 8ed10c7c4f Bump fyta_cli to 0.4.1 (#115918)
* bump fyta_cli to 0.4.0

* Update PLANT_STATUS and add PLANT_MEASUREMENT_STATUS

* bump fyta_cli to v0.4.0

* minor adjustments of states to API documentation
2024-04-29 17:08:36 +02:00
J. Nick Koston 8bfcaf3524 Add service to log all the current asyncio Tasks to the profiler (#116389)
* Add service to log all the current asyncio Tasks to the profiler

I have been helping users look for a task leaks, and need a
way to examine tasks at run time as trying to get someone to
run Home Assistant and attach aiomonitor is too difficult in
many cases.

* cover
2024-04-29 10:03:35 -05:00
J. Nick Koston f1e5bbcbca Fix grammar in internal function comments (#116387)
https://github.com/home-assistant/core/pull/116339#discussion_r1582610474
2024-04-29 17:01:15 +02:00
Mr. Bubbles 3d750414f1 Deprecate YAML configuration of Habitica (#116374)
Add deprecation issue for yaml import
2024-04-29 17:00:13 +02:00
Joost Lekkerkerker eec1dafe11 Fix typo in Switchbot cloud (#116388) 2024-04-29 16:58:02 +02:00
mkmer f5b4637da8 Address late review in Honeywell (#115702)
Pass honeywell_data
2024-04-29 16:16:46 +02:00
Allen Porter f1dda8ef63 Add Ollama Conversation Agent Entity (#116363)
* Add ConversationEntity to OLlama integration

* Add assist_pipeline dependencies
2024-04-29 10:15:46 -04:00
Paulus Schoutsen 0a9ac6b7a9 Bump version to 2024.5.0b2 2024-04-29 14:09:46 +00:00
J. Nick Koston 6fe20be095 Fix usb scan delaying shutdown (#116390)
If the integration page is accessed right before shutdown it
can trigger the usb scan debouncer which was not marked as
background so shutdown would wait for the scan to finish
2024-04-29 14:09:41 +00:00
Shay Levy a61650e38f Prevent Shelly raising in a task (#116355)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-29 14:09:40 +00:00
J. Nick Koston 087b6533cd Fix another case of homeassistant_alerts delaying shutdown (#116352) 2024-04-29 14:09:39 +00:00
J. Nick Koston 9445b84ab5 Fix shelly delaying shutdown (#116346) 2024-04-29 14:09:39 +00:00
J. Nick Koston 88015986ad Fix bond update delaying shutdown when push updated are not available (#116344)
If push updates are not available, bond could delay shutdown. The update
task should have been marked as a background task
2024-04-29 14:09:38 +00:00
J. Nick Koston 0cec378126 Fix some flapping sonos tests (#116343) 2024-04-29 14:09:37 +00:00
Joost Lekkerkerker 5ca91190f2 Fix Netatmo indoor sensor (#116342)
* Debug netatmo indoor sensor

* Debug netatmo indoor sensor

* Fix
2024-04-29 14:09:36 +00:00
J. Nick Koston c533ca50b1 Fix homeassistant_alerts delaying shutdown (#116340) 2024-04-29 14:09:35 +00:00
J. Nick Koston 66538ba34e Add thread safety checks to async_create_task (#116339)
* Add thread safety checks to async_create_task

Calling async_create_task from a thread almost always results in an
fast crash. Since most internals are using async_create_background_task
or other task APIs, and this is the one integrations seem to get wrong
the most, add a thread safety check here

* Add thread safety checks to async_create_task

Calling async_create_task from a thread almost always results in an
fast crash. Since most internals are using async_create_background_task
or other task APIs, and this is the one integrations seem to get wrong
the most, add a thread safety check here

* missed one

* Update homeassistant/core.py

* fix mocks

* one more internal

* more places where internal can be used

* more places where internal can be used

* more places where internal can be used

* internal one more place since this is high volume and was already eager_start
2024-04-29 14:09:34 +00:00
J. Nick Koston 6786479a81 Fix sonos events delaying shutdown (#116337) 2024-04-29 14:09:33 +00:00
J. Nick Koston c4c21bc8ea Fix bluetooth adapter discovery delaying startup and shutdown (#116335) 2024-04-29 14:09:33 +00:00
J. Nick Koston c3cb79e0e9 Fix wemo push updates delaying shutdown (#116333) 2024-04-29 14:09:32 +00:00
J. Nick Koston 1309fc5eda Fix unifiprotect delaying shutdown if websocket if offline (#116331) 2024-04-29 14:09:31 +00:00
J. Nick Koston 624eed4b83 Fix august delaying shutdown (#116329) 2024-04-29 14:09:30 +00:00
J. Nick Koston d1e7471094 Prevent setup retry from delaying shutdown (#116328) 2024-04-29 14:09:29 +00:00
J. Nick Koston f2a101128f Make discovery flow tasks background tasks (#116327) 2024-04-29 14:09:28 +00:00
Jan Bouwhuis bfcffb5cb1 Fix no will published when mqtt is down (#116319) 2024-04-29 14:09:27 +00:00
hopkins-tk abf45a0e0c Fix Aseko binary sensors names (#116251)
* Fix Aseko binary sensors names

* Fix add missing key to strings.json

* Fix remove setting shorthand translation key attribute

* Update homeassistant/components/aseko_pool_live/strings.json

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-29 14:09:26 +00:00
J. Nick Koston 2c46db16d4 Fix script in restart mode that is fired from the same trigger (#116247) 2024-04-29 14:09:25 +00:00
Martin Hjelmare 6d8066afa2 Add matter during onboarding (#116163)
* Add matter during onboarding

* test_zeroconf_not_onboarded_running

* test_zeroconf_not_onboarded_installed

* test_zeroconf_not_onboarded_not_installed

* test_zeroconf_discovery_not_onboarded_not_supervisor

* Clean up

* Add udp address

* Test zeroconf udp info too

* test_addon_installed_failures_zeroconf

* test_addon_running_failures_zeroconf

* test_addon_not_installed_failures_zeroconf

* Clean up stale changes

* Set unique id for discovery step

* Fix tests for background flow

* Fix flow running in background

* Test already discovered zeroconf

* Mock unload entry
2024-04-29 14:09:24 +00:00
Marco van 't Wout ee4f55a5a9 Improve error handling for HTTP errors on Growatt Server (#110633)
* Update dependency growattServer for improved error details

Updating to latest version. Since version 1.3.1 it will raise requests.exceptions.HTTPError for unexpected API responses such as HTTP 405 (rate limiting/firewall)

* Improve error details by raising ConfigEntryAuthFailed

Previous code was returning None which the caller couldn't handle

* Use a more appropiate exception type

* Update homeassistant/components/growatt_server/sensor.py

* Update homeassistant/components/growatt_server/sensor.py

* Fix

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-29 14:09:23 +00:00
J. Nick Koston eced3b0f57 Fix usb scan delaying shutdown (#116390)
If the integration page is accessed right before shutdown it
can trigger the usb scan debouncer which was not marked as
background so shutdown would wait for the scan to finish
2024-04-29 10:07:48 -04:00
J. Nick Koston 81d2f5b791 Small cleanups to climate entity feature compat (#116361)
* Small cleanups to climate entity feature compat

Fix some duplicate property fetches, avoid generating a new
enum every time supported_features was fetched if there was
no modifier

* param

* param
2024-04-29 15:43:55 +02:00
Shay Levy d1f88ffd1e Prevent Shelly raising in a task (#116355)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-29 08:03:57 -05:00
Marc Mueller 8ac493fcf4 Update types packages (#116382) 2024-04-29 14:50:00 +02:00
Marc Mueller 6c9f277bbe Update uv to 0.1.39 (#116381) 2024-04-29 14:48:13 +02:00
Marc Mueller de65e6b5d1 Update respx to 0.21.1 (#116380) 2024-04-29 14:45:57 +02:00
Marc Mueller e060e90858 Update pipdeptree to 2.19.0 (#116376) 2024-04-29 14:44:04 +02:00
Marc Mueller 26fad0b786 Update pytest-xdist to 3.6.1 (#116377) 2024-04-29 14:42:57 +02:00
Marc Mueller fd52348d57 Update freezegun to 1.5.0 (#116375) 2024-04-29 14:40:47 +02:00
Mr. Bubbles 0b8838cab8 Add icons and translations to Habitica (#116204)
* refactor habitica sensors, add strings and icon translations

* Change sensor names

* remove max_health as it is a fixed value

* remove SENSOR_TYPES

* removed wrong sensor

* Move Data coordinator to separate module

* add coordinator.py to coveragerc

* add deprecation warning for task sensors

* remove unused imports and logger

* Revert "add deprecation warning for task sensors"

This reverts commit 9e58053f3bb8b34b8e22d525bfd1ff55610f4581.

* Update homeassistant/components/habitica/strings.json

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

* Update homeassistant/components/habitica/strings.json

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

* Revert "Move Data coordinator to separate module"

This reverts commit f5c8c3c886a868b2ed50ad2098fe3cb1ccc01c62.

* Revert "add coordinator.py to coveragerc"

This reverts commit 8ae07a4786db786a73fc527e525813147d1c5ec4.

* rename Mana max. to Max. mana

* deprecation for yaml import

* move SensorType definition before TASK_TYPES

* Revert "deprecation for yaml import"

This reverts commit 2a1d58ee5ff7d4f1a19b7593cb7f56afde4e1d9d.

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-29 12:51:38 +02:00
Marco van 't Wout b426c4133d Improve error handling for HTTP errors on Growatt Server (#110633)
* Update dependency growattServer for improved error details

Updating to latest version. Since version 1.3.1 it will raise requests.exceptions.HTTPError for unexpected API responses such as HTTP 405 (rate limiting/firewall)

* Improve error details by raising ConfigEntryAuthFailed

Previous code was returning None which the caller couldn't handle

* Use a more appropiate exception type

* Update homeassistant/components/growatt_server/sensor.py

* Update homeassistant/components/growatt_server/sensor.py

* Fix

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-29 12:02:49 +02:00
Martin Hjelmare 0e0ea0017e Add matter during onboarding (#116163)
* Add matter during onboarding

* test_zeroconf_not_onboarded_running

* test_zeroconf_not_onboarded_installed

* test_zeroconf_not_onboarded_not_installed

* test_zeroconf_discovery_not_onboarded_not_supervisor

* Clean up

* Add udp address

* Test zeroconf udp info too

* test_addon_installed_failures_zeroconf

* test_addon_running_failures_zeroconf

* test_addon_not_installed_failures_zeroconf

* Clean up stale changes

* Set unique id for discovery step

* Fix tests for background flow

* Fix flow running in background

* Test already discovered zeroconf

* Mock unload entry
2024-04-29 10:59:36 +02:00
Austin Mroczek 8153ff78bf Add Button for TotalConnect (#114530)
* add button for totalconnect

* test button for totalconnect

* change to zone.can_be_bypassed

* Update homeassistant/components/totalconnect/button.py

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

* Update homeassistant/components/totalconnect/button.py

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

* Update homeassistant/components/totalconnect/button.py

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

* remove unused logging

* Update homeassistant/components/totalconnect/button.py

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

* Update homeassistant/components/totalconnect/button.py

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

* fix button and test

* Revert "bump total_connect_client to 2023.12.1"

This reverts commit 189b7dcd89cf3cc8309dacc92ba47927cfbbdef3.

* bump total_connect_client to 2023.12.1

* use ZoneEntity for Bypass button

* use LocationEntity for PanelButton

* fix typing

* add translation_key for panel buttons

* mock clear_bypass instead of disarm

* use paramaterize

* use snapshot

* sentence case in strings

* remove un-needed stuff

* Update homeassistant/components/totalconnect/button.py

* Apply suggestions from code review

* Fix

---------

Co-authored-by: Jan-Philipp Benecke <github@bnck.me>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-29 09:47:05 +02:00
Erik Montnemery 0425b7aa6d Reduce scope of test fixtures for the pylint plugin tests (#116207) 2024-04-29 08:21:31 +02:00
J. Nick Koston 381ffe6eed Use built-in aiohttp timeout instead of asyncio.timeout in media_player (#116364)
* Use built-in aiohttp timeout instead of asyncio.timeout in media_player

Avoids having two timeouts running to fetch images

* fix mock
2024-04-29 07:38:40 +02:00
Austin Mroczek 8c73c1e1a5 Bump total_connect_client to 2024.4 (#116360) 2024-04-28 21:02:10 -05:00
J. Nick Koston 164403de20 Add thread safety checks to async_create_task (#116339)
* Add thread safety checks to async_create_task

Calling async_create_task from a thread almost always results in an
fast crash. Since most internals are using async_create_background_task
or other task APIs, and this is the one integrations seem to get wrong
the most, add a thread safety check here

* Add thread safety checks to async_create_task

Calling async_create_task from a thread almost always results in an
fast crash. Since most internals are using async_create_background_task
or other task APIs, and this is the one integrations seem to get wrong
the most, add a thread safety check here

* missed one

* Update homeassistant/core.py

* fix mocks

* one more internal

* more places where internal can be used

* more places where internal can be used

* more places where internal can be used

* internal one more place since this is high volume and was already eager_start
2024-04-28 18:29:00 -04:00
J. Nick Koston b8ddf51e28 Avoid creating tasks to update universal media player (#116350)
* Avoid creating tasks to update universal media player

Nothing was being awaited in async_update. This entity has polling
disabled and there was no reason to implement manual updates since
the state is always coming from other entities

* manual update
2024-04-28 18:17:26 -04:00
J. Nick Koston e215270c05 Remove eager_start argument from internal _async_add_hass_job function (#116310) 2024-04-28 16:30:19 -05:00
J. Nick Koston cdfd0aa7d4 Fix incorrect call to async_schedule_update_ha_state in manual_mqtt (#116348) 2024-04-28 12:55:28 -05:00
J. Nick Koston 66a9430410 Fix incorrect call to async_schedule_update_ha_state in generic_hygrostat (#116349) 2024-04-28 12:55:17 -05:00
J. Nick Koston 48d620ce94 Fix another case of homeassistant_alerts delaying shutdown (#116352) 2024-04-28 12:54:53 -05:00
J. Nick Koston ab2ea6100c Speed up singleton decorator so it can be used more places (#116292) 2024-04-28 12:11:08 -05:00
epenet 48b1678075 Add test helper to remove device (#116234)
* Add test helper to remove device

* Rename

* Fix signature
2024-04-28 18:50:15 +02:00
J. Nick Koston 3bcce2197c Fix incorrect call to async_schedule_update_ha_state in command_line switch (#116347) 2024-04-28 18:36:01 +02:00
J. Nick Koston 9ca1d204b6 Fix shelly delaying shutdown (#116346) 2024-04-28 11:19:38 -05:00
J. Nick Koston 62ab67376f Fix bond update delaying shutdown when push updated are not available (#116344)
If push updates are not available, bond could delay shutdown. The update
task should have been marked as a background task
2024-04-28 17:57:08 +02:00
J. Nick Koston ddf58b6905 Fix homeassistant_alerts delaying shutdown (#116340) 2024-04-28 10:36:03 -05:00
Joost Lekkerkerker 7a4aa3c40c Fix Netatmo indoor sensor (#116342)
* Debug netatmo indoor sensor

* Debug netatmo indoor sensor

* Fix
2024-04-28 17:34:27 +02:00
Jan Bouwhuis 986df70fe3 Refactor group setup (#116317)
* Refactor group setup

* Add @callback decorator and remove commented out code

* Keep set, add default on state
2024-04-28 16:32:17 +02:00
J. Nick Koston ad0aabe9a1 Fix some flapping sonos tests (#116343) 2024-04-28 09:21:32 -05:00
J. Nick Koston 6ccb165d8e Fix bluetooth adapter discovery delaying startup and shutdown (#116335) 2024-04-28 08:57:31 -05:00
J. Nick Koston bf91ab6e2b Fix sonos events delaying shutdown (#116337) 2024-04-28 08:54:34 -05:00
J. Nick Koston c3aa238a33 Fix wemo push updates delaying shutdown (#116333) 2024-04-28 08:14:45 -05:00
J. Nick Koston 006040270c Fix august delaying shutdown (#116329) 2024-04-28 08:14:30 -05:00
J. Nick Koston 66e86170b1 Make storage load tasks background tasks to avoid delaying shutdown (#116332) 2024-04-28 08:14:15 -05:00
J. Nick Koston ce42ad187c Fix unifiprotect delaying shutdown if websocket if offline (#116331) 2024-04-28 08:14:04 -05:00
J. Nick Koston 3f0c0a72db Prevent setup retry from delaying shutdown (#116328) 2024-04-28 08:13:51 -05:00
J. Nick Koston 76639252c9 Make discovery flow tasks background tasks (#116327) 2024-04-28 08:13:37 -05:00
J. Nick Koston 5d59b4cddd Remove unneeded TYPE_CHECKING guard in core async_set (#116311) 2024-04-27 19:34:17 -05:00
Jan Bouwhuis 43dc5415de Fix no will published when mqtt is down (#116319) 2024-04-27 18:42:38 -05:00
J. Nick Koston 50405fae5f Add a cache to _verify_event_type_length_or_raise (#116312)
Most of the time the events being fired are the same so we can
skip the python code in this function
2024-04-27 18:42:29 -05:00
IceBotYT 9fb01f3956 Convert Linear to use a base entity (#116133)
* Convert Linear to use a base entity

* Convert Linear to use a base entity

* Remove str cast in coordinator

* More minor fixes
2024-04-27 23:11:52 +02:00
wittypluck 3fd863bd7c Unifi: enable statistics for PoE port power sensor (#116308)
Add SensorStateClass.MEASUREMENT to PoE port power sensor
2024-04-27 22:21:08 +02:00
J. Nick Koston cf682c0c44 Use more shorthand attrs in emonitor (#116307) 2024-04-27 14:24:02 -05:00
David Knowles 83b5ecb36f Increase the Hydrawise refresh frequency from 120s to 30s (#116298) 2024-04-27 20:46:58 +02:00
J. Nick Koston cbcfd71f3d Reduce number of time calls needed to write state (#116297) 2024-04-27 13:17:31 -05:00
J. Nick Koston f295172d07 Add a fast path for _stringify_state when state is already a str (#116295) 2024-04-27 10:48:17 -05:00
J. Nick Koston eea66921bb Avoid update call in entity state write if there is no customize data (#116296) 2024-04-27 10:48:05 -05:00
Erik Montnemery b94b93cc63 Make freezegun find event.time_tracker_utcnow (#116284) 2024-04-27 07:08:56 -05:00
J. Nick Koston 7715bee6b0 Fix script in restart mode that is fired from the same trigger (#116247) 2024-04-27 07:08:29 -05:00
hopkins-tk a37d274b37 Fix Aseko binary sensors names (#116251)
* Fix Aseko binary sensors names

* Fix add missing key to strings.json

* Fix remove setting shorthand translation key attribute

* Update homeassistant/components/aseko_pool_live/strings.json

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-27 10:02:52 +02:00
Paulus Schoutsen 9819cdfec2 Bump version to 2024.5.0b1 2024-04-27 07:27:57 +00:00
Raman Gupta 3c48c41734 Bump zwave-js-server-python to 0.55.4 (#116278) 2024-04-27 07:27:50 +00:00
J. Nick Koston 46dff86d1a Move thread safety check in area_registry sooner (#116265)
It turns out we have custom components that are writing to the area registry using the async APIs from threads. We now catch it at the point async_fire is called. Instead we should check sooner and use async_fire_internal so we catch the unsafe operation before it can corrupt the registry.
2024-04-27 07:27:49 +00:00
J. Nick Koston 85baa2508d Move thread safety check in device_registry sooner (#116264)
It turns out we have custom components that are writing to the device registry using the async APIs from threads. We now catch it at the point async_fire is called. Instead we should check sooner and use async_fire_internal so we catch the unsafe operation before it can corrupt the registry.
2024-04-27 07:27:49 +00:00
J. Nick Koston 8d11a9f21a Move thread safety check in entity_registry sooner (#116263)
* Move thread safety check in entity_registry sooner

It turns out we have a lot of custom components that are writing
to the entity registry using the async APIs from threads. We now
catch it at the point async_fire is called. Instread we should check
sooner and use async_fire_internal so we catch the unsafe operation
before it can corrupt the registry.

* coverage

* Apply suggestions from code review
2024-04-27 07:27:48 +00:00
Paul Bottein 603f46184c Update frontend to 20240426.0 (#116230) 2024-04-27 07:27:47 +00:00
Aidan Timson e9c4185cf6 Fix state classes for ovo energy sensors (#116225)
* Fix state classes for ovo energy sensors

* Restore monetary values

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

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-04-27 07:27:47 +00:00
Robert Resch 2861ac4ac9 Use None as default value for strict connection cloud store (#116219) 2024-04-27 07:27:46 +00:00
Erik Montnemery 5fb08e8b25 Restore default timezone after electric_kiwi sensor tests (#116217) 2024-04-27 07:27:45 +00:00
Brett Adams 8f02ed4bf3 Breakfix to handle null value in Teslemetry (#116206)
* Fixes

* Remove unused test
2024-04-27 07:27:44 +00:00
Erik Montnemery 1be5249269 Reduce scope of bootstrap test fixture to module (#116195) 2024-04-27 07:27:43 +00:00
J. Nick Koston 9f84c38f08 Bump bluetooth-auto-recovery to 1.4.2 (#116192) 2024-04-27 07:27:42 +00:00
Erik Montnemery a9b9d7f566 Fix flaky traccar_server tests (#116191) 2024-04-27 07:27:42 +00:00
J. Nick Koston 63ef52a312 Fix smartthings doing I/O in the event loop to import platforms (#116190) 2024-04-27 07:27:41 +00:00
Luke Lashley 8ac6593b53 Make Roborock listener update thread safe (#116184)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-27 07:27:40 +00:00
On Freund 7cabb04bc9 Bump pyrisco to 0.6.1 (#116182) 2024-04-27 07:27:39 +00:00
J. Nick Koston 1defd18cf5 Bump govee-ble to 0.31.2 (#116177)
changelog: https://github.com/Bluetooth-Devices/govee-ble/compare/v0.31.0...v0.31.2

Fixes some unrelated BLE devices being detected as a GVH5106
2024-04-27 07:27:38 +00:00
Jan Bouwhuis e0cc9198aa Revert "Return specific group state if there is one" (#116176)
Revert "Return specific group state if there is one (#115866)"

This reverts commit 350ca48d4c.
2024-04-27 07:27:37 +00:00
Michael Hansen 5ac8488d2a Update Ollama model names list (#116172) 2024-04-27 07:27:36 +00:00
J. Nick Koston 12bce5451e Revert orjson to 3.9.15 due to segmentation faults (#116168) 2024-04-27 07:27:36 +00:00
Erik Montnemery 4612f18186 Remove early return when validating entity registry items (#116160) 2024-04-27 07:27:35 +00:00
Paul Bottein 29ab68fd24 Update unlocked icon for locks (#116157) 2024-04-27 07:27:34 +00:00
Erik Montnemery 0b74f02c4e Fix language in strict connection guard page (#116154) 2024-04-27 07:27:34 +00:00
epenet 571c86cb91 Handle invalid device type in onewire (#116153)
* Make device type optional in onewire

* Add comment
2024-04-27 07:27:33 +00:00
Erik Montnemery 18f1c0c9f3 Fix lying docstring for relative_time template function (#116146)
* Fix lying docstring for relative_time template function

* Update homeassistant/helpers/template.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-27 07:27:32 +00:00
Erik Montnemery c8d025f525 Remove deprecation warnings for relative_time (#116144)
* Remove deprecation warnings for relative_time

* Update homeassistant/helpers/template.py

Co-authored-by: Simon <80467011+sorgfresser@users.noreply.github.com>

---------

Co-authored-by: Simon <80467011+sorgfresser@users.noreply.github.com>
2024-04-27 07:27:32 +00:00
On Freund 74f32cfa90 Avoid blocking the event loop when unloading Monoprice (#116141)
* Avoid blocking the event loop when unloading Monoprice

* Code review suggestions
2024-04-27 07:27:31 +00:00
rappenze f91266908d Bump pyfibaro to 0.7.8 (#116126) 2024-04-27 07:27:30 +00:00
Joakim Plate d6f1d0666c Update rfxtrx to 0.31.1 (#116125) 2024-04-27 07:27:29 +00:00
Joakim Plate 0eace572c6 Don't create event entries for lighting4 rfxtrx devices (#115716)
These have no standardized command need to be reworked
in the backing library to support exposing as events.

Fixes #115545
2024-04-27 07:27:28 +00:00
Maciej Bieniek c65187cbfb Fix climate entity creation when Shelly WallDisplay uses external relay as actuator (#115216)
* Fix climate entity creation when Shelly WallDisplay uses external relay as actuator

* More comments

* Wrap condition into function

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-27 07:27:27 +00:00
J. Nick Koston b403c9f92e Move thread safety check in area_registry sooner (#116265)
It turns out we have custom components that are writing to the area registry using the async APIs from threads. We now catch it at the point async_fire is called. Instead we should check sooner and use async_fire_internal so we catch the unsafe operation before it can corrupt the registry.
2024-04-27 09:26:35 +02:00
epenet c1572d9600 Handle invalid device type in onewire (#116153)
* Make device type optional in onewire

* Add comment
2024-04-27 09:26:26 +02:00
On Freund 97d151d1c6 Avoid blocking the event loop when unloading Monoprice (#116141)
* Avoid blocking the event loop when unloading Monoprice

* Code review suggestions
2024-04-27 09:26:11 +02:00
J. Nick Koston 244433aeca Move thread safety check in entity_registry sooner (#116263)
* Move thread safety check in entity_registry sooner

It turns out we have a lot of custom components that are writing
to the entity registry using the async APIs from threads. We now
catch it at the point async_fire is called. Instread we should check
sooner and use async_fire_internal so we catch the unsafe operation
before it can corrupt the registry.

* coverage

* Apply suggestions from code review
2024-04-27 09:25:19 +02:00
Marc Mueller 4a79e750a1 Add HA version to cache key (#116159)
* Add HA version to cache key

* Add comment
2024-04-27 09:25:08 +02:00
J. Nick Koston 09ebbfa0e1 Move thread safety check in device_registry sooner (#116264)
It turns out we have custom components that are writing to the device registry using the async APIs from threads. We now catch it at the point async_fire is called. Instead we should check sooner and use async_fire_internal so we catch the unsafe operation before it can corrupt the registry.
2024-04-27 09:24:55 +02:00
Raman Gupta 8bae614d4e Bump zwave-js-server-python to 0.55.4 (#116278) 2024-04-27 09:24:23 +02:00
Joakim Plate ff4b8fa5e3 Don't create event entries for lighting4 rfxtrx devices (#115716)
These have no standardized command need to be reworked
in the backing library to support exposing as events.

Fixes #115545
2024-04-27 09:24:11 +02:00
Erik Montnemery a25b2168a3 Reduce scope of ZHA test fixtures (#116208) 2024-04-26 09:08:58 -05:00
Erik Montnemery aa65f21be7 Fix flapping recorder tests (#116239) 2024-04-26 09:05:23 -05:00
Erik Montnemery c9301850be Reduce scope of bluetooth test fixtures (#116210) 2024-04-26 09:03:49 -05:00
Brett Adams e909074dfb Breakfix to handle null value in Teslemetry (#116206)
* Fixes

* Remove unused test
2024-04-26 15:44:13 +02:00
Paul Bottein 63dffbcce1 Update frontend to 20240426.0 (#116230) 2024-04-26 15:40:32 +02:00
Erik Montnemery 10be8f9683 Simplify timezone setting in recorder test (#116220) 2024-04-26 15:14:23 +02:00
Bram Kragten b582d51a8a Remove myself as codeowner for Harmony (#116241)
* Remove myself as codeowner

* Update CODEOWNERS

* Format
2024-04-26 14:31:37 +02:00
Aidan Timson 7c64658aa9 Fix state classes for ovo energy sensors (#116225)
* Fix state classes for ovo energy sensors

* Restore monetary values

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

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-04-26 14:03:16 +02:00
Erik Montnemery 56f2f10a17 Fix flapping trafikverket tests (#116238)
* Fix flapping trafikverket tests

* Fix copy-paste mistake
2024-04-26 13:49:43 +02:00
Erik Montnemery 09a18459ff Restore default timezone after electric_kiwi sensor tests (#116217) 2024-04-26 12:28:40 +02:00
Robert Resch 67f6a84f5d Use None as default value for strict connection cloud store (#116219) 2024-04-26 11:22:04 +02:00
dependabot[bot] 49d8ac0811 Bump github/codeql-action from 3.25.2 to 3.25.3 (#116209)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.2 to 3.25.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3.25.2...v3.25.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-26 08:50:58 +02:00
Sid e662e3b65c Bump ruff to 0.4.2 (#116201)
* Bump ruff to 0.4.2

* review comments
2024-04-26 08:48:32 +02:00
Erik Montnemery 623d34e1e0 Remove early return when validating entity registry items (#116160) 2024-04-26 08:38:24 +02:00
Erik Montnemery 764b34ab62 Reduce scope of bootstrap test fixture to module (#116195) 2024-04-25 22:00:07 -05:00
Erik Montnemery db8597a742 Reduce scope of JSON/XML test fixtures (#116197) 2024-04-25 19:12:36 -05:00
Jan Bouwhuis 372c6c7874 Use existing monotonic timestamp on mqtt messages for debugging (#116196) 2024-04-25 19:09:54 -05:00
Joost Lekkerkerker 4a1e1bd1b9 Improve linear coordinator (#116167)
* Improve linear coordinator

* Fix

* Fix
2024-04-25 22:57:29 +02:00
Thomas55555 ccc2f6c5b5 Add strict typing to husqvarna automower (#115374) 2024-04-25 15:39:42 -05:00
J. Nick Koston 421dbe1356 Bump bluetooth-auto-recovery to 1.4.2 (#116192) 2024-04-25 15:37:38 -05:00
Joost Lekkerkerker 860ac450c4 Use snapshots in Linear diagnostics tests (#116169)
* Use snapshots in Linear diagnostics tests

* Use snapshots in Linear diagnostics tests
2024-04-25 22:23:13 +02:00
Patrick Frazer 1e06054344 Bump dropmqttapi to 1.0.3 (#116179) 2024-04-25 15:00:21 -05:00
Anrijs 8649489117 Add support for Aranet radiation devices (#115239)
* sensor: added radiation dose sensor type and units

* Add support for Aranet Radiation devices

* Fix Aranet Radiation CI issues

* Revert "sensor: added radiation dose sensor type and units"

This reverts commit 28736a7da760d3490e879bb7fe5b17f8f2b851f4.

* aranet4: bump version to 2.3.3

* aranet radiation: remove removed sesnor consts

* aranet radiation: use radioactive icon by default

---------

Co-authored-by: Shay Levy <levyshay1@gmail.com>
2024-04-25 22:38:20 +03:00
Thomas55555 a8b41c90c5 Bump aioautomower to 2024.4.4 (#116185) 2024-04-25 14:36:00 -05:00
Erik Montnemery 9d33965bc9 Fix flaky traccar_server tests (#116191) 2024-04-25 21:20:24 +02:00
J. Nick Koston 8523df952e Fix smartthings doing I/O in the event loop to import platforms (#116190) 2024-04-25 14:07:07 -05:00
Maciej Bieniek 51bceb1c99 Fix climate entity creation when Shelly WallDisplay uses external relay as actuator (#115216)
* Fix climate entity creation when Shelly WallDisplay uses external relay as actuator

* More comments

* Wrap condition into function

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-25 21:06:52 +02:00
Michael Hansen b3124aa7ed Update Ollama model names list (#116172) 2024-04-25 20:35:29 +02:00
Luke Lashley cc79129587 Make Roborock listener update thread safe (#116184)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-25 13:26:11 -05:00
Joakim Plate 316f58404d Update rfxtrx to 0.31.1 (#116125) 2024-04-25 20:58:13 +03:00
rappenze 18be38d19f Bump pyfibaro to 0.7.8 (#116126) 2024-04-25 20:57:15 +03:00
J. Nick Koston 1e95476fa8 Bump govee-ble to 0.31.2 (#116177)
changelog: https://github.com/Bluetooth-Devices/govee-ble/compare/v0.31.0...v0.31.2

Fixes some unrelated BLE devices being detected as a GVH5106
2024-04-25 20:56:33 +03:00
On Freund 0467fca316 Bump pyrisco to 0.6.1 (#116182) 2024-04-25 20:43:31 +03:00
J. Nick Koston 98eb9a4067 Revert orjson to 3.9.15 due to segmentation faults (#116168) 2024-04-25 11:15:57 -05:00
Jan Bouwhuis 855bb57d5e Revert "Return specific group state if there is one" (#116176)
Revert "Return specific group state if there is one (#115866)"

This reverts commit 350ca48d4c.
2024-04-25 17:32:42 +02:00
Erik Montnemery 6bff0c384f Remove deprecation warnings for relative_time (#116144)
* Remove deprecation warnings for relative_time

* Update homeassistant/helpers/template.py

Co-authored-by: Simon <80467011+sorgfresser@users.noreply.github.com>

---------

Co-authored-by: Simon <80467011+sorgfresser@users.noreply.github.com>
2024-04-25 13:02:18 +02:00
Erik Montnemery 2e88ba40ff Fix lying docstring for relative_time template function (#116146)
* Fix lying docstring for relative_time template function

* Update homeassistant/helpers/template.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-25 13:01:41 +02:00
Marc Mueller e2c60e9333 Update mypy to 1.10.0 (#116158) 2024-04-25 12:27:34 +02:00
dependabot[bot] 1e1e5ccc7a Bump actions/download-artifact from 4.1.6 to 4.1.7 (#116148)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.1.6 to 4.1.7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4.1.6...v4.1.7)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-25 11:23:15 +02:00
Paul Bottein ce4db445e8 Update unlocked icon for locks (#116157) 2024-04-25 11:21:19 +02:00
dependabot[bot] 1241d70b3b Bump actions/checkout from 4.1.3 to 4.1.4 (#116147)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.3 to 4.1.4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.3...v4.1.4)

---
updated-dependencies:
- dependency-name: actions/checkout
  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-04-25 10:52:57 +02:00
Erik Montnemery 59dc394ac7 Fix language in strict connection guard page (#116154) 2024-04-25 10:48:32 +02:00
Chris Roberts 12c2ed5c4d Add play/pause functionality for Vizio Smartcast media_player entities (#108896)
* Add play/pause functionality to vizio integration

Leverages existing pyvizio functionality. My impression is that it also
works for soundbars based on https://github.com/exiva/Vizio_SmartCast_API/issues/19.

* Set vizio assumed_state to True

The Vizio API is only capable of indicating whether the device is on
or off and not whether it's playing/paused/idle. Setting assumed_state
to True gives us separate Play and Pause buttons versus the (useless)
merged Play/Pause button we would get otherwise.
2024-04-25 08:25:10 +02:00
Franck Nijhof f2fe62d159 Bump version to 2024.6.0dev0 (#116120) 2024-04-24 23:16:48 +02:00
Franck Nijhof 0c44051d2a Bump version to 2024.5.0b0 2024-04-24 21:05:09 +02:00
prabhjotsbhatia-ca 79d6c2e75a Add all supported languages to Google Translate and remove unsupported ones (#107404)
* Adding supported language codes from Google Translate

Added all languages that Google Translate supports.

* Corrected alphabetical order of languages

* Remove languages not actually supported for speech

Previously I added languages supported by Google Translate. Based on comments received, I manually verified each language, and  removed languages that are not actually supported for speech in Google Translate.

* Add instructions to update the list of supported languages

Added instructions as suggested so as to facilitate easier update on this list.

* Reformat comment in const.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-24 20:51:46 +02:00
Robert Svensson f8c38fad00 Split out event handling from Axis hub (#113837)
* Split out event handling from Axis hub

* Improve test coverage

* Mark internal methods with '_'

* Rename to event source
2024-04-24 20:47:22 +02:00
Michael 4b53471b60 Bump aiopegelonline to 0.0.10 (#116114)
bump aiopegelonline to 0.0.10
2024-04-24 20:09:40 +02:00
Daniel Hjelseth Høyer 830e8d7b94 Fix statistic bug in Tibber sensor (#116112)
* Handle keyError in Tibber sensor

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

* Constant

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

---------

Signed-off-by: Daniel Hjelseth Høyer <github@dahoiv.net>
2024-04-24 20:00:06 +02:00
Mr. Bubbles 67021be274 Add notification service for Bring component (#109222)
* Add notification service for Bring component

* change to async

* update to new library and raise for urgent message without item name

* add icons.json and replace string with reference in strings.json

* Incorporate proposed changes from https://github.com/home-assistant/core/pull/115510

* Remove unnecessary exception, rewrite translations strings

* remove unused constants
2024-04-24 19:41:46 +02:00
Michael Hansen bc7fa8cf9e Bump intents to 2024.4.24 (#116111) 2024-04-24 18:41:17 +02:00
Steve Easley d565c1a84b Add select platform to jvc_projector component (#111638)
* Initial commit of jvc_projector select platform

* Move icon to icons.json

* Apply suggestions from code review

* Update tests/components/jvc_projector/test_select.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-24 17:36:50 +02:00
Simone Chemelli 41a86d2404 Add quality scale to Vodafone Station (#116040)
Add quality scale
2024-04-24 17:36:31 +02:00
Simone Chemelli 7d5af09aec Add quality scale to Comelit (#116041)
add quality scale
2024-04-24 17:32:12 +02:00
TheJulianJES 5c3ffb8f55 Bump ZHA dependencies (#116106) 2024-04-24 17:24:43 +02:00
Joakim Sørensen f83ee963bf Add binary sensor entities to Traccar Server (#114719) 2024-04-24 17:08:56 +02:00
Manuel Dipolt 2beab34de8 Add sensor platform to romy integration (#112388)
* poc romy status sensor working

* poc romy adc sensor working

* code review changes

* code review changes base enitity.py see branch romy_binary_sensor

* code review change: move CoordinatorEntity to the base class

* code review changes: sensors disabled per default

* code review: icons.json added

* checkout main entity.py

* code review changes: sensors enabled per default again

* disable rssi sensor per default

* Update homeassistant/components/romy/strings.json

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

* code review changes

* code review changes

* code review changes

* pylint fix

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-24 17:06:46 +02:00
puddly 380f192c93 Expose the SkyConnect integration with a firmware config/options flow (#115363)
Co-authored-by: Stefan Agner <stefan@agner.ch>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik <erik@montnemery.com>
2024-04-24 17:06:24 +02:00
J. Nick Koston e47e62cbbf Reduce duplicate code in enphase_envoy (#116107)
Also converts a coro to a callback function since nothing
was being awaited
2024-04-24 16:58:46 +02:00
Phil Bruckner 169b9b0bfe Fix removing suggested_display_precision from entity registry (#110671)
* Fix removing suggested_display_precision from entity registry

* Fix tests

* Update homeassistant/components/sensor/__init__.py

---------

Co-authored-by: Erik <erik@montnemery.com>
2024-04-24 16:47:03 +02:00
Arie Catsman bbaa0c16cc Cancel timer on enphase_envoy config entry unload (#111406)
* lingeringtimer

* Add async_cleanup to enphase_envoy_coordinator and call from unload_entry
2024-04-24 16:33:14 +02:00
nyangogo c9ff618ef0 Add nfandroidtv type checking and allow for strings to be passed to the image and icon data (#108652)
* nfandroidtv - add type checking and allow for strings to be passed to the image and icon data

* nfandroidtv - wrong argument name

* nfandroidtv - put the icon in the wrong varible 🙃

* nfandroidtv - raise ServiceValidationError instead of logging

---------

Co-authored-by: nyangogo <7449028+ioangogo@users.noreply.github.com>
2024-04-24 16:19:44 +02:00
J. Nick Koston d0f5e40b19 Refactor ESPHome manager to avoid sending signals in tests (#116033) 2024-04-24 16:14:44 +02:00
Manuel Dipolt 220dc1f125 Add binary sensor platform to romy integration (#112998)
* wip

* poc working, reworked to a binary sensor list

* Update homeassistant/components/romy/binary_sensor.py

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

* Update homeassistant/components/romy/binary_sensor.py

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

* Update homeassistant/components/romy/binary_sensor.py

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

* Update homeassistant/components/romy/binary_sensor.py

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

* Update homeassistant/components/romy/binary_sensor.py

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

* code review changes, adjust translation key names

* code review clean up: removed unecessary RomyBinarySensorEntityDescription

* code review changes: translation names

* code review changes, put DeviceInfo into RomyEntity

* code review change: change docked icon to type plug

* code review change: move CoordinatorEntity to the base class

* code review changes: sensors disabled per default

* code review: icons.json added

* code review changes: sensors enabled per default again

* checkout main entity.py

* type hinting changes

* Update homeassistant/components/romy/binary_sensor.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-24 15:59:09 +02:00
mletenay 74cea2ecae Update goodwe library to 0.3.2 (#115309) 2024-04-24 15:31:29 +02:00
Bram Kragten ea96ac37b7 Update frontend to 20240424.1 (#116103) 2024-04-24 15:29:51 +02:00
Jan Bouwhuis 70b358bca1 Always reload after a successful reauth flow (#116026)
* Always reload after a succesfull reauth-flow

* Add test, fix CI failures

* Add kwarg to prevent reloading and tests

* Do not reload entry for bond if it exists

* Remove mocks on internals

* Rename kwarg to always_reload

* Update tests/components/weatherflow_cloud/test_config_flow.py

* Update tests/components/homeworks/test_config_flow.py

* Update tests/components/homeworks/test_config_flow.py

* Rename to option to reload_even_if_entry_is_unchanged
2024-04-24 15:13:33 +02:00
Jan Bouwhuis 350ca48d4c Return specific group state if there is one (#115866)
* Return specific group state if there is one

* Refactor

* Additional test cases

* Refactor

* Break out if more than one on state

* tweaks

* Remove log, add comment

* add comment

* Apply suggestions from code review

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

* Refactor and improve comments

* Refactor to class method

* More filtering

* Apply suggestions from code review

* Only active if not excluded

* Do not use a set

* Apply suggestions from code review

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

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-24 15:12:29 +02:00
Shai Ungar 1f4585cc9e Add service to 17track to get packages (#116067)
* Add service to 17track

* Add service to 17track

change to select selector
add snapshot test

* Add service to 17track

use strings for the selector

* Add service to 17track

fix test
2024-04-24 14:29:13 +02:00
Pete Sage 24a1f0712f Fix Sonos music library play problems (#113429) 2024-04-24 14:03:40 +02:00
Brett Adams 0e0b543dec Deprecate speed limit lock in Tessie (#113848) 2024-04-24 13:30:22 +02:00
Jan Bouwhuis 18132916fa Mask current password in MQTT option flow (#116098)
* Mask current password in MQTT option flow

* Update docstr

* Typo
2024-04-24 13:29:42 +02:00
Andy 5aa61cb6d5 Extend options for ecovacs lifespans (#116094)
Co-authored-by: Robert Resch <robert@resch.dev>
2024-04-24 13:19:50 +02:00
Michael bfed682abe Mark Tankerkoenig as Platinum 🏆 integration (#115917) 2024-04-24 13:18:09 +02:00
Marc Mueller a752f8e7d7 Remove microsoft apt package list before update (#116097) 2024-04-24 13:17:01 +02:00
Michael 9fcb774252 Add reconfigure flow to AVM Fritz!SmartHome (#116047) 2024-04-24 13:06:14 +02:00
J. Nick Koston d17e9bfc99 Enable debug mode if asyncio debug is on at startup (#116084) 2024-04-24 12:55:09 +02:00
J. Nick Koston df12789e08 Remove duplicate async_write_ha_state thread safety check (#116086) 2024-04-24 12:46:16 +02:00
J. Nick Koston e3984cd50a Temporary CI workaround for broken microsoft ubuntu repo (#116091) 2024-04-24 12:06:52 +02:00
J. Nick Koston e9e401ae29 Migrate discovery debouncer callback to async_fire_internal (#116078) 2024-04-24 11:26:48 +02:00
rlippmann 1120246194 Deprecate relative_time() in favor of time_since() and time_until() (#111177)
* add time_since/time_until.  add deprecation of relative_time

* fix merge conflicts

* Apply suggestions from code review

* Update homeassistant/helpers/template.py

* Update homeassistant/helpers/template.py

* Update homeassistant/helpers/template.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-24 11:13:07 +02:00
J. Nick Koston e0b58c3f45 Move thread safety check in async_register/async_remove (#116077) 2024-04-24 10:41:11 +02:00
Marc Mueller 5bded2a52d Fix accuweather system_health after data change (#116063) 2024-04-24 10:30:57 +02:00
Robert Resch bcc2dd99b2 Rename strict connection static page to guard page (#116085) 2024-04-24 10:29:59 +02:00
Simon Roberts 07d68eacfa Fix iotawatt warnings about "Detected new cycle for sensor.{sensorname}_wh_last" (#115909)
* Bump ha-iotawattpy to 0.1.2

* Remove energy energy-over-period sensors: they cause issue for HA

---------

Co-authored-by: Stefan Agner <stefan@agner.ch>
2024-04-24 10:24:49 +02:00
TheJulianJES 102b34123c Bump zha-quirks to 0.0.115 (#116071) 2024-04-24 10:17:01 +02:00
Gage Benne c4340f6f5f Ecobee preset mode icon translations (#116072) 2024-04-24 10:16:35 +02:00
J. Nick Koston 79b4889812 Always do thread safety checks when writing state for custom components (#116044) 2024-04-24 10:05:52 +02:00
Bouwe Westerdijk 6f2a2ba46e Bump plugwise to v0.37.3 (#116081) 2024-04-24 10:00:18 +02:00
Robert Resch a4829330f6 Add strict connection for cloud (#115814)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-24 09:57:38 +02:00
J. Nick Koston b520efb87a Small speed up to async_track_event (#116083) 2024-04-24 09:56:59 +02:00
Robert Resch ec377ce665 Bump deebot-client to 7.1.0 (#116082) 2024-04-24 09:49:10 +02:00
Richard Kroegel 474a1a3d94 Use display_precision if suggested_display_precision is None (#110270)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-24 09:46:55 +02:00
osohotwateriot 44208a5be0 Add OSO Energy sensors (#108226)
* Add OSO Energy sensors

* Fix comments

* Fixes after review

* Fix sensor names and translations

* Fixes after review

* Fix validation errors

* Fixes after review

* Remove profile sensor
2024-04-24 08:19:26 +02:00
Michael d8cca482b3 Add reconfigure flow to AVM Fritz!Tools (#116057)
add reconfigure flow
2024-04-24 07:52:14 +02:00
Matthias Alphart f115525137 Migrate KNX notify service to entity platform (#115665) 2024-04-24 07:51:02 +02:00
Sid b37f7b1ff0 Enable Ruff RUF019 (#115396)
* Enable Ruff RUF019

* fix tado tests

* review comments
2024-04-24 07:23:24 +02:00
J. Nick Koston 4a59ee978c Always do thread safety checks when calling async_fire (#116055) 2024-04-24 06:41:55 +02:00
J. Nick Koston 53a179088f Add debug mode to catch unsafe thread operations using core helpers (#115390)
* adjust

* adjust

* fixes

* one more

* test

* debug

* move to config

* cover

* Update homeassistant/core.py

* set debug from RuntimeConfig

* reduce

* fix message

* raise

* Update homeassistant/core.py

* Update homeassistant/core.py

* no flood check for raise

* cover
2024-04-24 03:36:05 +02:00
J. Nick Koston 9d54aa205b Fix non-thread-safe operations in html5 (#116068)
Fix non thread-safe calls in html5

https://github.com/home-assistant/core/actions/runs/8808425552/job/24177668764?pr=116055
2024-04-24 03:33:19 +02:00
J. Nick Koston b1b8b8ba00 Fix non-thread-safe operations in wake_on_lan (#116069)
Fix unsafe thread operations in wake_on_lan

https://github.com/home-assistant/core/actions/runs/8808429751/job/24177715837?pr=116066
2024-04-24 03:32:07 +02:00
J. Nick Koston f2336a5a3a Fix non-thread-safe operation in harmony (#116070)
Fix unsafe thread operation in harmony

https://github.com/home-assistant/core/actions/runs/8808429751/job/24177716644?pr=116066
2024-04-24 03:31:44 +02:00
David Friedland e3016b131a Add Event support to ESPHome components (#116061)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2024-04-24 13:22:03 +12:00
J. Nick Koston f9c2cd73f5 Fix non-thread-safe operations in media_extractor (#116065) 2024-04-24 02:19:18 +02:00
dependabot[bot] 62dadc47ff Bump github/codeql-action from 3.25.1 to 3.25.2 (#116016)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-24 00:02:31 +02:00
Michael 35db2e4101 Complete test coverage for Tankerkonig (#115920)
* complete tests

* update snapshots after rebase
2024-04-23 23:42:17 +02:00
Jan Bouwhuis 72ed16c3e0 Update quality scale mqtt integration to platinum (#116059) 2024-04-23 23:20:34 +02:00
Jan Bouwhuis 8d2813fb8b Migrate legacy Ecobee notify service (#115592)
* Migrate legacy Ecobee notify service

* Correct comment

* Update homeassistant/components/ecobee/notify.py

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

* Use version to check latest entry being used

* Use 6 months of deprecation

* Add repair flow tests

* Only allow migrate_notify fix flow

* Simplify repair flow

* Use ecobee data to refrence entry

* Make entry attrubute puiblic

* Use hass.data ro retrieve entry.

* Only register issue when legacy service when it is use

* Remove backslash

* Use ws_client.send_json_auto_id

* Cleanup

* Import domain from notify integration

* Apply suggestions from code review

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

* Update dependencies

* Use Issue_registry fixture

* remove `update_before_add` flag

* Update homeassistant/components/ecobee/notify.py

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

* Update homeassistant/components/ecobee/notify.py

* Update tests/components/ecobee/conftest.py

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

* Fix typo and import

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-23 22:53:13 +02:00
J. Nick Koston 0f60b404df Fix husqvarna_automower typing (#116060) 2024-04-23 22:50:31 +02:00
Franck Nijhof f828eb2301 Merge branch 'master' into dev 2024-04-23 22:40:16 +02:00
Joost Lekkerkerker a45040af14 Add entity translations to 17track (#116022) 2024-04-23 22:30:20 +02:00
J. Nick Koston a22c221722 Rename bus._async_fire to bus.async_fire_internal (#116027) 2024-04-23 22:28:31 +02:00
Jan Bouwhuis 31d11b2362 Add re-auth flow for MQTT broker username and password (#116011)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-23 22:26:01 +02:00
J. Nick Koston 0c583bb1d9 Fix ruff complaints in control4 (#116058) 2024-04-23 22:25:35 +02:00
J. Nick Koston 8f1761343e Only work out job type once when setting up dispatcher (#116030) 2024-04-23 22:24:36 +02:00
Thomas55555 f1fa33483e Bump aioautomower to 2024.4.3 (#114500) 2024-04-23 22:23:44 +02:00
Bouwe Westerdijk 2c7a1ddb1d Bump plugwise to v0.37.2 (#115989) 2024-04-23 22:13:09 +02:00
Brett Adams f249a9ba4b Add API scope checks to Teslemetry (#113640) 2024-04-23 22:11:41 +02:00
Nalin Mahajan a33aacfcaa Add Retry for C4 API due to flakiness (#113857)
Co-authored-by: nalin29 <nalin29@github.com>
2024-04-23 22:10:16 +02:00
J. Nick Koston fd08b7281e Convert solaredge to asyncio with aiosolaredge (#115599) 2024-04-23 22:07:16 +02:00
Jan Bouwhuis d08bb96d00 Deprecate Unify Circuit integration (#115528)
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-04-23 21:59:03 +02:00
Joost Lekkerkerker b5bd25d4fb Add entity translations to totalconnect (#115950) 2024-04-23 21:54:13 +02:00
J. Nick Koston bb2bd086bc Add missing adapter data to Bluetooth config entry titles (#115930) 2024-04-23 21:52:55 +02:00
Franck Nijhof 60be2af8ac 2024.4.4 (#116045) 2024-04-23 21:50:08 +02:00
Robert Svensson 8bf3c87336 Breakout heartbeat monitor and poe command queue in UniFi (#112529)
* Split out entity helper functionality to own class

* Split out heartbeat to own class

* Break out poe command

* Make more parts private

* Make more things private and simplify naming

* Sort initialize

* Fix ruff
2024-04-23 21:45:20 +02:00
Franck Nijhof 3e0a45eee2 Update requests_mock to 1.12.1 (#116050) 2024-04-23 21:36:36 +02:00
J. Nick Koston 46ec8a85b6 Pass the job type when setting up homekit state change listeners (#116038) 2024-04-23 21:31:08 +02:00
Franck Nijhof 991e479dac Update coverage to 7.5.0 (#116048) 2024-04-23 21:26:00 +02:00
Franck Nijhof 61cf7e851b Update pipdeptree to 2.17.0 (#116049) 2024-04-23 21:13:32 +02:00
Markus Jacobsen 0ed48c844d Bump mozart-api to 3.4.1.8.5 (#113745) 2024-04-23 21:06:06 +02:00
Franck Nijhof 4d551d68c6 Bump version to 2024.4.4 2024-04-23 20:12:21 +02:00
Raj Laud b521acb724 Use start helper in squeezebox for server discovery (#115978) 2024-04-23 20:12:06 +02:00
Michael 036b6fca25 Fix geo location attributes of Tankerkoenig sensors (#115914)
* geo location attributes needs to be float

* make mypy happy
2024-04-23 20:12:04 +02:00
Allen Porter c9c7c7803e Bump ical to 8.0.0 (#115907)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-23 20:12:01 +02:00
jjlawren b8b2f6427a Bump plexapi to 4.15.12 (#115872) 2024-04-23 20:11:58 +02:00
Ståle Storø Hauknes 13ed2d2919 Fix KeyError error when fetching sensors (Airthings) (#115844) 2024-04-23 20:11:55 +02:00
J. Nick Koston 32f82d480f Ensure scripts with timeouts of zero timeout immediately (#115830) 2024-04-23 20:11:52 +02:00
Robert Svensson 6464218e59 Bump aiounifi to v75 (#115819) 2024-04-23 20:11:49 +02:00
Simone Chemelli 4088447303 Add missing media_player features to Samsung TV (#115788)
* add missing features

* fix snapshot
2024-04-23 20:11:46 +02:00
Erik Montnemery 851a5497b4 Allow [##:##:##] type keypad address in homeworks (#115762)
Allow [##:##:##] type keypad address
2024-04-23 20:11:43 +02:00
Erik Montnemery c4b504ce39 Fix homeworks import flow (#115761) 2024-04-23 20:11:40 +02:00
epenet db31a526e5 Bump renault-api to 0.2.2 (#115738) 2024-04-23 20:11:36 +02:00
J. Nick Koston 8207fc29d2 Bump aiohttp to 3.9.5 (#115727)
changelog: https://github.com/aio-libs/aiohttp/compare/v3.9.4...v3.9.5
2024-04-23 20:08:08 +02:00
J. Nick Koston 630763ad9e Bump sqlparse to 0.5.0 (#115681)
fixes https://github.com/home-assistant/core/security/dependabot/54
fixes https://github.com/home-assistant/core/security/dependabot/55
2024-04-23 20:07:08 +02:00
J. Nick Koston 09ed0aa399 Bump httpcore to 1.0.5 (#115672)
Fixes missing handling of EndOfStream errors
2024-04-23 20:07:05 +02:00
Brett Adams 66918d1686 Fix sensor entity description in Teslemetry (#115614)
Add description back to sensor entity
2024-04-23 20:07:02 +02:00
jan iversen 3d68ee99a4 Modbus: Bump pymodbus v3.6.8 (#115574) 2024-04-23 20:06:59 +02:00
Brett Adams 37a82c8785 Fix Teslemetry sensor values (#115571) 2024-04-23 20:06:56 +02:00
J. Nick Koston 038040db5e Fix race in TimestampDataUpdateCoordinator (#115542)
* Fix race in TimestampDataUpdateCoordinator

The last_update_success_time value was being set after the listeners
were fired which could lead to a loop because the listener may
re-trigger an update because it thinks the data is stale

* coverage

* docstring
2024-04-23 20:06:53 +02:00
Marc Mueller b770edc16e Update pillow to 10.3.0 (#115524) 2024-04-23 20:06:50 +02:00
J. Nick Koston e1a2416076 Bump zeroconf to 0.132.2 (#115505) 2024-04-23 20:06:47 +02:00
J. Nick Koston 6247624514 Bump zeroconf to 0.132.1 (#115501) 2024-04-23 20:06:44 +02:00
slyoldfox 42c13eb57f Add scheduled mode to renault charge mode (#115427)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-04-23 20:06:41 +02:00
avee87 7eb6b2ca33 Fix Hyperion light not updating state (#115389) 2024-04-23 20:03:23 +02:00
Joost Lekkerkerker 5194faa8fd Make Withings recoverable after internet outage (#115124) 2024-04-23 20:03:20 +02:00
Jonny Rimkus 5826f9a4f6 Bump slixmpp version to 1.8.5 (#114448)
* Update slixmpp to 1.8.5, hopefully fixes #113990

* Bump slixmpp version to 1.8.5 #114448
2024-04-23 20:03:15 +02:00
Jim cc9eab4c78 Allow plain text messages in telegram_bot (#110051)
* Add new plain_text parser

Passing None in the parse_mode kwargs on the various bot methods actually means that no parser is used.

* Add new plain text parser option to services.yaml

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-23 19:32:09 +02:00
Tucker Kern d8aa1cd8b5 Add fan preset translations and icons to BAF (#109944) 2024-04-23 19:11:40 +02:00
Erik Montnemery d4ecf30b6a Include libgammu-dev in devcontainer (#115983) 2024-04-23 18:35:53 +02:00
David Knowles 3b678896d9 Remove platform schema from Hydrawise (#116032) 2024-04-23 18:08:07 +02:00
Michael 10228ee1a2 Bump python-fritzhome to 0.6.11 (#115904) 2024-04-23 17:39:44 +02:00
Thomas55555 d4b801af32 Use snapshot test helper in Husqvarna Automower (#116039) 2024-04-23 17:39:29 +02:00
Marc Mueller 8257af1b22 Improve energy typing (#116034) 2024-04-23 17:33:36 +02:00
Marc Mueller 14e19c6d9c Remove unnecessary type ignores (#116036) 2024-04-23 17:32:21 +02:00
Volker Stolz 5e250d8a76 Augment SyntaxError raised during dependency collection with offending filename (#109204)
* Capture parsing exception when collecting dependencies and augment with offending filename.

Whereas before any syntax error in some component-file would result in an opaque SyntaxError without pointing out the file, now the result will show as:

```
  File "/usr/local/Cellar/python@3.11/3.11.7_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/multiprocessing/pool.py", line 873, in next
    raise value
SyntaxError: Can't parse file homeassistant/components/your/file.py
```

* tweak

* D'oh, had pre-commit hook still off.

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-23 17:13:25 +02:00
Maikel Punie 90efe5ac90 Velbus Cover: Assume state for VMBxBL modules (#109213) 2024-04-23 16:44:37 +02:00
Spacetech 1649957e5c Expose dynamic range status in Onkyo media player (#109099)
Expose HDR status in Onkyo media player

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-23 16:39:11 +02:00
Marc Mueller a0314cddd4 Fix invalid tuple annotations (#116035) 2024-04-23 16:02:16 +02:00
Ståle Storø Hauknes d367bc63f0 Fix KeyError error when fetching sensors (Airthings) (#115844) 2024-04-23 15:53:31 +02:00
Robert Resch fced9eb4b5 Use location name on self hosted Ecovacs config entries (#115294) 2024-04-23 14:33:05 +02:00
Arie Catsman 2c651e190f Add additional zeroconf discovery coverage and logging to enphase_envoy (#114405)
* add debug info to zeroconf for enphase_envoy

* Implement review feedback, lost space

Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>

* review feedback textual changes.

* implement review feedbackw.py

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

* Add some more zeroconf tests and valid jwt

* review feedback assert abort reason and keyerror for serialnumber

* Review feedback config flow test ends with abort or create_entry

* Review feedback optimize resource usage

* Cover new code in test.

* Use caplog for debug COV

---------

Co-authored-by: Charles Garwood <cgarwood@newdealmultimedia.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-23 08:26:53 -04:00
Thomas55555 b8918d7d17 Add number platform to Husqvarna Automower (#115125)
* Add number platform to Husqvarna Automower

* use fixture to enable by default

* replace state test with snapshot test

* make property in entity description

* send value as integer

* give the exists functions something to do
2024-04-23 14:18:49 +02:00
Robert Resch fd14695d26 Bump deebot-client to 7.0.0 (#116025) 2024-04-23 13:16:55 +02:00
Joost Lekkerkerker 2977ec4872 Add event platform to Lutron (#109121)
* Add event platform to Lutron

* Add event platform to Lutron

* Fix

* Fix

* Fix

* Add deprecation note

* Fix

* Fix

* Update homeassistant/components/lutron/event.py

* Update homeassistant/components/lutron/event.py

* Fix
2024-04-23 11:54:19 +02:00
Jesse Hills 85203aeb28 Bump aioesphomeapi to 24.3.0 (#116004) 2024-04-23 11:23:28 +02:00
Marc Mueller 9cdf7b435a Add uv version to wheels cache key [ci] (#116021) 2024-04-23 11:06:29 +02:00
jan iversen 640dc56c51 Deprecate modbus:restart service (#115754) 2024-04-23 10:28:46 +02:00
Martijn van der Pol e90d76b18d Don't raise errors when using datetime objects in as_datetime Jinja function/filter (#109062)
* add support for datetime objects to as_datetime

* change import of datetime.date

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-23 09:55:58 +02:00
myhomeiot 3d59303433 Improve Vodafone Station empty/unavailable phone number detection (#115696)
Vodafone Sercomm H300S model incorrectly reports phone_unavailable1/phone_unavailable2 flags.
2024-04-23 09:50:41 +02:00
Joost Lekkerkerker 8f56d170b9 Use generator expression in totalconnect (#116020) 2024-04-23 09:48:17 +02:00
dependabot[bot] e2b401397d Bump actions/upload-artifact from 4.3.1 to 4.3.3 (#116015) 2024-04-23 09:24:32 +02:00
dependabot[bot] 616c7ce68b Bump actions/download-artifact from 4.1.4 to 4.1.6 (#116017) 2024-04-23 09:23:45 +02:00
Shai Ungar e0c785b2b4 Add coordinator to 17Track (#115057)
* Add coordinator to 17Track

* Add coordinator to 17Track

remove SensorEntityDescription (different PR)

* Update homeassistant/components/seventeentrack/coordinator.py

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

* Update homeassistant/components/seventeentrack/sensor.py

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

* Add coordinator to 17Track

fix CR

* Add coordinator to 17Track

fix second CR

* Add coordinator to 17Track

remove commented out code + fix display name

* Add coordinator to 17Track

created a set outside _async_create_remove_entities function

* Add coordinator to 17Track

fix CR

* Add coordinator to 17Track

fix CR 2

* Update homeassistant/components/seventeentrack/coordinator.py

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

* Add coordinator to 17Track

raise UpdateFailed if API throws an exception

* Add coordinator to 17Track

merge calls

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-23 09:01:45 +02:00
Thomas Kistler b8f44fb722 Update Hydrawise from the legacy API to the new GraphQL API (#106904)
* Update Hydrawise from the legacy API to the new GraphQL API.

* Cleanup
2024-04-23 09:01:25 +02:00
G Johansson 917f4136a7 Add config flow to Folder Watcher (#105605)
* Add config flow to Folder Watcher

* Add tests config flow

* docstrings

* watcher is sync

* Fix strings

* Fix

* setup_entry issue

* ConfigFlowResult

* Review comments

* Review comment

* ruff

* new date
2024-04-23 08:55:39 +02:00
Robert Resch 2fafdc64d5 Bump uv to 0.1.35 (#115985) 2024-04-23 08:48:35 +02:00
Robert Svensson c32961f1bc Bump aiounifi to v76 (#116005)
* Bump aiounifi to v76
2024-04-23 07:48:25 +02:00
Kim de Vos b69f589c30 Add bandwidth sensor for unifi device ports (#115362) 2024-04-22 22:39:46 +02:00
G Johansson 5318a6f465 Bump holidays to 0.47 (#115992) 2024-04-22 21:33:56 +02:00
karwosts 2ac44f6083 Make recorder.purge_entities require at least one entity filter value (#110066)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-22 20:10:18 +02:00
J. Nick Koston 0ed56694b0 Migrate MQTT EnsureJobAfterCooldown to use eager start (#115977) 2024-04-22 20:09:45 +02:00
Marc-Olivier Arsenault f2adae4524 Revert "Reduce ecobee throttle (#115968)" (#115981) 2024-04-22 19:28:08 +02:00
Erik Montnemery 2caca7fbe3 Generate requirements per supported architecture (#115708)
* Generate requirements per supported architecture

* Don't store wheels requirements in the repo

* Dry run

* Set Python version

* Install base packages

* Fix

* Fix

* Fix

* Fix typo

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

* Genarate requirements_all_pytest.txt

* Fix hassfest

* Reenable building wheels

* Remove unneeded code

* Address review comment

* Fix lying comment

* Add tests, address review comments

* Deduplicate

* Fix file name

* Add comment

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-22 19:23:08 +02:00
Raj Laud 124eca4d53 Use start helper in squeezebox for server discovery (#115978) 2024-04-22 17:46:12 +02:00
David Knowles 2afaa3d333 Remove YAML support from Hydrawise (#115966) 2024-04-22 16:54:04 +02:00
J. Nick Koston 20adc5be70 Small fixes for processing integration requirements (#115973) 2024-04-22 16:52:04 +02:00
J. Nick Koston 37d329c286 Improve reliability of homeassistant_alerts updates (#115974) 2024-04-22 16:51:19 +02:00
Marc-Olivier Arsenault 65b2c1519c Reduce ecobee throttle (#115968)
reduce ecobee throttle
2024-04-22 16:43:01 +02:00
Michael 5a7e921ae3 Address late review for AVM Fritz!Smarthome (#115960)
fix typo
2024-04-22 13:24:23 +02:00
Jesse Hills 9b6863f182 ESPHome: Add datetime entities (#115942) 2024-04-22 13:12:22 +02:00
Joost Lekkerkerker 693bd08a0b Add snapshot tests to Totalconnect (#115952)
* Add snapshot tests to Totalconnect

* Add snapshot tests to Totalconnect
2024-04-22 13:01:31 +02:00
Aidan Timson 6985d36f18 Update ovoenergy to 2.0.0 (#115921)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-22 12:39:53 +02:00
Maciej Bieniek 354e8e92f3 Move NextDNS data update coordinators to the coordinator module (#115919)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-22 11:19:35 +02:00
Joost Lekkerkerker 09ae8b9f52 Introduce base location entity for totalconnect (#115938)
* Introduce base location entity for totalconnect

* Update homeassistant/components/totalconnect/entity.py

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

---------

Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-04-22 10:41:26 +02:00
Jesse Hills 46941adb51 Bump aioesphomeapi to 24.2.0 (#115943) 2024-04-22 10:30:14 +02:00
Quentame f927b27ed4 Add Epic Games Store integration (#104725)
* Add Epic Games Store integration

Squashed commit of the following PR: #81167

* Bump epicstore-api to 0.1.7 as it handle better error 1004

Thanks to https://github.com/SD4RK/epicstore_api/commit/d7469f7c99508c06b3867fecbcf291ebf86c4c72

* Use extra_state_attributes instead of overriding state_attributes

* Review: change how config_flow.validate_input is handled

* Use LanguageSelector and rename locale to language

* Review: init-better use of hass.data.setdefault

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

* Review: don't need to update at init

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

* Revert "Review: don't need to update at init" --> not working otherwise

This reverts commit 1445a87c8e9b7247f1c9835bf2e2d7297dd02586.

* Review: fix config_flow.validate_input/retactor following lib bump

* review: merge async_update function with event property

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

* hassfest

* Fix duplicates data from applied comment review 5035055

* review: thanks to 5035055 async_add_entities update_before_add param is not required anymore

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

* Fix Christmas special "Holiday sale" case

* gen_requirements_all

* Use CONF_LANGUAGE from HA const

* Move CalendarType to const

* manifest: integration_type -> service

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

* calendar: remove date start/end assert

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

* const: rename SUPPORTED_LANGUAGES

* hassfest

* config: Move to ConfigFlowResult

* coordinator: main file comment

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

* ruff & hassfest

* review: do not guess country

* Add @hacf-fr as codeowner

* review: remove games extra_attrs
Was dropped somehow:
- 73c20f34803b0a0ec242bf0740494f17a68f6f59 review: move games extra_attrs to data service
- other commit that removed the service part

* review: remove unused error class
was removed:
- 040cf945bb5346b6d42b3782b5061a13fb7b1f6b

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-22 09:54:47 +02:00
dependabot[bot] 66ea528e94 Bump actions/checkout from 4.1.2 to 4.1.3 (#115945)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 09:43:19 +02:00
rappenze de75f82235 Refactor fibaro connect (#106875)
* Refactor fibaro connect

* Remove obsolete test

* Add comment about ignored return value
2024-04-22 09:29:58 +02:00
rappenze aeaa1f84c0 Add type hints in fibaro device (#106874)
* Add typings in fibaro device

* Fix type hints

* Fix type hints

* Remove unused method parameter

* Improve log message

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-22 09:29:10 +02:00
andarotajo 70d4b4d20d Add optional location based region to dwd_weather_warnings (#96027)
* Add device tracker option

* Update const name to be more understandable

* Clean up sensor code

* Clean up init and coordinator

* Add tests and update util function and it's usage

* Switch to using the registry entry and add tests

* Clean up code

* Consolidate duplicate code and adjust tests

* Fix runtime error

* Fix blocking of the event loop

* Adjust API object handling

* Update homeassistant/components/dwd_weather_warnings/exceptions.py

* Optimize coordinator data update

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-22 09:13:09 +02:00
Allen Porter e29b301dd1 Bump ical to 8.0.0 (#115907)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-21 15:52:47 -07:00
Joost Lekkerkerker f26ac465b5 Introduce base entity for totalconnect (#115936) 2024-04-21 23:38:32 +02:00
Sid 895f73d8e4 Enable Ruff A001 (#115654) 2024-04-21 23:25:27 +02:00
J. Nick Koston 8754b12d08 Temporarily pickup mqtt codeowner (#115934) 2024-04-21 22:57:57 +02:00
J. Nick Koston 423544401e Convert MQTT to use asyncio (#115910) 2024-04-21 22:33:58 +02:00
Michael 5a24690d79 Make use of snapshot testing in Synology DSM (#115931) 2024-04-21 22:26:57 +02:00
mkmer 2620443a88 Add error translations to Blink (#115924)
* Add translations
Catch timeout in snap

* Grammer cleanup
2024-04-21 21:19:48 +02:00
Austin Mroczek ddb415b77e Bump total_connect_client to 2023.12.1 (#115928)
bump total_connect_client to 2023.12.1
2024-04-21 20:27:50 +02:00
Robert Svensson 83370a5bde Remove sensor exposing UniFi WLAN password (#115929) 2024-04-21 20:27:44 +02:00
Joost Lekkerkerker 95b858648e Refactor Totalconnect binary sensor (#115629) 2024-04-21 17:36:19 +02:00
Michael ec066472ae Fix geo location attributes of Tankerkoenig sensors (#115914)
* geo location attributes needs to be float

* make mypy happy
2024-04-21 11:44:58 +02:00
wittypluck 1c0c0bb0bc Allow manual delete of stale Unifi device from UI (#115267)
* Allow manual delete of stale device from UI

* Add unit tests for remove_config_entry_device
2024-04-21 11:08:39 +02:00
Jan Bouwhuis b592225a87 Improve service validation exception test and translation key (#115843)
* Small improvement to service validation exception test and translation key

* Apply suggestions from code review

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

* Refactor string assertion

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-21 08:54:23 +02:00
Adam Goode 27bccf0b24 Add test for prometheus export of entities becoming unavailable and available again (#112157)
Add test for state change to unavailable and back
2024-04-20 20:20:01 -07:00
David Bonnes 30a60fd38b Improve debug logging for evohome (#110256)
better logging
2024-04-20 20:17:11 -07:00
Luke Lashley d8117fd2bd Fix Roborock status not correctly mapping for some devices (#115646)
Use device_info.model instead of name
2024-04-20 19:57:05 -07:00
J. Nick Koston 29bfed72f7 Fix flaky history stats test (#115824) 2024-04-21 01:08:40 +02:00
Brett Adams 7d386b0d26 Fix sensor entity description in Teslemetry (#115614)
Add description back to sensor entity
2024-04-20 23:54:24 +02:00
r-binder 68225abce5 Add tls support for AVM Fritz!Tools (#112714) 2024-04-20 23:08:29 +02:00
Sid b450918f66 Bump ruff to 0.4.1 (#115873) 2024-04-20 21:35:02 +02:00
Joost Lekkerkerker 48d1692cd6 Use snapshot test helper in Ambient Network (#115887) 2024-04-20 21:29:14 +02:00
Joost Lekkerkerker ee116713cf Use snapshot test helper in Analytics insights (#115889) 2024-04-20 21:27:54 +02:00
Alberto Montes c94b0a82ca Make release channel a hardcoded enum rather than a free form string (#115595)
* Make release channel a hardcoded enum rather than a free form string

* Update enum comparison to remove equality and us identity comparison

* Fix comparison condition to match the previous implementation

* Update tests to use Enum instead of string
2024-04-20 20:01:49 +02:00
Joost Lekkerkerker c753093741 Use snapshot test helper in AO Smith (#115890) 2024-04-20 19:10:56 +02:00
mtielen d478b87af7 Fix Wolf Smart Set Authentication and Session Management (#115815)
* Fix Wolf Smart Set Authentication and Session Management

Fix in the library to respect Wolf API token lifetime and implement Session Management

* Updatie requirments

* Update Code Owner
2024-04-20 19:09:32 +02:00
Maciej Bieniek 10be2cc004 Use snapshot test helper in NextDNS (#115895)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-20 18:43:40 +02:00
Maciej Bieniek 5e345b7129 Use snapshot test helper in NAM (#115894)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-20 18:43:33 +02:00
Maciej Bieniek de1312f7e4 Use snapshot test helper in GIOS (#115893)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-20 18:43:25 +02:00
Joost Lekkerkerker b328981868 Use snapshot test helper in Accuweather (#115884) 2024-04-20 17:24:40 +02:00
Joost Lekkerkerker 5796b651af Use snapshot test helper in Brother (#115885) 2024-04-20 17:14:42 +02:00
Joost Lekkerkerker 16e31d8f74 Add test helper to snapshot a platform (#115880)
* Add test helper to snapshot a platform

* Add test helper to snapshot a platform
2024-04-20 14:49:57 +02:00
Nathan Spencer 8f73422ce5 Bump pylitterbot to 2023.5.0 (#115856) 2024-04-20 12:37:35 +02:00
jjlawren e3ce3ed6fd Bump plexapi to 4.15.12 (#115872) 2024-04-20 12:36:03 +02:00
Maciej Bieniek 194f3366ce Use snapshot testing in NAM sensor and diagnostics (#115877)
* Use snapshot testing in NAM diagnostics

* Use snapshot testing in NAM sensor

* Add NAM data fixture

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-20 12:34:27 +02:00
Maciej Bieniek c4e7a7af21 Use snapshot testing in Brother sensor (#115875)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-20 12:33:08 +02:00
Maciej Bieniek c2450c1112 Use snapshot testing in GIOS sensor (#115876)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-20 12:32:11 +02:00
Maciej Bieniek c8d52c02c5 Use snapshot testing in NextDNS (#115879)
* Use snapshot testing in NextDNS sensor

* Use snapshot testing in NextDNS switch

* Use snapshot testing in NextDNS binary sensor

* Use snapshot testing in NextDNS button

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-20 12:31:20 +02:00
Michael 354c20a57b Automatic cleanup of entity and device registry in AVM FRITZ!SmartHome (#114601) 2024-04-20 12:13:56 +02:00
J. Nick Koston 0ea1564248 Bump bluetooth-adapters to 0.19.0 (#115864) 2024-04-20 01:36:46 +02:00
Maciej Bieniek ffd6635c14 Bump nettigo_air_monitor to version 3.0.0 (#115853)
Bump nettigo_air_monitor to version 3.0.0

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-19 20:25:57 +02:00
Maciej Bieniek f9ff3165af Bump nextdns to version 3.0.0 (#115854)
Bump nextdns to version 3.0.0

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-19 20:25:07 +02:00
Jan Bouwhuis a8025a8606 Fix mutable objects in group registry class (#115797) 2024-04-19 18:41:29 +02:00
J. Nick Koston 4529268544 Ensure scripts with timeouts of zero timeout immediately (#115830) 2024-04-19 18:24:54 +02:00
slyoldfox ebbcad17c6 Add scheduled mode to renault charge mode (#115427)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
2024-04-19 18:22:12 +02:00
avee87 18d6581523 Fix Hyperion light not updating state (#115389) 2024-04-19 18:21:21 +02:00
Joost Lekkerkerker cc2e0fd921 Make Withings recoverable after internet outage (#115124) 2024-04-19 18:18:32 +02:00
Joost Lekkerkerker c108c7df38 Add reauth flow to Google Tasks (#109517)
* Add reauth flow to Google Tasks

* Update homeassistant/components/google_tasks/config_flow.py

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

* Add tests

* Reauth

* Remove insta reauth

* Fix

---------

Co-authored-by: Jan-Philipp Benecke <github@bnck.me>
2024-04-19 17:38:39 +02:00
Simone Chemelli ff83d9acff Add missing media_player features to Samsung TV (#115788)
* add missing features

* fix snapshot
2024-04-19 16:45:19 +02:00
Maciej Bieniek b462fdbf51 Bump gios to version 4.0.0 (#115822)
Bump gios to version 4.0.0

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-19 15:52:09 +02:00
Jan Bouwhuis 5b082ed669 Add group tests with mixed domain entities (#115849) 2024-04-19 14:48:18 +02:00
dependabot[bot] f8738d9263 Bump actions/download-artifact from 4.1.4 to 4.1.5 (#115841) 2024-04-19 12:22:09 +02:00
dependabot[bot] 8d7ef6ea9a Bump actions/upload-artifact from 4.3.1 to 4.3.2 (#115842) 2024-04-19 12:11:08 +02:00
J. Nick Koston 79c9db4089 Bump aiodiscover to 2.1.0 (#115823) 2024-04-19 09:43:02 +02:00
hahn-th ed4f00279e Show default profiles in homematic cloud climate entity (#107348)
* Default names for visible profiles

* Increase number of devices in test

* remove unnecessary check

* Add testcase and split another into two

* Add type annotations and docstring

* Remove code which not belongs to the PR

* Add myself to codeowners
2024-04-19 08:09:48 +02:00
Joe Neuman 4cce75177a Add get_torrents service to qBittorrent integration (#106501)
* Upgrade QBittorrent integration to show torrents

This brings the QBittorrent integration to be more in line with the Transmission integration. It updates how the integration is written, along with adding sensors for Active Torrents, Inactive Torrents, Paused Torrents, Total Torrents, Seeding Torrents, Started Torrents.

* Remove unused stuff

* Correct name in comments

* Make get torrents a service with a response

* Add new sensors

* remove service

* Add service with response to get torrents list

This adds a service with a response to be able to get the list of torrents within qBittorrent

* update

* update from rebase

* Update strings.json

* Update helpers.py

* Update to satisfy lint

* add func comment

* fix lint issues

* another update attempt

* Fix helpers

* Remove unneccesary part in services.yaml and add translations

* Fix return

* Add tests

* Fix test

* Improve tests

* Fix issue from rebase

* Add icon for get_torrents service

* Make get torrents a service with a response

* remove service

* Add service with response to get torrents list

This adds a service with a response to be able to get the list of torrents within qBittorrent

* Update to satisfy lint

* Handle multiple installed integrations

* fix lint issue

* Set return types for helper methods

* Create the service method in async_setup

* Add CONFIG_SCHEMA

* Add get_all_torrents service

* fix lint issues

* Add return types and ServiceValidationError(s)

* Fix naming

* Update translations

* Fix tests
2024-04-19 07:56:37 +02:00
Robert Svensson 6b6324f48e Bump aiounifi to v75 (#115819) 2024-04-19 06:36:43 +02:00
Maciej Bieniek e62ae90d81 Bump accuweather to version 3.0.0 (#115820)
Bump accuweather to version 3.0.0

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-18 20:24:10 -07:00
Matrix 814b7a4447 Bump yolink-api to 0.4.3 (#115794) 2024-04-19 03:14:14 +02:00
J. Nick Koston 1d6ae01baa Handle Bluetooth adapters in a crashed state (#115790)
* Skip bluetooth discovery for Bluetooth adapters in a crashed state

* fixes

* fixes

* adjust

* coverage

* coverage

* fix race
2024-04-18 15:06:53 -05:00
Ryan Mattson 05c37648c4 Add support for room sensor accessories assigned to a Honeywell (Lyric) Thermostat (#104343)
* Add support for room sensor accessories.

- Update coordinator to refresh and grab information about room sensor accessories assigned to a thermostat
- Add sensor entities for room humidity and room temperature
- Add devices to the registry for each room accessory
- "via_device" these entities through the assigned thermostat.

* fixed pre-commit issues.

* PR suggestions

- update docstring to reflect ownership by thermostat
- fixed potential issue where a sensor would not be added if its temperature value was 0

* fix bad github merge

* asyicio.gather futures for updating theromstat room stats
2024-04-18 20:50:11 +02:00
Or Evron 5702ab3059 Add zhimi.fan.za3 to xiaomi_miio workaround unable to discover device (#108310)
* add  zhimi.fan.za3 to workaround fix unable to discover issue

* Update __init__.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-18 20:48:37 +02:00
Brian Rogers 3a461c32ac Add battery binary sensor to Rachio hose timer (#115810)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-18 13:26:09 -05:00
J. Nick Koston d48bd9b016 Deprecate async_track_state_change in favor of async_track_state_change_event (#115558) 2024-04-18 10:45:14 -05:00
J. Nick Koston b18f1ac265 Migrate device_sun_light_trigger to use async_track_state_change_event (#115555)
* Migrate device_sun_light_trigger to use async_track_state_change_event

async_track_state_change is legacy and will eventually be deprecated after
all core usage is removed. There are only two places left

* coverage
2024-04-18 10:45:06 -04:00
J. Nick Koston 80d6cdad67 Small cleanups to translation loading (#115583)
- Add missing typing
- Convert a update loop to a set comp
- Save some indent
2024-04-18 10:42:44 -04:00
J. Nick Koston 588c260dc5 Skip processing websocket_api schema if it has no arguments (#115618)
* Skip processing websocket_api schema if has no arguments

About 40% of the websocket commands on first connection have
no arguments. We can skip processing the schema for these cases

* cover

* fixes

* allow extra

* Revert "allow extra"

This reverts commit 85d9ec36b30aa2aedecd8571c7ed734d0b0a9b05.

* match behavior
2024-04-18 10:41:08 -04:00
J. Nick Koston ea8d4d0dca Add reauth support to oncue (#115667)
* Add reauth support to oncue

* review comments

* reauth on update failure

* coverage
2024-04-18 10:39:58 -04:00
J. Nick Koston 53c48537d7 Add bluetooth adapter model and manufacturer to config flow (#115780)
* Show bluetooth adapter model and manufacturer in config flow

If there are multiple adapters, it could be a bit difficult
to figure out which one is which

* Show bluetooth adapter model and manufacturer in config flow

If there are multiple adapters, it could be a bit difficult
to figure out which one is which

* reorder

* reorder

* names

* remove

* fix incomplete mocking

* more missing mocks
2024-04-18 10:39:32 -04:00
J. Nick Koston fbdef7f5cd Bump habluetooth to 2.8.0 (#115789)
* Bump habluetooth to 2.8.0

Adds support for recovering some adapters that fail to initialize
due to kernel races

* bump lib

* tweak
2024-04-18 10:37:20 -04:00
Arjan van Balken 74afed3b6d Bump arris-tg2492lg to 2.2.0 (#107905)
Bumps arris-tg2492lg from 1.2.1 to 2.2.0
2024-04-18 15:52:03 +02:00
Marcin Wielgoszewski 90575bc496 Add hvac_action attribute to iAqualink Thermostat climate entities (#107803)
* Update climate.py

* Reorder if/else statements per @dcmeglio's suggestion

* Don't infer state, actually read it from the underlying device

* HVACAction has a HEATING state, not ON

* Update homeassistant/components/iaqualink/climate.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-18 15:37:11 +02:00
Lukasz Szmit ceaf8f2402 Add support for payload_template in rest component (#107464)
* Add support for payload_template in rest component

* Update homeassistant/components/rest/schema.py

* Update homeassistant/components/rest/data.py

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-18 15:22:58 +02:00
vexofp 8ba1340c2e Clarify cover toggle logic; prevent opening when already open (#107920)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-18 14:58:16 +02:00
Jan Bouwhuis 3299bc5ddc Translate service validation errors (#115024)
* Move service validation error message to translation cache

* Fix test

* Revert unrelated change

* Address review comments

* Improve error message

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-18 14:36:03 +02:00
Erwin Douna d5e5a16303 Add diagnostics platform to DSMR Reader (#115805)
* Add diagnostics platform

* Feedback

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-18 14:08:23 +02:00
Luca Angemi 844ff30a60 Add state class to mobile_app restore entity (#115798)
add state class
2024-04-18 08:06:51 -04:00
mkmer 28da10ad0d Handle connection error in honeywell (#108168)
* Handle connection error

* Catch connection error

* Add tests

* Add translation strings

* Clean up overlapping exceptions

* ServiceValidationError

* HomeAssistant Error translations

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-18 13:53:32 +02:00
Martin Hjelmare 47f0d5ed1f Add script to compare alexa locales with upstream (#114247)
* Add script to compare alexa locales with upstream

* Use a function in script

* Add test base

* Complete output assertion

* Add type annotation

* Add note to docstring

* Update script call example

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

---------

Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-04-18 13:41:34 +02:00
William Easton aee620be9f Ambient Weather: Check for key existence before checking value (#115776) 2024-04-18 05:38:52 -06:00
Krzysztof Kwitt a47c76fc40 Bump connect-box to 0.3.1 (#107852) 2024-04-18 13:18:14 +02:00
dependabot[bot] 4374ec767d Bump github/codeql-action from 3.25.0 to 3.25.1 (#115796)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-18 10:14:51 +02:00
J. Nick Koston 0398a481c3 Fix failing sanix tests (#115793)
Fixing failing sanix tests

Regenerate snapshot to match what actually happens. There is no
translation keys for these two
2024-04-18 09:25:03 +02:00
Keith Burzinski 14515b77bb Add valve entity support for ESPHome (#115341)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
2024-04-17 20:47:15 -05:00
J. Nick Koston 8fb551430d Bump bluetooth-auto-recovery to 1.4.1 (#115792) 2024-04-17 20:38:17 -05:00
J. Nick Koston 98ed6e7fe5 Bump habluetooth to 2.7.0 (#115783) 2024-04-17 17:47:40 -05:00
J. Nick Koston b829f1030b Migrate snooze config flow to use eager_start (#115658) 2024-04-17 14:59:16 -05:00
Felipe Martins Diel 7188d62340 Bump Broadlink to 0.19.0 (#115742)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-17 14:37:38 -05:00
J. Nick Koston 11931cdb56 Simplify labels and areas template calls (#115673)
The labels and areas are already exposed on the object
2024-04-17 21:28:09 +02:00
Allen Porter 0aa7946208 Bump google-nest-sdm to 3.0.4 (#115731) 2024-04-17 21:23:58 +02:00
Joost Lekkerkerker 07a46f17d0 Add sanix sensor tests (#115763)
Add sanix tests
2024-04-17 21:20:12 +02:00
Sid cdc49328be Address late reviews for the enigma2 config flow (#115768)
* Address late reviews for the enigma2 config flow

* fix tests

* review comments

* test for issues

* Apply suggestions from code review

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-17 21:08:10 +02:00
Jan Bouwhuis 8275512130 Add mqtt notify platform (#115653)
* Add mqtt notify platform

* Stale docstring
2024-04-17 20:07:11 +02:00
J. Nick Koston 0a78e9d4aa Replace aiohttp-zlib-ng[isal] with aiohttp-isal (#115777)
* Replace aiohttp-zlib-ng[isal] with aiohttp-isal

The extra was causing wheel builds to fail

Since isal works on all of our supported platforms we can
always use it and drop the need for zlib-ng

https://github.com/home-assistant/core/actions/runs/8725019072

https://github.com/bdraco/aiohttp-isal

* typo
2024-04-17 19:46:15 +02:00
Xander d4b62adfdc Guard negative values for IPP states (#107446)
* Guard negative values for IPP states

* ruff format

* Update sensor.py

---------

Co-authored-by: Chris Talkington <chris@talkingtontech.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-17 13:38:12 -04:00
jan iversen 3202743b6c Cleanup modbus test mocks (#115412) 2024-04-17 19:10:09 +02:00
Ståle Storø Hauknes dcd61ac086 Fix unrecoverable error when fetching airthings_ble data (#115699) 2024-04-17 11:47:29 -05:00
Erik Montnemery e4280b2c00 Use aiohttp-zlib-ng[isal] (#115767) 2024-04-17 17:57:34 +02:00
Álvaro Fernández Rojas 7e9b5b1128 Allow selecting Air Quality mode for Airzone Cloud (#106769)
* airzone_cloud: add Air Quality mode select

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

* trigger CI

* trigger CI

* Update select.py

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

* airzone_cloud: select: remove AirzoneSelectDescriptionMixin usage

* airzone_cloud: select: rename AIR_QUALITY_DICT

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-17 17:11:29 +02:00
Christopher Fenner 9bae6d694d Add secondary temperature sensor for DHW in ViCare (#106612)
* add temp2 sensor

* Update strings.json
2024-04-17 17:08:23 +02:00
J. Nick Koston f62a3a7176 Simplify config_entries entity registry filter (#115678) 2024-04-17 09:42:23 -05:00
J. Nick Koston 7a67304301 Bump habluetooth to 2.6.0 (#115724) 2024-04-17 09:41:42 -05:00
Erik Montnemery 08b565701c Include hash of requirements.txt in venv cache key (#115759) 2024-04-17 16:37:49 +02:00
Joost Lekkerkerker dfec91d274 Remove obsolete translation keys in Sanix (#115764) 2024-04-17 16:11:42 +02:00
Mike Degatano f1ebe9d20a Add repairs to hassio manifest (#115486)
* Add repairs to hassio manifest

* Remove unnecessary fixture
2024-04-17 15:51:29 +02:00
J. Nick Koston bd2efffb4a Reduce duplicate code in the device registry (#115677) 2024-04-17 15:50:39 +02:00
J. Nick Koston 45f025480e Avoid linear search to remove a label from the entity registry (#115674)
* Avoid linear search to remove a label from the entity registry

* simplify
2024-04-17 15:47:56 +02:00
J. Nick Koston 8cf14c9268 Avoid linear search to clear labels and areas in the device registry (#115676) 2024-04-17 15:46:59 +02:00
J. Nick Koston 9ca24ab2a2 Avoid linear search to remove labels and floors from area registry (#115675)
* Avoid linear search to remove labels and floors from area registry

* simplify
2024-04-17 15:45:40 +02:00
Sid be0926b7b8 Add config flow to enigma2 (#106348)
* add config flow to enigma2

* Apply suggestions from code review

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

* fix suggested change

* use parametrize for config flow tests

* Restore PLATFORM_SCHEMA and add create_issue to async_setup_platform

* fix docstring

* remove name, refactor config flow

* bump dependency

* remove name, add verify_ssl, use async_create_clientsession

* use translation key, change integration type to device

* Bump openwebifpy to 4.2.1

* cleanup, remove CONF_NAME from entity, add async_set_unique_id

* clear unneeded constants, fix tests

* fix tests

* move _attr_translation_key out of init

* update test requirement

* Address review comments

* address review comments

* clear strings.json

* Review coments

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-17 15:21:54 +02:00
Erik Montnemery 764a0f29cc Allow [##:##:##] type keypad address in homeworks (#115762)
Allow [##:##:##] type keypad address
2024-04-17 15:04:37 +02:00
Erik Montnemery e45583b83b Fix homeworks import flow (#115761) 2024-04-17 15:00:10 +02:00
Erik Montnemery 3f62267a48 Fix flaky qld_bushfire test (#115757) 2024-04-17 14:29:49 +02:00
Tomasz 864c80fa55 Add Sanix integration (#106785)
* Add Sanix integration

* Add Sanix integration

* Add sanix pypi package

* Add Sanix integration

* Add Sanix integration

* Add Sanix integration

* Add Sanix integration

* Add Sanix integration

* Add Sanix integration

* Add Sanix integration

* Add Sanix integration

* Add Sanix integration

* Add Sanix integration

* Add Sanix integration

* Add Sanix integration

* Add Sanix integration

* Fix ruff

* Fix

* Fix

---------

Co-authored-by: Joostlek <joostlek@outlook.com>
2024-04-17 14:24:34 +02:00
epenet 92aae4d368 Bump renault-api to 0.2.2 (#115738) 2024-04-17 14:23:47 +02:00
Erik Montnemery 5c018f6ffc Improve standard library violation check in hassfest (#115752)
* Improve standard library violation check in hassfest

* Improve prints

* Improve error message
2024-04-17 14:10:26 +02:00
J. Nick Koston cb16465539 Keep track of top level components (#115586)
* Keep track of top level components

Currently we have to do a set comp for icons, translations,
and integration platforms every time to split the top level
components from the platforms. Keep track of the top level
components in a seperate set so avoid having to do the setcomp
every time.

* remove impossible paths

* remove unused code

* preen

* preen

* fix

* coverage and fixes

* Update homeassistant/core.py

* Update homeassistant/core.py

* Update tests/test_core.py
2024-04-17 13:23:20 +02:00
Erik Montnemery fee1f2833d Fix hassfest requirements check (#115744)
* Fix hassfest requirements check

* Add electrasmart to ignore list
2024-04-17 12:27:48 +02:00
Erik Montnemery ff1ac1a544 Remove useless any in gen_requirements_all.comment_requirement (#115751) 2024-04-17 12:12:51 +02:00
Erik Montnemery a3c767da2d Correct normalize_package_name (#115750) 2024-04-17 12:03:06 +02:00
Erik Montnemery ba4731ecb4 Remove stale packages from uncommenting when building wheels (#115700) 2024-04-17 11:54:53 +02:00
J. Nick Koston dae56222e9 Bump orjson to 3.10.1 (#115728)
changelog: https://github.com/ijl/orjson/compare/3.9.15...3.10.1
2024-04-17 09:13:55 +02:00
J. Nick Koston 34c3e523b4 Bump aiohttp to 3.9.5 (#115727)
changelog: https://github.com/aio-libs/aiohttp/compare/v3.9.4...v3.9.5
2024-04-17 09:10:06 +02:00
c0ffeeca7 20ff101015 Multiple data disks detected: tweak strings (#115713)
* Multiple data disks: tweak strings

* Fix typos

* Update homeassistant/components/hassio/strings.json

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-17 09:06:47 +02:00
Erik Montnemery 537b00db9a Fix stale comment in wheels.yml (#115736) 2024-04-17 08:50:33 +02:00
Jesse Hills 94a66fa648 Bump aioesphomeapi to 24.1.0 (#115729) 2024-04-17 15:39:38 +12:00
J. Nick Koston 6dcfe861fd Bump habluetooth to 2.5.2 (#115721) 2024-04-16 18:34:57 -05:00
Maciej Bieniek e7076ac83f Use separate data coordinators for AccuWeather observation and forecast (#115628)
* Remove forecast option

* Update strings

* Use separate DataUpdateCoordinator for observation and forecast

* Fix tests

* Remove unneeded variable

* Separate data coordinator classes

* Use list comprehension

* Separate coordinator clasess to add type annotations

* Test the availability of the forecast sensor entity

* Add DataUpdateCoordinator types

* Use snapshot for test_sensor()

---------

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-17 00:00:16 +02:00
Joakim Plate 81036967f0 Correct unit for total usage in rfxtrx (#115719) 2024-04-16 22:35:55 +02:00
Matthew Hallonbacka 4a89e18b7e Fix check for missing parts on incoming SMS (#105068)
* Fix check for missing parts on incoming SMS

* Add tests for get_and_delete_all_sms function

* Fix CI issues

* Install libgammu-dev in CI

* Bust the venv cache

* Include python-gammu in requirements-all.txt

* Adjust install of dependencies

---------

Co-authored-by: Erik <erik@montnemery.com>
2024-04-16 21:34:09 +02:00
Mike Degatano 249a92d321 Unsupported if wrong image used on virtualization (#113882)
* Unsupported if wrong image used on virtualization

* Language tweaks

Co-authored-by: Stefan Agner <stefan@agner.ch>

---------

Co-authored-by: Stefan Agner <stefan@agner.ch>
2024-04-16 17:54:49 +02:00
BestPig 586d27320e Add Sound Mode selection in soundpal components (#106589) 2024-04-16 17:45:48 +02:00
J. Nick Koston 135fe26704 Bump httpcore to 1.0.5 (#115672)
Fixes missing handling of EndOfStream errors
2024-04-16 18:13:47 +03:00
Guido Schmitz 63c9aef71d Correct spelling of "Wi-Fi" in devolo_home_network (#106167)
* Use Wi-Fi in devolo_home_network

* Recreate snapshots

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-16 16:28:25 +02:00
myMartek 18ac9a7ba5 Add select hold to AppleTVs remote entity as possible command (#105764)
* Fixed home hold and added select hold

* Fixed home hold and added select hold

* Removed select_hold for now

* Fixed wrong import block sorting

* Fixed unit tests for AppleTV

* Added select hold command to AppleTV integration

* Removed home_hold and added hold_secs option for remote commands

* Added DEFAULT_HOLD_SECS

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-16 16:16:32 +02:00
Joost Lekkerkerker e9894f8e91 Add extract media url service to media extractor (#100780)
* Exclude manifest files from youtube media extraction

* Add media_extractor service to extract media

* Fix snapshot

* Run ytdlp async

* Add icon

* Fix

* Fix
2024-04-16 16:13:03 +02:00
Erik Montnemery 7cd0fe3c5f Don't reload other automations when saving an automation (#80254)
* Only reload modified automation

* Correct check for existing automation

* Add tests

* Remove the new service, improve ReloadServiceHelper

* Revert unneeded changes

* Update tests

* Address review comments

* Improve test coverage

* Address review comments

* Tweak reloader code + add a targetted test

* Apply suggestions from code review

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

* Explain the tests + add more variations

* Fix copy-paste mistake in test

* Rephrase explanation of expected test outcome

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-16 15:58:57 +02:00
dependabot[bot] 679752ceb8 Bump github/codeql-action from 3.24.10 to 3.25.0 (#115686) 2024-04-16 12:33:10 +02:00
Martin Hjelmare d1ed8d817c Remove Adafruit-BBIO from commented requirements (#115689) 2024-04-16 10:50:51 +02:00
Martin Hjelmare 093aee672c Fix ambient network test linting (#115691) 2024-04-16 10:19:23 +02:00
Thomas Kistler 0dd8ffd1f5 Add a new "Ambient Weather Network" integration (#105779)
* Adding a new "Ambient Weather Network" integration.

* Rebase and update code coverage.

* Addressed some reviewer comments.

* Remove mnemonics and replace with station names.

* Remove climate-utils

* Remove support for virtual stations.

* Rebase

* Address feedback

* Remove redundant errors

* Reviewer feedback

* Add icons.json

* More icons

* Reviewer feedback

* Fix test

* Make sensor tests more robust

* Make coordinator more robust

* Change update coordinator to raise UpdateFailed

* Recover from no station found error

* Dynamically set device name

* Address feedback

* Disable some sensors by default

* Reviewer feedback

* Change from hub to service

* Rebase

* Address reviewer feedback

* Reviewer feedback

* Manually rerun ruff on all files
2024-04-16 09:46:15 +02:00
Stephen Alderman f62fb76765 Add Config Flow to LG Netcast (#104913)
* Add Config Flow to lg_netcast

* Add YAML import to Lg Netcast ConfigFlow

Deprecates YAML config support

* Add LG Netcast Device triggers for turn_on action

* Add myself to LG Netcast codeowners

* Remove unnecessary user_input validation check.

* Move netcast discovery logic to the backend

* Use FlowResultType Enum for tests

* Mock pylgnetcast.query_device_info instead of _send_to_tv

* Refactor lg_netcast client discovery, simplify YAML import

* Simplify CONF_NAME to use friendly name

Fix: Use Friendly name for Name

* Expose model to DeviceInfo

* Add test for testing YAML import when not TV not online

* Switch to entity_name for LGTVDevice

* Add data_description to host field in user step

* Wrap try only around _get_session_id

* Send regular request for access_token to ensure it display on the TV

* Stop displaying access token when flow is aborted

* Remove config_flow only consts and minor fixups

* Simplify media_player logic & raise new migration issue

* Add async_unload_entry

* Create issues when import config flow fails, and raise only a single yaml deprecation issue type

* Remove single use trigger helpers

* Bump issue deprecation breakage version

* Lint

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-16 09:29:02 +02:00
brave0d a99ecb024e New BMW sensor for climate activity (#110287)
* add sensor with climate activity status

* Update strings.json

* use icon translation and is_available for sensor

* use enum with translations

* Return None if value is UNKNOWN

* fix getting the value: x.value

* fix getting the value: x instead of x.value

* Fix tests and pre-commit

---------

Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-04-16 09:24:32 +02:00
Tom Harris c5c407b3bb Move Insteon configuration panel to config entry (#105581)
* Move Insteon panel to the config menu

* Bump pyinsteon to 1.5.3

* Undo devcontainer.json changes

* Bump Insteon frontend

* Update config_flow.py

* Code cleanup

* Code review changes

* Fix failing tests

* Fix format

* Remove unnecessary exception

* codecov

* Remove return from try

* Fix merge mistake

---------

Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-04-16 09:10:32 +02:00
theminer3746 1dfabf34c4 Fix typo in modbus integration strings.json (#115685) 2024-04-16 09:04:00 +02:00
J. Nick Koston 7e35fcf11a Bump sqlparse to 0.5.0 (#115681)
fixes https://github.com/home-assistant/core/security/dependabot/54
fixes https://github.com/home-assistant/core/security/dependabot/55
2024-04-16 08:30:51 +02:00
Marc Mueller 6a7a44c998 Add dataclass to store AdGuard data (#115668)
* Add dataclass to store AdGuard data

* Unify version call
2024-04-16 08:02:27 +02:00
J. Nick Koston 11ff00f637 Small speed up to async_prepare_setup_platform (#115662) 2024-04-15 17:30:05 -05:00
Collin Fair 4aab073bd2 Remove cloud dependency from islamic-prayer-times (#115146)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-15 15:42:33 -05:00
John Luetke a16d98854a Remove pihole codeowner (#110384)
* Update codeowners

Removing myself from codeowners as I have been unable to dedicate time to this

* Update CODEOWNERS

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-15 22:32:14 +02:00
Sid 5f055a64bb Enable Ruff B017 (#115335) 2024-04-15 22:25:09 +02:00
Brian Rogers c7e6f3696f Create base class for Rachio smart hose timer entities (#115475) 2024-04-15 14:22:44 -05:00
Heiko Carrasco 2c6ec506ad Update switchbot_api to 2.1.0 (#115529) 2024-04-15 21:09:34 +02:00
J. Nick Koston a6a47c0b44 Make aiohttp_cors a top level import (#115563)
* Make aiohttp_cors a top level import

This was moved to a late import in #27935 but there is no
longer any need to import it late in the event loop as aiohttp_cors
is listed in pyproject.toml so it will always be available

* drop requirements as they are all top level now

* drop requirements as they are all top level now

* adjust
2024-04-15 21:06:59 +02:00
J. Nick Koston 2ec588d2a6 Migrate websocket_api sensor to use shorthand attrs (#115620) 2024-04-15 20:40:31 +02:00
J. Nick Koston dbc5109fd8 Avoid update calls in state writes when attributes are empty (#115624) 2024-04-15 17:42:18 +02:00
Luke Lashley 9f852c6a58 Bump vacuum-map-parser-roborock to 0.1.2 (#115579)
bump to 0.1.2
2024-04-15 16:06:44 +02:00
Marc Mueller 881e201a15 Set platform for mypy (#115638) 2024-04-15 14:12:26 +02:00
J. Nick Koston 3963b3994b Small cleanups to the rate limit helper (#115621) 2024-04-15 13:42:28 +02:00
J. Nick Koston 15ecd3ae31 Fix flaky zwave update entity delay test (#115552)
The test assumed the node updates would happen in a specific order
but they can switch order based on timing.

Adjust to check to make sure all the nodes are called but make it
order independent
2024-04-15 13:12:09 +02:00
Shawn Weeks b1bd9dc22c Bump emulated-roku to 0.3.0 to fix Sofabaton Support (#115452) 2024-04-14 21:43:11 -05:00
Brett Adams 5e1de6842d Fix Teslemetry sensor values (#115571) 2024-04-15 01:48:22 +02:00
Pete Sage d40fc613aa Bump soco to 0.30.3 (#115607)
bump soco to 0.30.3
2024-04-14 18:39:07 -05:00
Marc Mueller 6422bc4c19 Set follow_imports to normal [mypy] (#115521) 2024-04-15 00:26:06 +02:00
Marc Hörsken e08301f362 Move Alexa entity id generation into abstract config class (#115593)
This makes it possible to change the id schema in implementations.
2024-04-14 23:11:42 +02:00
J. Nick Koston 269429aa0c Only calculate the tplink emeter values once per update cycle (#115587)
The sensor platform has to read the native_value multiple times
during the state write cycle which means the integration calculated
the value multiple times. Switch to using _attr_native_value to
ensure the calculations in the library are only done once per
state write.

To demonstrate this issue,
+        _LOGGER.warning("Fetch name value for %s", self.entity_id)
was added to `def native_value`:
```
2024-04-14 06:58:52.506 WARNING (MainThread) [homeassistant.components.tplink.sensor] Fetch name value for sensor.kasa_smart_plug_542b_0_kasa_smart_plug_542b_0_current_consumption
2024-04-14 06:58:52.506 WARNING (MainThread) [homeassistant.components.tplink.sensor] Fetch name value for sensor.kasa_smart_plug_542b_0_kasa_smart_plug_542b_0_total_consumption
2024-04-14 06:58:52.507 WARNING (MainThread) [homeassistant.components.tplink.sensor] Fetch name value for sensor.kasa_smart_plug_542b_0_kasa_smart_plug_542b_0_today_s_consumption
2024-04-14 06:58:52.507 WARNING (MainThread) [homeassistant.components.tplink.sensor] Fetch name value for sensor.kasa_smart_plug_542b_0_kasa_smart_plug_542b_0_voltage
2024-04-14 06:58:52.508 WARNING (MainThread) [homeassistant.components.tplink.sensor] Fetch name value for sensor.kasa_smart_plug_542b_0_kasa_smart_plug_542b_0_current
2024-04-14 06:58:52.509 WARNING (MainThread) [homeassistant.components.tplink.sensor] Fetch name value for sensor.kasa_smart_plug_542b_0_kasa_smart_plug_542b_0_current_consumption
2024-04-14 06:58:52.510 WARNING (MainThread) [homeassistant.components.tplink.sensor] Fetch name value for sensor.kasa_smart_plug_542b_0_kasa_smart_plug_542b_0_total_consumption
2024-04-14 06:58:52.510 WARNING (MainThread) [homeassistant.components.tplink.sensor] Fetch name value for sensor.kasa_smart_plug_542b_0_kasa_smart_plug_542b_0_today_s_consumption
2024-04-14 06:58:52.510 WARNING (MainThread) [homeassistant.components.tplink.sensor] Fetch name value for sensor.kasa_smart_plug_542b_0_kasa_smart_plug_542b_0_voltage
2024-04-14 06:58:52.510 WARNING (MainThread) [homeassistant.components.tplink.sensor] Fetch name value for sensor.kasa_smart_plug_542b_0_kasa_smart_plug_542b_0_current
```
2024-04-14 20:38:28 +02:00
jan iversen 7cfd6a04d3 Modbus: Bump pymodbus v3.6.8 (#115574) 2024-04-14 19:22:42 +02:00
J. Nick Koston 5f00b9207d Small cleanups to script (#115565) 2024-04-14 10:47:13 -05:00
Arie Catsman 131edea576 Replace lambda by attrgetter in enphase_envoy platform value_fn (#115569) 2024-04-14 10:41:25 -05:00
Arie Catsman 6092894ce5 For new installs make enphase_envoy phase entities default disabled (#115577) 2024-04-14 10:41:00 -05:00
Shay Levy 291df6dafe Bump aioshelly to 9.0.0 (#114025)
* Update Shelly to use initialize from aioshelly

* Save indentation in _async_device_connect

* Use firmware_supported property from aioshelly

* Review comments

* Bump aioshelly

* Fix lint errors

* Test RPC initialized update
2024-04-14 18:07:26 +03:00
J. Nick Koston 33412dd9f6 Remove unused legacy state translations (#112023)
* Remove unused state translations

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

* nothing does merging anymore

* useless dispatch

* remove

* remove platform code from hassfest

* preen

* Update homeassistant/helpers/translation.py

* ruff

* fix merge

* check is impossible now since we already know if translations exist or not

* keep the function for now

* remove unreachable code since we filter out `.` before now

* reduce

* reduce

* fix merge conflict (again)
2024-04-14 07:13:17 -04:00
Sid 0200d1aa66 Unignore Ruff UP006, UP007 (#115533) 2024-04-14 00:26:58 -05:00
Sid c24ae01a43 Unignore Ruff E731 (#115564) 2024-04-14 00:15:10 -05:00
Sid 3799d20d43 Enable Ruff B905 (#114197) 2024-04-14 00:14:26 -05:00
J. Nick Koston b70edb89bf Fix missing Home in listener deprecation message (#115559) 2024-04-13 20:44:07 -05:00
J. Nick Koston 0feea624f9 Migrate rfxtrx to use async_track_state_change_event (#115556) 2024-04-13 20:37:01 -05:00
J. Nick Koston 41f5325ce3 Refactor _async_setup_component to remove need for C901 (#115553) 2024-04-13 19:46:37 -05:00
J. Nick Koston 8da7de1fea Remove attr usage in event helper (#115554) 2024-04-13 19:46:23 -05:00
J. Nick Koston dad03e7283 Remove sleep in async_setup_component (#115515)
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-04-13 19:34:28 -05:00
J. Nick Koston 14b794b0f7 Migrate config entry reauth to use eager_start (#115549) 2024-04-13 18:38:33 -05:00
J. Nick Koston 7e84158fad Avoid double dict conversion in bluetooth serialize_entity_description (#115551) 2024-04-13 18:08:38 -05:00
J. Nick Koston 09b209245a Only calculate native_value once in mobile_app (#115550)
native_value is read a few times during the state write.

Use _attr_native_value so its only calculated once
2024-04-13 18:57:12 -04:00
Mr. Bubbles 927ea14562 Add exception translations to Bring integration (#115547)
* Add exception translations

* Add test for exceptions

* Remove unnecessary logging
2024-04-14 00:26:37 +02:00
J. Nick Koston 4955364948 Fix advantage_air disabled entity tests (#115548)
* Fix advantage_air disabled entity test

* fix both
2024-04-13 18:13:19 -04:00
J. Nick Koston 0b3627b59e Add additional cached_property to camera entities (#115075) 2024-04-13 16:50:11 -05:00
J. Nick Koston dee99c764b Complete ESPHome media_player coverage (#114352) 2024-04-13 16:29:14 -05:00
J. Nick Koston ee535ee611 Ensure test async_create_task eager start behavior matches production (#115517) 2024-04-13 15:58:52 -05:00
J. Nick Koston d9617a8e3a Enable eager_start for weather platform update (#115496) 2024-04-13 15:56:14 -05:00
J. Nick Koston 0bd4064212 Update ollama config_flow task to use eager_start (#115455)
The test now adds a delay because it finished too fast
2024-04-13 16:54:21 -04:00
J. Nick Koston f452c5b84e Add forecast subscription failure test case to nws (#115541) 2024-04-13 15:48:23 -05:00
J. Nick Koston f1ac33c246 Fix unmocked remote socket calls in sunweg tests (#115546)
Fix unmocked calls in sunweg tests
2024-04-13 16:36:33 -04:00
J. Nick Koston edd75a9d5f Fix race in TimestampDataUpdateCoordinator (#115542)
* Fix race in TimestampDataUpdateCoordinator

The last_update_success_time value was being set after the listeners
were fired which could lead to a loop because the listener may
re-trigger an update because it thinks the data is stale

* coverage

* docstring
2024-04-13 16:35:07 -04:00
J. Nick Koston 08e2b655be Migrate EntityRegistryDisabledHandler to use async_schedule_reload (#115544)
async_schedule_reload ensures that any setup retries are cancelled
before executing the reload. Its unlikely in this case but its
still possible
2024-04-13 16:30:59 -04:00
J. Nick Koston 1a8857aa2e Migrate homekit ffmpeg task to use eager_start (#115543) 2024-04-13 16:29:55 -04:00
J. Nick Koston 82d0f478a5 Hold the reload lock while attempting config entry setup retry (#115538) 2024-04-13 15:26:41 -05:00
J. Nick Koston b9d4d0e15d Avoid removing websocket_api subscription in mobile_app teardown (#115540) 2024-04-13 15:24:46 -05:00
J. Nick Koston 008c42e282 Bump py-synologydsm-api to 2.4.2 (#115499)
Co-authored-by: mib1185 <mail@mib85.de>
2024-04-13 14:38:37 -05:00
Marc Mueller 64a4d52b3c Update pillow to 10.3.0 (#115524) 2024-04-13 18:26:33 +02:00
Robert Resch 68ba4d57d5 Remove unused CI code (#115300) 2024-04-13 17:24:02 +02:00
Jan Bouwhuis 197070486f Set up notify group with the notify services in test (#115526) 2024-04-13 17:10:16 +02:00
Jan Bouwhuis 36bdda5669 Migrate demo notify platform (#115448)
* Migrate demo notify platform

* Update homeassistant/components/demo/notify.py

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

* Remove no needed tests

* Cleanup redundant attribute assignment

---------

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-04-13 14:27:07 +02:00
Joost Lekkerkerker 5e8b46c670 Make color extractor single config entry (#115016)
* Make color extractor single config entry

* Make color extractor single config entry

* Fix
2024-04-13 13:04:39 +02:00
Jan Bouwhuis 38c7b99aef Make legacy notify group tests independent of demo platform (#115494) 2024-04-13 12:58:31 +02:00
Marc Mueller 27f6a7de43 Revert mypy_config formatting (#115518) 2024-04-13 10:48:34 +02:00
Toni Korhonen 84a975b61e Add Balboa spa temperature range state control (high/low) (#115285)
* Add temperature range switch (high/low) to Balboa spa integration.

* Change Balboa spa integration temperature range control from switch to select

* Balboa spa integration: Fix ruff formatting

* Balboa spa integration: increase test coverage

* Balboa spa integration review fixes: Move instance attributes as class attributes. Fix code comments.
2024-04-13 10:44:02 +02:00
Jan Bouwhuis 127c27c9a7 Isolate legacy notify tests (#115470)
* Isolate legacy notify tests

* Rebase

* Refactor
2024-04-13 10:14:58 +02:00
Sid 223fefbbfa Enable Ruff RUF018 (#115485) 2024-04-13 09:56:33 +02:00
Sid 1a9ff8c8fa Ignore Ruff RUF015 (#115481) 2024-04-13 09:46:04 +02:00
J. Nick Koston bb9330135d Fix race in influxdb test (#115514)
The patch was still too late in #115442

There is no good candidate to patch here since the late operation
is the error log that is being tested.

Patching the logger did not seem like a good idea so I went with
patching to wait for the error to be emitted since emit is the public
API of the log handler and was less likely to change
2024-04-13 09:13:01 +02:00
Jan Bouwhuis 76fefaafb0 Move out demo notify tests to the notify platform (#115504)
* Move test file

* Make independent of demo platform

* Restore tests for demo platform for coverage
2024-04-13 08:18:45 +02:00
J. Nick Koston 0d0b77c9e4 Remove eager_start=False from zeroconf (#115498) 2024-04-13 00:09:42 -05:00
J. Nick Koston af2c381a0c Bump zeroconf to 0.132.2 (#115505) 2024-04-13 00:05:08 -05:00
J. Nick Koston b9899a441c Bump zeroconf to 0.132.1 (#115501) 2024-04-12 14:13:06 -10:00
Sid d74be6d5fe Set Ruff RUF001-003 to ignore (#115477) 2024-04-13 00:51:36 +02:00
Bram Kragten f16ee2ded9 Update strict connection static page (#115473) 2024-04-12 23:35:59 +02:00
dontinelli 6eaf3402c6 Add re-auth-flow to fyta integration (#114972)
* add re-auth-flow to fyta integration

* add strings for reauth-flow

* resolve typing error

* update based on review comments

* Update homeassistant/components/fyta/config_flow.py

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

* add async_auth

* adjustment based on review commet

* Update test_config_flow.py

* remove credentials

* Update homeassistant/components/fyta/config_flow.py

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

* Update tests/components/fyta/test_config_flow.py

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

* Update tests/components/fyta/test_config_flow.py

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

* Update conftest.py

* Update test_config_flow.py

* Aktualisieren von conftest.py

* Update test_config_flow.py

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-04-12 20:33:24 +02:00
karwosts 77d1e2c812 Allow customizing display name for energy device (#112834)
* Allow customizing display name for energy device

* optional typing and comment
2024-04-12 20:31:51 +02:00
Brett Adams b266224ccd Add diagnostics to Teslemetry (#115195)
* Add diag

* Add diag and tests

* Fix redaction

* Add another energy redact

* Review Feedback

* Update snapshot

* Fixed the wrong integration

* Fix snapshot again

* Update tests/components/teslemetry/test_diagnostics.py

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-04-12 20:27:38 +02:00
epenet bea4c52d10 Ignore coverage for aiohttp_resolver backport helper (#115177)
* Ignore coverage for aiohttp_resolver backport helper

* Adjust generate to sort core items

* Adjust validate to sort core items

* Split line

* Apply suggestion

Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>

* Fix suggestion

---------

Co-authored-by: Dave T <17680170+davet2001@users.noreply.github.com>
2024-04-12 16:33:05 +02:00
Sid 6d22dd073c Bump ruff to 0.3.7 (#115451)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-04-12 16:03:23 +02:00
Robert Resch 348e1df949 Add strict connection (#112387)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-12 14:47:46 +02:00
Franck Nijhof efe91815fb 2024.4.3 (#115463) 2024-04-12 13:20:48 +02:00
Marc Mueller f70ce8abf9 Fix ci Python cache key (#115467) 2024-04-12 13:11:24 +02:00
Franck Nijhof 62eee52aed Bump version to 2024.4.3 2024-04-12 12:00:16 +02:00
Bram Kragten 7f6514b03c Update frontend to 20240404.2 (#115460) 2024-04-12 11:59:53 +02:00
Santobert 2ed1cfd68d Bump pybotvac to 0.0.25 (#115435)
Bump pybotvac
2024-04-12 11:59:50 +02:00
Allen Porter a455e142ac Fix bug in rainbird switch when turning off a switch that is already off (#115421)
Fix big in rainbird switch when turning off a switch that is already off

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-12 11:59:45 +02:00
Jessica Smith 5fa06e5a9c Bump whirlpool-sixth-sense to 0.18.8 (#115393)
bump whirlpool to 0.18.8
2024-04-12 11:59:42 +02:00
J. Nick Koston 4aca39b49e Fix deadlock in holidays dynamic loading (#115385) 2024-04-12 11:59:39 +02:00
jan iversen d055f98736 Solve modbus test problem (#115376)
Fix test.
2024-04-12 11:59:35 +02:00
jan iversen 98bc7c0ed2 Secure against resetting a non active modbus (#115364) 2024-04-12 11:59:32 +02:00
J. Nick Koston 0d62e2e92a Bump bleak-retry-connector 3.5.0 (#115328) 2024-04-12 11:59:28 +02:00
J. Nick Koston db5343164f Ensure automations do not execute from a trigger if they are disabled (#115305)
* Ensure automations are stopped as soon as the stop future is set

* revert script changes and move them to #115325
2024-04-12 11:59:24 +02:00
TheJulianJES 5c2e9142fa Bump zha-quirks to 0.0.114 (#115299) 2024-04-12 11:59:21 +02:00
Shay Levy f941e5d5bb Fix Aranet failure when the Bluetooth proxy is not providing a device name (#115298)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-12 11:59:17 +02:00
Joost Lekkerkerker 150145c9b1 Bump yt-dlp to 2024.04.09 (#115295) 2024-04-12 11:59:14 +02:00
jan iversen db2005d4ec Bump pymodbus v3.6.7 (#115279)
Bump pymodbus v3.6.7.
2024-04-12 11:59:11 +02:00
Stefan Agner 08bd269696 Support backup of add-ons with hyphens (#115274)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-12 11:59:07 +02:00
Klaas Schoute 5723ed28d3 Bump forecast-solar lib to v3.1.0 (#115272) 2024-04-12 11:59:04 +02:00
Allen Porter 14da34cd4d Fix Google Tasks parsing of remove responses (#115258) 2024-04-12 11:59:01 +02:00
J. Nick Koston f284273ef6 Fix misssing timeout in caldav (#115247) 2024-04-12 11:58:57 +02:00
On Freund fc60426213 Improve Risco exception logging (#115232) 2024-04-12 11:58:54 +02:00
On Freund 922cc81a62 Configurable maximum concurrency in Risco local (#115226)
* Configurable maximum concurrency in Risco local

* Show advanced Risco options in advanced mode
2024-04-12 11:58:50 +02:00
Mike Degatano 4c6fad8dc3 Add support for adopt data disk repair (#114891) 2024-04-12 11:58:46 +02:00
J. Nick Koston 733e2ec57a Bump aiohttp to 3.9.4 (#110730)
* Bump aiohttp to 3.9.4

This is rc0 for now but will be updated when the full release it out

* cleanup cruft

* regen

* fix tests (these changes are fine)

* chunk size is too small to read since boundry is now enforced

* chunk size is too small to read since boundry is now enforced
2024-04-12 11:55:52 +02:00
Bram Kragten d59af22b69 Update frontend to 20240404.2 (#115460) 2024-04-12 11:50:22 +02:00
Jan Bouwhuis a213de3db5 Add service schema tests for notify entity platform (#115457)
* Add service schema tests for notify entity platform

* Use correct entity

* Assert on exception value
2024-04-12 10:40:17 +02:00
J. Nick Koston f3a3e6821b Switch imap push coordinator to use eager_start (#115454)
When I turned on eager_start here the data would always end up being
None because _async_update_data always returned None. To fix this
it now returns the value from the push loop. It appears this race
would happen in production so this may be a bugfix but since
I do not use this integration it could use a second set of eyes
2024-04-12 09:14:35 +02:00
Sid 9bf87329da Enable Ruff FLY002 rule (#115112)
Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-04-12 09:04:16 +02:00
Stefan Agner 35d3f2b29b Support backup of add-ons with hyphens (#115274)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-12 09:02:22 +02:00
Joost Lekkerkerker adafdb2b2d Use enum device class in Netatmo health index sensor (#115409) 2024-04-12 08:40:27 +02:00
Joost Lekkerkerker 6cc2b1e10a Use enum device class in Netatmo wind direction (#115413)
* Use enum device class in Netatmo wind direction

* Use enum device class in Netatmo wind direction

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-12 08:39:59 +02:00
J. Nick Koston fb5fc136e8 Avoid falling back to event loop import on ModuleNotFound (#115404) 2024-04-11 16:32:47 -10:00
J. Nick Koston 28bdbec14e Bypass ConfigEntry __setattr__ in __init__ (#115405)
ConfigEntries.async_initialize was trigger asyncio warnings because of the CPU time
to call __setattr__ for every variable for each ConfigEntry being loaded at startup
2024-04-11 22:16:01 -04:00
Allen Porter c7cb0237d1 Fix bug in rainbird switch when turning off a switch that is already off (#115421)
Fix big in rainbird switch when turning off a switch that is already off

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-11 22:14:52 -04:00
Marc Mueller 1b24e78dd9 Improve FlowHandler menu_options typing (#115296) 2024-04-11 22:14:37 -04:00
Marc Mueller a48f2803b2 Add py.typed file (#115446) 2024-04-11 22:14:10 -04:00
J. Nick Koston e3680044fe Fix flakey influxdb test (#115442) 2024-04-11 13:26:03 -10:00
Luke Lashley cfda8f64b4 Bump python-roborock to 2.0.0 (#115449) 2024-04-12 01:04:51 +02:00
J. Nick Koston 2e8f4743eb Fix flakey mobile app webhook test (#115447) 2024-04-11 12:17:01 -10:00
Sid a093f943d7 Use library classes instead of namedtuple in ipma tests (#115372) 2024-04-12 01:03:10 +03:00
J. Nick Koston 137514edb7 Bump aiohttp to 3.9.4 (#110730)
* Bump aiohttp to 3.9.4

This is rc0 for now but will be updated when the full release it out

* cleanup cruft

* regen

* fix tests (these changes are fine)

* chunk size is too small to read since boundry is now enforced

* chunk size is too small to read since boundry is now enforced
2024-04-11 11:58:56 -10:00
Marc Mueller db38da8eb8 Update pytest warnings filter (#115275) 2024-04-11 23:35:15 +02:00
J. Nick Koston d9fc9f2e0c Convert async_setup calls for auth sub-modules to callback functions (#115443) 2024-04-11 11:22:50 -10:00
Santobert c14f11fbf0 Bump pybotvac to 0.0.25 (#115435)
Bump pybotvac
2024-04-11 21:57:18 +02:00
TheJulianJES 6ba7a30cc8 Fix Codecov upload with token (#115384)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-11 09:51:09 -10:00
Allen Porter 6c1bc2a9f4 Reduce scope of diagnostics tests for rtsp_to_webrtc to not depend on global state (#115422) 2024-04-11 18:13:39 +02:00
Jessica Smith f558121752 Bump whirlpool-sixth-sense to 0.18.8 (#115393)
bump whirlpool to 0.18.8
2024-04-11 16:26:05 +02:00
Jan Bouwhuis 10076e6523 Add notify entity component (#110950)
* Add notify entity component

* Device classes, restore state, icons

* Add icons file

* Add tests for kitchen_sink

* Remove notify from no_entity_platforms in hassfest icons, translation link

* ruff

* Remove `data` feature

* Only message support

* Complete initial device classes

* mypy pylint

* Remove device_class implementation

* format

* Follow up comments

* Remove _attr_supported_features

* Use setup_test_component_platform

* User helper at other places

* last comment

* Add entry unload test and non async test

* Avoid default mutable object in constructor
2024-04-11 12:04:08 +02:00
Steven B df5d818c08 Make ring device generic in RingEntity (#115406)
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
2024-04-11 11:31:37 +02:00
Mike Degatano 5308e02c99 Add support for adopt data disk repair (#114891) 2024-04-11 11:23:10 +02:00
Steven B 6954fcc8ad Add strict typing to ring integration (#115276) 2024-04-11 10:10:56 +02:00
Jan Bouwhuis 3546ca386f Use freezer on diagnostics test (#115398)
* Use freezer on diagnostics test

* Patch correctly
2024-04-11 09:40:16 +02:00
Joost Lekkerkerker 4224234b7a Add binary sensor to Netatmo (#115119)
* Add binary sensor to Netatmo

* Update homeassistant/components/netatmo/binary_sensor.py

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

* Sigh

* Fix

* Fix

* Fix

---------

Co-authored-by: Jan-Philipp Benecke <github@bnck.me>
2024-04-11 07:46:07 +02:00
J. Nick Koston d9b74fda89 Add PYTHONASYNCIODEBUG to the dev container env (#115392) 2024-04-11 07:26:30 +02:00
J. Nick Koston f0c8c2a684 Adjust importlib helper to avoid leaking memory on re-raise (#115377) 2024-04-10 15:19:17 -10:00
J. Nick Koston 6bd6adc4f5 Avoid calling valid_entity_id when adding entities if they are already registered (#115388) 2024-04-10 15:18:47 -10:00
J. Nick Koston 288f3d84ba Fix duplicate automation entity state writes (#115386)
_async_attach_triggers was writing state, async_enable was
writing state, and all of them were called async_added_to_hass

After entity calls async_added_to_hass via add_to_platform_finish
it will also write state so there were some paths that
did it 3x

async_disable was also writing state when the entity was
removed
2024-04-10 21:15:21 -04:00
J. Nick Koston e17c4ab4e3 Fix flakey tessie media_player test (#115391) 2024-04-10 14:18:11 -10:00
Jan Bouwhuis be8adf9d29 Fix zha test by tweaking the log level (#115368) 2024-04-10 13:10:46 -10:00
J. Nick Koston bbecb98927 Fix type on known_object_ids in _entity_id_available and async_generate_entity_id (#115378) 2024-04-10 11:44:25 -10:00
J. Nick Koston 9d7e20f9ca Fix deadlock in holidays dynamic loading (#115385) 2024-04-10 23:38:34 +02:00
On Freund 6394e25f75 Improve Risco exception logging (#115232) 2024-04-10 11:26:15 -10:00
jan iversen 220801bf1c Secure against resetting a non active modbus (#115364) 2024-04-10 22:09:10 +02:00
jan iversen 8d6473061c Solve modbus test problem (#115376)
Fix test.
2024-04-10 21:39:53 +02:00
Åke Strandberg b99cdf3144 Add missing oauth2 error strings to myuplink (#115315)
Add some oauth2 error strings

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-10 17:52:08 +02:00
J. Nick Koston 63545ceaa4 Ensure automations do not execute from a trigger if they are disabled (#115305)
* Ensure automations are stopped as soon as the stop future is set

* revert script changes and move them to #115325
2024-04-10 08:42:18 -04:00
J. Nick Koston f80894d56f Stop scripts with eager tasks (#115340) 2024-04-10 08:41:13 -04:00
Shay Levy a6b93ea8ac Fix Aranet failure when the Bluetooth proxy is not providing a device name (#115298)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-10 14:58:35 +03:00
Joakim Sørensen 012509f683 Add documentation link for custom integrations in diagnostics (#115336)
* Add documentation link for custom integrations in diagnostics

* Enable custom integrations in test_download_diagnostics
2024-04-10 11:36:25 +02:00
Marc Mueller 8aa3ea575f Update pytest-xdist to 3.5.0 (#111266) 2024-04-10 08:56:08 +02:00
Sid 3efee10b95 Enable Ruff RUF013 (#115333) 2024-04-10 08:55:59 +02:00
Joost Lekkerkerker 7e1a5b19c4 Add entity translations to Netatmo (#115104)
* Add entity translations to Netatmo

* Yes

* Remove

* Fix name
2024-04-10 08:50:27 +02:00
Sid d61db732da Enable Ruff SLOT rules (#115043) 2024-04-09 18:57:27 -10:00
Collin Fair 0636ba340c Fix flakiness of test_measure_sliding_window (#115322) 2024-04-09 18:28:06 -10:00
J. Nick Koston 2fdb420d1a Bump bleak-retry-connector 3.5.0 (#115328) 2024-04-09 18:04:52 -10:00
Marc Mueller 2decf6c023 Use dict instead of MutableMapping [recorder] (#115318) 2024-04-09 15:08:31 -10:00
Marc Mueller d8c8d1a297 Use dict instead of MutableMapping [extra_state_attributes] (#115319) 2024-04-09 15:06:11 -10:00
Luke Lashley 968de08e4b Bump python-roborock to 1.0.0 (#115324)
* refactor base code

* refactor tests code
2024-04-09 20:50:46 -04:00
Jan-Philipp Benecke fa3cba5b87 Bump codecov/codecov-action to v4.3.0 (#115317) 2024-04-09 12:15:30 -10:00
J. Nick Koston f527fd0947 Improve error reporting when an integration tries to create a task in a thread (#115307) 2024-04-09 11:11:22 -10:00
TheJulianJES 6ed2190c29 Bump zha-quirks to 0.0.114 (#115299) 2024-04-09 15:22:46 -04:00
Joost Lekkerkerker 076e6ce6e6 Bump yt-dlp to 2024.04.09 (#115295) 2024-04-09 21:10:22 +02:00
J. Nick Koston 469b01bd64 Migrate apple_tv to use async_schedule_reload (#115241) 2024-04-09 07:05:23 -10:00
J. Nick Koston d2a3473454 Migrate elkm1 to use async_schedule_reload (#115240) 2024-04-09 07:05:09 -10:00
J. Nick Koston 11af7d91ff Optimize _async_track_event for the single key common case (#115242) 2024-04-09 07:04:50 -10:00
J. Nick Koston 1de1e413a9 Migrate script entities to use more shorthand attrs (#115245) 2024-04-09 07:04:32 -10:00
J. Nick Koston 59d92f16bd Use shorthand attributes in automation for name (#115246) 2024-04-09 07:04:12 -10:00
J. Nick Koston f8aec03c03 Migrate hyperion to use async_update_reload_and_abort (#115238) 2024-04-09 18:37:01 +02:00
Joost Lekkerkerker 763df83cdb Remove Nextbus YAML import (#115277) 2024-04-09 18:34:35 +02:00
Joost Lekkerkerker e7c247f1f0 Remove Twitch YAML import (#115278) 2024-04-09 18:34:29 +02:00
Klaas Schoute d2dcf04946 Bump forecast-solar lib to v3.1.0 (#115272) 2024-04-09 18:34:04 +02:00
Paulus Schoutsen 2df6f1849f Add OpenAI conversation entity (#114942)
* Add OpenAI conversation entity

* Add migration
2024-04-09 11:10:03 -04:00
jan iversen 51d5d51248 Bump pymodbus v3.6.7 (#115279)
Bump pymodbus v3.6.7.
2024-04-09 17:09:55 +02:00
Jesse Hills 68384bba67 Send/receive Voice Assistant audio via ESPHome native API (#114800)
* Protobuf audio test

* Remove extraneous code

* Rework voice assistant pipeline

* Move variables

* Fix reading flags

* Dont directly put to queue

* Bump aioesphomeapi to 24.0.0

* Update tests

- Add more tests for API pipeline
- Convert some udp tests to use api pipeline
- Update fixtures for new device info flags

* Fix bad merge

---------

Co-authored-by: Michael Hansen <mike@rhasspy.org>
2024-04-09 10:55:59 -04:00
konsti cad4c3c0c2 Remove pip jemalloc config from dockerfile (#115206) 2024-04-09 15:08:55 +02:00
pleum 7bf2baa236 Add additional Vital 100S model to vesync (#113838) 2024-04-09 10:18:37 +01:00
Steven B 4cd2351bcc Update and migrate ring non string unique ids (#115265)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-08 23:08:46 -10:00
Joost Lekkerkerker 80450adb1a Remove Epson Workforce integration (#115201)
* Remove Epson Workforce integration

* Remove Epson Workforce integration
2024-04-09 10:38:17 +02:00
Steven B bf3eb463ae Wrap tplink exceptions caused by user actions inside HomeAssistantError (#114919) 2024-04-08 22:35:25 -10:00
Steven B 0a57641f3f Bump ring_doorbell library to 0.8.11 (#115263) 2024-04-08 22:12:50 -10:00
On Freund a852a38d24 Configurable maximum concurrency in Risco local (#115226)
* Configurable maximum concurrency in Risco local

* Show advanced Risco options in advanced mode
2024-04-09 09:59:27 +02:00
Robert Contreras af7d0187cb Add tests to Home Connect integration (#114214)
* Add tests to Home Connect integration

* Fix misspelling

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

* Changes to tests with properly setup fixtures.

* Consolidated api tests, patched library instead of code

* Consolidate sensor edge cases, switch mock assertion to call_count

* Adjust assertion

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-09 08:52:39 +02:00
Allen Porter 4a7a22641e Fix Google Tasks parsing of remove responses (#115258) 2024-04-09 07:39:31 +02:00
Marc Mueller d4500cf945 Improve recorder event typing (#115253) 2024-04-08 14:56:18 -10:00
J. Nick Koston 4e983d710f Fix misssing timeout in caldav (#115247) 2024-04-08 11:09:18 -10:00
J. Nick Koston aa85e59c6f Migrate group to use shorthand attributes for name and icon (#115244) 2024-04-08 11:05:56 -10:00
J. Nick Koston 95958ac0ef Increase discovery flow init concurrency limit to 20 (#115230) 2024-04-08 11:05:40 -10:00
Jan-Philipp Benecke 44f8dbf86b Fix failing escea test in connection with greeneye_monitor (#115237)
* Fix failing escea test in connection with greeneye_monitor

* typing
2024-04-08 22:11:14 +02:00
J. Nick Koston ca5ed274cb Deprecate calling async_listen and async_listen_once with run_immediately (#115169) 2024-04-08 10:07:54 -10:00
Luke Lashley 5ef42078a3 Add a service to get maps for Roborock (#111478)
* add service to get rooms

* fix linting

* add snapshot

* change map id
2024-04-08 21:40:59 +02:00
Sid 9cbed10372 Enable Ruff PYI041 (#115229) 2024-04-08 09:29:05 -10:00
Sid cbbadf6256 Enable Ruff PYI036 (#115228) 2024-04-08 08:47:03 -10:00
Sergio Conde Gómez f114ebd79d Remove @skgsergio from foscam and qingping codeowners (#115210) 2024-04-08 08:46:22 -10:00
Marc Mueller 4e94f11665 Use EventType for entity_registry_updated (#115187) 2024-04-08 08:44:59 -10:00
Sid 025c6f5e2e Add __slots__ to NodeClass classes (#115079)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-08 08:44:18 -10:00
J. Nick Koston 266e4f0c8b Migrate rfxtrx to use run_immediately=True for the device registry listener (#115165) 2024-04-08 08:29:27 -10:00
Marc Mueller 2fc0d8494d Use EventType for device_registry_updated (#115188) 2024-04-08 08:25:57 -10:00
Marc Mueller 0d18679c8f Use EventType for remaining registry events (#115189) 2024-04-08 08:25:39 -10:00
Marc Mueller 6116f11e6c Use EventType for system events (#115190) 2024-04-08 08:25:34 -10:00
Marc Mueller a52a80f806 Always include old_state in EventStateChangedData [tests] (#115098) 2024-04-08 08:25:22 -10:00
Thomas55555 017b2fe685 Change scan interval for Husqvarna Automower (#115225)
* Change scan interval for Husqvarna Automower

* Also use const
2024-04-08 20:22:09 +02:00
Luca Angemi fc1ebdaaa3 Add config message items selector to imap option flow (#115108)
* Update const.py

* Update config_flow.py

* Update coordinator.py

* Update coordinator.py

* Update strings.json

* Update config_flow.py

* Update const.py

* Update coordinator.py

* Update config_flow.py

* Update config_flow.py

* Update test_diagnostics.py

* Update const.py

* Update test_init.py

* Update test_diagnostics.py

* Update test_diagnostics.py

* Update test_diagnostics.py

* Update test_init.py

* Update test_diagnostics.py

* Update test_init.py

* Update test_diagnostics.py

* Update test_diagnostics.py

* Update test_diagnostics.py

* Update test_config_flow.py

* Update config_flow.py

* Update test_config_flow.py

* Update test_init.py

* Update const.py

* Only make text and headers optional

* Add message data tests

* Add message data test

* Update test_config_flow.py

* Update test message data

* Fix ruff

* Fix ruff

* Update test_init.py

* Update strings.json

---------

Co-authored-by: jbouwh <jan@jbsoft.nl>
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-04-08 19:34:50 +02:00
Kim de Vos f23e48f373 Add sensor for CPU and memory utilization for unifi device (#114986)
Add system stats to unifi device sensors
2024-04-08 19:29:54 +02:00
Paulus Schoutsen f9a7e6bb9f Add migration logic to assist_pipeline (#115172) 2024-04-08 11:29:55 -04:00
Illia cbaef096fa Add Arve integration (#113156)
* add Arve integration

* Update homeassistant/components/arve/config_flow.py

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

* Various fixes, changed scan interval to one minute

* coordinator implementation

* Code cleanup

* Moved device info to the entity.py, ArveDeviceEntityDescription to sensor.py

* delete refresh before adding entities

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

* Update tests/components/arve/test_config_flow.py

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

* Update tests/components/arve/conftest.py

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

* Changed value_fn in sensors.py, added typing to description

* Code cleanups, platfrom test implementation

* New code cleanups, first two working tests

* Created platform test, generated snapshots

* Reworked integration to get all of the customer devices

* new fixes

* Added customer id, small cleanups

* Logic of setting unique_id to the config flow

* Added test of abortion on duplicate config_flow id

* Added "available" and "device" properties fro ArveDeviceEntity

* small _attr_unique_id fix

* Added new test, improved mocking, various fixes

* Various cleanups and fixes

* microfix

* Update homeassistant/components/arve/strings.json

* ruff fix

---------

Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-08 17:24:32 +02:00
Sid 376aafc83e Enable Ruff INP001 (#115082) 2024-04-08 15:43:58 +02:00
Sid f8b6629b26 Enable Ruff PGH rules (#115091) 2024-04-08 15:42:22 +02:00
Erwin Douna 85b453b86c Fix Downloader test cases and error title (#114847)
* Fix test cases

* Return value

* isdir change

* FIx test cases and error title

* Removing patch

* Tiny needless fine-tuning
2024-04-08 15:28:07 +02:00
Jan Bouwhuis d9dada4fb3 Remove condition from ecobee humidifier attribute test (#115197)
Remove conditions from ecobee humidifier attribute test
2024-04-08 14:33:24 +02:00
Franck Nijhof 04072cb3c1 2024.4.2 (#115186) 2024-04-08 14:17:03 +02:00
Marc Mueller 53b4fd419a Update build system dependencies (#115102) 2024-04-08 11:18:20 +02:00
dependabot[bot] c5f05908d7 Bump github/codeql-action from 3.24.9 to 3.24.10 (#115179) 2024-04-08 10:46:25 +02:00
Franck Nijhof 05082fcceb Bump version to 2024.4.2 2024-04-08 10:41:50 +02:00
gibwar 8c0b44d6d5 Only reset requested utility meter with no tariff (#115170) 2024-04-08 10:41:41 +02:00
J. Nick Koston 9a342f87c0 Avoid checking for polling if an entity fails to add (#115159)
* Avoid checking for polling if an entity fails to add

* no need to do protected access

* no need to do protected access

* no need to do protected access

* no need to do protected access

* coverage

* fix test

* fix

* broken one must be first
2024-04-08 10:41:38 +02:00
J. Nick Koston d062ef357b Write timer entity state before firing events (#115151) 2024-04-08 10:41:35 +02:00
rappenze 265d04c593 Fix fibaro sensor additional sensor lookup (#115148) 2024-04-08 10:41:32 +02:00
dontinelli fc9653581a Bump fyta_cli to 0.3.5 (#115143)
bump fyta_cli to 0.3.5
2024-04-08 10:41:29 +02:00
dontinelli 7bea6eface improve handling of incorrect values in fyta integration (#115134)
* improve handling of incorrect values

* Changes based on review comment

* Apply suggestions from code review

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

* update value_fn

* ruff

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-08 10:41:26 +02:00
J. Nick Koston 19f3ef763d Terminate scripts with until and while conditions that execute more than 10000 times (#115110) 2024-04-08 10:41:23 +02:00
Maikel Punie fa88975055 Bump velbus-aio to 2024.4.1 (#115109)
bump velbusaio to 2024.4.1
2024-04-08 10:41:19 +02:00
Joakim Sørensen 1322f38911 Downgrade hass-nabucasa from 0.80.0 to 0.78.0 (#115078) 2024-04-08 10:40:42 +02:00
J. Nick Koston 75127105b9 Fix synology_dsm availablity (#115073)
* Remove reload on update failure from synology_dsm

fixes #115062

The coordinator will retry on its own later, there is no
reason to reload here.  This was added in #42697

* fix available checks
2024-04-08 10:34:59 +02:00
Matthias Alphart d6793a756f Update xknxproject to 3.7.1 (#115053) 2024-04-08 10:34:55 +02:00
Matrix 20e88255df Bump yolink-api to 0.4.2 (#115026) 2024-04-08 10:34:52 +02:00
Maciej Bieniek 2f9f1008a5 Bump brother to version 4.1.0 (#115021)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-08 10:34:49 +02:00
J. Nick Koston 90bc21b7f6 Fix dictionary changed size during iteration in prometheus (#115005)
Fixes #104803
2024-04-08 10:34:45 +02:00
Øyvind Matheson Wergeland b29eb317bd Upgrade to pynobo 1.8.1 (#114982)
pynobo 1.8.1
2024-04-08 10:34:42 +02:00
Joost Lekkerkerker dcd9d987a7 Filter out fuzzy translations from Lokalise (#114968) 2024-04-08 10:34:38 +02:00
Robert Svensson e26ea40570 Bump axis to v61 (#114964) 2024-04-08 10:34:35 +02:00
Joost Lekkerkerker 0a2d79f63e Fix Snapcast Config flow (#114952) 2024-04-08 10:34:31 +02:00
Nathan Spencer d1b1d6388f Bump pylitterbot to 2023.4.11 (#114918) 2024-04-08 10:34:28 +02:00
Benjamin 93569e3827 Fix missing if statement in homematic (#114832)
* homematic fix issue #114807

Update climate.py

* Update homeassistant/components/homematic/climate.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-08 10:34:24 +02:00
Niccolò Maggioni 61a359e4d2 Fix hang in SNMP device_tracker implementation (#112815)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-08 10:34:20 +02:00
gibwar e403b50ddc Only reset requested utility meter with no tariff (#115170) 2024-04-08 10:05:46 +02:00
Niccolò Maggioni f06b00c6d8 Fix hang in SNMP device_tracker implementation (#112815)
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-08 10:04:59 +02:00
Joost Lekkerkerker ecda6b70ff Filter out fuzzy translations from Lokalise (#114968) 2024-04-08 10:04:16 +02:00
Jan Bouwhuis 8b5177e989 Add IMAP fetch service (#115127)
* Add IMAP fetch service

* Fix docstr
2024-04-08 09:50:28 +02:00
Brett Adams 1cace9a609 Add reauth to Teslemetry (#114726)
* Add reauth

* Add tests

* PARALLEL_UPDATES

* Bump quality to platinum

* Fix assertion

* Remove quality

* Remove async_create_task

* Review Feedback

* Remove loop inside parametrize

* Change config during reauth

* Fix missing return
2024-04-08 09:44:51 +02:00
Richard Kroegel 16fc935c87 Refactor BMW entity availability (#110294)
Co-authored-by: Richard <rikroe@users.noreply.github.com>
2024-04-08 09:26:50 +02:00
MarkGodwin 487480dc88 Address late review of TP-Link Omada (#115121)
tplink_omada implement feedback from #114138
2024-04-08 06:26:20 +02:00
Federico D'Amico 111ffdd77e Improve microBees code quality (#114939)
microBees code quality
2024-04-08 05:35:46 +02:00
J. Nick Koston 3daecc7a31 Remove remaining run_immediately=False from tests (#115168) 2024-04-07 16:47:41 -10:00
J. Nick Koston 9ef28f83ea Switch async_track_state_change to use run_immediately (#115164) 2024-04-07 16:38:25 -10:00
J. Nick Koston 1fd5f64dcc Migrate matrix to use run_immediately for start listener (#115167)
* Migrate matrix to use run_immediately for start listener

* Migrate matrix to use run_immediately for start listener
2024-04-07 22:30:54 -04:00
J. Nick Koston af1023074e Add an event_filter to google_assistant state reporting (#115160)
* adjust

* fix test since it happens sooner now

* remove debug

* remove unneeded test change

* reduce

* reduce
2024-04-07 21:30:03 -04:00
J. Nick Koston 89a2c89fe2 Avoid checking for polling if an entity fails to add (#115159)
* Avoid checking for polling if an entity fails to add

* no need to do protected access

* no need to do protected access

* no need to do protected access

* no need to do protected access

* coverage

* fix test

* fix

* broken one must be first
2024-04-07 21:25:55 -04:00
J. Nick Koston 6b4457043d Deprecate async_add_hass_job (#115061) 2024-04-07 14:08:25 -10:00
rappenze f044dd54cf Bump fibaro to 0.7.7 (#115152) 2024-04-07 13:49:20 -10:00
J. Nick Koston 213cf76781 Fix flakey fritz image test (#115161) 2024-04-07 13:46:38 -10:00
Mick Vleeshouwer 94a2352b41 Bump pyoverkiz to 1.13.10 (#115154) 2024-04-07 13:39:11 -10:00
Marc Mueller a0e6fd6ec5 Add improved typing for event fire and listen methods (#114906)
* Add EventType implementation

* Update integrations for EventType

* Change state_changed to EventType

* Fix tests

* Remove runtime impact

* Add tests

* Move to stub file

* Apply pre-commit to stub files

* Fix ruff PYI checks

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-07 13:28:24 -10:00
J. Nick Koston d007b175c5 Write timer entity state before firing events (#115151) 2024-04-07 12:51:59 -10:00
Pete Sage f96c5a2905 Add additional Sonos integration code-owner (#115157) 2024-04-07 12:51:44 -10:00
Matrix 3a28125470 Bump yolink-api to 0.4.2 (#115026) 2024-04-07 11:31:52 -10:00
Sid 8e98ba7312 Add first batch of Ruff PYI rules (#115100)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-04-07 11:30:50 -10:00
J. Nick Koston 569f54d8e3 Terminate scripts with until and while conditions that execute more than 10000 times (#115110) 2024-04-07 11:02:53 -10:00
rappenze 771fe57e32 Fix fibaro sensor additional sensor lookup (#115148) 2024-04-07 10:53:30 -10:00
dontinelli 05440ec04c Bump fyta_cli to 0.3.5 (#115143)
bump fyta_cli to 0.3.5
2024-04-07 21:38:13 +02:00
dontinelli 80ec9d4394 improve handling of incorrect values in fyta integration (#115134)
* improve handling of incorrect values

* Changes based on review comment

* Apply suggestions from code review

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

* update value_fn

* ruff

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-07 21:07:51 +02:00
Joost Lekkerkerker 9ec4e9a1a9 Remove Color extractor import flow (#115015)
* Remove Color extractor import flow

* Remove Color extractor import flow
2024-04-07 19:38:56 +02:00
Maikel Punie 3239351f18 Bump velbus-aio to 2024.4.1 (#115109)
bump velbusaio to 2024.4.1
2024-04-07 19:32:15 +02:00
Jan Bouwhuis c270ab0059 Correct duplicate word in IMAP translations (#115132) 2024-04-07 19:29:19 +02:00
wittypluck 63d43a9384 Add Glances network sensors (#114546)
* Add Glances network sensors

* Add unit test for network and remove unused MOCK_DATA

* Add network icons
2024-04-07 16:01:00 +02:00
Joost Lekkerkerker 32d62e477a Add entity translations to Bluemaestro (#102424)
* Add entity translations to Bluemaestro

* Fix

* yes
2024-04-07 15:54:22 +02:00
J. Nick Koston 5630b3611d Add an event filter to the alexa state report state change listener (#115076)
Co-authored-by: jbouwh <jan@jbsoft.nl>
2024-04-07 03:14:18 -10:00
Tobias Sauerwein f617000920 Add device removal capability for Netatmo (#107630)
* Add device removal capability for Netatmo

* Update tests/components/netatmo/test_init.py

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

* Update tests/components/netatmo/test_init.py

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

* Update tests/components/netatmo/test_init.py

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

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-07 15:10:00 +02:00
Álvaro Fernández Rojas d4d06c0bc3 Add Water Heater support for Airzone Cloud (#115097)
* airzone_cloud: add Water Heater support

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

* run CI

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-04-07 15:07:40 +02:00
fhoekstra e4fbe539aa Add GPU sensor to Glances (#106322)
* feat: add GPU sensor to Glances

* Add translations to Glances GPU sensor

* Fix translations of GPU processor and memory usage

* PR feedback: move icons to icons.json

thanks to @wittypluck

* Update glances snapshot with added GPU

* Remove JSON trailing comma

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

* Limit precision of Glance GPU mem usage sensor

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

* Clean up outdated snapshots

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-07 15:05:22 +02:00
Joost Lekkerkerker 1b07d3ecfa Enable entities in Netatmo snapshot test (#115105) 2024-04-07 14:38:40 +02:00
Joakim Sørensen df6997bfa9 Downgrade hass-nabucasa from 0.80.0 to 0.78.0 (#115078) 2024-04-07 08:20:58 -04:00
Joost Lekkerkerker 021eed66f3 Add more base entities to netatmo (#107862)
* Rename netatmo base entity file

* Add more Netatmo base entities

* Add more Netatmo base entities

* Add more Netatmo base entities

* Add more Netatmo base entities

* Apply suggestions from code review

* Add more Netatmo base entities

* Add snapshot tests to Netatmo platforms

* Add snapshot tests to Netatmo platforms

* Fix snapshots

* Fix tests

* Update snapshots

* Add fans

* Add fans

* Update homeassistant/components/netatmo/select.py

Co-authored-by: Tobias Sauerwein <cgtobi@users.noreply.github.com>

* Add snapshot tests to Netatmo platforms

* Update snapshots

* minor clean up

* Fix tests

* Fix

* Fix

* Fix

* Move dot split to weather station sensors

---------

Co-authored-by: Tobias Sauerwein <cgtobi@users.noreply.github.com>
Co-authored-by: Tobias Sauerwein <cgtobi@gmail.com>
2024-04-07 13:36:12 +02:00
Joost Lekkerkerker 9f2fa7ec19 Add snapshot tests to Bluemaestro (#115094) 2024-04-07 13:19:40 +02:00
J. Nick Koston 32004973c8 Simplify invalidating the User cache (#115074) 2024-04-07 12:17:18 +02:00
J. Nick Koston f2fe2c4510 Fix synology_dsm availablity (#115073)
* Remove reload on update failure from synology_dsm

fixes #115062

The coordinator will retry on its own later, there is no
reason to reload here.  This was added in #42697

* fix available checks
2024-04-07 10:54:40 +02:00
J. Nick Koston b456a212eb Fix flakey tests using the _get_diagnostics_for_config_entry helper (#115069) 2024-04-06 21:58:23 -10:00
Marc Mueller cb9352110c Improve registry store data typing (#115066) 2024-04-06 14:34:49 -10:00
J. Nick Koston a0936902c2 Use identity checks for EntityPlatformState enum (#115067) 2024-04-07 02:31:23 +02:00
J. Nick Koston 164d29d4d9 Remove prepare override in HomeAssistantQueueHandler (#115064) 2024-04-06 13:53:36 -10:00
Marc Mueller 8324fd5d1d Deprecated old backports and typing aliases (#114883) 2024-04-06 13:15:30 -10:00
J. Nick Koston 8e645c9b32 Fix flakey cast discovery test (#115063) 2024-04-06 13:15:14 -10:00
Pete Sage 553c147933 Fix sonos switch test failures (#115052) 2024-04-06 12:51:21 -10:00
Avi Miller 6f783d75bc Bump aiolifx to 1.0.2 and aiolifx-themes to 0.4.15 (#115059) 2024-04-06 12:48:37 -10:00
J. Nick Koston c4b5a7c027 Migrate start helper to use run_immediately (#115055) 2024-04-06 12:35:46 -10:00
wittypluck 3ef2c464ac Add Glances DiskIO read/write sensors (#114933) 2024-04-07 00:13:02 +02:00
Kevin Stillhammer cce8e4839a Add reconfigure step for waze_travel_time (#114885)
* Add reconfigure step for waze_travel_time

* Add reconfigure_successful string

* Update tests/components/waze_travel_time/test_config_flow.py

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-04-07 00:06:30 +02:00
William Easton ed451cab3b Update Ambient Weather to include Lightning Strike Time and Distance (#114255)
* Update sensor.py to include Lightning Distance

* Update strings.json to include Lightning Strikes distance

* Update homeassistant/components/ambient_station/sensor.py

* Update homeassistant/components/ambient_station/strings.json

* Update device class lightning distance

* Also add Last Lightning strike datetime

---------

Co-authored-by: Aaron Bach <bachya1208@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-06 23:39:43 +02:00
Steven Looman 78bb21138c Remove @StevenLooman from dlna_dmr codeowners (#115028)
* Remove myself from dlna_dmr codeowners

* Update codeowners file

---------

Co-authored-by: jbouwh <jan@jbsoft.nl>
2024-04-06 23:38:05 +02:00
Álvaro Fernández Rojas 9a1b0874fd Update aioairzone-cloud to v0.5.1 (#115029)
* Update aioairzone-cloud to v0.5.1

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

* tests: airzone_cloud: fix diagnostics

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

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-04-06 23:37:22 +02:00
J. Nick Koston 29bc67234e Make eager_start default to True for config entry async_create_task (#115047) 2024-04-06 11:22:02 -10:00
Matthias Alphart 2290362dfb Update xknxproject to 3.7.1 (#115053) 2024-04-06 23:18:52 +02:00
Maciej Bieniek b0fd3d0b89 Bump brother to version 4.1.0 (#115021)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-06 11:09:46 -10:00
J. Nick Koston 52957849cf Make eager_start default to True for config entry async_create_background_task (#115050) 2024-04-06 10:59:24 -10:00
J. Nick Koston 166910f587 Make eager_start default to True for async_create_background_task (#114996) 2024-04-06 09:53:50 -10:00
Marc Mueller 8f425b9ea7 Improve generic event typing [recorder] (#114736) 2024-04-06 21:35:42 +02:00
Jan Bouwhuis 2e3cb1a767 Correct changes hassfest coverage backports (#115044) 2024-04-06 21:17:44 +02:00
J. Nick Koston c33a234048 Make eager_start default to True for async_create_task (#114995) 2024-04-06 09:15:40 -10:00
Jan Bouwhuis fa47e79292 Correct typo in IMAP translation (#115032) 2024-04-06 18:37:54 +02:00
mkmer 7f8341e03a Deprecate aux heat from Honeywell (#114110)
* Remove aux heat

* Add switch entity for emheat

* Optimized async_setup_entry

* Fix errors in comments

* Fix new ruff failuer

* Use constant for EM

* Protect EM mode - must be in heat to turn on/off

* Restore aux_heat

* Add repair issue

* Add missing place holder to issue

* Better placeholder "option"
2024-04-06 17:22:56 +02:00
larsvinc a5c82f3713 Add adax on/off functionality for local heaters (#114557)
* Add adax on/off functionality for local heaters

* Fixed ruff / newline

* Ran Ruff

* Update homeassistant/components/adax/climate.py

Removed unecessary return

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

* Update homeassistant/components/adax/climate.py

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

* Update homeassistant/components/adax/climate.py

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

* Fixed bug with internal temperature state.

* Apply suggestions from code review

Added target_temp for code clarity

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

---------

Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-04-06 17:09:48 +02:00
Joost Lekkerkerker 57cc3495c2 Sort coveragerc again (#115017)
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>
2024-04-06 15:51:56 +02:00
Joost Lekkerkerker b743a86aa9 Refactor Vilfo tests (#115020)
* Refactor Vilfo tests

* Patch is_host_valid
2024-04-06 15:48:52 +02:00
Marc Mueller 81d682874f Update typing extensions to 4.11.0 (#114985) 2024-04-06 14:23:32 +02:00
Marc Mueller 856567d674 Improve generic event typing [google_pubsub] (#114731) 2024-04-06 14:20:31 +02:00
Marc Mueller bf0309a722 Improve generic event typing [mqtt_statestream] (#114732) 2024-04-06 14:19:39 +02:00
Marc Mueller e0f5559c8f Improve generic event typing [EventComponentLoaded] (#114739) 2024-04-06 14:18:03 +02:00
Marc Mueller fa7da34298 Improve generic event typing [tasmota] (#114737) 2024-04-06 14:16:25 +02:00
Joost Lekkerkerker bf142aef5f Fix ruff error (#115023) 2024-04-06 14:13:20 +02:00
Marc Mueller 289700dcf5 Improve generic event typing [device_tracker] (#114730) 2024-04-06 14:01:05 +02:00
Marc Mueller 7898bdcd4e Improve generic event typing [conversation] (#114729) 2024-04-06 14:00:13 +02:00
Marc Mueller d24cf9e4ec Improve generic event typing [cloud] (#114728) 2024-04-06 13:59:12 +02:00
Marc Mueller 082af6e0ae Improve generic event typing [voip] (#114738) 2024-04-06 13:57:09 +02:00
Øyvind Matheson Wergeland fdef3ece13 Fix placeholder quotes (#114974)
* When quoting placeholders, always use double quotes so Lokalise recognizes the placeholder.

* Ensure that strings does not contain placeholders in single quotes.

* Avoid redefining value

* Moved string_with_no_placeholders_in_single_quotes

* Define regex once

* Fix tests
2024-04-06 13:01:56 +02:00
Álvaro Fernández Rojas bd9070be11 Update aioairzone-cloud to v0.5.0 (#114928) 2024-04-06 12:24:00 +02:00
wittypluck 0ccd334608 Update glances-api to 0.6.0 (#114929) 2024-04-06 12:20:00 +02:00
Nathan Spencer 6594d022ba Bump pylitterbot to 2023.4.11 (#114918) 2024-04-06 12:16:00 +02:00
Joost Lekkerkerker d9573bb7dc Move Color extractor service to async_setup (#115013) 2024-04-06 12:06:16 +02:00
J. Nick Koston b6d0c9d1c3 Migrate proximity to use async_track_state_change_event (#115002) 2024-04-06 12:00:30 +02:00
J. Nick Koston 34bf4dc962 Migrate generic_hygrostat to use async_track_state_change_event (#115001) 2024-04-06 11:57:30 +02:00
J. Nick Koston 7d5b39b9de Fix dictionary changed size during iteration in prometheus (#115005)
Fixes #104803
2024-04-06 11:50:29 +02:00
Steven B e85b9faa00 Bump ring_doorbell to 0.8.10 (#114865) 2024-04-06 11:49:30 +02:00
Sid 0d66d298ec Enable Ruff RET504 (#114528)
* Enable Ruff RET504

* fix test

* Use noqa instead of cast

* fix sonos RET504

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-06 11:07:37 +02:00
Claudio Ruggeri - CR-Tech a28731c294 Add Swing Mode Feature to Modbus integration (#113710) 2024-04-06 11:01:44 +02:00
Øyvind Matheson Wergeland c3942a7d44 Upgrade to pynobo 1.8.1 (#114982)
pynobo 1.8.1
2024-04-06 09:38:14 +02:00
Robert Svensson 48b281a581 Bump axis to v61 (#114964) 2024-04-06 09:01:55 +02:00
lunmay 0e202770e3 Brand name typo in swiss_public_transport (#115000) 2024-04-06 08:12:44 +02:00
J. Nick Koston f497c461ed Switch to using the AsyncResolver with aiohttp (#114529)
* Bump aiodns to 3.2.0

changelog: https://github.com/saghul/aiodns/compare/v3.1.1...v3.2.0

* Switch to using the AsyncResolver with aiohttp

This avoids creating executor jobs to do DNS resolution

AsyncResolver was not usable before https://github.com/aio-libs/aiohttp/pull/8270
because it did not fallback to fallback to A records and only returned AAAA records
in most cases when IPv6 was available

This is a backport of https://github.com/aio-libs/aiohttp/pull/8270

* Switch to using the AsyncResolver with aiohttp

This avoids creating executor jobs to do DNS resolution

AsyncResolver was not usable before https://github.com/aio-libs/aiohttp/pull/8270
because it did not fallback to fallback to A records and only returned AAAA records
in most cases when IPv6 was available

This is a backport of https://github.com/aio-libs/aiohttp/pull/8270

* Switch to using the AsyncResolver with aiohttp

This avoids creating executor jobs to do DNS resolution

AsyncResolver was not usable before https://github.com/aio-libs/aiohttp/pull/8270
because it did not fallback to fallback to A records and only returned AAAA records
in most cases when IPv6 was available

This is a backport of https://github.com/aio-libs/aiohttp/pull/8270

* Switch to using the AsyncResolver with aiohttp

This avoids creating executor jobs to do DNS resolution

AsyncResolver was not usable before https://github.com/aio-libs/aiohttp/pull/8270
because it did not fallback to fallback to A records and only returned AAAA records
in most cases when IPv6 was available

This is a backport of https://github.com/aio-libs/aiohttp/pull/8270

* fixes

* fix mocking in next_dns

* fix unmocked calls in blink

* more mocking fixes

* more fixes

* more fixes

* Fix missing mocking in nextdns tests

extracted from #114539

* extract from context
2024-04-05 23:15:51 -04:00
J. Nick Koston 9c27e632fb Switch configurator to use async_run_hass_job (#114993) 2024-04-05 17:02:58 -10:00
J. Nick Koston 657bc969a3 Improve performance of system_log traceback handling (#114992) 2024-04-05 16:47:17 -10:00
J. Nick Koston 90bbfdd53c Migrate torque to use async platform setup (#114994) 2024-04-05 22:41:37 -04:00
J. Nick Koston fb98a6f026 Make run_immediately the default for core EventBus listeners (#113752)
* DNM: Make run_immediately the default for listeners

This is a test to see how much progress we have made twords this goal

https://github.com/home-assistant/core/pull/113727#issuecomment-2004587947

* fix shutdown

* Revert "fix shutdown"

This reverts commit a8969d7db9fed10040cb8b7b25459dc9d812eb9c.

* set false since it break utility meter tests

* one more

* fix rfxtrx test

* test needs to be explict now

* fix matrix

* fail sooner
2024-04-05 22:14:20 -04:00
J. Nick Koston bf5cf382dc Avoid useless stat() syscalls for every logger record (#114987)
* Avoid useless stat() syscalls for every logger record

shouldRollover will always return False since we do
not use maxBytes as we are only using RotatingFileHandler
for the backupCount option. Since every log record will
stat the log file to see if it exists and if its a normal
file, we can override the shouldRollover to reduce the
logging overhead quite a bit

https://github.com/python/cpython/blob/1d3225ae056245da75e4a443ccafcc8f4f982cf2/Lib/logging/handlers.py#L189

* assert False is False
2024-04-05 22:00:09 -04:00
J. Nick Koston 00db97a765 Run device_registry stop listener immediately (#114978) 2024-04-05 21:59:27 -04:00
J. Nick Koston d25ac06326 Run storage final write listener immediately (#114976)
This one should not need a call_soon
2024-04-05 21:59:11 -04:00
Brent Petit c9ce848b4b Add current_humidity to Ecobee humidifier (#114753)
* Ecobee: add current_humidity to humidifier

* Ecobee: Add test for current_humidity property

* Update current_humidity handling in climate and
humidifier entity to support the ecobee API
not returning actualHumidity, which is an optional
value.
Also updated tests to add a thermostat which
covers a non-populated humidity. In passing,
set up the new test thermostat to cover a missing
condition where the code doens't recognize the
ecobee model number. This gets ecobee humidifier
test coverage to 100%
2024-04-05 21:54:40 +02:00
Joost Lekkerkerker 0214511b38 Make config flow imports consistent (#114962)
* Make config flow imports consistent

* Fix
2024-04-05 21:38:11 +02:00
J. Nick Koston aeaed83578 Start async_schedule_update_ha_state task eagerly (#114704) 2024-04-05 08:14:21 -10:00
Joost Lekkerkerker 850361d1da Fix Snapcast Config flow (#114952) 2024-04-05 19:45:24 +02:00
Joost Lekkerkerker 5194215074 Allow single entry in Downloader (#114957) 2024-04-05 19:45:14 +02:00
Bengt Sirbelius e1575678ed Add new OUI for Axis products (#114923)
* Add new OUI for Axis products

* Run hassfest

---------

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2024-04-05 19:06:18 +02:00
Erwin Douna f142e902df SIngle entry for Fastdotcom (#114963) 2024-04-05 18:53:28 +02:00
epenet 9204ccfa17 Use is in ConfigEntryState enum comparison in tests (N-Z) (#114926) 2024-04-05 17:37:00 +02:00
Ashot Tonoyan f2c091fe0c Include serial number in HomeKit device info (#114688)
Very useful when adding a hub that has many identical devices already paired
2024-04-05 17:32:23 +02:00
RJPoelstra 35f2287d1a Bump python-MotionMount to 1.0.0 (#114945) 2024-04-05 17:20:58 +02:00
epenet 0b01326f9f Use is in ConfigEntryState enum comparison in tests (A-M) (#114925) 2024-04-05 17:16:55 +02:00
Franck Nijhof b1fb77cb4d 2024.4.1 (#114934) 2024-04-05 16:18:02 +02:00
Jan-Philipp Benecke dd8de14cc5 Update person to use _attr_* and thus cached properties (#114590)
* Update `person` to use `_attr_*` and thus cached properties

* Make func

* Just use attribute

* Move to init
2024-04-05 15:28:33 +02:00
Joost Lekkerkerker 95606135a6 Fix ROVA validation (#114938)
* Fix ROVA validation

* Fix ROVA validation
2024-04-05 14:53:21 +02:00
Aidan Timson 47d9879c0c Pin systembridgemodels to 4.0.4 (#114842) 2024-04-05 14:53:17 +02:00
Joost Lekkerkerker 370c902eb9 Fix ROVA validation (#114938)
* Fix ROVA validation

* Fix ROVA validation
2024-04-05 14:21:24 +02:00
Franck Nijhof e3c111b1dd Bump version to 2024.4.1 2024-04-05 12:34:07 +02:00
Joost Lekkerkerker 9937743863 Fix cast dashboard in media browser (#114924) 2024-04-05 12:33:49 +02:00
Joost Lekkerkerker ed3daed869 Create right import issues in Downloader (#114922)
* Create right import issues in Downloader

* Create right import issues in Downloader

* Create right import issues in Downloader

* Create right import issues in Downloader

* Fix

* Fix

* Fix

* Fix

* Apply suggestions from code review

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

* Fix

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-05 12:33:46 +02:00
Åke Strandberg 5d5dc24b33 Show correct model string in myuplink (#114921) 2024-04-05 12:33:43 +02:00
J. Nick Koston c39d6f0730 Reduce august polling frequency (#114904)
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-04-05 12:33:40 +02:00
J. Nick Koston 87ffd5ac56 Ensure all tables have the default table args in the db_schema (#114895) 2024-04-05 12:33:36 +02:00
Bram Kragten 71877fdeda Update frontend to 20240404.1 (#114890) 2024-04-05 12:33:33 +02:00
Robert Svensson 2434a22e4e Fix Axis reconfigure step not providing protocols as alternatives but as string (#114889) 2024-04-05 12:33:30 +02:00
Jeef 618fa08ab2 Bump weatherflow4py to 0.2.20 (#114888) 2024-04-05 12:33:27 +02:00
Robert Svensson 96003e3562 Fix Axis camera platform support HTTPS (#114886) 2024-04-05 12:33:24 +02:00
Bram Kragten 411e55d059 Update frontend to 20240404.0 (#114859) 2024-04-05 12:33:21 +02:00
Joost Lekkerkerker 58533f02af Fix Downloader YAML import (#114844) 2024-04-05 12:33:18 +02:00
Joost Lekkerkerker aa14793479 Avoid blocking IO in downloader initialization (#114841)
* Avoid blocking IO in downloader initialization

* Avoid blocking IO in downloader initialization
2024-04-05 12:33:15 +02:00
J. Nick Koston 0191d3e41b Refactor ConfigStore to avoid needing to pass config_dir (#114827)
Co-authored-by: Erik <erik@montnemery.com>
2024-04-05 12:33:12 +02:00
tronikos 319f76cdc8 Bump opower to 0.4.3 (#114826)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-05 12:33:09 +02:00
J. Nick Koston 530725bbfa Handle ambiguous script actions by using action map order (#114825) 2024-04-05 12:33:06 +02:00
Lex Li d8ae7d6955 Fix type cast in snmp (#114795) 2024-04-05 12:33:03 +02:00
cdheiser 3d0bafbdc9 Fix Lutron light brightness values (#114794)
Fix brightness values in light.py

Bugfix to set the brightness to 0-100 which is what Lutron expects.
2024-04-05 12:33:00 +02:00
Aaron Bach ef8e54877f Fix unhandled KeyError during Notion setup (#114787) 2024-04-05 12:32:57 +02:00
Manuel Dipolt a39e1a6428 Update romy to 0.0.10 (#114785) 2024-04-05 12:32:53 +02:00
Joost Lekkerkerker 69f8de2c59 Create right import issues in Downloader (#114922)
* Create right import issues in Downloader

* Create right import issues in Downloader

* Create right import issues in Downloader

* Create right import issues in Downloader

* Fix

* Fix

* Fix

* Fix

* Apply suggestions from code review

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

* Fix

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-05 12:32:09 +02:00
dependabot[bot] 63392ea1c2 Bump Wandalen/wretry.action from 3.0.1 to 3.1.0 (#114916) 2024-04-05 12:16:27 +02:00
Joost Lekkerkerker 8ca6e12ddd Fix cast dashboard in media browser (#114924) 2024-04-05 11:44:51 +02:00
Joost Lekkerkerker 772d9f754a Fix Downloader YAML import (#114844) 2024-04-05 11:32:59 +02:00
epenet 24f83c5890 Use is in FlowResultType enum comparison in tests (#114917)
* Use is in FlowResultType enum comparison in tests

* Adjust auth

* Adjust systemmonitor

* Once more

* Add comment
2024-04-05 10:40:14 +02:00
Marc Mueller 450be67406 Update romy to 0.0.9 (#114360) 2024-04-05 10:14:00 +02:00
Åke Strandberg 25289e0ca1 Bump myuplink dependency to 0.6.0 (#114767) 2024-04-05 10:06:39 +02:00
Álvaro Fernández Rojas d983fa6da7 Update aioairzone-cloud to v0.4.7 (#114761) 2024-04-05 10:06:35 +02:00
Åke Strandberg 04e5086e01 Show correct model string in myuplink (#114921) 2024-04-05 10:01:51 +02:00
Robert Svensson b67e9b28d6 Fix Axis reconfigure step not providing protocols as alternatives but as string (#114889) 2024-04-05 09:47:49 +02:00
J. Nick Koston bfe944f666 Handle ambiguous script actions by using action map order (#114825) 2024-04-05 08:42:57 +02:00
Lex Li 1f37774352 Fix type cast in snmp (#114795) 2024-04-05 08:41:15 +02:00
Robert Svensson 6040272c04 Fix Axis camera platform support HTTPS (#114886) 2024-04-05 08:28:35 +02:00
J. Nick Koston 0e2fe3b728 Avoid timestamp conversion in core State when equal to last_updated (#114911) 2024-04-05 08:27:27 +02:00
J. Nick Koston 5447a1a015 Ensure all tables have the default table args in the db_schema (#114895) 2024-04-05 08:22:00 +02:00
Jeef 90d502e161 Bump weatherflow4py to 0.2.20 (#114888) 2024-04-04 15:37:54 -10:00
J. Nick Koston d321906342 Always run keyed event trackers immediately (#114709) 2024-04-04 15:30:01 -10:00
J. Nick Koston 78920e1d71 Reduce august polling frequency (#114904)
Co-authored-by: TheJulianJES <TheJulianJES@users.noreply.github.com>
2024-04-04 15:28:36 -10:00
Åke Strandberg a66ed1d936 Bump myuplink dependency to 0.6.0 (#114767) 2024-04-05 02:55:39 +02:00
Joakim Sørensen 96149d9444 Bump hass-nabucasa from 0.79.0 to 0.80.0 (#114818)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-04-05 00:48:21 +02:00
Bram Kragten 7f19882843 Update frontend to 20240404.1 (#114890) 2024-04-05 00:26:07 +02:00
Marc Mueller 3c5089bc3f Update import for EventStateChangedData [a-h] (#114899) 2024-04-04 11:48:36 -10:00
Marc Mueller 0f03079065 Update import for EventStateChangedData [i-z] (#114900) 2024-04-04 11:48:29 -10:00
J. Nick Koston e0e54ab9d3 Migrate more sonos tasks to use eager_start (#114697) 2024-04-04 11:43:15 -10:00
Erik Montnemery b0d1b6555d Address late review comments on homeworks PRs (#114867) 2024-04-04 22:48:31 +02:00
Pete Sage 95ef087fa8 Fix Sonos Tests failing intermittently on CI (#114873) 2024-04-04 10:34:23 -10:00
tronikos 2cfc60b5b6 Bump opower to 0.4.3 (#114826)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-04 22:06:15 +02:00
Erik Montnemery 7c95ecff20 Validate unique_id in entity registry (#114648)
Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-04-04 09:51:44 -10:00
Michael Hansen 1c2499b03a Add "conversation" key to translations (#114887)
* Use translated trigger response

* Use conversation key instead
2024-04-04 14:45:27 -05:00
J. Nick Koston cceea6dac2 Refactor ConfigStore to avoid needing to pass config_dir (#114827)
Co-authored-by: Erik <erik@montnemery.com>
2024-04-04 09:30:10 -10:00
Marc Mueller 56ef9500f7 Use EventStateChangedData type when firing state changed event (#114740) 2024-04-04 09:27:44 -10:00
J. Nick Koston 9189cd5ec2 Avoid linear search in gpslogger to find devices (#114811) 2024-04-04 09:27:24 -10:00
J. Nick Koston a83d5e4071 Avoid linear search in geofency to find devices (#114810) 2024-04-04 09:27:14 -10:00
J. Nick Koston c7d1319acf Avoid linear search in owntracks to find devices (#114812) 2024-04-04 09:26:58 -10:00
Bram Kragten c798128ef1 Update frontend to 20240404.0 (#114859) 2024-04-04 15:01:15 -04:00
J. Nick Koston a9d43db315 Avoid linear search to clear a config entry in the device registry (#114802) 2024-04-04 08:35:07 -10:00
Aidan Timson e845d12733 Pin systembridgemodels to 4.0.4 (#114842) 2024-04-04 14:25:35 +02:00
Joost Lekkerkerker 28dc77a72d Avoid blocking IO in downloader initialization (#114841)
* Avoid blocking IO in downloader initialization

* Avoid blocking IO in downloader initialization
2024-04-04 13:45:44 +02:00
Marc Mueller efde8400e2 Improve generic event typing [rfxtrx] (#114733) 2024-04-04 12:08:37 +02:00
J. Nick Koston 342e47dcc8 Ensure async_test_home_assistant is passed a str in storage tests (#114813) 2024-04-04 12:05:16 +02:00
J. Nick Koston cc96bc44a0 Avoid linear search in ps4 to find devices (#114814) 2024-04-04 11:53:04 +02:00
J. Nick Koston 0710f4c661 Avoid linear search in purpleair to find devices (#114816) 2024-04-04 11:51:57 +02:00
J. Nick Koston d7153d525f Avoid linear search in ibeacon to find devices (#114809) 2024-04-04 11:50:30 +02:00
Benjamin e909242bc5 Fix missing if statement in homematic (#114832)
* homematic fix issue #114807

Update climate.py

* Update homeassistant/components/homematic/climate.py

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-04 11:45:01 +02:00
J. Nick Koston 5be5c37326 Avoid linear search in homekit to find devices (#114808) 2024-04-04 11:39:16 +02:00
J. Nick Koston 86feae421c Avoid linear search in hassio to find devices (#114806) 2024-04-04 11:38:37 +02:00
Marc Mueller 816ce116bf Remove unnecessary functools.cached_property backport (#114239) 2024-04-04 11:24:26 +02:00
cdheiser 7228f63c4a Fix Lutron light brightness values (#114794)
Fix brightness values in light.py

Bugfix to set the brightness to 0-100 which is what Lutron expects.
2024-04-04 11:24:02 +02:00
J. Nick Koston 7b64097399 Load mobile_app notify platform with eager_start (#114700) 2024-04-04 09:34:13 +02:00
J. Nick Koston 1462c99bc0 Load template platforms with eager_start (#114701)
* Load template platforms with eager_start

These can all be loaded synchronously

* missed some
2024-04-04 09:33:10 +02:00
J. Nick Koston 2b06168573 Avoid linear search in traccar to find devices (#114817)
* Avoid linear search in traccar to find devices

* remove useless check
2024-04-04 09:09:47 +02:00
Álvaro Fernández Rojas 15a821f6ac Update aioairzone-cloud to v0.4.7 (#114761) 2024-04-03 21:05:08 -10:00
J. Nick Koston aedfd6c983 Add index for floor/label to the area registry (#114777) 2024-04-03 21:04:26 -10:00
J. Nick Koston aa52688d4b Avoid linear search of the device registry in deconz (#114803) 2024-04-03 21:02:18 -10:00
dependabot[bot] c18ff39540 Bump Wandalen/wretry.action from 2.1.0 to 3.0.1 (#114805)
Bumps [Wandalen/wretry.action](https://github.com/wandalen/wretry.action) from 2.1.0 to 3.0.1.
- [Release notes](https://github.com/wandalen/wretry.action/releases)
- [Commits](https://github.com/wandalen/wretry.action/compare/v2.1.0...v3.0.1)

---
updated-dependencies:
- dependency-name: Wandalen/wretry.action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-04 08:38:15 +02:00
J. Nick Koston 0c3ccabfb1 Speed up logger setup (#114610)
* Speed up logger setup

Preload core.logger and avoid saving it
until after startup

* add comment about 180s

* Adjust grammar

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-04 08:35:44 +02:00
J. Nick Koston 7a2e529bb7 Avoid executor job to start http if server_host is unspecified (#114609)
* Avoid executor job to start http if server_host is unspecified

Same as #112522 for http

* adjust test

* CONF_SERVER_HOST is always set now
2024-04-04 07:51:18 +02:00
J. Nick Koston 56d0ad27f0 Adjust async_load_platform comment to remove dead lock reference (#114771)
* Adjust async_load_platform comment

Its likely the deadlock here has been fixed for a long time, however
we should still do these in a task because it has to wait for base
components if they are not loaded yet.

* Adjust async_load_platform comment

Its likely the deadlock here has been fixed for a long time, however
we should still do these in a task because it has to wait for base
components if they are not loaded yet.
2024-04-03 22:53:31 -04:00
J. Nick Koston 3f76d1f056 Add index for area/config_entry/label to the device registry (#114776)
* Add index for area/config_entry/label to the device registry

* use it for services

* naming

* naming

* tweak
2024-04-03 22:52:17 -04:00
Aaron Bach 841d3940d1 Fix unhandled KeyError during Notion setup (#114787) 2024-04-03 18:20:20 -06:00
Manuel Dipolt c1c664dc09 Update romy to 0.0.10 (#114785) 2024-04-04 00:48:35 +02:00
J. Nick Koston 5394a2a34a Load mailbox integration platforms in tracked tasks (#114774) 2024-04-03 11:12:38 -10:00
J. Nick Koston e86fec310b Improve performance of extracting entities by label (#114720) 2024-04-03 10:24:44 -10:00
J. Nick Koston 3d8a110908 Dispatch the same ReceiveMessage object if the subscription topic is the same (#114769) 2024-04-03 09:36:57 -10:00
Fexiven 535da483b6 Rework update_data starlink coordinator (#114642)
* Update coordinator.py

fixes https://github.com/home-assistant/core/issues/114353

* Rework update_data starlink coordinator

* modify return handlung according to ruff

* add type annotation for _get_srtarlink_data

* add channel_context type annotation

* Add docstring

* ruff ruff here you go - modfied docstring

* Clean up

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-03 20:51:55 +02:00
Franck Nijhof b61397656c 2024.4.0 (#114764) 2024-04-03 20:38:11 +02:00
J. Nick Koston 69a6e9f5d7 Use eager_start to forward wemo config entry platforms (#114702)
* Use eager_start to forward wemo config entry platforms

These can all be setup synchronously

* do not create another task
2024-04-03 20:29:48 +02:00
Jan-Philipp Benecke 590546a9a5 Use setup_test_component_platform helper for sensor entity component tests instead of hass.components (#114316)
* Use `setup_test_component_platform` helper for sensor entity component tests instead of `hass.components`

* Missing file

* Fix import

* Remove invalid device class
2024-04-03 20:00:56 +02:00
IngoK1 9ba4d26abd Fix for Sonos URL encoding problem #102557 (#109518)
* Fix for URL encoding problem #102557

Fixes the problem "Cannot play media with spaces in folder names to Sonos #102557" removing the encoding of the strings in the music library.

* Fix type casting problem

* Update media_browser.py to fix pr check findings

Added required casting for all unquote statements to avoid further casting findings in the pr checks

* Update media_browser.py

Checked on linting, lets give it another try

* Update media_browser.py

Updated ruff run

* Update media_browser.py - added version run through ruff

* Update media_browser.py - ruff changes

* Apply ruff formatting

* Update homeassistant/components/sonos/media_browser.py

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

* Update homeassistant/components/sonos/media_browser.py

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

* Update homeassistant/components/sonos/media_browser.py

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

* Update homeassistant/components/sonos/media_browser.py

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

---------

Co-authored-by: computeq-admin <51021172+computeq-admin@users.noreply.github.com>
Co-authored-by: Jason Lawrence <jjlawren@users.noreply.github.com>
2024-04-03 19:31:02 +02:00
Franck Nijhof aa33da546d Bump version to 2024.4.0 2024-04-03 19:09:39 +02:00
Jan Bouwhuis d66145358a Correct imap services setup (#114760)
* Correct imap services setup

* Add config schema
2024-04-03 18:40:59 +02:00
Chris Bräucker 51a3e79048 Add wake on LAN via Fritz!Box for tracked devices (#106778) 2024-04-03 18:37:20 +02:00
Franck Nijhof 3845523a27 Bump version to 2024.4.0b9 2024-04-03 17:55:24 +02:00
Michael 6a7fad0228 Fix Synology DSM setup in case no Surveillance Station permission (#114757) 2024-04-03 17:55:12 +02:00
Bram Kragten 33f07ce035 Update frontend to 20240403.1 (#114756) 2024-04-03 17:55:09 +02:00
Michael Hansen 4302c5c273 Bump intents (#114755) 2024-04-03 17:55:05 +02:00
Robert Resch b2df1b1c03 Allow passing area/device/entity IDs to floor_id and floor_name (#114748) 2024-04-03 17:55:01 +02:00
Michael 6369b75653 Fix Synology DSM setup in case no Surveillance Station permission (#114757) 2024-04-03 17:53:44 +02:00
Bram Kragten dcef40f27c Update frontend to 20240403.1 (#114756) 2024-04-03 17:32:26 +02:00
Michael Hansen 26c7e170e9 Bump intents (#114755) 2024-04-03 17:27:26 +02:00
Robert Resch e2c99d226e Fix CI after splitting tests (#114754) 2024-04-03 16:45:07 +02:00
Robert Resch 7adced6876 Allow passing area/device/entity IDs to floor_id and floor_name (#114748) 2024-04-03 16:33:58 +02:00
Maciej Bieniek f91994d788 Revert the logger level in the Shelly update platform (#114749)
Revert debug level

Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-03 16:01:56 +02:00
Robert Resch ed88c2abc9 Replace pytest-test-groups by custom tests splitter (#114381)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2024-04-03 15:43:12 +02:00
Franck Nijhof 0aa134459b Bump version to 2024.4.0b8 2024-04-03 15:35:53 +02:00
Bram Kragten 0ca3700c16 Update frontend to 20240403.0 (#114747) 2024-04-03 15:35:40 +02:00
Joost Lekkerkerker 35ff633d99 Avoid blocking IO in downloader config flow (#114741) 2024-04-03 15:35:36 +02:00
Joost Lekkerkerker 7a2f6ce430 Fix Downloader config flow (#114718) 2024-04-03 15:35:32 +02:00
David F. Mulcahey 7cb603a226 Import zha quirks in the executor (#114685) 2024-04-03 15:35:29 +02:00
Jonas Fors Lellky 43562289e4 Bump flexit_bacnet to 2.2.1 (#114641) 2024-04-03 15:35:26 +02:00
Lenn 79fa7caa41 Rename Motionblinds BLE integration to Motionblinds Bluetooth (#114584) 2024-04-03 15:35:20 +02:00
Bram Kragten 90c06d6538 Update frontend to 20240403.0 (#114747) 2024-04-03 15:19:49 +02:00
Jan-Philipp Benecke 613bdebfe5 Migrate sabnzbd to use data update coordinator (#114745)
* Migrate sabnzbd to use data update coordinator

* Add to coveragerc

* Setup coordinator after migration

* Use kB/s as UoM

* Add suggested
2024-04-03 15:15:23 +02:00
J. Nick Koston 2b9f22f11e Make creation of capabilities_updated_at deque in Entity lazy (#114711)
Most entities will never update their capabilities so we should
avoid creating the deque as its a large chunk of the entity
creation time
2024-04-03 13:53:17 +02:00
Joost Lekkerkerker b9f27d2b31 Avoid blocking IO in downloader config flow (#114741) 2024-04-03 13:50:34 +02:00
J. Nick Koston e522f2f67e Create bond fallback polling tasks eagerly (#114705)
There was not reason to delay here
2024-04-03 12:36:55 +02:00
J. Nick Koston 80e066a7a8 Use eager_start to create async_update_alerts task in homeassistant_alerts (#114707)
If there are no alerts, the task will finish synchronously
2024-04-03 12:23:36 +02:00
J. Nick Koston ef047707d9 Simplify config entry cache clear (#114691)
same as #113136 but for config entries
2024-04-03 12:21:37 +02:00
J. Nick Koston cf4c02b9fa Simplify core state cache clear (#114694)
same as #113136 but for core
2024-04-03 12:20:32 +02:00
J. Nick Koston 742643936f Migrate legacy device_tracker task creation to use eager_start (#114703)
Many of these can finish synchronously without being scheduled on the loop
2024-04-03 12:12:52 +02:00
Lenn e870d420a6 Rename Motionblinds BLE integration to Motionblinds Bluetooth (#114584) 2024-04-03 12:11:46 +02:00
J. Nick Koston 41a88c876d Avoid useless done check in config entries async_create_task (#114695)
If the task is not started with eager_start it will
never be done right away
2024-04-03 11:49:32 +02:00
Robert Resch 74d8c6cce4 Fix synology_dsm test side effects (#114722) 2024-04-03 11:11:56 +02:00
J. Nick Koston be3c923c7f Use eager_start to load utility_meter platforms (#114699) 2024-04-02 22:06:16 -10:00
Joost Lekkerkerker 4a879ce424 Fix Downloader config flow (#114718) 2024-04-03 09:56:19 +02:00
Joost Lekkerkerker f3ba713289 Use FlowResultType enum in config flow tests N-Z (#114682)
Use FlowResultType enum in config flow tests
2024-04-03 09:53:20 +02:00
J. Nick Koston 7a543af8ee Simplify homekit_controller cache clear (#114692) 2024-04-02 21:45:08 -10:00
Jonas Fors Lellky 05c1963815 Bump flexit_bacnet to 2.2.1 (#114641) 2024-04-03 09:23:06 +02:00
Joost Lekkerkerker b9281327c4 Use FlowResultType enum in config flow tests A-M (#114681) 2024-04-03 09:21:17 +02:00
J. Nick Koston a767530970 Migrate homeassistant_sky_connect to use eager_start for tasks (#114706) 2024-04-03 09:14:15 +02:00
dependabot[bot] 3eafdadc8f Bump Wandalen/wretry.action from 3.0.0 to 3.0.1 (#114714)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-03 09:13:53 +02:00
David F. Mulcahey 53cbb83e46 Import zha quirks in the executor (#114685) 2024-04-03 09:12:00 +02:00
Erik Montnemery d058615961 Add service homeworks.send_command (#114059)
* Add service homeworks.send_command

* Translate exception
2024-04-03 09:10:10 +02:00
J. Nick Koston adbaed2c6d Reduce code for registry items with a base class (#114689) 2024-04-03 09:02:32 +02:00
J. Nick Koston d17f308c6a Small speed up to starting and stopping cloud (#114696) 2024-04-02 23:47:22 -04:00
J. Nick Koston 06a752aa92 Small speed ups to ambient_station (#114698) 2024-04-02 16:09:27 -10:00
Franck Nijhof 8bdb27c88b Bump version to 2024.4.0b7 2024-04-03 00:14:07 +02:00
Bram Kragten f676448f27 Update frontend to 20240402.2 (#114683) 2024-04-03 00:13:57 +02:00
J. Nick Koston 639c4a843b Avoid trying to load platform that are known to not exist in async_prepare_setup_platform (#114659) 2024-04-03 00:13:53 +02:00
G Johansson 02dee34338 Bump holidays to 0.46 (#114657) 2024-04-03 00:13:49 +02:00
Maciej Bieniek 4e0290ce0e Add missing state to the Tractive tracker state sensor (#114654)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-03 00:13:45 +02:00
Robert Svensson fa2f49693c Bump aiounifi to v74 (#114649) 2024-04-03 00:13:39 +02:00
Pete Sage 2ce784105d Fix Sonos play imported playlists (#113934) 2024-04-03 00:13:35 +02:00
Bram Kragten 3c76036c15 Update frontend to 20240402.2 (#114683) 2024-04-03 00:12:31 +02:00
Pete Sage f26a7843c6 Fix Sonos play imported playlists (#113934) 2024-04-03 00:10:15 +02:00
J. Nick Koston 1779fe8f62 Bump yalexs to 3.0.1 (#114678)
* Bump yalexs to 3.0.1

changelog: https://github.com/bdraco/yalexs/compare/v2.0.0...v3.0.1

* fix for breaking change
2024-04-02 23:37:16 +02:00
J. Nick Koston 17da077c74 Avoid trying to load platform that are known to not exist in async_prepare_setup_platform (#114659) 2024-04-02 11:22:40 -10:00
Joost Lekkerkerker 9b41e3d124 Use is in enum comparison in config flow tests A-E (#114669) 2024-04-02 11:22:05 -10:00
Joost Lekkerkerker ee66f6ec8c Use is in enum comparison in config flow tests P-T (#114675) 2024-04-02 11:21:50 -10:00
Joost Lekkerkerker 5d500cb74b Use is in enum comparison in config flow tests K-O (#114672) 2024-04-02 11:21:42 -10:00
Dos Moonen 3875533f95 Bump solax to 3.1.0 (#114617)
0.3.2 was succeeded by 0.3.4.
0.3.3 was yanked
0.3.4 was succeeded by 3.0.5.
3.0.5 is succeeded by 3.1.0.
2024-04-02 23:16:39 +02:00
Joost Lekkerkerker 2ef0521d3d Use is in enum comparison in config flow tests U-Z (#114677)
* Use right enum expression U-Z

* Fix
2024-04-02 23:09:56 +02:00
Jan Bouwhuis 83b56ab005 Add IMAP seen, move and delete service (#114501)
* Add seen, move and delete IMAP services

* Add entry_id to the imap_content event data

* Use config validation library

* Add tests

* Add logging

* Typo in docstr

* Add guard
2024-04-02 23:05:05 +02:00
Joost Lekkerkerker 906d3198e3 Use is in enum comparison in config flow tests F-J (#114670)
* Use right enum expression F-J

* Fix
2024-04-02 23:01:37 +02:00
Phil Bruckner ea2bb24484 Remove old device tracker device cleanup code & test (#114668) 2024-04-02 15:23:59 -05:00
Joost Lekkerkerker 2175cd6039 Add tests for Roomba Options flow (#114666)
* Add tests for Roomba Options flow

* Fix
2024-04-02 21:49:53 +02:00
G Johansson 448f8a9568 Refactor setup code in command_line (#114661)
* Refactor setup code in command_line

* Fix rebase

* Review comments
2024-04-02 22:47:04 +03:00
Cyrill Raccaud bf9627ad07 Add extra sensors to Swiss Public Transport (#114636)
* convert extra_state_attributes to sensors

* add deprecation notice for extra state attributes

* cleanup after comments

* remove exists_fn as it does not add value

* move function outside the class
2024-04-02 21:35:11 +02:00
Aidan Timson 17f0002549 Azure DevOps integration tests (#114577)
* Add tests to azure devops

* Remove Azure DevOps files from coverage

* Add assertion for entity registration in test_sensors()

* Remove unnecessary code in test_sensor.py

* Refactor test_sensors function

* Fix

* Test unique id

* Refactor

* Refactor reauth_flow test in azure_devops module

* Suggested changes, batched

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

* Changes

* Use snapshot

* Remove redundant entry fetch

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-04-02 21:23:55 +02:00
Joost Lekkerkerker 7cb01f75ae Add typing to Roomba config flow (#114624) 2024-04-02 21:21:55 +03:00
Robert Resch f85511255c Fix Rpi_power test race condition (#114662) 2024-04-02 21:19:43 +03:00
jayme-github 850dac0655 Don't overwrite target temperature by setting hvac mode in AVM Fritz!SmartHome (#112119) 2024-04-02 20:14:02 +02:00
atlflyer ef7836be73 Add icon to command_line cover config (#114645)
* Add icon to command_line cover config

* Remove unwanted #noqa tag

* Remove redundancy from new test name

* Apply requested changes
2024-04-02 20:59:57 +03:00
G Johansson 6638d1c8e8 Bump holidays to 0.46 (#114657) 2024-04-02 20:58:18 +03:00
Robert Resch 17625dc74d Fix Google translate TTS test race condition (#114656) 2024-04-02 18:52:41 +02:00
Robert Svensson 9893a6c5e4 Bump aiounifi to v74 (#114649) 2024-04-02 18:33:12 +02:00
Maciej Bieniek 25c920b1ee Add missing state to the Tractive tracker state sensor (#114654)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-04-02 18:28:52 +02:00
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
Paulus Schoutsen 52bd3efad9 Clean up unnecessary setup calls in tests (#114644) 2024-04-02 17:30:41 +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
puddly 581c67ed29 Reduce ZHA OTA logbook entries and extraneous updates (#114591) 2024-04-02 17:16:59 +02:00
Bram Kragten 1b875e7de2 Update frontend to 20240402.1 (#114646) 2024-04-02 17:15:24 +02:00
Joost Lekkerkerker 991a4940cd Bump ruff to 0.3.5 (#114634) 2024-04-02 13:53:58 +02:00
Joost Lekkerkerker 0b7d9d6c44 Remove YAML configuration from Withings (#114626)
* Remove YAML configuration from Withings

* Remove YAML configuration from Withings

* Remove YAML configuration from Withings
2024-04-02 13:36:44 +02:00
Robert Resch 476e39dd2c Bump uv to 0.1.27 (#114629) 2024-04-02 13:19:50 +02:00
Steven B 8a86d7512a Bump ring_doorbell integration to 0.8.9 (#114631) 2024-04-02 13:17:47 +02:00
dotvav a3dce51d38 Fix Overkiz Hitachi OVP air-to-air heat pump (#114611) 2024-04-02 13:08:53 +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
Austin Mroczek 49fc8a1230 Improve DeviceInfo for Total Connect (#114509) 2024-04-02 12:23:44 +02:00
Brett Adams f36c37a3b7 Fix battery heater in Tessie (#114568) 2024-04-02 12:23:08 +02:00
Jan Bouwhuis acf2f855fe Raise ServiceValidationError on number out of range exception (#114589) 2024-04-02 12:22:00 +02:00
Bram Kragten 31b0b823df Update frontend to 20240402.0 (#114627) 2024-04-02 12:17:52 +02:00
Joakim Sørensen a1ae4ec23d Add sensor entities to Traccar Server (#111374) 2024-04-02 12:11:28 +02:00
Fexiven e473914407 Fix Starlink integration startup issue (#114615) 2024-04-02 12:04:07 +02:00
Joost Lekkerkerker 21c7cc3250 Bump roombapy to 1.8.1 (#114478)
* Bump roombapy to 1.7.0

* Bump

* Bump

* Fix
2024-04-02 11:15:52 +02:00
Steven B 51e716bef3 Update ring quality scale to silver (#113146) 2024-04-02 10:47:30 +02:00
Jack Boswell 385da75963 Catch potential ValueError when getting or setting Starlink sleep values (#114607) 2024-04-02 10:45:46 +02:00
Franck Nijhof 4a93b4a4b4 Add floor selector (#114614) 2024-04-02 10:43:14 +02:00
Robert Resch 67c334f842 Fix ruff issue in sonos (#114616) 2024-04-02 10:30:01 +02:00
Maciej Bieniek c8f282c8bc 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 10:15:58 +02:00
Pete Sage 31cd41adb8 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 10:11:45 +02:00
mkmer 078535e1d6 Add diagnostic platform to Whirlpool (#114578)
* Add diagnostic platform and tests

* lowercase variable

* Correc doc string
2024-04-02 09:41:40 +02:00
Erik Montnemery 0030c97f59 Tweak integration sensor (#114384)
* Tweak integration sensor

* Improve tests
2024-04-02 09:19:25 +02:00
dependabot[bot] 667e119d32 Bump Wandalen/wretry.action from 2.1.0 to 3.0.0 (#114554)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-02 09:07:47 +02:00
max2697 09fbd8bb52 Bump opower to 0.4.2 (#114608) 2024-04-02 09:04:28 +02:00
Jan-Philipp Benecke c2ffed9b2d Use switch entities instead of toggle entities in tests (#114585) 2024-04-02 08:25:28 +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
Michael ab2c88353b Filter out ignored entries in ssdp step of AVM Fritz!SmartHome (#114574)
filter out ignored entries in ssdp step
2024-04-01 21:48:26 -04:00
mkmer 3513bd0cc5 Bump whirlpool-sixth-sense to 0.18.7 (#114606)
Bump sixth-sense to 0.18.7
2024-04-01 21:47:30 -04:00
J. Nick Koston 5856bbc07b 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-01 21:37:30 -04:00
J. Nick Koston b12c69accb 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-01 21:36:48 -04:00
J. Nick Koston 0963f5e642 Avoid storing raw extracted traceback in system_log (#114603)
This is never actually used and takes up quite a bit of ram
2024-04-01 21:35:38 -04:00
J. Nick Koston ce9d4c8683 Fix flakey cast discovery stop test (#114605)
https://github.com/home-assistant/core/actions/runs/8515215623/job/23322322954?pr=114602
2024-04-01 21:34:54 -04:00
Paulus Schoutsen d2e4f5f36e Add conversation entity (#114518)
* Default agent as entity

* Migrate constant to point at new value

* Fix tests

* Fix more tests

* Move assist pipeline back to cloud after dependenceis
2024-04-01 21:34:25 -04:00
Martin Hjelmare b1af590eed Fix reolink media source data access (#114593)
* Add test

* Fix reolink media source data access
2024-04-02 00:14:13 +02:00
IngoK1 acdb3cc7a2 Fix for Sonos URL encoding problem #102557 (#109518)
* Fix for URL encoding problem #102557

Fixes the problem "Cannot play media with spaces in folder names to Sonos #102557" removing the encoding of the strings in the music library.

* Fix type casting problem

* Update media_browser.py to fix pr check findings

Added required casting for all unquote statements to avoid further casting findings in the pr checks

* Update media_browser.py

Checked on linting, lets give it another try

* Update media_browser.py

Updated ruff run

* Update media_browser.py - added version run through ruff

* Update media_browser.py - ruff changes

* Apply ruff formatting

* Update homeassistant/components/sonos/media_browser.py

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

* Update homeassistant/components/sonos/media_browser.py

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

* Update homeassistant/components/sonos/media_browser.py

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

* Update homeassistant/components/sonos/media_browser.py

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

---------

Co-authored-by: computeq-admin <51021172+computeq-admin@users.noreply.github.com>
Co-authored-by: Jason Lawrence <jjlawren@users.noreply.github.com>
2024-04-01 17:07:02 -05:00
Jan-Philipp Benecke 8e384ab598 Use dict comprehension in honeywell diagnostics (#114598) 2024-04-01 23:55:14 +02:00
Jan-Philipp Benecke e14573a465 Migrate uptime to use single_config_entry (#114586) 2024-04-01 23:33:29 +02:00
J. Nick Koston f2b9e6b389 Bump zeroconf to 0.132.0 (#114596)
changelog: https://github.com/python-zeroconf/python-zeroconf/compare/0.131.0...0.132.0
2024-04-01 23:18:26 +02:00
Michael 98a1608604 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-01 21:59:06 +02:00
J. Nick Koston 0732952b32 Reduce hassio startup time (#114588) 2024-04-01 09:58:06 -10:00
Sid 304ed8bf3d Unignore Ruff PLC in tests (#114572) 2024-04-01 21:28:54 +02:00
J. Nick Koston ae640b6e1a Small cleanups to zone to reduce startup time (#114587) 2024-04-01 09:03:59 -10:00
Michael 886f03dd71 Apply late review of tankerkoenig (#114582)
remove config entry from device, not device itself
2024-04-01 19:36:57 +02:00
jjlawren 94060b1566 Bump plexapi to 4.15.11 (#114581) 2024-04-01 19:28:39 +02:00
J. Nick Koston 96120b64e0 Fix missing mocking in nextdns tests (#114541) 2024-04-01 06:53:49 -10:00
Aidan Timson 429b5d22cf Upgrade aioazuredevops to 2.0.0 (#114537)
* Upgrade aioazuredevops to 2.0.0

* Refactor Azure DevOps config flow to use async_get_clientsession

* Wrap conditional in parentesis
2024-04-01 16:51:27 +02:00
Michael 2e11a61726 Automatic cleanup of entity and device registry in Tankerkoenig (#114573) 2024-04-01 16:04:18 +02:00
Joost Lekkerkerker 7f9ad140f9 Fix wrong icons (#114567)
* Fix wrong icons

* Fix wrong icons
2024-04-01 15:53:14 +02:00
Maikel Punie 72447a0717 Bump velbusaio to 2024.4.0 (#114569)
Bump valbusaio to 2024.4.0
2024-04-01 14:49:14 +02:00
epenet ad3577804b Ensure coverage entries are sorted (#114424)
* Ensure coverage entries are sorted

* Use autofix

* Adjust

* Add comment to coverage file

* test CI

* revert CI test

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-04-01 14:12:24 +02:00
J. Nick Koston ea7f2af966 Fix missing mocking in blink tests (#114540)
extracted from #114539
2024-04-01 11:23:38 +02:00
Sid d5f883fbf0 Unignore Ruff PLR in tests (#114470)
* Unignore Ruff PLR in tests

* Address review comments

* review comments

* fix import

* Update test_api.py

* Update test_api.py

* Update test_api.py
2024-04-01 11:11:59 +02:00
Jonny Rimkus dc59073f25 Bump slixmpp version to 1.8.5 (#114448)
* Update slixmpp to 1.8.5, hopefully fixes #113990

* Bump slixmpp version to 1.8.5 #114448
2024-04-01 10:50:21 +02:00
Teemu R 55657dcb40 Bump python-songpal to 0.16.2 (#114525) 2024-04-01 02:08:05 +02:00
J. Nick Koston be398e0a3f Fix flakey sonos test test_creating_entry_sets_up_media_player (#114539) 2024-03-31 13:49:24 -10:00
Jan-Philipp Benecke 04786e019a Use device registry mock instead of hass.helpers in traccar_server tests (#114532) 2024-04-01 00:42:46 +02:00
Jan-Philipp Benecke ecf286cd81 Avoid use of hass.helpers in plugwise test (#114534) 2024-04-01 00:41:47 +02:00
Jan-Philipp Benecke 0238c2ea9e Use device registry mock instead of hass.helpers in dsmr tests (#114535) 2024-04-01 00:41:06 +02:00
Robert Svensson 05d40fbc4c Bump axis to v60 (#114544)
* Improve Axis MQTT support

* Bump axis to v60
2024-04-01 00:24:41 +02:00
Jan-Philipp Benecke f08af5dc6d Avoid use of hass.helpers in _mqtt_mock_entry fixture (#114536) 2024-03-31 11:33:59 -10:00
G Johansson 3bb9858dfb Fix server update from breaking setup in Speedtest.NET (#114524) 2024-03-31 20:08:43 +02:00
Thomas55555 5eb4cf6a05 Add error sensor for Husqvarna Automower (#113165)
* Add error sensor for Husqvarna Automower

* Apply suggestions from code review

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

* address review

* Add restricted reason sensor

* ruff

* pin options

---------

Co-authored-by: Jan-Philipp Benecke <github@bnck.me>
2024-03-31 20:06:30 +02:00
wittypluck 7919ca63d0 Add uptime sensor to Glances (#111402)
* Add uptime sensor to Glances

* Merge upstream

* Merge upstream

* Fix coverage

* Add uptime sensor to Glances

* Merge upstream

* Merge upstream

* Fix coverage

* Move most uptime specific code to DataUpdateCoordinator

* Add last_reported after merge with upstream

* Add unit tests for uptime sensor

* Add unit tests for uptime sensor

* Add unit tests for uptime sensor

* Add unit tests for uptime sensor

* Move update code out of getter native_value()

* Add unit tests for uptime sensor

* Update uptime method signatures

* Set uptime icon in icons.json

* Use freezer.tick for uptime tests

* Frozen time test fails on github

* Add MIN_UPTIME_VARIATION const value

* Only update uptime on startup or when remote server restarts

* Fix for 0 values

* Set value to None to set state to Unknown if key is not found

* Add unit test for uptime change

* Code reduction

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
2024-03-31 20:04:39 +02:00
J. Nick Koston 8ebdd46509 Bump aiodns to 3.2.0 (#114527)
changelog: https://github.com/saghul/aiodns/compare/v3.1.1...v3.2.0
2024-03-31 19:41:06 +02:00
Joost Lekkerkerker 52741d7114 Add single config entry to Analytics insights (#114427)
* Add single config entry to Analytics insights

* Add single config entry to Analytics insights

* Add single config entry to Analytics insights
2024-03-31 15:47:24 +02:00
Jan-Philipp Benecke d5da0a053b Deprecate hass.helpers (#114484)
* Deprecate hass.helpers

* Patch

* Patch _REPORTED_INTEGRATIONS set in test

* Fix test

* Update version
2024-03-31 11:44:11 +02:00
dotvav f2f24a5d35 Fix Overkiz Hitachi OVP air-to-air heat pump (#114487)
Unpack command parameters instead of passing a list
2024-03-31 11:38:59 +02:00
Sid d846676e84 Enable first batch of Ruff RET rules (#114480)
* Enable first batch of Ruff RET rules

* disable pylint rules
2024-03-31 11:30:59 +02:00
Jan-Philipp Benecke 6e3e09f2c3 Use entity & device registry mocks instead of hass.helpers in airthings_ble tests (#114520) 2024-03-31 09:08:07 +02:00
J. Nick Koston 5038a035bd Detect blocking module imports in the event loop (#114488) 2024-03-30 19:51:31 -10:00
Paulus Schoutsen f01235ef74 Re-organize conversation integration (#114502)
* Re-organize conversation integration

* Clean up 2 more imports

* Re-export models

* Fix imports

* Uno mas

* Rename agents to models

* Fix cast test that i broke?

* Just blocking till I'm done

* Wrong place
2024-03-31 00:05:25 -04:00
Paulus Schoutsen fb572b8413 Conversation to unsubscribe when no cache to invalidate (#114515)
* Add event filter callbacks to conversation

* Unsusbcribe when we have no slot lists
2024-03-30 23:47:13 -04:00
J. Nick Koston f0b07ae942 Add pytest rewrite for wemo tests that use entity_test_helpers (#114516) 2024-03-30 17:35:49 -10:00
TheJulianJES b0a1450a2b Fix ZHA websocket API test (#114495)
* Fix result overwriting expected config

* Use `BASE_CUSTOM_CONFIGURATION` for initial/expected config
2024-03-31 00:17:09 +01:00
Michael Hansen d23b22b566 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-03-30 16:59:20 -04:00
Jan-Philipp Benecke 502231b7d2 Avoid call to hass.helpers.store in CategoryRegistry (#114485) 2024-03-30 21:15:52 +01:00
J. Nick Koston ef5f6829e7 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-03-30 14:56:01 -04:00
Bruno Henrique 9f9a141112 Add UniFi WLAN Password sensor (#114419)
* Adding UniFi WLAN Password Sensor

* Adding UniFi WLAN Password Sensor

* Adding UniFi WLAN Password Sensor

* Adding UniFi WLAN Password Sensor

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

* Adding UniFi WLAN Password Sensor

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

* Adding UniFi WLAN Password Sensor

* Adding UniFi WLAN Password Sensor

* Adding UniFi WLAN Password Sensor

---------

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2024-03-30 19:49:33 +01:00
J. Nick Koston 0b9c40a233 Fix workday doing blocking I/O in the event loop (#114492) 2024-03-30 19:05:14 +01:00
J. Nick Koston d63adb6350 Improve sonos test synchronization (#114468) 2024-03-30 06:34:47 -10:00
Shay Levy 3e99afdd54 Cleanup Shelly RGBW light entities (#114410) 2024-03-30 18:48:57 +03:00
Bruno Henrique 53f262095c Add UniFi WLAN regenerate password button (#114422)
* Adding UniFi WLAN Change Password Button

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

* Adding UniFi WLAN Regenerate Password Button

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

---------

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2024-03-30 15:53:23 +01:00
Tom Matheussen a1eef4732f Add hourly forecast to open_meteo (#113622)
* Add hourly forecast to open_meteo

* Ran ruff formatting again
2024-03-30 15:13:26 +01:00
Joost Lekkerkerker b7527feb5f Rework opensky tests (#114441)
* Rework opensky tests

* Rework opensky tests

* Fix
2024-03-30 14:52:33 +01:00
Sid 6587ee20db Enable Ruff TRY300 (#114437)
* Enable Ruff TRY300

* Update validation.py

* Address review comments
2024-03-30 10:37:59 +01:00
J. Nick Koston 9a79320861 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-03-30 00:16:53 -04:00
Sid aec7a67a58 Unignore Ruff PLE, PLW in tests (#114406)
* Unignore Ruff PLE, PLW in tests

* fix tests
2024-03-29 23:58:30 +01: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
J. Nick Koston 969b027a46 Avoid tracking import executor jobs (#114453) 2024-03-29 22:18:21 +01:00
Paul Bottein 3b4958d972 Update frontend to 20240329.1 (#114459) 2024-03-29 22:13:31 +01:00
Tereza Tomcova 0554ac18b8 Address late code review comment of Prusa MK3 support (#114455)
Address code review comment from #114210 (Prusa MK3 support)
2024-03-29 21:57:08 +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
Paul Bottein 0f710f9fe0 Update frontend to 20240329.0 (#114452) 2024-03-29 19:34:16 +01:00
Alexey ALERT Rubashёff 6c6d1fb71d 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:33:13 +01:00
Joost Lekkerkerker 1c151d78a4 Don't store analytics insights info on entry level (#114429) 2024-03-29 19:29:09 +01:00
Steven Looman eb0aa6bb82 Bump async-upnp-client to 0.38.3 (#114447) 2024-03-29 19:08:07 +01:00
Mick Vleeshouwer 87f4b1414f Bump pyoverkiz to 1.13.9 (#114442) 2024-03-29 17:46:21 +01:00
epenet 60d545e5f9 Log warnings in Renault initialisation (#114445) 2024-03-29 16:20:43 +01:00
J. Nick Koston 63ccdcb786 Avoid concurrent radio operations with powerview hubs (#114399)
Co-authored-by: kingy444 <toddlesking4@hotmail.com>
2024-03-29 16:20:26 +01:00
Jan Bouwhuis 5e3ce80488 Remove stale test for mqtt climate (#114443) 2024-03-29 16:01:50 +01:00
Luca Angemi 54c5f18aac Add uid attribute to imap_content event data (#114432)
* Add uid to imap event

* Add ´uid´ to tests

* Update test_init.py
2024-03-29 15:04:24 +01:00
Jeremy TRUFIER 5b4452a579 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 14:51:44 +01:00
Sid dc557fca1e Refactor conversation mock_agent (#114428)
* Refactor conversation mock_agent

* Address review comments
2024-03-29 14:38:58 +01:00
Jan-Philipp Benecke 8d6d70d6b5 Use setup_test_component_platform helper for select entity component tests instead of hass.components (#114412)
* Use `setup_test_component_platform` helper for select entity component tests instead of `hass.components`

* Use _values instead of _attr_current_option

* Clean up

* Set default current_option for second mock entity

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-29 14:36:33 +01:00
Alexey ALERT Rubashёff 3381469076 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 14:07:22 +01:00
Alexey ALERT Rubashёff 8ed03112f0 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 14:05:18 +01:00
Mischa Siekmann 6d54f686a6 Add Integration for Energenie Power-Sockets (#113097)
* Integration for Energenie Power-Strips (EGPS)

* cleanups reocommended by reviewer

* Adds missing exception handling when trying to send a command to an unreachable device.

* fix: incorrect handling of already opened devices in pyegps api. bump to pyegps=0.2.4

* Add blank line after file docstring, and other cosmetics

* change asyncio.to_thread to async_add_executer_job

* raises HomeAssistantError EgpsException in switch services.

* switch test parameterized by entity name

* reoved unused device registry

* add translation_key and update_before_add

* bump pyegps dependency to version to 0.2.5

* combined get_device patches and put into conftest.py

* changed switch entity to use _attr_is_on and cleanups

* further cleanup

* Apply suggestions from code review

* refactor: rename egps to energenie_power_sockets

* updated test snapshot

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
2024-03-29 13:29:14 +01:00
Steven B 72614c86c2 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 12:47:21 +01:00
Joost Lekkerkerker ed7e5c4de6 Add single config entry to Mullvad (#114426)
* Add single config entry to Mullvad

* Add single config entry to Mullvad

* Add single config entry to Mullvad

* Fix
2024-03-29 11:04:37 +01:00
Jan-Philipp Benecke 247ee6e4f0 Address late review comments for fan entity component test (#114425)
* Address late review comments for fan entity component test

* Update tests/components/fan/common.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-29 10:18:57 +01:00
Jan-Philipp Benecke 045dc3f1fb Use setup_test_component_platform helper for datetime entity component tests instead of hass.components (#114415) 2024-03-29 07:51:10 +01:00
Jan-Philipp Benecke 74d614243b Use setup_test_component_platform helper for date entity component tests instead of hass.components (#114413)
* Use `setup_test_component_platform` helper for date entity component tests instead of `hass.components`

* Remove missing
2024-03-29 07:43:19 +01:00
J. Nick Koston 61982acb17 Cleanup some plex tasks that delayed startup (#114418) 2024-03-28 20:36:33 -10:00
Jan-Philipp Benecke a102230498 Use setup_test_component_platform helper for time entity component tests instead of hass.components (#114411) 2024-03-29 07:34:00 +01:00
Jan-Philipp Benecke ae635a5586 Use setup_test_component_platform helper for fan entity component tests instead of hass.components (#114409) 2024-03-29 07:32:41 +01:00
Sid a5b609f081 Enable ruff TRY401 (#114395)
* Enable ruff TRY401

* fix tests
2024-03-29 07:20:36 +01:00
Jan-Philipp Benecke 530552b4f5 Use mock_platform for device_tracker entity component tests instead of hass.components (#114398)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2024-03-28 15:23:21 -10:00
Lennard Beers 282cbfc048 Add eq3btsmart integration (#109291)
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-28 15:20:56 -10:00
Jan-Philipp Benecke 4adbf7c730 Migrate nina to use single_config_entry (#114408) 2024-03-28 23:05:47 +01:00
Jan-Philipp Benecke 7d0437808a Migrate moon to use single_config_entry (#114404) 2024-03-28 21:28:02 +01:00
Jan-Philipp Benecke 3fd24989c6 Use setup_test_component_platform helper for text entity component tests instead of hass.components (#114400) 2024-03-28 21:08:25 +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
Paul Bottein dbbc6914c4 Update frontend to 20240328.0 (#114396) 2024-03-28 20:38:12 +01:00
Scott K Logan 78c1efa7d4 Bump aioraven to 0.5.3 (#114397) 2024-03-28 18:52:17 +01:00
Christopher Bailey 435781be45 Bump pyunifiprotect to 5.1.2 (#114348) 2024-03-28 07:48:51 -10:00
Sid 5523cb6be8 Set ruff requires-version to 0.3.4 (#114388) 2024-03-28 18:45:07 +01:00
Marc Mueller 443bfee16d Replace partial annotations (#114177) 2024-03-28 18:33:39 +01:00
Michael Hansen 6fafb9c9b4 Filter preferred TTS format options if not supported (#114392)
Filter preferred format options if not supported
2024-03-28 11:09:15 -05:00
Franck Nijhof 3df03f5be5 Fix area search for entities of devices (#114394) 2024-03-28 16:57:29 +01:00
Franck Nijhof 192fad040a Fix hassfest service icons check for custom integrations (#114389) 2024-03-28 16:20:20 +01:00
Martin Hjelmare f9aa7d34f8 Use fallback voice for selected language in cloud (#114246)
Co-authored-by: Erik Montnemery <erik@montnemery.com>
2024-03-28 15:44:50 +01:00
Martin Hjelmare 52ca14de48 Add matter zeroconf (#114385)
* Add matter zeroconf

* Clean up
2024-03-28 14:57:18 +01:00
Mark Adkins 2511a9a087 Add SharkIQ room targeting (#89350)
* SharkIQ Dep & Codeowner Update

* Update code owners

* SharkIQ Room-Targeting Support

* Add Tests for New Service

* Remove unreachable code

* Refine tests to reflect unreachable code changes

* Updates based on PR comments

* Updates based on PR review comments

* Address issues found in PR Review

* Update Exception type, add excption message to strings.  Do not save room list in state history.

* Update message to be more clear that only one faild room is listed

* couple more updates based on comments

---------

Co-authored-by: jrlambs <jrlambs@gmail.com>
Co-authored-by: Robert Resch <robert@resch.dev>
2024-03-28 14:19:25 +01:00
Marc Mueller b90542077c Update boto3 to 1.34.51 and aiobotocore to 2.12.1 (#114379) 2024-03-28 14:18:44 +01:00
Jan-Philipp Benecke 71a0a7fe00 Use setup_test_component_platform helper for switch entity component tests instead of hass.components (#114305)
* Use `setup_test_component_platform` helper for switch entity component tests instead of `hass.components`

* Do not import fixtures

* Re-add switch.py to testing_config as stub

* Rename to mock_toggle_entities
2024-03-28 13:56:23 +01:00
Marc Mueller a3f251674a Update romy to 0.0.9 (#114360) 2024-03-28 13:56:08 +01:00
Lucas Mindêllo de Andrade 5fb12c93aa SunWEG reauth flow (#105861)
* feat(sunweg): reauth flow

* fix(sunweg): autentication as sunweg 2.1.0

* fix: configflowresult

* chore(sunweg): dedupe code

* chore(sunweg): using entry_id instead of unique_id

* test(sunweg): added test launch reauth flow

* chore(sunweg): moved test_reauth_started test

* chore(sunweg): formatting

* chore(sunweg): formating

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-28 13:53:32 +01:00
Øyvind Matheson Wergeland 596436d679 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 13:31:55 +01:00
Marc Mueller f80e319a4d Update pytest-xdist to 3.4.0 (#114377) 2024-03-28 13:29:43 +01:00
Maciej Bieniek c9c0625fa5 Adapt Tractive integration the latest API changes (#114380)
Co-authored-by: Maciej Bieniek <478555+bieniu@users.noreply.github.com>
2024-03-28 13:25:01 +01:00
Erik Montnemery 5b98a8458f Improve device class of utility meter (#114368) 2024-03-28 13:24:44 +01:00
Marc Mueller 68d6f96a9d Update boschshcpy to 0.2.91 (#114366) 2024-03-28 12:41:30 +01:00
Marc Mueller 62816e2041 Update aiogithubapi to 23.11.0 (#114362) 2024-03-28 12:41:08 +01:00
Jan-Philipp Benecke 22b14d83e8 Use setup_test_component_platform helper for sensor entity component tests instead of hass.components (#114316)
* Use `setup_test_component_platform` helper for sensor entity component tests instead of `hass.components`

* Missing file

* Fix import

* Remove invalid device class
2024-03-28 12:07:55 +01:00
Marc Mueller 41bd3d0853 Update pytile to 2023.12.0 (#114370) 2024-03-28 11:37:57 +01:00
Marc Mueller d2b5769123 Update ovoenergy to 1.3.1 (#114367) 2024-03-28 11:29:31 +01:00
Marc Mueller f0eca8233e Update aprslib to 0.7.2 (#114365) 2024-03-28 11:28:28 +01:00
Joost Lekkerkerker 795cc361ee Fix Lupusec feedback (#114374) 2024-03-28 11:12:02 +01:00
Joost Lekkerkerker e1bff6dac4 Fix Swiss public transport feedback (#114373) 2024-03-28 11:11:28 +01:00
Joost Lekkerkerker fc672be0ca Fix Suez water feedback (#114372) 2024-03-28 11:10:46 +01:00
Joost Lekkerkerker 72cfeff5b2 Fix streamlabswater feedback (#114371) 2024-03-28 11:09:59 +01:00
Marc Mueller fa72d70726 Update aioazuredevops to 1.4.3 (#114361) 2024-03-28 11:08:38 +01:00
Marc Mueller 4d4d2850be Update pyudev to 0.24.1 (#114359) 2024-03-28 11:01:12 +01:00
Robert Resch 4a9c592f3c Mark core as codeowner for some folders (#114357) 2024-03-28 10:54:10 +01:00
G Johansson fc4d960d17 Add translation support to Config Entry errors (#106305)
* Config Entry error translation

* split key and placeholders

* Fix config entries tests

* translation optional

* Mods
2024-03-28 10:52:21 +01:00
Erik Montnemery aa9d58df67 Improve utility meter restore state tests (#114356) 2024-03-28 10:42:52 +01:00
Marc Mueller a29dc86f62 Fix ruff error (#114364) 2024-03-28 10:31:42 +01:00
Erwin Douna 393dc289c4 Set fastdotcom to gold quality (#105598)
Gold code quality application
2024-03-28 10:24:55 +01:00
Sid f7b7f74d10 Enable Ruff TRY201 (#114269)
* Enable Ruff TRY201

* remove redundant rules
2024-03-28 10:18:07 +01:00
Yuxin Wang 071c3abb69 Define PARALLEL_UPDATES for APCUPSD (#114134) 2024-03-28 10:17:12 +01:00
Robert Resch ed90df309c Fix script for checking on existing translations (#114354) 2024-03-28 09:11:02 +01:00
J. Nick Koston a07dc85bf4 Revert velocity change in powerview (#114337) 2024-03-28 07:58:07 +01:00
J. Nick Koston bec45dacf0 Add additional coverage to the ESPHome manager (#114265) 2024-03-27 20:52:45 -10:00
Joakim Plate ae0b41f7a7 Bump fjaraskupan to 2.3.0 (#114344)
Update fjarakupen to 2.3.0

- Support delayed disconnection
- Speed up on/off transitions
2024-03-28 06:57:02 +01:00
J. Nick Koston f4922edb4b 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 00:29:43 -04:00
Erik Montnemery 4d7a434254 Don't access States.last_reported_ts before it's added (#114333) 2024-03-28 00:44:01 +01:00
Maikel Punie 4ea8185d4d Bump pyduotecno to 2024.3.2 (#114320) 2024-03-28 00:43:34 +01:00
Michael Hansen b8e9a78d6f Add more Ollama models (#114339)
Add more models
2024-03-27 18:19:34 -04:00
Robert Resch acb9eb4818 Download translations only once in the build pipeline (#114335) 2024-03-27 22:52:02 +01:00
Arie Catsman afcc4b58f4 Remove suggested_uom from frequency in Enphase (#114340)
remove suggested_uom from frequency
2024-03-27 22:49:34 +01:00
Marcel van der Veldt 0e12fea0cb 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-27 22:35:08 +01:00
Robert Resch d6ac8ba5c8 Remove checked in translations (#114336) 2024-03-27 22:33:06 +01:00
Franck Nijhof 3d4733a026 Bump version to 2024.5.0dev0 (#114324) 2024-03-27 19:43:38 +01:00
Marc Mueller 1120745d4e Update SignalType imports (#114287) 2024-03-27 19:41:11 +01:00
TheJulianJES 1a46158a1d Bump zha-quirks to 0.0.113 (#114311) 2024-03-27 13:53:18 -04: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 5c03bba5a10130489bb33897a1952ca426bd725a.

* Update library

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

This reverts commit 27631978d0d940a3fcbece761357d97c02bcca55.

* 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 5eb3ce695da788bcae649f82c9527c0f9307139c.

* 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 6de2defa0586165c2918ce006cf57aa3acaae730.

* 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 e8f12aad5579a1e5e3930957a46ea6f3dd9beecf.

* 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
Paulus Schoutsen 061ae756ac Bump version to 2024.3.0b7 2024-03-05 23:43:11 -05:00
Matthias Alphart 862bd8ff07 Update xknx to 2.12.2 - Fix thread leak on unsuccessful connections (#112450)
Update xknx to 2.12.2
2024-03-05 23:43:07 -05:00
G Johansson 742710443a Bump holidays to 0.44 (#112442) 2024-03-05 23:43:06 -05:00
Robert Svensson 015aeadf88 Fix handling missing parameter by bumping axis library to v50 (#112437)
Fix handling missing parameter
2024-03-05 23:43:05 -05:00
Robert Svensson b8b654a160 Do not use list comprehension in async_add_entities in Unifi (#112435)
Do not use list comprehension in async_add_entities
2024-03-05 23:43:04 -05:00
jan iversen 3c5b5ca49b Allow duplicate modbus addresses on different devices (#112434) 2024-03-05 23:43:04 -05:00
Mr. Bubbles fb789d95ed Bump bring-api to 0.5.5 (#112266)
Fix KeyError listArticleLanguage
2024-03-05 23:43:03 -05:00
Álvaro Fernández Rojas 2e6906c8d4 Update aioairzone to v0.7.6 (#112264)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-03-05 23:43:02 -05:00
Luke Lashley cc8d44bbd1 Bump python_roborock to 0.40.0 (#112238)
* bump to python_roborock 0.40.0

* manifest went away in merge?
2024-03-05 23:43:01 -05:00
Robert Svensson 0ad56de6fc 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 23:43:00 -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
Paulus Schoutsen dedd7a5a41 Bump version to 2024.3.0b6 2024-03-04 13:04:03 -05:00
Paul Bottein 44c961720c Update frontend to 20240304.0 (#112263) 2024-03-04 13:03:50 -05:00
Allen Porter 79b1d6df1b Add rainbird request debouncer and immediately update entity switch state (#112152) 2024-03-04 13:03:49 -05:00
Allen Porter 274ab2328e Limit rainbird aiohttp client session to a single connection (#112146)
Limit rainbird to a single open http connection
2024-03-04 13:03:48 -05:00
David F. Mulcahey 93ee900cb3 Fix ZHA groups page (#112140)
* Fix ZHA groups page

* test
2024-03-04 13:02:23 -05:00
Michael 62474967c9 Ignore failing gas stations in Tankerkoening (#112125) 2024-03-04 13:02:22 -05:00
starkillerOG 2cdc8d5f69 Bump reolink-aio to 0.8.9 (#112124)
* Update strings.json

* Bump reolink-aio to 0.8.9
2024-03-04 13:02:21 -05:00
David F. Mulcahey 4863c94824 Bump Zigpy to 0.63.4 (#112117) 2024-03-04 13:02:20 -05:00
Mr. Bubbles 193332da74 Bump bring-api to 0.5.4 (#111654) 2024-03-04 13:02:20 -05:00
Christopher Fenner 9926296d35 Handle exception in ViCare integration (#111128) 2024-03-04 13:02:19 -05: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
Paulus Schoutsen bb6f8b9d57 Bump version to 2024.3.0b5 2024-03-02 22:09:17 -05:00
J. Nick Koston 780f6e8974 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 22:08:59 -05:00
J. Nick Koston ab30d44184 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 22:08:58 -05:00
J. Nick Koston e23f737fa7 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 22:08:57 -05:00
J. Nick Koston b8e3bb8eb8 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 22:08:56 -05:00
elmurato 12574bca8b Fix setup failure due to temporary DNS issue in Minecraft Server (#112068)
Change ConfigEntryError to ConfigEntryNotReady on failed init
2024-03-02 22:08:55 -05:00
David Knowles f16ea54b4f Bump pydrawise to 2024.3.0 (#112066) 2024-03-02 22:08:54 -05:00
Paulus Schoutsen ad52bf608f Only load camera prefs once (#112064) 2024-03-02 22:08:53 -05:00
Isak Nyberg 46ee52f4ef Add device class for permobil record distance sensor (#112062)
fix record_distance device_class
2024-03-02 22:08:53 -05:00
Shay Levy 88fb44bbba Bump bthome-ble to 3.6.0 (#112060)
* Bump bthome-ble to 3.6.0

* Fix discovery info typing
2024-03-02 22:07:59 -05:00
J. Nick Koston de5e626430 Bump unifi-discovery to 1.1.8 (#112056) 2024-03-02 22:03:13 -05:00
J. Nick Koston 1bcdba1b4b 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 22:03:12 -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
Paulus Schoutsen a4353cf39d Bump version to 2024.3.0b4 2024-03-02 13:24:12 -05:00
Jeef 63192f2291 Bump weatherflow4py to v0.1.12 (#112040)
Backing lib bump
2024-03-02 13:24:05 -05:00
Joakim Sørensen 675b7ca7ba Fix config schema for velux (#112037) 2024-03-02 13:24:05 -05:00
Joakim Sørensen df5eb552a0 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 13:24:04 -05:00
Álvaro Fernández Rojas 5017f4a2c7 Update aioairzone-cloud to v0.4.5 (#112034)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-03-02 13:24:03 -05:00
Chris Helming 92d3dccb94 Fix minor language issues in strings.json (#112006)
language fix: allow -> allows
2024-03-02 13:24:01 -05:00
David F. Mulcahey 2c38b5ee7b Bump Zigpy to 0.63.3 (#112002) 2024-03-02 13:24:00 -05:00
Paulus Schoutsen 435bb50d29 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-02 13:23:59 -05:00
Paul Bottein 005493bb5a Update frontend to 20240301.0 (#111961) 2024-03-02 13:23:59 -05:00
Mick Vleeshouwer 838a4e4f7b Bump pyOverkiz to 1.13.8 (#111930)
Bump pyoverkiz to 1.13.8
2024-03-02 13:23:58 -05: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
12034 changed files with 395997 additions and 155760 deletions
+1
View File
@@ -137,6 +137,7 @@ tests: &tests
- tests/syrupy.py
- tests/test_util/**
- tests/testing_config/**
- tests/typing.py
- tests/util/**
other: &other
+136 -132
View File
@@ -1,12 +1,17 @@
# Sorted by hassfest.
#
# To sort, run python3 -m script.hassfest -p coverage
[run]
source = homeassistant
omit =
homeassistant/__main__.py
homeassistant/helpers/backports/aiohttp_resolver.py
homeassistant/helpers/signal.py
homeassistant/scripts/__init__.py
homeassistant/scripts/benchmark/__init__.py
homeassistant/scripts/check_config.py
homeassistant/scripts/ensure_config.py
homeassistant/scripts/benchmark/__init__.py
homeassistant/scripts/macos/__init__.py
# omit pieces of code that rely on external devices being present
@@ -53,13 +58,18 @@ omit =
homeassistant/components/airvisual/sensor.py
homeassistant/components/airvisual_pro/__init__.py
homeassistant/components/airvisual_pro/sensor.py
homeassistant/components/aladdin_connect/__init__.py
homeassistant/components/aladdin_connect/api.py
homeassistant/components/aladdin_connect/application_credentials.py
homeassistant/components/aladdin_connect/cover.py
homeassistant/components/aladdin_connect/sensor.py
homeassistant/components/alarmdecoder/__init__.py
homeassistant/components/alarmdecoder/alarm_control_panel.py
homeassistant/components/alarmdecoder/binary_sensor.py
homeassistant/components/alarmdecoder/entity.py
homeassistant/components/alarmdecoder/sensor.py
homeassistant/components/alpha_vantage/sensor.py
homeassistant/components/amazon_polly/*
homeassistant/components/ambiclimate/climate.py
homeassistant/components/ambient_station/__init__.py
homeassistant/components/ambient_station/binary_sensor.py
homeassistant/components/ambient_station/entity.py
@@ -77,6 +87,10 @@ omit =
homeassistant/components/aprilaire/climate.py
homeassistant/components/aprilaire/coordinator.py
homeassistant/components/aprilaire/entity.py
homeassistant/components/apsystems/__init__.py
homeassistant/components/apsystems/coordinator.py
homeassistant/components/apsystems/entity.py
homeassistant/components/apsystems/sensor.py
homeassistant/components/aqualogic/*
homeassistant/components/aquostv/media_player.py
homeassistant/components/arcam_fmj/__init__.py
@@ -103,10 +117,8 @@ omit =
homeassistant/components/aurora/sensor.py
homeassistant/components/avea/light.py
homeassistant/components/avion/light.py
homeassistant/components/azure_devops/__init__.py
homeassistant/components/azure_devops/sensor.py
homeassistant/components/azure_service_bus/*
homeassistant/components/awair/coordinator.py
homeassistant/components/azure_service_bus/*
homeassistant/components/baf/__init__.py
homeassistant/components/baf/climate.py
homeassistant/components/baf/entity.py
@@ -117,7 +129,6 @@ omit =
homeassistant/components/baf/switch.py
homeassistant/components/baidu/tts.py
homeassistant/components/bang_olufsen/__init__.py
homeassistant/components/bang_olufsen/const.py
homeassistant/components/bang_olufsen/entity.py
homeassistant/components/bang_olufsen/media_player.py
homeassistant/components/bang_olufsen/util.py
@@ -138,12 +149,7 @@ omit =
homeassistant/components/bloomsky/*
homeassistant/components/bluesound/*
homeassistant/components/bluetooth_tracker/*
homeassistant/components/bmw_connected_drive/__init__.py
homeassistant/components/bmw_connected_drive/binary_sensor.py
homeassistant/components/bmw_connected_drive/coordinator.py
homeassistant/components/bmw_connected_drive/lock.py
homeassistant/components/bmw_connected_drive/notify.py
homeassistant/components/bmw_connected_drive/sensor.py
homeassistant/components/bosch_shc/__init__.py
homeassistant/components/bosch_shc/binary_sensor.py
homeassistant/components/bosch_shc/cover.py
@@ -189,9 +195,8 @@ omit =
homeassistant/components/comelit/__init__.py
homeassistant/components/comelit/alarm_control_panel.py
homeassistant/components/comelit/climate.py
homeassistant/components/comelit/const.py
homeassistant/components/comelit/cover.py
homeassistant/components/comelit/coordinator.py
homeassistant/components/comelit/cover.py
homeassistant/components/comelit/humidifier.py
homeassistant/components/comelit/light.py
homeassistant/components/comelit/sensor.py
@@ -202,6 +207,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
@@ -238,8 +244,8 @@ omit =
homeassistant/components/dominos/*
homeassistant/components/doods/*
homeassistant/components/doorbird/__init__.py
homeassistant/components/doorbird/camera.py
homeassistant/components/doorbird/button.py
homeassistant/components/doorbird/camera.py
homeassistant/components/doorbird/device.py
homeassistant/components/doorbird/entity.py
homeassistant/components/doorbird/util.py
@@ -250,22 +256,18 @@ omit =
homeassistant/components/dormakaba_dkey/lock.py
homeassistant/components/dormakaba_dkey/sensor.py
homeassistant/components/dovado/*
homeassistant/components/downloader/*
homeassistant/components/dsmr_reader/__init__.py
homeassistant/components/dsmr_reader/definitions.py
homeassistant/components/dsmr_reader/sensor.py
homeassistant/components/downloader/__init__.py
homeassistant/components/dte_energy_bridge/sensor.py
homeassistant/components/dublin_bus_transport/sensor.py
homeassistant/components/dunehd/__init__.py
homeassistant/components/dunehd/media_player.py
homeassistant/components/duotecno/__init__.py
homeassistant/components/duotecno/entity.py
homeassistant/components/duotecno/switch.py
homeassistant/components/duotecno/cover.py
homeassistant/components/duotecno/light.py
homeassistant/components/duotecno/climate.py
homeassistant/components/duotecno/binary_sensor.py
homeassistant/components/dwd_weather_warnings/const.py
homeassistant/components/duotecno/climate.py
homeassistant/components/duotecno/cover.py
homeassistant/components/duotecno/entity.py
homeassistant/components/duotecno/light.py
homeassistant/components/duotecno/switch.py
homeassistant/components/dwd_weather_warnings/coordinator.py
homeassistant/components/dwd_weather_warnings/sensor.py
homeassistant/components/dweet/*
@@ -304,10 +306,12 @@ omit =
homeassistant/components/edl21/__init__.py
homeassistant/components/edl21/sensor.py
homeassistant/components/egardia/*
homeassistant/components/electrasmart/__init__.py
homeassistant/components/electrasmart/climate.py
homeassistant/components/electric_kiwi/__init__.py
homeassistant/components/electric_kiwi/api.py
homeassistant/components/electric_kiwi/oauth2.py
homeassistant/components/electric_kiwi/coordinator.py
homeassistant/components/electric_kiwi/oauth2.py
homeassistant/components/electric_kiwi/select.py
homeassistant/components/eliqonline/sensor.py
homeassistant/components/elkm1/__init__.py
@@ -320,8 +324,7 @@ omit =
homeassistant/components/elmax/__init__.py
homeassistant/components/elmax/alarm_control_panel.py
homeassistant/components/elmax/binary_sensor.py
homeassistant/components/elmax/common.py
homeassistant/components/elmax/const.py
homeassistant/components/elmax/coordinator.py
homeassistant/components/elmax/cover.py
homeassistant/components/elmax/switch.py
homeassistant/components/elv/*
@@ -355,12 +358,17 @@ omit =
homeassistant/components/environment_canada/weather.py
homeassistant/components/envisalink/*
homeassistant/components/ephember/climate.py
homeassistant/components/epic_games_store/__init__.py
homeassistant/components/epic_games_store/coordinator.py
homeassistant/components/epion/__init__.py
homeassistant/components/epion/coordinator.py
homeassistant/components/epion/sensor.py
homeassistant/components/epson/__init__.py
homeassistant/components/epson/media_player.py
homeassistant/components/epsonworkforce/sensor.py
homeassistant/components/eq3btsmart/__init__.py
homeassistant/components/eq3btsmart/climate.py
homeassistant/components/eq3btsmart/entity.py
homeassistant/components/eq3btsmart/models.py
homeassistant/components/escea/__init__.py
homeassistant/components/escea/climate.py
homeassistant/components/escea/discovery.py
@@ -375,11 +383,11 @@ omit =
homeassistant/components/ezviz/binary_sensor.py
homeassistant/components/ezviz/button.py
homeassistant/components/ezviz/camera.py
homeassistant/components/ezviz/coordinator.py
homeassistant/components/ezviz/entity.py
homeassistant/components/ezviz/image.py
homeassistant/components/ezviz/light.py
homeassistant/components/ezviz/coordinator.py
homeassistant/components/ezviz/number.py
homeassistant/components/ezviz/entity.py
homeassistant/components/ezviz/select.py
homeassistant/components/ezviz/sensor.py
homeassistant/components/ezviz/siren.py
@@ -450,8 +458,8 @@ omit =
homeassistant/components/freebox/camera.py
homeassistant/components/freebox/home_base.py
homeassistant/components/freebox/switch.py
homeassistant/components/fritz/common.py
homeassistant/components/fritz/device_tracker.py
homeassistant/components/fritz/coordinator.py
homeassistant/components/fritz/entity.py
homeassistant/components/fritz/services.py
homeassistant/components/fritz/switch.py
homeassistant/components/fritzbox_callmonitor/__init__.py
@@ -489,7 +497,6 @@ omit =
homeassistant/components/gpsd/sensor.py
homeassistant/components/greenwave/light.py
homeassistant/components/growatt_server/__init__.py
homeassistant/components/growatt_server/const.py
homeassistant/components/growatt_server/sensor.py
homeassistant/components/growatt_server/sensor_types/*
homeassistant/components/gstreamer/media_player.py
@@ -503,6 +510,7 @@ omit =
homeassistant/components/guardian/util.py
homeassistant/components/guardian/valve.py
homeassistant/components/habitica/__init__.py
homeassistant/components/habitica/coordinator.py
homeassistant/components/habitica/sensor.py
homeassistant/components/harman_kardon_avr/media_player.py
homeassistant/components/harmony/data.py
@@ -524,16 +532,13 @@ omit =
homeassistant/components/hive/switch.py
homeassistant/components/hive/water_heater.py
homeassistant/components/hko/__init__.py
homeassistant/components/hko/weather.py
homeassistant/components/hko/coordinator.py
homeassistant/components/hko/weather.py
homeassistant/components/hlk_sw16/__init__.py
homeassistant/components/hlk_sw16/switch.py
homeassistant/components/home_connect/__init__.py
homeassistant/components/home_connect/api.py
homeassistant/components/home_connect/binary_sensor.py
homeassistant/components/home_connect/entity.py
homeassistant/components/home_connect/light.py
homeassistant/components/home_connect/sensor.py
homeassistant/components/home_connect/switch.py
homeassistant/components/homematic/__init__.py
homeassistant/components/homematic/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
@@ -564,9 +568,9 @@ omit =
homeassistant/components/hunterdouglas_powerview/sensor.py
homeassistant/components/hunterdouglas_powerview/shade_data.py
homeassistant/components/hunterdouglas_powerview/util.py
homeassistant/components/hvv_departures/__init__.py
homeassistant/components/huum/__init__.py
homeassistant/components/huum/climate.py
homeassistant/components/hvv_departures/__init__.py
homeassistant/components/hvv_departures/binary_sensor.py
homeassistant/components/hvv_departures/sensor.py
homeassistant/components/ialarm/alarm_control_panel.py
@@ -586,7 +590,9 @@ omit =
homeassistant/components/ifttt/alarm_control_panel.py
homeassistant/components/iglo/light.py
homeassistant/components/ihc/*
homeassistant/components/incomfort/*
homeassistant/components/incomfort/__init__.py
homeassistant/components/incomfort/climate.py
homeassistant/components/incomfort/water_heater.py
homeassistant/components/insteon/binary_sensor.py
homeassistant/components/insteon/climate.py
homeassistant/components/insteon/cover.py
@@ -616,6 +622,7 @@ omit =
homeassistant/components/irish_rail_transport/sensor.py
homeassistant/components/iss/__init__.py
homeassistant/components/iss/sensor.py
homeassistant/components/ista_ecotrend/coordinator.py
homeassistant/components/isy994/__init__.py
homeassistant/components/isy994/binary_sensor.py
homeassistant/components/isy994/button.py
@@ -639,6 +646,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
@@ -653,9 +666,9 @@ omit =
homeassistant/components/keyboard/*
homeassistant/components/keyboard_remote/*
homeassistant/components/keymitt_ble/__init__.py
homeassistant/components/keymitt_ble/coordinator.py
homeassistant/components/keymitt_ble/entity.py
homeassistant/components/keymitt_ble/switch.py
homeassistant/components/keymitt_ble/coordinator.py
homeassistant/components/kitchen_sink/weather.py
homeassistant/components/kiwi/lock.py
homeassistant/components/kodi/__init__.py
@@ -666,6 +679,7 @@ omit =
homeassistant/components/konnected/panel.py
homeassistant/components/konnected/switch.py
homeassistant/components/kostal_plenticore/__init__.py
homeassistant/components/kostal_plenticore/coordinator.py
homeassistant/components/kostal_plenticore/helper.py
homeassistant/components/kostal_plenticore/select.py
homeassistant/components/kostal_plenticore/sensor.py
@@ -713,7 +727,6 @@ omit =
homeassistant/components/lookin/sensor.py
homeassistant/components/loqed/sensor.py
homeassistant/components/luci/device_tracker.py
homeassistant/components/luftdaten/sensor.py
homeassistant/components/lupusec/__init__.py
homeassistant/components/lupusec/alarm_control_panel.py
homeassistant/components/lupusec/binary_sensor.py
@@ -723,6 +736,7 @@ omit =
homeassistant/components/lutron/binary_sensor.py
homeassistant/components/lutron/cover.py
homeassistant/components/lutron/entity.py
homeassistant/components/lutron/event.py
homeassistant/components/lutron/fan.py
homeassistant/components/lutron/light.py
homeassistant/components/lutron/switch.py
@@ -738,11 +752,11 @@ 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
homeassistant/components/matter/__init__.py
homeassistant/components/matter/fan.py
homeassistant/components/meater/__init__.py
homeassistant/components/meater/sensor.py
homeassistant/components/medcom_ble/__init__.py
@@ -767,15 +781,17 @@ 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/climate.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
homeassistant/components/microbees/switch.py
homeassistant/components/microsoft/tts.py
homeassistant/components/mikrotik/hub.py
homeassistant/components/mikrotik/coordinator.py
homeassistant/components/mill/climate.py
homeassistant/components/mill/sensor.py
homeassistant/components/minio/minio_helper.py
@@ -786,15 +802,20 @@ omit =
homeassistant/components/mochad/switch.py
homeassistant/components/modem_callerid/button.py
homeassistant/components/modem_callerid/sensor.py
homeassistant/components/moehlenhoff_alpha2/__init__.py
homeassistant/components/moehlenhoff_alpha2/binary_sensor.py
homeassistant/components/moehlenhoff_alpha2/climate.py
homeassistant/components/moehlenhoff_alpha2/sensor.py
homeassistant/components/moehlenhoff_alpha2/coordinator.py
homeassistant/components/monzo/__init__.py
homeassistant/components/monzo/api.py
homeassistant/components/motion_blinds/__init__.py
homeassistant/components/motion_blinds/coordinator.py
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
@@ -820,8 +841,15 @@ omit =
homeassistant/components/mysensors/switch.py
homeassistant/components/mystrom/binary_sensor.py
homeassistant/components/mystrom/light.py
homeassistant/components/mystrom/switch.py
homeassistant/components/mystrom/sensor.py
homeassistant/components/mystrom/switch.py
homeassistant/components/myuplink/__init__.py
homeassistant/components/myuplink/api.py
homeassistant/components/myuplink/application_credentials.py
homeassistant/components/myuplink/coordinator.py
homeassistant/components/myuplink/entity.py
homeassistant/components/myuplink/helpers.py
homeassistant/components/myuplink/sensor.py
homeassistant/components/nad/media_player.py
homeassistant/components/nanoleaf/__init__.py
homeassistant/components/nanoleaf/button.py
@@ -829,13 +857,13 @@ omit =
homeassistant/components/nanoleaf/light.py
homeassistant/components/neato/__init__.py
homeassistant/components/neato/api.py
homeassistant/components/neato/button.py
homeassistant/components/neato/camera.py
homeassistant/components/neato/entity.py
homeassistant/components/neato/hub.py
homeassistant/components/neato/sensor.py
homeassistant/components/neato/switch.py
homeassistant/components/neato/vacuum.py
homeassistant/components/neato/button.py
homeassistant/components/nederlandse_spoorwegen/sensor.py
homeassistant/components/netdata/sensor.py
homeassistant/components/netgear/__init__.py
@@ -882,13 +910,13 @@ 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
homeassistant/components/nuki/__init__.py
homeassistant/components/nuki/binary_sensor.py
homeassistant/components/nuki/coordinator.py
homeassistant/components/nuki/lock.py
homeassistant/components/nuki/sensor.py
homeassistant/components/nx584/alarm_control_panel.py
homeassistant/components/oasa_telematics/sensor.py
homeassistant/components/obihai/__init__.py
@@ -901,11 +929,12 @@ omit =
homeassistant/components/ohmconnect/sensor.py
homeassistant/components/ombi/*
homeassistant/components/omnilogic/__init__.py
homeassistant/components/omnilogic/common.py
homeassistant/components/omnilogic/coordinator.py
homeassistant/components/omnilogic/sensor.py
homeassistant/components/omnilogic/switch.py
homeassistant/components/ondilo_ico/__init__.py
homeassistant/components/ondilo_ico/api.py
homeassistant/components/ondilo_ico/coordinator.py
homeassistant/components/ondilo_ico/sensor.py
homeassistant/components/onkyo/media_player.py
homeassistant/components/onvif/__init__.py
@@ -917,7 +946,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
@@ -929,7 +957,6 @@ omit =
homeassistant/components/opengarage/sensor.py
homeassistant/components/openhardwaremonitor/sensor.py
homeassistant/components/openhome/__init__.py
homeassistant/components/openhome/const.py
homeassistant/components/openhome/media_player.py
homeassistant/components/opensensemap/air_quality.py
homeassistant/components/opentherm_gw/__init__.py
@@ -940,18 +967,23 @@ 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/coordinator.py
homeassistant/components/openweathermap/repairs.py
homeassistant/components/openweathermap/sensor.py
homeassistant/components/openweathermap/weather_update_coordinator.py
homeassistant/components/openweathermap/weather.py
homeassistant/components/opnsense/__init__.py
homeassistant/components/opnsense/device_tracker.py
homeassistant/components/opower/__init__.py
homeassistant/components/opower/coordinator.py
homeassistant/components/opower/sensor.py
homeassistant/components/opnsense/device_tracker.py
homeassistant/components/opple/light.py
homeassistant/components/oru/*
homeassistant/components/orvibo/switch.py
homeassistant/components/osoenergy/__init__.py
homeassistant/components/osoenergy/const.py
homeassistant/components/osoenergy/binary_sensor.py
homeassistant/components/osoenergy/entity.py
homeassistant/components/osoenergy/sensor.py
homeassistant/components/osoenergy/water_heater.py
homeassistant/components/osramlightify/light.py
homeassistant/components/otp/sensor.py
@@ -982,9 +1014,12 @@ 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/coordinator.py
homeassistant/components/philips_js/light.py
homeassistant/components/philips_js/media_player.py
homeassistant/components/philips_js/remote.py
@@ -993,7 +1028,6 @@ omit =
homeassistant/components/picotts/tts.py
homeassistant/components/pilight/base_class.py
homeassistant/components/pilight/binary_sensor.py
homeassistant/components/pilight/const.py
homeassistant/components/pilight/light.py
homeassistant/components/pilight/switch.py
homeassistant/components/ping/__init__.py
@@ -1012,11 +1046,6 @@ omit =
homeassistant/components/point/alarm_control_panel.py
homeassistant/components/point/binary_sensor.py
homeassistant/components/point/sensor.py
homeassistant/components/poolsense/__init__.py
homeassistant/components/poolsense/binary_sensor.py
homeassistant/components/poolsense/coordinator.py
homeassistant/components/poolsense/entity.py
homeassistant/components/poolsense/sensor.py
homeassistant/components/powerwall/__init__.py
homeassistant/components/progettihwsw/__init__.py
homeassistant/components/progettihwsw/binary_sensor.py
@@ -1043,12 +1072,12 @@ omit =
homeassistant/components/quantum_gateway/device_tracker.py
homeassistant/components/qvr_pro/*
homeassistant/components/rabbitair/__init__.py
homeassistant/components/rabbitair/const.py
homeassistant/components/rabbitair/coordinator.py
homeassistant/components/rabbitair/entity.py
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
@@ -1065,22 +1094,12 @@ omit =
homeassistant/components/rainmachine/__init__.py
homeassistant/components/rainmachine/binary_sensor.py
homeassistant/components/rainmachine/button.py
homeassistant/components/rainmachine/coordinator.py
homeassistant/components/rainmachine/select.py
homeassistant/components/rainmachine/sensor.py
homeassistant/components/rainmachine/switch.py
homeassistant/components/rainmachine/update.py
homeassistant/components/rainmachine/util.py
homeassistant/components/renson/__init__.py
homeassistant/components/renson/const.py
homeassistant/components/renson/coordinator.py
homeassistant/components/renson/entity.py
homeassistant/components/renson/sensor.py
homeassistant/components/renson/button.py
homeassistant/components/renson/fan.py
homeassistant/components/renson/switch.py
homeassistant/components/renson/binary_sensor.py
homeassistant/components/renson/number.py
homeassistant/components/renson/time.py
homeassistant/components/raspyrfm/*
homeassistant/components/recollect_waste/sensor.py
homeassistant/components/recorder/repack.py
@@ -1095,6 +1114,16 @@ omit =
homeassistant/components/rejseplanen/sensor.py
homeassistant/components/remember_the_milk/__init__.py
homeassistant/components/remote_rpi_gpio/*
homeassistant/components/renson/__init__.py
homeassistant/components/renson/binary_sensor.py
homeassistant/components/renson/button.py
homeassistant/components/renson/coordinator.py
homeassistant/components/renson/entity.py
homeassistant/components/renson/fan.py
homeassistant/components/renson/number.py
homeassistant/components/renson/sensor.py
homeassistant/components/renson/switch.py
homeassistant/components/renson/time.py
homeassistant/components/reolink/binary_sensor.py
homeassistant/components/reolink/button.py
homeassistant/components/reolink/camera.py
@@ -1120,7 +1149,10 @@ omit =
homeassistant/components/roborock/coordinator.py
homeassistant/components/rocketchat/notify.py
homeassistant/components/romy/__init__.py
homeassistant/components/romy/binary_sensor.py
homeassistant/components/romy/coordinator.py
homeassistant/components/romy/entity.py
homeassistant/components/romy/sensor.py
homeassistant/components/romy/vacuum.py
homeassistant/components/roomba/__init__.py
homeassistant/components/roomba/binary_sensor.py
@@ -1135,18 +1167,18 @@ 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/russound_rio/media_player.py
homeassistant/components/russound_rnet/media_player.py
homeassistant/components/ruuvi_gateway/__init__.py
homeassistant/components/ruuvi_gateway/bluetooth.py
homeassistant/components/ruuvi_gateway/coordinator.py
homeassistant/components/russound_rio/media_player.py
homeassistant/components/russound_rnet/media_player.py
homeassistant/components/rympro/__init__.py
homeassistant/components/rympro/coordinator.py
homeassistant/components/rympro/sensor.py
homeassistant/components/sabnzbd/__init__.py
homeassistant/components/sabnzbd/coordinator.py
homeassistant/components/sabnzbd/sensor.py
homeassistant/components/saj/sensor.py
homeassistant/components/satel_integra/*
@@ -1154,12 +1186,10 @@ omit =
homeassistant/components/screenlogic/binary_sensor.py
homeassistant/components/screenlogic/climate.py
homeassistant/components/screenlogic/coordinator.py
homeassistant/components/screenlogic/const.py
homeassistant/components/screenlogic/entity.py
homeassistant/components/screenlogic/light.py
homeassistant/components/screenlogic/number.py
homeassistant/components/screenlogic/sensor.py
homeassistant/components/screenlogic/services.py
homeassistant/components/screenlogic/switch.py
homeassistant/components/scsgate/*
homeassistant/components/sendgrid/notify.py
@@ -1173,7 +1203,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
@@ -1213,7 +1242,6 @@ omit =
homeassistant/components/smappee/switch.py
homeassistant/components/smarty/*
homeassistant/components/sms/__init__.py
homeassistant/components/sms/const.py
homeassistant/components/sms/coordinator.py
homeassistant/components/sms/gateway.py
homeassistant/components/sms/notify.py
@@ -1230,8 +1258,8 @@ omit =
homeassistant/components/solaredge/coordinator.py
homeassistant/components/solaredge_local/sensor.py
homeassistant/components/solarlog/__init__.py
homeassistant/components/solarlog/sensor.py
homeassistant/components/solarlog/coordinator.py
homeassistant/components/solarlog/sensor.py
homeassistant/components/solax/__init__.py
homeassistant/components/solax/sensor.py
homeassistant/components/soma/__init__.py
@@ -1268,13 +1296,6 @@ omit =
homeassistant/components/squeezebox/__init__.py
homeassistant/components/squeezebox/browse_media.py
homeassistant/components/squeezebox/media_player.py
homeassistant/components/starlink/__init__.py
homeassistant/components/starlink/binary_sensor.py
homeassistant/components/starlink/button.py
homeassistant/components/starlink/coordinator.py
homeassistant/components/starlink/device_tracker.py
homeassistant/components/starlink/sensor.py
homeassistant/components/starlink/switch.py
homeassistant/components/starline/__init__.py
homeassistant/components/starline/account.py
homeassistant/components/starline/binary_sensor.py
@@ -1285,6 +1306,14 @@ omit =
homeassistant/components/starline/sensor.py
homeassistant/components/starline/switch.py
homeassistant/components/starlingbank/sensor.py
homeassistant/components/starlink/__init__.py
homeassistant/components/starlink/binary_sensor.py
homeassistant/components/starlink/button.py
homeassistant/components/starlink/coordinator.py
homeassistant/components/starlink/device_tracker.py
homeassistant/components/starlink/sensor.py
homeassistant/components/starlink/switch.py
homeassistant/components/starlink/time.py
homeassistant/components/steam_online/sensor.py
homeassistant/components/stiebel_eltron/*
homeassistant/components/stookalert/__init__.py
@@ -1306,6 +1335,7 @@ omit =
homeassistant/components/supla/*
homeassistant/components/surepetcare/__init__.py
homeassistant/components/surepetcare/binary_sensor.py
homeassistant/components/surepetcare/coordinator.py
homeassistant/components/surepetcare/entity.py
homeassistant/components/surepetcare/sensor.py
homeassistant/components/swiss_hydrological_data/sensor.py
@@ -1328,12 +1358,13 @@ omit =
homeassistant/components/switchbot/entity.py
homeassistant/components/switchbot/humidifier.py
homeassistant/components/switchbot/light.py
homeassistant/components/switchbot/lock.py
homeassistant/components/switchbot/sensor.py
homeassistant/components/switchbot/switch.py
homeassistant/components/switchbot/lock.py
homeassistant/components/switchbot_cloud/climate.py
homeassistant/components/switchbot_cloud/coordinator.py
homeassistant/components/switchbot_cloud/entity.py
homeassistant/components/switchbot_cloud/sensor.py
homeassistant/components/switchbot_cloud/switch.py
homeassistant/components/switchmate/switch.py
homeassistant/components/syncthing/__init__.py
@@ -1370,11 +1401,6 @@ omit =
homeassistant/components/tado/water_heater.py
homeassistant/components/tami4/button.py
homeassistant/components/tank_utility/sensor.py
homeassistant/components/tankerkoenig/__init__.py
homeassistant/components/tankerkoenig/binary_sensor.py
homeassistant/components/tankerkoenig/coordinator.py
homeassistant/components/tankerkoenig/entity.py
homeassistant/components/tankerkoenig/sensor.py
homeassistant/components/tapsaff/binary_sensor.py
homeassistant/components/tautulli/__init__.py
homeassistant/components/tautulli/coordinator.py
@@ -1397,12 +1423,11 @@ omit =
homeassistant/components/tensorflow/image_processing.py
homeassistant/components/tfiac/climate.py
homeassistant/components/thermoworks_smoke/sensor.py
homeassistant/components/thethingsnetwork/*
homeassistant/components/thingspeak/*
homeassistant/components/thinkingcleaner/*
homeassistant/components/thomson/device_tracker.py
homeassistant/components/tibber/__init__.py
homeassistant/components/tibber/notify.py
homeassistant/components/tibber/coordinator.py
homeassistant/components/tibber/sensor.py
homeassistant/components/tikteck/light.py
homeassistant/components/tile/__init__.py
@@ -1419,6 +1444,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
@@ -1442,12 +1468,7 @@ omit =
homeassistant/components/traccar_server/device_tracker.py
homeassistant/components/traccar_server/entity.py
homeassistant/components/traccar_server/helpers.py
homeassistant/components/tractive/__init__.py
homeassistant/components/tractive/binary_sensor.py
homeassistant/components/tractive/device_tracker.py
homeassistant/components/tractive/entity.py
homeassistant/components/tractive/sensor.py
homeassistant/components/tractive/switch.py
homeassistant/components/traccar_server/sensor.py
homeassistant/components/tradfri/__init__.py
homeassistant/components/tradfri/base_class.py
homeassistant/components/tradfri/coordinator.py
@@ -1489,9 +1510,9 @@ omit =
homeassistant/components/ue_smart_radio/media_player.py
homeassistant/components/ukraine_alarm/__init__.py
homeassistant/components/ukraine_alarm/binary_sensor.py
homeassistant/components/unifiled/*
homeassistant/components/unifi_direct/__init__.py
homeassistant/components/unifi_direct/device_tracker.py
homeassistant/components/unifiled/*
homeassistant/components/upb/__init__.py
homeassistant/components/upb/light.py
homeassistant/components/upc_connect/*
@@ -1501,14 +1522,15 @@ omit =
homeassistant/components/upnp/__init__.py
homeassistant/components/upnp/device.py
homeassistant/components/upnp/sensor.py
homeassistant/components/vasttrafik/sensor.py
homeassistant/components/v2c/__init__.py
homeassistant/components/v2c/binary_sensor.py
homeassistant/components/v2c/coordinator.py
homeassistant/components/v2c/entity.py
homeassistant/components/v2c/number.py
homeassistant/components/v2c/sensor.py
homeassistant/components/v2c/switch.py
homeassistant/components/vallox/__init__.py
homeassistant/components/vallox/coordinator.py
homeassistant/components/vasttrafik/sensor.py
homeassistant/components/velbus/__init__.py
homeassistant/components/velbus/binary_sensor.py
homeassistant/components/velbus/button.py
@@ -1516,15 +1538,14 @@ omit =
homeassistant/components/velbus/cover.py
homeassistant/components/velbus/entity.py
homeassistant/components/velbus/light.py
homeassistant/components/velbus/sensor.py
homeassistant/components/velbus/select.py
homeassistant/components/velbus/sensor.py
homeassistant/components/velbus/switch.py
homeassistant/components/velux/__init__.py
homeassistant/components/velux/cover.py
homeassistant/components/velux/light.py
homeassistant/components/venstar/__init__.py
homeassistant/components/venstar/binary_sensor.py
homeassistant/components/venstar/climate.py
homeassistant/components/venstar/coordinator.py
homeassistant/components/venstar/sensor.py
homeassistant/components/verisure/__init__.py
homeassistant/components/verisure/alarm_control_panel.py
@@ -1535,6 +1556,7 @@ omit =
homeassistant/components/verisure/sensor.py
homeassistant/components/verisure/switch.py
homeassistant/components/versasense/*
homeassistant/components/vesync/__init__.py
homeassistant/components/vesync/fan.py
homeassistant/components/vesync/light.py
homeassistant/components/vesync/sensor.py
@@ -1557,7 +1579,6 @@ omit =
homeassistant/components/vlc_telnet/media_player.py
homeassistant/components/vodafone_station/__init__.py
homeassistant/components/vodafone_station/button.py
homeassistant/components/vodafone_station/const.py
homeassistant/components/vodafone_station/coordinator.py
homeassistant/components/vodafone_station/device_tracker.py
homeassistant/components/vodafone_station/sensor.py
@@ -1582,13 +1603,10 @@ omit =
homeassistant/components/watttime/__init__.py
homeassistant/components/watttime/sensor.py
homeassistant/components/weatherflow/__init__.py
homeassistant/components/weatherflow/const.py
homeassistant/components/weatherflow/sensor.py
homeassistant/components/weatherflow_cloud/__init__.py
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
@@ -1604,6 +1622,7 @@ omit =
homeassistant/components/xbox/base_sensor.py
homeassistant/components/xbox/binary_sensor.py
homeassistant/components/xbox/browse_media.py
homeassistant/components/xbox/coordinator.py
homeassistant/components/xbox/media_player.py
homeassistant/components/xbox/remote.py
homeassistant/components/xbox/sensor.py
@@ -1636,10 +1655,7 @@ omit =
homeassistant/components/xs1/*
homeassistant/components/yale_smart_alarm/__init__.py
homeassistant/components/yale_smart_alarm/alarm_control_panel.py
homeassistant/components/yale_smart_alarm/binary_sensor.py
homeassistant/components/yale_smart_alarm/button.py
homeassistant/components/yale_smart_alarm/entity.py
homeassistant/components/yale_smart_alarm/lock.py
homeassistant/components/yalexs_ble/__init__.py
homeassistant/components/yalexs_ble/binary_sensor.py
homeassistant/components/yalexs_ble/entity.py
@@ -1671,6 +1687,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/*
@@ -1679,16 +1696,12 @@ omit =
homeassistant/components/zeroconf/models.py
homeassistant/components/zeroconf/usage.py
homeassistant/components/zestimate/sensor.py
homeassistant/components/zeversolar/__init__.py
homeassistant/components/zeversolar/coordinator.py
homeassistant/components/zeversolar/entity.py
homeassistant/components/zeversolar/sensor.py
homeassistant/components/zha/websocket_api.py
homeassistant/components/zha/core/cluster_handlers/*
homeassistant/components/zha/core/device.py
homeassistant/components/zha/core/gateway.py
homeassistant/components/zha/core/helpers.py
homeassistant/components/zha/light.py
homeassistant/components/zha/websocket_api.py
homeassistant/components/zhong_hong/climate.py
homeassistant/components/ziggo_mediabox_xl/media_player.py
homeassistant/components/zoneminder/*
@@ -1705,15 +1718,6 @@ omit =
homeassistant/components/zwave_me/sensor.py
homeassistant/components/zwave_me/siren.py
homeassistant/components/zwave_me/switch.py
homeassistant/components/electrasmart/climate.py
homeassistant/components/electrasmart/__init__.py
homeassistant/components/myuplink/__init__.py
homeassistant/components/myuplink/api.py
homeassistant/components/myuplink/application_credentials.py
homeassistant/components/myuplink/coordinator.py
homeassistant/components/myuplink/entity.py
homeassistant/components/myuplink/helpers.py
homeassistant/components/myuplink/sensor.py
[report]
+12 -3
View File
@@ -4,7 +4,12 @@
"dockerFile": "../Dockerfile.dev",
"postCreateCommand": "script/setup",
"postStartCommand": "script/bootstrap",
"containerEnv": { "DEVCONTAINER": "1" },
"containerEnv": {
"PYTHONASYNCIODEBUG": "1"
},
"features": {
"ghcr.io/devcontainers/features/github-cli:1": {}
},
// Port 5683 udp is used by Shelly integration
"appPort": ["8123:8123", "5683:5683/udp"],
"runArgs": ["-e", "GIT_EDITOR=code --wait"],
@@ -17,11 +22,15 @@
"visualstudioexptteam.vscodeintellicode",
"redhat.vscode-yaml",
"esbenp.prettier-vscode",
"GitHub.vscode-pull-request-github"
"GitHub.vscode-pull-request-github",
"GitHub.copilot"
],
// Please keep this file in sync with settings in home-assistant/.vscode/settings.default.json
"settings": {
"python.pythonPath": "/usr/local/bin/python",
"python.experiments.optOutFrom": ["pythonTestAdapter"],
"python.defaultInterpreterPath": "/home/vscode/.local/ha-venv/bin/python",
"python.pythonPath": "/home/vscode/.local/ha-venv/bin/python",
"python.terminal.activateEnvInCurrentTerminal": true,
"python.testing.pytestArgs": ["--no-cov"],
"editor.formatOnPaste": false,
"editor.formatOnSave": true,
+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
+130 -107
View File
@@ -10,8 +10,10 @@ on:
env:
BUILD_TYPE: core
DEFAULT_PYTHON: "3.12"
DEFAULT_PYTHON: "3.12.3"
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.6
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.3
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.6
- 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@v5
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@v5
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
@@ -180,19 +174,15 @@ jobs:
sed -i "s|pyezviz|# pyezviz|g" requirements_all.txt
sed -i "s|pykrakenapi|# pykrakenapi|g" requirements_all.txt
- name: Adjustments for 64-bit
if: matrix.arch == 'amd64' || matrix.arch == 'aarch64'
run: |
# Some speedups are only available on 64-bit, and since
# we build 32bit images on 64bit hosts, we only enable
# the speed ups on 64bit since the wheels for 32bit
# are not available.
sed -i "s|aiohttp-zlib-ng|aiohttp-zlib-ng\[isal\]|g" requirements_all.txt
- name: Download translations
uses: actions/download-artifact@v4.1.7
with:
name: translations
- name: Download Translations
run: python3 -m script.translations download
env:
LOKALISE_TOKEN: ${{ secrets.LOKALISE_TOKEN }}
- name: Extract translations
run: |
tar xvf translations.tar.gz
rm translations.tar.gz
- name: Write meta info file
shell: bash
@@ -200,14 +190,14 @@ jobs:
echo "${{ github.sha }};${{ github.ref }};${{ github.event_name }};${{ github.actor }}" > rootfs/OFFICIAL_IMAGE
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.0.0
uses: docker/login-action@v3.2.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 +206,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 +242,7 @@ jobs:
- green
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- name: Set build additional args
run: |
@@ -277,14 +256,14 @@ jobs:
fi
- name: Login to GitHub Container Registry
uses: docker/login-action@v3.0.0
uses: docker/login-action@v3.2.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 +279,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- name: Initialize git
uses: home-assistant/actions/helpers/git-init@master
@@ -336,23 +315,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.6
- name: Install Cosign
uses: sigstore/cosign-installer@v3.4.0
uses: sigstore/cosign-installer@v3.5.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.2.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.2.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
@@ -366,41 +350,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 +413,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 +441,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.6
- 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.7
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
+314 -169
View File
@@ -33,12 +33,12 @@ on:
type: boolean
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']"
CACHE_VERSION: 9
UV_CACHE_VERSION: 1
MYPY_CACHE_VERSION: 8
HA_SHORT_VERSION: "2024.7"
DEFAULT_PYTHON: "3.12.3"
ALL_PYTHON_VERSIONS: "['3.12.3']"
# 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,21 +89,25 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- name: Generate partial Python venv restore key
id: generate_python_cache_key
run: >-
echo "key=venv-${{ env.CACHE_VERSION }}-${{
hashFiles('requirements_test.txt') }}-${{
run: |
# Include HA_SHORT_VERSION to force the immediate creation
# of a new uv cache entry after a version bump.
echo "key=venv-${{ env.CACHE_VERSION }}-${{ env.HA_SHORT_VERSION }}-${{
hashFiles('requirements_test.txt', 'requirements_test_pre_commit.txt') }}-${{
hashFiles('requirements.txt') }}-${{
hashFiles('requirements_all.txt') }}-${{
hashFiles('homeassistant/package_constraints.txt') }}" >> $GITHUB_OUTPUT
hashFiles('homeassistant/package_constraints.txt') }}-${{
hashFiles('script/gen_requirements_all.py') }}" >> $GITHUB_OUTPUT
- name: Generate partial pre-commit restore key
id: generate_pre-commit_cache_key
run: >-
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 +122,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 +226,16 @@ jobs:
- info
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- 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 +247,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 +272,16 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- 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 +290,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 +312,16 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- 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 +330,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 +351,16 @@ jobs:
- pre-commit
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- 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 +369,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,40 +445,45 @@ 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.6
- 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
run: >-
echo "key=pip-${{ env.PIP_CACHE_VERSION }}-${{
- name: Generate partial uv restore key
id: generate-uv-key
run: |
uv_version=$(cat requirements_test.txt | grep uv | cut -d '=' -f 3)
echo "version=${uv_version}" >> $GITHUB_OUTPUT
echo "key=uv-${{ env.UV_CACHE_VERSION }}-${uv_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 }}-${{ steps.generate-uv-key.outputs.version }}-${{
env.HA_SHORT_VERSION }}-
- name: Install additional OS dependencies
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
sudo rm /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update
sudo apt-get -y install \
bluez \
@@ -483,6 +493,7 @@ jobs:
libavfilter-dev \
libavformat-dev \
libavutil-dev \
libgammu-dev \
libswresample-dev \
libswscale-dev \
libudev-dev
@@ -492,10 +503,13 @@ 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.txt
python -m script.gen_requirements_all ci
uv pip install -r requirements_all_pytest.txt
uv pip install -r requirements_test.txt
uv pip install -e . --config-settings editable_mode=compat
hassfest:
name: Check hassfest
@@ -508,16 +522,16 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- 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 +554,16 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- 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 +587,16 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- 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
@@ -597,14 +611,14 @@ jobs:
run: |
. venv/bin/activate
python --version
pylint --ignore-missing-annotations=y --ignore-wrong-coordinator-module=y homeassistant
pylint --ignore-missing-annotations=y homeassistant
- name: Run pylint (partially)
if: needs.info.outputs.test_full_suite == 'false'
shell: bash
run: |
. venv/bin/activate
python --version
pylint --ignore-missing-annotations=y --ignore-wrong-coordinator-module=y homeassistant/components/${{ needs.info.outputs.integrations_glob }}
pylint --ignore-missing-annotations=y homeassistant/components/${{ needs.info.outputs.integrations_glob }}
mypy:
name: Check mypy
@@ -617,10 +631,10 @@ jobs:
- base
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- 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 +647,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 +655,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: >-
@@ -668,14 +682,63 @@ jobs:
python --version
mypy homeassistant/components/${{ needs.info.outputs.integrations_glob }}
pytest:
prepare-pytest-full:
runs-on: ubuntu-22.04
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& (needs.info.outputs.test_full_suite == 'true' || needs.info.outputs.tests_glob)
&& needs.info.outputs.test_full_suite == 'true'
needs:
- info
- base
name: Split tests for full run
steps:
- name: Install additional OS dependencies
run: |
sudo rm /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update
sudo apt-get -y install \
bluez \
ffmpeg \
libgammu-dev
- name: Check out code from GitHub
uses: actions/checkout@v4.1.6
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
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.2
with:
path: venv
fail-on-cache-miss: true
key: >-
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Run split_tests.py
run: |
. venv/bin/activate
python -m script.split_tests ${{ needs.info.outputs.test_group_count }} tests
- name: Upload pytest_buckets
uses: actions/upload-artifact@v4.3.3
with:
name: pytest_buckets
path: pytest_buckets.txt
overwrite: true
pytest-full:
runs-on: ubuntu-22.04
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& needs.info.outputs.test_full_suite == 'true'
needs:
- info
- base
@@ -683,7 +746,9 @@ jobs:
- hassfest
- lint-other
- lint-ruff
- lint-ruff-format
- mypy
- prepare-pytest-full
strategy:
fail-fast: false
matrix:
@@ -694,21 +759,23 @@ jobs:
steps:
- name: Install additional OS dependencies
run: |
sudo rm /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update
sudo apt-get -y install \
bluez \
ffmpeg
ffmpeg \
libgammu-dev
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- 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,22 +784,18 @@ 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: Download pytest_buckets
uses: actions/download-artifact@v4.1.7
with:
name: pytest_buckets
- name: Compile English translations
run: |
. venv/bin/activate
python3 -m script.translations develop --all
- name: Run pytest (fully)
if: needs.info.outputs.test_full_suite == 'true'
- name: Run pytest
timeout-minutes: 60
id: pytest-full
env:
@@ -753,61 +816,27 @@ jobs:
--durations=10 \
-n auto \
--dist=loadfile \
--test-group-count ${{ needs.info.outputs.test_group_count }} \
--test-group=${{ matrix.group }} \
${cov_params[@]} \
-o console_output_style=count \
-p no:sugar \
tests \
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Run pytest (partially)
if: needs.info.outputs.test_full_suite == 'false'
timeout-minutes: 10
id: pytest-partial
shell: bash
env:
PYTHONDONTWRITEBYTECODE: 1
run: |
. venv/bin/activate
python --version
set -o pipefail
if [[ ! -f "tests/components/${{ matrix.group }}/__init__.py" ]]; then
echo "::error:: missing file tests/components/${{ matrix.group }}/__init__.py"
exit 1
fi
cov_params=()
if [[ "${{ needs.info.outputs.skip_coverage }}" != "true" ]]; then
cov_params+=(--cov="homeassistant.components.${{ matrix.group }}")
cov_params+=(--cov-report=xml)
cov_params+=(--cov-report=term-missing)
fi
python3 -b -X dev -m pytest \
-qq \
--timeout=9 \
-n auto \
${cov_params[@]} \
-o console_output_style=count \
--durations=0 \
--durations-min=1 \
-p no:sugar \
tests/components/${{ matrix.group }} \
$(sed -n "${{ matrix.group }},1p" pytest_buckets.txt) \
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Upload pytest output
if: success() || failure() && (steps.pytest-full.conclusion == 'failure' || steps.pytest-partial.conclusion == 'failure')
uses: actions/upload-artifact@v3.1.2
if: success() || failure() && steps.pytest-full.conclusion == 'failure'
uses: actions/upload-artifact@v4.3.3
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
uses: actions/upload-artifact@v4.3.3
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
overwrite: true
- name: Remove pytest_buckets
run: rm pytest_buckets.txt
- name: Check dirty
run: |
./script/check_dirty
@@ -835,6 +864,7 @@ jobs:
- hassfest
- lint-other
- lint-ruff
- lint-ruff-format
- mypy
strategy:
fail-fast: false
@@ -846,22 +876,23 @@ jobs:
steps:
- name: Install additional OS dependencies
run: |
sudo rm /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update
sudo apt-get -y install \
bluez \
ffmpeg \
libmariadb-dev-compat
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- 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 +901,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,13 +947,15 @@ 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.3
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
uses: actions/upload-artifact@v4.3.3
with:
name: coverage-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.mariadb }}
@@ -962,6 +988,7 @@ jobs:
- hassfest
- lint-other
- lint-ruff
- lint-ruff-format
- mypy
strategy:
fail-fast: false
@@ -973,22 +1000,23 @@ jobs:
steps:
- name: Install additional OS dependencies
run: |
sudo rm /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update
sudo apt-get -y install \
bluez \
ffmpeg \
postgresql-server-dev-14
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- 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 +1025,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,13 +1072,15 @@ 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.3
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
uses: actions/upload-artifact@v4.3.3
with:
name: coverage-${{ matrix.python-version }}-${{
steps.pytest-partial.outputs.postgresql }}
@@ -1067,39 +1090,161 @@ jobs:
run: |
./script/check_dirty
coverage:
name: Upload test coverage to Codecov
coverage-full:
name: Upload test coverage to Codecov (full suite)
if: needs.info.outputs.skip_coverage != 'true'
runs-on: ubuntu-22.04
needs:
- info
- pytest
- pytest-full
- pytest-postgres
- pytest-mariadb
timeout-minutes: 10
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- name: Download all coverage artifacts
uses: actions/download-artifact@v4.1.3
uses: actions/download-artifact@v4.1.7
with:
pattern: coverage-*
- name: Upload coverage to Codecov (full coverage)
- name: Upload coverage to Codecov
if: needs.info.outputs.test_full_suite == 'true'
uses: Wandalen/wretry.action@v1.4.4
uses: codecov/codecov-action@v4.4.1
with:
action: codecov/codecov-action@v3.1.3
with: |
fail_ci_if_error: true
flags: full-suite
token: ${{ env.CODECOV_TOKEN }}
attempt_limit: 5
attempt_delay: 30000
- name: Upload coverage to Codecov (partial coverage)
fail_ci_if_error: true
flags: full-suite
token: ${{ secrets.CODECOV_TOKEN }}
pytest-partial:
runs-on: ubuntu-22.04
if: |
(github.event_name != 'push' || github.event.repository.full_name == 'home-assistant/core')
&& github.event.inputs.lint-only != 'true'
&& github.event.inputs.pylint-only != 'true'
&& github.event.inputs.mypy-only != 'true'
&& needs.info.outputs.tests_glob
&& needs.info.outputs.test_full_suite == 'false'
needs:
- info
- base
- gen-requirements-all
- hassfest
- lint-other
- lint-ruff
- lint-ruff-format
- mypy
strategy:
fail-fast: false
matrix:
group: ${{ fromJson(needs.info.outputs.test_groups) }}
python-version: ${{ fromJson(needs.info.outputs.python_versions) }}
name: >-
Run tests Python ${{ matrix.python-version }} (${{ matrix.group }})
steps:
- name: Install additional OS dependencies
run: |
sudo rm /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update
sudo apt-get -y install \
bluez \
ffmpeg \
libgammu-dev
- name: Check out code from GitHub
uses: actions/checkout@v4.1.6
- name: Set up Python ${{ matrix.python-version }}
id: python
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.2
with:
path: venv
fail-on-cache-miss: true
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{
needs.info.outputs.python_cache_key }}
- name: Register Python problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/python.json"
- name: Register pytest slow test problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/pytest-slow.json"
- name: Compile English translations
run: |
. venv/bin/activate
python3 -m script.translations develop --all
- name: Run pytest
timeout-minutes: 10
id: pytest-partial
shell: bash
env:
PYTHONDONTWRITEBYTECODE: 1
run: |
. venv/bin/activate
python --version
set -o pipefail
if [[ ! -f "tests/components/${{ matrix.group }}/__init__.py" ]]; then
echo "::error:: missing file tests/components/${{ matrix.group }}/__init__.py"
exit 1
fi
cov_params=()
if [[ "${{ needs.info.outputs.skip_coverage }}" != "true" ]]; then
cov_params+=(--cov="homeassistant.components.${{ matrix.group }}")
cov_params+=(--cov-report=xml)
cov_params+=(--cov-report=term-missing)
fi
python3 -b -X dev -m pytest \
-qq \
--timeout=9 \
-n auto \
${cov_params[@]} \
-o console_output_style=count \
--durations=0 \
--durations-min=1 \
-p no:sugar \
tests/components/${{ matrix.group }} \
2>&1 | tee pytest-${{ matrix.python-version }}-${{ matrix.group }}.txt
- name: Upload pytest output
if: success() || failure() && steps.pytest-partial.conclusion == 'failure'
uses: actions/upload-artifact@v4.3.3
with:
name: pytest-${{ github.run_number }}-${{ matrix.python-version }}-${{ matrix.group }}
path: pytest-*.txt
overwrite: true
- name: Upload coverage artifact
if: needs.info.outputs.skip_coverage != 'true'
uses: actions/upload-artifact@v4.3.3
with:
name: coverage-${{ matrix.python-version }}-${{ matrix.group }}
path: coverage.xml
overwrite: true
- name: Check dirty
run: |
./script/check_dirty
coverage-partial:
name: Upload test coverage to Codecov (partial suite)
if: needs.info.outputs.skip_coverage != 'true'
runs-on: ubuntu-22.04
needs:
- info
- pytest-partial
timeout-minutes: 10
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.1.6
- name: Download all coverage artifacts
uses: actions/download-artifact@v4.1.7
with:
pattern: coverage-*
- name: Upload coverage to Codecov
if: needs.info.outputs.test_full_suite == 'false'
uses: Wandalen/wretry.action@v1.4.4
uses: codecov/codecov-action@v4.4.1
with:
action: codecov/codecov-action@v3.1.3
with: |
fail_ci_if_error: true
token: ${{ env.CODECOV_TOKEN }}
attempt_limit: 5
attempt_delay: 30000
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
+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.6
- name: Initialize CodeQL
uses: github/codeql-action/init@v3.24.5
uses: github/codeql-action/init@v3.25.8
with:
languages: python
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.24.5
uses: github/codeql-action/analyze@v3.25.8
with:
category: "/language:python"
+3 -3
View File
@@ -10,7 +10,7 @@ on:
- "**strings.json"
env:
DEFAULT_PYTHON: "3.11"
DEFAULT_PYTHON: "3.12.3"
jobs:
upload:
@@ -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.6
- 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 -46
View File
@@ -14,6 +14,10 @@ on:
- "homeassistant/package_constraints.txt"
- "requirements_all.txt"
- "requirements.txt"
- "script/gen_requirements_all.py"
env:
DEFAULT_PYTHON: "3.12.3"
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name}}
@@ -28,7 +32,22 @@ jobs:
architectures: ${{ steps.info.outputs.architectures }}
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
check-latest: true
- name: Create Python virtual environment
run: |
python -m venv venv
. venv/bin/activate
python --version
pip install "$(grep '^uv' < requirements_test.txt)"
uv pip install -r requirements.txt
- name: Get information
id: info
@@ -63,19 +82,30 @@ jobs:
) > .env_file
- name: Upload env_file
uses: actions/upload-artifact@v4.3.1
uses: actions/upload-artifact@v4.3.3
with:
name: env_file
path: ./.env_file
overwrite: true
- name: Upload requirements_diff
uses: actions/upload-artifact@v4.3.1
uses: actions/upload-artifact@v4.3.3
with:
name: requirements_diff
path: ./requirements_diff.txt
overwrite: true
- name: Generate requirements
run: |
. venv/bin/activate
python -m script.gen_requirements_all ci
- name: Upload requirements_all_wheels
uses: actions/upload-artifact@v4.3.3
with:
name: requirements_all_wheels
path: ./requirements_all_wheels_*.txt
core:
name: Build Core wheels ${{ matrix.abi }} for ${{ matrix.arch }} (musllinux_1_2)
if: github.repository_owner == 'home-assistant'
@@ -88,15 +118,15 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- name: Download env_file
uses: actions/download-artifact@v4.1.3
uses: actions/download-artifact@v4.1.7
with:
name: env_file
- name: Download requirements_diff
uses: actions/download-artifact@v4.1.3
uses: actions/download-artifact@v4.1.7
with:
name: requirements_diff
@@ -126,57 +156,30 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.6
- name: Download env_file
uses: actions/download-artifact@v4.1.3
uses: actions/download-artifact@v4.1.7
with:
name: env_file
- name: Download requirements_diff
uses: actions/download-artifact@v4.1.3
uses: actions/download-artifact@v4.1.7
with:
name: requirements_diff
- name: (Un)comment packages
run: |
requirement_files="requirements_all.txt requirements_diff.txt"
for requirement_file in ${requirement_files}; do
sed -i "s|# fritzconnection|fritzconnection|g" ${requirement_file}
sed -i "s|# pyuserinput|pyuserinput|g" ${requirement_file}
sed -i "s|# evdev|evdev|g" ${requirement_file}
sed -i "s|# pycups|pycups|g" ${requirement_file}
sed -i "s|# homekit|homekit|g" ${requirement_file}
sed -i "s|# decora-wifi|decora-wifi|g" ${requirement_file}
sed -i "s|# python-gammu|python-gammu|g" ${requirement_file}
# Some packages are not buildable on armhf anymore
if [ "${{ matrix.arch }}" = "armhf" ]; then
# Pandas has issues building on armhf, it is expected they
# will drop the platform in the near future (they consider it
# "flimsy" on 386). The following packages depend on pandas,
# so we comment them out.
sed -i "s|env-canada|# env-canada|g" ${requirement_file}
sed -i "s|noaa-coops|# noaa-coops|g" ${requirement_file}
sed -i "s|pyezviz|# pyezviz|g" ${requirement_file}
sed -i "s|pykrakenapi|# pykrakenapi|g" ${requirement_file}
fi
# Some speedups are only for 64-bit
if [ "${{ matrix.arch }}" = "amd64" ] || [ "${{ matrix.arch }}" = "aarch64" ]; then
sed -i "s|aiohttp-zlib-ng|aiohttp-zlib-ng\[isal\]|g" ${requirement_file}
fi
done
- name: Download requirements_all_wheels
uses: actions/download-artifact@v4.1.7
with:
name: requirements_all_wheels
- name: Split requirements all
run: |
# We split requirements all into two different files.
# We split requirements all into multiple files.
# This is to prevent the build from running out of memory when
# resolving packages on 32-bits systems (like armhf, armv7).
split -l $(expr $(expr $(cat requirements_all.txt | wc -l) + 1) / 3) requirements_all.txt requirements_all.txt
split -l $(expr $(expr $(cat requirements_all.txt | wc -l) + 1) / 3) requirements_all_wheels_${{ matrix.arch }}.txt requirements_all.txt
- name: Create requirements for cython<3
run: |
@@ -208,7 +211,7 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev"
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_old-cython.txt"
@@ -223,7 +226,7 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev;nasm"
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtaa"
@@ -237,7 +240,7 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev;nasm"
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtab"
@@ -251,7 +254,7 @@ jobs:
wheels-key: ${{ secrets.WHEELS_KEY }}
env-file: true
apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev;nasm"
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf
skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic
constraints: "homeassistant/package_constraints.txt"
requirements-diff: "requirements_diff.txt"
requirements: "requirements_all.txtac"
+4
View File
@@ -34,6 +34,7 @@ Icon
# GITHUB Proposed Python stuff:
*.py[cod]
__pycache__
# C extensions
*.so
@@ -132,3 +133,6 @@ tmp_cache
# python-language-server / Rope
.ropeproject
# Will be created from script/split_tests.py
pytest_buckets.txt
+11 -11
View File
@@ -1,21 +1,21 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.2.1
rev: v0.4.8
hooks:
- id: ruff
args:
- --fix
- id: ruff-format
files: ^((homeassistant|pylint|script|tests)/.+)?[^/]+\.py$
files: ^((homeassistant|pylint|script|tests)/.+)?[^/]+\.(py|pyi)$
- repo: https://github.com/codespell-project/codespell
rev: v2.2.2
rev: v2.3.0
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=astroid,checkin,currenty,hass,iif,incomfort,lookin,nam,NotIn,pres,ser,ue
- --skip="./.*,*.csv,*.json,*.ambr"
- --quiet-level=2
exclude_types: [csv, json]
exclude_types: [csv, json, html]
exclude: ^tests/fixtures/|homeassistant/generated/|tests/components/.*/snapshots/
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
@@ -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
@@ -61,15 +61,15 @@ repos:
name: mypy
entry: script/run-in-env.sh mypy
language: script
types: [python]
types_or: [python, pyi]
require_serial: true
files: ^(homeassistant|pylint)/.+\.py$
files: ^(homeassistant|pylint)/.+\.(py|pyi)$
- id: pylint
name: pylint
entry: script/run-in-env.sh pylint -j 0 --ignore-missing-annotations=y
language: script
types: [python]
files: ^homeassistant/.+\.py$
types_or: [python, pyi]
files: ^homeassistant/.+\.(py|pyi)$
- id: gen_requirements_all
name: gen_requirements_all
entry: script/run-in-env.sh python3 -m script.gen_requirements_all
@@ -83,7 +83,7 @@ repos:
pass_filenames: false
language: script
types: [text]
files: ^(homeassistant/.+/(icons|manifest|strings)\.json|homeassistant/brands/.*\.json|\.coveragerc|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py)$
files: ^(homeassistant/.+/(icons|manifest|strings)\.json|homeassistant/brands/.*\.json|\.coveragerc|homeassistant/.+/services\.yaml|script/hassfest/(?!metadata|mypy_config).+\.py|requirements_test.txt)$
- id: hassfest-metadata
name: hassfest-metadata
entry: script/run-in-env.sh python3 -m script.hassfest -p metadata
-1
View File
@@ -1,6 +1,5 @@
*.md
.strict-typing
azure-*.yml
homeassistant/components/*/translations/*.json
homeassistant/generated/*
tests/components/lidarr/fixtures/initialize.js
+11 -2
View File
@@ -48,6 +48,7 @@ homeassistant.components.adax.*
homeassistant.components.adguard.*
homeassistant.components.aftership.*
homeassistant.components.air_quality.*
homeassistant.components.airgradient.*
homeassistant.components.airly.*
homeassistant.components.airnow.*
homeassistant.components.airq.*
@@ -65,7 +66,7 @@ homeassistant.components.alexa.*
homeassistant.components.alpha_vantage.*
homeassistant.components.amazon_polly.*
homeassistant.components.amberelectric.*
homeassistant.components.ambiclimate.*
homeassistant.components.ambient_network.*
homeassistant.components.ambient_station.*
homeassistant.components.amcrest.*
homeassistant.components.ampio.*
@@ -83,6 +84,7 @@ homeassistant.components.api.*
homeassistant.components.apple_tv.*
homeassistant.components.apprise.*
homeassistant.components.aprs.*
homeassistant.components.apsystems.*
homeassistant.components.aqualogic.*
homeassistant.components.aquostv.*
homeassistant.components.aranet.*
@@ -166,10 +168,12 @@ homeassistant.components.electric_kiwi.*
homeassistant.components.elgato.*
homeassistant.components.elkm1.*
homeassistant.components.emulated_hue.*
homeassistant.components.energenie_power_sockets.*
homeassistant.components.energy.*
homeassistant.components.energyzero.*
homeassistant.components.enigma2.*
homeassistant.components.enphase_envoy.*
homeassistant.components.eq3btsmart.*
homeassistant.components.esphome.*
homeassistant.components.event.*
homeassistant.components.evil_genius_labs.*
@@ -228,9 +232,11 @@ 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.*
homeassistant.components.husqvarna_automower.*
homeassistant.components.hydrawise.*
homeassistant.components.hyperion.*
homeassistant.components.ibeacon.*
@@ -239,6 +245,7 @@ homeassistant.components.image.*
homeassistant.components.image_processing.*
homeassistant.components.image_upload.*
homeassistant.components.imap.*
homeassistant.components.imgw_pib.*
homeassistant.components.input_button.*
homeassistant.components.input_select.*
homeassistant.components.input_text.*
@@ -295,6 +302,7 @@ homeassistant.components.minecraft_server.*
homeassistant.components.mjpeg.*
homeassistant.components.modbus.*
homeassistant.components.modem_callerid.*
homeassistant.components.monzo.*
homeassistant.components.moon.*
homeassistant.components.mopeka.*
homeassistant.components.motionmount.*
@@ -333,7 +341,6 @@ homeassistant.components.persistent_notification.*
homeassistant.components.pi_hole.*
homeassistant.components.ping.*
homeassistant.components.plugwise.*
homeassistant.components.poolsense.*
homeassistant.components.powerwall.*
homeassistant.components.private_ble_device.*
homeassistant.components.prometheus.*
@@ -360,6 +367,7 @@ homeassistant.components.rest_command.*
homeassistant.components.rfxtrx.*
homeassistant.components.rhasspy.*
homeassistant.components.ridwell.*
homeassistant.components.ring.*
homeassistant.components.rituals_perfume_genie.*
homeassistant.components.roku.*
homeassistant.components.romy.*
@@ -420,6 +428,7 @@ homeassistant.components.tcp.*
homeassistant.components.technove.*
homeassistant.components.tedee.*
homeassistant.components.text.*
homeassistant.components.thethingsnetwork.*
homeassistant.components.threshold.*
homeassistant.components.tibber.*
homeassistant.components.tile.*
+2 -2
View File
@@ -103,7 +103,7 @@
{
"label": "Install all Requirements",
"type": "shell",
"command": "pip3 install -r requirements_all.txt",
"command": "uv pip install -r requirements_all.txt",
"group": {
"kind": "build",
"isDefault": true
@@ -117,7 +117,7 @@
{
"label": "Install all Test Requirements",
"type": "shell",
"command": "pip3 install -r requirements_test_all.txt",
"command": "uv pip install -r requirements_test_all.txt",
"group": {
"kind": "build",
"isDefault": true
-1
View File
@@ -1,5 +1,4 @@
ignore: |
azure-*.yml
tests/fixtures/core/config/yaml_errors/
rules:
braces:
+110 -51
View File
@@ -5,13 +5,30 @@
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
# Home Assistant Core
setup.cfg @home-assistant/core
.core_files.yaml @home-assistant/core
.git-blame-ignore-revs @home-assistant/core
.gitattributes @home-assistant/core
.gitignore @home-assistant/core
.hadolint.yaml @home-assistant/core
.pre-commit-config.yaml @home-assistant/core
.prettierignore @home-assistant/core
.yamllint @home-assistant/core
pyproject.toml @home-assistant/core
requirements_test.txt @home-assistant/core
/.devcontainer/ @home-assistant/core
/.github/ @home-assistant/core
/.vscode/ @home-assistant/core
/homeassistant/*.py @home-assistant/core
/homeassistant/auth/ @home-assistant/core
/homeassistant/backports/ @home-assistant/core
/homeassistant/helpers/ @home-assistant/core
/homeassistant/scripts/ @home-assistant/core
/homeassistant/util/ @home-assistant/core
/pylint/ @home-assistant/core
/script/ @home-assistant/core
# Home Assistant Supervisor
.dockerignore @home-assistant/supervisor
build.json @home-assistant/supervisor
/machine/ @home-assistant/supervisor
/rootfs/ @home-assistant/supervisor
@@ -39,6 +56,8 @@ build.json @home-assistant/supervisor
/tests/components/agent_dvr/ @ispysoftware
/homeassistant/components/air_quality/ @home-assistant/core
/tests/components/air_quality/ @home-assistant/core
/homeassistant/components/airgradient/ @airgradienthq @joostlek
/tests/components/airgradient/ @airgradienthq @joostlek
/homeassistant/components/airly/ @bieniu
/tests/components/airly/ @bieniu
/homeassistant/components/airnow/ @asymworks
@@ -61,18 +80,19 @@ build.json @home-assistant/supervisor
/tests/components/airzone/ @Noltari
/homeassistant/components/airzone_cloud/ @Noltari
/tests/components/airzone_cloud/ @Noltari
/homeassistant/components/aladdin_connect/ @mkmer
/tests/components/aladdin_connect/ @mkmer
/homeassistant/components/aladdin_connect/ @swcloudgenie
/tests/components/aladdin_connect/ @swcloudgenie
/homeassistant/components/alarm_control_panel/ @home-assistant/core
/tests/components/alarm_control_panel/ @home-assistant/core
/homeassistant/components/alert/ @home-assistant/core @frenck
/tests/components/alert/ @home-assistant/core @frenck
/homeassistant/components/alexa/ @home-assistant/cloud @ochlocracy @jbouwh
/tests/components/alexa/ @home-assistant/cloud @ochlocracy @jbouwh
/homeassistant/components/amazon_polly/ @jschlyter
/homeassistant/components/amberelectric/ @madpilot
/tests/components/amberelectric/ @madpilot
/homeassistant/components/ambiclimate/ @danielhiversen
/tests/components/ambiclimate/ @danielhiversen
/homeassistant/components/ambient_network/ @thomaskistler
/tests/components/ambient_network/ @thomaskistler
/homeassistant/components/ambient_station/ @bachya
/tests/components/ambient_station/ @bachya
/homeassistant/components/amcrest/ @flacjacket
@@ -108,11 +128,17 @@ build.json @home-assistant/supervisor
/tests/components/aprilaire/ @chamberlain2007
/homeassistant/components/aprs/ @PhilRW
/tests/components/aprs/ @PhilRW
/homeassistant/components/aranet/ @aschmitz @thecode
/tests/components/aranet/ @aschmitz @thecode
/homeassistant/components/apsystems/ @mawoka-myblock @SonnenladenGmbH
/tests/components/apsystems/ @mawoka-myblock @SonnenladenGmbH
/homeassistant/components/aquacell/ @Jordi1990
/tests/components/aquacell/ @Jordi1990
/homeassistant/components/aranet/ @aschmitz @thecode @anrijs
/tests/components/aranet/ @aschmitz @thecode @anrijs
/homeassistant/components/arcam_fmj/ @elupus
/tests/components/arcam_fmj/ @elupus
/homeassistant/components/arris_tg2492lg/ @vanbalken
/homeassistant/components/arve/ @ikalnyi
/tests/components/arve/ @ikalnyi
/homeassistant/components/aseko_pool_live/ @milanmeu
/tests/components/aseko_pool_live/ @milanmeu
/homeassistant/components/assist_pipeline/ @balloob @synesthesiam
@@ -140,6 +166,8 @@ build.json @home-assistant/supervisor
/tests/components/awair/ @ahayworth @danielsjf
/homeassistant/components/axis/ @Kane610
/tests/components/axis/ @Kane610
/homeassistant/components/azure_data_explorer/ @kaareseras
/tests/components/azure_data_explorer/ @kaareseras
/homeassistant/components/azure_devops/ @timmo001
/tests/components/azure_devops/ @timmo001
/homeassistant/components/azure_event_hub/ @eavanvalkenburg
@@ -159,8 +187,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/binary_sensor/ @home-assistant/core
/tests/components/binary_sensor/ @home-assistant/core
/homeassistant/components/bizkaibus/ @UgaitzEtxebarria
/homeassistant/components/blebox/ @bbx-a @riokuu @swistakm
/tests/components/blebox/ @bbx-a @riokuu @swistakm
/homeassistant/components/blebox/ @bbx-a @swistakm
/tests/components/blebox/ @bbx-a @swistakm
/homeassistant/components/blink/ @fronzbot @mkmer
/tests/components/blink/ @fronzbot @mkmer
/homeassistant/components/blue_current/ @Floris272 @gleeuwen
@@ -299,8 +327,8 @@ build.json @home-assistant/supervisor
/tests/components/discovergy/ @jpbede
/homeassistant/components/dlink/ @tkdrob
/tests/components/dlink/ @tkdrob
/homeassistant/components/dlna_dmr/ @StevenLooman @chishm
/tests/components/dlna_dmr/ @StevenLooman @chishm
/homeassistant/components/dlna_dmr/ @chishm
/tests/components/dlna_dmr/ @chishm
/homeassistant/components/dlna_dms/ @chishm
/tests/components/dlna_dms/ @chishm
/homeassistant/components/dnsip/ @gjohansson-ST
@@ -309,14 +337,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 @erwindouna
/tests/components/dsmr_reader/ @sorted-bits @glodenox @erwindouna
/homeassistant/components/duotecno/ @cereal2nd
/tests/components/duotecno/ @cereal2nd
/homeassistant/components/dwd_weather_warnings/ @runningman84 @stephan192 @andarotajo
@@ -352,18 +382,21 @@ build.json @home-assistant/supervisor
/homeassistant/components/elvia/ @ludeeus
/tests/components/elvia/ @ludeeus
/homeassistant/components/emby/ @mezz64
/homeassistant/components/emoncms/ @borpin
/homeassistant/components/emoncms/ @borpin @alexandrecuer
/homeassistant/components/emonitor/ @bdraco
/tests/components/emonitor/ @bdraco
/homeassistant/components/emulated_hue/ @bdraco @Tho85
/tests/components/emulated_hue/ @bdraco @Tho85
/homeassistant/components/emulated_kasa/ @kbickar
/tests/components/emulated_kasa/ @kbickar
/homeassistant/components/energenie_power_sockets/ @gnumpi
/tests/components/energenie_power_sockets/ @gnumpi
/homeassistant/components/energy/ @home-assistant/core
/tests/components/energy/ @home-assistant/core
/homeassistant/components/energyzero/ @klaasnicolaas
/tests/components/energyzero/ @klaasnicolaas
/homeassistant/components/enigma2/ @autinerd
/tests/components/enigma2/ @autinerd
/homeassistant/components/enocean/ @bdurrer
/tests/components/enocean/ @bdurrer
/homeassistant/components/enphase_envoy/ @bdraco @cgarwood @dgomes @joostlek @catsmanac
@@ -372,11 +405,14 @@ build.json @home-assistant/supervisor
/homeassistant/components/environment_canada/ @gwww @michaeldavie
/tests/components/environment_canada/ @gwww @michaeldavie
/homeassistant/components/ephember/ @ttroy50
/homeassistant/components/epic_games_store/ @hacf-fr @Quentame
/tests/components/epic_games_store/ @hacf-fr @Quentame
/homeassistant/components/epion/ @lhgravendeel
/tests/components/epion/ @lhgravendeel
/homeassistant/components/epson/ @pszafer
/tests/components/epson/ @pszafer
/homeassistant/components/epsonworkforce/ @ThaStealth
/homeassistant/components/eq3btsmart/ @eulemitkeule @dbuezas
/tests/components/eq3btsmart/ @eulemitkeule @dbuezas
/homeassistant/components/escea/ @lazdavila
/tests/components/escea/ @lazdavila
/homeassistant/components/esphome/ @OttoWinter @jesserockz @kbx81 @bdraco
@@ -433,8 +469,8 @@ build.json @home-assistant/supervisor
/homeassistant/components/forked_daapd/ @uvjustin
/tests/components/forked_daapd/ @uvjustin
/homeassistant/components/fortios/ @kimfrellsen
/homeassistant/components/foscam/ @skgsergio @krmarien
/tests/components/foscam/ @skgsergio @krmarien
/homeassistant/components/foscam/ @krmarien
/tests/components/foscam/ @krmarien
/homeassistant/components/freebox/ @hacf-fr @Quentame
/tests/components/freebox/ @hacf-fr @Quentame
/homeassistant/components/freedompro/ @stefano055415
@@ -453,6 +489,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
@@ -519,14 +557,14 @@ build.json @home-assistant/supervisor
/tests/components/group/ @home-assistant/core
/homeassistant/components/guardian/ @bachya
/tests/components/guardian/ @bachya
/homeassistant/components/habitica/ @ASMfreaK @leikoilja
/tests/components/habitica/ @ASMfreaK @leikoilja
/homeassistant/components/habitica/ @ASMfreaK @leikoilja @tr4nt0r
/tests/components/habitica/ @ASMfreaK @leikoilja @tr4nt0r
/homeassistant/components/hardkernel/ @home-assistant/core
/tests/components/hardkernel/ @home-assistant/core
/homeassistant/components/hardware/ @home-assistant/core
/tests/components/hardware/ @home-assistant/core
/homeassistant/components/harmony/ @ehendrix23 @bramkragten @bdraco @mkeesey @Aohzan
/tests/components/harmony/ @ehendrix23 @bramkragten @bdraco @mkeesey @Aohzan
/homeassistant/components/harmony/ @ehendrix23 @bdraco @mkeesey @Aohzan
/tests/components/harmony/ @ehendrix23 @bdraco @mkeesey @Aohzan
/homeassistant/components/hassio/ @home-assistant/supervisor
/tests/components/hassio/ @home-assistant/supervisor
/homeassistant/components/hdmi_cec/ @inytar
@@ -568,8 +606,10 @@ 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/homematicip_cloud/ @hahn-th
/tests/components/homematicip_cloud/ @hahn-th
/homeassistant/components/homewizard/ @DCSBL
/tests/components/homewizard/ @DCSBL
/homeassistant/components/honeywell/ @rdfurman @mkmer
@@ -617,9 +657,12 @@ build.json @home-assistant/supervisor
/tests/components/image_upload/ @home-assistant/core
/homeassistant/components/imap/ @jbouwh
/tests/components/imap/ @jbouwh
/homeassistant/components/imgw_pib/ @bieniu
/tests/components/imgw_pib/ @bieniu
/homeassistant/components/improv_ble/ @emontnemery
/tests/components/improv_ble/ @emontnemery
/homeassistant/components/incomfort/ @zxdavb
/homeassistant/components/incomfort/ @jbouwh
/tests/components/incomfort/ @jbouwh
/homeassistant/components/influxdb/ @mdegat01
/tests/components/influxdb/ @mdegat01
/homeassistant/components/inkbird/ @bdraco
@@ -657,10 +700,14 @@ build.json @home-assistant/supervisor
/homeassistant/components/iqvia/ @bachya
/tests/components/iqvia/ @bachya
/homeassistant/components/irish_rail_transport/ @ttroy50
/homeassistant/components/islamic_prayer_times/ @engrbm87
/tests/components/islamic_prayer_times/ @engrbm87
/homeassistant/components/isal/ @bdraco
/tests/components/isal/ @bdraco
/homeassistant/components/islamic_prayer_times/ @engrbm87 @cpfair
/tests/components/islamic_prayer_times/ @engrbm87 @cpfair
/homeassistant/components/iss/ @DurgNomis-drol
/tests/components/iss/ @DurgNomis-drol
/homeassistant/components/ista_ecotrend/ @tr4nt0r
/tests/components/ista_ecotrend/ @tr4nt0r
/homeassistant/components/isy994/ @bdraco @shbatm
/tests/components/isy994/ @bdraco @shbatm
/homeassistant/components/izone/ @Swamp-Ig
@@ -669,6 +716,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
@@ -725,7 +774,8 @@ build.json @home-assistant/supervisor
/tests/components/leaone/ @bdraco
/homeassistant/components/led_ble/ @bdraco
/tests/components/led_ble/ @bdraco
/homeassistant/components/lg_netcast/ @Drafteed
/homeassistant/components/lg_netcast/ @Drafteed @splinter98
/tests/components/lg_netcast/ @Drafteed @splinter98
/homeassistant/components/lidarr/ @tkdrob
/tests/components/lidarr/ @tkdrob
/homeassistant/components/light/ @home-assistant/core
@@ -829,18 +879,22 @@ build.json @home-assistant/supervisor
/tests/components/moehlenhoff_alpha2/ @j-a-n
/homeassistant/components/monoprice/ @etsinko @OnFreund
/tests/components/monoprice/ @etsinko @OnFreund
/homeassistant/components/monzo/ @jakemartin-icl
/tests/components/monzo/ @jakemartin-icl
/homeassistant/components/moon/ @fabaff @frenck
/tests/components/moon/ @fabaff @frenck
/homeassistant/components/mopeka/ @bdraco
/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
/tests/components/motionmount/ @RJPoelstra
/homeassistant/components/mqtt/ @emontnemery @jbouwh
/tests/components/mqtt/ @emontnemery @jbouwh
/homeassistant/components/mqtt/ @emontnemery @jbouwh @bdraco
/tests/components/mqtt/ @emontnemery @jbouwh @bdraco
/homeassistant/components/msteams/ @peroyvind
/homeassistant/components/mullvad/ @meichthys
/tests/components/mullvad/ @meichthys
@@ -858,8 +912,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 +979,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
@@ -991,8 +1047,8 @@ build.json @home-assistant/supervisor
/tests/components/persistent_notification/ @home-assistant/core
/homeassistant/components/philips_js/ @elupus
/tests/components/philips_js/ @elupus
/homeassistant/components/pi_hole/ @johnluetke @shenxn
/tests/components/pi_hole/ @johnluetke @shenxn
/homeassistant/components/pi_hole/ @shenxn
/tests/components/pi_hole/ @shenxn
/homeassistant/components/picnic/ @corneyl
/tests/components/picnic/ @corneyl
/homeassistant/components/pilight/ @trekky12
@@ -1046,8 +1102,8 @@ build.json @home-assistant/supervisor
/tests/components/pvpc_hourly_pricing/ @azogue
/homeassistant/components/qbittorrent/ @geoffreylagaisse @finder39
/tests/components/qbittorrent/ @geoffreylagaisse @finder39
/homeassistant/components/qingping/ @bdraco @skgsergio
/tests/components/qingping/ @bdraco @skgsergio
/homeassistant/components/qingping/ @bdraco
/tests/components/qingping/ @bdraco
/homeassistant/components/qld_bushfire/ @exxamalte
/tests/components/qld_bushfire/ @exxamalte
/homeassistant/components/qnap/ @disforw
@@ -1093,7 +1149,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
@@ -1147,11 +1202,13 @@ build.json @home-assistant/supervisor
/tests/components/ruuvitag_ble/ @akx
/homeassistant/components/rympro/ @OnFreund @elad-bar @maorcc
/tests/components/rympro/ @OnFreund @elad-bar @maorcc
/homeassistant/components/sabnzbd/ @shaiu
/tests/components/sabnzbd/ @shaiu
/homeassistant/components/sabnzbd/ @shaiu @jpbede
/tests/components/sabnzbd/ @shaiu @jpbede
/homeassistant/components/saj/ @fredericvl
/homeassistant/components/samsungtv/ @chemelli74 @epenet
/tests/components/samsungtv/ @chemelli74 @epenet
/homeassistant/components/sanix/ @tomaszsluszniak
/tests/components/sanix/ @tomaszsluszniak
/homeassistant/components/scene/ @home-assistant/core
/tests/components/scene/ @home-assistant/core
/homeassistant/components/schedule/ @home-assistant/core
@@ -1189,6 +1246,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
@@ -1228,20 +1287,21 @@ build.json @home-assistant/supervisor
/tests/components/smappee/ @bsmappee
/homeassistant/components/smart_meter_texas/ @grahamwetzler
/tests/components/smart_meter_texas/ @grahamwetzler
/homeassistant/components/smartthings/ @andrewsayre
/tests/components/smartthings/ @andrewsayre
/homeassistant/components/smarttub/ @mdz
/tests/components/smarttub/ @mdz
/homeassistant/components/smarty/ @z0mbieprocess
/homeassistant/components/smhi/ @gjohansson-ST
/tests/components/smhi/ @gjohansson-ST
/homeassistant/components/sms/ @ocalvo
/tests/components/sms/ @ocalvo
/homeassistant/components/snapcast/ @luar123
/tests/components/snapcast/ @luar123
/homeassistant/components/snmp/ @nmaggioni
/tests/components/snmp/ @nmaggioni
/homeassistant/components/snooz/ @AustinBrunkhorst
/tests/components/snooz/ @AustinBrunkhorst
/homeassistant/components/solaredge/ @frenck
/tests/components/solaredge/ @frenck
/homeassistant/components/solaredge/ @frenck @bdraco
/tests/components/solaredge/ @frenck @bdraco
/homeassistant/components/solaredge_local/ @drobtravels @scheric
/homeassistant/components/solarlog/ @Ernst79
/tests/components/solarlog/ @Ernst79
@@ -1253,8 +1313,8 @@ build.json @home-assistant/supervisor
/tests/components/sonarr/ @ctalkington
/homeassistant/components/songpal/ @rytilahti @shenxn
/tests/components/songpal/ @rytilahti @shenxn
/homeassistant/components/sonos/ @jjlawren
/tests/components/sonos/ @jjlawren
/homeassistant/components/sonos/ @jjlawren @peterager
/tests/components/sonos/ @jjlawren @peterager
/homeassistant/components/soundtouch/ @kroimon
/tests/components/soundtouch/ @kroimon
/homeassistant/components/spaceapi/ @fabaff
@@ -1313,8 +1373,8 @@ build.json @home-assistant/supervisor
/tests/components/switchbee/ @jafar-atili
/homeassistant/components/switchbot/ @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
/tests/components/switchbot/ @danielhiversen @RenierM26 @murtas @Eloston @dsypniewski
/homeassistant/components/switchbot_cloud/ @SeraphicRav
/tests/components/switchbot_cloud/ @SeraphicRav
/homeassistant/components/switchbot_cloud/ @SeraphicRav @laurence-presland
/tests/components/switchbot_cloud/ @SeraphicRav @laurence-presland
/homeassistant/components/switcher_kis/ @thecode
/tests/components/switcher_kis/ @thecode
/homeassistant/components/switchmate/ @danielhiversen @qiz-li
@@ -1367,7 +1427,8 @@ build.json @home-assistant/supervisor
/tests/components/thermobeacon/ @bdraco
/homeassistant/components/thermopro/ @bdraco @h3ss
/tests/components/thermopro/ @bdraco @h3ss
/homeassistant/components/thethingsnetwork/ @fabaff
/homeassistant/components/thethingsnetwork/ @angelnu
/tests/components/thethingsnetwork/ @angelnu
/homeassistant/components/thread/ @home-assistant/core
/tests/components/thread/ @home-assistant/core
/homeassistant/components/tibber/ @danielhiversen
@@ -1431,8 +1492,6 @@ build.json @home-assistant/supervisor
/tests/components/unifi/ @Kane610
/homeassistant/components/unifi_direct/ @tofuSCHNITZEL
/homeassistant/components/unifiled/ @florisvdk
/homeassistant/components/unifiprotect/ @AngellusMortis @bdraco
/tests/components/unifiprotect/ @AngellusMortis @bdraco
/homeassistant/components/upb/ @gwww
/tests/components/upb/ @gwww
/homeassistant/components/upc_connect/ @pvizeli @fabaff
@@ -1538,8 +1597,8 @@ build.json @home-assistant/supervisor
/tests/components/wiz/ @sbidy
/homeassistant/components/wled/ @frenck
/tests/components/wled/ @frenck
/homeassistant/components/wolflink/ @adamkrol93
/tests/components/wolflink/ @adamkrol93
/homeassistant/components/wolflink/ @adamkrol93 @mtielen
/tests/components/wolflink/ @adamkrol93 @mtielen
/homeassistant/components/workday/ @fabaff @gjohansson-ST
/tests/components/workday/ @fabaff @gjohansson-ST
/homeassistant/components/worldclock/ @fabaff
+1 -1
View File
@@ -5,7 +5,7 @@
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
identity and expression, level of experience, education, socioeconomic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
+14 -18
View File
@@ -6,47 +6,43 @@ 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.43
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
+16 -6
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"]
@@ -22,6 +22,7 @@ RUN \
libavcodec-dev \
libavdevice-dev \
libavutil-dev \
libgammu-dev \
libswscale-dev \
libswresample-dev \
libavfilter-dev \
@@ -34,21 +35,30 @@ RUN \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Install uv
RUN pip3 install uv
WORKDIR /usr/src
# Setup hass-release
RUN git clone --depth 1 https://github.com/home-assistant/hass-release \
&& pip3 install -e hass-release/
&& uv pip install --system -e hass-release/
WORKDIR /workspaces
USER vscode
ENV VIRTUAL_ENV="/home/vscode/.local/ha-venv"
RUN uv venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
WORKDIR /tmp
# Install Python dependencies from requirements
COPY requirements.txt ./
COPY homeassistant/package_constraints.txt homeassistant/package_constraints.txt
RUN pip3 install -r requirements.txt
RUN uv pip install -r requirements.txt
COPY requirements_test.txt requirements_test_pre_commit.txt ./
RUN pip3 install -r requirements_test.txt
RUN rm -rf requirements.txt requirements_test.txt requirements_test_pre_commit.txt homeassistant/
RUN uv pip install -r requirements_test.txt
WORKDIR /workspaces
# Set the default shell to bash instead of sh
ENV SHELL /bin/bash
+3 -1
View File
@@ -7,6 +7,8 @@ Check out `home-assistant.io <https://home-assistant.io>`__ for `a
demo <https://demo.home-assistant.io>`__, `installation instructions <https://home-assistant.io/getting-started/>`__,
`tutorials <https://home-assistant.io/getting-started/automation/>`__ and `documentation <https://home-assistant.io/docs/>`__.
This is a project of the `Open Home Foundation <https://www.openhomefoundation.org/>`__.
|screenshot-states|
Featured integrations
@@ -25,4 +27,4 @@ of a component, check the `Home Assistant help section <https://home-assistant.i
.. |screenshot-states| image:: https://raw.githubusercontent.com/home-assistant/core/dev/.github/assets/screenshot-states.png
:target: https://demo.home-assistant.io
.. |screenshot-integrations| image:: https://raw.githubusercontent.com/home-assistant/core/dev/.github/assets/screenshot-integrations.png
:target: https://home-assistant.io/integrations/
:target: https://home-assistant.io/integrations/
+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.06.0
armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2024.06.0
armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2024.06.0
amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2024.06.0
i386: ghcr.io/home-assistant/i386-homeassistant-base:2024.06.0
codenotary:
signer: notary@home-assistant.io
base_image: notary@home-assistant.io
+7 -5
View File
@@ -1,7 +1,9 @@
"""Start Home Assistant."""
from __future__ import annotations
import argparse
from contextlib import suppress
import faulthandler
import os
import sys
@@ -145,9 +147,7 @@ def get_arguments() -> argparse.Namespace:
help="Skips validation of operating system",
)
arguments = parser.parse_args()
return arguments
return parser.parse_args()
def check_threads() -> None:
@@ -209,8 +209,10 @@ def main() -> int:
exit_code = runner.run(runtime_conf)
faulthandler.disable()
if os.path.getsize(fault_file_name) == 0:
os.remove(fault_file_name)
# It's possible for the fault file to disappear, so suppress obvious errors
with suppress(FileNotFoundError):
if os.path.getsize(fault_file_name) == 0:
os.remove(fault_file_name)
check_threads()
+26 -13
View File
@@ -1,4 +1,5 @@
"""Provide an authentication layer for Home Assistant."""
from __future__ import annotations
import asyncio
@@ -19,22 +20,22 @@ 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"
EVENT_USER_UPDATED = "user_updated"
EVENT_USER_REMOVED = "user_removed"
_MfaModuleDict = dict[str, MultiFactorAuthModule]
_ProviderKey = tuple[str, str | None]
_ProviderDict = dict[_ProviderKey, AuthProvider]
type _MfaModuleDict = dict[str, MultiFactorAuthModule]
type _ProviderKey = tuple[str, str | None]
type _ProviderDict = dict[_ProviderKey, AuthProvider]
class InvalidAuthError(Exception):
@@ -52,7 +53,7 @@ async def auth_manager_from_config(
) -> AuthManager:
"""Initialize an auth manager from config.
CORE_CONFIG_SCHEMA will make sure do duplicated auth providers or
CORE_CONFIG_SCHEMA will make sure no duplicated auth providers or
mfa modules exist in configs.
"""
store = auth_store.AuthStore(hass)
@@ -84,13 +85,17 @@ async def auth_manager_from_config(
module_hash[module.id] = module
manager = AuthManager(hass, store, provider_hash, module_hash)
manager.async_setup()
await manager.async_setup()
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)
@@ -174,8 +181,7 @@ class AuthManager:
self._async_remove_expired_refresh_tokens, job_type=HassJobType.Callback
)
@callback
def async_setup(self) -> None:
async def async_setup(self) -> None:
"""Set up the auth manager."""
hass = self.hass
hass.async_add_shutdown_job(
@@ -510,6 +516,13 @@ class AuthManager:
for revoke_callback in callbacks:
revoke_callback()
@callback
def async_set_expiry(
self, refresh_token: models.RefreshToken, *, enable_expiry: bool
) -> None:
"""Enable or disable expiry of a refresh token."""
self._store.async_set_expiry(refresh_token, enable_expiry=enable_expiry)
@callback
def _async_remove_expired_refresh_tokens(self, _: datetime | None = None) -> None:
"""Remove expired refresh tokens."""
+57 -26
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.
@@ -50,6 +62,7 @@ class AuthStore:
self._store = Store[dict[str, list[dict[str, Any]]]](
hass, STORAGE_VERSION, STORAGE_KEY, private=True, atomic_writes=True
)
self._token_id_to_user_id: dict[str, str] = {}
async def async_get_groups(self) -> list[models.Group]:
"""Retrieve all users."""
@@ -123,7 +136,10 @@ class AuthStore:
async def async_remove_user(self, user: models.User) -> None:
"""Remove a user."""
self._users.pop(user.id)
user = self._users.pop(user.id)
for refresh_token_id in user.refresh_tokens:
del self._token_id_to_user_id[refresh_token_id]
user.refresh_tokens.clear()
self._async_schedule_save()
async def async_update_user(
@@ -206,7 +222,9 @@ class AuthStore:
kwargs["client_icon"] = client_icon
refresh_token = models.RefreshToken(**kwargs)
user.refresh_tokens[refresh_token.id] = refresh_token
token_id = refresh_token.id
user.refresh_tokens[token_id] = refresh_token
self._token_id_to_user_id[token_id] = user.id
self._async_schedule_save()
return refresh_token
@@ -214,19 +232,17 @@ class AuthStore:
@callback
def async_remove_refresh_token(self, refresh_token: models.RefreshToken) -> None:
"""Remove a refresh token."""
for user in self._users.values():
if user.refresh_tokens.pop(refresh_token.id, None):
self._async_schedule_save()
break
refresh_token_id = refresh_token.id
if user_id := self._token_id_to_user_id.get(refresh_token_id):
del self._users[user_id].refresh_tokens[refresh_token_id]
del self._token_id_to_user_id[refresh_token_id]
self._async_schedule_save()
@callback
def async_get_refresh_token(self, token_id: str) -> models.RefreshToken | None:
"""Get refresh token by id."""
for user in self._users.values():
refresh_token = user.refresh_tokens.get(token_id)
if refresh_token is not None:
return refresh_token
if user_id := self._token_id_to_user_id.get(token_id):
return self._users[user_id].refresh_tokens.get(token_id)
return None
@callback
@@ -265,6 +281,21 @@ class AuthStore:
)
self._async_schedule_save()
@callback
def async_set_expiry(
self, refresh_token: models.RefreshToken, *, enable_expiry: bool
) -> None:
"""Enable or disable expiry of a refresh token."""
if enable_expiry:
if refresh_token.expire_at is None:
refresh_token.expire_at = (
refresh_token.last_used_at or dt_util.utcnow()
).timestamp() + REFRESH_TOKEN_EXPIRATION
self._async_schedule_save()
else:
refresh_token.expire_at = None
self._async_schedule_save()
async def async_load(self) -> None: # noqa: C901
"""Load the users."""
if self._loaded:
@@ -278,8 +309,6 @@ class AuthStore:
perm_lookup = PermissionLookup(ent_reg, dev_reg)
self._perm_lookup = perm_lookup
now_ts = dt_util.utcnow().timestamp()
if data is None or not isinstance(data, dict):
self._set_defaults()
return
@@ -433,14 +462,6 @@ class AuthStore:
else:
last_used_at = None
if (
expire_at := rt_dict.get("expire_at")
) is None and token_type == models.TOKEN_TYPE_NORMAL:
if last_used_at:
expire_at = last_used_at.timestamp() + REFRESH_TOKEN_EXPIRATION
else:
expire_at = now_ts + REFRESH_TOKEN_EXPIRATION
token = models.RefreshToken(
id=rt_dict["id"],
user=users[rt_dict["user_id"]],
@@ -457,7 +478,7 @@ class AuthStore:
jwt_key=rt_dict["jwt_key"],
last_used_at=last_used_at,
last_used_ip=rt_dict.get("last_used_ip"),
expire_at=expire_at,
expire_at=rt_dict.get("expire_at"),
version=rt_dict.get("version"),
)
if "credential_id" in rt_dict:
@@ -466,13 +487,22 @@ class AuthStore:
self._groups = groups
self._users = users
self._async_schedule_save()
self._build_token_id_to_user_id()
self._async_schedule_save(INITIAL_LOAD_SAVE_DELAY)
@callback
def _async_schedule_save(self) -> None:
def _build_token_id_to_user_id(self) -> None:
"""Build a map of token id to user id."""
self._token_id_to_user_id = {
token_id: user_id
for user_id, user in self._users.items()
for token_id in user.refresh_tokens
}
@callback
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]]]:
@@ -562,6 +592,7 @@ class AuthStore:
read_only_group = _system_read_only_group()
groups[read_only_group.id] = read_only_group
self._groups = groups
self._build_token_id_to_user_id()
def _system_admin_group() -> models.Group:
+1
View File
@@ -1,4 +1,5 @@
"""Constants for the auth module."""
from datetime import timedelta
ACCESS_TOKEN_EXPIRATION = timedelta(minutes=30)
+2 -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
@@ -77,7 +78,7 @@ class _PyJWTWithVerify(PyJWT):
key: str,
algorithms: list[str],
issuer: str | None = None,
leeway: int | float | timedelta = 0,
leeway: float | timedelta = 0,
options: dict[str, Any] | None = None,
) -> dict[str, Any]:
"""Verify a JWT's signature and claims."""
+5 -3
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,7 +14,9 @@ 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
from homeassistant.util.hass_dict import HassKey
MULTI_FACTOR_AUTH_MODULES: Registry[str, type[MultiFactorAuthModule]] = Registry()
@@ -28,7 +30,7 @@ MULTI_FACTOR_AUTH_MODULE_SCHEMA = vol.Schema(
extra=vol.ALLOW_EXTRA,
)
DATA_REQS = "mfa_auth_module_reqs_processed"
DATA_REQS: HassKey[set[str]] = HassKey("mfa_auth_module_reqs_processed")
_LOGGER = logging.getLogger(__name__)
@@ -148,7 +150,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
+2 -1
View File
@@ -2,6 +2,7 @@
Sending HOTP through notify service
"""
from __future__ import annotations
import asyncio
@@ -87,7 +88,7 @@ class NotifySetting:
target: str | None = attr.ib(default=None)
_UsersDict = dict[str, NotifySetting]
type _UsersDict = dict[str, NotifySetting]
@MULTI_FACTOR_AUTH_MODULES.register("notify")
+1
View File
@@ -1,4 +1,5 @@
"""Time-based One Time Password auth module."""
from __future__ import annotations
import asyncio
+7 -12
View File
@@ -1,9 +1,11 @@
"""Auth models."""
from __future__ import annotations
from datetime import datetime, timedelta
from functools import cached_property
import secrets
from typing import TYPE_CHECKING, Any, NamedTuple
from typing import Any, NamedTuple
import uuid
import attr
@@ -11,21 +13,18 @@ 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
from .const import GROUP_ID_ADMIN
if TYPE_CHECKING:
from functools import cached_property
else:
from homeassistant.backports.functools import cached_property
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:
@@ -87,11 +86,7 @@ class User:
def invalidate_cache(self) -> None:
"""Invalidate permission and is_admin cache."""
for attr_to_invalidate in ("permissions", "is_admin"):
# try is must more efficient than suppress
try: # noqa: SIM105
delattr(self, attr_to_invalidate)
except AttributeError:
pass
self.__dict__.pop(attr_to_invalidate, None)
@attr.s(slots=True)
+2 -2
View File
@@ -1,8 +1,8 @@
"""Permissions for Home Assistant."""
from __future__ import annotations
from collections.abc import Callable
from typing import Any
import voluptuous as vol
@@ -63,7 +63,7 @@ class PolicyPermissions(AbstractPermissions):
"""Return a function that can test entity access."""
return compile_entities(self._policy.get(CAT_ENTITIES), self._perm_lookup)
def __eq__(self, other: Any) -> bool:
def __eq__(self, other: object) -> bool:
"""Equals check."""
return isinstance(other, PolicyPermissions) and other._policy == self._policy
+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
+4 -2
View File
@@ -1,7 +1,8 @@
"""Permission for events."""
from __future__ import annotations
from typing import Final
from typing import Any, Final
from homeassistant.const import (
EVENT_COMPONENT_LOADED,
@@ -20,10 +21,11 @@ from homeassistant.helpers.area_registry import EVENT_AREA_REGISTRY_UPDATED
from homeassistant.helpers.device_registry import EVENT_DEVICE_REGISTRY_UPDATED
from homeassistant.helpers.entity_registry import EVENT_ENTITY_REGISTRY_UPDATED
from homeassistant.helpers.issue_registry import EVENT_REPAIRS_ISSUE_REGISTRY_UPDATED
from homeassistant.util.event_type import EventType
# These are events that do not contain any sensitive data
# Except for state_changed, which is handled accordingly.
SUBSCRIBE_ALLOWLIST: Final[set[str]] = {
SUBSCRIBE_ALLOWLIST: Final[set[EventType[Any] | str]] = {
EVENT_AREA_REGISTRY_UPDATED,
EVENT_COMPONENT_LOADED,
EVENT_CORE_CONFIG_UPDATE,
+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}
+6 -5
View File
@@ -1,19 +1,20 @@
"""Common code for permissions."""
from collections.abc import Mapping
# MyPy doesn't support recursion yet. So writing it out as far as we need.
ValueType = (
type ValueType = (
# Example: entities.all = { read: true, control: true }
Mapping[str, bool] | bool | None
)
# Example: entities.domains = { light: … }
SubCategoryDict = Mapping[str, ValueType]
type SubCategoryDict = Mapping[str, ValueType]
SubCategoryType = SubCategoryDict | bool | None
type SubCategoryType = SubCategoryDict | bool | None
CategoryType = (
type CategoryType = (
# Example: entities.domains
Mapping[str, SubCategoryType]
# Example: entities.all
@@ -23,4 +24,4 @@ CategoryType = (
)
# Example: { entities: … }
PolicyType = Mapping[str, CategoryType]
type PolicyType = Mapping[str, CategoryType]
+3 -2
View File
@@ -1,4 +1,5 @@
"""Helpers to deal with permissions."""
from __future__ import annotations
from collections.abc import Callable
@@ -9,8 +10,8 @@ from .const import SUBCAT_ALL
from .models import PermissionLookup
from .types import CategoryType, SubCategoryDict, ValueType
LookupFunc = Callable[[PermissionLookup, SubCategoryDict, str], ValueType | None]
SubCatLookupType = dict[str, LookupFunc]
type LookupFunc = Callable[[PermissionLookup, SubCategoryDict, str], ValueType | None]
type SubCatLookupType = dict[str, LookupFunc]
def lookup_all(
+15 -10
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,17 +13,18 @@ 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 homeassistant.util.hass_dict import HassKey
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"
DATA_REQS: HassKey[set[str]] = HassKey("auth_prov_reqs_processed")
AUTH_PROVIDERS: Registry[str, type[AuthProvider]] = Registry()
@@ -157,7 +158,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 +184,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 +202,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 +212,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 +237,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 +287,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,17 +20,16 @@ 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
IPNetwork = IPv4Network | IPv6Network
type IPAddress = IPv4Address | IPv6Address
type IPNetwork = IPv4Network | IPv6Network
CONF_TRUSTED_NETWORKS = "trusted_networks"
CONF_TRUSTED_USERS = "trusted_users"
@@ -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(
+18 -4
View File
@@ -6,10 +6,24 @@ 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
from enum import StrEnum as _StrEnum
from functools import partial
__all__ = [
"StrEnum",
]
from homeassistant.helpers.deprecation import (
DeprecatedAlias,
all_with_deprecated_constants,
check_if_deprecated_constant,
dir_with_deprecated_constants,
)
# StrEnum deprecated as of 2024.5 use enum.StrEnum instead.
_DEPRECATED_StrEnum = DeprecatedAlias(_StrEnum, "enum.StrEnum", "2025.5")
__getattr__ = partial(check_if_deprecated_constant, module_globals=globals())
__dir__ = partial(
dir_with_deprecated_constants, module_globals_keys=[*globals().keys()]
)
__all__ = all_with_deprecated_constants(globals())
+23 -74
View File
@@ -1,81 +1,30 @@
"""Functools backports from standard lib."""
"""Functools backports from standard lib.
# This file contains parts of Python's module wrapper
# for the _functools C module
# to allow utilities written in Python to be added
# to the functools module.
# Written by Nick Coghlan <ncoghlan at gmail.com>,
# Raymond Hettinger <python at rcn.com>,
# and Łukasz Langa <lukasz at langa.pl>.
# Copyright © 2001-2023 Python Software Foundation; All Rights Reserved
This file contained the backport of the cached_property implementation of Python 3.12.
Since we have dropped support for Python 3.11, 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 collections.abc import Callable
from types import GenericAlias
from typing import Any, Generic, Self, TypeVar, overload
from functools import cached_property as _cached_property, partial
_T = TypeVar("_T")
from homeassistant.helpers.deprecation import (
DeprecatedAlias,
all_with_deprecated_constants,
check_if_deprecated_constant,
dir_with_deprecated_constants,
)
# cached_property deprecated as of 2024.5 use functools.cached_property instead.
_DEPRECATED_cached_property = DeprecatedAlias(
_cached_property, "functools.cached_property", "2025.5"
)
class cached_property(Generic[_T]):
"""Backport of Python 3.12's cached_property.
Includes https://github.com/python/cpython/pull/101890/files
"""
def __init__(self, func: Callable[[Any], _T]) -> None:
"""Initialize."""
self.func: Callable[[Any], _T] = func
self.attrname: str | None = None
self.__doc__ = func.__doc__
def __set_name__(self, owner: type[Any], name: str) -> None:
"""Set name."""
if self.attrname is None:
self.attrname = name
elif name != self.attrname:
raise TypeError(
"Cannot assign the same cached_property to two different names "
f"({self.attrname!r} and {name!r})."
)
@overload
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 | None, owner: type[Any] | None = None
) -> _T | Self:
"""Get."""
if instance is None:
return self
if self.attrname is None:
raise TypeError(
"Cannot use cached_property instance without calling __set_name__ on it."
)
try:
cache = instance.__dict__
# not all objects have __dict__ (e.g. class defines slots)
except AttributeError:
msg = (
f"No '__dict__' attribute on {type(instance).__name__!r} "
f"instance to cache {self.attrname!r} property."
)
raise TypeError(msg) from None
val = self.func(instance)
try:
cache[self.attrname] = val
except TypeError:
msg = (
f"The '__dict__' attribute on {type(instance).__name__!r} instance "
f"does not support item assignment for caching {self.attrname!r} property."
)
raise TypeError(msg) from None
return val
__class_getitem__ = classmethod(GenericAlias) # type: ignore[var-annotated]
__getattr__ = partial(check_if_deprecated_constant, module_globals=globals())
__dir__ = partial(
dir_with_deprecated_constants, module_globals_keys=[*globals().keys()]
)
__all__ = all_with_deprecated_constants(globals())
+87 -9
View File
@@ -1,20 +1,98 @@
"""Block blocking calls being done in asyncio."""
from http.client import HTTPConnection
import time
from .util.async_ import protect_loop
import builtins
from contextlib import suppress
import glob
from http.client import HTTPConnection
import importlib
import os
import sys
import threading
import time
from typing import Any
from .helpers.frame import get_current_frame
from .util.loop import protect_loop
_IN_TESTS = "unittest" in sys.modules
ALLOWED_FILE_PREFIXES = ("/proc",)
def _check_import_call_allowed(mapped_args: dict[str, Any]) -> bool:
# If the module is already imported, we can ignore it.
return bool((args := mapped_args.get("args")) and args[0] in sys.modules)
def _check_file_allowed(mapped_args: dict[str, Any]) -> bool:
# If the file is in /proc we can ignore it.
args = mapped_args["args"]
path = args[0] if type(args[0]) is str else str(args[0]) # noqa: E721
return path.startswith(ALLOWED_FILE_PREFIXES)
def _check_sleep_call_allowed(mapped_args: dict[str, Any]) -> bool:
#
# Avoid extracting the stack unless we need to since it
# will have to access the linecache which can do blocking
# I/O and we are trying to avoid blocking calls.
#
# frame[0] is us
# frame[1] is raise_for_blocking_call
# frame[2] is protected_loop_func
# frame[3] is the offender
with suppress(ValueError):
return get_current_frame(4).f_code.co_filename.endswith("pydevd.py")
return False
def enable() -> None:
"""Enable the detection of blocking calls in the event loop."""
loop_thread_id = threading.get_ident()
# Prevent urllib3 and requests doing I/O in event loop
HTTPConnection.putrequest = protect_loop( # type: ignore[method-assign]
HTTPConnection.putrequest
HTTPConnection.putrequest, loop_thread_id=loop_thread_id
)
# Prevent sleeping in event loop. Non-strict since 2022.02
time.sleep = protect_loop(time.sleep, strict=False)
# Prevent sleeping in event loop.
time.sleep = protect_loop(
time.sleep,
check_allowed=_check_sleep_call_allowed,
loop_thread_id=loop_thread_id,
)
# Currently disabled. pytz doing I/O when getting timezone.
# Prevent files being opened inside the event loop
# builtins.open = protect_loop(builtins.open)
glob.glob = protect_loop(
glob.glob, strict_core=False, strict=False, loop_thread_id=loop_thread_id
)
glob.iglob = protect_loop(
glob.iglob, strict_core=False, strict=False, loop_thread_id=loop_thread_id
)
os.walk = protect_loop(
os.walk, strict_core=False, strict=False, loop_thread_id=loop_thread_id
)
if not _IN_TESTS:
# Prevent files being opened inside the event loop
os.listdir = protect_loop( # type: ignore[assignment]
os.listdir, strict_core=False, strict=False, loop_thread_id=loop_thread_id
)
os.scandir = protect_loop( # type: ignore[assignment]
os.scandir, strict_core=False, strict=False, loop_thread_id=loop_thread_id
)
builtins.open = protect_loop( # type: ignore[assignment]
builtins.open,
strict_core=False,
strict=False,
check_allowed=_check_file_allowed,
loop_thread_id=loop_thread_id,
)
# unittest uses `importlib.import_module` to do mocking
# so we cannot protect it if we are running tests
importlib.import_module = protect_loop(
importlib.import_module,
strict_core=False,
strict=False,
check_allowed=_check_import_call_allowed,
loop_thread_id=loop_thread_id,
)
+265 -80
View File
@@ -1,12 +1,16 @@
"""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
import mimetypes
from operator import contains, itemgetter
import os
import platform
import sys
@@ -20,20 +24,46 @@ import cryptography.hazmat.backends.openssl.backend # noqa: F401
import voluptuous as vol
import yarl
from . import config as conf_util, config_entries, core, loader, requirements
from . import (
block_async_io,
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 (
BASE_PLATFORMS,
FORMAT_DATETIME,
KEY_DATA_LOGGING as DATA_LOGGING,
REQUIRED_NEXT_PYTHON_HA_RELEASE,
@@ -43,6 +73,7 @@ from .const import (
from .exceptions import HomeAssistantError
from .helpers import (
area_registry,
category_registry,
config_validation as cv,
device_registry,
entity,
@@ -55,29 +86,43 @@ from .helpers import (
template,
translation,
)
from .helpers.dispatcher import async_dispatcher_send
from .helpers.dispatcher import async_dispatcher_send_internal
from .helpers.storage import get_internal_store_manager
from .helpers.system_info import async_get_system_info
from .helpers.typing import ConfigType
from .setup import (
BASE_PLATFORMS,
DATA_SETUP_STARTED,
DATA_SETUP_TIME,
# _setup_started is marked as protected to make it clear
# that it is not part of the public API and should not be used
# by integrations. It is only used for internal tracking of
# which integrations are being set up.
_setup_started,
async_get_setup_timings,
async_notify_setup_error,
async_set_domains_to_be_loaded,
async_setup_component,
)
from .util.async_ import create_eager_task
from .util.hass_dict import HassKey
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.
DATA_REGISTRIES_LOADED = "bootstrap_registries_loaded"
DATA_REGISTRIES_LOADED: HassKey[None] = HassKey("bootstrap_registries_loaded")
LOG_SLOW_STARTUP_INTERVAL = 60
SLOW_STARTUP_CHECK_INTERVAL = 1
@@ -87,11 +132,17 @@ STAGE_2_TIMEOUT = 300
WRAP_UP_TIMEOUT = 300
COOLDOWN_TIME = 60
MAX_LOAD_CONCURRENTLY = 6
DEBUGGER_INTEGRATIONS = {"debugpy"}
# Core integrations are unconditionally loaded
CORE_INTEGRATIONS = {"homeassistant", "persistent_notification"}
LOGGING_INTEGRATIONS = {
# Integrations that are loaded right after the core is set up
LOGGING_AND_HTTP_DEPS_INTEGRATIONS = {
# isal is loaded right away before `http` to ensure if its
# enabled, that `isal` is up to date.
"isal",
# Set log levels
"logger",
# Error logging
@@ -128,6 +179,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 +220,36 @@ CRITICAL_INTEGRATIONS = {
"frontend",
}
SETUP_ORDER = {
# Load logging as soon as possible
"logging": LOGGING_INTEGRATIONS,
# Setup frontend
"frontend": FRONTEND_INTEGRATIONS,
# Setup recorder
"recorder": RECORDER_INTEGRATIONS,
SETUP_ORDER = (
# Load logging and http deps as soon as possible
("logging, http deps", LOGGING_AND_HTTP_DEPS_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.logger",
"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(
@@ -194,6 +266,9 @@ async def async_setup_hass(
runtime_config.log_no_color,
)
if runtime_config.debug or hass.loop.get_debug():
hass.config.debug = True
hass.config.safe_mode = runtime_config.safe_mode
hass.config.skip_pip = runtime_config.skip_pip
hass.config.skip_pip_packages = runtime_config.skip_pip_packages
@@ -209,6 +284,8 @@ async def async_setup_hass(
_LOGGER.info("Config directory: %s", runtime_config.config_dir)
loader.async_setup(hass)
block_async_io.enable()
config_dict = None
basic_setup_success = False
@@ -255,6 +332,7 @@ async def async_setup_hass(
hass = core.HomeAssistant(old_config.config_dir)
if old_logging:
hass.data[DATA_LOGGING] = old_logging
hass.config.debug = old_config.debug
hass.config.skip_pip = old_config.skip_pip
hass.config.skip_pip_packages = old_config.skip_pip_packages
hass.config.internal_url = old_config.internal_url
@@ -301,37 +379,41 @@ def open_hass_ui(hass: core.HomeAssistant) -> None:
)
def _init_blocking_io_modules_in_executor() -> None:
"""Initialize modules that do blocking I/O in executor."""
# Cache the result of platform.uname().processor in the executor.
# Multiple modules call this function at startup which
# executes a blocking subprocess call. This is a problem for the
# asyncio event loop. By priming the cache of uname we can
# avoid the blocking call in the event loop.
_ = platform.uname().processor
# Initialize the mimetypes module to avoid blocking calls
# to the filesystem to load the mime.types file.
mimetypes.init()
async def async_load_base_functionality(hass: core.HomeAssistant) -> None:
"""Load the registries and cache the result of platform.uname().processor."""
"""Load the registries and modules that will do blocking I/O."""
if DATA_REGISTRIES_LOADED in hass.data:
return
hass.data[DATA_REGISTRIES_LOADED] = None
def _cache_uname_processor() -> None:
"""Cache the result of platform.uname().processor in the executor.
Multiple modules call this function at startup which
executes a blocking subprocess call. This is a problem for the
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
# 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)),
create_eager_task(issue_registry.async_load(hass)),
create_eager_task(label_registry.async_load(hass)),
hass.async_add_executor_job(_cache_uname_processor),
hass.async_add_executor_job(_init_blocking_io_modules_in_executor),
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)),
)
@@ -346,6 +428,9 @@ async def async_from_config_dict(
start = monotonic()
hass.config_entries = config_entries.ConfigEntries(hass, config)
# Prime custom component cache early so we know if registry entries are tied
# to a custom integration
await loader.async_get_custom_components(hass)
await async_load_base_functionality(hass)
# Set up core.
@@ -354,7 +439,11 @@ async def async_from_config_dict(
if not all(
await asyncio.gather(
*(
create_eager_task(async_setup_component(hass, domain, config))
create_eager_task(
async_setup_component(hass, domain, config),
name=f"bootstrap setup {domain}",
loop=hass.loop,
)
for domain in CORE_INTEGRATIONS
)
)
@@ -510,7 +599,7 @@ def async_enable_logging(
err_log_path, when="midnight", backupCount=log_rotate_days
)
else:
err_handler = logging.handlers.RotatingFileHandler(
err_handler = _RotatingFileHandlerWithoutShouldRollOver(
err_log_path, backupCount=1
)
@@ -534,6 +623,19 @@ def async_enable_logging(
async_activate_log_queue_handler(hass)
class _RotatingFileHandlerWithoutShouldRollOver(logging.handlers.RotatingFileHandler):
"""RotatingFileHandler that does not check if it should roll over on every log."""
def shouldRollover(self, record: logging.LogRecord) -> bool:
"""Never roll over.
The shouldRollover check is expensive because it has to stat
the log file for every log record. Since we do not set maxBytes
the result of this check is always False.
"""
return False
async def async_mount_local_lib_path(config_dir: str) -> str:
"""Add local library to Python Path.
@@ -571,7 +673,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 +690,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: # noqa: SLF001
_LOGGER.debug("Waiting on tasks: %s", waiting_tasks)
self._async_dispatch(remaining_with_setup_started)
if (
self._setup_started
@@ -600,7 +708,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)
@@ -609,7 +717,7 @@ class _WatchPendingSetups:
def _async_dispatch(self, remaining_with_setup_started: dict[str, float]) -> None:
"""Dispatch the signal."""
if remaining_with_setup_started or not self._previous_was_empty:
async_dispatcher_send(
async_dispatcher_send_internal(
self._hass, SIGNAL_BOOTSTRAP_INTEGRATIONS, remaining_with_setup_started
)
self._previous_was_empty = not remaining_with_setup_started
@@ -640,13 +748,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(
domain: hass.async_create_task_internal(
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 +776,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 +831,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 +894,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 +911,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,11 +934,7 @@ async def _async_set_up_integrations(
hass: core.HomeAssistant, config: dict[str, Any]
) -> None:
"""Set up all the integrations."""
setup_started: dict[str, 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 = _WatchPendingSetups(hass, _setup_started(hass))
watcher.async_start()
domains_to_setup, integration_cache = await _async_resolve_domains_to_setup(
@@ -778,10 +945,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 +973,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 +999,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, # noqa: SLF001
)
# Add after dependencies when setting up stage 2 domains
async_set_domains_to_be_loaded(hass, stage_2_domains)
@@ -838,7 +1015,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, # noqa: SLF001
)
# Wrap up startup
_LOGGER.debug("Waiting for startup to wrap up")
@@ -846,11 +1026,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, # noqa: SLF001
)
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
@@ -1,5 +0,0 @@
{
"domain": "epson",
"name": "Epson",
"integrations": ["epson", "epsonworkforce"]
}
+1 -1
View File
@@ -1,5 +1,5 @@
{
"domain": "eq3",
"name": "eQ-3",
"integrations": ["maxcube"]
"integrations": ["maxcube", "eq3btsmart"]
}
+5
View File
@@ -0,0 +1,5 @@
{
"domain": "motionblinds",
"name": "Motionblinds",
"integrations": ["motion_blinds", "motionblinds_ble"]
}
+5
View File
@@ -0,0 +1,5 @@
{
"domain": "ruuvi",
"name": "Ruuvi",
"integrations": ["ruuvi_gateway", "ruuvitag_ble"]
}
+5
View File
@@ -0,0 +1,5 @@
{
"domain": "weatherflow",
"name": "WeatherFlow",
"integrations": ["weatherflow", "weatherflow_cloud"]
}
+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:
+13 -118
View File
@@ -1,12 +1,11 @@
"""Support for the Abode Security System."""
from __future__ import annotations
from dataclasses import dataclass, field
from functools import partial
from jaraco.abode.automation import Automation as AbodeAuto
from jaraco.abode.client import Client as Abode
from jaraco.abode.devices.base import Device as AbodeDev
from jaraco.abode.exceptions import (
AuthenticationException as AbodeAuthenticationException,
Exception as AbodeException,
@@ -28,11 +27,11 @@ from homeassistant.const import (
)
from homeassistant.core import CALLBACK_TYPE, Event, HomeAssistant, ServiceCall
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
from homeassistant.helpers import config_validation as cv, entity
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.dispatcher import dispatcher_send
from homeassistant.helpers.typing import ConfigType
from .const import ATTRIBUTION, CONF_POLLING, DOMAIN, LOGGER
from .const import CONF_POLLING, DOMAIN, LOGGER
SERVICE_SETTINGS = "change_setting"
SERVICE_CAPTURE_IMAGE = "capture_image"
@@ -82,6 +81,12 @@ class AbodeSystem:
logout_listener: CALLBACK_TYPE | None = None
async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
"""Set up the Abode component."""
setup_hass_services(hass)
return True
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Set up Abode integration from a config entry."""
username = entry.data[CONF_USERNAME]
@@ -110,7 +115,6 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
await setup_hass_events(hass)
await hass.async_add_executor_job(setup_hass_services, hass)
await hass.async_add_executor_job(setup_abode_events, hass)
return True
@@ -118,10 +122,6 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
"""Unload a config entry."""
hass.services.async_remove(DOMAIN, SERVICE_SETTINGS)
hass.services.async_remove(DOMAIN, SERVICE_CAPTURE_IMAGE)
hass.services.async_remove(DOMAIN, SERVICE_TRIGGER_AUTOMATION)
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
await hass.async_add_executor_job(hass.data[DOMAIN].abode.events.stop)
@@ -174,15 +174,15 @@ def setup_hass_services(hass: HomeAssistant) -> None:
signal = f"abode_trigger_automation_{entity_id}"
dispatcher_send(hass, signal)
hass.services.register(
hass.services.async_register(
DOMAIN, SERVICE_SETTINGS, change_setting, schema=CHANGE_SETTING_SCHEMA
)
hass.services.register(
hass.services.async_register(
DOMAIN, SERVICE_CAPTURE_IMAGE, capture_image, schema=CAPTURE_IMAGE_SCHEMA
)
hass.services.register(
hass.services.async_register(
DOMAIN, SERVICE_TRIGGER_AUTOMATION, trigger_automation, schema=AUTOMATION_SCHEMA
)
@@ -246,108 +246,3 @@ def setup_abode_events(hass: HomeAssistant) -> None:
hass.data[DOMAIN].abode.events.add_event_callback(
event, partial(event_callback, event)
)
class AbodeEntity(entity.Entity):
"""Representation of an Abode entity."""
_attr_attribution = ATTRIBUTION
_attr_has_entity_name = True
def __init__(self, data: AbodeSystem) -> None:
"""Initialize Abode entity."""
self._data = data
self._attr_should_poll = data.polling
async def async_added_to_hass(self) -> None:
"""Subscribe to Abode connection status updates."""
await self.hass.async_add_executor_job(
self._data.abode.events.add_connection_status_callback,
self.unique_id,
self._update_connection_status,
)
self.hass.data[DOMAIN].entity_ids.add(self.entity_id)
async def async_will_remove_from_hass(self) -> None:
"""Unsubscribe from Abode connection status updates."""
await self.hass.async_add_executor_job(
self._data.abode.events.remove_connection_status_callback, self.unique_id
)
def _update_connection_status(self) -> None:
"""Update the entity available property."""
self._attr_available = self._data.abode.events.connected
self.schedule_update_ha_state()
class AbodeDevice(AbodeEntity):
"""Representation of an Abode device."""
def __init__(self, data: AbodeSystem, device: AbodeDev) -> None:
"""Initialize Abode device."""
super().__init__(data)
self._device = device
self._attr_unique_id = device.uuid
async def async_added_to_hass(self) -> None:
"""Subscribe to device events."""
await super().async_added_to_hass()
await self.hass.async_add_executor_job(
self._data.abode.events.add_device_callback,
self._device.id,
self._update_callback,
)
async def async_will_remove_from_hass(self) -> None:
"""Unsubscribe from device events."""
await super().async_will_remove_from_hass()
await self.hass.async_add_executor_job(
self._data.abode.events.remove_all_device_callbacks, self._device.id
)
def update(self) -> None:
"""Update device state."""
self._device.refresh()
@property
def extra_state_attributes(self) -> dict[str, str]:
"""Return the state attributes."""
return {
"device_id": self._device.id,
"battery_low": self._device.battery_low,
"no_response": self._device.no_response,
"device_type": self._device.type,
}
@property
def device_info(self) -> DeviceInfo:
"""Return device registry information for this entity."""
return DeviceInfo(
identifiers={(DOMAIN, self._device.id)},
manufacturer="Abode",
model=self._device.type,
name=self._device.name,
)
def _update_callback(self, device: AbodeDev) -> None:
"""Update the device state."""
self.schedule_update_ha_state()
class AbodeAutomation(AbodeEntity):
"""Representation of an Abode automation."""
def __init__(self, data: AbodeSystem, automation: AbodeAuto) -> None:
"""Initialize for Abode automation."""
super().__init__(data)
self._automation = automation
self._attr_name = automation.name
self._attr_unique_id = automation.automation_id
self._attr_extra_state_attributes = {
"type": "CUE automation",
}
def update(self) -> None:
"""Update automation state."""
self._automation.refresh()
@@ -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,
@@ -14,8 +17,9 @@ from homeassistant.const import (
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AbodeDevice, AbodeSystem
from . import AbodeSystem
from .const import DOMAIN
from .entity import AbodeDevice
async def async_setup_entry(
@@ -28,7 +32,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 +41,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,
@@ -15,8 +22,9 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util.enum import try_parse_enum
from . import AbodeDevice, AbodeSystem
from . import AbodeSystem
from .const import DOMAIN
from .entity import AbodeDevice
async def async_setup_entry(
@@ -26,11 +34,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 +51,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:
+9 -6
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
@@ -17,8 +19,9 @@ from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import Throttle
from . import AbodeDevice, AbodeSystem
from . import AbodeSystem
from .const import DOMAIN, LOGGER
from .entity import AbodeDevice
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=90)
@@ -30,8 +33,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 +44,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__)
+7 -5
View File
@@ -1,16 +1,18 @@
"""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
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AbodeDevice, AbodeSystem
from . import AbodeSystem
from .const import DOMAIN
from .entity import AbodeDevice
async def async_setup_entry(
@@ -21,14 +23,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
+115
View File
@@ -0,0 +1,115 @@
"""Support for Abode Security System entities."""
from jaraco.abode.automation import Automation as AbodeAuto
from jaraco.abode.devices.base import Device as AbodeDev
from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.entity import Entity
from . import AbodeSystem
from .const import ATTRIBUTION, DOMAIN
class AbodeEntity(Entity):
"""Representation of an Abode entity."""
_attr_attribution = ATTRIBUTION
_attr_has_entity_name = True
def __init__(self, data: AbodeSystem) -> None:
"""Initialize Abode entity."""
self._data = data
self._attr_should_poll = data.polling
async def async_added_to_hass(self) -> None:
"""Subscribe to Abode connection status updates."""
await self.hass.async_add_executor_job(
self._data.abode.events.add_connection_status_callback,
self.unique_id,
self._update_connection_status,
)
self.hass.data[DOMAIN].entity_ids.add(self.entity_id)
async def async_will_remove_from_hass(self) -> None:
"""Unsubscribe from Abode connection status updates."""
await self.hass.async_add_executor_job(
self._data.abode.events.remove_connection_status_callback, self.unique_id
)
def _update_connection_status(self) -> None:
"""Update the entity available property."""
self._attr_available = self._data.abode.events.connected
self.schedule_update_ha_state()
class AbodeDevice(AbodeEntity):
"""Representation of an Abode device."""
def __init__(self, data: AbodeSystem, device: AbodeDev) -> None:
"""Initialize Abode device."""
super().__init__(data)
self._device = device
self._attr_unique_id = device.uuid
async def async_added_to_hass(self) -> None:
"""Subscribe to device events."""
await super().async_added_to_hass()
await self.hass.async_add_executor_job(
self._data.abode.events.add_device_callback,
self._device.id,
self._update_callback,
)
async def async_will_remove_from_hass(self) -> None:
"""Unsubscribe from device events."""
await super().async_will_remove_from_hass()
await self.hass.async_add_executor_job(
self._data.abode.events.remove_all_device_callbacks, self._device.id
)
def update(self) -> None:
"""Update device state."""
self._device.refresh()
@property
def extra_state_attributes(self) -> dict[str, str]:
"""Return the state attributes."""
return {
"device_id": self._device.id,
"battery_low": self._device.battery_low,
"no_response": self._device.no_response,
"device_type": self._device.type,
}
@property
def device_info(self) -> DeviceInfo:
"""Return device registry information for this entity."""
return DeviceInfo(
identifiers={(DOMAIN, self._device.id)},
manufacturer="Abode",
model=self._device.type,
name=self._device.name,
)
def _update_callback(self, device: AbodeDev) -> None:
"""Update the device state."""
self.schedule_update_ha_state()
class AbodeAutomation(AbodeEntity):
"""Representation of an Abode automation."""
def __init__(self, data: AbodeSystem, automation: AbodeAuto) -> None:
"""Initialize for Abode automation."""
super().__init__(data)
self._automation = automation
self._attr_name = automation.name
self._attr_unique_id = automation.automation_id
self._attr_extra_state_attributes = {
"type": "CUE automation",
}
def update(self) -> None:
"""Update automation state."""
self._automation.refresh()
@@ -5,5 +5,10 @@
"default": "mdi:robot"
}
}
},
"services": {
"capture_image": "mdi:camera",
"change_setting": "mdi:cog",
"trigger_automation": "mdi:play"
}
}
+7 -5
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,
@@ -22,8 +23,9 @@ from homeassistant.util.color import (
color_temperature_mired_to_kelvin,
)
from . import AbodeDevice, AbodeSystem
from . import AbodeSystem
from .const import DOMAIN
from .entity import AbodeDevice
async def async_setup_entry(
@@ -34,14 +36,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:
+7 -5
View File
@@ -1,16 +1,18 @@
"""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
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AbodeDevice, AbodeSystem
from . import AbodeSystem
from .const import DOMAIN
from .entity import AbodeDevice
async def async_setup_entry(
@@ -21,14 +23,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:
+27 -22
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,
@@ -18,31 +27,27 @@ from homeassistant.const import LIGHT_LUX, PERCENTAGE, UnitOfTemperature
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AbodeDevice, AbodeSystem
from . import AbodeSystem
from .const import DOMAIN
from .entity import AbodeDevice
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 +55,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 +78,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 +87,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."""
+7 -5
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
@@ -12,10 +13,11 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AbodeAutomation, AbodeDevice, AbodeSystem
from . import AbodeSystem
from .const import DOMAIN
from .entity import AbodeAutomation, AbodeDevice
DEVICE_TYPES = [CONST.TYPE_SWITCH, CONST.TYPE_VALVE]
DEVICE_TYPES = [TYPE_SWITCH, TYPE_VALVE]
async def async_setup_entry(
@@ -41,7 +43,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,14 +1,11 @@
"""The AccuWeather component."""
from __future__ import annotations
from asyncio import timeout
from datetime import timedelta
from dataclasses import dataclass
import logging
from typing import Any
from accuweather import AccuWeather, ApiError, InvalidApiKeyError, RequestsExceededError
from aiohttp import ClientSession
from aiohttp.client_exceptions import ClientConnectorError
from accuweather import AccuWeather
from homeassistant.components.sensor import DOMAIN as SENSOR_PLATFORM
from homeassistant.config_entries import ConfigEntry
@@ -16,43 +13,71 @@ from homeassistant.const import CONF_API_KEY, CONF_NAME, Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
from .const import ATTR_FORECAST, CONF_FORECAST, DOMAIN, MANUFACTURER
from .const import DOMAIN, UPDATE_INTERVAL_DAILY_FORECAST, UPDATE_INTERVAL_OBSERVATION
from .coordinator import (
AccuWeatherDailyForecastDataUpdateCoordinator,
AccuWeatherObservationDataUpdateCoordinator,
)
_LOGGER = logging.getLogger(__name__)
PLATFORMS = [Platform.SENSOR, Platform.WEATHER]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
@dataclass
class AccuWeatherData:
"""Data for AccuWeather integration."""
coordinator_observation: AccuWeatherObservationDataUpdateCoordinator
coordinator_daily_forecast: AccuWeatherDailyForecastDataUpdateCoordinator
type AccuWeatherConfigEntry = ConfigEntry[AccuWeatherData]
async def async_setup_entry(hass: HomeAssistant, entry: AccuWeatherConfigEntry) -> bool:
"""Set up AccuWeather as config entry."""
api_key: str = entry.data[CONF_API_KEY]
name: str = entry.data[CONF_NAME]
assert entry.unique_id is not None
location_key = entry.unique_id
forecast: bool = entry.options.get(CONF_FORECAST, False)
_LOGGER.debug("Using location_key: %s, get forecast: %s", location_key, forecast)
location_key = entry.unique_id
_LOGGER.debug("Using location_key: %s", location_key)
websession = async_get_clientsession(hass)
accuweather = AccuWeather(api_key, websession, location_key=location_key)
coordinator = AccuWeatherDataUpdateCoordinator(
hass, websession, api_key, location_key, forecast, name
coordinator_observation = AccuWeatherObservationDataUpdateCoordinator(
hass,
accuweather,
name,
"observation",
UPDATE_INTERVAL_OBSERVATION,
)
await coordinator.async_config_entry_first_refresh()
entry.async_on_unload(entry.add_update_listener(update_listener))
coordinator_daily_forecast = AccuWeatherDailyForecastDataUpdateCoordinator(
hass,
accuweather,
name,
"daily forecast",
UPDATE_INTERVAL_DAILY_FORECAST,
)
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator
await coordinator_observation.async_config_entry_first_refresh()
await coordinator_daily_forecast.async_config_entry_first_refresh()
entry.runtime_data = AccuWeatherData(
coordinator_observation=coordinator_observation,
coordinator_daily_forecast=coordinator_daily_forecast,
)
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
# Remove ozone sensors from registry if they exist
ent_reg = er.async_get(hass)
for day in range(0, 5):
unique_id = f"{coordinator.location_key}-ozone-{day}"
for day in range(5):
unique_id = f"{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)
ent_reg.async_remove(entity_id)
@@ -60,78 +85,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def async_unload_entry(
hass: HomeAssistant, entry: AccuWeatherConfigEntry
) -> bool:
"""Unload a config entry."""
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
if unload_ok:
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok
async def update_listener(hass: HomeAssistant, entry: ConfigEntry) -> None:
"""Update listener."""
await hass.config_entries.async_reload(entry.entry_id)
class AccuWeatherDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]): # pylint: disable=hass-enforce-coordinator-module
"""Class to manage fetching AccuWeather data API."""
def __init__(
self,
hass: HomeAssistant,
session: ClientSession,
api_key: str,
location_key: str,
forecast: bool,
name: str,
) -> None:
"""Initialize."""
self.location_key = location_key
self.forecast = forecast
self.accuweather = AccuWeather(api_key, session, location_key=location_key)
self.device_info = DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, location_key)},
manufacturer=MANUFACTURER,
name=name,
# You don't need to provide specific details for the URL,
# so passing in _ characters is fine if the location key
# is correct
configuration_url=(
"http://accuweather.com/en/"
f"_/_/{location_key}/"
f"weather-forecast/{location_key}/"
),
)
# Enabling the forecast download increases the number of requests per data
# update, we use 40 minutes for current condition only and 80 minutes for
# current condition and forecast as update interval to not exceed allowed number
# of requests. We have 50 requests allowed per day, so we use 36 and leave 14 as
# a reserve for restarting HA.
update_interval = timedelta(minutes=40)
if self.forecast:
update_interval *= 2
_LOGGER.debug("Data will be update every %s", update_interval)
super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=update_interval)
async def _async_update_data(self) -> dict[str, Any]:
"""Update data via library."""
forecast: list[dict[str, Any]] = []
try:
async with timeout(10):
current = await self.accuweather.async_get_current_conditions()
if self.forecast:
forecast = await self.accuweather.async_get_daily_forecast()
except (
ApiError,
ClientConnectorError,
InvalidApiKeyError,
RequestsExceededError,
) as error:
raise UpdateFailed(error) from error
_LOGGER.debug("Requests remaining: %d", self.accuweather.requests_remaining)
return {**current, **{ATTR_FORECAST: forecast}}
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
@@ -1,4 +1,5 @@
"""Adds config flow for AccuWeather."""
from __future__ import annotations
from asyncio import timeout
@@ -9,44 +10,23 @@ 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 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 (
SchemaFlowFormStep,
SchemaOptionsFlowHandler,
)
from .const import CONF_FORECAST, DOMAIN
OPTIONS_SCHEMA = vol.Schema(
{
vol.Optional(CONF_FORECAST, default=False): bool,
}
)
OPTIONS_FLOW = {
"init": SchemaFlowFormStep(OPTIONS_SCHEMA),
}
from .const import DOMAIN
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:
@@ -93,9 +73,3 @@ class AccuWeatherFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
),
errors=errors,
)
@staticmethod
@callback
def async_get_options_flow(config_entry: ConfigEntry) -> SchemaOptionsFlowHandler:
"""Options callback for AccuWeather."""
return SchemaOptionsFlowHandler(config_entry, OPTIONS_FLOW)
@@ -1,6 +1,8 @@
"""Constants for AccuWeather integration."""
from __future__ import annotations
from datetime import timedelta
from typing import Final
from homeassistant.components.weather import (
@@ -26,10 +28,8 @@ ATTR_CATEGORY: Final = "Category"
ATTR_DIRECTION: Final = "Direction"
ATTR_ENGLISH: Final = "English"
ATTR_LEVEL: Final = "level"
ATTR_FORECAST: Final = "forecast"
ATTR_SPEED: Final = "Speed"
ATTR_VALUE: Final = "Value"
CONF_FORECAST: Final = "forecast"
DOMAIN: Final = "accuweather"
MANUFACTURER: Final = "AccuWeather, Inc."
MAX_FORECAST_DAYS: Final = 4
@@ -55,3 +55,5 @@ CONDITION_MAP = {
for cond_ha, cond_codes in CONDITION_CLASSES.items()
for cond_code in cond_codes
}
UPDATE_INTERVAL_OBSERVATION = timedelta(minutes=40)
UPDATE_INTERVAL_DAILY_FORECAST = timedelta(hours=6)
@@ -0,0 +1,124 @@
"""The AccuWeather coordinator."""
from asyncio import timeout
from datetime import timedelta
import logging
from typing import TYPE_CHECKING, Any
from accuweather import AccuWeather, ApiError, InvalidApiKeyError, RequestsExceededError
from aiohttp.client_exceptions import ClientConnectorError
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.update_coordinator import (
DataUpdateCoordinator,
TimestampDataUpdateCoordinator,
UpdateFailed,
)
from .const import DOMAIN, MANUFACTURER
EXCEPTIONS = (ApiError, ClientConnectorError, InvalidApiKeyError, RequestsExceededError)
_LOGGER = logging.getLogger(__name__)
class AccuWeatherObservationDataUpdateCoordinator(
DataUpdateCoordinator[dict[str, Any]]
):
"""Class to manage fetching AccuWeather data API."""
def __init__(
self,
hass: HomeAssistant,
accuweather: AccuWeather,
name: str,
coordinator_type: str,
update_interval: timedelta,
) -> None:
"""Initialize."""
self.accuweather = accuweather
self.location_key = accuweather.location_key
if TYPE_CHECKING:
assert self.location_key is not None
self.device_info = _get_device_info(self.location_key, name)
super().__init__(
hass,
_LOGGER,
name=f"{name} ({coordinator_type})",
update_interval=update_interval,
)
async def _async_update_data(self) -> dict[str, Any]:
"""Update data via library."""
try:
async with timeout(10):
result = await self.accuweather.async_get_current_conditions()
except EXCEPTIONS as error:
raise UpdateFailed(error) from error
_LOGGER.debug("Requests remaining: %d", self.accuweather.requests_remaining)
return result
class AccuWeatherDailyForecastDataUpdateCoordinator(
TimestampDataUpdateCoordinator[list[dict[str, Any]]]
):
"""Class to manage fetching AccuWeather data API."""
def __init__(
self,
hass: HomeAssistant,
accuweather: AccuWeather,
name: str,
coordinator_type: str,
update_interval: timedelta,
) -> None:
"""Initialize."""
self.accuweather = accuweather
self.location_key = accuweather.location_key
if TYPE_CHECKING:
assert self.location_key is not None
self.device_info = _get_device_info(self.location_key, name)
super().__init__(
hass,
_LOGGER,
name=f"{name} ({coordinator_type})",
update_interval=update_interval,
)
async def _async_update_data(self) -> list[dict[str, Any]]:
"""Update data via library."""
try:
async with timeout(10):
result = await self.accuweather.async_get_daily_forecast()
except EXCEPTIONS as error:
raise UpdateFailed(error) from error
_LOGGER.debug("Requests remaining: %d", self.accuweather.requests_remaining)
return result
def _get_device_info(location_key: str, name: str) -> DeviceInfo:
"""Get device info."""
return DeviceInfo(
entry_type=DeviceEntryType.SERVICE,
identifiers={(DOMAIN, location_key)},
manufacturer=MANUFACTURER,
name=name,
# You don't need to provide specific details for the URL,
# so passing in _ characters is fine if the location key
# is correct
configuration_url=(
"http://accuweather.com/en/"
f"_/_/{location_key}/weather-forecast/{location_key}/"
),
)
@@ -1,30 +1,25 @@
"""Diagnostics support for AccuWeather."""
from __future__ import annotations
from typing import Any
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE
from homeassistant.core import HomeAssistant
from . import AccuWeatherDataUpdateCoordinator
from .const import DOMAIN
from . import AccuWeatherConfigEntry, AccuWeatherData
TO_REDACT = {CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE}
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: ConfigEntry
hass: HomeAssistant, config_entry: AccuWeatherConfigEntry
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][
config_entry.entry_id
]
accuweather_data: AccuWeatherData = config_entry.runtime_data
diagnostics_data = {
return {
"config_entry_data": async_redact_data(dict(config_entry.data), TO_REDACT),
"coordinator_data": coordinator.data,
"observation_data": accuweather_data.coordinator_observation.data,
}
return diagnostics_data
@@ -0,0 +1,51 @@
{
"entity": {
"sensor": {
"cloud_ceiling": {
"default": "mdi:weather-fog"
},
"cloud_cover": {
"default": "mdi:weather-cloudy"
},
"cloud_cover_day": {
"default": "mdi:weather-cloudy"
},
"cloud_cover_night": {
"default": "mdi:weather-cloudy"
},
"grass_pollen": {
"default": "mdi:grass"
},
"hours_of_sun": {
"default": "mdi:weather-partly-cloudy"
},
"mold_pollen": {
"default": "mdi:blur"
},
"pressure_tendency": {
"default": "mdi:gauge"
},
"ragweed_pollen": {
"default": "mdi:sprout"
},
"thunderstorm_probability_day": {
"default": "mdi:weather-lightning"
},
"thunderstorm_probability_night": {
"default": "mdi:weather-lightning"
},
"translation_key": {
"default": "mdi:air-filter"
},
"tree_pollen": {
"default": "mdi:tree-outline"
},
"uv_index": {
"default": "mdi:weather-sunny"
},
"uv_index_forecast": {
"default": "mdi:weather-sunny"
}
}
}
}
@@ -8,5 +8,6 @@
"iot_class": "cloud_polling",
"loggers": ["accuweather"],
"quality_scale": "platinum",
"requirements": ["accuweather==2.1.1"]
"requirements": ["accuweather==3.0.0"],
"single_config_entry": true
}
+247 -310
View File
@@ -1,4 +1,5 @@
"""Support for the AccuWeather service."""
from __future__ import annotations
from collections.abc import Callable
@@ -11,7 +12,6 @@ from homeassistant.components.sensor import (
SensorEntityDescription,
SensorStateClass,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
CONCENTRATION_PARTS_PER_CUBIC_METER,
PERCENTAGE,
@@ -27,312 +27,202 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import AccuWeatherDataUpdateCoordinator
from . import AccuWeatherConfigEntry
from .const import (
API_METRIC,
ATTR_CATEGORY,
ATTR_DIRECTION,
ATTR_ENGLISH,
ATTR_FORECAST,
ATTR_LEVEL,
ATTR_SPEED,
ATTR_VALUE,
ATTRIBUTION,
DOMAIN,
MAX_FORECAST_DAYS,
)
from .coordinator import (
AccuWeatherDailyForecastDataUpdateCoordinator,
AccuWeatherObservationDataUpdateCoordinator,
)
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
FORECAST_SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
*(
AccuWeatherSensorDescription(
key="AirQuality",
icon="mdi:air-filter",
value_fn=lambda data: cast(str, data[ATTR_CATEGORY]),
device_class=SensorDeviceClass.ENUM,
options=["good", "hazardous", "high", "low", "moderate", "unhealthy"],
translation_key=f"air_quality_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="AirQuality",
value_fn=lambda data: cast(str, data[ATTR_CATEGORY]),
device_class=SensorDeviceClass.ENUM,
options=["good", "hazardous", "high", "low", "moderate", "unhealthy"],
translation_key="air_quality",
),
*(
AccuWeatherSensorDescription(
key="CloudCoverDay",
icon="mdi:weather-cloudy",
entity_registry_enabled_default=False,
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key=f"cloud_cover_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="CloudCoverDay",
entity_registry_enabled_default=False,
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key="cloud_cover_day",
),
*(
AccuWeatherSensorDescription(
key="CloudCoverNight",
icon="mdi:weather-cloudy",
entity_registry_enabled_default=False,
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key=f"cloud_cover_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="CloudCoverNight",
entity_registry_enabled_default=False,
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key="cloud_cover_night",
),
*(
AccuWeatherSensorDescription(
key="Grass",
icon="mdi:grass",
entity_registry_enabled_default=False,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key=f"grass_pollen_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="Grass",
entity_registry_enabled_default=False,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key="grass_pollen",
),
*(
AccuWeatherSensorDescription(
key="HoursOfSun",
icon="mdi:weather-partly-cloudy",
native_unit_of_measurement=UnitOfTime.HOURS,
value_fn=lambda data: cast(float, data),
translation_key=f"hours_of_sun_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="HoursOfSun",
native_unit_of_measurement=UnitOfTime.HOURS,
value_fn=lambda data: cast(float, data),
translation_key="hours_of_sun",
),
*(
AccuWeatherSensorDescription(
key="LongPhraseDay",
value_fn=lambda data: cast(str, data),
translation_key=f"condition_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="LongPhraseDay",
value_fn=lambda data: cast(str, data),
translation_key="condition_day",
),
*(
AccuWeatherSensorDescription(
key="LongPhraseNight",
value_fn=lambda data: cast(str, data),
translation_key=f"condition_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="LongPhraseNight",
value_fn=lambda data: cast(str, data),
translation_key="condition_night",
),
*(
AccuWeatherSensorDescription(
key="Mold",
icon="mdi:blur",
entity_registry_enabled_default=False,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key=f"mold_pollen_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="Mold",
entity_registry_enabled_default=False,
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key="mold_pollen",
),
*(
AccuWeatherSensorDescription(
key="Ragweed",
icon="mdi:sprout",
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key=f"ragweed_pollen_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="Ragweed",
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key="ragweed_pollen",
),
*(
AccuWeatherSensorDescription(
key="RealFeelTemperatureMax",
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"realfeel_temperature_max_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="RealFeelTemperatureMax",
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key="realfeel_temperature_max",
),
*(
AccuWeatherSensorDescription(
key="RealFeelTemperatureMin",
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"realfeel_temperature_min_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="RealFeelTemperatureMin",
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key="realfeel_temperature_min",
),
*(
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMax",
device_class=SensorDeviceClass.TEMPERATURE,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"realfeel_temperature_shade_max_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMax",
device_class=SensorDeviceClass.TEMPERATURE,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key="realfeel_temperature_shade_max",
),
*(
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMin",
device_class=SensorDeviceClass.TEMPERATURE,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"realfeel_temperature_shade_min_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="RealFeelTemperatureShadeMin",
device_class=SensorDeviceClass.TEMPERATURE,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key="realfeel_temperature_shade_min",
),
*(
AccuWeatherSensorDescription(
key="SolarIrradianceDay",
icon="mdi:weather-sunny",
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfIrradiance.WATTS_PER_SQUARE_METER,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"solar_irradiance_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="SolarIrradianceDay",
device_class=SensorDeviceClass.IRRADIANCE,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfIrradiance.WATTS_PER_SQUARE_METER,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key="solar_irradiance_day",
),
*(
AccuWeatherSensorDescription(
key="SolarIrradianceNight",
icon="mdi:weather-sunny",
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfIrradiance.WATTS_PER_SQUARE_METER,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key=f"solar_irradiance_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="SolarIrradianceNight",
device_class=SensorDeviceClass.IRRADIANCE,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfIrradiance.WATTS_PER_SQUARE_METER,
value_fn=lambda data: cast(float, data[ATTR_VALUE]),
translation_key="solar_irradiance_night",
),
*(
AccuWeatherSensorDescription(
key="ThunderstormProbabilityDay",
icon="mdi:weather-lightning",
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key=f"thunderstorm_probability_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="ThunderstormProbabilityDay",
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key="thunderstorm_probability_day",
),
*(
AccuWeatherSensorDescription(
key="ThunderstormProbabilityNight",
icon="mdi:weather-lightning",
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key=f"thunderstorm_probability_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="ThunderstormProbabilityNight",
native_unit_of_measurement=PERCENTAGE,
value_fn=lambda data: cast(int, data),
translation_key="thunderstorm_probability_night",
),
*(
AccuWeatherSensorDescription(
key="Tree",
icon="mdi:tree-outline",
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key=f"tree_pollen_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="Tree",
native_unit_of_measurement=CONCENTRATION_PARTS_PER_CUBIC_METER,
entity_registry_enabled_default=False,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key="tree_pollen",
),
*(
AccuWeatherSensorDescription(
key="UVIndex",
icon="mdi:weather-sunny",
native_unit_of_measurement=UV_INDEX,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key=f"uv_index_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="UVIndex",
native_unit_of_measurement=UV_INDEX,
value_fn=lambda data: cast(int, data[ATTR_VALUE]),
attr_fn=lambda data: {ATTR_LEVEL: data[ATTR_CATEGORY]},
translation_key="uv_index_forecast",
),
*(
AccuWeatherSensorDescription(
key="WindGustDay",
device_class=SensorDeviceClass.WIND_SPEED,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key=f"wind_gust_speed_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="WindGustDay",
device_class=SensorDeviceClass.WIND_SPEED,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key="wind_gust_speed_day",
),
*(
AccuWeatherSensorDescription(
key="WindGustNight",
device_class=SensorDeviceClass.WIND_SPEED,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key=f"wind_gust_speed_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="WindGustNight",
device_class=SensorDeviceClass.WIND_SPEED,
entity_registry_enabled_default=False,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key="wind_gust_speed_night",
),
*(
AccuWeatherSensorDescription(
key="WindDay",
device_class=SensorDeviceClass.WIND_SPEED,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key=f"wind_speed_day_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="WindDay",
device_class=SensorDeviceClass.WIND_SPEED,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key="wind_speed_day",
),
*(
AccuWeatherSensorDescription(
key="WindNight",
device_class=SensorDeviceClass.WIND_SPEED,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key=f"wind_speed_night_{day}d",
day=day,
)
for day in range(MAX_FORECAST_DAYS + 1)
AccuWeatherSensorDescription(
key="WindNight",
device_class=SensorDeviceClass.WIND_SPEED,
native_unit_of_measurement=UnitOfSpeed.KILOMETERS_PER_HOUR,
value_fn=lambda data: cast(float, data[ATTR_SPEED][ATTR_VALUE]),
attr_fn=lambda data: {"direction": data[ATTR_DIRECTION][ATTR_ENGLISH]},
translation_key="wind_speed_night",
),
)
@@ -349,7 +239,6 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
AccuWeatherSensorDescription(
key="Ceiling",
device_class=SensorDeviceClass.DISTANCE,
icon="mdi:weather-fog",
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UnitOfLength.METERS,
value_fn=lambda data: cast(float, data[API_METRIC][ATTR_VALUE]),
@@ -358,7 +247,6 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
),
AccuWeatherSensorDescription(
key="CloudCover",
icon="mdi:weather-cloudy",
entity_registry_enabled_default=False,
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=PERCENTAGE,
@@ -403,14 +291,12 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
AccuWeatherSensorDescription(
key="PressureTendency",
device_class=SensorDeviceClass.ENUM,
icon="mdi:gauge",
options=["falling", "rising", "steady"],
value_fn=lambda data: cast(str, data["LocalizedText"]).lower(),
translation_key="pressure_tendency",
),
AccuWeatherSensorDescription(
key="UVIndex",
icon="mdi:weather-sunny",
state_class=SensorStateClass.MEASUREMENT,
native_unit_of_measurement=UV_INDEX,
value_fn=lambda data: cast(int, data),
@@ -456,29 +342,37 @@ SENSOR_TYPES: tuple[AccuWeatherSensorDescription, ...] = (
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: AccuWeatherConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Add AccuWeather entities from a config_entry."""
observation_coordinator: AccuWeatherObservationDataUpdateCoordinator = (
entry.runtime_data.coordinator_observation
)
forecast_daily_coordinator: AccuWeatherDailyForecastDataUpdateCoordinator = (
entry.runtime_data.coordinator_daily_forecast
)
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
sensors = [
AccuWeatherSensor(coordinator, description) for description in SENSOR_TYPES
sensors: list[AccuWeatherSensor | AccuWeatherForecastSensor] = [
AccuWeatherSensor(observation_coordinator, description)
for description in SENSOR_TYPES
]
if coordinator.forecast:
for description in FORECAST_SENSOR_TYPES:
# Some air quality/allergy sensors are only available for certain
# locations.
if description.key not in coordinator.data[ATTR_FORECAST][description.day]:
continue
sensors.append(AccuWeatherSensor(coordinator, description))
sensors.extend(
[
AccuWeatherForecastSensor(forecast_daily_coordinator, description, day)
for day in range(MAX_FORECAST_DAYS + 1)
for description in FORECAST_SENSOR_TYPES
if description.key in forecast_daily_coordinator.data[day]
]
)
async_add_entities(sensors)
class AccuWeatherSensor(
CoordinatorEntity[AccuWeatherDataUpdateCoordinator], SensorEntity
CoordinatorEntity[AccuWeatherObservationDataUpdateCoordinator], SensorEntity
):
"""Define an AccuWeather entity."""
@@ -488,22 +382,15 @@ class AccuWeatherSensor(
def __init__(
self,
coordinator: AccuWeatherDataUpdateCoordinator,
coordinator: AccuWeatherObservationDataUpdateCoordinator,
description: AccuWeatherSensorDescription,
) -> None:
"""Initialize."""
super().__init__(coordinator)
self.forecast_day = description.day
self.entity_description = description
self._sensor_data = _get_sensor_data(
coordinator.data, description.key, self.forecast_day
)
if self.forecast_day is not None:
self._attr_unique_id = f"{coordinator.location_key}-{description.key}-{self.forecast_day}".lower()
else:
self._attr_unique_id = (
f"{coordinator.location_key}-{description.key}".lower()
)
self._sensor_data = self._get_sensor_data(coordinator.data, description.key)
self._attr_unique_id = f"{coordinator.location_key}-{description.key}".lower()
self._attr_device_info = coordinator.device_info
@property
@@ -514,30 +401,80 @@ class AccuWeatherSensor(
@property
def extra_state_attributes(self) -> dict[str, Any]:
"""Return the state attributes."""
if self.forecast_day is not None:
return self.entity_description.attr_fn(self._sensor_data)
return self.entity_description.attr_fn(self.coordinator.data)
@callback
def _handle_coordinator_update(self) -> None:
"""Handle data update."""
self._sensor_data = _get_sensor_data(
self._sensor_data = self._get_sensor_data(
self.coordinator.data, self.entity_description.key
)
self.async_write_ha_state()
@staticmethod
def _get_sensor_data(
sensors: dict[str, Any],
kind: str,
) -> Any:
"""Get sensor data."""
if kind == "Precipitation":
return sensors["PrecipitationSummary"]["PastHour"]
return sensors[kind]
class AccuWeatherForecastSensor(
CoordinatorEntity[AccuWeatherDailyForecastDataUpdateCoordinator], SensorEntity
):
"""Define an AccuWeather entity."""
_attr_attribution = ATTRIBUTION
_attr_has_entity_name = True
entity_description: AccuWeatherSensorDescription
def __init__(
self,
coordinator: AccuWeatherDailyForecastDataUpdateCoordinator,
description: AccuWeatherSensorDescription,
forecast_day: int,
) -> None:
"""Initialize."""
super().__init__(coordinator)
self.entity_description = description
self._sensor_data = self._get_sensor_data(
coordinator.data, description.key, forecast_day
)
self._attr_unique_id = (
f"{coordinator.location_key}-{description.key}-{forecast_day}".lower()
)
self._attr_device_info = coordinator.device_info
self._attr_translation_placeholders = {"forecast_day": str(forecast_day)}
self.forecast_day = forecast_day
@property
def native_value(self) -> str | int | float | None:
"""Return the state."""
return self.entity_description.value_fn(self._sensor_data)
@property
def extra_state_attributes(self) -> dict[str, Any]:
"""Return the state attributes."""
return self.entity_description.attr_fn(self._sensor_data)
@callback
def _handle_coordinator_update(self) -> None:
"""Handle data update."""
self._sensor_data = self._get_sensor_data(
self.coordinator.data, self.entity_description.key, self.forecast_day
)
self.async_write_ha_state()
def _get_sensor_data(
sensors: dict[str, Any],
kind: str,
forecast_day: int | None = None,
) -> Any:
"""Get sensor data."""
if forecast_day is not None:
return sensors[ATTR_FORECAST][forecast_day][kind]
if kind == "Precipitation":
return sensors["PrecipitationSummary"]["PastHour"]
return sensors[kind]
@staticmethod
def _get_sensor_data(
sensors: list[dict[str, Any]],
kind: str,
forecast_day: int,
) -> Any:
"""Get sensor data."""
return sensors[forecast_day][kind]
+89 -670
View File
@@ -11,21 +11,18 @@
}
},
"create_entry": {
"default": "Some sensors are not enabled by default. You can enable them in the entity registry after the integration configuration.\nWeather forecast is not enabled by default. You can enable it in the integration options."
"default": "Some sensors are not enabled by default. You can enable them in the entity registry after the integration configuration."
},
"error": {
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
"invalid_api_key": "[%key:common::config_flow::error::invalid_api_key%]",
"requests_exceeded": "The allowed number of requests to Accuweather API has been exceeded. You have to wait or change API Key."
},
"abort": {
"single_instance_allowed": "[%key:common::config_flow::abort::single_instance_allowed%]"
}
},
"entity": {
"sensor": {
"air_quality_0d": {
"name": "Air quality today",
"air_quality": {
"name": "Air quality day {forecast_day}",
"state": {
"good": "Good",
"hazardous": "Hazardous",
@@ -35,50 +32,6 @@
"unhealthy": "Unhealthy"
}
},
"air_quality_1d": {
"name": "Air quality day 1",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
},
"air_quality_2d": {
"name": "Air quality day 2",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
},
"air_quality_3d": {
"name": "Air quality day 3",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
},
"air_quality_4d": {
"name": "Air quality day 4",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
},
"apparent_temperature": {
"name": "Apparent temperature"
},
@@ -88,240 +41,52 @@
"cloud_cover": {
"name": "Cloud cover"
},
"cloud_cover_day_0d": {
"name": "Cloud cover today"
"cloud_cover_day": {
"name": "Cloud cover day {forecast_day}"
},
"cloud_cover_day_1d": {
"name": "Cloud cover day 1"
"cloud_cover_night": {
"name": "Cloud cover night {forecast_day}"
},
"cloud_cover_day_2d": {
"name": "Cloud cover day 2"
"condition_day": {
"name": "Condition day {forecast_day}"
},
"cloud_cover_day_3d": {
"name": "Cloud cover day 3"
},
"cloud_cover_day_4d": {
"name": "Cloud cover day 4"
},
"cloud_cover_night_0d": {
"name": "Cloud cover tonight"
},
"cloud_cover_night_1d": {
"name": "Cloud cover night 1"
},
"cloud_cover_night_2d": {
"name": "Cloud cover night 2"
},
"cloud_cover_night_3d": {
"name": "Cloud cover night 3"
},
"cloud_cover_night_4d": {
"name": "Cloud cover night 4"
},
"condition_day_0d": {
"name": "Condition today"
},
"condition_day_1d": {
"name": "Condition day 1"
},
"condition_day_2d": {
"name": "Condition day 2"
},
"condition_day_3d": {
"name": "Condition day 3"
},
"condition_day_4d": {
"name": "Condition day 4"
},
"condition_night_0d": {
"name": "Condition tonight"
},
"condition_night_1d": {
"name": "Condition night 1"
},
"condition_night_2d": {
"name": "Condition night 2"
},
"condition_night_3d": {
"name": "Condition night 3"
},
"condition_night_4d": {
"name": "Condition night 4"
"condition_night": {
"name": "Condition night {forecast_day}"
},
"dew_point": {
"name": "Dew point"
},
"grass_pollen_0d": {
"name": "Grass pollen today",
"grass_pollen": {
"name": "Grass pollen day {forecast_day}",
"state_attributes": {
"level": {
"name": "Level",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
}
}
}
},
"grass_pollen_1d": {
"name": "Grass pollen day 1",
"hours_of_sun": {
"name": "Hours of sun day {forecast_day}"
},
"mold_pollen": {
"name": "Mold pollen day {forecast_day}",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"name": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"grass_pollen_2d": {
"name": "Grass pollen day 2",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"grass_pollen_3d": {
"name": "Grass pollen day 3",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"grass_pollen_4d": {
"name": "Grass pollen day 4",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"hours_of_sun_0d": {
"name": "Hours of sun today"
},
"hours_of_sun_1d": {
"name": "Hours of sun day 1"
},
"hours_of_sun_2d": {
"name": "Hours of sun day 2"
},
"hours_of_sun_3d": {
"name": "Hours of sun day 3"
},
"hours_of_sun_4d": {
"name": "Hours of sun day 4"
},
"mold_pollen_0d": {
"name": "Mold pollen today",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"mold_pollen_1d": {
"name": "Mold pollen day 1",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"mold_pollen_2d": {
"name": "Mold pollen day 2",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"mold_pollen_3d": {
"name": "Mold pollen day 3",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"mold_pollen_4d": {
"name": "Mold pollen day 4",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
}
}
}
@@ -337,82 +102,18 @@
"falling": "Falling"
}
},
"ragweed_pollen_0d": {
"name": "Ragweed pollen today",
"ragweed_pollen": {
"name": "Ragweed pollen day {forecast_day}",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"name": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"ragweed_pollen_1d": {
"name": "Ragweed pollen day 1",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"ragweed_pollen_2d": {
"name": "Ragweed pollen day 2",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"ragweed_pollen_3d": {
"name": "Ragweed pollen day 3",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"ragweed_pollen_4d": {
"name": "Ragweed pollen day 4",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
}
}
}
@@ -420,205 +121,45 @@
"realfeel_temperature": {
"name": "RealFeel temperature"
},
"realfeel_temperature_max_0d": {
"name": "RealFeel temperature max today"
"realfeel_temperature_max": {
"name": "RealFeel temperature max day {forecast_day}"
},
"realfeel_temperature_max_1d": {
"name": "RealFeel temperature max day 1"
},
"realfeel_temperature_max_2d": {
"name": "RealFeel temperature max day 2"
},
"realfeel_temperature_max_3d": {
"name": "RealFeel temperature max day 3"
},
"realfeel_temperature_max_4d": {
"name": "RealFeel temperature max day 4"
},
"realfeel_temperature_min_0d": {
"name": "RealFeel temperature min today"
},
"realfeel_temperature_min_1d": {
"name": "RealFeel temperature min day 1"
},
"realfeel_temperature_min_2d": {
"name": "RealFeel temperature min day 2"
},
"realfeel_temperature_min_3d": {
"name": "RealFeel temperature min day 3"
},
"realfeel_temperature_min_4d": {
"name": "RealFeel temperature min day 4"
"realfeel_temperature_min": {
"name": "RealFeel temperature min day {forecast_day}"
},
"realfeel_temperature_shade": {
"name": "RealFeel temperature shade"
},
"realfeel_temperature_shade_max_0d": {
"name": "RealFeel temperature shade max today"
"realfeel_temperature_shade_max": {
"name": "RealFeel temperature shade max day {forecast_day}"
},
"realfeel_temperature_shade_max_1d": {
"name": "RealFeel temperature shade max day 1"
"realfeel_temperature_shade_min": {
"name": "RealFeel temperature shade min day {forecast_day}"
},
"realfeel_temperature_shade_max_2d": {
"name": "RealFeel temperature shade max day 2"
"solar_irradiance_day": {
"name": "Solar irradiance day {forecast_day}"
},
"realfeel_temperature_shade_max_3d": {
"name": "RealFeel temperature shade max day 3"
"solar_irradiance_night": {
"name": "Solar irradiance night {forecast_day}"
},
"realfeel_temperature_shade_max_4d": {
"name": "RealFeel temperature shade max day 4"
"thunderstorm_probability_day": {
"name": "Thunderstorm probability day {forecast_day}"
},
"realfeel_temperature_shade_min_0d": {
"name": "RealFeel temperature shade min today"
"thunderstorm_probability_night": {
"name": "Thunderstorm probability night {forecast_day}"
},
"realfeel_temperature_shade_min_1d": {
"name": "RealFeel temperature shade min day 1"
},
"realfeel_temperature_shade_min_2d": {
"name": "RealFeel temperature shade min day 2"
},
"realfeel_temperature_shade_min_3d": {
"name": "RealFeel temperature shade min day 3"
},
"realfeel_temperature_shade_min_4d": {
"name": "RealFeel temperature shade min day 4"
},
"solar_irradiance_day_0d": {
"name": "Solar irradiance today"
},
"solar_irradiance_day_1d": {
"name": "Solar irradiance day 1"
},
"solar_irradiance_day_2d": {
"name": "Solar irradiance day 2"
},
"solar_irradiance_day_3d": {
"name": "Solar irradiance day 3"
},
"solar_irradiance_day_4d": {
"name": "Solar irradiance day 4"
},
"solar_irradiance_night_0d": {
"name": "Solar irradiance tonight"
},
"solar_irradiance_night_1d": {
"name": "Solar irradiance night 1"
},
"solar_irradiance_night_2d": {
"name": "Solar irradiance night 2"
},
"solar_irradiance_night_3d": {
"name": "Solar irradiance night 3"
},
"solar_irradiance_night_4d": {
"name": "Solar irradiance night 4"
},
"thunderstorm_probability_day_0d": {
"name": "Thunderstorm probability today"
},
"thunderstorm_probability_day_1d": {
"name": "Thunderstorm probability day 1"
},
"thunderstorm_probability_day_2d": {
"name": "Thunderstorm probability day 2"
},
"thunderstorm_probability_day_3d": {
"name": "Thunderstorm probability day 3"
},
"thunderstorm_probability_day_4d": {
"name": "Thunderstorm probability day 4"
},
"thunderstorm_probability_night_0d": {
"name": "Thunderstorm probability tonight"
},
"thunderstorm_probability_night_1d": {
"name": "Thunderstorm probability night 1"
},
"thunderstorm_probability_night_2d": {
"name": "Thunderstorm probability night 2"
},
"thunderstorm_probability_night_3d": {
"name": "Thunderstorm probability night 3"
},
"thunderstorm_probability_night_4d": {
"name": "Thunderstorm probability night 4"
},
"tree_pollen_0d": {
"name": "Tree pollen today",
"tree_pollen": {
"name": "Tree pollen day {forecast_day}",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"name": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"tree_pollen_1d": {
"name": "Tree pollen day 1",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"tree_pollen_2d": {
"name": "Tree pollen day 2",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"tree_pollen_3d": {
"name": "Tree pollen day 3",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"tree_pollen_4d": {
"name": "Tree pollen day 4",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
}
}
}
@@ -627,94 +168,30 @@
"name": "UV index",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"name": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
}
}
}
},
"uv_index_0d": {
"name": "UV index today",
"uv_index_forecast": {
"name": "UV index day {forecast_day}",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"name": "[%key:component::accuweather::entity::sensor::grass_pollen::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"uv_index_1d": {
"name": "UV index day 1",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"uv_index_2d": {
"name": "UV index day 2",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"uv_index_3d": {
"name": "UV index day 3",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
}
}
}
},
"uv_index_4d": {
"name": "UV index day 4",
"state_attributes": {
"level": {
"name": "[%key:component::accuweather::entity::sensor::grass_pollen_0d::state_attributes::level::name%]",
"state": {
"good": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality_0d::state::unhealthy%]"
"good": "[%key:component::accuweather::entity::sensor::air_quality::state::good%]",
"hazardous": "[%key:component::accuweather::entity::sensor::air_quality::state::hazardous%]",
"high": "[%key:component::accuweather::entity::sensor::air_quality::state::high%]",
"low": "[%key:component::accuweather::entity::sensor::air_quality::state::low%]",
"moderate": "[%key:component::accuweather::entity::sensor::air_quality::state::moderate%]",
"unhealthy": "[%key:component::accuweather::entity::sensor::air_quality::state::unhealthy%]"
}
}
}
@@ -731,75 +208,17 @@
"wind_gust_speed": {
"name": "[%key:component::weather::entity_component::_::state_attributes::wind_gust_speed::name%]"
},
"wind_gust_speed_day_0d": {
"name": "Wind gust speed today"
"wind_gust_speed_day": {
"name": "Wind gust speed day {forecast_day}"
},
"wind_gust_speed_day_1d": {
"name": "Wind gust speed day 1"
"wind_gust_speed_night": {
"name": "Wind gust speed night {forecast_day}"
},
"wind_gust_speed_day_2d": {
"name": "Wind gust speed day 2"
"wind_speed_day": {
"name": "Wind speed day {forecast_day}"
},
"wind_gust_speed_day_3d": {
"name": "Wind gust speed day 3"
},
"wind_gust_speed_day_4d": {
"name": "Wind gust speed day 4"
},
"wind_gust_speed_night_0d": {
"name": "Wind gust speed tonight"
},
"wind_gust_speed_night_1d": {
"name": "Wind gust speed night 1"
},
"wind_gust_speed_night_2d": {
"name": "Wind gust speed night 2"
},
"wind_gust_speed_night_3d": {
"name": "Wind gust speed night 3"
},
"wind_gust_speed_night_4d": {
"name": "Wind gust speed night 4"
},
"wind_speed_day_0d": {
"name": "Wind speed today"
},
"wind_speed_day_1d": {
"name": "Wind speed day 1"
},
"wind_speed_day_2d": {
"name": "Wind speed day 2"
},
"wind_speed_day_3d": {
"name": "Wind speed day 3"
},
"wind_speed_day_4d": {
"name": "Wind speed day 4"
},
"wind_speed_night_0d": {
"name": "Wind speed tonight"
},
"wind_speed_night_1d": {
"name": "Wind speed night 1"
},
"wind_speed_night_2d": {
"name": "Wind speed night 2"
},
"wind_speed_night_3d": {
"name": "Wind speed night 3"
},
"wind_speed_night_4d": {
"name": "Wind speed night 4"
}
}
},
"options": {
"step": {
"init": {
"description": "Due to the limitations of the free version of the AccuWeather API key, when you enable weather forecast, data updates will be performed every 80 minutes instead of every 40 minutes.",
"data": {
"forecast": "Weather forecast"
}
"wind_speed_night": {
"name": "Wind speed night {forecast_day}"
}
}
},
@@ -1,4 +1,5 @@
"""Provide info to system health."""
from __future__ import annotations
from typing import Any
@@ -8,6 +9,7 @@ from accuweather.const import ENDPOINT
from homeassistant.components import system_health
from homeassistant.core import HomeAssistant, callback
from . import AccuWeatherConfigEntry
from .const import DOMAIN
@@ -21,9 +23,11 @@ def async_register(
async def system_health_info(hass: HomeAssistant) -> dict[str, Any]:
"""Get info for the info page."""
remaining_requests = list(hass.data[DOMAIN].values())[
0
].accuweather.requests_remaining
config_entry: AccuWeatherConfigEntry = hass.config_entries.async_entries(DOMAIN)[0]
remaining_requests = (
config_entry.runtime_data.coordinator_observation.accuweather.requests_remaining
)
return {
"can_reach_server": system_health.async_check_can_reach_url(hass, ENDPOINT),
+66 -41
View File
@@ -1,4 +1,5 @@
"""Support for the AccuWeather service."""
from __future__ import annotations
from typing import cast
@@ -6,6 +7,7 @@ from typing import cast
from homeassistant.components.weather import (
ATTR_FORECAST_CLOUD_COVERAGE,
ATTR_FORECAST_CONDITION,
ATTR_FORECAST_HUMIDITY,
ATTR_FORECAST_NATIVE_APPARENT_TEMP,
ATTR_FORECAST_NATIVE_PRECIPITATION,
ATTR_FORECAST_NATIVE_TEMP,
@@ -16,11 +18,10 @@ from homeassistant.components.weather import (
ATTR_FORECAST_TIME,
ATTR_FORECAST_UV_INDEX,
ATTR_FORECAST_WIND_BEARING,
CoordinatorWeatherEntity,
Forecast,
SingleCoordinatorWeatherEntity,
WeatherEntityFeature,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
UnitOfLength,
UnitOfPrecipitationDepth,
@@ -32,129 +33,158 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util.dt import utc_from_timestamp
from . import AccuWeatherDataUpdateCoordinator
from . import AccuWeatherConfigEntry, AccuWeatherData
from .const import (
API_METRIC,
ATTR_DIRECTION,
ATTR_FORECAST,
ATTR_SPEED,
ATTR_VALUE,
ATTRIBUTION,
CONDITION_MAP,
DOMAIN,
)
from .coordinator import (
AccuWeatherDailyForecastDataUpdateCoordinator,
AccuWeatherObservationDataUpdateCoordinator,
)
PARALLEL_UPDATES = 1
async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
hass: HomeAssistant,
entry: AccuWeatherConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Add a AccuWeather weather entity from a config_entry."""
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
async_add_entities([AccuWeatherEntity(coordinator)])
async_add_entities([AccuWeatherEntity(entry.runtime_data)])
class AccuWeatherEntity(
SingleCoordinatorWeatherEntity[AccuWeatherDataUpdateCoordinator]
CoordinatorWeatherEntity[
AccuWeatherObservationDataUpdateCoordinator,
AccuWeatherDailyForecastDataUpdateCoordinator,
]
):
"""Define an AccuWeather entity."""
_attr_has_entity_name = True
_attr_name = None
def __init__(self, coordinator: AccuWeatherDataUpdateCoordinator) -> None:
def __init__(self, accuweather_data: AccuWeatherData) -> None:
"""Initialize."""
super().__init__(coordinator)
super().__init__(
observation_coordinator=accuweather_data.coordinator_observation,
daily_coordinator=accuweather_data.coordinator_daily_forecast,
)
self._attr_native_precipitation_unit = UnitOfPrecipitationDepth.MILLIMETERS
self._attr_native_pressure_unit = UnitOfPressure.HPA
self._attr_native_temperature_unit = UnitOfTemperature.CELSIUS
self._attr_native_visibility_unit = UnitOfLength.KILOMETERS
self._attr_native_wind_speed_unit = UnitOfSpeed.KILOMETERS_PER_HOUR
self._attr_unique_id = coordinator.location_key
self._attr_unique_id = accuweather_data.coordinator_observation.location_key
self._attr_attribution = ATTRIBUTION
self._attr_device_info = coordinator.device_info
if self.coordinator.forecast:
self._attr_supported_features = WeatherEntityFeature.FORECAST_DAILY
self._attr_device_info = accuweather_data.coordinator_observation.device_info
self._attr_supported_features = WeatherEntityFeature.FORECAST_DAILY
self.observation_coordinator = accuweather_data.coordinator_observation
self.daily_coordinator = accuweather_data.coordinator_daily_forecast
@property
def condition(self) -> str | None:
"""Return the current condition."""
return CONDITION_MAP.get(self.coordinator.data["WeatherIcon"])
return CONDITION_MAP.get(self.observation_coordinator.data["WeatherIcon"])
@property
def cloud_coverage(self) -> float:
"""Return the Cloud coverage in %."""
return cast(float, self.coordinator.data["CloudCover"])
return cast(float, self.observation_coordinator.data["CloudCover"])
@property
def native_apparent_temperature(self) -> float:
"""Return the apparent temperature."""
return cast(
float, self.coordinator.data["ApparentTemperature"][API_METRIC][ATTR_VALUE]
float,
self.observation_coordinator.data["ApparentTemperature"][API_METRIC][
ATTR_VALUE
],
)
@property
def native_temperature(self) -> float:
"""Return the temperature."""
return cast(float, self.coordinator.data["Temperature"][API_METRIC][ATTR_VALUE])
return cast(
float,
self.observation_coordinator.data["Temperature"][API_METRIC][ATTR_VALUE],
)
@property
def native_pressure(self) -> float:
"""Return the pressure."""
return cast(float, self.coordinator.data["Pressure"][API_METRIC][ATTR_VALUE])
return cast(
float, self.observation_coordinator.data["Pressure"][API_METRIC][ATTR_VALUE]
)
@property
def native_dew_point(self) -> float:
"""Return the dew point."""
return cast(float, self.coordinator.data["DewPoint"][API_METRIC][ATTR_VALUE])
return cast(
float, self.observation_coordinator.data["DewPoint"][API_METRIC][ATTR_VALUE]
)
@property
def humidity(self) -> int:
"""Return the humidity."""
return cast(int, self.coordinator.data["RelativeHumidity"])
return cast(int, self.observation_coordinator.data["RelativeHumidity"])
@property
def native_wind_gust_speed(self) -> float:
"""Return the wind gust speed."""
return cast(
float, self.coordinator.data["WindGust"][ATTR_SPEED][API_METRIC][ATTR_VALUE]
float,
self.observation_coordinator.data["WindGust"][ATTR_SPEED][API_METRIC][
ATTR_VALUE
],
)
@property
def native_wind_speed(self) -> float:
"""Return the wind speed."""
return cast(
float, self.coordinator.data["Wind"][ATTR_SPEED][API_METRIC][ATTR_VALUE]
float,
self.observation_coordinator.data["Wind"][ATTR_SPEED][API_METRIC][
ATTR_VALUE
],
)
@property
def wind_bearing(self) -> int:
"""Return the wind bearing."""
return cast(int, self.coordinator.data["Wind"][ATTR_DIRECTION]["Degrees"])
return cast(
int, self.observation_coordinator.data["Wind"][ATTR_DIRECTION]["Degrees"]
)
@property
def native_visibility(self) -> float:
"""Return the visibility."""
return cast(float, self.coordinator.data["Visibility"][API_METRIC][ATTR_VALUE])
return cast(
float,
self.observation_coordinator.data["Visibility"][API_METRIC][ATTR_VALUE],
)
@property
def uv_index(self) -> float:
"""Return the UV index."""
return cast(float, self.coordinator.data["UVIndex"])
return cast(float, self.observation_coordinator.data["UVIndex"])
@property
def forecast(self) -> list[Forecast] | None:
"""Return the forecast array."""
if not self.coordinator.forecast:
return None
# remap keys from library to keys understood by the weather component
@callback
def _async_forecast_daily(self) -> list[Forecast] | None:
"""Return the daily forecast in native units."""
return [
{
ATTR_FORECAST_TIME: utc_from_timestamp(item["EpochDate"]).isoformat(),
ATTR_FORECAST_CLOUD_COVERAGE: item["CloudCoverDay"],
ATTR_FORECAST_HUMIDITY: item["RelativeHumidityDay"]["Average"],
ATTR_FORECAST_NATIVE_TEMP: item["TemperatureMax"][ATTR_VALUE],
ATTR_FORECAST_NATIVE_TEMP_LOW: item["TemperatureMin"][ATTR_VALUE],
ATTR_FORECAST_NATIVE_APPARENT_TEMP: item["RealFeelTemperatureMax"][
@@ -174,10 +204,5 @@ class AccuWeatherEntity(
ATTR_FORECAST_WIND_BEARING: item["WindDay"][ATTR_DIRECTION]["Degrees"],
ATTR_FORECAST_CONDITION: CONDITION_MAP.get(item["IconDay"]),
}
for item in self.coordinator.data[ATTR_FORECAST]
for item in self.daily_coordinator.data
]
@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
+11 -8
View File
@@ -1,32 +1,38 @@
"""The Rollease Acmeda Automate integration."""
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from .const import DOMAIN
from .hub import PulseHub
CONF_HUBS = "hubs"
PLATFORMS = [Platform.COVER, Platform.SENSOR]
type AcmedaConfigEntry = ConfigEntry[PulseHub]
async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool:
async def async_setup_entry(
hass: HomeAssistant, config_entry: AcmedaConfigEntry
) -> bool:
"""Set up Rollease Acmeda Automate hub from a config entry."""
hub = PulseHub(hass, config_entry)
if not await hub.async_setup():
return False
hass.data.setdefault(DOMAIN, {})[config_entry.entry_id] = hub
config_entry.runtime_data = hub
await hass.config_entries.async_forward_entry_setups(config_entry, PLATFORMS)
return True
async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool:
async def async_unload_entry(
hass: HomeAssistant, config_entry: AcmedaConfigEntry
) -> bool:
"""Unload a config entry."""
hub = hass.data[DOMAIN][config_entry.entry_id]
hub = config_entry.runtime_data
unload_ok = await hass.config_entries.async_unload_platforms(
config_entry, PLATFORMS
@@ -35,7 +41,4 @@ async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) ->
if not await hub.async_reset():
return False
if unload_ok:
hass.data[DOMAIN].pop(config_entry.entry_id)
return unload_ok
+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__)
+5 -5
View File
@@ -1,4 +1,5 @@
"""Support for Acmeda Roller Blinds."""
from __future__ import annotations
from typing import Any
@@ -8,24 +9,23 @@ from homeassistant.components.cover import (
CoverEntity,
CoverEntityFeature,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AcmedaConfigEntry
from .base import AcmedaBase
from .const import ACMEDA_HUB_UPDATE, DOMAIN
from .const import ACMEDA_HUB_UPDATE
from .helpers import async_add_acmeda_entities
from .hub import PulseHub
async def async_setup_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
config_entry: AcmedaConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up the Acmeda Rollers from a config entry."""
hub: PulseHub = hass.data[DOMAIN][config_entry.entry_id]
hub = config_entry.runtime_data
current: set[int] = set()
@@ -1,4 +1,5 @@
"""Errors for the Acmeda Pulse component."""
from homeassistant.exceptions import HomeAssistantError
+8 -2
View File
@@ -1,6 +1,9 @@
"""Helper functions for Acmeda Pulse."""
from __future__ import annotations
from typing import TYPE_CHECKING
from aiopulse import Roller
from homeassistant.config_entries import ConfigEntry
@@ -10,17 +13,20 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from .const import DOMAIN, LOGGER
if TYPE_CHECKING:
from . import AcmedaConfigEntry
@callback
def async_add_acmeda_entities(
hass: HomeAssistant,
entity_class: type,
config_entry: ConfigEntry,
config_entry: AcmedaConfigEntry,
current: set[int],
async_add_entities: AddEntitiesCallback,
) -> None:
"""Add any new entities."""
hub = hass.data[DOMAIN][config_entry.entry_id]
hub = config_entry.runtime_data
LOGGER.debug("Looking for new %s on: %s", entity_class.__name__, hub.host)
api = hub.api.rollers
+1
View File
@@ -1,4 +1,5 @@
"""Code to handle a Pulse Hub."""
from __future__ import annotations
import asyncio
+5 -5
View File
@@ -1,26 +1,26 @@
"""Support for Acmeda Roller Blind Batteries."""
from __future__ import annotations
from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import PERCENTAGE
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import AcmedaConfigEntry
from .base import AcmedaBase
from .const import ACMEDA_HUB_UPDATE, DOMAIN
from .const import ACMEDA_HUB_UPDATE
from .helpers import async_add_acmeda_entities
from .hub import PulseHub
async def async_setup_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
config_entry: AcmedaConfigEntry,
async_add_entities: AddEntitiesCallback,
) -> None:
"""Set up the Acmeda Rollers from a config entry."""
hub: PulseHub = hass.data[DOMAIN][config_entry.entry_id]
hub = config_entry.runtime_data
current: set[int] = set()
+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
+24 -3
View File
@@ -1,4 +1,5 @@
"""Support for Adax wifi-enabled home heaters."""
from __future__ import annotations
from typing import Any, cast
@@ -134,11 +135,15 @@ class AdaxDevice(ClimateEntity):
class LocalAdaxDevice(ClimateEntity):
"""Representation of a heater."""
_attr_hvac_modes = [HVACMode.HEAT]
_attr_hvac_modes = [HVACMode.HEAT, HVACMode.OFF]
_attr_hvac_mode = HVACMode.HEAT
_attr_max_temp = 35
_attr_min_temp = 5
_attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
_attr_supported_features = (
ClimateEntityFeature.TARGET_TEMPERATURE
| ClimateEntityFeature.TURN_OFF
| ClimateEntityFeature.TURN_ON
)
_attr_target_temperature_step = PRECISION_WHOLE
_attr_temperature_unit = UnitOfTemperature.CELSIUS
@@ -151,6 +156,14 @@ class LocalAdaxDevice(ClimateEntity):
manufacturer="Adax",
)
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:
"""Set hvac mode."""
if hvac_mode == HVACMode.HEAT:
temperature = self._attr_target_temperature or self._attr_min_temp
await self._adax_data_handler.set_target_temperature(temperature)
elif hvac_mode == HVACMode.OFF:
await self._adax_data_handler.set_target_temperature(0)
async def async_set_temperature(self, **kwargs: Any) -> None:
"""Set new target temperature."""
if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None:
@@ -160,6 +173,14 @@ class LocalAdaxDevice(ClimateEntity):
async def async_update(self) -> None:
"""Get the latest data."""
data = await self._adax_data_handler.get_status()
self._attr_target_temperature = data["target_temperature"]
self._attr_current_temperature = data["current_temperature"]
self._attr_available = self._attr_current_temperature is not None
if (target_temp := data["target_temperature"]) == 0:
self._attr_hvac_mode = HVACMode.OFF
self._attr_icon = "mdi:radiator-off"
if target_temp == 0:
self._attr_target_temperature = self._attr_min_temp
else:
self._attr_hvac_mode = HVACMode.HEAT
self._attr_icon = "mdi:radiator"
self._attr_target_temperature = target_temp
+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"
+25 -11
View File
@@ -1,10 +1,13 @@
"""Support for AdGuard Home."""
from __future__ import annotations
from dataclasses import dataclass
from adguardhome import AdGuardHome, AdGuardHomeConnectionError
import voluptuous as vol
from homeassistant.config_entries import ConfigEntry
from homeassistant.config_entries import ConfigEntry, ConfigEntryState
from homeassistant.const import (
CONF_HOST,
CONF_NAME,
@@ -23,7 +26,6 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import (
CONF_FORCE,
DATA_ADGUARD_CLIENT,
DOMAIN,
SERVICE_ADD_URL,
SERVICE_DISABLE_URL,
@@ -41,9 +43,18 @@ SERVICE_REFRESH_SCHEMA = vol.Schema(
)
PLATFORMS = [Platform.SENSOR, Platform.SWITCH]
type AdGuardConfigEntry = ConfigEntry[AdGuardData]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
@dataclass
class AdGuardData:
"""Adguard data type."""
client: AdGuardHome
version: str
async def async_setup_entry(hass: HomeAssistant, entry: AdGuardConfigEntry) -> bool:
"""Set up AdGuard Home from a config entry."""
session = async_get_clientsession(hass, entry.data[CONF_VERIFY_SSL])
adguard = AdGuardHome(
@@ -56,13 +67,13 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
session=session,
)
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = {DATA_ADGUARD_CLIENT: adguard}
try:
await adguard.version()
version = await adguard.version()
except AdGuardHomeConnectionError as exception:
raise ConfigEntryNotReady from exception
entry.runtime_data = AdGuardData(adguard, version)
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
async def add_url(call: ServiceCall) -> None:
@@ -106,17 +117,20 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
async def async_unload_entry(hass: HomeAssistant, entry: AdGuardConfigEntry) -> bool:
"""Unload AdGuard Home config entry."""
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
if unload_ok:
hass.data[DOMAIN].pop(entry.entry_id)
if not hass.data[DOMAIN]:
loaded_entries = [
entry
for entry in hass.config_entries.async_entries(DOMAIN)
if entry.state == ConfigEntryState.LOADED
]
if len(loaded_entries) == 1:
# This is the last loaded instance of AdGuard, deregister any services
hass.services.async_remove(DOMAIN, SERVICE_ADD_URL)
hass.services.async_remove(DOMAIN, SERVICE_REMOVE_URL)
hass.services.async_remove(DOMAIN, SERVICE_ENABLE_URL)
hass.services.async_remove(DOMAIN, SERVICE_DISABLE_URL)
hass.services.async_remove(DOMAIN, SERVICE_REFRESH)
del hass.data[DOMAIN]
return unload_ok

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