mirror of
https://github.com/esphome/esphome.git
synced 2025-11-16 23:05:46 +00:00
30 lines
818 B
C++
30 lines
818 B
C++
#include "copy_lock.h"
|
|
#include "esphome/core/log.h"
|
|
|
|
namespace esphome {
|
|
namespace copy {
|
|
|
|
static const char *const TAG = "copy.lock";
|
|
|
|
void CopyLock::setup() {
|
|
source_->add_on_state_callback([this]() { this->publish_state(source_->state); });
|
|
|
|
traits.set_assumed_state(source_->traits.get_assumed_state());
|
|
traits.set_requires_code(source_->traits.get_requires_code());
|
|
traits.set_supported_states(source_->traits.get_supported_states());
|
|
traits.set_supports_open(source_->traits.get_supports_open());
|
|
|
|
this->publish_state(source_->state);
|
|
}
|
|
|
|
void CopyLock::dump_config() { LOG_LOCK("", "Copy Lock", this); }
|
|
|
|
void CopyLock::control(const lock::LockCall &call) {
|
|
auto call2 = source_->make_call();
|
|
call2.set_state(call.get_state());
|
|
call2.perform();
|
|
}
|
|
|
|
} // namespace copy
|
|
} // namespace esphome
|