1
0
mirror of https://github.com/esphome/esphome.git synced 2025-11-18 07:45:56 +00:00

reduce flash

This commit is contained in:
J. Nick Koston
2025-11-09 18:27:36 -06:00
parent 609855f5a7
commit b5a24f5b70

View File

@@ -199,12 +199,11 @@ int8_t WiFiComponent::find_next_hidden_sta_(int8_t start_index) {
// Start searching from start_index + 1 // Start searching from start_index + 1
for (size_t i = start_index + 1; i < this->sta_.size(); i++) { for (size_t i = start_index + 1; i < this->sta_.size(); i++) {
if (!this->ssid_was_seen_in_scan_(this->sta_[i].get_ssid())) { if (!this->ssid_was_seen_in_scan_(this->sta_[i].get_ssid())) {
ESP_LOGD(TAG, "Found potentially hidden SSID " LOG_SECRET("'%s'") " at index %d", ESP_LOGD(TAG, "Hidden candidate " LOG_SECRET("'%s'") " at index %d", this->sta_[i].get_ssid().c_str(),
this->sta_[i].get_ssid().c_str(), static_cast<int>(i)); static_cast<int>(i));
return static_cast<int8_t>(i); return static_cast<int8_t>(i);
} }
ESP_LOGD(TAG, "Skipping SSID " LOG_SECRET("'%s'") " - was visible in scan results (not hidden)", ESP_LOGD(TAG, "Skipping " LOG_SECRET("'%s'") " (visible in scan)", this->sta_[i].get_ssid().c_str());
this->sta_[i].get_ssid().c_str());
} }
// No hidden SSIDs found // No hidden SSIDs found
return -1; return -1;
@@ -213,13 +212,13 @@ int8_t WiFiComponent::find_next_hidden_sta_(int8_t start_index) {
void WiFiComponent::start_initial_connection_() { void WiFiComponent::start_initial_connection_() {
// If all networks are configured as hidden, skip scanning and go straight to hidden mode // If all networks are configured as hidden, skip scanning and go straight to hidden mode
if (this->all_networks_hidden_()) { if (this->all_networks_hidden_()) {
ESP_LOGI(TAG, "Starting WiFi with hidden network mode (all networks configured as hidden)"); ESP_LOGI(TAG, "Starting in hidden mode (all networks hidden)");
this->selected_sta_index_ = 0; this->selected_sta_index_ = 0;
this->retry_phase_ = WiFiRetryPhase::SCAN_WITH_HIDDEN; this->retry_phase_ = WiFiRetryPhase::SCAN_WITH_HIDDEN;
WiFiAP params = this->build_wifi_ap_from_selected_(); WiFiAP params = this->build_wifi_ap_from_selected_();
this->start_connecting(params, false); this->start_connecting(params, false);
} else { } else {
ESP_LOGI(TAG, "Starting WiFi with scan-based connection"); ESP_LOGI(TAG, "Starting scan");
this->start_scanning(); this->start_scanning();
} }
} }
@@ -305,9 +304,8 @@ void WiFiComponent::start() {
this->selected_sta_index_ = 0; this->selected_sta_index_ = 0;
params = this->build_wifi_ap_from_selected_(); params = this->build_wifi_ap_from_selected_();
} }
ESP_LOGI(TAG, "Starting WiFi with fast_connect (%s), trying " LOG_SECRET("'%s'"), ESP_LOGI(TAG, "Starting fast_connect (%s) " LOG_SECRET("'%s'"),
loaded_fast_connect ? LOG_STR_LITERAL("saved credentials") : LOG_STR_LITERAL("no saved data"), loaded_fast_connect ? LOG_STR_LITERAL("saved") : LOG_STR_LITERAL("config"), params.get_ssid().c_str());
params.get_ssid().c_str());
// Always start with INITIAL_CONNECT phase when using fast_connect // Always start with INITIAL_CONNECT phase when using fast_connect
this->retry_phase_ = WiFiRetryPhase::INITIAL_CONNECT; this->retry_phase_ = WiFiRetryPhase::INITIAL_CONNECT;
this->start_connecting(params, false); this->start_connecting(params, false);
@@ -1000,7 +998,7 @@ void WiFiComponent::check_connecting_finished() {
if (const WiFiAP *config = this->get_selected_sta_(); this->retry_phase_ == WiFiRetryPhase::SCAN_WITH_HIDDEN && if (const WiFiAP *config = this->get_selected_sta_(); this->retry_phase_ == WiFiRetryPhase::SCAN_WITH_HIDDEN &&
config && !config->get_hidden() && config && !config->get_hidden() &&
this->scan_result_.empty()) { this->scan_result_.empty()) {
ESP_LOGW(TAG, "Network " LOG_SECRET("'%s'") " should be marked as hidden", config->get_ssid().c_str()); ESP_LOGW(TAG, LOG_SECRET("'%s'") " should be marked hidden", config->get_ssid().c_str());
} }
// Reset to initial phase on successful connection (don't start scan, just reset state) // Reset to initial phase on successful connection (don't start scan, just reset state)
this->transition_to_phase_(WiFiRetryPhase::INITIAL_CONNECT); this->transition_to_phase_(WiFiRetryPhase::INITIAL_CONNECT);
@@ -1176,7 +1174,7 @@ bool WiFiComponent::transition_to_phase_(WiFiRetryPhase new_phase) {
// Transitioning to scan-based connection // Transitioning to scan-based connection
#ifdef USE_WIFI_FAST_CONNECT #ifdef USE_WIFI_FAST_CONNECT
if (old_phase == WiFiRetryPhase::INITIAL_CONNECT || old_phase == WiFiRetryPhase::FAST_CONNECT_CYCLING_APS) { if (old_phase == WiFiRetryPhase::INITIAL_CONNECT || old_phase == WiFiRetryPhase::FAST_CONNECT_CYCLING_APS) {
ESP_LOGI(TAG, "Fast connect exhausted, falling back to scan-based connection"); ESP_LOGI(TAG, "Fast connect exhausted, falling back to scan");
this->selected_sta_index_ = 0; this->selected_sta_index_ = 0;
} }
#else #else
@@ -1202,7 +1200,7 @@ bool WiFiComponent::transition_to_phase_(WiFiRetryPhase new_phase) {
this->selected_sta_index_ = this->find_next_hidden_sta_(-1); this->selected_sta_index_ = this->find_next_hidden_sta_(-1);
if (this->selected_sta_index_ == -1) { if (this->selected_sta_index_ == -1) {
ESP_LOGD(TAG, "All configured SSIDs were visible in scan - skipping hidden mode"); ESP_LOGD(TAG, "All SSIDs visible, skipping hidden mode");
} }
} }
break; break;
@@ -1261,8 +1259,8 @@ void WiFiComponent::log_and_adjust_priority_for_failed_connect_() {
ssid = config->get_ssid(); ssid = config->get_ssid();
} }
ESP_LOGD(TAG, "Connection failed to " LOG_SECRET("'%s'") " " LOG_SECRET("(%s)") ", decreased priority %.1f → %.1f", ESP_LOGD(TAG, "Failed " LOG_SECRET("'%s'") " " LOG_SECRET("(%s)") ", priority %.1f → %.1f", ssid.c_str(),
ssid.c_str(), format_mac_address_pretty(failed_bssid.value().data()).c_str(), old_priority, new_priority); format_mac_address_pretty(failed_bssid.value().data()).c_str(), old_priority, new_priority);
} }
/// Handle target advancement or retry counter increment when staying in the same phase /// Handle target advancement or retry counter increment when staying in the same phase
@@ -1284,7 +1282,7 @@ void WiFiComponent::advance_to_next_target_or_increment_retry_() {
// Fast connect: always advance to next AP (no retries per AP) // Fast connect: always advance to next AP (no retries per AP)
this->selected_sta_index_++; this->selected_sta_index_++;
this->num_retried_ = 0; this->num_retried_ = 0;
ESP_LOGD(TAG, "Advanced to next AP in phase %s", LOG_STR_ARG(retry_phase_to_log_string(this->retry_phase_))); ESP_LOGD(TAG, "Next AP in %s", LOG_STR_ARG(retry_phase_to_log_string(this->retry_phase_)));
return; return;
} }
#endif #endif