ESPHome 2026.1.0-dev
Loading...
Searching...
No Matches
automation.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace esphome::lock {
8
9template<typename... Ts> class LockAction : public Action<Ts...> {
10 public:
11 explicit LockAction(Lock *a_lock) : lock_(a_lock) {}
12
13 void play(const Ts &...x) override { this->lock_->lock(); }
14
15 protected:
17};
18
19template<typename... Ts> class UnlockAction : public Action<Ts...> {
20 public:
21 explicit UnlockAction(Lock *a_lock) : lock_(a_lock) {}
22
23 void play(const Ts &...x) override { this->lock_->unlock(); }
24
25 protected:
27};
28
29template<typename... Ts> class OpenAction : public Action<Ts...> {
30 public:
31 explicit OpenAction(Lock *a_lock) : lock_(a_lock) {}
32
33 void play(const Ts &...x) override { this->lock_->open(); }
34
35 protected:
37};
38
39template<typename... Ts> class LockCondition : public Condition<Ts...> {
40 public:
41 LockCondition(Lock *parent, bool state) : parent_(parent), state_(state) {}
42 bool check(const Ts &...x) override {
44 return this->parent_->state == check_state;
45 }
46
47 protected:
49 bool state_;
50};
51
52template<LockState State> class LockStateTrigger : public Trigger<> {
53 public:
54 explicit LockStateTrigger(Lock *a_lock) {
55 a_lock->add_on_state_callback([this, a_lock]() {
56 if (a_lock->state == State) {
57 this->trigger();
58 }
59 });
60 }
61};
62
65
66} // namespace esphome::lock
Base class for all automation conditions.
Definition automation.h:183
void trigger(const Ts &...x)
Definition automation.h:204
LockAction(Lock *a_lock)
Definition automation.h:11
void play(const Ts &...x) override
Definition automation.h:13
LockCondition(Lock *parent, bool state)
Definition automation.h:41
bool check(const Ts &...x) override
Definition automation.h:42
Base class for all locks.
Definition lock.h:111
void lock()
Turn this lock on.
Definition lock.cpp:31
void add_on_state_callback(std::function< void()> &&callback)
Set callback for state changes.
Definition lock.cpp:62
LockState state
The current reported state of the lock.
Definition lock.h:130
void unlock()
Turn this lock off.
Definition lock.cpp:36
void open()
Open (unlatch) this lock.
Definition lock.cpp:41
void play(const Ts &...x) override
Definition automation.h:33
OpenAction(Lock *a_lock)
Definition automation.h:31
void play(const Ts &...x) override
Definition automation.h:23
bool state
Definition fan.h:0
@ LOCK_STATE_UNLOCKED
Definition lock.h:28
@ LOCK_STATE_LOCKED
Definition lock.h:27
uint16_t x
Definition tt21100.cpp:5