diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index f63cac508..8b155b64f 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -12,6 +12,7 @@ This release is based on the latest Espressif/Arduino core version 3. It brings - Commands Service that can be called via MQTT or API or used in the Scheduler Service - option to disable factory reset [#3150](https://github.com/emsesp/EMS-ESP32/issues/3150) - TLS support with 4MB boards without PSRAM +- added eth_10mbit, which forces 10BASE-T half-duplex & autonegotiation off, halving the PHY’s power draw. It’s off by default as it will cause issues on managed switches with a port forced to 100Mb [#3213](https://github.com/emsesp/EMS-ESP32/pull/3213) ## Fixed @@ -36,4 +37,8 @@ This release is based on the latest Espressif/Arduino core version 3. It brings - changes to the Dialogs in Dashboard page, removed the run icon in the Commands page. Renamed Execute to Run. - set `None` for undefined values in HA `val_tpl` - changes in WebUI - remove multiple calls systemInfo endpoint, Vewrsion pages checks for internet connection [#3195](https://github.com/emsesp/EMS-ESP32/pull/3195) +- added yield to main loop, so core 1’s idle task is run [#3213](https://github.com/emsesp/EMS-ESP32/pull/3213) +- power down WiFi when Ethernet is active, releasing DMA buffer pool of around 20KB [#3213](https://github.com/emsesp/EMS-ESP32/pull/3213) +- WiFi nosleep takes effect on next reconnect [#3213](https://github.com/emsesp/EMS-ESP32/pull/3213) + diff --git a/src/core/network.cpp b/src/core/network.cpp index e201654eb..4c6626d05 100644 --- a/src/core/network.cpp +++ b/src/core/network.cpp @@ -500,8 +500,8 @@ void Network::startWiFiRadio() { // scan settings give connect issues since arduino 2.0.14 and arduino 3.x.x with some wifi systems WiFi.setScanMethod(WIFI_ALL_CHANNEL_SCAN); // default is FAST_SCAN WiFi.setHostname(hostname_.c_str()); // updates shared default_hostname buffer - WiFi.enableSTA(true); // no-op if already STA; recreates netif after a full off - WiFi.STA.setHostname(hostname_.c_str()); // pushes to esp_netif_set_hostname + WiFi.enableSTA(true); // no-op if already STA; recreates netif after a full off + WiFi.STA.setHostname(hostname_.c_str()); // pushes to esp_netif_set_hostname WiFi.enableIPv6(true); if (staticIPConfig_) { WiFi.config(localIP_, gatewayIP_, subnetMask_, dnsIP1_, dnsIP2_); // configure for static IP @@ -525,6 +525,7 @@ void Network::startWiFiRadio() { // Power down the WiFi radio completely (esp_wifi_stop), used when Ethernet is carrying the traffic. // An idle STA still keeps the receiver powered, which on an Ethernet gateway is a pure waste of heat. +// also unloads the driver's DMA buffer pool of around 20KB void Network::stopWiFiRadio() { #ifndef EMSESP_STANDALONE if (wifi_radio_off_) { @@ -533,7 +534,7 @@ void Network::stopWiFiRadio() { WiFi.mode(WIFI_OFF); wifi_radio_off_ = true; wifi_connect_pending_ = false; - LOG_INFO("Powering down WiFi radio, Ethernet is active"); + LOG_DEBUG("Powering down WiFi radio, Ethernet is active"); #endif } diff --git a/src/emsesp_version.h b/src/emsesp_version.h index e7d93e24b..2bce065ab 100644 --- a/src/emsesp_version.h +++ b/src/emsesp_version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.9.0-dev.6" +#define EMSESP_APP_VERSION "3.9.0-dev.7"