Refactor template

This commit is contained in:
Theo Arends 2020-03-28 18:08:43 +01:00
parent dbc9f16ffc
commit e5a44e6326
5 changed files with 1393 additions and 1444 deletions

View File

@ -397,7 +397,8 @@ struct SYSCFG {
uint16_t mcp230xx_int_timer; // 718 uint16_t mcp230xx_int_timer; // 718
uint8_t rgbwwTable[5]; // 71A uint8_t rgbwwTable[5]; // 71A
uint8_t user_template_base; // 71F uint8_t user_template_base; // 71F
mytmplt user_template; // 720 29 bytes char user_template_name[15]; // 720 15 bytes
mytmplt user_template; // 72F 14 bytes
uint8_t novasds_startingoffset; // 73D uint8_t novasds_startingoffset; // 73D
uint8_t web_color[18][3]; // 73E uint8_t web_color[18][3]; // 73E
uint16_t display_width; // 774 uint16_t display_width; // 774

View File

@ -1098,9 +1098,10 @@ bool ValidModule(uint32_t index)
String AnyModuleName(uint32_t index) String AnyModuleName(uint32_t index)
{ {
if (USER_MODULE == index) { if (USER_MODULE == index) {
return String(Settings.user_template.name); return String(Settings.user_template_name);
} else { } else {
return FPSTR(kModules[index].name); char name[15];
return String(GetTextIndexed(name, sizeof(name), index, kModuleNames));
} }
} }
@ -1153,6 +1154,7 @@ void ModuleDefault(uint32_t module)
{ {
if (USER_MODULE == module) { module = WEMOS; } // Generic if (USER_MODULE == module) { module = WEMOS; } // Generic
Settings.user_template_base = module; Settings.user_template_base = module;
GetTextIndexed(Settings.user_template_name, sizeof(Settings.user_template_name), module, kModuleNames);
memcpy_P(&Settings.user_template, &kModules[module], sizeof(mytmplt)); memcpy_P(&Settings.user_template, &kModules[module], sizeof(mytmplt));
} }
@ -1268,7 +1270,7 @@ bool JsonTemplate(const char* dataBuf)
// All parameters are optional allowing for partial changes // All parameters are optional allowing for partial changes
const char* name = obj[D_JSON_NAME]; const char* name = obj[D_JSON_NAME];
if (name != nullptr) { if (name != nullptr) {
strlcpy(Settings.user_template.name, name, sizeof(Settings.user_template.name)); strlcpy(Settings.user_template_name, name, sizeof(Settings.user_template_name));
} }
if (obj[D_JSON_GPIO].success()) { if (obj[D_JSON_GPIO].success()) {
for (uint32_t i = 0; i < sizeof(mycfgio); i++) { for (uint32_t i = 0; i < sizeof(mycfgio); i++) {
@ -1289,7 +1291,7 @@ bool JsonTemplate(const char* dataBuf)
void TemplateJson(void) void TemplateJson(void)
{ {
Response_P(PSTR("{\"" D_JSON_NAME "\":\"%s\",\"" D_JSON_GPIO "\":["), Settings.user_template.name); Response_P(PSTR("{\"" D_JSON_NAME "\":\"%s\",\"" D_JSON_GPIO "\":["), Settings.user_template_name);
for (uint32_t i = 0; i < sizeof(Settings.user_template.gp); i++) { for (uint32_t i = 0; i < sizeof(Settings.user_template.gp); i++) {
ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Settings.user_template.gp.io[i]); ResponseAppend_P(PSTR("%s%d"), (i>0)?",":"", Settings.user_template.gp.io[i]);
} }

View File

@ -1064,7 +1064,7 @@ void CmndTemplate(void)
if (Settings.module != USER_MODULE) { if (Settings.module != USER_MODULE) {
ModuleDefault(Settings.module); ModuleDefault(Settings.module);
} }
snprintf_P(Settings.user_template.name, sizeof(Settings.user_template.name), PSTR("Merged")); snprintf_P(Settings.user_template_name, sizeof(Settings.user_template_name), PSTR("Merged"));
uint32_t j = 0; uint32_t j = 0;
for (uint32_t i = 0; i < sizeof(mycfgio); i++) { for (uint32_t i = 0; i < sizeof(mycfgio); i++) {
if (6 == i) { j = 9; } if (6 == i) { j = 9; }

View File

@ -319,157 +319,6 @@ const char kSensorNamesFixed[] PROGMEM =
D_SENSOR_SPI_MISO "|" D_SENSOR_SPI_MOSI "|" D_SENSOR_SPI_CLK "|" D_SENSOR_SPI_MISO "|" D_SENSOR_SPI_MOSI "|" D_SENSOR_SPI_CLK "|"
D_SENSOR_USER; D_SENSOR_USER;
// User selectable ADC0 functionality
enum UserSelectableAdc0 {
ADC0_NONE, // Not used
ADC0_INPUT, // Analog input
ADC0_TEMP, // Thermistor
ADC0_LIGHT, // Light sensor
ADC0_BUTTON, // Button
ADC0_BUTTON_INV,
ADC0_RANGE, // Range
ADC0_CT_POWER, // Current
// ADC0_SWITCH, // Switch
// ADC0_SWITCH_INV,
ADC0_END };
// Programmer selectable ADC0 functionality
enum ProgramSelectableAdc0 {
ADC0_FIX_START = 14,
ADC0_USER, // User configurable needs to be 15
ADC0_MAX };
// Text in webpage Module Parameters and commands ADC
const char kAdc0Names[] PROGMEM =
D_SENSOR_NONE "|" D_ANALOG_INPUT "|"
D_TEMPERATURE "|" D_LIGHT "|"
D_SENSOR_BUTTON "|" D_SENSOR_BUTTON "i|"
D_RANGE "|"
D_CT_POWER "|"
// D_SENSOR_SWITCH "|" D_SENSOR_SWITCH "i|"
;
/********************************************************************************************/
// Supported hardware modules
enum SupportedModules {
SONOFF_BASIC,
SONOFF_RF,
SONOFF_SV,
SONOFF_TH,
SONOFF_DUAL,
SONOFF_POW,
SONOFF_4CH,
SONOFF_S2X,
SLAMPHER,
SONOFF_TOUCH,
SONOFF_LED,
CH1,
CH4,
MOTOR,
ELECTRODRAGON,
EXS_RELAY,
WION,
WEMOS,
SONOFF_DEV,
H801,
SONOFF_SC,
SONOFF_BN,
SONOFF_4CHPRO,
HUAFAN_SS,
SONOFF_BRIDGE,
SONOFF_B1,
AILIGHT,
SONOFF_T11,
SONOFF_T12,
SONOFF_T13,
SUPLA1,
WITTY,
YUNSHAN,
MAGICHOME,
LUANIHVIO,
KMC_70011,
ARILUX_LC01,
ARILUX_LC11,
SONOFF_DUAL_R2,
ARILUX_LC06,
SONOFF_S31,
ZENGGE_ZF_WF017,
SONOFF_POW_R2,
SONOFF_IFAN02,
BLITZWOLF_BWSHP,
SHELLY1,
SHELLY2,
PHILIPS,
NEO_COOLCAM,
ESP_SWITCH,
OBI,
TECKIN,
APLIC_WDP303075,
TUYA_DIMMER,
GOSUND,
ARMTRONIX_DIMMERS,
SK03_TUYA,
PS_16_DZ,
TECKIN_US,
MANZOKU_EU_4,
OBI2,
YTF_IR_BRIDGE,
DIGOO,
KA10,
ZX2820,
MI_DESK_LAMP,
SP10,
WAGA,
SYF05,
SONOFF_L1,
SONOFF_IFAN03,
EXS_DIMMER,
PWM_DIMMER,
SONOFF_D1,
MAXMODULE};
#define USER_MODULE 255
/********************************************************************************************/
#define MAX_GPIO_PIN 17 // Number of supported GPIO
#define MIN_FLASH_PINS 4 // Number of flash chip pins unusable for configuration (GPIO6, 7, 8 and 11)
const char PINS_WEMOS[] PROGMEM = "D3TXD4RXD2D1flashcFLFLolD6D7D5D8D0A0";
typedef struct MYIO {
uint8_t io[MAX_GPIO_PIN];
} myio;
typedef struct MYCFGIO {
uint8_t io[MAX_GPIO_PIN - MIN_FLASH_PINS];
} mycfgio;
#define GPIO_FLAG_USED 0 // Currently two flags used
#define GPIO_FLAG_SPARE04 16
#define GPIO_FLAG_SPARE05 32
#define GPIO_FLAG_SPARE06 64
#define GPIO_FLAG_SPARE07 128
typedef union {
uint8_t data;
struct {
uint8_t adc0 : 4; // Allow ADC0 when define USE_ADC_VCC is disabled
uint8_t spare04 : 1;
uint8_t spare05 : 1;
uint8_t spare06 : 1;
uint8_t spare07 : 1;
};
} gpio_flag;
typedef struct MYTMPLT {
char name[15];
mycfgio gp;
gpio_flag flag;
} mytmplt;
const uint8_t kGpioNiceList[] PROGMEM = { const uint8_t kGpioNiceList[] PROGMEM = {
GPIO_NONE, // Not used GPIO_NONE, // Not used
GPIO_KEY1, // Buttons GPIO_KEY1, // Buttons
@ -809,6 +658,103 @@ const uint8_t kGpioNiceList[] PROGMEM = {
#endif #endif
}; };
/********************************************************************************************/
// User selectable ADC0 functionality
enum UserSelectableAdc0 {
ADC0_NONE, // Not used
ADC0_INPUT, // Analog input
ADC0_TEMP, // Thermistor
ADC0_LIGHT, // Light sensor
ADC0_BUTTON, // Button
ADC0_BUTTON_INV,
ADC0_RANGE, // Range
ADC0_CT_POWER, // Current
// ADC0_SWITCH, // Switch
// ADC0_SWITCH_INV,
ADC0_END };
// Programmer selectable ADC0 functionality
enum ProgramSelectableAdc0 {
ADC0_FIX_START = 14,
ADC0_USER, // User configurable needs to be 15
ADC0_MAX };
// Text in webpage Module Parameters and commands ADC
const char kAdc0Names[] PROGMEM =
D_SENSOR_NONE "|" D_ANALOG_INPUT "|"
D_TEMPERATURE "|" D_LIGHT "|"
D_SENSOR_BUTTON "|" D_SENSOR_BUTTON "i|"
D_RANGE "|"
D_CT_POWER "|"
// D_SENSOR_SWITCH "|" D_SENSOR_SWITCH "i|"
;
/********************************************************************************************/
#define MAX_GPIO_PIN 17 // Number of supported GPIO
#define MIN_FLASH_PINS 4 // Number of flash chip pins unusable for configuration (GPIO6, 7, 8 and 11)
const char PINS_WEMOS[] PROGMEM = "D3TXD4RXD2D1flashcFLFLolD6D7D5D8D0A0";
typedef struct MYIO {
uint8_t io[MAX_GPIO_PIN];
} myio;
typedef struct MYCFGIO {
uint8_t io[MAX_GPIO_PIN - MIN_FLASH_PINS];
} mycfgio;
#define GPIO_FLAG_USED 0 // Currently two flags used
#define GPIO_FLAG_SPARE04 16
#define GPIO_FLAG_SPARE05 32
#define GPIO_FLAG_SPARE06 64
#define GPIO_FLAG_SPARE07 128
typedef union {
uint8_t data;
struct {
uint8_t adc0 : 4; // Allow ADC0 when define USE_ADC_VCC is disabled
uint8_t spare04 : 1;
uint8_t spare05 : 1;
uint8_t spare06 : 1;
uint8_t spare07 : 1;
};
} gpio_flag;
typedef struct MYTMPLT {
mycfgio gp;
gpio_flag flag;
} mytmplt;
/********************************************************************************************/
// Supported hardware modules
enum SupportedModules {
SONOFF_BASIC, SONOFF_RF, SONOFF_SV, SONOFF_TH, SONOFF_DUAL, SONOFF_POW, SONOFF_4CH, SONOFF_S2X, SLAMPHER, SONOFF_TOUCH,
SONOFF_LED, CH1, CH4, MOTOR, ELECTRODRAGON, EXS_RELAY, WION, WEMOS, SONOFF_DEV, H801,
SONOFF_SC, SONOFF_BN, SONOFF_4CHPRO, HUAFAN_SS, SONOFF_BRIDGE, SONOFF_B1, AILIGHT, SONOFF_T11, SONOFF_T12, SONOFF_T13,
SUPLA1, WITTY, YUNSHAN, MAGICHOME, LUANIHVIO, KMC_70011, ARILUX_LC01, ARILUX_LC11, SONOFF_DUAL_R2, ARILUX_LC06,
SONOFF_S31, ZENGGE_ZF_WF017, SONOFF_POW_R2, SONOFF_IFAN02, BLITZWOLF_BWSHP, SHELLY1, SHELLY2, PHILIPS, NEO_COOLCAM, ESP_SWITCH,
OBI, TECKIN, APLIC_WDP303075, TUYA_DIMMER, GOSUND, ARMTRONIX_DIMMERS, SK03_TUYA, PS_16_DZ, TECKIN_US, MANZOKU_EU_4,
OBI2, YTF_IR_BRIDGE, DIGOO, KA10, ZX2820, MI_DESK_LAMP, SP10, WAGA, SYF05, SONOFF_L1,
SONOFF_IFAN03, EXS_DIMMER, PWM_DIMMER, SONOFF_D1,
MAXMODULE};
#define USER_MODULE 255
const char kModuleNames[] PROGMEM =
"Sonoff Basic|Sonoff RF|Sonoff SV|Sonoff TH|Sonoff Dual|Sonoff Pow|Sonoff 4CH|Sonoff S2X|Slampher|Sonoff Touch|"
"Sonoff LED|1 Channel|4 Channel|Motor C/AC|ElectroDragon|EXS Relay(s)|WiOn|Generic|Sonoff Dev|H801|"
"Sonoff SC|Sonoff BN-SZ|Sonoff 4CH Pro|Huafan SS|Sonoff Bridge|Sonoff B1|AiLight|Sonoff T1 1CH|Sonoff T1 2CH|Sonoff T1 3CH|"
"Supla Espablo|Witty Cloud|Yunshan Relay|MagicHome|Luani HVIO|KMC 70011|Arilux LC01|Arilux LC11|Sonoff Dual R2|Arilux LC06|"
"Sonoff S31|Zengge WF017|Sonoff Pow R2|Sonoff iFan02|BlitzWolf SHP|Shelly 1|Shelly 2|Xiaomi Philips|Neo Coolcam|ESP Switch|"
"OBI Socket|Teckin|AplicWDP303075|Tuya MCU|Gosund SP1 v23|ARMTR Dimmer|SK03 Outdoor|PS-16-DZ|Teckin US|Manzoku strip|"
"OBI Socket 2|YTF IR Bridge|Digoo DG-SP202|KA10|Luminea ZX2820|Mi Desk Lamp|SP10|WAGA CHCZ02MB|SYF05|Sonoff L1|"
"Sonoff iFan03|EXS Dimmer|PWM Dimmer|Sonoff D1"
;
const uint8_t kModuleNiceList[] PROGMEM = { const uint8_t kModuleNiceList[] PROGMEM = {
SONOFF_BASIC, // Sonoff Relay Devices SONOFF_BASIC, // Sonoff Relay Devices
SONOFF_RF, SONOFF_RF,
@ -910,7 +856,7 @@ const uint8_t kModuleNiceList[] PROGMEM = {
// Default module settings // Default module settings
const mytmplt kModules[MAXMODULE] PROGMEM = { const mytmplt kModules[MAXMODULE] PROGMEM = {
{ "Sonoff Basic", // SONOFF_BASIC - Sonoff Basic (ESP8266) { // SONOFF_BASIC - Sonoff Basic (ESP8266)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
GPIO_USER, // GPIO02 Only available on newer Sonoff Basic R2 V1 GPIO_USER, // GPIO02 Only available on newer Sonoff Basic R2 V1
@ -930,7 +876,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
0, // GPIO16 0, // GPIO16
0 // ADC0 Analog input 0 // ADC0 Analog input
}, },
{ "Sonoff RF", // SONOFF_RF - Sonoff RF (ESP8266) { // SONOFF_RF - Sonoff RF (ESP8266)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
GPIO_USER, // GPIO02 Optional sensor GPIO_USER, // GPIO02 Optional sensor
@ -948,7 +894,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO14 Optional sensor GPIO_USER, // GPIO14 Optional sensor
0, 0, 0 0, 0, 0
}, },
{ "Sonoff SV", // SONOFF_SV - Sonoff SV (ESP8266) { // SONOFF_SV - Sonoff SV (ESP8266)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
0, 0,
@ -967,7 +913,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
0, 0, 0, 0,
ADC0_USER // ADC0 Analog input ADC0_USER // ADC0 Analog input
}, },
{ "Sonoff TH", // SONOFF_TH - Sonoff TH10/16 (ESP8266) { // SONOFF_TH - Sonoff TH10/16 (ESP8266)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
0, 0,
@ -985,7 +931,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO14 Optional sensor GPIO_USER, // GPIO14 Optional sensor
0, 0, 0 0, 0, 0
}, },
{ "Sonoff Dual", // SONOFF_DUAL - Sonoff Dual (ESP8266) { // SONOFF_DUAL - Sonoff Dual (ESP8266)
0, 0,
GPIO_TXD, // GPIO01 Relay control GPIO_TXD, // GPIO01 Relay control
0, 0,
@ -1003,7 +949,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO14 Optional sensor GPIO_USER, // GPIO14 Optional sensor
0, 0, 0 0, 0, 0
}, },
{ "Sonoff Pow", // SONOFF_POW - Sonoff Pow (ESP8266 - HLW8012) { // SONOFF_POW - Sonoff Pow (ESP8266 - HLW8012)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
0, 0, 0, 0, 0, 0, 0, 0,
GPIO_NRG_SEL, // GPIO05 HLW8012 Sel output (1 = Voltage) GPIO_NRG_SEL, // GPIO05 HLW8012 Sel output (1 = Voltage)
@ -1019,7 +965,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1, // GPIO15 Blue Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1, // GPIO15 Blue Led (0 = On, 1 = Off) - Link and Power status
0, 0 0, 0
}, },
{ "Sonoff 4CH", // SONOFF_4CH - Sonoff 4CH (ESP8285) { // SONOFF_4CH - Sonoff 4CH (ESP8285)
GPIO_KEY1, // GPIO00 Button 1 GPIO_KEY1, // GPIO00 Button 1
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
GPIO_USER, // GPIO02 Optional sensor GPIO_USER, // GPIO02 Optional sensor
@ -1038,7 +984,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL4, // GPIO15 Red Led and Relay 4 (0 = Off, 1 = On) GPIO_REL4, // GPIO15 Red Led and Relay 4 (0 = Off, 1 = On)
0, 0 0, 0
}, },
{ "Sonoff S2X", // SONOFF_S2X - Sonoff S20, S22 and S26 Smart Socket (ESP8266) { // SONOFF_S2X - Sonoff S20, S22 and S26 Smart Socket (ESP8266)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
GPIO_USER, // GPIO02 Optional sensor GPIO_USER, // GPIO02 Optional sensor
@ -1054,7 +1000,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Green/Blue Led (0 = On, 1 = Off) GPIO_LED1_INV, // GPIO13 Green/Blue Led (0 = On, 1 = Off)
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Slampher", // SLAMPHER - Slampher (ESP8266) { // SLAMPHER - Slampher (ESP8266)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
0, 0,
@ -1070,7 +1016,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Sonoff Touch", // SONOFF_TOUCH - Sonoff Touch (ESP8285) { // SONOFF_TOUCH - Sonoff Touch (ESP8285)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
0, 0,
@ -1086,7 +1032,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off)
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Sonoff LED", // SONOFF_LED - Sonoff LED (ESP8266) { // SONOFF_LED - Sonoff LED (ESP8266)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
0, 0, 0, 0, 0, 0,
GPIO_USER, // GPIO04 Optional sensor (PWM3 Green) GPIO_USER, // GPIO04 Optional sensor (PWM3 Green)
@ -1103,7 +1049,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO15 Optional sensor (PWM4 Blue) GPIO_USER, // GPIO15 Optional sensor (PWM4 Blue)
0, 0 0, 0
}, },
{ "1 Channel", // CH1 - 1 Channel Inching/Latching Relay using (PSA-B01 - ESP8266 and PSF-B01 - ESP8285) { // CH1 - 1 Channel Inching/Latching Relay using (PSA-B01 - ESP8266 and PSF-B01 - ESP8285)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// GPIO06 (SD_CLK Flash) // GPIO06 (SD_CLK Flash)
@ -1116,7 +1062,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "4 Channel", // CH4 - 4 Channel Inching/Latching Relays (ESP8266) { // CH4 - 4 Channel Inching/Latching Relays (ESP8266)
0, 0,
GPIO_TXD, // GPIO01 Relay control GPIO_TXD, // GPIO01 Relay control
0, 0,
@ -1132,7 +1078,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Motor C/AC", // MOTOR - Motor Clockwise / Anti clockwise (PSA-B01 - ESP8266) { // MOTOR - Motor Clockwise / Anti clockwise (PSA-B01 - ESP8266)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// GPIO06 (SD_CLK Flash) // GPIO06 (SD_CLK Flash)
@ -1145,7 +1091,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "ElectroDragon", // ELECTRODRAGON - ElectroDragon IoT Relay Board (ESP8266) { // ELECTRODRAGON - ElectroDragon IoT Relay Board (ESP8266)
GPIO_KEY2, // GPIO00 Button 2 GPIO_KEY2, // GPIO00 Button 2
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
GPIO_KEY1, // GPIO02 Button 1 GPIO_KEY1, // GPIO02 Button 1
@ -1165,7 +1111,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1, // GPIO16 Green/Blue Led (1 = On, 0 = Off) - Link and Power status GPIO_LED1, // GPIO16 Green/Blue Led (1 = On, 0 = Off) - Link and Power status
ADC0_USER // ADC0 A0 Analog input ADC0_USER // ADC0 A0 Analog input
}, },
{ "EXS Relay(s)", // EXS_RELAY - ES-Store Latching relay(s) (ESP8266) { // EXS_RELAY - ES-Store Latching relay(s) (ESP8266)
// https://ex-store.de/ESP8266-WiFi-Relay-V31 // https://ex-store.de/ESP8266-WiFi-Relay-V31
// V3.1 Module Pin 1 VCC 3V3, Module Pin 6 GND // V3.1 Module Pin 1 VCC 3V3, Module Pin 6 GND
// https://ex-store.de/2-Kanal-WiFi-WLan-Relay-V5-Blackline-fuer-Unterputzmontage // https://ex-store.de/2-Kanal-WiFi-WLan-Relay-V5-Blackline-fuer-Unterputzmontage
@ -1188,7 +1134,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO16 V3.1 Module Pin 4 - V5.0 GPIO_REL4_INV Relay2 ( 1 = On) GPIO_USER, // GPIO16 V3.1 Module Pin 4 - V5.0 GPIO_REL4_INV Relay2 ( 1 = On)
0 0
}, },
{ "WiOn", // WION - Indoor Tap (ESP8266) { // WION - Indoor Tap (ESP8266)
// https://www.amazon.com/gp/product/B00ZYLUBJU/ref=s9_acsd_al_bw_c_x_3_w // https://www.amazon.com/gp/product/B00ZYLUBJU/ref=s9_acsd_al_bw_c_x_3_w
GPIO_USER, // GPIO00 Optional sensor (pm clock) GPIO_USER, // GPIO00 Optional sensor (pm clock)
0, 0,
@ -1206,7 +1152,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1, // GPIO15 Relay (0 = Off, 1 = On) GPIO_REL1, // GPIO15 Relay (0 = Off, 1 = On)
0, 0 0, 0
}, },
{ "Generic", // WEMOS - Any ESP8266/ESP8285 device like WeMos and NodeMCU hardware (ESP8266) { // WEMOS - Any ESP8266/ESP8285 device like WeMos and NodeMCU hardware (ESP8266)
GPIO_USER, // GPIO00 D3 Wemos Button Shield GPIO_USER, // GPIO00 D3 Wemos Button Shield
GPIO_USER, // GPIO01 TX Serial RXD GPIO_USER, // GPIO01 TX Serial RXD
GPIO_USER, // GPIO02 D4 Wemos DHT Shield GPIO_USER, // GPIO02 D4 Wemos DHT Shield
@ -1226,7 +1172,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO16 D0 Wemos Wake GPIO_USER, // GPIO16 D0 Wemos Wake
ADC0_USER // ADC0 A0 Analog input ADC0_USER // ADC0 A0 Analog input
}, },
{ "Sonoff Dev", // SONOFF_DEV - Sonoff Dev (ESP8266) { // SONOFF_DEV - Sonoff Dev (ESP8266)
GPIO_KEY1, // GPIO00 E-FW Button GPIO_KEY1, // GPIO00 E-FW Button
GPIO_USER, // GPIO01 TX Serial RXD and Optional sensor GPIO_USER, // GPIO01 TX Serial RXD and Optional sensor
0, // GPIO02 0, // GPIO02
@ -1246,7 +1192,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
0, // GPIO16 0, // GPIO16
ADC0_USER // ADC0 A0 Analog input ADC0_USER // ADC0 A0 Analog input
}, },
{ "H801", // H801 - Lixada H801 Wifi (ESP8266) { // H801 - Lixada H801 Wifi (ESP8266)
GPIO_USER, // GPIO00 E-FW Button GPIO_USER, // GPIO00 E-FW Button
GPIO_LED1, // GPIO01 Green LED - Link and Power status GPIO_LED1, // GPIO01 Green LED - Link and Power status
GPIO_USER, // GPIO02 TX and Optional sensor - Pin next to TX on the PCB GPIO_USER, // GPIO02 TX and Optional sensor - Pin next to TX on the PCB
@ -1265,7 +1211,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_PWM1, // GPIO15 Red GPIO_PWM1, // GPIO15 Red
0, 0 0, 0
}, },
{ "Sonoff SC", // SONOFF_SC - onoff SC (ESP8266) { // SONOFF_SC - onoff SC (ESP8266)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
GPIO_TXD, // GPIO01 RXD to ATMEGA328P GPIO_TXD, // GPIO01 RXD to ATMEGA328P
GPIO_USER, // GPIO02 Optional sensor GPIO_USER, // GPIO02 Optional sensor
@ -1281,7 +1227,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Sonoff BN-SZ", // SONOFF_BN - Sonoff BN-SZ01 Ceiling led (ESP8285) { // SONOFF_BN - Sonoff BN-SZ01 Ceiling led (ESP8285)
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// GPIO06 (SD_CLK Flash) // GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT) // GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
@ -1293,7 +1239,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Red Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Red Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Sonoff 4CH Pro", // SONOFF_4CHPRO - Sonoff 4CH Pro (ESP8285) { // SONOFF_4CHPRO - Sonoff 4CH Pro (ESP8285)
GPIO_KEY1, // GPIO00 Button 1 GPIO_KEY1, // GPIO00 Button 1
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
GPIO_USER, // GPIO02 Optional sensor GPIO_USER, // GPIO02 Optional sensor
@ -1312,7 +1258,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL4, // GPIO15 Red Led and Relay 4 (0 = Off, 1 = On) GPIO_REL4, // GPIO15 Red Led and Relay 4 (0 = Off, 1 = On)
0, 0 0, 0
}, },
{ "Huafan SS", // HUAFAN_SS - Hua Fan Smart Socket (ESP8266) - like Sonoff Pow { // HUAFAN_SS - Hua Fan Smart Socket (ESP8266) - like Sonoff Pow
GPIO_LEDLNK_INV, // GPIO00 Blue Led (0 = On, 1 = Off) - Link status GPIO_LEDLNK_INV, // GPIO00 Blue Led (0 = On, 1 = Off) - Link status
0, 0, 0, 0,
GPIO_LED1_INV, // GPIO03 Red Led (0 = On, 1 = Off) - Power status GPIO_LED1_INV, // GPIO03 Red Led (0 = On, 1 = Off) - Power status
@ -1329,7 +1275,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_HLW_CF, // GPIO14 HLW8012 CF power GPIO_HLW_CF, // GPIO14 HLW8012 CF power
0, 0, 0 0, 0, 0
}, },
{ "Sonoff Bridge", // SONOFF_BRIDGE - Sonoff RF Bridge 433 (ESP8285) { // SONOFF_BRIDGE - Sonoff RF Bridge 433 (ESP8285)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
GPIO_TXD, // GPIO01 RF bridge control GPIO_TXD, // GPIO01 RF bridge control
GPIO_USER, // GPIO02 Optional sensor GPIO_USER, // GPIO02 Optional sensor
@ -1347,7 +1293,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO14 Optional sensor GPIO_USER, // GPIO14 Optional sensor
0, 0, 0 0, 0, 0
}, },
{ "Sonoff B1", // SONOFF_B1 - Sonoff B1 (ESP8285 - my9231) { // SONOFF_B1 - Sonoff B1 (ESP8285 - my9231)
GPIO_KEY1, // GPIO00 Pad GPIO_KEY1, // GPIO00 Pad
GPIO_USER, // GPIO01 Serial RXD and Optional sensor pad GPIO_USER, // GPIO01 Serial RXD and Optional sensor pad
GPIO_USER, // GPIO02 Optional sensor SDA pad GPIO_USER, // GPIO02 Optional sensor SDA pad
@ -1364,7 +1310,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_DCKI, // GPIO14 my9231 DCKI GPIO_DCKI, // GPIO14 my9231 DCKI
0, 0, 0 0, 0, 0
}, },
{ "AiLight", // AILIGHT - Ai-Thinker RGBW led (ESP8266 - my9291) { // AILIGHT - Ai-Thinker RGBW led (ESP8266 - my9291)
GPIO_KEY1, // GPIO00 Pad GPIO_KEY1, // GPIO00 Pad
GPIO_USER, // GPIO01 Serial RXD and Optional sensor pad GPIO_USER, // GPIO01 Serial RXD and Optional sensor pad
GPIO_USER, // GPIO02 Optional sensor SDA pad GPIO_USER, // GPIO02 Optional sensor SDA pad
@ -1382,7 +1328,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_DCKI, // GPIO15 my9291 DCKI GPIO_DCKI, // GPIO15 my9291 DCKI
0, 0 0, 0
}, },
{ "Sonoff T1 1CH", // SONOFF_T11 - Sonoff T1 1CH (ESP8285) { // SONOFF_T11 - Sonoff T1 1CH (ESP8285)
GPIO_KEY1, // GPIO00 Button 1 GPIO_KEY1, // GPIO00 Button 1
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
GPIO_USER, // GPIO02 Optional Sensor (J3 Pin 5) GPIO_USER, // GPIO02 Optional Sensor (J3 Pin 5)
@ -1398,7 +1344,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Sonoff T1 2CH", // SONOFF_T12 - Sonoff T1 2CH (ESP8285) { // SONOFF_T12 - Sonoff T1 2CH (ESP8285)
GPIO_KEY1, // GPIO00 Button 1 GPIO_KEY1, // GPIO00 Button 1
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
GPIO_USER, // GPIO02 Optional Sensor (J3 Pin 5) GPIO_USER, // GPIO02 Optional Sensor (J3 Pin 5)
@ -1415,7 +1361,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Sonoff T1 3CH", // SONOFF_T13 - Sonoff T1 3CH (ESP8285) { // SONOFF_T13 - Sonoff T1 3CH (ESP8285)
GPIO_KEY1, // GPIO00 Button 1 GPIO_KEY1, // GPIO00 Button 1
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
GPIO_USER, // GPIO02 Optional Sensor (J3 Pin 5) GPIO_USER, // GPIO02 Optional Sensor (J3 Pin 5)
@ -1432,7 +1378,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Supla Espablo", // SUPLA1 - Supla Espablo (ESP8266) { // SUPLA1 - Supla Espablo (ESP8266)
// http://www.wykop.pl/ramka/3325399/diy-supla-do-puszki-instalacyjnej-podtynkowej-supla-org/ // http://www.wykop.pl/ramka/3325399/diy-supla-do-puszki-instalacyjnej-podtynkowej-supla-org/
0, // GPIO00 Flash jumper 0, // GPIO00 Flash jumper
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
@ -1457,7 +1403,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1, // GPIO16 Led (1 = On, 0 = Off) - Link and Power status GPIO_LED1, // GPIO16 Led (1 = On, 0 = Off) - Link and Power status
ADC0_USER // ADC0 A0 Analog input ADC0_USER // ADC0 A0 Analog input
}, },
{ "Witty Cloud", // WITTY - Witty Cloud Dev Board (ESP8266) { // WITTY - Witty Cloud Dev Board (ESP8266)
// https://www.aliexpress.com/item/ESP8266-serial-WIFI-Witty-cloud-Development-Board-ESP-12F-module-MINI-nodemcu/32643464555.html // https://www.aliexpress.com/item/ESP8266-serial-WIFI-Witty-cloud-Development-Board-ESP-12F-module-MINI-nodemcu/32643464555.html
GPIO_USER, // GPIO00 D3 flash push button on interface board GPIO_USER, // GPIO00 D3 flash push button on interface board
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
@ -1478,7 +1424,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO16 D0 optional sensor GPIO_USER, // GPIO16 D0 optional sensor
ADC0_USER // ADC0 A0 Light sensor / Requires USE_ADC_VCC in user_config.h to be disabled ADC0_USER // ADC0 A0 Light sensor / Requires USE_ADC_VCC in user_config.h to be disabled
}, },
{ "Yunshan Relay", // YUNSHAN - Yunshan Wifi Relay (ESP8266) { // YUNSHAN - Yunshan Wifi Relay (ESP8266)
// https://www.ebay.com/p/Esp8266-220v-10a-Network-Relay-WiFi-Module/1369583381 // https://www.ebay.com/p/Esp8266-220v-10a-Network-Relay-WiFi-Module/1369583381
// Schematics and Info https://ucexperiment.wordpress.com/2016/12/18/yunshan-esp8266-250v-15a-acdc-network-wifi-relay-module/ // Schematics and Info https://ucexperiment.wordpress.com/2016/12/18/yunshan-esp8266-250v-15a-acdc-network-wifi-relay-module/
0, // GPIO00 Flash jumper - Module Pin 8 0, // GPIO00 Flash jumper - Module Pin 8
@ -1495,7 +1441,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
// GPIO11 (SD_CMD Flash) // GPIO11 (SD_CMD Flash)
0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0
}, },
{ "MagicHome", // MAGICHOME - Magic Home (aka Flux-light) (ESP8266) and Arilux LC10 (ESP8285) { // MAGICHOME - Magic Home (aka Flux-light) (ESP8266) and Arilux LC10 (ESP8285)
// https://www.aliexpress.com/item/Magic-Home-Mini-RGB-RGBW-Wifi-Controller-For-Led-Strip-Panel-light-Timing-Function-16million-colors/32686853650.html // https://www.aliexpress.com/item/Magic-Home-Mini-RGB-RGBW-Wifi-Controller-For-Led-Strip-Panel-light-Timing-Function-16million-colors/32686853650.html
0, 0,
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
@ -1515,7 +1461,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_ARIRFSEL, // GPIO15 RF receiver control (Arilux LC10) GPIO_ARIRFSEL, // GPIO15 RF receiver control (Arilux LC10)
0, 0 0, 0
}, },
{ "Luani HVIO", // LUANIHVIO - ESP8266_HVIO { // LUANIHVIO - ESP8266_HVIO
// https://luani.de/projekte/esp8266-hvio/ // https://luani.de/projekte/esp8266-hvio/
0, // GPIO00 Flash jumper 0, // GPIO00 Flash jumper
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
@ -1536,7 +1482,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
0, 0,
ADC0_USER // ADC0 A0 Analog input ADC0_USER // ADC0 A0 Analog input
}, },
{ "KMC 70011", // KMC_70011 - KMC 70011 { // KMC_70011 - KMC 70011
// https://www.amazon.com/KMC-Timing-Monitoring-Network-125V-240V/dp/B06XRX2GTQ // https://www.amazon.com/KMC-Timing-Monitoring-Network-125V-240V/dp/B06XRX2GTQ
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
0, 0, 0, 0, 0, 0,
@ -1553,7 +1499,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1, // GPIO14 Relay GPIO_REL1, // GPIO14 Relay
0, 0, 0 0, 0, 0
}, },
{ "Arilux LC01", // ARILUX_LC01 - Arilux AL-LC01 (ESP8285) { // ARILUX_LC01 - Arilux AL-LC01 (ESP8285)
// https://www.banggood.com/nl/ARILUX-AL-LC01-Super-Mini-LED-WIFI-Smart-RGB-Controller-For-RGB-LED-Strip-Light-DC-9-12V-p-1058603.html // https://www.banggood.com/nl/ARILUX-AL-LC01-Super-Mini-LED-WIFI-Smart-RGB-Controller-For-RGB-LED-Strip-Light-DC-9-12V-p-1058603.html
// (PwmFrequency 1111Hz) // (PwmFrequency 1111Hz)
GPIO_KEY1, // GPIO00 Optional Button GPIO_KEY1, // GPIO00 Optional Button
@ -1573,7 +1519,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO14 RGBW LED White (optional - set to PWM4 for Cold White or Warm White) GPIO_USER, // GPIO14 RGBW LED White (optional - set to PWM4 for Cold White or Warm White)
0, 0, 0 0, 0, 0
}, },
{ "Arilux LC11", // ARILUX_LC11 - Arilux AL-LC11 (ESP8266) { // ARILUX_LC11 - Arilux AL-LC11 (ESP8266)
// https://www.banggood.com/nl/ARILUX-AL-LC11-Super-Mini-LED-WIFI-APP-Controller-RF-Remote-Control-For-RGBWW-LED-Strip-DC9-28V-p-1085112.html // https://www.banggood.com/nl/ARILUX-AL-LC11-Super-Mini-LED-WIFI-APP-Controller-RF-Remote-Control-For-RGBWW-LED-Strip-DC9-28V-p-1085112.html
// (PwmFrequency 540Hz) // (PwmFrequency 540Hz)
GPIO_KEY1, // GPIO00 Optional Button GPIO_KEY1, // GPIO00 Optional Button
@ -1594,7 +1540,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_ARIRFRCV, // GPIO15 RF receiver input GPIO_ARIRFRCV, // GPIO15 RF receiver input
0, 0 0, 0
}, },
{ "Sonoff Dual R2", // SONOFF_DUAL_R2 - Sonoff Dual R2 (ESP8285) { // SONOFF_DUAL_R2 - Sonoff Dual R2 (ESP8285)
GPIO_USER, // GPIO00 Button 0 on header (0 = On, 1 = Off) GPIO_USER, // GPIO00 Button 0 on header (0 = On, 1 = Off)
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
0, 0,
@ -1611,7 +1557,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Arilux LC06", // ARILUX_LC06 - Arilux AL-LC06 (ESP8285) { // ARILUX_LC06 - Arilux AL-LC06 (ESP8285)
// https://www.banggood.com/ARILUX-AL-LC06-LED-WIFI-Smartphone-Controller-Romote-5-Channels-DC12-24V-For-RGBWW-Strip-light-p-1061476.html // https://www.banggood.com/ARILUX-AL-LC06-LED-WIFI-Smartphone-Controller-Romote-5-Channels-DC12-24V-For-RGBWW-Strip-light-p-1061476.html
GPIO_KEY1, // GPIO00 Optional Button GPIO_KEY1, // GPIO00 Optional Button
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
@ -1631,7 +1577,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO15 RGBW LED White GPIO_USER, // GPIO15 RGBW LED White
0, 0 0, 0
}, },
{ "Sonoff S31", // SONOFF_S31 - Sonoff S31 (ESP8266 - CSE7766) { // SONOFF_S31 - Sonoff S31 (ESP8266 - CSE7766)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
GPIO_CSE7766_TX, // GPIO01 Serial RXD 4800 baud 8E1 CSE7766 energy sensor GPIO_CSE7766_TX, // GPIO01 Serial RXD 4800 baud 8E1 CSE7766 energy sensor
0, 0,
@ -1647,7 +1593,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Zengge WF017", // ZENGGE_ZF_WF017 - Zenggee ZJ-WF017-A (ESP12S)) { // ZENGGE_ZF_WF017 - Zenggee ZJ-WF017-A (ESP12S))
// https://www.ebay.com/p/Smartphone-Android-IOS-WiFi-Music-Controller-for-RGB-5050-3528-LED-Strip-Light/534446632?_trksid=p2047675.l2644 // https://www.ebay.com/p/Smartphone-Android-IOS-WiFi-Music-Controller-for-RGB-5050-3528-LED-Strip-Light/534446632?_trksid=p2047675.l2644
GPIO_KEY1, // GPIO00 Optional Button GPIO_KEY1, // GPIO00 Optional Button
0, 0,
@ -1666,7 +1612,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_PWM3, // GPIO14 RGB LED Blue GPIO_PWM3, // GPIO14 RGB LED Blue
0, 0, 0 0, 0, 0
}, },
{ "Sonoff Pow R2", // SONOFF_POW_R2 - Sonoff Pow R2 (ESP8285 - CSE7766) { // SONOFF_POW_R2 - Sonoff Pow R2 (ESP8285 - CSE7766)
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
GPIO_CSE7766_TX, // GPIO01 Serial RXD 4800 baud 8E1 CSE7766 energy sensor GPIO_CSE7766_TX, // GPIO01 Serial RXD 4800 baud 8E1 CSE7766 energy sensor
0, 0,
@ -1682,7 +1628,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Sonoff iFan02", // SONOFF_IFAN02 - Sonoff iFan02 (ESP8285) { // SONOFF_IFAN02 - Sonoff iFan02 (ESP8285)
GPIO_KEY1, // GPIO00 WIFI_KEY0 Virtual button 1 as feedback from RC GPIO_KEY1, // GPIO00 WIFI_KEY0 Virtual button 1 as feedback from RC
GPIO_USER, // GPIO01 ESP_TXD Serial RXD and Optional sensor GPIO_USER, // GPIO01 ESP_TXD Serial RXD and Optional sensor
0, // GPIO02 ESP_LOG 0, // GPIO02 ESP_LOG
@ -1701,7 +1647,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL4, // GPIO15 WIFI_O3 Relay 4 (0 = Off, 1 = On) controlling the fan GPIO_REL4, // GPIO15 WIFI_O3 Relay 4 (0 = Off, 1 = On) controlling the fan
0, 0 0, 0
}, },
{ "BlitzWolf SHP", // BLITZWOLF_BWSHP - BlitzWolf BW-SHP2 and BW-SHP6 (ESP8285 - BL0937 or HJL-01 Energy Monitoring) { // BLITZWOLF_BWSHP - BlitzWolf BW-SHP2 and BW-SHP6 (ESP8285 - BL0937 or HJL-01 Energy Monitoring)
// https://www.banggood.com/BlitzWolf-BW-SHP2-Smart-WIFI-Socket-EU-Plug-220V-16A-Work-with-Amazon-Alexa-Google-Assistant-p-1292899.html // https://www.banggood.com/BlitzWolf-BW-SHP2-Smart-WIFI-Socket-EU-Plug-220V-16A-Work-with-Amazon-Alexa-Google-Assistant-p-1292899.html
// https://www.amazon.de/Steckdose-Homecube-intelligente-Verbrauchsanzeige-funktioniert/dp/B076Q2LKHG/ref=sr_1_fkmr0_1 // https://www.amazon.de/Steckdose-Homecube-intelligente-Verbrauchsanzeige-funktioniert/dp/B076Q2LKHG/ref=sr_1_fkmr0_1
// https://www.amazon.de/Intelligente-Stromverbrauch-Fernsteurung-Schaltbare-Energieklasse/dp/B076WZQS4S/ref=sr_1_1 // https://www.amazon.de/Intelligente-Stromverbrauch-Fernsteurung-Schaltbare-Energieklasse/dp/B076WZQS4S/ref=sr_1_1
@ -1724,7 +1670,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1, // GPIO15 Relay (0 = Off, 1 = On) GPIO_REL1, // GPIO15 Relay (0 = Off, 1 = On)
0, 0 0, 0
}, },
{ "Shelly 1", // SHELLY1 - Shelly1 Open Source (ESP8266 - 2MB) - https://shelly.cloud/shelly1-open-source/ { // SHELLY1 - Shelly1 Open Source (ESP8266 - 2MB) - https://shelly.cloud/shelly1-open-source/
GPIO_USER, // GPIO00 - Can be changed to GPIO_USER, only if Shelly is powered with 12V DC GPIO_USER, // GPIO00 - Can be changed to GPIO_USER, only if Shelly is powered with 12V DC
GPIO_USER, // GPIO01 Serial RXD - Can be changed to GPIO_USER, only if Shelly is powered with 12V DC GPIO_USER, // GPIO01 Serial RXD - Can be changed to GPIO_USER, only if Shelly is powered with 12V DC
0, 0,
@ -1739,7 +1685,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
// GPIO11 (SD_CMD Flash) // GPIO11 (SD_CMD Flash)
0, 0, 0, 0, 0, 0 0, 0, 0, 0, 0, 0
}, },
{ "Shelly 2", // SHELLY2 - Shelly2 (ESP8266 - 2MB) - https://shelly.cloud/shelly2/ { // SHELLY2 - Shelly2 (ESP8266 - 2MB) - https://shelly.cloud/shelly2/
0, 0,
GPIO_MCP39F5_TX, // GPIO01 MCP39F501 Serial input GPIO_MCP39F5_TX, // GPIO01 MCP39F501 Serial input
0, 0,
@ -1759,7 +1705,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
0, 0,
0 0
}, },
{ "Xiaomi Philips", // PHILIPS - Xiaomi Philips bulb (ESP8266) { // PHILIPS - Xiaomi Philips bulb (ESP8266)
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
// GPIO06 (SD_CLK Flash) // GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT) // GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
@ -1772,7 +1718,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_PWM1, // GPIO15 light intensity GPIO_PWM1, // GPIO15 light intensity
0, 0 0, 0
}, },
{ "Neo Coolcam", // NEO_COOLCAM - Neo Coolcam (ESP8266) { // NEO_COOLCAM - Neo Coolcam (ESP8266)
// https://www.banggood.com/NEO-COOLCAM-WiFi-Mini-Smart-Plug-APP-Remote-Control-Timing-Smart-Socket-EU-Plug-p-1288562.html?cur_warehouse=CN // https://www.banggood.com/NEO-COOLCAM-WiFi-Mini-Smart-Plug-APP-Remote-Control-Timing-Smart-Socket-EU-Plug-p-1288562.html?cur_warehouse=CN
0, 0, 0, 0, 0, 0, 0, 0,
GPIO_LED1_INV, // GPIO04 Red Led (0 = On, 1 = Off) - Link and Power status GPIO_LED1_INV, // GPIO04 Red Led (0 = On, 1 = Off) - Link and Power status
@ -1787,7 +1733,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_KEY1, // GPIO13 Button GPIO_KEY1, // GPIO13 Button
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "ESP Switch", // ESP_SWITCH - Michael Haustein 4 channel wall switch (ESP07 = ESP8266) { // ESP_SWITCH - Michael Haustein 4 channel wall switch (ESP07 = ESP8266)
// Use rules for further actions like - rule on power1#state do publish cmnd/other_device/power %value% endon // Use rules for further actions like - rule on power1#state do publish cmnd/other_device/power %value% endon
GPIO_KEY2, // GPIO00 Button 2 GPIO_KEY2, // GPIO00 Button 2
GPIO_USER, // GPIO01 Serial RXD and Optional sensor GPIO_USER, // GPIO01 Serial RXD and Optional sensor
@ -1808,7 +1754,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1_INV, // GPIO16 Green Led 1 (0 = On, 1 = Off) GPIO_REL1_INV, // GPIO16 Green Led 1 (0 = On, 1 = Off)
0 0
}, },
{ "OBI Socket", // OBI - OBI socket (ESP8266) - https://www.obi.de/hausfunksteuerung/wifi-stecker-schuko/p/2291706 { // OBI - OBI socket (ESP8266) - https://www.obi.de/hausfunksteuerung/wifi-stecker-schuko/p/2291706
GPIO_USER, // GPIO00 GPIO_USER, // GPIO00
GPIO_USER, // GPIO01 Serial RXD GPIO_USER, // GPIO01 Serial RXD
0, 0,
@ -1828,7 +1774,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO16 GPIO_USER, // GPIO16
ADC0_USER // ADC0 A0 Analog input ADC0_USER // ADC0 A0 Analog input
}, },
{ "Teckin", // TECKIN - https://www.amazon.de/gp/product/B07D5V139R { // TECKIN - https://www.amazon.de/gp/product/B07D5V139R
0, 0,
GPIO_KEY1, // GPIO01 Serial TXD and Button GPIO_KEY1, // GPIO01 Serial TXD and Button
0, 0,
@ -1846,7 +1792,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1, // GPIO14 Relay (0 = Off, 1 = On) GPIO_REL1, // GPIO14 Relay (0 = Off, 1 = On)
0, 0, 0 0, 0, 0
}, },
{ "AplicWDP303075", // APLIC_WDP303075 - Aplic WDP 303075 (ESP8285 - HLW8012 Energy Monitoring) { // APLIC_WDP303075 - Aplic WDP 303075 (ESP8285 - HLW8012 Energy Monitoring)
// https://www.amazon.de/dp/B07CNWVNJ2 // https://www.amazon.de/dp/B07CNWVNJ2
0, 0, 0, 0, 0, 0,
GPIO_KEY1, // GPIO03 Button GPIO_KEY1, // GPIO03 Button
@ -1863,7 +1809,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1, // GPIO14 Relay SRU 5VDC SDA (0 = Off, 1 = On ) GPIO_REL1, // GPIO14 Relay SRU 5VDC SDA (0 = Off, 1 = On )
0, 0, 0 0, 0, 0
}, },
{ "Tuya MCU", // TUYA_DIMMER - Tuya MCU device (ESP8266 w/ separate MCU) { // TUYA_DIMMER - Tuya MCU device (ESP8266 w/ separate MCU)
// https://www.amazon.com/gp/product/B07CTNSZZ8/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1 // https://www.amazon.com/gp/product/B07CTNSZZ8/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1
GPIO_USER, // Virtual Button (controlled by MCU) GPIO_USER, // Virtual Button (controlled by MCU)
GPIO_USER, // GPIO01 MCU serial control GPIO_USER, // GPIO01 MCU serial control
@ -1884,7 +1830,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, GPIO_USER,
0 0
}, },
{ "Gosund SP1 v23", // GOSUND - https://www.amazon.de/gp/product/B0777BWS1P { // GOSUND - https://www.amazon.de/gp/product/B0777BWS1P
0, 0,
GPIO_LEDLNK_INV, // GPIO01 Serial RXD and LED1 (blue) inv - Link status GPIO_LEDLNK_INV, // GPIO01 Serial RXD and LED1 (blue) inv - Link status
0, 0,
@ -1902,7 +1848,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1, // GPIO14 Relay (0 = Off, 1 = On) GPIO_REL1, // GPIO14 Relay (0 = Off, 1 = On)
0, 0, 0 0, 0, 0
}, },
{ "ARMTR Dimmer", // ARMTRONIX_DIMMERS - ARMTRONIX Dimmer, one or two channel (ESP8266 w/ separate MCU dimmer) { // ARMTRONIX_DIMMERS - ARMTRONIX Dimmer, one or two channel (ESP8266 w/ separate MCU dimmer)
// https://www.tindie.com/products/Armtronix/wifi-ac-dimmer-two-triac-board/ // https://www.tindie.com/products/Armtronix/wifi-ac-dimmer-two-triac-board/
// https://www.tindie.com/products/Armtronix/wifi-ac-dimmer-esp8266-one-triac-board-alexaecho/ // https://www.tindie.com/products/Armtronix/wifi-ac-dimmer-esp8266-one-triac-board-alexaecho/
GPIO_USER, GPIO_USER,
@ -1924,7 +1870,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, GPIO_USER,
0 0
}, },
{ "SK03 Outdoor", // SK03_TUYA - Outdoor smart plug with power monitoring HLW8012 chip - https://www.amazon.com/gp/product/B07CG7MBPV { // SK03_TUYA - Outdoor smart plug with power monitoring HLW8012 chip - https://www.amazon.com/gp/product/B07CG7MBPV
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
0, 0, 0, 0, 0, 0,
GPIO_HLW_CF, // GPIO04 HLW8012 CF power GPIO_HLW_CF, // GPIO04 HLW8012 CF power
@ -1941,7 +1887,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1, // GPIO15 Relay (0 = Off, 1 = On) GPIO_REL1, // GPIO15 Relay (0 = Off, 1 = On)
0, 0 0, 0
}, },
{ "PS-16-DZ", // PS_16_DZ - PS-16-DZ Dimmer (ESP8266 w/ separate Nuvoton MCU dimmer) { // PS_16_DZ - PS-16-DZ Dimmer (ESP8266 w/ separate Nuvoton MCU dimmer)
// https://www.aliexpress.com/item/SM-Smart-WIFI-Wall-Dimmer-Light-Switch-US-Ewelink-APP-Remote-Control-Wi-Fi-Wirele-Work/32871151902.html // https://www.aliexpress.com/item/SM-Smart-WIFI-Wall-Dimmer-Light-Switch-US-Ewelink-APP-Remote-Control-Wi-Fi-Wirele-Work/32871151902.html
GPIO_USER, GPIO_USER,
GPIO_TXD, // GPIO01 MCU serial control GPIO_TXD, // GPIO01 MCU serial control
@ -1962,7 +1908,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, GPIO_USER,
0 0
}, },
{ "Teckin US", // TECKIN_US - Teckin SP20 US with Energy Monitoring { // TECKIN_US - Teckin SP20 US with Energy Monitoring
// https://www.amazon.com/Outlet-Compatible-Monitoring-Function-Required/dp/B079Q5W22B // https://www.amazon.com/Outlet-Compatible-Monitoring-Function-Required/dp/B079Q5W22B
// https://www.amazon.com/Outlet-ZOOZEE-Monitoring-Function-Compatible/dp/B07J2LR5KN // https://www.amazon.com/Outlet-ZOOZEE-Monitoring-Function-Compatible/dp/B07J2LR5KN
GPIO_LED1_INV, // GPIO00 Red Led (1 = On, 0 = Off) - Power status GPIO_LED1_INV, // GPIO00 Red Led (1 = On, 0 = Off) - Power status
@ -1982,8 +1928,8 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_NRG_CF1, // GPIO14 BL0937 or HJL-01 CF1 current / voltage GPIO_NRG_CF1, // GPIO14 BL0937 or HJL-01 CF1 current / voltage
0, 0, 0 0, 0, 0
}, },
{ "Manzoku strip", // MANZOKU_EU_4 - "MANZOKU" labeled power strip, EU version { // MANZOKU_EU_4 - "MANZOKU" labeled power strip, EU version
// https://www.amazon.de/Steckdosenleiste-AOFO-Mehrfachsteckdose-Überspannungsschutz-Sprachsteuerung/dp/B07GBSD11P/ // https://www.amazon.de/Steckdosenleiste-AOFO-Mehrfachsteckdose-Überspannungsschutz-Sprachsteuerung/dp/B07GBSD11P/
// https://www.amazon.de/Steckdosenleiste-Geekbes-USB-Anschluss-Kompatibel-gesteuert/dp/B078W23BW9/ // https://www.amazon.de/Steckdosenleiste-Geekbes-USB-Anschluss-Kompatibel-gesteuert/dp/B078W23BW9/
0, // GPIO00 0, // GPIO00
0, // GPIO01 Serial RXD 0, // GPIO01 Serial RXD
@ -2004,7 +1950,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO16 GPIO_USER, // GPIO16
0 0
}, },
{ "OBI Socket 2", // OBI2 - OBI socket (ESP8266) - https://www.obi.de/hausfunksteuerung/wifi-stecker-schuko-2-stueck-weiss/p/4077673 { // OBI2 - OBI socket (ESP8266) - https://www.obi.de/hausfunksteuerung/wifi-stecker-schuko-2-stueck-weiss/p/4077673
0, // GPIO00 0, // GPIO00
0, // GPIO01 Serial RXD 0, // GPIO01 Serial RXD
0, 0,
@ -2021,7 +1967,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1, // GPIO13 Red LED - Power status GPIO_LED1, // GPIO13 Red LED - Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "YTF IR Bridge", // YTF_IR_BRIDGE - https://www.aliexpress.com/item/Tuya-universal-Smart-IR-Hub-remote-control-Voice-Control-AC-TV-Work-With-Alexa-Google-Home/32951202513.html { // YTF_IR_BRIDGE - https://www.aliexpress.com/item/Tuya-universal-Smart-IR-Hub-remote-control-Voice-Control-AC-TV-Work-With-Alexa-Google-Home/32951202513.html
GPIO_USER, // GPIO00 GPIO_USER, // GPIO00
GPIO_USER, // GPIO01 Serial RXD GPIO_USER, // GPIO01 Serial RXD
GPIO_USER, // GPIO02 GPIO_USER, // GPIO02
@ -2039,7 +1985,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_IRSEND, // GPIO14 IR Transmitter GPIO_IRSEND, // GPIO14 IR Transmitter
0, 0, 0 0, 0, 0
}, },
{ "Digoo DG-SP202", // DIGOO - Digoo DG-SP202 { // DIGOO - Digoo DG-SP202
// https://www.banggood.com/DIGOO-DG-SP202-Dual-EU-Plug-Smart-WIFI-Socket-Individual-Controllable-Energy-Monitor-Remote-Control-Timing-Smart-Home-Outlet-let-p-1375323.html // https://www.banggood.com/DIGOO-DG-SP202-Dual-EU-Plug-Smart-WIFI-Socket-Individual-Controllable-Energy-Monitor-Remote-Control-Timing-Smart-Home-Outlet-let-p-1375323.html
GPIO_KEY1, // GPIO00 Button1 GPIO_KEY1, // GPIO00 Button1
0, // GPIO01 Serial RXD 0, // GPIO01 Serial RXD
@ -2060,7 +2006,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_KEY2_NP, // GPIO16 Button2, externally pulled up GPIO_KEY2_NP, // GPIO16 Button2, externally pulled up
0 0
}, },
{ "KA10", // KA10 - SMANERGY KA10 (ESP8285 - BL0937 Energy Monitoring) - https://www.amazon.es/dp/B07MBTCH2Y { // KA10 - SMANERGY KA10 (ESP8285 - BL0937 Energy Monitoring) - https://www.amazon.es/dp/B07MBTCH2Y
0, // GPIO00 0, // GPIO00
GPIO_LEDLNK_INV, // GPIO01 Blue LED - Link status GPIO_LEDLNK_INV, // GPIO01 Blue LED - Link status
0, // GPIO02 0, // GPIO02
@ -2078,7 +2024,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1, // GPIO14 Relay 1 GPIO_REL1, // GPIO14 Relay 1
0, 0, 0 0, 0, 0
}, },
{ "Luminea ZX2820", // ZX2820 { // ZX2820
GPIO_KEY1, // GPIO00 Button GPIO_KEY1, // GPIO00 Button
0, 0, 0, 0, 0, 0,
GPIO_HLW_CF, // GPIO04 HLW8012 CF power GPIO_HLW_CF, // GPIO04 HLW8012 CF power
@ -2094,7 +2040,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1, // GPIO14 Relay GPIO_REL1, // GPIO14 Relay
0, 0, 0 0, 0, 0
}, },
{ "Mi Desk Lamp", // MI_DESK_LAMP - Mi LED Desk Lamp - https://www.mi.com/global/smartlamp/ { // MI_DESK_LAMP - Mi LED Desk Lamp - https://www.mi.com/global/smartlamp/
0, 0, 0, 0,
GPIO_KEY1, // GPIO02 Button GPIO_KEY1, // GPIO02 Button
0, 0,
@ -2110,7 +2056,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_ROT1B, // GPIO13 Rotary switch B pin GPIO_ROT1B, // GPIO13 Rotary switch B pin
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "SP10", // SP10 - Tuya SP10 (BL0937 Energy Monitoring) { // SP10 - Tuya SP10 (BL0937 Energy Monitoring)
// https://www.aliexpress.com/item/Smart-Mini-WiFi-Plug-Outlet-Switch-Work-With-ForEcho-Alexa-Google-Home-Remote-EU-Smart-Socket/32963670423.html // https://www.aliexpress.com/item/Smart-Mini-WiFi-Plug-Outlet-Switch-Work-With-ForEcho-Alexa-Google-Home-Remote-EU-Smart-Socket/32963670423.html
0, // GPIO00 0, // GPIO00
GPIO_PWM1, // GPIO01 Nightlight GPIO_PWM1, // GPIO01 Nightlight
@ -2129,7 +2075,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1, // GPIO14 Relay and red LED GPIO_REL1, // GPIO14 Relay and red LED
0, 0, 0 0, 0, 0
}, },
{ "WAGA CHCZ02MB", // WAGA - WAGA life CHCZ02MB (HJL-01 Energy Monitoring) { // WAGA - WAGA life CHCZ02MB (HJL-01 Energy Monitoring)
// https://www.ebay.com/itm/332595697006 // https://www.ebay.com/itm/332595697006
GPIO_LED1_INV, // GPIO00 Red LED GPIO_LED1_INV, // GPIO00 Red LED
0, // GPIO01 Serial RXD 0, // GPIO01 Serial RXD
@ -2149,7 +2095,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LEDLNK_INV, // GPIO15 Blue LED - Link status GPIO_LEDLNK_INV, // GPIO15 Blue LED - Link status
0, 0 0, 0
}, },
{ "SYF05", // SYF05 - Sunyesmart SYF05 (a.k.a. Fcmila) = TYWE3S + SM16726 { // SYF05 - Sunyesmart SYF05 (a.k.a. Fcmila) = TYWE3S + SM16726
// Also works with Merkury 904 RGBW Bulbs with 13 set to GPIO_SM16716_SEL // Also works with Merkury 904 RGBW Bulbs with 13 set to GPIO_SM16716_SEL
// https://www.flipkart.com/fc-mila-bxav-xs-ad-smart-bulb/p/itmf85zgs45fzr7n // https://www.flipkart.com/fc-mila-bxav-xs-ad-smart-bulb/p/itmf85zgs45fzr7n
// https://docs.tuya.com/en/hardware/WiFi-module/wifi-e3s-module.html // https://docs.tuya.com/en/hardware/WiFi-module/wifi-e3s-module.html
@ -2173,7 +2119,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_USER, // GPIO16 N.C. GPIO_USER, // GPIO16 N.C.
ADC0_USER // ADC0 A0 Analog input ADC0_USER // ADC0 A0 Analog input
}, },
{ "Sonoff L1", // SONOFF_L1 - Sonoff L1 RGB LED controller (ESP8266 w/ separate Nuvoton MCU) { // SONOFF_L1 - Sonoff L1 RGB LED controller (ESP8266 w/ separate Nuvoton MCU)
0, 0,
GPIO_TXD, // GPIO01 MCU serial control GPIO_TXD, // GPIO01 MCU serial control
0, 0,
@ -2189,7 +2135,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_LED1_INV, // GPIO13 WiFi Blue Led - Link and Power status GPIO_LED1_INV, // GPIO13 WiFi Blue Led - Link and Power status
0, 0, 0, 0 0, 0, 0, 0
}, },
{ "Sonoff iFan03", // SONOFF_IFAN03 - Sonoff iFan03 (ESP8285) { // SONOFF_IFAN03 - Sonoff iFan03 (ESP8285)
GPIO_KEY1, // GPIO00 WIFI_KEY0 Button 1 GPIO_KEY1, // GPIO00 WIFI_KEY0 Button 1
GPIO_TXD, // GPIO01 ESP_TXD Serial RXD connection to P0.5 of RF microcontroller GPIO_TXD, // GPIO01 ESP_TXD Serial RXD connection to P0.5 of RF microcontroller
0, // GPIO02 ESP_LOG 0, // GPIO02 ESP_LOG
@ -2208,7 +2154,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL4, // GPIO15 WIFI_O3 Relay 4 (0 = Off, 1 = On) controlling the fan GPIO_REL4, // GPIO15 WIFI_O3 Relay 4 (0 = Off, 1 = On) controlling the fan
0, 0 0, 0
}, },
{ "EXS Dimmer", // EXS_DIMMER - EX-Store WiFi Dimmer v4, two channel (ESP8266 w/ separate MCU 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
// https://ex-store.de/2-Kanal-RS232-WiFi-WLan-Dimmer-Modul-V4-fuer-Unterputzmontage-230V-3A-ESP8266-V12-Stift-und-Buchsenleisten // https://ex-store.de/2-Kanal-RS232-WiFi-WLan-Dimmer-Modul-V4-fuer-Unterputzmontage-230V-3A-ESP8266-V12-Stift-und-Buchsenleisten
0, 0,
@ -2229,7 +2175,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
0, // GPIO15 0, // GPIO15
0, 0 0, 0
}, },
{ "PWM Dimmer", // PWM_DIMMER - Support for Martin Jerry/acenx/Tessan/NTONPOWER SD0x PWM { // PWM_DIMMER - Support for Martin Jerry/acenx/Tessan/NTONPOWER SD0x PWM
// dimmer switches. The brightness of the load for these dimmers is // dimmer switches. The brightness of the load for these dimmers is
// controlled by a PWM GPIO pin. There are typically power, up & down // controlled by a PWM GPIO pin. There are typically power, up & down
// buttons and 4 LED's. Examples are: // buttons and 4 LED's. Examples are:
@ -2256,7 +2202,7 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_REL1_INV, // GPIO16 Power relay/Level 1 LED GPIO_REL1_INV, // GPIO16 Power relay/Level 1 LED
0 0
}, },
{ "Sonoff D1", // SONOFF_D1 - Sonoff D1 RF Dimmer 433 (ESP8285) { // SONOFF_D1 - Sonoff D1 RF Dimmer 433 (ESP8285)
GPIO_USER, // GPIO00 Pad GPIO_USER, // GPIO00 Pad
GPIO_TXD, // GPIO01 D1 control GPIO_TXD, // GPIO01 D1 control
0, // GPIO02 0, // GPIO02

View File

@ -1494,7 +1494,7 @@ void HandleTemplateConfiguration(void)
void TemplateSaveSettings(void) void TemplateSaveSettings(void)
{ {
char tmp[sizeof(Settings.user_template.name)]; // WebGetArg NAME and GPIO/BASE/FLAG byte value char tmp[sizeof(Settings.user_template_name)]; // WebGetArg NAME and GPIO/BASE/FLAG byte value
char webindex[5]; // WebGetArg name char webindex[5]; // WebGetArg name
char svalue[128]; // Template command string char svalue[128]; // Template command string