diff --git a/lib/libesp32/ESP32-to-ESP8266-compat/src/ESP32Wifi.cpp b/lib/libesp32/ESP32-to-ESP8266-compat/src/ESP32Wifi.cpp index 9ce191cde..a72d95cb6 100644 --- a/lib/libesp32/ESP32-to-ESP8266-compat/src/ESP32Wifi.cpp +++ b/lib/libesp32/ESP32-to-ESP8266-compat/src/ESP32Wifi.cpp @@ -19,6 +19,7 @@ // #include "Arduino.h" #include +#include // // Wifi @@ -35,7 +36,15 @@ void WiFiClass32::setSleepMode(int iSleepMode) int WiFiClass32::getPhyMode() { - return 0; // " BGN" + int phy_mode = 0; // " BGNL" + uint8_t protocol_bitmap; + if (esp_wifi_get_protocol(WIFI_IF_STA, &protocol_bitmap) == ESP_OK) { + if (protocol_bitmap & 1) { phy_mode = 1; } // 11b + if (protocol_bitmap & 2) { phy_mode = 2; } // 11g + if (protocol_bitmap & 4) { phy_mode = 3; } // 11n + if (protocol_bitmap & 8) { phy_mode = 4; } // Low rate + } + return phy_mode; } void WiFiClass32::wps_disable() diff --git a/tasmota/support_wifi.ino b/tasmota/support_wifi.ino index 87d0110f1..6cba8a053 100644 --- a/tasmota/support_wifi.ino +++ b/tasmota/support_wifi.ino @@ -163,7 +163,7 @@ void WiFiSetSleepMode(void) void WifiBegin(uint8_t flag, uint8_t channel) { - const char kWifiPhyMode[] = " BGN"; + const char kWifiPhyMode[] = " bgnl"; #ifdef USE_EMULATION UdpDisconnect();