diff --git a/sonoff/language/bg-BG.h b/sonoff/language/bg-BG.h index a24e95d70..47cc10d88 100644 --- a/sonoff/language/bg-BG.h +++ b/sonoff/language/bg-BG.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/cs-CZ.h b/sonoff/language/cs-CZ.h index 31b23dac9..f21911772 100644 --- a/sonoff/language/cs-CZ.h +++ b/sonoff/language/cs-CZ.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/de-DE.h b/sonoff/language/de-DE.h index 849d356af..93a44c9de 100644 --- a/sonoff/language/de-DE.h +++ b/sonoff/language/de-DE.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/el-GR.h b/sonoff/language/el-GR.h index 325558b83..00d690e80 100644 --- a/sonoff/language/el-GR.h +++ b/sonoff/language/el-GR.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/en-GB.h b/sonoff/language/en-GB.h index 5cee90b5c..2402e8c01 100644 --- a/sonoff/language/en-GB.h +++ b/sonoff/language/en-GB.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/es-ES.h b/sonoff/language/es-ES.h index f5f31ffc6..43c9b2fa9 100644 --- a/sonoff/language/es-ES.h +++ b/sonoff/language/es-ES.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/fr-FR.h b/sonoff/language/fr-FR.h index b52156447..a33c48639 100644 --- a/sonoff/language/fr-FR.h +++ b/sonoff/language/fr-FR.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/he-HE.h b/sonoff/language/he-HE.h index 52c9d8cf9..d31069675 100644 --- a/sonoff/language/he-HE.h +++ b/sonoff/language/he-HE.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/hu-HU.h b/sonoff/language/hu-HU.h index 635756447..a5094fe44 100644 --- a/sonoff/language/hu-HU.h +++ b/sonoff/language/hu-HU.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/it-IT.h b/sonoff/language/it-IT.h index 7a35a4dfc..6ac9a14d6 100644 --- a/sonoff/language/it-IT.h +++ b/sonoff/language/it-IT.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/ko-KO.h b/sonoff/language/ko-KO.h index 6ae84f9a7..ac1ae34ce 100644 --- a/sonoff/language/ko-KO.h +++ b/sonoff/language/ko-KO.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/nl-NL.h b/sonoff/language/nl-NL.h index fd94dbe09..5d0a6aacd 100644 --- a/sonoff/language/nl-NL.h +++ b/sonoff/language/nl-NL.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/pl-PL.h b/sonoff/language/pl-PL.h index b871a18ea..a167cfa7d 100644 --- a/sonoff/language/pl-PL.h +++ b/sonoff/language/pl-PL.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/pt-BR.h b/sonoff/language/pt-BR.h index b4048fe8c..ae2349b8e 100644 --- a/sonoff/language/pt-BR.h +++ b/sonoff/language/pt-BR.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/pt-PT.h b/sonoff/language/pt-PT.h index 80ac976b7..fd769a2e4 100644 --- a/sonoff/language/pt-PT.h +++ b/sonoff/language/pt-PT.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/ru-RU.h b/sonoff/language/ru-RU.h index 543d8a4f1..3f61e323b 100644 --- a/sonoff/language/ru-RU.h +++ b/sonoff/language/ru-RU.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "А" diff --git a/sonoff/language/sk-SK.h b/sonoff/language/sk-SK.h index 207764960..573975948 100644 --- a/sonoff/language/sk-SK.h +++ b/sonoff/language/sk-SK.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/sv-SE.h b/sonoff/language/sv-SE.h index 79cf9dedc..190e9b956 100644 --- a/sonoff/language/sv-SE.h +++ b/sonoff/language/sv-SE.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/tr-TR.h b/sonoff/language/tr-TR.h index f28f951d9..9189de9ee 100755 --- a/sonoff/language/tr-TR.h +++ b/sonoff/language/tr-TR.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "A" diff --git a/sonoff/language/uk-UK.h b/sonoff/language/uk-UK.h index 0ea4127c7..f09e80497 100644 --- a/sonoff/language/uk-UK.h +++ b/sonoff/language/uk-UK.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "А" diff --git a/sonoff/language/zh-CN.h b/sonoff/language/zh-CN.h index 22ac1f9cf..fdc8e1277 100644 --- a/sonoff/language/zh-CN.h +++ b/sonoff/language/zh-CN.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "安" diff --git a/sonoff/language/zh-TW.h b/sonoff/language/zh-TW.h index 437656457..85f68b991 100644 --- a/sonoff/language/zh-TW.h +++ b/sonoff/language/zh-TW.h @@ -626,7 +626,7 @@ #define D_SENSOR_SM2135_CLK "SM2135 Clk" #define D_SENSOR_SM2135_DAT "SM2135 Dat" #define D_SENSOR_DEEPSLEEP "DeepSleep" -#define D_SENSOR_EXS_MCU_RESET "EXS Reset" +#define D_SENSOR_EXS_ENABLE "EXS Enable" // Units #define D_UNIT_AMPERE "安" diff --git a/sonoff/sonoff_template.h b/sonoff/sonoff_template.h index c6ed63361..c6ed5b3e2 100644 --- a/sonoff/sonoff_template.h +++ b/sonoff/sonoff_template.h @@ -207,7 +207,7 @@ enum UserSelectablePins { GPIO_SM2135_CLK, // SM2135 Clk GPIO_SM2135_DAT, // SM2135 Dat GPIO_DEEPSLEEP, // Kill switch for deepsleep - GPIO_EXS_MCU_RESET, // EXS MCU Reset + GPIO_EXS_ENABLE, // EXS MCU Enable GPIO_SENSOR_END }; // Programmer selectable GPIO functionality @@ -285,7 +285,7 @@ const char kSensorNames[] PROGMEM = D_SENSOR_DDS2382_TX "|" D_SENSOR_DDS2382_RX "|" D_SENSOR_DDSU666_TX "|" D_SENSOR_DDSU666_RX "|" D_SENSOR_SM2135_CLK "|" D_SENSOR_SM2135_DAT "|" - D_SENSOR_DEEPSLEEP "|" D_SENSOR_EXS_MCU_RESET "|" + D_SENSOR_DEEPSLEEP "|" D_SENSOR_EXS_ENABLE "|" ; const char kSensorNamesFixed[] PROGMEM = @@ -576,7 +576,7 @@ const uint8_t kGpioNiceList[] PROGMEM = { GPIO_TUYA_RX, // Tuya Serial interface #endif #ifdef USE_EXS_DIMMER - GPIO_EXS_MCU_RESET, // EXS MCU Reset + GPIO_EXS_ENABLE, // EXS MCU Enable #endif #endif // USE_LIGHT @@ -2131,12 +2131,12 @@ const mytmplt kModules[MAXMODULE] PROGMEM = { GPIO_REL4, // GPIO15 WIFI_O3 Relay 4 (0 = Off, 1 = On) controlling the fan 0, 0 }, - { "EXS Dimmer", // EXS_DIMMER - EX-Stroe WiFi Dimmer v4, two channel (ESP8266 w/ separate MCU dimmer) + { "EXS Dimmer", // EXS_DIMMER - EX-Store WiFi Dimmer v4, two channel (ESP8266 w/ separate MCU dimmer) // https://ex-store.de/2-Kanal-RS232-WiFi-WLan-Dimmer-Modul-V4-fuer-Unterputzmontage-230V-3A // https://ex-store.de/2-Kanal-RS232-WiFi-WLan-Dimmer-Modul-V4-fuer-Unterputzmontage-230V-3A-ESP8266-V12-Stift-und-Buchsenleisten 0, GPIO_TXD, // GPIO01 MCU serial control - 0, + GPIO_LEDLNK, // GPIO02 LED Link GPIO_RXD, // GPIO03 MCU serial control GPIO_USER, // GPIO04 GPIO_USER, // GPIO05 @@ -2147,7 +2147,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = { 0, // GPIO10 (SD_DATA3 Flash QIO or ESP8285) // GPIO11 (SD_CMD Flash) GPIO_USER, // GPIO12 - GPIO_EXS_MCU_RESET, // GPIO13 EXS MCU Reset + GPIO_EXS_ENABLE, // GPIO13 EXS MCU Enable GPIO_USER, // GPIO14 0, // GPIO15 0, 0 diff --git a/sonoff/xdrv_30_exs_dimmer.ino b/sonoff/xdrv_30_exs_dimmer.ino index 63b489b56..a476db95c 100644 --- a/sonoff/xdrv_30_exs_dimmer.ino +++ b/sonoff/xdrv_30_exs_dimmer.ino @@ -251,20 +251,6 @@ bool ExsSyncState() ExsSyncState(1); } -static inline void ExsSetChannelV10(uint8_t channel, const uint8_t *buffer) -{ - Exs.dimmer.channel[channel].on = buffer[0]; - Exs.dimmer.channel[channel].dimm = buffer[1]; - Exs.dimmer.channel[channel].bright_tbl = 0; -} - -static inline void ExsSetChannel(uint8_t channel, const uint8_t *buffer) -{ - Exs.dimmer.channel[channel].on = buffer[0]; - Exs.dimmer.channel[channel].dimm = buffer[1]; - Exs.dimmer.channel[channel].bright_tbl = buffer[2]; -} - void ExsDebugState() { #ifdef EXS_DEBUG @@ -288,21 +274,71 @@ void ExsPacketProcess(void) switch (cmd) { case EXS_GET_VALUES: + /* + format firmware 2.1 + 0. byte = startMarker + 1. byte = 0. crc of bytes 2(CMD) - 11(GATE_LOCK) + 2. byte = 1. len_Of_Payload + 3. byte = 2. CMD + 4. byte = 3. MAJOR + 5. byte = 4. MINOR + 6. byte = 5. GATE1_ON + 7. byte = 6. GATE1_DIMM + 8. byte = 7. GATE1.BRIGHT + 9. byte = 8. GATE2_ON + 10. byte = 9. GATE2_DIMM + 11. byte = 10. GATE2.BRIGHT + 12. byte = 11. GATE_LOCK + 13. byte = '\0' + */ if (len > 9) { Exs.dimmer.version_major = Exs.buffer[3]; Exs.dimmer.version_minor = Exs.buffer[4]; - ExsSetChannel(0, &Exs.buffer[5]); - ExsSetChannel(1, &Exs.buffer[8]); + + //Exs.dimmer.channel[0].on = Exs.buffer[5]; + Exs.dimmer.channel[0].on = Exs.buffer[6]; + Exs.dimmer.channel[0].dimm = Exs.buffer[6]; + Exs.dimmer.channel[0].bright_tbl = Exs.buffer[7]; + + //Exs.dimmer.channel[1].on = Exs.buffer[8]; + Exs.dimmer.channel[1].on = Exs.buffer[9]; + Exs.dimmer.channel[1].dimm = Exs.buffer[9]; + Exs.dimmer.channel[1].bright_tbl = Exs.buffer[10]; + Exs.dimmer.gate_lock = Exs.buffer[11]; } else + /* + format firmware 1.0 + 0. byte = startMarker + 1. byte = 0. crc of bytes 2(CMD) - 9(GATE_LOCK) + 2. byte = 1. len_Of_Payload + 3. byte = 2. CMD + 4. byte = 3. GATE1_ON + 5. byte = 4. GATE1_DIMM + 6. byte = 5. GATE1.BRIGHT + 7. byte = 6. GATE2_ON + 8. byte = 7. GATE2_DIMM + 9. byte = 8. GATE2.BRIGHT + 10. byte = 9. GATE_LOCK + 11. byte = '\0' + */ { Exs.dimmer.version_major = 1; Exs.dimmer.version_minor = 0; - ExsSetChannel(0, &Exs.buffer[3]); - ExsSetChannel(1, &Exs.buffer[5]); - Exs.dimmer.gate_lock = Exs.buffer[8]; + + //Exs.dimmer.channel[0].on = Exs.buffer[3] - 48; + Exs.dimmer.channel[0].on = Exs.buffer[4] - 48; + Exs.dimmer.channel[0].dimm = Exs.buffer[4] - 48; + Exs.dimmer.channel[0].bright_tbl = Exs.buffer[5] - 48; + + //Exs.dimmer.channel[1].on = Exs.buffer[6] - 48; + Exs.dimmer.channel[1].on = Exs.buffer[7] - 48; + Exs.dimmer.channel[1].dimm = Exs.buffer[7] - 48; + Exs.dimmer.channel[1].bright_tbl = Exs.buffer[8] - 48; + + Exs.dimmer.gate_lock = Exs.buffer[9] - 48; } ExsDebugState(); @@ -313,7 +349,6 @@ void ExsPacketProcess(void) break; } } - /* * API Functions */ @@ -360,11 +395,11 @@ void EsxMcuStart(void) int retries = 3; #ifdef EXS_DEBUG - AddLog_P2(LOG_LEVEL_DEBUG, PSTR("EXS: Request MCU configuration, PIN %d to Low"), pin[GPIO_EXS_MCU_RESET]); + AddLog_P2(LOG_LEVEL_DEBUG, PSTR("EXS: Request MCU configuration, PIN %d to Low"), pin[GPIO_EXS_ENABLE]); #endif - pinMode(pin[GPIO_EXS_MCU_RESET], OUTPUT); - digitalWrite(pin[GPIO_EXS_MCU_RESET], LOW); + pinMode(pin[GPIO_EXS_ENABLE], OUTPUT); + digitalWrite(pin[GPIO_EXS_ENABLE], LOW); delay(1); // wait 1ms fot the MCU to come online @@ -461,37 +496,23 @@ void ExsSerialInput(void) #ifdef EXS_MCU_CMNDS #define D_PRFX_EXS "Exs" -#define D_CMND_EXS_GATE "Gate" #define D_CMND_EXS_DIMM "Dimm" #define D_CMND_EXS_DIMM_TBL "DimmTbl" #define D_CMND_EXS_DIMM_VAL "DimmVal" -#define D_CMND_EXS_GATES "Gates" #define D_CMND_EXS_DIMMS "Dimms" #define D_CMND_EXS_CH_LOCK "ChLock" #define D_CMND_EXS_STATE "State" const char kExsCommands[] PROGMEM = D_PRFX_EXS "|" - D_CMND_EXS_GATE "|" D_CMND_EXS_DIMM "|" D_CMND_EXS_DIMM_TBL "|" D_CMND_EXS_DIMM_VAL "|" - D_CMND_EXS_GATES "|" D_CMND_EXS_DIMMS "|" D_CMND_EXS_CH_LOCK "|" + D_CMND_EXS_DIMMS "|" D_CMND_EXS_CH_LOCK "|" D_CMND_EXS_STATE; void (* const ExsCommand[])(void) PROGMEM = - { &CmndExsGate, - &CmndExsDimm, &CmndExsDimmTbl, &CmndExsDimmVal, - &CmndExsGates, &CmndExsDimms, &CmndExsChLock, + { &CmndExsDimm, &CmndExsDimmTbl, &CmndExsDimmVal, + &CmndExsDimms, &CmndExsChLock, &CmndExsState }; -void CmndExsGate(void) -{ - if ((XdrvMailbox.index == 1 || XdrvMailbox.index == 2) && - (XdrvMailbox.payload == 0 || XdrvMailbox.payload == 1)) { - ExsSendCmd(EXS_GATE_1_ON + 0x10 * (XdrvMailbox.index - 1) + - XdrvMailbox.payload ^ 1, 0); - } - CmndExsState(); -} - void CmndExsDimm(void) { if ((XdrvMailbox.index == 1 || XdrvMailbox.index == 2) && @@ -522,14 +543,6 @@ void CmndExsDimmVal(void) CmndExsState(); } -void CmndExsGates(void) -{ - if (XdrvMailbox.payload == 0 || XdrvMailbox.payload == 1) { - ExsSendCmd(EXS_GATES_ON + XdrvMailbox.payload ^ 1, 0); - } - CmndExsState(); -} - void CmndExsDimms(void) { if (XdrvMailbox.payload == 0 || XdrvMailbox.payload == 1) {