* 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
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>
* 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
* 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
* 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>