mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Ensure platform setup is awaited in zwave_me (#86581)
* Ensure platform setup is awaited in zwave_me There was a race during setup since platform setup was not being awaited and was being done in a task Also migrates to using async_forward_entry_setups instead of manually writing out async_forward_entry_setup * Ensure platform setup is awaited in zwave_me There was a race during setup since platform setup was not being awaited and was being done in a task Also migrates to using async_forward_entry_setups instead of manually writing out async_forward_entry_setup
This commit is contained in:
parent
4b427ec02c
commit
a851b20c97
@ -1,5 +1,4 @@
|
|||||||
"""The Z-Wave-Me WS integration."""
|
"""The Z-Wave-Me WS integration."""
|
||||||
import asyncio
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from zwave_me_ws import ZWaveMe, ZWaveMeData
|
from zwave_me_ws import ZWaveMe, ZWaveMeData
|
||||||
@ -24,7 +23,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
hass.data.setdefault(DOMAIN, {})
|
hass.data.setdefault(DOMAIN, {})
|
||||||
controller = hass.data[DOMAIN][entry.entry_id] = ZWaveMeController(hass, entry)
|
controller = hass.data[DOMAIN][entry.entry_id] = ZWaveMeController(hass, entry)
|
||||||
if await controller.async_establish_connection():
|
if await controller.async_establish_connection():
|
||||||
hass.async_create_task(async_setup_platforms(hass, entry, controller))
|
await async_setup_platforms(hass, entry, controller)
|
||||||
registry = device_registry.async_get(hass)
|
registry = device_registry.async_get(hass)
|
||||||
controller.remove_stale_devices(registry)
|
controller.remove_stale_devices(registry)
|
||||||
return True
|
return True
|
||||||
@ -98,12 +97,7 @@ async def async_setup_platforms(
|
|||||||
hass: HomeAssistant, entry: ConfigEntry, controller: ZWaveMeController
|
hass: HomeAssistant, entry: ConfigEntry, controller: ZWaveMeController
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up platforms."""
|
"""Set up platforms."""
|
||||||
await asyncio.gather(
|
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
|
||||||
*[
|
|
||||||
hass.config_entries.async_forward_entry_setup(entry, platform)
|
|
||||||
for platform in PLATFORMS
|
|
||||||
]
|
|
||||||
)
|
|
||||||
controller.platforms_inited = True
|
controller.platforms_inited = True
|
||||||
|
|
||||||
await hass.async_add_executor_job(controller.zwave_api.get_devices)
|
await hass.async_add_executor_job(controller.zwave_api.get_devices)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user