From a567226415ad76dbbc96d29b643b5f2d656f9250 Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Mon, 21 Oct 2019 17:24:03 +0100 Subject: [PATCH] Rules: Add TuyaMcuReceived#Data= rule and fix SerialReceived and SSerialRecieved rules --- sonoff/i18n.h | 1 + sonoff/sonoff.ino | 2 +- sonoff/xdrv_08_serial_bridge.ino | 2 +- sonoff/xdrv_16_tuyamcu.ino | 10 ++++------ 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/sonoff/i18n.h b/sonoff/i18n.h index e97cd1fee..76e00d35e 100644 --- a/sonoff/i18n.h +++ b/sonoff/i18n.h @@ -456,6 +456,7 @@ // Commands xdrv_16_tuyadimmer.ino #define D_CMND_TUYA_MCU "TuyaMCU" +#define D_JSON_TUYA_MCU_RECEIVED "TuyaMcuReceived" // Commands xdrv_23_zigbee.ino #define D_CMND_ZIGBEE_PERMITJOIN "ZigbeePermitJoin" diff --git a/sonoff/sonoff.ino b/sonoff/sonoff.ino index 0fbc690cc..d6fc706f7 100755 --- a/sonoff/sonoff.ino +++ b/sonoff/sonoff.ino @@ -1241,7 +1241,7 @@ void SerialInput(void) if (Settings.flag.mqtt_serial && serial_in_byte_counter && (millis() > (serial_polling_window + SERIAL_POLLING))) { serial_in_buffer[serial_in_byte_counter] = 0; // Serial data completed char hex_char[(serial_in_byte_counter * 2) + 2]; - ResponseTime_P(PSTR(",\"" D_JSON_SERIALRECEIVED "\":\"%s\"}"), + Response_P(PSTR(",\"" D_JSON_SERIALRECEIVED "\":\"%s\"}"), (Settings.flag.mqtt_serial_raw) ? ToHex_P((unsigned char*)serial_in_buffer, serial_in_byte_counter, hex_char, sizeof(hex_char)) : serial_in_buffer); MqttPublishPrefixTopic_P(RESULT_OR_TELE, PSTR(D_JSON_SERIALRECEIVED)); XdrvRulesProcess(); diff --git a/sonoff/xdrv_08_serial_bridge.ino b/sonoff/xdrv_08_serial_bridge.ino index 2604bfebf..117671d94 100644 --- a/sonoff/xdrv_08_serial_bridge.ino +++ b/sonoff/xdrv_08_serial_bridge.ino @@ -71,7 +71,7 @@ void SerialBridgeInput(void) if (serial_bridge_in_byte_counter && (millis() > (serial_bridge_polling_window + SERIAL_POLLING))) { serial_bridge_buffer[serial_bridge_in_byte_counter] = 0; // Serial data completed char hex_char[(serial_bridge_in_byte_counter * 2) + 2]; - ResponseTime_P(PSTR(",\"" D_JSON_SSERIALRECEIVED "\":\"%s\"}"), + Response_P(PSTR(",\"" D_JSON_SSERIALRECEIVED "\":\"%s\"}"), (serial_bridge_raw) ? ToHex_P((unsigned char*)serial_bridge_buffer, serial_bridge_in_byte_counter, hex_char, sizeof(hex_char)) : serial_bridge_buffer); MqttPublishPrefixTopic_P(RESULT_OR_TELE, PSTR(D_JSON_SSERIALRECEIVED)); XdrvRulesProcess(); diff --git a/sonoff/xdrv_16_tuyamcu.ino b/sonoff/xdrv_16_tuyamcu.ino index fa9b7a22c..764be681a 100644 --- a/sonoff/xdrv_16_tuyamcu.ino +++ b/sonoff/xdrv_16_tuyamcu.ino @@ -538,12 +538,10 @@ void TuyaSerialInput(void) else if ((Tuya.cmd_status == 3) && (Tuya.byte_counter == (6 + Tuya.data_len)) && (Tuya.cmd_checksum == serial_in_byte)) { // Compare checksum and process packet Tuya.buffer[Tuya.byte_counter++] = serial_in_byte; - snprintf_P(log_data, sizeof(log_data), PSTR("TYA: RX Packet: \"")); - for (uint32_t i = 0; i < Tuya.byte_counter; i++) { - snprintf_P(log_data, sizeof(log_data), PSTR("%s%02x"), log_data, Tuya.buffer[i]); - } - snprintf_P(log_data, sizeof(log_data), PSTR("%s\""), log_data); - AddLog(LOG_LEVEL_DEBUG); + char hex_char[(Tuya.byte_counter * 2) + 2]; + Response_P(PSTR("{\"" D_JSON_TUYA_MCU_RECEIVED "\":\"%s\"}"), ToHex_P((unsigned char*)Tuya.buffer, Tuya.byte_counter, hex_char, sizeof(hex_char))); + MqttPublishPrefixTopic_P(RESULT_OR_TELE, PSTR(D_JSON_TUYA_MCU_RECEIVED)); + XdrvRulesProcess(); TuyaPacketProcess(); Tuya.byte_counter = 0;