/* HARDWARE MODULE Copyright (C) 2016-2017 by Xose PĂ©rez */ /* The goal of this file is to store board configuration values in EEPROM so the migration to future version 2 will be straigh forward. */ void hwUpwardsCompatibility() { unsigned int board = getSetting("board", 0).toInt(); if (board > 0) return; #if defined(NODEMCU_LOLIN) setSetting("board", 2); setSetting("ledGPIO", 1, 2); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(WEMOS_D1_MINI_RELAYSHIELD) setSetting("board", 3); setSetting("ledGPIO", 1, 2); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 5); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(ITEAD_SONOFF_BASIC) setSetting("board", 4); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(ITEAD_SONOFF_TH) setSetting("board", 5); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(ITEAD_SONOFF_SV) setSetting("board", 6); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(ITEAD_SONOFF_TOUCH) setSetting("board", 7); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(ITEAD_SONOFF_POW) setSetting("board", 8); setSetting("ledGPIO", 1, 15); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); setSetting("selGPIO", 5); setSetting("cf1GPIO", 13); setSetting("cfGPIO", 14); #elif defined(ITEAD_SONOFF_DUAL) setSetting("board", 9); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnRelay", 3, 1); setSetting("relayProvider", RELAY_PROVIDER_DUAL); setSetting("relays", 2); #elif defined(ITEAD_1CH_INCHING) setSetting("board", 10); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(ITEAD_SONOFF_4CH) setSetting("board", 11); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnGPIO", 2, 9); setSetting("btnGPIO", 3, 10); setSetting("btnGPIO", 4, 14); setSetting("btnRelay", 1, 1); setSetting("btnRelay", 2, 2); setSetting("btnRelay", 3, 3); setSetting("btnRelay", 4, 4); setSetting("relayGPIO", 1, 12); setSetting("relayGPIO", 2, 5); setSetting("relayGPIO", 3, 4); setSetting("relayGPIO", 4, 15); 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_SLAMPHER) setSetting("board", 12); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(ITEAD_S20) setSetting("board", 13); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(ELECTRODRAGON_WIFI_IOT) setSetting("board", 14); setSetting("ledGPIO", 1, 16); setSetting("ledLogic", 1, 0); setSetting("btnGPIO", 1, 0); setSetting("btnGPIO", 2, 2); setSetting("btnRelay", 1, 1); setSetting("btnRelay", 2, 2); setSetting("relayGPIO", 1, 12); setSetting("relayGPIO", 2, 13); setSetting("relayType", 1, RELAY_TYPE_NORMAL); setSetting("relayType", 2, RELAY_TYPE_NORMAL); #elif defined(WORKCHOICE_ECOPLUG) setSetting("board", 15); setSetting("ledGPIO", 1, 2); setSetting("ledLogic", 1, 0); setSetting("btnGPIO", 1, 13); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 15); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(JANGOE_WIFI_RELAY_NC) setSetting("board", 16); setSetting("btnGPIO", 1, 12); setSetting("btnGPIO", 2, 13); setSetting("btnRelay", 1, 1); setSetting("btnRelay", 2, 2); setSetting("relayGPIO", 1, 2); setSetting("relayGPIO", 2, 14); setSetting("relayType", 1, RELAY_TYPE_INVERSE); setSetting("relayType", 2, RELAY_TYPE_INVERSE); #elif defined(JANGOE_WIFI_RELAY_NO) setSetting("board", 17); setSetting("btnGPIO", 1, 12); setSetting("btnGPIO", 2, 13); setSetting("btnRelay", 1, 1); setSetting("btnRelay", 2, 2); setSetting("relayGPIO", 1, 2); setSetting("relayGPIO", 2, 14); setSetting("relayType", 1, RELAY_TYPE_NORMAL); setSetting("relayType", 2, RELAY_TYPE_NORMAL); #elif defined(OPENENERGYMONITOR_MQTT_RELAY) setSetting("board", 18); setSetting("ledGPIO", 1, 16); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(JORGEGARCIA_WIFI_RELAYS) setSetting("board", 19); setSetting("relayGPIO", 1, 0); setSetting("relayGPIO", 2, 2); setSetting("relayType", 1, RELAY_TYPE_INVERSE); setSetting("relayType", 2, RELAY_TYPE_INVERSE); #elif defined(AITHINKER_AI_LIGHT) setSetting("board", 20); setSetting("relayProvider", RELAY_PROVIDER_LIGHT); setSetting("lightProvider", LIGHT_PROVIDER_MY9192); setSetting("myDIGPIO", 13); setSetting("myDCKIGPIO", 15); setSetting("relays", 1); #elif defined(MAGICHOME_LED_CONTROLLER) setSetting("board", 21); setSetting("relayProvider", RELAY_PROVIDER_LIGHT); setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); setSetting("ledGPIO", 1, 2); setSetting("ledLogic", 1, 1); setSetting("chGPIO", 1, 14); setSetting("chGPIO", 2, 5); setSetting("chGPIO", 3, 12); setSetting("chGPIO", 4, 13); setSetting("chLogic", 1, 0); setSetting("chLogic", 2, 0); setSetting("chLogic", 3, 0); setSetting("chLogic", 4, 0); setSetting("relays", 1); #elif defined(ITEAD_MOTOR) setSetting("board", 22); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(TINKERMAN_ESPURNA_H06) setSetting("board", 23); setSetting("ledGPIO", 1, 5); setSetting("ledLogic", 1, 0); setSetting("btnGPIO", 1, 4); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, 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", 1, 5); setSetting("ledLogic", 1, 1); setSetting("chGPIO", 1, 15); setSetting("chGPIO", 2, 13); setSetting("chGPIO", 3, 12); setSetting("chGPIO", 4, 14); setSetting("chGPIO", 5, 4); setSetting("chLogic", 1, 0); setSetting("chLogic", 2, 0); setSetting("chLogic", 3, 0); setSetting("chLogic", 4, 0); setSetting("chLogic", 5, 0); setSetting("relays", 1); #elif defined(ITEAD_BNSZ01) setSetting("board", 25); setSetting("relayProvider", RELAY_PROVIDER_LIGHT); setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); setSetting("ledGPIO", 3, 13); setSetting("ledLogic", 1, 1); setSetting("chGPIO", 1, 12); setSetting("chLogic", 1, 0); setSetting("relays", 1); #elif defined(ITEAD_SONOFF_RFBRIDGE) setSetting("board", 26); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("relayProvider", RELAY_PROVIDER_RFBRIDGE); setSetting("relays", 6); #elif defined(ITEAD_SONOFF_4CH_PRO) setSetting("board", 27); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnGPIO", 2, 9); setSetting("btnGPIO", 3, 10); setSetting("btnGPIO", 4, 14); setSetting("btnRelay", 1, 1); setSetting("btnRelay", 2, 2); setSetting("btnRelay", 3, 3); setSetting("btnRelay", 4, 4); setSetting("relayGPIO", 1, 12); setSetting("relayGPIO", 2, 5); setSetting("relayGPIO", 3, 4); setSetting("relayGPIO", 4, 15); 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_B1) setSetting("board", 28); setSetting("relayProvider", RELAY_PROVIDER_LIGHT); setSetting("lightProvider", LIGHT_PROVIDER_MY9192); 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", 1, 13); setSetting("ledLogic", 1, 1); setSetting("chGPIO", 1, 12); setSetting("chLogic", 1, 0); setSetting("chGPIO", 2, 14); setSetting("chLogic", 2, 0); setSetting("relays", 1); #elif defined(ITEAD_SONOFF_T1_1CH) setSetting("board", 30); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 9); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 5); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(ITEAD_SONOFF_T1_2CH) setSetting("board", 31); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnGPIO", 2, 10); setSetting("btnRelay", 1, 1); setSetting("btnRelay", 2, 2); setSetting("relayGPIO", 1, 12); setSetting("relayGPIO", 2, 4); setSetting("relayType", 1, RELAY_TYPE_NORMAL); setSetting("relayType", 2, RELAY_TYPE_NORMAL); #elif defined(ITEAD_SONOFF_T1_3CH) setSetting("board", 32); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnGPIO", 2, 9); setSetting("btnGPIO", 3, 10); setSetting("btnRelay", 1, 1); setSetting("btnRelay", 2, 2); setSetting("btnRelay", 3, 3); setSetting("relayGPIO", 1, 12); setSetting("relayGPIO", 2, 5); setSetting("relayGPIO", 3, 4); setSetting("relayType", 1, RELAY_TYPE_NORMAL); setSetting("relayType", 2, RELAY_TYPE_NORMAL); setSetting("relayType", 3, RELAY_TYPE_NORMAL); #elif defined(ITEAD_SONOFF_RF) setSetting("board", 33); setSetting("ledGPIO", 1, 13); setSetting("ledLogic", 1, 1); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(WION_50055) setSetting("board", 34); setSetting("ledGPIO", 1, 2); setSetting("ledLogic", 1, 0); setSetting("btnGPIO", 1, 13); setSetting("btnRelay", 1,1); setSetting("relayGPIO", 1, 15); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(EXS_WIFI_RELAY_V31) setSetting("board", 35); setSetting("btnGPIO", 1, 0); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 13); setSetting("relayResetGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); #elif defined(HUACANXING_H802) setSetting("board", 36); setSetting("relayProvider", RELAY_PROVIDER_LIGHT); setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); setSetting("chGPIO", 1, 12); setSetting("chGPIO", 2, 14); setSetting("chGPIO", 3, 13); setSetting("chGPIO", 4, 15); setSetting("chLogic", 1, 0); setSetting("chLogic", 2, 0); setSetting("chLogic", 3, 0); setSetting("chLogic", 4, 0); setSetting("relays", 1); #elif defined(GENERIC_V9261F) setSetting("board", 37); #elif defined(GENERIC_ECH1560) setSetting("board", 38); #elif defined(TINKERMAN_ESPURNA_H07) setSetting("board", 39); setSetting("ledGPIO", 1, 2); setSetting("ledLogic", 1, 0); setSetting("btnGPIO", 1, 4); setSetting("btnRelay", 1, 1); setSetting("relayGPIO", 1, 12); setSetting("relayType", 1, RELAY_TYPE_NORMAL); setSetting("selGPIO", 5); setSetting("cf1GPIO", 13); setSetting("cfGPIO", 14); #elif defined(MANCAVEMADE_ESPLIVE) setSetting("board", 40); setSetting("btnGPIO", 1, 4); setSetting("btnGPIO", 2, 5); setSetting("btnRelay", 1, 1); setSetting("btnRelay", 2, 2); setSetting("relayGPIO", 1, 12); setSetting("relayGPIO", 2, 13); setSetting("relayType", 1, RELAY_TYPE_NORMAL); setSetting("relayType", 2, RELAY_TYPE_NORMAL); #elif defined(INTERMITTECH_QUINLED) setSetting("board", 41); setSetting("relayProvider", RELAY_PROVIDER_LIGHT); setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); setSetting("ledGPIO", 1, 1); setSetting("ledLogic", 1, 1); setSetting("chGPIO", 1, 0); setSetting("chGPIO", 2, 2); setSetting("chLogic", 1, 0); setSetting("chLogic", 2, 0); setSetting("relays", 1); #elif defined(MAGICHOME_LED_CONTROLLER_2_0) setSetting("board", 42); setSetting("relayProvider", RELAY_PROVIDER_LIGHT); setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); setSetting("chGPIO", 1, 5); setSetting("chGPIO", 2, 12); setSetting("chGPIO", 3, 13); setSetting("chGPIO", 4, 15); setSetting("chLogic", 1, 0); setSetting("chLogic", 2, 0); setSetting("chLogic", 3, 0); setSetting("chLogic", 4, 0); setSetting("relays", 1); #else #error "UNSUPPORTED HARDWARE!" #endif saveSettings(); }