Home IO Control
ESPHome add-on for IO-Homecontrol devices
Toggle main menu visibility
Loading...
Searching...
No Matches
lock.py
Go to the documentation of this file.
1
## @file
2
## @brief ESPHome lock platform schema and code generation.
3
## @ingroup hioc_codegen
4
##
5
## Defines the experimental IO-Homecontrol lock integration and wires it to the shared hub.
6
## Shared device-binding logic lives in platform_common.py; only lock-specific entity
7
## construction/registration stays here.
8
9
import
esphome.codegen
as
cg
10
import
esphome.config_validation
as
cv
11
from
esphome.components
import
lock
12
from
esphome.const
import
CONF_ID
13
14
from
.
import
home_io_control_ns
15
from
.platform_common
import
(
16
create_companion_sensors,
17
inject_companion_sensor_ids,
18
platform_schema_extension,
19
wire_device_binding,
20
CONF_HOME_IO_CONTROL_ID,
21
)
22
23
DEPENDENCIES = [
"home_io_control"
]
24
25
IOHomeLock = home_io_control_ns.class_(
"IOHomeLock"
, lock.Lock, cg.Component)
26
27
28
def
_inject_companion_ids
(config):
29
return
inject_companion_sensor_ids(config, CONF_ID)
30
31
32
CONFIG_SCHEMA = cv.All(
33
lock.lock_schema(IOHomeLock)
34
.extend(platform_schema_extension())
35
.extend(cv.COMPONENT_SCHEMA),
36
_inject_companion_ids,
37
)
38
39
40
async def
to_code
(config):
41
var = cg.new_Pvariable(config[CONF_ID])
42
await cg.register_component(var, config)
43
await lock.register_lock(var, config)
44
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)
home_io_control.lock.to_code
to_code(config)
Definition
lock.py:40
home_io_control.lock._inject_companion_ids
_inject_companion_ids(config)
Definition
lock.py:28
components
home_io_control
lock.py
Generated by
1.18.0