* Deako integration using pydeako * fix: address feedback - make unit tests more e2e - use runtime_data to store connection * fix: address feedback part 2 - added better type safety for Deako config entries - refactored the config flow tests to use a conftest mock instead of directly patching - removed pytest.mark.asyncio test decorators * fix: address feedback pt 3 - simplify config entry type - add test for single_instance_allowed - remove light.py get_state(), only used once, no need to be separate function * fix: ruff format * Update homeassistant/components/deako/__init__.py Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com> --------- Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
26 lines
758 B
Python
26 lines
758 B
Python
"""Config flow for deako."""
|
|
|
|
from pydeako.discover import DeakoDiscoverer, DevicesNotFoundException
|
|
|
|
from homeassistant.components import zeroconf
|
|
from homeassistant.core import HomeAssistant
|
|
from homeassistant.helpers import config_entry_flow
|
|
|
|
from .const import DOMAIN, NAME
|
|
|
|
|
|
async def _async_has_devices(hass: HomeAssistant) -> bool:
|
|
"""Return if there are devices that can be discovered."""
|
|
_zc = await zeroconf.async_get_instance(hass)
|
|
discoverer = DeakoDiscoverer(_zc)
|
|
|
|
try:
|
|
await discoverer.get_address()
|
|
except DevicesNotFoundException:
|
|
return False
|
|
else:
|
|
# address exists, there's at least one device
|
|
return True
|
|
|
|
|
|
config_entry_flow.register_discovery_flow(DOMAIN, NAME, _async_has_devices)
|