1 """Support for Rflink switches."""
3 from __future__
import annotations
5 import voluptuous
as vol
8 PLATFORM_SCHEMA
as SWITCH_PLATFORM_SCHEMA,
24 CONF_SIGNAL_REPETITIONS,
25 DEVICE_DEFAULTS_SCHEMA,
27 from .entity
import SwitchableRflinkDevice
31 PLATFORM_SCHEMA = SWITCH_PLATFORM_SCHEMA.extend(
35 ): DEVICE_DEFAULTS_SCHEMA,
36 vol.Optional(CONF_DEVICES, default={}): {
37 cv.string: vol.Schema(
39 vol.Optional(CONF_NAME): cv.string,
40 vol.Optional(CONF_ALIASES, default=[]): vol.All(
41 cv.ensure_list, [cv.string]
43 vol.Optional(CONF_GROUP_ALIASES, default=[]): vol.All(
44 cv.ensure_list, [cv.string]
46 vol.Optional(CONF_NOGROUP_ALIASES, default=[]): vol.All(
47 cv.ensure_list, [cv.string]
49 vol.Optional(CONF_FIRE_EVENT): cv.boolean,
50 vol.Optional(CONF_SIGNAL_REPETITIONS): vol.Coerce(int),
51 vol.Optional(CONF_GROUP, default=
True): cv.boolean,
56 extra=vol.ALLOW_EXTRA,
61 """Parse configuration and add Rflink switch devices."""
63 for device_id, config
in domain_config[CONF_DEVICES].items():
64 device_config =
dict(domain_config[CONF_DEVICE_DEFAULTS], **config)
66 devices.append(device)
74 async_add_entities: AddEntitiesCallback,
75 discovery_info: DiscoveryInfoType |
None =
None,
77 """Set up the Rflink platform."""
82 """Representation of a Rflink switch."""
None async_setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback async_add_entities, DiscoveryInfoType|None discovery_info=None)
def devices_from_config(domain_config)