1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-31 23:21:54 +00:00

Merge branch 'elimate_optional' into integration

This commit is contained in:
J. Nick Koston
2025-10-29 17:57:55 -05:00
7 changed files with 13 additions and 24 deletions

View File

@@ -9,10 +9,7 @@ namespace template_ {
class TemplateBinarySensor : public Component, public binary_sensor::BinarySensor { class TemplateBinarySensor : public Component, public binary_sensor::BinarySensor {
public: public:
template<typename F> void set_template(F &&f) { template<typename F> void set_template(F &&f) { this->f_.set(std::forward<F>(f)); }
this->f_.set(std::forward<F>(f));
this->enable_loop();
}
void setup() override; void setup() override;
void loop() override; void loop() override;

View File

@@ -18,14 +18,8 @@ class TemplateCover : public cover::Cover, public Component {
public: public:
TemplateCover(); TemplateCover();
template<typename F> void set_state_lambda(F &&f) { template<typename F> void set_state_lambda(F &&f) { this->state_f_.set(std::forward<F>(f)); }
this->state_f_.set(std::forward<F>(f)); template<typename F> void set_tilt_lambda(F &&f) { this->tilt_f_.set(std::forward<F>(f)); }
this->enable_loop();
}
template<typename F> void set_tilt_lambda(F &&f) {
this->tilt_f_.set(std::forward<F>(f));
this->enable_loop();
}
Trigger<> *get_open_trigger() const; Trigger<> *get_open_trigger() const;
Trigger<> *get_close_trigger() const; Trigger<> *get_close_trigger() const;
Trigger<> *get_stop_trigger() const; Trigger<> *get_stop_trigger() const;

View File

@@ -11,6 +11,11 @@ static const char *const TAG = "template.lock";
TemplateLock::TemplateLock() TemplateLock::TemplateLock()
: lock_trigger_(new Trigger<>()), unlock_trigger_(new Trigger<>()), open_trigger_(new Trigger<>()) {} : lock_trigger_(new Trigger<>()), unlock_trigger_(new Trigger<>()), open_trigger_(new Trigger<>()) {}
void TemplateLock::setup() {
if (!this->f_.has_value())
this->disable_loop();
}
void TemplateLock::loop() { void TemplateLock::loop() {
auto val = this->f_(); auto val = this->f_();
if (val.has_value()) { if (val.has_value()) {

View File

@@ -12,12 +12,10 @@ class TemplateLock : public lock::Lock, public Component {
public: public:
TemplateLock(); TemplateLock();
void setup() override;
void dump_config() override; void dump_config() override;
template<typename F> void set_state_lambda(F &&f) { template<typename F> void set_state_lambda(F &&f) { this->f_.set(std::forward<F>(f)); }
this->f_.set(std::forward<F>(f));
this->enable_loop();
}
Trigger<> *get_lock_trigger() const; Trigger<> *get_lock_trigger() const;
Trigger<> *get_unlock_trigger() const; Trigger<> *get_unlock_trigger() const;
Trigger<> *get_open_trigger() const; Trigger<> *get_open_trigger() const;

View File

@@ -15,10 +15,7 @@ class TemplateSwitch : public switch_::Switch, public Component {
void setup() override; void setup() override;
void dump_config() override; void dump_config() override;
template<typename F> void set_state_lambda(F &&f) { template<typename F> void set_state_lambda(F &&f) { this->f_.set(std::forward<F>(f)); }
this->f_.set(std::forward<F>(f));
this->enable_loop();
}
Trigger<> *get_turn_on_trigger() const; Trigger<> *get_turn_on_trigger() const;
Trigger<> *get_turn_off_trigger() const; Trigger<> *get_turn_off_trigger() const;
void set_optimistic(bool optimistic); void set_optimistic(bool optimistic);

View File

@@ -18,10 +18,7 @@ class TemplateValve : public valve::Valve, public Component {
public: public:
TemplateValve(); TemplateValve();
template<typename F> void set_state_lambda(F &&f) { template<typename F> void set_state_lambda(F &&f) { this->state_f_.set(std::forward<F>(f)); }
this->state_f_.set(std::forward<F>(f));
this->enable_loop();
}
Trigger<> *get_open_trigger() const; Trigger<> *get_open_trigger() const;
Trigger<> *get_close_trigger() const; Trigger<> *get_close_trigger() const;
Trigger<> *get_stop_trigger() const; Trigger<> *get_stop_trigger() const;

View File

@@ -32,6 +32,7 @@ switch:
name: "Test Switch" name: "Test Switch"
id: test_switch id: test_switch
optimistic: true optimistic: true
lambda: return false;
interval: interval:
- interval: 0.5s - interval: 0.5s