11import esphome.codegen
as cg
12import esphome.config_validation
as cv
13from esphome.components
import switch
14from esphome.const
import CONF_ID
16from .
import home_io_control_ns
17from .platform_common
import (
18 create_companion_sensors,
19 inject_companion_sensor_ids,
20 platform_schema_extension,
22 CONF_HOME_IO_CONTROL_ID,
25DEPENDENCIES = [
"home_io_control"]
27IOHomeSwitch = home_io_control_ns.class_(
"IOHomeSwitch", switch.Switch, cg.Component)
31 return inject_companion_sensor_ids(config, CONF_ID)
34CONFIG_SCHEMA = cv.All(
37 switch.switch_schema(IOHomeSwitch)
38 .extend(platform_schema_extension())
39 .extend(cv.COMPONENT_SCHEMA),
40 _inject_companion_ids,
45 var = cg.new_Pvariable(config[CONF_ID])
46 await cg.register_component(var, config)
47 await switch.register_switch(var, config)
49 parent = await cg.get_variable(config[CONF_HOME_IO_CONTROL_ID])
52 await wire_device_binding(var, parent, config)
53 await create_companion_sensors(config, parent)
_inject_companion_ids(config)