diff --git a/code/espurna/config/version.h b/code/espurna/config/version.h index 33349d95..506ba0ee 100644 --- a/code/espurna/config/version.h +++ b/code/espurna/config/version.h @@ -8,4 +8,4 @@ #define APP_VERSION "1.14.2-dev" #define APP_AUTHOR "xose.perez@gmail.com" #define APP_WEBSITE "http://tinkerman.cat" -#define CFG_VERSION 3 +#define CFG_VERSION 4 diff --git a/code/espurna/migrate.ino b/code/espurna/migrate.ino index dee0d696..9890c333 100644 --- a/code/espurna/migrate.ino +++ b/code/espurna/migrate.ino @@ -6,6 +6,8 @@ Copyright (C) 2016-2019 by Xose PĂ©rez */ +#include "settings.h" + void _cmpMoveIndexDown(const char * key, int offset = 0) { if (hasSetting({key, 0})) return; for (unsigned char index = 1; index < SETTINGS_MAX_LIST_COUNT; index++) { @@ -23,1471 +25,41 @@ void _cmpMoveIndexDown(const char * key, int offset = 0) { // 1: based on Embedis, no board definitions // 2: based on Embedis, with board definitions 1-based // 3: based on Embedis, with board definitions 0-based +// 4: based on Embedis, no board definitions void migrate() { - // Get config version - const auto board = getSetting("board", 0); - const auto config_version = getSetting("cfg", board > 0 ? 2 : 1); - - // Update if not on latest version - if (config_version == CFG_VERSION) return; + // Update if not on the latest version + const auto version = getSetting("cfg", CFG_VERSION); + if (version == CFG_VERSION) return; setSetting("cfg", CFG_VERSION); - if (config_version == 2) { - _cmpMoveIndexDown("ledGPIO"); - _cmpMoveIndexDown("ledLogic"); - _cmpMoveIndexDown("btnGPIO"); - _cmpMoveIndexDown("btnRelay", -1); - _cmpMoveIndexDown("relayGPIO"); - _cmpMoveIndexDown("relayType"); - } - - if (config_version == 1) { - - #if defined(NODEMCU_LOLIN) - - setSetting("board", 2); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(WEMOS_D1_MINI_RELAYSHIELD) - - setSetting("board", 3); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_BASIC) - - setSetting("board", 4); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_TH) - - setSetting("board", 5); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_SV) - - setSetting("board", 6); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_TOUCH) - - setSetting("board", 7); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_POW) - - setSetting("board", 8); - setSetting("ledGPIO", 0, 15); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("selGPIO", 5); - setSetting("cf1GPIO", 13); - setSetting("cfGPIO", 14); - - #elif defined(ITEAD_SONOFF_DUAL) - - setSetting("board", 9); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnRelay", 0, 0xFF); - setSetting("btnRelay", 1, 0xFF); - setSetting("btnRelay", 2, 0); - setSetting("relayProvider", RELAY_PROVIDER_DUAL); - setSetting("relays", 2); - - #elif defined(ITEAD_1CH_INCHING) - - setSetting("board", 10); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_4CH) - - setSetting("board", 11); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnGPIO", 1, 9); - setSetting("btnGPIO", 2, 10); - setSetting("btnGPIO", 3, 14); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("btnRelay", 2, 2); - setSetting("btnRelay", 3, 3); - setSetting("relayGPIO", 0, 12); - setSetting("relayGPIO", 1, 5); - setSetting("relayGPIO", 2, 4); - setSetting("relayGPIO", 3, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("relayType", 2, RELAY_TYPE_NORMAL); - setSetting("relayType", 3, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SLAMPHER) - - setSetting("board", 12); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_S20) - - setSetting("board", 13); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(ELECTRODRAGON_WIFI_IOT) - - setSetting("board", 14); - setSetting("ledGPIO", 0, 16); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 0); - setSetting("btnGPIO", 1, 2); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("relayGPIO", 0, 12); - setSetting("relayGPIO", 1, 13); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - - #elif defined(WORKCHOICE_ECOPLUG) - - setSetting("board", 15); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(JANGOE_WIFI_RELAY_NC) - - setSetting("board", 16); - setSetting("btnGPIO", 0, 12); - setSetting("btnGPIO", 1, 13); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("relayGPIO", 0, 2); - setSetting("relayGPIO", 1, 14); - setSetting("relayType", 0, RELAY_TYPE_INVERSE); - setSetting("relayType", 1, RELAY_TYPE_INVERSE); - - #elif defined(JANGOE_WIFI_RELAY_NO) - - setSetting("board", 17); - setSetting("btnGPIO", 0, 12); - setSetting("btnGPIO", 1, 13); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("relayGPIO", 0, 2); - setSetting("relayGPIO", 1, 14); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - - #elif defined(OPENENERGYMONITOR_MQTT_RELAY) - - setSetting("board", 18); - setSetting("ledGPIO", 0, 16); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(JORGEGARCIA_WIFI_RELAYS) - - setSetting("board", 19); - setSetting("relayGPIO", 0, 0); - setSetting("relayGPIO", 1, 2); - setSetting("relayType", 0, RELAY_TYPE_INVERSE); - setSetting("relayType", 1, RELAY_TYPE_INVERSE); - - #elif defined(AITHINKER_AI_LIGHT) - - setSetting("board", 20); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_MY92XX); - setSetting("myModel", MY92XX_MODEL_MY9291); - setSetting("myChips", 1); - setSetting("myDIGPIO", 13); - setSetting("myDCKIGPIO", 15); - setSetting("relays", 1); - - #elif defined(LYASI_LIGHT) - - setSetting("board", 20); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_MY92XX); - setSetting("myModel", MY92XX_MODEL_MY9291); - setSetting("myChips", 1); - setSetting("myDIGPIO", 4); - setSetting("myDCKIGPIO", 5); - setSetting("relays", 1); - - #elif defined(MAGICHOME_LED_CONTROLLER) - - setSetting("board", 21); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 1); - setSetting("chGPIO", 0, 14); - setSetting("chGPIO", 1, 5); - setSetting("chGPIO", 2, 12); - setSetting("chGPIO", 3, 13); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("relays", 1); - - #elif defined(MAGICHOME_LED_CONTROLLER_IR) - - setSetting("board", 21); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 1); - setSetting("chGPIO", 0, 5); - setSetting("chGPIO", 1, 12); - setSetting("chGPIO", 2, 13); - setSetting("chGPIO", 3, 14); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("relays", 1); - - #elif defined(ITEAD_MOTOR) - - setSetting("board", 22); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(TINKERMAN_ESPURNA_H06) - - setSetting("board", 23); - setSetting("ledGPIO", 0, 5); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 4); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_INVERSE); - setSetting("selGPIO", 2); - setSetting("cf1GPIO", 13); - setSetting("cfGPIO", 14); - - #elif defined(HUACANXING_H801) - - setSetting("board", 24); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("ledGPIO", 0, 5); - setSetting("ledLogic", 0, 1); - setSetting("chGPIO", 0, 15); - setSetting("chGPIO", 1, 13); - setSetting("chGPIO", 2, 12); - setSetting("chGPIO", 3, 14); - setSetting("chGPIO", 4, 4); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("chLogic", 4, 0); - setSetting("relays", 1); - - #elif defined(ITEAD_BNSZ01) - - setSetting("board", 25); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("chGPIO", 0, 12); - setSetting("chLogic", 0, 0); - setSetting("relays", 1); - - #elif defined(ITEAD_SONOFF_RFBRIDGE) - - setSetting("board", 26); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("relayProvider", RELAY_PROVIDER_RFBRIDGE); - setSetting("relays", 6); - - #elif defined(ITEAD_SONOFF_4CH_PRO) - - setSetting("board", 27); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnGPIO", 1, 9); - setSetting("btnGPIO", 2, 10); - setSetting("btnGPIO", 3, 14); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("btnRelay", 2, 2); - setSetting("btnRelay", 3, 3); - setSetting("relayGPIO", 0, 12); - setSetting("relayGPIO", 1, 5); - setSetting("relayGPIO", 2, 4); - setSetting("relayGPIO", 3, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("relayType", 2, RELAY_TYPE_NORMAL); - setSetting("relayType", 3, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_B1) - - setSetting("board", 28); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_MY92XX); - setSetting("myModel", MY92XX_MODEL_MY9231); - setSetting("myChips", 2); - setSetting("myDIGPIO", 12); - setSetting("myDCKIGPIO", 14); - setSetting("relays", 1); - - #elif defined(ITEAD_SONOFF_LED) - - setSetting("board", 29); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("chGPIO", 0, 12); - setSetting("chLogic", 0, 0); - setSetting("chGPIO", 1, 14); - setSetting("chLogic", 1, 0); - setSetting("relays", 1); - - #elif defined(ITEAD_SONOFF_T1_1CH) - - setSetting("board", 30); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 9); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_T1_2CH) - - setSetting("board", 31); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnGPIO", 1, 10); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("relayGPIO", 0, 12); - setSetting("relayGPIO", 1, 4); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_T1_3CH) - - setSetting("board", 32); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnGPIO", 1, 9); - setSetting("btnGPIO", 2, 10); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("btnRelay", 2, 2); - setSetting("relayGPIO", 0, 12); - setSetting("relayGPIO", 1, 5); - setSetting("relayGPIO", 2, 4); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("relayType", 2, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_RF) - - setSetting("board", 33); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(WION_50055) - - setSetting("board", 34); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(EXS_WIFI_RELAY_V31) - - setSetting("board", 35); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 13); - setSetting("relayResetGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(HUACANXING_H802) - - setSetting("board", 36); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 12); - setSetting("chGPIO", 1, 14); - setSetting("chGPIO", 2, 13); - setSetting("chGPIO", 3, 15); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("relays", 1); - - #elif defined(GENERIC_V9261F) - - setSetting("board", 37); - - #elif defined(GENERIC_ECH1560) - - setSetting("board", 38); - - #elif defined(TINKERMAN_ESPURNA_H08) - - setSetting("board", 39); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 4); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("selGPIO", 5); - setSetting("cf1GPIO", 13); - setSetting("cfGPIO", 14); - - #elif defined(MANCAVEMADE_ESPLIVE) - - setSetting("board", 40); - setSetting("btnGPIO", 0, 4); - setSetting("btnGPIO", 1, 5); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("relayGPIO", 0, 12); - setSetting("relayGPIO", 1, 13); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - - #elif defined(INTERMITTECH_QUINLED) - - setSetting("board", 41); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("ledGPIO", 0, 1); - setSetting("ledLogic", 0, 1); - setSetting("chGPIO", 0, 0); - setSetting("chGPIO", 1, 2); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("relays", 1); - - #elif defined(MAGICHOME_LED_CONTROLLER_20) - - setSetting("board", 42); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 5); - setSetting("chGPIO", 1, 12); - setSetting("chGPIO", 2, 13); - setSetting("chGPIO", 3, 15); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("relays", 1); - - #elif defined(ARILUX_AL_LC06) - - setSetting("board", 43); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 12); - setSetting("chGPIO", 1, 14); - setSetting("chGPIO", 2, 13); - setSetting("chGPIO", 3, 15); - setSetting("chGPIO", 4, 5); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("chLogic", 4, 0); - setSetting("relays", 1); - - #elif defined(XENON_SM_PW702U) - - setSetting("board", 44); - setSetting("ledGPIO", 0, 4); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(AUTHOMETION_LYT8266) - - setSetting("board", 45); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 13); - setSetting("chGPIO", 1, 12); - setSetting("chGPIO", 2, 14); - setSetting("chGPIO", 3, 2); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("relays", 1); - setSetting("enGPIO", 15); - - #elif defined(ARILUX_E27) - - setSetting("board", 46); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_MY92XX); - setSetting("myModel", MY92XX_MODEL_MY9291); - setSetting("myChips", 1); - setSetting("myDIGPIO", 13); - setSetting("myDCKIGPIO", 15); - setSetting("relays", 1); - - #elif defined(YJZK_SWITCH_2CH) - - setSetting("board", 47); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 0); - setSetting("ledWifi", 0); - setSetting("btnGPIO", 0, 0); - setSetting("btnGPIO", 1, 9); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("relayGPIO", 0, 12); - setSetting("relayGPIO", 1, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_DUAL_R2) - - setSetting("board", 48); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnGPIO", 1, 9); - setSetting("btnGPIO", 2, 10); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("btnRelay", 2, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayGPIO", 1, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - - #elif defined(GENERIC_8CH) - - setSetting("board", 49); - setSetting("relayGPIO", 0, 0); - setSetting("relayGPIO", 1, 2); - setSetting("relayGPIO", 2, 4); - setSetting("relayGPIO", 3, 5); - setSetting("relayGPIO", 4, 12); - setSetting("relayGPIO", 5, 13); - setSetting("relayGPIO", 6, 14); - setSetting("relayGPIO", 7, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("relayType", 2, RELAY_TYPE_NORMAL); - setSetting("relayType", 3, RELAY_TYPE_NORMAL); - setSetting("relayType", 4, RELAY_TYPE_NORMAL); - setSetting("relayType", 5, RELAY_TYPE_NORMAL); - setSetting("relayType", 6, RELAY_TYPE_NORMAL); - setSetting("relayType", 7, RELAY_TYPE_NORMAL); - - #elif defined(ARILUX_AL_LC01) - - setSetting("board", 50); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 5); - setSetting("chGPIO", 1, 12); - setSetting("chGPIO", 2, 13); - setSetting("chGPIO", 3, 14); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("relays", 1); - - #elif defined(ARILUX_AL_LC11) - - setSetting("board", 51); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 5); - setSetting("chGPIO", 1, 4); - setSetting("chGPIO", 2, 14); - setSetting("chGPIO", 3, 13); - setSetting("chGPIO", 4, 12); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("chLogic", 4, 0); - setSetting("relays", 1); - - #elif defined(ARILUX_AL_LC02) - - setSetting("board", 52); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 12); - setSetting("chGPIO", 1, 5); - setSetting("chGPIO", 2, 13); - setSetting("chGPIO", 3, 15); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("relays", 1); - - #elif defined(KMC_70011) - - setSetting("board", 53); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 14); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("selGPIO", 12); - setSetting("cf1GPIO", 5); - setSetting("cfGPIO", 4); - - #elif defined(GIZWITS_WITTY_CLOUD) - - setSetting("board", 54); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 4); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 15); - setSetting("chGPIO", 1, 12); - setSetting("chGPIO", 2, 13); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("relays", 1); - - #elif defined(EUROMATE_WIFI_STECKER_SCHUKO) - - setSetting("board", 55); - setSetting("ledGPIO", 0, 4); - setSetting("ledLogic", 0, 0); - setSetting("ledGPIO", 1, 12); - setSetting("ledLogic", 1, 0); - setSetting("btnGPIO", 0, 14); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(TONBUX_POWERSTRIP02) - - setSetting("board", 56); - setSetting("relayGPIO", 0, 4); - setSetting("relayGPIO", 1, 13); - setSetting("relayGPIO", 2, 12); - setSetting("relayGPIO", 3, 14); - setSetting("relayGPIO", 4, 16); - setSetting("relayType", 0, RELAY_TYPE_INVERSE); - setSetting("relayType", 1, RELAY_TYPE_INVERSE); - setSetting("relayType", 2, RELAY_TYPE_INVERSE); - setSetting("relayType", 3, RELAY_TYPE_INVERSE); - setSetting("relayType", 4, RELAY_TYPE_NORMAL); // Not a relay. USB ports on/off - setSetting("ledGPIO", 0, 0); // 1 blue led - setSetting("ledLogic", 0, 1); - setSetting("ledGPIO", 1, 3); // 3 red leds - setSetting("ledLogic", 1, 1); - setSetting("btnGPIO", 0, 5); - setSetting("btnRelay", 0, 1); - - #elif defined(LINGAN_SWA1) - - setSetting("board", 57); - setSetting("ledGPIO", 0, 4); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(HEYGO_HY02) - - setSetting("board", 58); - setSetting("ledGPIO", 0, 0); - setSetting("ledLogic", 0, 1); - setSetting("ledGPIO", 1, 15); - setSetting("ledLogic", 1, 0); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("selGPIO", 3); - setSetting("cf1GPIO", 14); - setSetting("cfGPIO", 5); - - #elif defined(MAXCIO_WUS002S) - - setSetting("board", 59); - setSetting("ledGPIO", 0, 3); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 2); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 13); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("selGPIO", 12); - setSetting("cf1GPIO", 5); - setSetting("cfGPIO", 4); - - #elif defined(YIDIAN_XSSSA05) - - setSetting("board", 60); - setSetting("ledGPIO", 0, 0); - setSetting("ledLogic", 0, 0); - setSetting("ledGPIO", 1, 5); - setSetting("ledLogic", 1, 0); - setSetting("ledGPIO", 2, 2); - setSetting("ledLogic", 2, 0); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(TONBUX_XSSSA06) - - setSetting("board", 61); - setSetting("ledGPIO", 0, 4); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(GREEN_ESP8266RELAY) - - setSetting("board", 62); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 5); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 4); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(IKE_ESPIKE) - - setSetting("board", 63); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("btnGPIO", 1, 12); - setSetting("btnRelay", 1, 1); - setSetting("btnGPIO", 2, 13); - setSetting("btnRelay", 2, 2); - setSetting("relayGPIO", 0, 4); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayGPIO", 1, 5); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("relayGPIO", 2, 16); - setSetting("relayType", 2, RELAY_TYPE_NORMAL); - - #elif defined(ARNIEX_SWIFITCH) - - setSetting("board", 64); - setSetting("ledGPIO", 0, 12); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 4); - setSetting("btnRelay", 0, 1); - setSetting("relayGPIO", 0, 5); - setSetting("relayType", 0, RELAY_TYPE_INVERSE); - - #elif defined(GENERIC_ESP01S_RELAY_V40) - - setSetting("board", 65); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 0); - setSetting("relayGPIO", 0, 0); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(GENERIC_ESP01S_RGBLED_V10) - - setSetting("board", 66); - setSetting("ledGPIO", 0, 2); - - #elif defined(HELTEC_TOUCHRELAY) - - setSetting("board", 67); - setSetting("btnGPIO", 0, 14); - setSetting("btnRelay", 0, 1); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(GENERIC_ESP01S_DHT11_V10) - - setSetting("board", 68); - - #elif defined(GENERIC_ESP01S_DS18B20_V10) - - setSetting("board", 69); - - #elif defined(ZHILDE_EU44_W) - - setSetting("board", 70); - setSetting("btnGPIO", 0, 3); - setSetting("ledGPIO", 0, 1); - setSetting("ledLogic", 0, 1); - setSetting("relayGPIO", 0, 5); - setSetting("relayGPIO", 1, 4); - setSetting("relayGPIO", 2, 12); - setSetting("relayGPIO", 3, 13); - setSetting("relayGPIO", 4, 14); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("relayType", 2, RELAY_TYPE_NORMAL); - setSetting("relayType", 3, RELAY_TYPE_NORMAL); - setSetting("relayType", 4, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_POW_R2) - - setSetting("board", 71); - setSetting("ledGPIO", 0, 15); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("selGPIO", 5); - setSetting("cf1GPIO", 13); - setSetting("cfGPIO", 14); - - #elif defined(LUANI_HVIO) - - setSetting("board", 72); - setSetting("ledGPIO", 0, 15); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 12); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 4); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayGPIO", 1, 5); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - - #elif defined(ALLNET_4DUINO_IOT_WLAN_RELAIS) - - setSetting("board", 73); - setSetting("relayGPIO", 0, 14); - setSetting("relayResetGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_LATCHED); - - #elif defined(TONBUX_MOSQUITO_KILLER) - - setSetting("board", 74); - setSetting("ledGPIO", 0, 15); - setSetting("ledLogic", 0, 1); - setSetting("ledGPIO", 1, 14); - setSetting("ledLogic", 1, 1); - setSetting("ledGPIO", 2, 12); - setSetting("ledLogic", 2, 0); - setSetting("ledGPIO", 3, 16); - setSetting("ledLogic", 3, 0); - setSetting("btnGPIO", 0, 2); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(AVATTO_NAS_WR01W) - - setSetting("board", 75); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 14); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(NEO_COOLCAM_NAS_WR01W) - - setSetting("board", 75); - setSetting("ledGPIO", 0, 4); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(PILOTAK_ESP_DIN_V1) - - setSetting("board", 76); - setSetting("ledGPIO", 0, 16); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 4); - setSetting("relayGPIO", 1, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - - #elif defined(FORNORM_ZLD_34EU) - - setSetting("board", 77); - setSetting("btnGPIO", 0, 16); - setSetting("btnRelay", 0, 3); - setSetting("ledGPIO", 0, 0); - setSetting("ledGPIO", 1, 12); - setSetting("ledGPIO", 2, 3); - setSetting("ledGPIO", 3, 5); - setSetting("ledLogic", 0, 1); - setSetting("ledLogic", 1, 1); - setSetting("ledLogic", 2, 1); - setSetting("ledLogic", 3, 1); - setSetting("ledMode", 0, LED_MODE_FINDME); - setSetting("ledMode", 1, LED_MODE_FOLLOW); - setSetting("ledMode", 2, LED_MODE_FOLLOW); - setSetting("ledMode", 3, LED_MODE_FOLLOW); - setSetting("ledRelay", 1, 1); - setSetting("ledRelay", 2, 2); - setSetting("ledRelay", 3, 3); - setSetting("relayGPIO", 0, 14); - setSetting("relayGPIO", 1, 13); - setSetting("relayGPIO", 2, 4); - setSetting("relayGPIO", 3, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("relayType", 2, RELAY_TYPE_NORMAL); - setSetting("relayType", 3, RELAY_TYPE_NORMAL); - - #elif defined(BH_ONOFRE) - - setSetting("board", 78); - setSetting("btnGPIO", 0, 12); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 0, 1); - setSetting("relayGPIO", 0, 4); - setSetting("relayGPIO", 1, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - - #elif defined(BLITZWOLF_BWSHPX) - - setSetting("board", 79); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 1); - setSetting("ledGPIO", 1, 0); - setSetting("ledLogic", 1, 1); - setSetting("ledMode", 1, LED_MODE_FINDME); - setSetting("ledRelay", 1, 0); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("selGPIO", 12); - setSetting("cf1GPIO", 14); - setSetting("cfGPIO", 5); - setSetting("pwrRatioC", 25740); - setSetting("pwrRatioV", 313400); - setSetting("pwrRatioP", 3414290); - setSetting("hlwSelC", LOW); - setSetting("hlwIntM", FALLING); - - #elif defined(TINKERMAN_RFM69GW) - - setSetting("board", 80); - setSetting("btnGPIO", 0, 0); - - #elif defined(ITEAD_SONOFF_IFAN02) - - setSetting("board", 81); - - setSetting("btnGPIO", 0, 0); - setSetting("btnGPIO", 1, 9); - setSetting("btnGPIO", 2, 10); - setSetting("btnGPIO", 3, 14); - - setSetting("ledGPIO", 1, 13); - setSetting("ledLogic", 1, 1); - - setSetting("relayGPIO", 0, 12); - setSetting("relayGPIO", 1, 5); - setSetting("relayGPIO", 2, 4); - setSetting("relayGPIO", 3, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("relayType", 2, RELAY_TYPE_NORMAL); - setSetting("relayType", 3, RELAY_TYPE_NORMAL); - - #elif defined(GENERIC_AG_L4) - - setSetting("board", 82); - - setSetting("btnGPIO", 0, 4); - setSetting("btnGPIO", 1, 2); - setSetting("btnRelay", 0, 0); - - setSetting("ledGPIO", 0, 5); - setSetting("ledGPIO", 1, 16); - setSetting("ledLogic", 0, 0); - setSetting("ledLogic", 1, 1); - - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 14); - setSetting("chGPIO", 1, 13); - setSetting("chGPIO", 2, 12); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("relays", 1); - - #elif defined(ALLTERCO_SHELLY1) - - setSetting("board", 83); - setSetting("btnGPIO", 0, 5); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 4); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(LOHAS_9W) - - setSetting("board", 84); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_MY92XX); - setSetting("myModel", MY92XX_MODEL_MY9231); - setSetting("myChips", 2); - setSetting("myDIGPIO", 13); - setSetting("myDCKIGPIO", 15); - setSetting("relays", 1); - - #elif defined(YJZK_SWITCH_1CH) - - setSetting("board", 85); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 0); - setSetting("ledWifi", 0); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(YJZK_SWITCH_3CH) - - setSetting("board", 86); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 0); - setSetting("ledWifi", 0); - setSetting("btnGPIO", 0, 0); - setSetting("btnGPIO", 1, 9); - setSetting("btnGPIO", 2, 10); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("btnRelay", 2, 2); - setSetting("relayGPIO", 0, 12); - setSetting("relayGPIO", 1, 5); - setSetting("relayGPIO", 2, 4); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("relayType", 2, RELAY_TYPE_NORMAL); - - #elif defined(XIAOMI_SMART_DESK_LAMP) - - setSetting("board", 87); - - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("relays", 1); - setSetting("chGPIO", 0, 5); - setSetting("chGPIO", 1, 4); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - - setSetting("btnGPIO", 0, 2); - setSetting("btnGPIO", 1, 14); - setSetting("btnRelay", 0, 0); - setSetting("btnLngDelay", 500); - setSetting("btnDblClick", 0, BUTTON_MODE_NONE); - setSetting("btnLngClick", 0, BUTTON_MODE_NONE); - setSetting("btnLngLngClick", 0, BUTTON_MODE_NONE); - setSetting("btnDblClick", 1, BUTTON_MODE_AP); - setSetting("btnLngLngClick", 1, BUTTON_MODE_RESET); - - setSetting("enc1stGPIO", 0, 12); - setSetting("enc2ndGPIO", 0, 13); - setSetting("encBtnGPIO", 0, 2); - setSetting("encMode", ENCODER_MODE_RATIO); - - #elif defined(ALLTERCO_SHELLY2) - - setSetting("board", 88); - setSetting("btnGPIO", 0, 12); - setSetting("btnGPIO", 1, 14); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("relayGPIO", 0, 4); - setSetting("relayGPIO", 1, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - - #elif defined(PHYX_ESP12_RGB) - - setSetting("board", 89); - - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("relays", 1); - setSetting("chGPIO", 0, 4); - setSetting("chGPIO", 1, 14); - setSetting("chGPIO", 2, 12); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 3, 0); - - #elif defined(IWOOLE_LED_TABLE_LAMP) - - setSetting("board", 90); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 12); - setSetting("chGPIO", 1, 5); - setSetting("chGPIO", 2, 14); - setSetting("chGPIO", 3, 4); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("relays", 1); - - #elif defined(EXS_WIFI_RELAY_V50) - - setSetting("board", 91); - - setSetting("btnGPIO", 0, 5); - setSetting("btnGPIO", 1, 4); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - - setSetting("relayGPIO", 0, 14); - setSetting("relayGPIO", 1, 13); - setSetting("relayResetGPIO", 0, 16); - setSetting("relayResetGPIO", 1, 12); - setSetting("relayType", 0, RELAY_TYPE_LATCHED); - setSetting("relayType", 0, RELAY_TYPE_LATCHED); - - setSetting("ledGPIO", 1, 15); - setSetting("ledLogic", 1, 0); - - #elif defined(TONBUX_XSSSA01) - - setSetting("board", 92); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(EUROMATE_WIFI_STECKER_SCHUKO_V2) - - setSetting("board", 93); - setSetting("ledGPIO", 0, 13); // Red LED - setSetting("ledLogic", 0, 1); - setSetting("ledGPIO", 1, 12); // Green LED - setSetting("ledLogic", 1, 1); - setSetting("btnGPIO", 0, 5); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 4); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(OUKITEL_P1) - - setSetting("board", 94); - setSetting("ledGPIO", 0, 0); // Blue LED - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); // Right outlet - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayGPIO", 1, 15); // Left outlet - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - - #elif defined(DIGOO_NX_SP202) - - setSetting("board", 95); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("btnGPIO", 1, 16); - setSetting("btnRelay", 1, 1); - setSetting("relayGPIO", 0, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayGPIO", 1, 14); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("selGPIO", 12); - setSetting("cf1GPIO", 5); - setSetting("cfGPIO", 4); - setSetting("pwrRatioC", 23296); - setSetting("pwrRatioV", 310085); - setSetting("pwrRatioP", 3368471); - setSetting("hlwSelC", LOW); - setSetting("hlwIntM", FALLING); - - #elif defined(FOXEL_LIGHTFOX_DUAL) - - setSetting("board", 96); - setSetting("btnRelay", 0, 0); - setSetting("btnRelay", 1, 1); - setSetting("btnRelay", 2, 1); - setSetting("btnRelay", 3, 0); - setSetting("relayProvider", RELAY_PROVIDER_DUAL); - setSetting("relays", 2); - - #elif defined(GENERIC_GU10) - - setSetting("board", 97); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 14); - setSetting("chGPIO", 1, 12); - setSetting("chGPIO", 2, 13); - setSetting("chGPIO", 3, 4); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("relays", 1); - - #elif defined(ISELECTOR_SM_PW702) - - setSetting("board", 98); - setSetting("ledGPIO", 0, 4); - setSetting("ledLogic", 0, 0); - setSetting("ledGPIO", 1, 5); - setSetting("ledLogic", 0, 0); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(ITEAD_SONOFF_MINI) - - setSetting("board", 99); - setSetting("ledGPIO", 0, 13); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 0); - setSetting("btnRelay", 0, 0); - setSetting("btnGPIO", 1, 4); - setSetting("btnRelay", 1, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(TECKIN_SP21) - - setSetting("board", 100); - setSetting("ledGPIO", 0, 2); - setSetting("ledLogic", 0, 1); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 15); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(TFLAG_NX_SMX00) - - setSetting("board", 101); - setSetting("ledGPIO", 0, 0); - setSetting("ledLogic", 0, 1); - setSetting("ledMode", 0, LED_MODE_FOLLOW_INVERSE); - setSetting("ledRelay", 0, 0); - setSetting("ledGPIO", 1, 15); - setSetting("ledLogic", 1, 1); - setSetting("ledMode", 1, LED_MODE_WIFI); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("selGPIO", 16); - setSetting("cf1GPIO", 14); - setSetting("cfGPIO", 5); - setSetting("pwrRatioC", 632); - setSetting("pwrRatioV", 313400); - setSetting("pwrRatioP", 3711185); - setSetting("hlwSelC", LOW); - setSetting("hlwIntM", FALLING); - - #elif defined(MUVIT_IO_MIOBULB001) - - setSetting("board", 102); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 14); - setSetting("chGPIO", 1, 12); - setSetting("chGPIO", 2, 13); - setSetting("chGPIO", 3, 4); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("relays", 1); - - #elif defined(LINKSPRITE_LINKNODE_R4) - - setSetting("board", 104); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayGPIO", 1, 13); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("relayGPIO", 2, 14); - setSetting("relayType", 2, RELAY_TYPE_NORMAL); - setSetting("relayGPIO", 3, 16); - setSetting("relayType", 4, RELAY_TYPE_NORMAL); - - #elif defined(GENERIC_E14) - - setSetting("board", 104); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 4); - setSetting("chGPIO", 1, 12); - setSetting("chGPIO", 2, 14); - setSetting("chGPIO", 3, 5); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("relays", 1); - - #elif defined(DELTACO_SH_P01) - - setSetting("board", 105); - setSetting("ledGPIO", 0, 5); - setSetting("ledLogic", 0, 1); - setSetting("ledMode", 0, LED_MODE_FOLLOW); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 0); - setSetting("relayGPIO", 0, 12); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - - #elif defined(DELTACO_SH_P03USB) - - setSetting("board", 106); - setSetting("btnGPIO", 0, 13); - setSetting("btnRelay", 0, 2); - setSetting("ledGPIO", 0, 0); - setSetting("ledLogic", 0, 1); - setSetting("ledMode", 0, LED_MODE_FINDME); - setSetting("relayGPIO", 0, 15); - setSetting("relayGPIO", 1, 12); - setSetting("relayGPIO", 2, 14); - setSetting("relayGPIO", 3, 5); - setSetting("relayType", 0, RELAY_TYPE_NORMAL); - setSetting("relayType", 1, RELAY_TYPE_NORMAL); - setSetting("relayType", 2, RELAY_TYPE_NORMAL); - setSetting("relayType", 3, RELAY_TYPE_NORMAL); - - #elif defined(DELTACO_SH_LEXXW) - - setSetting("board", 107); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 12); - setSetting("chGPIO", 1, 14); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("relays", 1); - - #elif defined(DELTACO_SH_LEXXRGB) - - setSetting("board", 108); - setSetting("relayProvider", RELAY_PROVIDER_LIGHT); - setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); - setSetting("chGPIO", 0, 5); - setSetting("chGPIO", 1, 4); - setSetting("chGPIO", 2, 13); - setSetting("chGPIO", 3, 14); - setSetting("chGPIO", 4, 12); - setSetting("chLogic", 0, 0); - setSetting("chLogic", 1, 0); - setSetting("chLogic", 2, 0); - setSetting("chLogic", 3, 0); - setSetting("chLogic", 4, 0); - setSetting("relays", 1); - - #else - - // Allow users to define new settings without migration config - //#error "UNSUPPORTED HARDWARE!" - - #endif - + switch (version) { + // migrate old version with 1-based indices + case 2: + _cmpMoveIndexDown("ledGPIO"); + _cmpMoveIndexDown("ledLogic"); + _cmpMoveIndexDown("btnGPIO"); + _cmpMoveIndexDown("btnRelay", -1); + _cmpMoveIndexDown("relayGPIO"); + _cmpMoveIndexDown("relayType"); + // fall through + // get rid / move some existing keys from old migrate.ino + case 3: + moveSettings("chGPIO", "ltDimmerGPIO"); + moveSettings("myDIGPIO", "ltMy92DIGPIO"); + moveSettings("myDCKGPIO", "ltMy92DCKGPIO"); + moveSettings("myChips", "ltMy92Chips"); + moveSettings("myModel", "ltMy92Model"); + moveSettings("chLogic", "ltDimmerInv"); + moveSettings("ledLogic", "ledInv"); + delSetting("lightProvider"); + delSetting("relayProvider"); + delSetting("relays"); + delSetting("board"); + // fall through + default: + break; } saveSettings();