Skip to content

WiFi: Fix setSleep() using cached instead of provided sleep type#12296

Merged
me-no-dev merged 1 commit into
espressif:masterfrom
niliha:fix-wifi-set-sleep
Feb 9, 2026
Merged

WiFi: Fix setSleep() using cached instead of provided sleep type#12296
me-no-dev merged 1 commit into
espressif:masterfrom
niliha:fix-wifi-set-sleep

Conversation

@niliha
Copy link
Copy Markdown
Contributor

@niliha niliha commented Jan 31, 2026

Description of Change

It seems that with this commit a bug was introduced, where setSleep() does not set the provided sleep type on the driver, but uses a cached value which defaults to a power saving mode for all platforms expect for ESP32S2.
This only happens if WiFi has already been started in STA mode before invoking setSleep().

In my case (ESP32), when invoking setSleep(false) only once, this leads to the unexpected result that the sleep mode is still active.

This PR proposes a minimal change to use the provided sleep mode instead of using the cached value.

Test Scenario

  • ESP-IDF v5.5.2
  • arduino-esp32 v3.3.6
  • ESP32-DevKitC

Reproduction Steps

  1. Initialize WiFi in STA mode
  2. Invoke WiFi.setSleep(false)

Expected Result (with Fix)

WiFi sleep mode is set to WIFI_PS_NONE;

Actual Result (without Fix)

WiFi sleep mode is set to WIFI_PS_MIN_MODEM;

@niliha niliha requested a review from me-no-dev as a code owner January 31, 2026 19:25
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Jan 31, 2026

CLA assistant check
All committers have signed the CLA.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 31, 2026

Messages
📖 🎉 Good Job! All checks are passing!

👋 Hello niliha, we appreciate your contribution to this project!


📘 Please review the project's Contributions Guide for key guidelines on code, documentation, testing, and more.

🖊️ Please also make sure you have read and signed the Contributor License Agreement for this project.

Click to see more instructions ...


This automated output is generated by the PR linter DangerJS, which checks if your Pull Request meets the project's requirements and helps you fix potential issues.

DangerJS is triggered with each push event to a Pull Request and modify the contents of this comment.

Please consider the following:
- Danger mainly focuses on the PR structure and formatting and can't understand the meaning behind your code or changes.
- Danger is not a substitute for human code reviews; it's still important to request a code review from your colleagues.
- To manually retry these Danger checks, please navigate to the Actions tab and re-run last Danger workflow.

Review and merge process you can expect ...


We do welcome contributions in the form of bug reports, feature requests and pull requests.

1. An internal issue has been created for the PR, we assign it to the relevant engineer.
2. They review the PR and either approve it or ask you for changes or clarifications.
3. Once the GitHub PR is approved we do the final review, collect approvals from core owners and make sure all the automated tests are passing.
- At this point we may do some adjustments to the proposed change, or extend it by adding tests or documentation.
4. If the change is approved and passes the tests it is merged into the default branch.

Generated by 🚫 dangerJS against dc28fd7

@niliha niliha force-pushed the fix-wifi-set-sleep branch from 5e44b63 to dc28fd7 Compare February 1, 2026 01:15
Copy link
Copy Markdown
Member

@P-R-O-C-H-Y P-R-O-C-H-Y left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch. LGTM

@P-R-O-C-H-Y P-R-O-C-H-Y added Type: Bug 🐛 All bugs Status: Review needed Issue or PR is awaiting review Area: WiFi Issue related to WiFi labels Feb 3, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 3, 2026

Test Results

0 tests   0 ✅  0s ⏱️
0 suites  0 💤
0 files    0 ❌

Results for commit dc28fd7.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 3, 2026

Memory usage test (comparing PR against master branch)

The table below shows the summary of memory usage change (decrease - increase) in bytes and percentage for each target.

MemoryFLASH [bytes]FLASH [%]RAM [bytes]RAM [%]
TargetDECINCDECINCDECINCDECINC
ESP32💚 -1600.000.00000.000.00
ESP32C3000.000.00000.000.00
ESP32C5000.000.00000.000.00
ESP32C6000.000.00000.000.00
ESP32H2000.000.00000.000.00
ESP32P4000.000.00000.000.00
ESP32S20⚠️ +40.000.00000.000.00
ESP32S30⚠️ +40.000.00000.000.00
Click to expand the detailed deltas report [usage change in BYTES]
TargetESP32ESP32C3ESP32C5ESP32C6ESP32H2ESP32P4ESP32S2ESP32S3
ExampleFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAM
libraries/ArduinoOTA/examples/BasicOTA00000000--000000
libraries/ArduinoOTA/examples/SignedOTA00000000--000000
libraries/AsyncUDP/examples/AsyncUDPClient00000000--000000
libraries/AsyncUDP/examples/AsyncUDPMulticastServer00000000--000000
libraries/AsyncUDP/examples/AsyncUDPServer00000000--000000
libraries/DNSServer/examples/CaptivePortal00000000--000000
libraries/ESP32/examples/Camera/CameraWebServer00----------⚠️ +40⚠️ +40
ESP32/examples/Camera/CameraWebServer (2)00----------⚠️ +40⚠️ +40
libraries/ESP32/examples/Time/SimpleTime00000000--000000
libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master00000000----0000
libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave00000000----0000
libraries/ESP_NOW/examples/ESP_NOW_Network00000000----0000
libraries/ESP_NOW/examples/ESP_NOW_Serial00000000----0000
libraries/ESPmDNS/examples/mDNS-SD_Extended00000000--000000
libraries/ESPmDNS/examples/mDNS_Web_Server00000000--000000
libraries/Ethernet/examples/ETH_WIFI_BRIDGE00000000--000000
libraries/FFat/examples/FFat_time00000000--000000
libraries/HTTPClient/examples/Authorization00000000--000000
libraries/HTTPClient/examples/BasicHttpClient00000000--000000
libraries/HTTPClient/examples/BasicHttpsClient00000000--000000
libraries/HTTPClient/examples/CustomHeaders00000000--000000
libraries/HTTPClient/examples/HTTPClientEnterprise00000000----0000
libraries/HTTPClient/examples/ReuseConnection00000000--000000
libraries/HTTPClient/examples/StreamHttpClient00000000--000000
libraries/HTTPUpdate/examples/httpUpdate00000000--000000
libraries/HTTPUpdate/examples/httpUpdateSPIFFS00000000--000000
libraries/HTTPUpdate/examples/httpUpdateSecure00000000--000000
libraries/HTTPUpdateServer/examples/WebUpdater00000000--000000
libraries/Insights/examples/DiagnosticsSmokeTest00000000----0000
libraries/Insights/examples/MinimalDiagnostics00000000----0000
libraries/LittleFS/examples/LITTLEFS_time00000000--000000
libraries/Matter/examples/MatterColorLight0000000000--0000
libraries/Matter/examples/MatterCommissionTest0000000000--0000
libraries/Matter/examples/MatterComposedLights0000000000--0000
libraries/Matter/examples/MatterContactSensor0000000000--0000
libraries/Matter/examples/MatterDimmableLight0000000000--0000
libraries/Matter/examples/MatterDimmablePlugin0000000000--0000
libraries/Matter/examples/MatterEnhancedColorLight0000000000--0000
libraries/Matter/examples/MatterEvents0000000000--0000
libraries/Matter/examples/MatterFan0000000000--0000
libraries/Matter/examples/MatterHumiditySensor0000000000--0000
libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs0000000000--0000
libraries/Matter/examples/MatterMinimum0000000000--0000
libraries/Matter/examples/MatterOccupancySensor0000000000--0000
libraries/Matter/examples/MatterOccupancyWithHoldTime0000000000--0000
libraries/Matter/examples/MatterOnIdentify0000000000--0000
libraries/Matter/examples/MatterOnOffLight0000000000--0000
libraries/Matter/examples/MatterOnOffPlugin0000000000--0000
libraries/Matter/examples/MatterPressureSensor0000000000--0000
libraries/Matter/examples/MatterRainSensor0000000000--0000
libraries/Matter/examples/MatterSimpleBlinds0000000000--0000
libraries/Matter/examples/MatterSmartButton0000000000--0000
libraries/Matter/examples/MatterStatus0000000000--0000
libraries/Matter/examples/MatterTemperatureControlledCabinet0000000000--0000
libraries/Matter/examples/MatterTemperatureControlledCabinetLevels0000000000--0000
libraries/Matter/examples/MatterTemperatureLight0000000000--0000
libraries/Matter/examples/MatterTemperatureSensor0000000000--0000
libraries/Matter/examples/MatterThermostat0000000000--0000
libraries/Matter/examples/MatterWaterFreezeDetector0000000000--0000
libraries/Matter/examples/MatterWaterLeakDetector0000000000--0000
libraries/Matter/examples/MatterWindowCovering0000000000--0000
libraries/NetBIOS/examples/ESP_NBNST00000000--000000
libraries/NetworkClientSecure/examples/WiFiClientInsecure00000000--000000
libraries/NetworkClientSecure/examples/WiFiClientPSK00000000--000000
libraries/NetworkClientSecure/examples/WiFiClientSecure00000000--000000
libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise00000000----0000
libraries/NetworkClientSecure/examples/WiFiClientSecureProtocolUpgrade00000000--000000
libraries/NetworkClientSecure/examples/WiFiClientShowPeerCredentials00000000--000000
libraries/NetworkClientSecure/examples/WiFiClientTrustOnFirstUse00000000--000000
libraries/PPP/examples/PPP_WIFI_BRIDGE00000000--000000
libraries/SD/examples/SD_time00000000--000000
libraries/SD_MMC/examples/SDMMC_time00--------00--00
libraries/SPIFFS/examples/SPIFFS_time00000000--000000
libraries/Update/examples/AWS_S3_OTA_Update00000000--000000
libraries/Update/examples/HTTPS_OTA_Update00000000--000000
libraries/Update/examples/HTTP_Client_AES_OTA_Update00000000--000000
libraries/Update/examples/HTTP_Server_AES_OTA_Update00000000--000000
libraries/Update/examples/OTAWebUpdater00000000--000000
libraries/Update/examples/Signed_OTA_Update00000000--000000
libraries/WebServer/examples/AdvancedWebServer00000000--000000
libraries/WebServer/examples/ChunkWriting00000000--000000
libraries/WebServer/examples/FSBrowser00000000--000000
libraries/WebServer/examples/Filters00000000--000000
libraries/WebServer/examples/HelloServer00000000--000000
libraries/WebServer/examples/HttpAdvancedAuth00000000--000000
libraries/WebServer/examples/HttpAuthCallback00000000--000000
libraries/WebServer/examples/HttpAuthCallbackInline00000000--000000
libraries/WebServer/examples/HttpBasicAuth00000000--000000
libraries/WebServer/examples/HttpBasicAuthSHA100000000--000000
libraries/WebServer/examples/HttpBasicAuthSHA1orBearerToken💚 -160000000--000000
libraries/WebServer/examples/Middleware00000000----0000
libraries/WebServer/examples/MultiHomedServers00000000--000000
libraries/WebServer/examples/PathArgServer00000000--000000
libraries/WebServer/examples/SDWebServer00000000--000000
libraries/WebServer/examples/SimpleAuthentification00000000--000000
libraries/WebServer/examples/UploadHugeFile00000000--000000
libraries/WebServer/examples/WebServer00000000--000000
libraries/WebServer/examples/WebUpdate00000000--000000
libraries/WiFi/examples/FTM/FTM_Initiator00000000--000000
libraries/WiFi/examples/FTM/FTM_Responder00000000--000000
libraries/WiFi/examples/SimpleWiFiServer00000000--000000
libraries/WiFi/examples/WPS00000000----0000
libraries/WiFi/examples/WiFiAccessPoint00000000--000000
libraries/WiFi/examples/WiFiBlueToothSwitch00000000------00
libraries/WiFi/examples/WiFiClient00000000--000000
libraries/WiFi/examples/WiFiClientBasic00000000--000000
libraries/WiFi/examples/WiFiClientConnect00000000--000000
libraries/WiFi/examples/WiFiClientEnterprise00000000----0000
libraries/WiFi/examples/WiFiClientEvents00000000--000000
libraries/WiFi/examples/WiFiClientStaticIP00000000--000000
libraries/WiFi/examples/WiFiExtender00000000--000000
libraries/WiFi/examples/WiFiIPv600000000--000000
libraries/WiFi/examples/WiFiMulti00000000--000000
libraries/WiFi/examples/WiFiMultiAdvanced00000000--000000
libraries/WiFi/examples/WiFiScan00000000--000000
libraries/WiFi/examples/WiFiScanAsync00000000--000000
libraries/WiFi/examples/WiFiScanDualAntenna00000000--000000
libraries/WiFi/examples/WiFiScanTime00000000--000000
libraries/WiFi/examples/WiFiSmartConfig00000000----0000
libraries/WiFi/examples/WiFiTelnetToSerial00000000--000000
libraries/WiFi/examples/WiFiUDPClient00000000--000000
libraries/WiFiProv/examples/WiFiProv00000000----0000
libraries/Zigbee/examples/Zigbee_Gateway000000------0000
libraries/RainMaker/examples/RMakerCustom--000000----0000
libraries/RainMaker/examples/RMakerCustomAirCooler--000000----0000
libraries/RainMaker/examples/RMakerSonoffDualR3--000000----0000
libraries/RainMaker/examples/RMakerSwitch--000000----0000
libraries/ESP_HostedOTA/examples/ESP_HostedOTA----------00----
ESP32/examples/Camera/CameraWebServer (3)--------------⚠️ +40

@me-no-dev me-no-dev added Status: Pending Merge Pull Request is ready to be merged and removed Status: Review needed Issue or PR is awaiting review labels Feb 9, 2026
@me-no-dev me-no-dev merged commit c4a9a59 into espressif:master Feb 9, 2026
113 of 114 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: WiFi Issue related to WiFi Status: Pending Merge Pull Request is ready to be merged Type: Bug 🐛 All bugs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants