mirror of
https://github.com/esphome/esphome.git
synced 2026-10-07 19:44:08 +00:00
[wifi] Leave the AP before an LN882x reboots (#20176)
This commit is contained in:
@@ -506,6 +506,9 @@ class WiFiComponent final : public Component {
|
||||
// (In most use cases you won't need these)
|
||||
/// Setup WiFi interface.
|
||||
void setup() override;
|
||||
#ifdef USE_LN882X
|
||||
void on_powerdown() override;
|
||||
#endif
|
||||
void start();
|
||||
void dump_config() override;
|
||||
void restart_adapter();
|
||||
|
||||
@@ -800,6 +800,17 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
||||
network::IPAddress WiFiComponent::wifi_soft_ap_ip() { return {WiFi.softAPIP()}; }
|
||||
#endif // USE_WIFI_AP
|
||||
|
||||
#ifdef USE_LN882X
|
||||
void WiFiComponent::on_powerdown() {
|
||||
// Leave the AP so it no longer holds the association when we come back.
|
||||
if (WiFi.status() != WL_CONNECTED) // associated, even before DHCP has finished
|
||||
return;
|
||||
ESP_LOGD(TAG, "Disconnecting before powerdown");
|
||||
wifi_sta_disconnect(); // not WiFi.disconnect(): it frees the SSID its event handlers read
|
||||
delay(100); // NOLINT: once per reboot or deep sleep, lets the deauth go out
|
||||
}
|
||||
#endif
|
||||
|
||||
bool WiFiComponent::wifi_disconnect_() {
|
||||
// Reset state first so disconnect events aren't ignored
|
||||
// and wifi_sta_connect_status_() returns IDLE instead of CONNECTING
|
||||
|
||||
Reference in New Issue
Block a user