diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ab512904..4aecd2079 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,8 @@ All notable changes to this project will be documented in this file. ### Added - Support for HYTxxx temperature and humidity sensor (#15715) - Support for Sensirion SHT4X using define USE_SHT3X (#15349) -- Command ``SSerialSend9 0/1`` to enable Serial Bridge console Tee for debugging purposes +- Command ``SSerialSend9 1`` to enable Serial Bridge console Tee for debugging purposes +- Command ``SetOption142 1`` to wait 1 second for wifi connection solving some FRITZ!Box modem issues (#14985) ### Changed - Restructured tasmota source directories taking benefit from PlatformIO Core v6.0.2 diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 92c4b0aa5..702b3d74f 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -112,6 +112,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmo - Command ``SetOption139 0/1`` to switch between pressure unit "mmHg" (0) or "inHg" (1) when ``SO24 1`` [#15350](https://github.com/arendst/Tasmota/issues/15350) - Command ``SetOption140 0/1`` to switch between MQTT Clean Session (0) or Persistent Session (1) [#15530](https://github.com/arendst/Tasmota/issues/15530) - Command ``SetOption141 1`` to disable display of module name in GUI header +- Command ``SetOption142 1`` to wait 1 second for wifi connection solving some FRITZ!Box modem issues [#14985](https://github.com/arendst/Tasmota/issues/14985) - Command ``EnergyExportActive`` to (p)reset energy export active for supported devices. Currently ADE7880 only [#13515](https://github.com/arendst/Tasmota/issues/13515) - Command ``IfxRp ""|`` adds optional InfluxDb Retention Policy [#15513](https://github.com/arendst/Tasmota/issues/15513) - Command ``SspmDisplay 2`` to display Sonoff SPM energy data in GUI for user tab-selected relay modules [#13447](https://github.com/arendst/Tasmota/issues/13447) diff --git a/tasmota/include/tasmota_types.h b/tasmota/include/tasmota_types.h index 94a766e2b..a501d90d0 100644 --- a/tasmota/include/tasmota_types.h +++ b/tasmota/include/tasmota_types.h @@ -169,7 +169,7 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu uint32_t mm_vs_inch : 1; // bit 25 (v11.1.0.1) - SetOption139 - (Pressure) Switch between mmHg (0) or inHg (1) when SO24 1 uint32_t mqtt_persistent : 1; // bit 26 (v11.1.0.1) - SetOption140 - (MQTT) MQTT clean session (0 = default) or persistent session (1) uint32_t gui_module_name : 1; // bit 27 (v11.1.0.3) - SetOption141 - (GUI) Disable display of GUI module name (1) - uint32_t spare28 : 1; // bit 28 + uint32_t wait_for_wifi_result : 1; // bit 28 (v11.1.0.4) - SetOption142 - (Wifi) Wait 1 second for wifi connection solving some FRITZ!Box modem issues (1) uint32_t spare29 : 1; // bit 29 uint32_t spare30 : 1; // bit 30 uint32_t spare31 : 1; // bit 31 diff --git a/tasmota/tasmota_support/support_wifi.ino b/tasmota/tasmota_support/support_wifi.ino index 0d3fd0717..e9c119289 100644 --- a/tasmota/tasmota_support/support_wifi.ino +++ b/tasmota/tasmota_support/support_wifi.ino @@ -33,7 +33,7 @@ #define WIFI_RESCAN_MINUTES 44 // Number of minutes between wifi network rescan #endif #ifndef WIFI_RETRY_SECONDS -#define WIFI_RETRY_SECONDS 12 // Number of seconds connection to wifi network will retry +#define WIFI_RETRY_SECONDS 20 // Number of seconds connection to wifi network will retry #endif const uint8_t WIFI_CONFIG_SEC = 180; // seconds before restart @@ -237,7 +237,9 @@ void WifiBegin(uint8_t flag, uint8_t channel) AddLog(LOG_LEVEL_INFO, PSTR(D_LOG_WIFI D_CONNECTING_TO_AP "%d %s%s " D_IN_MODE " 11%c " D_AS " %s..."), Settings->sta_active +1, SettingsText(SET_STASSID1 + Settings->sta_active), stemp, pgm_read_byte(&kWifiPhyMode[WiFi.getPhyMode() & 0x3]), TasmotaGlobal.hostname); - WiFi.waitForConnectResult(1000); + if (Settings->flag5.wait_for_wifi_result) { // SetOption142 - (Wifi) Wait 1 second for wifi connection solving some FRITZ!Box modem issues (1) + WiFi.waitForConnectResult(1000); // https://github.com/arendst/Tasmota/issues/14985 + } #if LWIP_IPV6 for (bool configured = false; !configured;) { @@ -421,7 +423,7 @@ void WifiCheckIp(void) { } else { WifiSetState(0); uint8_t wifi_config_tool = Settings->sta_config; - Wifi.status = WiFi.status(); + Wifi.status = (Wifi.retry &1) ? WiFi.status() : 0; // Skip every second to reset result WiFi.status() switch (Wifi.status) { case WL_CONNECTED: AddLog(LOG_LEVEL_INFO, PSTR(D_LOG_WIFI D_CONNECT_FAILED_NO_IP_ADDRESS)); @@ -483,13 +485,12 @@ void WifiCheckIp(void) { WifiBegin(2, 0); // Select alternate SSID } } - Wifi.counter = 1; Wifi.retry--; } else { WifiConfig(wifi_config_tool); - Wifi.counter = 1; Wifi.retry = Wifi.retry_init; } + Wifi.counter = 1; // Re-check in 1 second } } diff --git a/tools/decode-status.py b/tools/decode-status.py index 21b75ed3b..cde2a575e 100755 --- a/tools/decode-status.py +++ b/tools/decode-status.py @@ -196,7 +196,8 @@ a_setoption = [[ "(Pressure) Switch between mmHg (0) or inHg (1) when SO24 1", "(MQTT) MQTT clean session (0 = default) or persistent session (1)", "(GUI) Disable display of GUI module name (1)", - "","","","" + "(Wifi) Wait 1 second for wifi connection solving some FRITZ!Box modem issues (1)", + "","","" ],[ "","","","", "","","","",