Use platform enum (8) [Misc] (#61013)

This commit is contained in:
Marc Mueller 2021-12-13 14:09:49 +01:00 committed by GitHub
parent c8f2d4a82b
commit d6f48683a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 102 additions and 92 deletions

View File

@ -1,10 +1,7 @@
"""Constants for the Axis component.""" """Constants for the Axis component."""
import logging import logging
from homeassistant.components.binary_sensor import DOMAIN as BINARY_SENSOR_DOMAIN from homeassistant.const import Platform
from homeassistant.components.camera import DOMAIN as CAMERA_DOMAIN
from homeassistant.components.light import DOMAIN as LIGHT_DOMAIN
from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN
LOGGER = logging.getLogger(__package__) LOGGER = logging.getLogger(__package__)
@ -22,4 +19,4 @@ DEFAULT_STREAM_PROFILE = "No stream profile"
DEFAULT_TRIGGER_TIME = 0 DEFAULT_TRIGGER_TIME = 0
DEFAULT_VIDEO_SOURCE = "No video source" DEFAULT_VIDEO_SOURCE = "No video source"
PLATFORMS = [BINARY_SENSOR_DOMAIN, CAMERA_DOMAIN, LIGHT_DOMAIN, SWITCH_DOMAIN] PLATFORMS = [Platform.BINARY_SENSOR, Platform.CAMERA, Platform.LIGHT, Platform.SWITCH]

View File

@ -4,6 +4,7 @@ from homeassistant.const import (
CONF_LIGHTS, CONF_LIGHTS,
CONF_SENSORS, CONF_SENSORS,
CONF_SWITCHES, CONF_SWITCHES,
Platform,
) )
CONF_ARDUINO_INSTANCE_ID = "arduino_instance_id" CONF_ARDUINO_INSTANCE_ID = "arduino_instance_id"
@ -27,8 +28,8 @@ CONF_SLEEP_TUNE = "sleep_tune"
DOMAIN = "firmata" DOMAIN = "firmata"
FIRMATA_MANUFACTURER = "Firmata" FIRMATA_MANUFACTURER = "Firmata"
CONF_PLATFORM_MAP = { CONF_PLATFORM_MAP = {
CONF_BINARY_SENSORS: "binary_sensor", CONF_BINARY_SENSORS: Platform.BINARY_SENSOR,
CONF_LIGHTS: "light", CONF_LIGHTS: Platform.LIGHT,
CONF_SENSORS: "sensor", CONF_SENSORS: Platform.SENSOR,
CONF_SWITCHES: "switch", CONF_SWITCHES: Platform.SWITCH,
} }

View File

@ -1,4 +1,6 @@
"""Constants for Hive.""" """Constants for Hive."""
from homeassistant.const import Platform
ATTR_MODE = "mode" ATTR_MODE = "mode"
ATTR_TIME_PERIOD = "time_period" ATTR_TIME_PERIOD = "time_period"
ATTR_ONOFF = "on_off" ATTR_ONOFF = "on_off"
@ -7,22 +9,22 @@ CONFIG_ENTRY_VERSION = 1
DEFAULT_NAME = "Hive" DEFAULT_NAME = "Hive"
DOMAIN = "hive" DOMAIN = "hive"
PLATFORMS = [ PLATFORMS = [
"alarm_control_panel", Platform.ALARM_CONTROL_PANEL,
"binary_sensor", Platform.BINARY_SENSOR,
"climate", Platform.CLIMATE,
"light", Platform.LIGHT,
"sensor", Platform.SENSOR,
"switch", Platform.SWITCH,
"water_heater", Platform.WATER_HEATER,
] ]
PLATFORM_LOOKUP = { PLATFORM_LOOKUP = {
"alarm_control_panel": "alarm_control_panel", Platform.ALARM_CONTROL_PANEL: "alarm_control_panel",
"binary_sensor": "binary_sensor", Platform.BINARY_SENSOR: "binary_sensor",
"climate": "climate", Platform.CLIMATE: "climate",
"light": "light", Platform.LIGHT: "light",
"sensor": "sensor", Platform.SENSOR: "sensor",
"switch": "switch", Platform.SWITCH: "switch",
"water_heater": "water_heater", Platform.WATER_HEATER: "water_heater",
} }
SERVICE_BOOST_HOT_WATER = "boost_hot_water" SERVICE_BOOST_HOT_WATER = "boost_hot_water"
SERVICE_BOOST_HEATING_ON = "boost_heating_on" SERVICE_BOOST_HEATING_ON = "boost_heating_on"

View File

@ -8,7 +8,7 @@ from homepluscontrol.homeplusapi import HomePlusControlApiError
import voluptuous as vol import voluptuous as vol
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_CLIENT_ID, CONF_CLIENT_SECRET from homeassistant.const import CONF_CLIENT_ID, CONF_CLIENT_SECRET, Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers import ( from homeassistant.helpers import (
config_entry_oauth2_flow, config_entry_oauth2_flow,
@ -46,7 +46,7 @@ CONFIG_SCHEMA = vol.Schema(
) )
# The Legrand Home+ Control platform is currently limited to "switch" entities # The Legrand Home+ Control platform is currently limited to "switch" entities
PLATFORMS = ["switch"] PLATFORMS = [Platform.SWITCH]
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -10,11 +10,8 @@ from typing import Any, cast
from awesomeversion import AwesomeVersion from awesomeversion import AwesomeVersion
from hyperion import client, const as hyperion_const from hyperion import client, const as hyperion_const
from homeassistant.components.camera.const import DOMAIN as CAMERA_DOMAIN
from homeassistant.components.light import DOMAIN as LIGHT_DOMAIN
from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, CONF_PORT, CONF_TOKEN from homeassistant.const import CONF_HOST, CONF_PORT, CONF_TOKEN, Platform
from homeassistant.core import HomeAssistant, callback from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
from homeassistant.helpers import device_registry as dr from homeassistant.helpers import device_registry as dr
@ -36,7 +33,7 @@ from .const import (
SIGNAL_INSTANCE_REMOVE, SIGNAL_INSTANCE_REMOVE,
) )
PLATFORMS = [LIGHT_DOMAIN, SWITCH_DOMAIN, CAMERA_DOMAIN] PLATFORMS = [Platform.LIGHT, Platform.SWITCH, Platform.CAMERA]
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -25,7 +25,7 @@ from homeassistant.components.light import DOMAIN as LIGHT_DOMAIN
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
@ -135,19 +135,19 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
forward_setup = hass.config_entries.async_forward_entry_setup forward_setup = hass.config_entries.async_forward_entry_setup
if binary_sensors: if binary_sensors:
_LOGGER.debug("Got %s binary sensors: %s", len(binary_sensors), binary_sensors) _LOGGER.debug("Got %s binary sensors: %s", len(binary_sensors), binary_sensors)
hass.async_create_task(forward_setup(entry, BINARY_SENSOR_DOMAIN)) hass.async_create_task(forward_setup(entry, Platform.BINARY_SENSOR))
if climates: if climates:
_LOGGER.debug("Got %s climates: %s", len(climates), climates) _LOGGER.debug("Got %s climates: %s", len(climates), climates)
hass.async_create_task(forward_setup(entry, CLIMATE_DOMAIN)) hass.async_create_task(forward_setup(entry, Platform.CLIMATE))
if lights: if lights:
_LOGGER.debug("Got %s lights: %s", len(lights), lights) _LOGGER.debug("Got %s lights: %s", len(lights), lights)
hass.async_create_task(forward_setup(entry, LIGHT_DOMAIN)) hass.async_create_task(forward_setup(entry, Platform.LIGHT))
if sensors: if sensors:
_LOGGER.debug("Got %s sensors: %s", len(sensors), sensors) _LOGGER.debug("Got %s sensors: %s", len(sensors), sensors)
hass.async_create_task(forward_setup(entry, SENSOR_DOMAIN)) hass.async_create_task(forward_setup(entry, Platform.SENSOR))
if switches: if switches:
_LOGGER.debug("Got %s switches: %s", len(switches), switches) _LOGGER.debug("Got %s switches: %s", len(switches), switches)
hass.async_create_task(forward_setup(entry, SWITCH_DOMAIN)) hass.async_create_task(forward_setup(entry, Platform.SWITCH))
async def _async_systems_update(now): async def _async_systems_update(now):
"""Refresh internal state for all systems.""" """Refresh internal state for all systems."""

View File

@ -34,15 +34,17 @@ from pyinsteon.groups import (
TEST_SENSOR, TEST_SENSOR,
) )
from homeassistant.const import Platform
DOMAIN = "insteon" DOMAIN = "insteon"
INSTEON_PLATFORMS = [ INSTEON_PLATFORMS = [
"binary_sensor", Platform.BINARY_SENSOR,
"climate", Platform.CLIMATE,
"cover", Platform.COVER,
"fan", Platform.FAN,
"light", Platform.LIGHT,
"switch", Platform.SWITCH,
] ]
X10_PLATFORMS = [ X10_PLATFORMS = [

View File

@ -4,6 +4,8 @@ from __future__ import annotations
from collections import defaultdict from collections import defaultdict
from typing import Final, Literal, Tuple, TypedDict from typing import Final, Literal, Tuple, TypedDict
from homeassistant.const import Platform
ATTR_DEVICES: Final = "devices" ATTR_DEVICES: Final = "devices"
ATTR_GATEWAY_ID: Final = "gateway_id" ATTR_GATEWAY_ID: Final = "gateway_id"
@ -144,15 +146,15 @@ SWITCH_TYPES: dict[SensorType, set[ValueType]] = {
} }
PLATFORM_TYPES: dict[str, dict[SensorType, set[ValueType]]] = { PLATFORM_TYPES: dict[Platform, dict[SensorType, set[ValueType]]] = {
"binary_sensor": BINARY_SENSOR_TYPES, Platform.BINARY_SENSOR: BINARY_SENSOR_TYPES,
"climate": CLIMATE_TYPES, Platform.CLIMATE: CLIMATE_TYPES,
"cover": COVER_TYPES, Platform.COVER: COVER_TYPES,
"device_tracker": DEVICE_TRACKER_TYPES, Platform.DEVICE_TRACKER: DEVICE_TRACKER_TYPES,
"light": LIGHT_TYPES, Platform.LIGHT: LIGHT_TYPES,
"notify": NOTIFY_TYPES, Platform.NOTIFY: NOTIFY_TYPES,
"sensor": SENSOR_TYPES, Platform.SENSOR: SENSOR_TYPES,
"switch": SWITCH_TYPES, Platform.SWITCH: SWITCH_TYPES,
} }
FLAT_PLATFORM_TYPES: dict[tuple[str, SensorType], set[ValueType]] = { FLAT_PLATFORM_TYPES: dict[tuple[str, SensorType], set[ValueType]] = {
@ -168,6 +170,6 @@ for platform, platform_types in PLATFORM_TYPES.items():
TYPE_TO_PLATFORMS[s_type_name].append(platform) TYPE_TO_PLATFORMS[s_type_name].append(platform)
PLATFORMS_WITH_ENTRY_SUPPORT = set(PLATFORM_TYPES.keys()) - { PLATFORMS_WITH_ENTRY_SUPPORT = set(PLATFORM_TYPES.keys()) - {
"notify", Platform.NOTIFY,
"device_tracker", Platform.DEVICE_TRACKER,
} }

View File

@ -6,10 +6,15 @@ from urllib.error import HTTPError, URLError
from panasonic_viera import EncryptionRequired, Keys, RemoteControl, SOAPError from panasonic_viera import EncryptionRequired, Keys, RemoteControl, SOAPError
import voluptuous as vol import voluptuous as vol
from homeassistant.components.media_player.const import DOMAIN as MEDIA_PLAYER_DOMAIN
from homeassistant.components.remote import DOMAIN as REMOTE_DOMAIN
from homeassistant.config_entries import SOURCE_IMPORT from homeassistant.config_entries import SOURCE_IMPORT
from homeassistant.const import CONF_HOST, CONF_NAME, CONF_PORT, STATE_OFF, STATE_ON from homeassistant.const import (
CONF_HOST,
CONF_NAME,
CONF_PORT,
STATE_OFF,
STATE_ON,
Platform,
)
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.script import Script from homeassistant.helpers.script import Script
@ -46,7 +51,7 @@ CONFIG_SCHEMA = vol.Schema(
extra=vol.ALLOW_EXTRA, extra=vol.ALLOW_EXTRA,
) )
PLATFORMS = [MEDIA_PLAYER_DOMAIN, REMOTE_DOMAIN] PLATFORMS = [Platform.MEDIA_PLAYER, Platform.REMOTE]
async def async_setup(hass, config): async def async_setup(hass, config):

View File

@ -11,6 +11,7 @@ from homeassistant.const import (
CONF_PIN, CONF_PIN,
CONF_SCAN_INTERVAL, CONF_SCAN_INTERVAL,
CONF_USERNAME, CONF_USERNAME,
Platform,
) )
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady from homeassistant.exceptions import ConfigEntryNotReady
@ -20,7 +21,7 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda
from .const import DATA_COORDINATOR, DEFAULT_SCAN_INTERVAL, DOMAIN, EVENTS_COORDINATOR from .const import DATA_COORDINATOR, DEFAULT_SCAN_INTERVAL, DOMAIN, EVENTS_COORDINATOR
PLATFORMS = ["alarm_control_panel", "binary_sensor", "sensor"] PLATFORMS = [Platform.ALARM_CONTROL_PANEL, Platform.BINARY_SENSOR, Platform.SENSOR]
UNDO_UPDATE_LISTENER = "undo_update_listener" UNDO_UPDATE_LISTENER = "undo_update_listener"
LAST_EVENT_STORAGE_VERSION = 1 LAST_EVENT_STORAGE_VERSION = 1
LAST_EVENT_TIMESTAMP_KEY = "last_event_timestamp" LAST_EVENT_TIMESTAMP_KEY = "last_event_timestamp"

View File

@ -9,7 +9,7 @@ from aioswitcher.device import SwitcherBase
import voluptuous as vol import voluptuous as vol
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
from homeassistant.const import CONF_DEVICE_ID, EVENT_HOMEASSISTANT_STOP from homeassistant.const import CONF_DEVICE_ID, EVENT_HOMEASSISTANT_STOP, Platform
from homeassistant.core import Event, HomeAssistant, callback from homeassistant.core import Event, HomeAssistant, callback
from homeassistant.helpers import ( from homeassistant.helpers import (
config_validation as cv, config_validation as cv,
@ -30,7 +30,7 @@ from .const import (
) )
from .utils import async_start_bridge, async_stop_bridge from .utils import async_start_bridge, async_stop_bridge
PLATFORMS = ["switch", "sensor"] PLATFORMS = [Platform.SWITCH, Platform.SENSOR]
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View File

@ -1,4 +1,6 @@
"""Constants used by multiple Tasmota modules.""" """Constants used by multiple Tasmota modules."""
from homeassistant.const import Platform
CONF_DISCOVERY_PREFIX = "discovery_prefix" CONF_DISCOVERY_PREFIX = "discovery_prefix"
DATA_REMOVE_DISCOVER_COMPONENT = "tasmota_discover_{}" DATA_REMOVE_DISCOVER_COMPONENT = "tasmota_discover_{}"
@ -9,12 +11,12 @@ DEFAULT_PREFIX = "tasmota/discovery"
DOMAIN = "tasmota" DOMAIN = "tasmota"
PLATFORMS = [ PLATFORMS = [
"binary_sensor", Platform.BINARY_SENSOR,
"cover", Platform.COVER,
"fan", Platform.FAN,
"light", Platform.LIGHT,
"sensor", Platform.SENSOR,
"switch", Platform.SWITCH,
] ]
TASMOTA_EVENT = "tasmota_event" TASMOTA_EVENT = "tasmota_event"

View File

@ -20,6 +20,7 @@ from homeassistant.const import (
CONF_EXCLUDE, CONF_EXCLUDE,
CONF_LIGHTS, CONF_LIGHTS,
EVENT_HOMEASSISTANT_STOP, EVENT_HOMEASSISTANT_STOP,
Platform,
) )
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady from homeassistant.exceptions import ConfigEntryNotReady
@ -124,7 +125,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
# Exclude devices unwanted by user. # Exclude devices unwanted by user.
devices = [device for device in all_devices if device.device_id not in exclude_ids] devices = [device for device in all_devices if device.device_id not in exclude_ids]
vera_devices = defaultdict(list) vera_devices: defaultdict[Platform, list[veraApi.VeraDevice]] = defaultdict(list)
for device in devices: for device in devices:
device_type = map_vera_device(device, light_ids) device_type = map_vera_device(device, light_ids)
if device_type is not None: if device_type is not None:
@ -144,9 +145,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
set_controller_data(hass, entry, controller_data) set_controller_data(hass, entry, controller_data)
# Forward the config data to the necessary platforms. # Forward the config data to the necessary platforms.
for platform in get_configured_platforms(controller_data): hass.config_entries.async_setup_platforms(
hass.async_create_task( entry, platforms=get_configured_platforms(controller_data)
hass.config_entries.async_forward_entry_setup(entry, platform)
) )
def stop_subscription(event): def stop_subscription(event):
@ -181,24 +181,24 @@ async def _async_update_listener(hass: HomeAssistant, entry: ConfigEntry):
await hass.config_entries.async_reload(entry.entry_id) await hass.config_entries.async_reload(entry.entry_id)
def map_vera_device(vera_device: veraApi.VeraDevice, remap: list[int]) -> str: def map_vera_device(vera_device: veraApi.VeraDevice, remap: list[int]) -> Platform:
"""Map vera classes to Home Assistant types.""" """Map vera classes to Home Assistant types."""
type_map = { type_map = {
veraApi.VeraDimmer: "light", veraApi.VeraDimmer: Platform.LIGHT,
veraApi.VeraBinarySensor: "binary_sensor", veraApi.VeraBinarySensor: Platform.BINARY_SENSOR,
veraApi.VeraSensor: "sensor", veraApi.VeraSensor: Platform.SENSOR,
veraApi.VeraArmableDevice: "switch", veraApi.VeraArmableDevice: Platform.SWITCH,
veraApi.VeraLock: "lock", veraApi.VeraLock: Platform.LOCK,
veraApi.VeraThermostat: "climate", veraApi.VeraThermostat: Platform.CLIMATE,
veraApi.VeraCurtain: "cover", veraApi.VeraCurtain: Platform.COVER,
veraApi.VeraSceneController: "sensor", veraApi.VeraSceneController: Platform.SENSOR,
veraApi.VeraSwitch: "switch", veraApi.VeraSwitch: Platform.SWITCH,
} }
def map_special_case(instance_class: type, entity_type: str) -> str: def map_special_case(instance_class: type, entity_type: Platform) -> Platform:
if instance_class is veraApi.VeraSwitch and vera_device.device_id in remap: if instance_class is veraApi.VeraSwitch and vera_device.device_id in remap:
return "light" return Platform.LIGHT
return entity_type return entity_type
return next( return next(

View File

@ -2,12 +2,13 @@
from __future__ import annotations from __future__ import annotations
from collections import defaultdict from collections import defaultdict
from collections.abc import Sequence
from typing import NamedTuple from typing import NamedTuple
import pyvera as pv import pyvera as pv
from homeassistant.components.scene import DOMAIN as SCENE_DOMAIN
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.event import call_later from homeassistant.helpers.event import call_later
@ -18,19 +19,19 @@ class ControllerData(NamedTuple):
"""Controller data.""" """Controller data."""
controller: pv.VeraController controller: pv.VeraController
devices: defaultdict[str, list[pv.VeraDevice]] devices: defaultdict[Platform, list[pv.VeraDevice]]
scenes: list[pv.VeraScene] scenes: list[pv.VeraScene]
config_entry: ConfigEntry config_entry: ConfigEntry
def get_configured_platforms(controller_data: ControllerData) -> set[str]: def get_configured_platforms(controller_data: ControllerData) -> set[Platform]:
"""Get configured platforms for a controller.""" """Get configured platforms for a controller."""
platforms = [] platforms: Sequence[Platform] = []
for platform in controller_data.devices: for platform in controller_data.devices:
platforms.append(platform) platforms.append(platform)
if controller_data.scenes: if controller_data.scenes:
platforms.append(SCENE_DOMAIN) platforms.append(Platform.SCENE)
return set(platforms) return set(platforms)

View File

@ -3,7 +3,7 @@ import logging
from pyvesync import VeSync from pyvesync import VeSync
from homeassistant.const import CONF_PASSWORD, CONF_USERNAME from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, Platform
from homeassistant.helpers import config_validation as cv from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.dispatcher import async_dispatcher_send
@ -56,15 +56,15 @@ async def async_setup_entry(hass, config_entry):
if device_dict[VS_SWITCHES]: if device_dict[VS_SWITCHES]:
switches.extend(device_dict[VS_SWITCHES]) switches.extend(device_dict[VS_SWITCHES])
hass.async_create_task(forward_setup(config_entry, "switch")) hass.async_create_task(forward_setup(config_entry, Platform.SWITCH))
if device_dict[VS_FANS]: if device_dict[VS_FANS]:
fans.extend(device_dict[VS_FANS]) fans.extend(device_dict[VS_FANS])
hass.async_create_task(forward_setup(config_entry, "fan")) hass.async_create_task(forward_setup(config_entry, Platform.FAN))
if device_dict[VS_LIGHTS]: if device_dict[VS_LIGHTS]:
lights.extend(device_dict[VS_LIGHTS]) lights.extend(device_dict[VS_LIGHTS])
hass.async_create_task(forward_setup(config_entry, "light")) hass.async_create_task(forward_setup(config_entry, Platform.LIGHT))
async def async_new_device_discovery(service): async def async_new_device_discovery(service):
"""Discover if new devices should be added.""" """Discover if new devices should be added."""