Fix roomba doing I/O in the event loop (#69339)

This commit is contained in:
J. Nick Koston 2022-04-05 01:10:20 -10:00 committed by GitHub
parent caa5b8f96c
commit e5c1cc35e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 12 deletions

View File

@ -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:

View File

@ -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)