9import esphome.codegen
as cg
10import esphome.config_validation
as cv
11from esphome.components
import lock
12from esphome.const
import CONF_ID
14from .
import home_io_control_ns
15from .platform_common
import (
16 create_companion_sensors,
17 inject_companion_sensor_ids,
18 platform_schema_extension,
20 CONF_HOME_IO_CONTROL_ID,
23DEPENDENCIES = [
"home_io_control"]
25IOHomeLock = home_io_control_ns.class_(
"IOHomeLock", lock.Lock, cg.Component)
29 return inject_companion_sensor_ids(config, CONF_ID)
32CONFIG_SCHEMA = cv.All(
33 lock.lock_schema(IOHomeLock)
34 .extend(platform_schema_extension())
35 .extend(cv.COMPONENT_SCHEMA),
36 _inject_companion_ids,
41 var = cg.new_Pvariable(config[CONF_ID])
42 await cg.register_component(var, config)
43 await lock.register_lock(var, config)
45 parent = await cg.get_variable(config[CONF_HOME_IO_CONTROL_ID])
46 await wire_device_binding(var, parent, config)
47 await create_companion_sensors(config, parent)
_inject_companion_ids(config)