* Fix late group platform registration
* use a callback instead
* Run thread safe
* Not working domain filter
* Also update if a group has nested group's
* Only update if the siingle state type key could change
* Avoid redundant regisister hooks
* Use set, add comment
* Revert changes
* Keep callback cleanup const
* Cleanup after dependencies
* Preimport and cleanup excluded domains
* Revert test changes as we assume early set up now
* Migrate alarm_control_panel
* Migrate climate
* Migrate cover
* Migrate device_tracker
* Migrate lock
* Migrate media_player
* Migrate person
* Migrate plant
* Migrate vacuum
* Migrate water_heater
* Remove water_heater group_pre_import
* Use Platform enum if possible
* Also use platform enum for excluded domains
* Set registry to self._registry
* move deregistering call back hook to async_added_to_hass
* Add comment
* Do no pass mutable reference to EXCLUDED_DOMAINS
* Remove unneeded type hint
* 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
* 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>
* 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
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
* Remove unneeded checks for Entity.platform
* Update tests
* Prevent breaking integrations without an EntityComponent
* Warn when entity has no platform