diff --git a/custom_components/localtuya/__init__.py b/custom_components/localtuya/__init__.py index 2f0e0fc..a54656d 100644 --- a/custom_components/localtuya/__init__.py +++ b/custom_components/localtuya/__init__.py @@ -263,19 +263,19 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry): res = await tuya_api.async_get_devices_list() hass.data[DOMAIN][DATA_CLOUD] = tuya_api + platforms = set() + for dev_id in entry.data[CONF_DEVICES].keys(): + entities = entry.data[CONF_DEVICES][dev_id][CONF_ENTITIES] + platforms = platforms.union( + set(entity[CONF_PLATFORM] for entity in entities) + ) + hass.data[DOMAIN][TUYA_DEVICES][dev_id] = TuyaDevice(hass, entry, dev_id) + + # Setup all platforms at once, letting HA handling each platform and avoiding + # potential integration restarts while elements are still initialising. + await hass.config_entries.async_forward_entry_setups(entry, platforms) + async def setup_entities(device_ids): - platforms = set() - for dev_id in device_ids: - entities = entry.data[CONF_DEVICES][dev_id][CONF_ENTITIES] - platforms = platforms.union( - set(entity[CONF_PLATFORM] for entity in entities) - ) - hass.data[DOMAIN][TUYA_DEVICES][dev_id] = TuyaDevice(hass, entry, dev_id) - - # Setup all platforms at once, letting HA handling each platform and avoiding - # potential integration restarts while elements are still initialising. - await hass.config_entries.async_forward_entry_setups(entry, platforms) - for dev_id in device_ids: hass.data[DOMAIN][TUYA_DEVICES][dev_id].async_connect()