From 858d1503985b34e33732fba85d16fa4ef5e21c9c Mon Sep 17 00:00:00 2001 From: Walter Zengel Date: Thu, 16 Jul 2020 16:42:06 +0200 Subject: [PATCH 1/2] issues #8866 update tuyatime every 60sec --- tasmota/xdrv_16_tuyamcu.ino | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tasmota/xdrv_16_tuyamcu.ino b/tasmota/xdrv_16_tuyamcu.ino index 7165126f5..47adaaf65 100644 --- a/tasmota/xdrv_16_tuyamcu.ino +++ b/tasmota/xdrv_16_tuyamcu.ino @@ -62,6 +62,9 @@ struct TUYA { uint8_t data_len = 0; // Data lenght of command uint8_t wifi_state = -2; // Keep MCU wifi-status in sync with WifiState() uint8_t heartbeat_timer = 0; // 10 second heartbeat timer for tuya module +#ifdef USE_TUYA_TIME + uint8_t settime_timer = 0; // 60 second settime timer for tuya module +#endif //USE_TUYA_TIME #ifdef USE_ENERGY_SENSOR uint32_t lastPowerCheckTime = 0; // Time when last power was checked #endif // USE_ENERGY_SENSOR @@ -881,6 +884,13 @@ bool Xdrv16(uint8_t function) Tuya.heartbeat_timer = 0; TuyaSendCmd(TUYA_CMD_HEARTBEAT); } + #ifdef USE_TUYA_TIME + Tuya.settime_timer++; + if (Tuya.settime_timer > 60) { + Tuya.settime_timer = 0; + TuyaSetTime(); + } + #endif } else { TuyaSendLowPowerSuccessIfNeeded(); } From 88138273766bceb6d16b36302aa45a900f03461a Mon Sep 17 00:00:00 2001 From: Walter Zengel Date: Thu, 16 Jul 2020 17:13:19 +0200 Subject: [PATCH 2/2] issues #8866 --- tasmota/xdrv_16_tuyamcu.ino | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/tasmota/xdrv_16_tuyamcu.ino b/tasmota/xdrv_16_tuyamcu.ino index 47adaaf65..982a5c796 100644 --- a/tasmota/xdrv_16_tuyamcu.ino +++ b/tasmota/xdrv_16_tuyamcu.ino @@ -62,9 +62,6 @@ struct TUYA { uint8_t data_len = 0; // Data lenght of command uint8_t wifi_state = -2; // Keep MCU wifi-status in sync with WifiState() uint8_t heartbeat_timer = 0; // 10 second heartbeat timer for tuya module -#ifdef USE_TUYA_TIME - uint8_t settime_timer = 0; // 60 second settime timer for tuya module -#endif //USE_TUYA_TIME #ifdef USE_ENERGY_SENSOR uint32_t lastPowerCheckTime = 0; // Time when last power was checked #endif // USE_ENERGY_SENSOR @@ -543,9 +540,6 @@ void TuyaNormalPowerModePacketProcess(void) if (Tuya.buffer[6] == 0) { AddLog_P(LOG_LEVEL_DEBUG, PSTR("TYA: Detected MCU restart")); Tuya.wifi_state = -2; - #ifdef USE_TUYA_TIME - TuyaSetTime(); - #endif } break; @@ -885,12 +879,10 @@ bool Xdrv16(uint8_t function) TuyaSendCmd(TUYA_CMD_HEARTBEAT); } #ifdef USE_TUYA_TIME - Tuya.settime_timer++; - if (Tuya.settime_timer > 60) { - Tuya.settime_timer = 0; + if (!(uptime % 60)) { TuyaSetTime(); - } - #endif + } + #endif //USE_TUYA_TIME } else { TuyaSendLowPowerSuccessIfNeeded(); }