Commit Graph

302 Commits (27e8a4ed6f7e0b19a30ad88297f848a8e6df687d)

Author SHA1 Message Date
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
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
Robert Svensson bbfc2456ec
Improve syncing light states to deCONZ groups (#117588) 2024-05-17 08:44:09 +02: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
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
Joost Lekkerkerker 9b41e3d124
Use is in enum comparison in config flow tests A-E (#114669) 2024-04-02 11:22:05 -10:00
Jan Bouwhuis acf2f855fe
Raise ServiceValidationError on number out of range exception (#114589) 2024-04-02 12:22:00 +02:00
Sid 304ed8bf3d
Unignore Ruff PLC in tests (#114572) 2024-04-01 21:28:54 +02: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 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
Robert Svensson d3c68303b0
Improve deCONZ test_non_color_light_reports_color (#114021) 2024-03-22 22:18:22 +01:00
Robert Svensson 506240be10
Streamline naming in deCONZ integration (#111977) 2024-03-18 22:08:06 +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
Robert Svensson e41133e9f0
Remove old update unique id function from deCONZ binary sensor (#112536) 2024-03-15 12:05:45 +01: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
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
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
Marc Mueller 32f3f46542
Add empty line after module docstring (2) [tests.components] (#112737) 2024-03-08 19:16:21 +01:00
Marc Mueller 38adfbf1a3
Add empty line after module docstring [tests a-e] (#112708) 2024-03-08 08:50:25 -05:00
J. Nick Koston f3a9756f81
Avoid waiting for integration platforms in the parent integration (#112467) 2024-03-05 21:16:42 -10: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
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
J. Nick Koston 61610a5ef9
Ensure deconz tests add config entry before updating it (#110417) 2024-02-12 15:29:33 -06:00
Marc Mueller c82933175d
Use builtin TimeoutError [a-d] (#109678) 2024-02-05 11:31:33 +01:00
Robert Svensson 195ef6d769
Fix lights reporting unsupported colormodes in deCONZ (#108812) 2024-01-25 08:38:57 +01:00
G Johansson 83f4d3af5c
Implement mode validation in Climate entity component (#105745)
* Implement mode validation in Climate entity component

* Fix some tests

* more tests

* Fix translations

* fix deconz tests

* Fix switcher_kis tests

* not None

* Fix homematicip_cloud test

* Always validate

* Fix shelly

* reverse logic in validation

* modes_str

---------

Co-authored-by: J. Nick Koston <nick@koston.org>
2023-12-27 14:51:39 +01:00
Erik Montnemery 6908497c3d
Add minor version to config entries (#105479) 2023-12-12 08:44:35 +01:00
Robert Svensson 2a8a60b381
Improve LIDL christmas light detection in deCONZ (#105155) 2023-12-07 09:19:38 +01:00
Robert Svensson b41b56e54c
Support new deCONZ Particulate Matter endpoint (#104276) 2023-11-24 11:39:13 +01:00
Franck Nijhof 81909f7ddf
Update deconz tests to use device & entity registry fixtures (#103703) 2023-11-09 18:06:53 +01:00
Robert Svensson a691bd26cf
Support Lidl christmas light effects in deCONZ (#102731) 2023-10-25 00:32:20 +02:00
Paul Bottein c98c18f25e
Return 'None' for light attributes when off instead of removing them (#101946) 2023-10-19 01:08:08 +02:00
Joost Lekkerkerker 1f0e8f93c5
Use snapshot assertion for Deconz diagnostics test (#98908) 2023-08-23 21:37:03 +02:00
Franck Nijhof 868a5f377f
Ruff: isort don't split imports based on trailing comma (#98162) 2023-08-10 14:27:03 +02:00
J. Nick Koston d4cdb0453f
Guard expensive debug formatting with calls with isEnabledFor (#97073) 2023-07-23 10:54:25 +02:00
Erik Montnemery 17ac1a6d32
Set automations which fail validation unavailable (#94856) 2023-06-27 18:23:33 +02:00
Erik Montnemery 5884afd485
Teach sensor device trigger about entity registry ids (#94988) 2023-06-22 11:13:54 +02:00
Erik Montnemery 4414f06ed2
Teach binary_sensor device trigger about entity registry ids (#94963)
* Teach binary_sensor device trigger about entity registry ids

* Update deconz test
2023-06-21 14:49:53 +02:00
Erik Montnemery 6a29ed8caa
Replace assert_lists_same with pytest_unordered in integrations a-f (#94900) 2023-06-20 20:22:31 +02:00
Tobias G d4e352d6a7
Add humidity sensor to deconz component (#93024)
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2023-06-01 19:16:42 +02:00
Ville Skyttä ced67e5800
Import `util.dt` as `dt_util` in `components/[a-d]*` (#93756) 2023-05-30 00:02:06 +03:00
Jan Bouwhuis ec98e22330
Add type hints for stub_blueprint_populate fixture (#93568)
Add typehints for stub_blueprint_populate fixture
2023-05-26 08:13:13 +02:00
Erik Montnemery 3cca338c6e
Improve blueprint test fixtures (#93519) 2023-05-25 13:45:19 +02:00
ad0p ef24e508f8
Bump pydeconz to v112 (#91924)
* Bump pydeconz to v112

* PR review - add suggested_display_precision

* Test - fix

* Bump pydeconz to v112

* PR review - add suggested_display_precision

* Fix tests

---------

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2023-05-24 14:43:02 +02:00
Erik Montnemery 63f3767a29
Include UUID in hassio discovery data (#91970) 2023-04-25 09:48:47 +02:00
Markus 1a14a93df6
HA deconz: Add support for Tuya Smart Air Housekeeper 6in1 Air Quality Monitor (#87866)
* fix check for airquality sensor (was always TRUE)

* import additional const required

* add support for formaldehyd sensor

* add support for co2 sensor

* add support for pm25 sensor

* sort const a-z

* adapt to typo fixed function

* adapt to new key names (formaldehyde)

* adapt co2 sensor to new key names

* Update homeassistant/components/deconz/sensor.py

remove unnecessary code

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

* add device_class for air_quality_ppb

* add test_air_quality_sensor_6_in_1

* fix Air quality PPB test to match device_class

* remove device_class of air_quality_ppb

* remove device_class test of airqualityppb

* explicit units

* remove device_class test of airquality_1_ppb

* dependency bump pydeconz to 111

* Update homeassistant/components/deconz/sensor.py

remove unnecessary device_class

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

* import formatting

* formatting

* Update homeassistant/components/deconz/sensor.py

change key for pm2_5

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

* add airquality co2 ch2o pm25 sensor testdata

* remove test_air_quality_sensor_6_in_1

* formatting

* bump pydeconz for requirements

---------

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2023-04-23 16:12:52 +02:00
epenet c1b7aa084c
Fix race condition in deconz (#91328)
* Fix race condition in deconz

* Use a new separate test
2023-04-13 15:04:21 +02:00
Franck Nijhof ed79265843
Enable Ruff PT006 (#88165)
* Enable Ruff PT006

* Adjust existing cases

* Fix tests

* Remove unneeded parentheses
2023-02-15 14:09:50 +01:00