diff --git a/esphome/components/copy/fan/copy_fan.cpp b/esphome/components/copy/fan/copy_fan.cpp index b939338b244..9ec4d8f9736 100644 --- a/esphome/components/copy/fan/copy_fan.cpp +++ b/esphome/components/copy/fan/copy_fan.cpp @@ -39,7 +39,7 @@ fan::FanTraits CopyFan::get_traits() { // Copy preset modes from source to avoid dangling pointer to temporary if (base.supports_preset_modes()) { const auto &source_modes = base.supported_preset_modes(); - this->preset_modes_.clear(); + this->preset_modes_.init(source_modes.size()); for (const auto &mode : source_modes) { this->preset_modes_.push_back(mode); }