1
0
mirror of https://github.com/esphome/esphome.git synced 2026-02-08 00:31:58 +00:00

[template.water_heater] Avoid heap allocation for trigger (#13712)

This commit is contained in:
J. Nick Koston
2026-02-02 07:36:08 +01:00
committed by GitHub
parent c0e5ae4298
commit 6114005952
2 changed files with 4 additions and 4 deletions

View File

@@ -5,7 +5,7 @@ namespace esphome::template_ {
static const char *const TAG = "template.water_heater";
TemplateWaterHeater::TemplateWaterHeater() : set_trigger_(new Trigger<>()) {}
TemplateWaterHeater::TemplateWaterHeater() = default;
void TemplateWaterHeater::setup() {
if (this->restore_mode_ == TemplateWaterHeaterRestoreMode::WATER_HEATER_RESTORE ||
@@ -78,7 +78,7 @@ void TemplateWaterHeater::control(const water_heater::WaterHeaterCall &call) {
}
}
this->set_trigger_->trigger();
this->set_trigger_.trigger();
if (this->optimistic_) {
this->publish_state();

View File

@@ -28,7 +28,7 @@ class TemplateWaterHeater : public Component, public water_heater::WaterHeater {
this->supported_modes_ = modes;
}
Trigger<> *get_set_trigger() const { return this->set_trigger_; }
Trigger<> *get_set_trigger() { return &this->set_trigger_; }
void setup() override;
void loop() override;
@@ -42,7 +42,7 @@ class TemplateWaterHeater : public Component, public water_heater::WaterHeater {
water_heater::WaterHeaterTraits traits() override;
// Ordered to minimize padding on 32-bit: 4-byte members first, then smaller
Trigger<> *set_trigger_;
Trigger<> set_trigger_;
TemplateLambda<float> current_temperature_f_;
TemplateLambda<water_heater::WaterHeaterMode> mode_f_;
TemplateWaterHeaterRestoreMode restore_mode_{WATER_HEATER_NO_RESTORE};