2019-05-13 08:16:55 +00:00
|
|
|
"""Config flow for Cast."""
|
2020-07-29 21:46:14 +00:00
|
|
|
import functools
|
|
|
|
|
|
|
|
from pychromecast.discovery import discover_chromecasts, stop_discovery
|
2019-10-18 22:59:58 +00:00
|
|
|
|
2019-05-13 08:16:55 +00:00
|
|
|
from homeassistant import config_entries
|
2019-10-18 22:59:58 +00:00
|
|
|
from homeassistant.helpers import config_entry_flow
|
|
|
|
|
2019-05-13 08:16:55 +00:00
|
|
|
from .const import DOMAIN
|
2020-07-29 21:46:14 +00:00
|
|
|
from .helpers import ChromeCastZeroconf
|
2019-05-13 08:16:55 +00:00
|
|
|
|
|
|
|
|
|
|
|
async def _async_has_devices(hass):
|
|
|
|
"""Return if there are devices that can be discovered."""
|
|
|
|
|
2020-07-29 21:46:14 +00:00
|
|
|
casts, browser = await hass.async_add_executor_job(
|
|
|
|
functools.partial(
|
|
|
|
discover_chromecasts, zeroconf_instance=ChromeCastZeroconf.get_zeroconf()
|
|
|
|
)
|
|
|
|
)
|
|
|
|
stop_discovery(browser)
|
|
|
|
return casts
|
2019-05-13 08:16:55 +00:00
|
|
|
|
|
|
|
|
|
|
|
config_entry_flow.register_discovery_flow(
|
2019-07-31 19:25:30 +00:00
|
|
|
DOMAIN, "Google Cast", _async_has_devices, config_entries.CONN_CLASS_LOCAL_PUSH
|
|
|
|
)
|