diff --git a/esphome/core/application.cpp b/esphome/core/application.cpp index d6fab018cc..d74fbe5dd0 100644 --- a/esphome/core/application.cpp +++ b/esphome/core/application.cpp @@ -309,6 +309,9 @@ void Application::disable_component_loop_(Component *component) { if (this->in_loop_ && i == this->current_loop_index_) { // Decrement so we'll process the swapped component next this->current_loop_index_--; + // Update the loop start time to current time so the swapped component + // gets correct timing instead of inheriting stale timing + this->loop_component_start_time_ = millis(); } } return;