diff --git a/esphome/components/copy/lock/copy_lock.cpp b/esphome/components/copy/lock/copy_lock.cpp index 25bd8c33ef..c846954510 100644 --- a/esphome/components/copy/lock/copy_lock.cpp +++ b/esphome/components/copy/lock/copy_lock.cpp @@ -7,7 +7,7 @@ namespace copy { static const char *const TAG = "copy.lock"; void CopyLock::setup() { - source_->add_on_state_callback([this]() { this->publish_state(source_->state); }); + source_->add_on_state_callback([this](lock::LockState state) { this->publish_state(state); }); traits.set_assumed_state(source_->traits.get_assumed_state()); traits.set_requires_code(source_->traits.get_requires_code()); diff --git a/esphome/components/lock/__init__.py b/esphome/components/lock/__init__.py index 31626ef6eb..0df4b20cba 100644 --- a/esphome/components/lock/__init__.py +++ b/esphome/components/lock/__init__.py @@ -84,8 +84,8 @@ def lock_schema( @setup_entity("lock") async def _setup_lock_core(var, config): for conf_key, state_enum in ( - (CONF_ON_LOCK, "lock::LockState::LOCK_STATE_LOCKED"), - (CONF_ON_UNLOCK, "lock::LockState::LOCK_STATE_UNLOCKED"), + (CONF_ON_LOCK, LockState.LOCK_STATE_LOCKED), + (CONF_ON_UNLOCK, LockState.LOCK_STATE_UNLOCKED), ): for conf in config.get(conf_key, []): await automation.build_callback_automation( @@ -93,7 +93,7 @@ async def _setup_lock_core(var, config): "add_on_state_callback", [], conf, - forwarder=LockStateForwarder.template(cg.RawExpression(state_enum)), + forwarder=LockStateForwarder.template(state_enum), ) if mqtt_id := config.get(CONF_MQTT_ID): diff --git a/esphome/components/lock/lock.h b/esphome/components/lock/lock.h index 666fbe36f9..543a4b51a8 100644 --- a/esphome/components/lock/lock.h +++ b/esphome/components/lock/lock.h @@ -148,7 +148,7 @@ class Lock : public EntityBase { /** Set callback for state changes. * - * @param callback The void(bool) callback. + * @param callback The void(LockState) callback. */ template void add_on_state_callback(F &&callback) { this->state_callback_.add(std::forward(callback));