diff --git a/sonoff/sonoff_template.h b/sonoff/sonoff_template.h index 8686c57cb..668dd02c5 100644 --- a/sonoff/sonoff_template.h +++ b/sonoff/sonoff_template.h @@ -173,6 +173,11 @@ enum ProgramSelectablePins { GPIO_ARIRFRCV, // AliLux RF Receive input GPIO_ROT_A, // Rotary switch A Pin GPIO_ROT_B, // Rotary switch B Pin + GPIO_CSE7766_TX, // CSE7766 Serial interface (S31 and Pow R2) + GPIO_CSE7766_RX, // CSE7766 Serial interface (S31 and Pow R2) + GPIO_MCP39_TX, // MCP39F501 Serial interface (Shelly2) + GPIO_MCP39_RX, // MCP39F501 Serial interface (Shelly2) + GPIO_MCP39_RST, // MCP39F501 Reset (Shelly2) GPIO_USER, // User configurable GPIO_MAX }; @@ -1329,9 +1334,9 @@ const mytmplt kModules[MAXMODULE] PROGMEM = { }, { "Sonoff S31", // Sonoff S31 (ESP8266 - CSE7766) GPIO_KEY1, // GPIO00 Button - 0, // GPIO01 Serial RXD 4800 baud 8E1 CSE7766 energy sensor + GPIO_CSE7766_TX, // GPIO01 Serial RXD 4800 baud 8E1 CSE7766 energy sensor 0, - 0, // GPIO03 Serial TXD + GPIO_CSE7766_RX, // GPIO03 Serial TXD 0, 0, // GPIO06 (SD_CLK Flash) // GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT) @@ -1364,9 +1369,9 @@ const mytmplt kModules[MAXMODULE] PROGMEM = { }, { "Sonoff Pow R2", // Sonoff Pow R2 (ESP8285 - CSE7766) GPIO_KEY1, // GPIO00 Button - 0, // GPIO01 Serial RXD 4800 baud 8E1 CSE7766 energy sensor + GPIO_CSE7766_TX, // GPIO01 Serial RXD 4800 baud 8E1 CSE7766 energy sensor 0, - 0, // GPIO03 Serial TXD + GPIO_CSE7766_RX, // GPIO03 Serial TXD 0, 0, // GPIO06 (SD_CLK Flash) // GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT) @@ -1437,9 +1442,9 @@ const mytmplt kModules[MAXMODULE] PROGMEM = { }, { "Shelly 2", // Shelly2 (ESP8266 - 2MB) - https://shelly.cloud/shelly2/ 0, - GPIO_TXD, // GPIO01 MCP39F501 Serial input + GPIO_MCP39_TX, // GPIO01 MCP39F501 Serial input 0, - GPIO_RXD, // GPIO03 MCP39F501 Serial output + GPIO_MCP39_RX, // GPIO03 MCP39F501 Serial output GPIO_REL1, // GPIO04 GPIO_REL2, // GPIO05 // GPIO06 (SD_CLK Flash) @@ -1451,7 +1456,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = { GPIO_SWT1, // GPIO12 0, GPIO_SWT2, // GPIO14 - 0, // GPIO15 MCP39F501 Reset + GPIO_MCP39_RST, // GPIO15 MCP39F501 Reset 0, GPIO_FLAG_PULLUP // Allow input pull-up control }, diff --git a/sonoff/xdrv_11_knx.ino b/sonoff/xdrv_11_knx.ino index d6d33e197..1dc380d21 100644 --- a/sonoff/xdrv_11_knx.ino +++ b/sonoff/xdrv_11_knx.ino @@ -499,8 +499,8 @@ void KNX_INIT(void) if (GetUsedInModule(GPIO_DHT22, my_module.io)) { device_param[KNX_HUMIDITY-1].show = true; } if (GetUsedInModule(GPIO_SI7021, my_module.io)) { device_param[KNX_HUMIDITY-1].show = true; } - // Sonoff 31 or Sonoff Pow or any HLW8012 based device or Sonoff POW R2 or Any device with a Pzem004T - if ( ( SONOFF_S31 == Settings.module ) || ( SONOFF_POW_R2 == Settings.module ) || ( energy_flg != ENERGY_NONE ) ) { + // Any device with a Power Monitoring + if ( energy_flg != ENERGY_NONE ) { device_param[KNX_ENERGY_POWER-1].show = true; device_param[KNX_ENERGY_DAILY-1].show = true; device_param[KNX_ENERGY_START-1].show = true; diff --git a/sonoff/xnrg_02_cse7766.ino b/sonoff/xnrg_02_cse7766.ino index cbc2b9bc2..ba228bd03 100644 --- a/sonoff/xnrg_02_cse7766.ino +++ b/sonoff/xnrg_02_cse7766.ino @@ -191,7 +191,7 @@ void CseEverySecond(void) void CseDrvInit(void) { if (!energy_flg) { - if ((SONOFF_S31 == Settings.module) || (SONOFF_POW_R2 == Settings.module)) { // Sonoff S31 or Sonoff Pow R2 + if ((3 == pin[GPIO_CSE7766_RX]) && (1 == pin[GPIO_CSE7766_TX])) { // As it uses 8E1 currently only hardware serial is supported baudrate = 4800; serial_config = SERIAL_8E1; energy_flg = XNRG_02; diff --git a/sonoff/xnrg_04_mcp39f501.ino b/sonoff/xnrg_04_mcp39f501.ino index a528d448f..4c58dfa90 100644 --- a/sonoff/xnrg_04_mcp39f501.ino +++ b/sonoff/xnrg_04_mcp39f501.ino @@ -544,15 +544,19 @@ void McpEverySecond(void) void McpSnsInit(void) { SetSeriallog(LOG_LEVEL_NONE); // Free serial interface from logging interference - digitalWrite(15, 1); // GPIO15 - MCP enable + if (pin[GPIO_MCP39_RST] < 99) { + digitalWrite(pin[GPIO_MCP39_RST], 1); // MCP enable + } } void McpDrvInit(void) { if (!energy_flg) { - if (SHELLY2 == Settings.module) { - pinMode(15, OUTPUT); - digitalWrite(15, 0); // GPIO15 - MCP disable - Reset Delta Sigma ADC's + if ((pin[GPIO_MCP39_RX] < 99) && (pin[GPIO_MCP39_TX] < 99)) { + if (pin[GPIO_MCP39_RST] < 99) { + pinMode(pin[GPIO_MCP39_RST], OUTPUT); + digitalWrite(pin[GPIO_MCP39_RST], 0); // MCP disable - Reset Delta Sigma ADC's + } baudrate = 4800; mcp_calibrate = 0; mcp_timeout = 2; // Initial wait