mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-25 11:46:31 +00:00
Command `SetOption127 1
to force Wifi in no-sleep mode even if
Sleep 0
` is not enabled
This commit is contained in:
parent
d5585adbb2
commit
1c15552210
@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
|
|||||||
### Added
|
### Added
|
||||||
- Initial support for Tasmota Mesh (TasMesh) providing node/broker communication using ESP-NOW (#11939)
|
- Initial support for Tasmota Mesh (TasMesh) providing node/broker communication using ESP-NOW (#11939)
|
||||||
- MQTT minimum password length restriction in GUI (#12553)
|
- MQTT minimum password length restriction in GUI (#12553)
|
||||||
|
- Command ``SetOption127 1`` to force Wifi in no-sleep mode even if ``Sleep 0`` is not enabled
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- ESP32 core library from v1.0.7 to v1.0.7.1
|
- ESP32 core library from v1.0.7 to v1.0.7.1
|
||||||
|
@ -355,6 +355,8 @@
|
|||||||
#define D_CMND_GLOBAL_TEMP "GlobalTemp"
|
#define D_CMND_GLOBAL_TEMP "GlobalTemp"
|
||||||
#define D_CMND_GLOBAL_HUM "GlobalHum"
|
#define D_CMND_GLOBAL_HUM "GlobalHum"
|
||||||
|
|
||||||
|
#define D_SO_WIFINOSLEEP "WifiNoSleep"
|
||||||
|
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
#define D_CMND_TOUCH_CAL "TouchCal"
|
#define D_CMND_TOUCH_CAL "TouchCal"
|
||||||
#define D_CMND_TOUCH_THRES "TouchThres"
|
#define D_CMND_TOUCH_THRES "TouchThres"
|
||||||
|
@ -156,7 +156,7 @@ typedef union { // Restricted by MISRA-C Rule 18.4 bu
|
|||||||
uint32_t wiegand_keypad_to_tag : 1; // bit 10 (v9.3.1.1) - SetOption124 - (Wiegand) send key pad stroke as single char (0) or one tag (ending char #) (1)
|
uint32_t wiegand_keypad_to_tag : 1; // bit 10 (v9.3.1.1) - SetOption124 - (Wiegand) send key pad stroke as single char (0) or one tag (ending char #) (1)
|
||||||
uint32_t zigbee_hide_bridge_topic : 1; // bit 11 (v9.3.1.1) - SetOption125 - (Zigbee) Hide bridge topic from zigbee topic (use with SetOption89) (1)
|
uint32_t zigbee_hide_bridge_topic : 1; // bit 11 (v9.3.1.1) - SetOption125 - (Zigbee) Hide bridge topic from zigbee topic (use with SetOption89) (1)
|
||||||
uint32_t ds18x20_mean : 1; // bit 12 (v9.3.1.2) - SetOption126 - (DS18x20) Enable arithmetic mean over teleperiod for JSON temperature (1)
|
uint32_t ds18x20_mean : 1; // bit 12 (v9.3.1.2) - SetOption126 - (DS18x20) Enable arithmetic mean over teleperiod for JSON temperature (1)
|
||||||
uint32_t spare13 : 1; // bit 13
|
uint32_t wifi_no_sleep : 1; // bit 13 (v9.5.0.2) - SetOption127 - (Wifi) keep wifi in no-sleep mode, prevents some occasional unresponsiveness
|
||||||
uint32_t spare14 : 1; // bit 14
|
uint32_t spare14 : 1; // bit 14
|
||||||
uint32_t spare15 : 1; // bit 15
|
uint32_t spare15 : 1; // bit 15
|
||||||
uint32_t spare16 : 1; // bit 16
|
uint32_t spare16 : 1; // bit 16
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const char kTasmotaCommands[] PROGMEM = "|" // No prefix
|
const char kTasmotaCommands[] PROGMEM = "|" // No prefix
|
||||||
|
// SetOptions synonyms
|
||||||
|
D_SO_WIFINOSLEEP "|"
|
||||||
|
// Other commands
|
||||||
D_CMND_BACKLOG "|" D_CMND_DELAY "|" D_CMND_POWER "|" D_CMND_STATUS "|" D_CMND_STATE "|" D_CMND_SLEEP "|" D_CMND_UPGRADE "|" D_CMND_UPLOAD "|" D_CMND_OTAURL "|"
|
D_CMND_BACKLOG "|" D_CMND_DELAY "|" D_CMND_POWER "|" D_CMND_STATUS "|" D_CMND_STATE "|" D_CMND_SLEEP "|" D_CMND_UPGRADE "|" D_CMND_UPLOAD "|" D_CMND_OTAURL "|"
|
||||||
D_CMND_SERIALLOG "|" D_CMND_RESTART "|" D_CMND_POWERONSTATE "|" D_CMND_PULSETIME "|" D_CMND_BLINKTIME "|" D_CMND_BLINKCOUNT "|" D_CMND_SAVEDATA "|"
|
D_CMND_SERIALLOG "|" D_CMND_RESTART "|" D_CMND_POWERONSTATE "|" D_CMND_PULSETIME "|" D_CMND_BLINKTIME "|" D_CMND_BLINKCOUNT "|" D_CMND_SAVEDATA "|"
|
||||||
D_CMND_SO "|" D_CMND_SETOPTION "|" D_CMND_TEMPERATURE_RESOLUTION "|" D_CMND_HUMIDITY_RESOLUTION "|" D_CMND_PRESSURE_RESOLUTION "|" D_CMND_POWER_RESOLUTION "|"
|
D_CMND_SO "|" D_CMND_SETOPTION "|" D_CMND_TEMPERATURE_RESOLUTION "|" D_CMND_HUMIDITY_RESOLUTION "|" D_CMND_PRESSURE_RESOLUTION "|" D_CMND_POWER_RESOLUTION "|"
|
||||||
@ -45,6 +48,10 @@ const char kTasmotaCommands[] PROGMEM = "|" // No prefix
|
|||||||
#endif // ESP32
|
#endif // ESP32
|
||||||
;
|
;
|
||||||
|
|
||||||
|
SO_SYNONYMS(kTasmotaSynonyms,
|
||||||
|
127,
|
||||||
|
);
|
||||||
|
|
||||||
void (* const TasmotaCommand[])(void) PROGMEM = {
|
void (* const TasmotaCommand[])(void) PROGMEM = {
|
||||||
&CmndBacklog, &CmndDelay, &CmndPower, &CmndStatus, &CmndState, &CmndSleep, &CmndUpgrade, &CmndUpgrade, &CmndOtaUrl,
|
&CmndBacklog, &CmndDelay, &CmndPower, &CmndStatus, &CmndState, &CmndSleep, &CmndUpgrade, &CmndUpgrade, &CmndOtaUrl,
|
||||||
&CmndSeriallog, &CmndRestart, &CmndPowerOnState, &CmndPulsetime, &CmndBlinktime, &CmndBlinkcount, &CmndSavedata,
|
&CmndSeriallog, &CmndRestart, &CmndPowerOnState, &CmndPulsetime, &CmndBlinktime, &CmndBlinkcount, &CmndSavedata,
|
||||||
@ -281,7 +288,7 @@ void CommandHandler(char* topicBuf, char* dataBuf, uint32_t data_len)
|
|||||||
#ifdef USE_SCRIPT_SUB_COMMAND
|
#ifdef USE_SCRIPT_SUB_COMMAND
|
||||||
// allow overwrite tasmota cmds
|
// allow overwrite tasmota cmds
|
||||||
if (!Script_SubCmd()) {
|
if (!Script_SubCmd()) {
|
||||||
if (!DecodeCommand(kTasmotaCommands, TasmotaCommand)) {
|
if (!DecodeCommand(kTasmotaCommands, TasmotaCommand, kTasmotaSynonyms)) {
|
||||||
if (!XdrvCall(FUNC_COMMAND)) {
|
if (!XdrvCall(FUNC_COMMAND)) {
|
||||||
if (!XsnsCall(FUNC_COMMAND)) {
|
if (!XsnsCall(FUNC_COMMAND)) {
|
||||||
type = nullptr; // Unknown command
|
type = nullptr; // Unknown command
|
||||||
@ -290,7 +297,7 @@ void CommandHandler(char* topicBuf, char* dataBuf, uint32_t data_len)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else // USE_SCRIPT_SUB_COMMAND
|
#else // USE_SCRIPT_SUB_COMMAND
|
||||||
if (!DecodeCommand(kTasmotaCommands, TasmotaCommand)) {
|
if (!DecodeCommand(kTasmotaCommands, TasmotaCommand, kTasmotaSynonyms)) {
|
||||||
if (!XdrvCall(FUNC_COMMAND)) {
|
if (!XdrvCall(FUNC_COMMAND)) {
|
||||||
if (!XsnsCall(FUNC_COMMAND)) {
|
if (!XsnsCall(FUNC_COMMAND)) {
|
||||||
type = nullptr; // Unknown command
|
type = nullptr; // Unknown command
|
||||||
|
@ -159,16 +159,15 @@ void WiFiSetSleepMode(void)
|
|||||||
WiFi.setSleepMode(WIFI_MODEM_SLEEP); // Disable sleep (Esp8288/Arduino core and sdk default)
|
WiFi.setSleepMode(WIFI_MODEM_SLEEP); // Disable sleep (Esp8288/Arduino core and sdk default)
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
if (0 == TasmotaGlobal.sleep) {
|
bool wifi_no_sleep = Settings->flag5.wifi_no_sleep;
|
||||||
|
#ifdef CONFIG_IDF_TARGET_ESP32C3
|
||||||
|
wifi_no_sleep = true; // temporary patch for IDF4.4, wifi sleeping may cause wifi drops
|
||||||
|
#endif
|
||||||
|
if (0 == TasmotaGlobal.sleep || wifi_no_sleep) {
|
||||||
if (!TasmotaGlobal.wifi_stay_asleep) {
|
if (!TasmotaGlobal.wifi_stay_asleep) {
|
||||||
WiFi.setSleepMode(WIFI_NONE_SLEEP); // Disable sleep
|
WiFi.setSleepMode(WIFI_NONE_SLEEP); // Disable sleep
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
#ifdef CONFIG_IDF_TARGET_ESP32C3
|
|
||||||
if (!TasmotaGlobal.wifi_stay_asleep) {
|
|
||||||
WiFi.setSleepMode(WIFI_NONE_SLEEP); // Disable sleep
|
|
||||||
} else
|
|
||||||
#endif
|
|
||||||
if (Settings->flag3.sleep_normal) { // SetOption60 - Enable normal sleep instead of dynamic sleep
|
if (Settings->flag3.sleep_normal) { // SetOption60 - Enable normal sleep instead of dynamic sleep
|
||||||
WiFi.setSleepMode(WIFI_LIGHT_SLEEP); // Allow light sleep during idle times
|
WiFi.setSleepMode(WIFI_LIGHT_SLEEP); // Allow light sleep during idle times
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user