ESPHome 2026.1.0-dev
Loading...
Searching...
No Matches
template_water_heater.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace esphome::template_ {
9
15
17 public:
19
20 template<typename F> void set_current_temperature_lambda(F &&f) {
21 this->current_temperature_f_.set(std::forward<F>(f));
22 }
23 template<typename F> void set_mode_lambda(F &&f) { this->mode_f_.set(std::forward<F>(f)); }
24
25 void set_optimistic(bool optimistic) { this->optimistic_ = optimistic; }
26 void set_restore_mode(TemplateWaterHeaterRestoreMode restore_mode) { this->restore_mode_ = restore_mode; }
27 void set_supported_modes(const std::initializer_list<water_heater::WaterHeaterMode> &modes) {
28 this->supported_modes_ = modes;
29 }
30
31 Trigger<> *get_set_trigger() const { return this->set_trigger_; }
32
33 void setup() override;
34 void loop() override;
35 void dump_config() override;
36 float get_setup_priority() const override;
37
39
40 protected:
41 void control(const water_heater::WaterHeaterCall &call) override;
43
44 // Ordered to minimize padding on 32-bit: 4-byte members first, then smaller
50 bool optimistic_{true};
51};
52
53} // namespace esphome::template_
Lightweight wrapper for template platform lambdas (stateless function pointers only).
void set(optional< T >(*f)(Args...))
Set the lambda function pointer.
TemplateWaterHeaterRestoreMode restore_mode_
void control(const water_heater::WaterHeaterCall &call) override
water_heater::WaterHeaterCallInternal make_call() override
void set_restore_mode(TemplateWaterHeaterRestoreMode restore_mode)
water_heater::WaterHeaterTraits traits() override
void set_supported_modes(const std::initializer_list< water_heater::WaterHeaterMode > &modes)
TemplateLambda< water_heater::WaterHeaterMode > mode_f_
water_heater::WaterHeaterModeMask supported_modes_