Merge pull request #5669 from digiblur/patch-1

Add Tuya Dimmer 10 second heartbeat
This commit is contained in:
Theo Arends 2019-04-18 10:24:51 +02:00 committed by GitHub
commit fcff477a17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 0 deletions

View File

@ -1,4 +1,5 @@
/* 6.5.0.8 20190413 /* 6.5.0.8 20190413
* Add Tuya Dimmer 10 second heartbeat serial packet required by some Tuya dimmer secondary MCUs
* Fix use of SerialDelimiter value 128 (#5634) * Fix use of SerialDelimiter value 128 (#5634)
* Fix lost syslog connection regression from 6.5.0.4 * Fix lost syslog connection regression from 6.5.0.4
* Add Shelly 2.5 Energy Monitoring (#5592) * Add Shelly 2.5 Energy Monitoring (#5592)

View File

@ -52,6 +52,7 @@ uint8_t tuya_cmd_status = 0; // Current status of serial-read
uint8_t tuya_cmd_checksum = 0; // Checksum of tuya command uint8_t tuya_cmd_checksum = 0; // Checksum of tuya command
uint8_t tuya_data_len = 0; // Data lenght of command uint8_t tuya_data_len = 0; // Data lenght of command
int8_t tuya_wifi_state = -2; // Keep MCU wifi-status in sync with WifiState() int8_t tuya_wifi_state = -2; // Keep MCU wifi-status in sync with WifiState()
uint8_t tuya_heartbeat_timer = 0; // 10 second heartbeat timer for tuya module
char *tuya_buffer = nullptr; // Serial receive buffer char *tuya_buffer = nullptr; // Serial receive buffer
int tuya_byte_counter = 0; // Index in serial receive buffer int tuya_byte_counter = 0; // Index in serial receive buffer
@ -294,6 +295,7 @@ void TuyaInit(void)
TuyaSendCmd(TUYA_CMD_MCU_CONF); TuyaSendCmd(TUYA_CMD_MCU_CONF);
} }
} }
tuya_heartbeat_timer = 0; // init heartbeat timer when dimmer init is done
} }
void TuyaSerialInput(void) void TuyaSerialInput(void)
@ -410,6 +412,11 @@ bool Xdrv16(uint8_t function)
break; break;
case FUNC_EVERY_SECOND: case FUNC_EVERY_SECOND:
if(TuyaSerial && tuya_wifi_state!=WifiState()) { TuyaSetWifiLed(); } if(TuyaSerial && tuya_wifi_state!=WifiState()) { TuyaSetWifiLed(); }
tuya_heartbeat_timer++;
if (tuya_heartbeat_timer > 10) {
tuya_heartbeat_timer = 0;
TuyaSendCmd(TUYA_CMD_HEARTBEAT);
}
break; break;
case FUNC_SET_CHANNELS: case FUNC_SET_CHANNELS:
result = TuyaSetChannels(); result = TuyaSetChannels();