From 6e685f1b2d84d787edac3fefcde0a9aa1a77abf5 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 6 Nov 2025 17:15:57 -0600 Subject: [PATCH] dry --- esphome/components/wifi/wifi_component.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/esphome/components/wifi/wifi_component.cpp b/esphome/components/wifi/wifi_component.cpp index 5c9b23d025..bd18cc6f1b 100644 --- a/esphome/components/wifi/wifi_component.cpp +++ b/esphome/components/wifi/wifi_component.cpp @@ -381,19 +381,16 @@ WiFiAP WiFiComponent::build_wifi_ap_from_selected_() const { params.set_bssid(scan.get_bssid()); params.set_channel(scan.get_channel()); // hidden defaults to false, no need to set explicitly - } else if (config->get_hidden()) { - // For hidden networks, use config SSID but clear BSSID and channel + } else { + // No scan data - use config SSID + params.set_ssid(config->get_ssid()); + const bool hidden = config->get_hidden(); + params.set_hidden(hidden); + // Hidden network - clear BSSID and channel even if set in config // There might be multiple hidden networks with same SSID but we can't know which is correct // Rely on probe-req with just SSID. Empty channel triggers ALL_CHANNEL_SCAN. - params.set_ssid(config->get_ssid()); - params.set_hidden(true); - params.set_bssid(optional{}); - params.set_channel(optional{}); - } else { - // No scan data, visible network - use all config values - params.set_ssid(config->get_ssid()); - params.set_bssid(config->get_bssid()); - params.set_channel(config->get_channel()); + params.set_bssid(hidden ? optional{} : config->get_bssid()); + params.set_channel(hidden ? optional{} : config->get_channel()); } return params;