diff --git a/homeassistant/components/roomba/__init__.py b/homeassistant/components/roomba/__init__.py index 0a58effa481..31b5187a195 100644 --- a/homeassistant/components/roomba/__init__.py +++ b/homeassistant/components/roomba/__init__.py @@ -1,5 +1,6 @@ """The roomba component.""" import asyncio +from functools import partial import logging import async_timeout @@ -42,12 +43,15 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b }, ) - roomba = RoombaFactory.create_roomba( - address=config_entry.data[CONF_HOST], - blid=config_entry.data[CONF_BLID], - password=config_entry.data[CONF_PASSWORD], - continuous=config_entry.options[CONF_CONTINUOUS], - delay=config_entry.options[CONF_DELAY], + roomba = await hass.async_add_executor_job( + partial( + RoombaFactory.create_roomba, + address=config_entry.data[CONF_HOST], + blid=config_entry.data[CONF_BLID], + password=config_entry.data[CONF_PASSWORD], + continuous=config_entry.options[CONF_CONTINUOUS], + delay=config_entry.options[CONF_DELAY], + ) ) try: diff --git a/homeassistant/components/roomba/config_flow.py b/homeassistant/components/roomba/config_flow.py index 2dbecdf32f2..7aee875308b 100644 --- a/homeassistant/components/roomba/config_flow.py +++ b/homeassistant/components/roomba/config_flow.py @@ -1,6 +1,7 @@ """Config flow to configure roomba component.""" import asyncio +from functools import partial from roombapy import RoombaFactory from roombapy.discovery import RoombaDiscovery @@ -41,12 +42,15 @@ async def validate_input(hass: core.HomeAssistant, data): Data has the keys from DATA_SCHEMA with values provided by the user. """ - roomba = RoombaFactory.create_roomba( - address=data[CONF_HOST], - blid=data[CONF_BLID], - password=data[CONF_PASSWORD], - continuous=False, - delay=data[CONF_DELAY], + roomba = await hass.async_add_executor_job( + partial( + RoombaFactory.create_roomba, + address=data[CONF_HOST], + blid=data[CONF_BLID], + password=data[CONF_PASSWORD], + continuous=False, + delay=data[CONF_DELAY], + ) ) info = await async_connect_or_timeout(hass, roomba)