diff --git a/esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp b/esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp index 5fff9dbcad..760aac628a 100644 --- a/esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +++ b/esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp @@ -176,9 +176,9 @@ void ESP32BLETracker::loop() { https://github.com/espressif/esp-idf/issues/6688 */ - if (!connecting && !disconnecting && xSemaphoreTake(this->scan_end_lock_, 0L)) { + if (!connecting && xSemaphoreTake(this->scan_end_lock_, 0L)) { if (this->scan_continuous_) { - if (!promote_to_connecting && !this->scan_start_failed_ && !this->scan_set_param_failed_) { + if (!disconnecting && !promote_to_connecting && !this->scan_start_failed_ && !this->scan_set_param_failed_) { this->start_scan_(false); } else { // We didn't start the scan, so we need to release the lock