1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-31 07:03:55 +00:00
This commit is contained in:
J. Nick Koston
2025-10-26 14:56:50 -07:00
parent 464d949181
commit 9836a563b8

View File

@@ -58,14 +58,22 @@ CONFIG_SCHEMA = cv.All(
async def to_code(config):
var = await lock.new_lock(config)
await cg.register_component(var, config)
if CONF_LAMBDA in config:
# Use new_lambda_pvariable to create either TemplateLock or StatelessTemplateLock
template_ = await cg.process_lambda(
config[CONF_LAMBDA], [], return_type=cg.optional.template(lock.LockState)
)
cg.add(var.set_state_lambda(template_))
var = automation.new_lambda_pvariable(
config[CONF_ID], template_, StatelessTemplateLock
)
# Manually register as lock since we didn't use new_lock
await lock.register_lock(var, config)
await cg.register_component(var, config)
else:
# No lambda - just create the base template lock
var = await lock.new_lock(config)
await cg.register_component(var, config)
if CONF_UNLOCK_ACTION in config:
await automation.build_automation(
var.get_unlock_trigger(), [], config[CONF_UNLOCK_ACTION]