/*
|
|
|
|
BOARD MODULE
|
|
|
|
*/
|
|
|
|
#include "espurna.h"
|
|
#include "relay.h"
|
|
#include "sensor.h"
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
|
PROGMEM const char espurna_modules[] =
|
|
#if ALEXA_SUPPORT
|
|
"ALEXA "
|
|
#endif
|
|
#if API_SUPPORT
|
|
"API "
|
|
#endif
|
|
#if BROKER_SUPPORT
|
|
"BROKER "
|
|
#endif
|
|
#if BUTTON_SUPPORT
|
|
"BUTTON "
|
|
#endif
|
|
#if DEBUG_SERIAL_SUPPORT
|
|
"DEBUG_SERIAL "
|
|
#endif
|
|
#if DEBUG_TELNET_SUPPORT
|
|
"DEBUG_TELNET "
|
|
#endif
|
|
#if DEBUG_UDP_SUPPORT
|
|
"DEBUG_UDP "
|
|
#endif
|
|
#if DEBUG_WEB_SUPPORT
|
|
"DEBUG_WEB "
|
|
#endif
|
|
#if DOMOTICZ_SUPPORT
|
|
"DOMOTICZ "
|
|
#endif
|
|
#if ENCODER_SUPPORT
|
|
"ENCODER "
|
|
#endif
|
|
#if HOMEASSISTANT_SUPPORT
|
|
"HOMEASSISTANT "
|
|
#endif
|
|
#if I2C_SUPPORT
|
|
"I2C "
|
|
#endif
|
|
#if INFLUXDB_SUPPORT
|
|
"INFLUXDB "
|
|
#endif
|
|
#if IR_SUPPORT
|
|
"IR "
|
|
#endif
|
|
#if LED_SUPPORT
|
|
"LED "
|
|
#endif
|
|
#if LLMNR_SUPPORT
|
|
"LLMNR "
|
|
#endif
|
|
#if MDNS_CLIENT_SUPPORT
|
|
"MDNS_CLIENT "
|
|
#endif
|
|
#if MDNS_SERVER_SUPPORT
|
|
"MDNS_SERVER "
|
|
#endif
|
|
#if MQTT_SUPPORT
|
|
"MQTT "
|
|
#endif
|
|
#if NETBIOS_SUPPORT
|
|
"NETBIOS "
|
|
#endif
|
|
#if NOFUSS_SUPPORT
|
|
"NOFUSS "
|
|
#endif
|
|
#if NTP_SUPPORT
|
|
"NTP "
|
|
#endif
|
|
#if PROMETHEUS_SUPPORT
|
|
"METRICS "
|
|
#endif
|
|
#if RELAY_SUPPORT
|
|
"RELAY "
|
|
#endif
|
|
#if RFM69_SUPPORT
|
|
"RFM69 "
|
|
#endif
|
|
#if RFB_SUPPORT
|
|
"RFB "
|
|
#endif
|
|
#if RPN_RULES_SUPPORT
|
|
"RPN_RULES "
|
|
#endif
|
|
#if SCHEDULER_SUPPORT
|
|
"SCHEDULER "
|
|
#endif
|
|
#if SENSOR_SUPPORT
|
|
"SENSOR "
|
|
#endif
|
|
#if SPIFFS_SUPPORT
|
|
"SPIFFS "
|
|
#endif
|
|
#if SSDP_SUPPORT
|
|
"SSDP "
|
|
#endif
|
|
#if TELNET_SUPPORT
|
|
#if TELNET_SERVER == TELNET_SERVER_WIFISERVER
|
|
"TELNET_SYNC "
|
|
#else
|
|
"TELNET "
|
|
#endif // TELNET_SERVER == TELNET_SERVER_WIFISERVER
|
|
#endif
|
|
#if TERMINAL_SUPPORT
|
|
"TERMINAL "
|
|
#endif
|
|
#if THERMOSTAT_SUPPORT
|
|
"THERMOSTAT "
|
|
#endif
|
|
#if THERMOSTAT_DISPLAY_SUPPORT
|
|
"THERMOSTAT_DISPLAY "
|
|
#endif
|
|
#if THINGSPEAK_SUPPORT
|
|
"THINGSPEAK "
|
|
#endif
|
|
#if UART_MQTT_SUPPORT
|
|
"UART_MQTT "
|
|
#endif
|
|
#if WEB_SUPPORT
|
|
"WEB "
|
|
#endif
|
|
"";
|
|
|
|
PROGMEM const char espurna_ota_modules[] =
|
|
#if OTA_ARDUINOOTA_SUPPORT
|
|
"ARDUINO "
|
|
#endif
|
|
#if (OTA_CLIENT == OTA_CLIENT_ASYNCTCP)
|
|
"ASYNCTCP "
|
|
#endif
|
|
#if (OTA_CLIENT == OTA_CLIENT_HTTPUPDATE)
|
|
#if (SECURE_CLIENT == SECURE_CLIENT_NONE)
|
|
"*HTTPUPDATE "
|
|
#endif
|
|
#if (SECURE_CLIENT == SECURE_CLIENT_AXTLS)
|
|
"*HTTPUPDATE_AXTLS "
|
|
#endif
|
|
#if (SECURE_CLIENT == SECURE_CLIENT_BEARSSL)
|
|
"*HTTPUPDATE_BEARSSL "
|
|
#endif
|
|
#endif // OTA_CLIENT_HTTPUPDATE
|
|
#if OTA_MQTT_SUPPORT
|
|
"MQTT "
|
|
#endif
|
|
#if WEB_SUPPORT
|
|
"WEB "
|
|
#endif
|
|
"";
|
|
|
|
PROGMEM const char espurna_webui[] =
|
|
#if WEBUI_IMAGE == WEBUI_IMAGE_SMALL
|
|
"SMALL"
|
|
#endif
|
|
#if WEBUI_IMAGE == WEBUI_IMAGE_LIGHT
|
|
"LIGHT"
|
|
#endif
|
|
#if WEBUI_IMAGE == WEBUI_IMAGE_SENSOR
|
|
"SENSOR"
|
|
#endif
|
|
#if WEBUI_IMAGE == WEBUI_IMAGE_RFBRIDGE
|
|
"RFBRIDGE"
|
|
#endif
|
|
#if WEBUI_IMAGE == WEBUI_IMAGE_RFM69
|
|
"RFM69"
|
|
#endif
|
|
#if WEBUI_IMAGE == WEBUI_IMAGE_LIGHTFOX
|
|
"LIGHTFOX"
|
|
#endif
|
|
#if WEBUI_IMAGE == WEBUI_IMAGE_THERMOSTAT
|
|
"THERMOSTAT"
|
|
#endif
|
|
#if WEBUI_IMAGE == WEBUI_IMAGE_CURTAIN
|
|
"CURTAIN"
|
|
#endif
|
|
#if WEBUI_IMAGE == WEBUI_IMAGE_FULL
|
|
"FULL"
|
|
#endif
|
|
"";
|
|
|
|
#if SENSOR_SUPPORT
|
|
|
|
PROGMEM const char espurna_sensors[] =
|
|
#if AM2320_SUPPORT
|
|
"AM2320_I2C "
|
|
#endif
|
|
#if ANALOG_SUPPORT
|
|
"ANALOG "
|
|
#endif
|
|
#if BH1750_SUPPORT
|
|
"BH1750 "
|
|
#endif
|
|
#if BMP180_SUPPORT
|
|
"BMP180 "
|
|
#endif
|
|
#if BMX280_SUPPORT
|
|
"BMX280 "
|
|
#endif
|
|
#if BME680_SUPPORT
|
|
"BME680 "
|
|
#endif
|
|
#if CSE7766_SUPPORT
|
|
"CSE7766 "
|
|
#endif
|
|
#if DALLAS_SUPPORT
|
|
"DALLAS "
|
|
#endif
|
|
#if DHT_SUPPORT
|
|
"DHTXX "
|
|
#endif
|
|
#if DIGITAL_SUPPORT
|
|
"DIGITAL "
|
|
#endif
|
|
#if ECH1560_SUPPORT
|
|
"ECH1560 "
|
|
#endif
|
|
#if EMON_ADC121_SUPPORT
|
|
"EMON_ADC121 "
|
|
#endif
|
|
#if EMON_ADS1X15_SUPPORT
|
|
"EMON_ADX1X15 "
|
|
#endif
|
|
#if EMON_ANALOG_SUPPORT
|
|
"EMON_ANALOG "
|
|
#endif
|
|
#if EVENTS_SUPPORT
|
|
"EVENTS "
|
|
#endif
|
|
#if GEIGER_SUPPORT
|
|
"GEIGER "
|
|
#endif
|
|
#if GUVAS12SD_SUPPORT
|
|
"GUVAS12SD "
|
|
#endif
|
|
#if HLW8012_SUPPORT
|
|
"HLW8012 "
|
|
#endif
|
|
#if LDR_SUPPORT
|
|
"LDR "
|
|
#endif
|
|
#if MHZ19_SUPPORT
|
|
"MHZ19 "
|
|
#endif
|
|
#if MICS2710_SUPPORT
|
|
"MICS2710 "
|
|
#endif
|
|
#if MICS5525_SUPPORT
|
|
"MICS5525 "
|
|
#endif
|
|
#if NTC_SUPPORT
|
|
"NTC "
|
|
#endif
|
|
#if PMSX003_SUPPORT
|
|
"PMSX003 "
|
|
#endif
|
|
#if PULSEMETER_SUPPORT
|
|
"PULSEMETER "
|
|
#endif
|
|
#if PZEM004T_SUPPORT
|
|
"PZEM004T "
|
|
#endif
|
|
#if SDS011_SUPPORT
|
|
"SDS011 "
|
|
#endif
|
|
#if SENSEAIR_SUPPORT
|
|
"SENSEAIR "
|
|
#endif
|
|
#if SHT3X_I2C_SUPPORT
|
|
"SHT3X_I2C "
|
|
#endif
|
|
#if SI7021_SUPPORT
|
|
"SI7021 "
|
|
#endif
|
|
#if SONAR_SUPPORT
|
|
"SONAR "
|
|
#endif
|
|
#if T6613_SUPPORT
|
|
"T6613 "
|
|
#endif
|
|
#if TMP3X_SUPPORT
|
|
"TMP3X "
|
|
#endif
|
|
#if V9261F_SUPPORT
|
|
"V9261F "
|
|
#endif
|
|
#if VEML6075_SUPPORT
|
|
"VEML6075 "
|
|
#endif
|
|
#if VL53L1X_SUPPORT
|
|
"VL53L1X "
|
|
#endif
|
|
#if EZOPH_SUPPORT
|
|
"EZOPH "
|
|
#endif
|
|
#if ADE7953_SUPPORT
|
|
"ADE7953 "
|
|
#endif
|
|
#if SI1145_SUPPORT
|
|
"SI1145 "
|
|
#endif
|
|
"";
|
|
|
|
#endif // SENSOR_SUPPORT == 1
|
|
|
|
//--------------------------------------------------------------------------------
|
|
|
|
const String& getChipId() {
|
|
static String value;
|
|
if (!value.length()) {
|
|
char buffer[7];
|
|
value.reserve(sizeof(buffer));
|
|
snprintf_P(buffer, sizeof(buffer), PSTR("%06X"), ESP.getChipId());
|
|
value = buffer;
|
|
}
|
|
return value;
|
|
}
|
|
|
|
const String& getIdentifier() {
|
|
static String value;
|
|
if (!value.length()) {
|
|
value += APP_NAME;
|
|
value += '-';
|
|
value += getChipId();
|
|
}
|
|
return value;
|
|
}
|
|
|
|
String getEspurnaModules() {
|
|
return FPSTR(espurna_modules);
|
|
}
|
|
|
|
String getEspurnaOTAModules() {
|
|
return FPSTR(espurna_ota_modules);
|
|
}
|
|
|
|
#if SENSOR_SUPPORT
|
|
String getEspurnaSensors() {
|
|
return FPSTR(espurna_sensors);
|
|
}
|
|
#endif // SENSOR_SUPPORT == 1
|
|
|
|
String getEspurnaWebUI() {
|
|
return FPSTR(espurna_webui);
|
|
}
|
|
|
|
bool isEspurnaCore() {
|
|
#if defined(ESPURNA_CORE) || defined(ESPURNA_CORE_WEBUI)
|
|
return true;
|
|
#else
|
|
return false;
|
|
#endif
|
|
}
|
|
|
|
bool haveRelaysOrSensors() {
|
|
bool result = false;
|
|
result = (relayCount() > 0);
|
|
#if SENSOR_SUPPORT
|
|
result = result || (magnitudeCount() > 0);
|
|
#endif
|
|
return result;
|
|
}
|
|
|
|
int getBoardId() {
|
|
#if defined(ESPURNA_CORE) || defined(ESPURNA_CORE_WEBUI)
|
|
return 0;
|
|
#elif defined(NODEMCU_LOLIN)
|
|
return 2;
|
|
#elif defined(NODEMCU_BASIC)
|
|
return 3;
|
|
#elif defined(WEMOS_D1_MINI)
|
|
return 4;
|
|
#elif defined(WEMOS_D1_MINI_RELAYSHIELD)
|
|
return 5;
|
|
#elif defined(WEMOS_D1_TARPUNA_SHIELD)
|
|
return 6;
|
|
#elif defined(TINKERMAN_ESPURNA_H06)
|
|
return 7;
|
|
#elif defined(TINKERMAN_ESPURNA_H08)
|
|
return 8;
|
|
#elif defined(TINKERMAN_ESPURNA_SWITCH)
|
|
return 9;
|
|
#elif defined(TINKERMAN_RFM69GW)
|
|
return 10;
|
|
#elif defined(ITEAD_SONOFF_BASIC)
|
|
return 11;
|
|
#elif defined(ITEAD_SONOFF_RF)
|
|
return 12;
|
|
#elif defined(ITEAD_SONOFF_MINI)
|
|
return 13;
|
|
#elif defined(ITEAD_SONOFF_TH)
|
|
return 14;
|
|
#elif defined(ITEAD_SONOFF_SV)
|
|
return 15;
|
|
#elif defined(ITEAD_SLAMPHER)
|
|
return 16;
|
|
#elif defined(ITEAD_S20)
|
|
return 17;
|
|
#elif defined(ITEAD_SONOFF_TOUCH)
|
|
return 18;
|
|
#elif defined(ITEAD_SONOFF_POW)
|
|
return 19;
|
|
#elif defined(ITEAD_SONOFF_POW_R2)
|
|
return 20;
|
|
#elif defined(ITEAD_SONOFF_DUAL)
|
|
return 21;
|
|
#elif defined(ITEAD_SONOFF_DUAL_R2)
|
|
return 22;
|
|
#elif defined(ITEAD_SONOFF_4CH)
|
|
return 23;
|
|
#elif defined(ITEAD_SONOFF_4CH_PRO)
|
|
return 24;
|
|
#elif defined(ITEAD_1CH_INCHING)
|
|
return 25;
|
|
#elif defined(ITEAD_MOTOR)
|
|
return 26;
|
|
#elif defined(ITEAD_BNSZ01)
|
|
return 27;
|
|
#elif defined(ITEAD_SONOFF_RFBRIDGE)
|
|
return 28;
|
|
#elif defined(ITEAD_SONOFF_B1)
|
|
return 29;
|
|
#elif defined(ITEAD_SONOFF_LED)
|
|
return 30;
|
|
#elif defined(ITEAD_SONOFF_T1_1CH)
|
|
return 31;
|
|
#elif defined(ITEAD_SONOFF_T1_2CH)
|
|
return 32;
|
|
#elif defined(ITEAD_SONOFF_T1_3CH)
|
|
return 33;
|
|
#elif defined(ITEAD_SONOFF_S31)
|
|
return 34;
|
|
#elif defined(ITEAD_SONOFF_S31_LITE)
|
|
return 35;
|
|
#elif defined(ITEAD_SONOFF_IFAN02)
|
|
return 36;
|
|
#elif defined(ORVIBO_B25)
|
|
return 37;
|
|
#elif defined(YJZK_SWITCH_1CH)
|
|
return 38;
|
|
#elif defined(YJZK_SWITCH_2CH)
|
|
return 39;
|
|
#elif defined(YJZK_SWITCH_3CH)
|
|
return 40;
|
|
#elif defined(ELECTRODRAGON_WIFI_IOT)
|
|
return 41;
|
|
#elif defined(WORKCHOICE_ECOPLUG)
|
|
return 42;
|
|
#elif defined(AITHINKER_AI_LIGHT)
|
|
return 43;
|
|
#elif defined(LYASI_LIGHT)
|
|
return 44;
|
|
#elif defined(MAGICHOME_LED_CONTROLLER)
|
|
return 45;
|
|
#elif defined(MAGICHOME_LED_CONTROLLER_20)
|
|
return 46;
|
|
#elif defined(MAGICHOME_ZJ_WFMN_A_11)
|
|
return 47;
|
|
#elif defined(MAGICHOME_ZJ_WFMN_B_11)
|
|
return 48;
|
|
#elif defined(MAGICHOME_ZJ_WFMN_C_11)
|
|
return 49;
|
|
#elif defined(MAGICHOME_ZJ_ESPM_5CH_B_13)
|
|
return 50;
|
|
#elif defined(MAGICHOME_ZJ_LB_RGBWW_L)
|
|
return 51;
|
|
#elif defined(HUACANXING_H801)
|
|
return 52;
|
|
#elif defined(HUACANXING_H802)
|
|
return 53;
|
|
#elif defined(JANGOE_WIFI_RELAY_NC)
|
|
return 54;
|
|
#elif defined(JANGOE_WIFI_RELAY_NO)
|
|
return 55;
|
|
#elif defined(JORGEGARCIA_WIFI_RELAYS)
|
|
return 56;
|
|
#elif defined(OPENENERGYMONITOR_MQTT_RELAY)
|
|
return 57;
|
|
#elif defined(WION_50055)
|
|
return 58;
|
|
#elif defined(EXS_WIFI_RELAY_V31)
|
|
return 59;
|
|
#elif defined(EXS_WIFI_RELAY_V50)
|
|
return 60;
|
|
#elif defined(GENERIC_V9261F)
|
|
return 61;
|
|
#elif defined(GENERIC_ECH1560)
|
|
return 62;
|
|
#elif defined(MANCAVEMADE_ESPLIVE)
|
|
return 63;
|
|
#elif defined(INTERMITTECH_QUINLED)
|
|
return 64;
|
|
#elif defined(ARILUX_AL_LC01)
|
|
return 65;
|
|
#elif defined(ARILUX_AL_LC02)
|
|
return 66;
|
|
#elif defined(ARILUX_AL_LC02_V14)
|
|
return 67;
|
|
#elif defined(ARILUX_AL_LC06)
|
|
return 68;
|
|
#elif defined(ARILUX_AL_LC11)
|
|
return 69;
|
|
#elif defined(ARILUX_E27)
|
|
return 70;
|
|
#elif defined(XENON_SM_PW702U)
|
|
return 71;
|
|
#elif defined(ISELECTOR_SM_PW702)
|
|
return 72;
|
|
#elif defined(AUTHOMETION_LYT8266)
|
|
return 73;
|
|
#elif defined(GIZWITS_WITTY_CLOUD)
|
|
return 74;
|
|
#elif defined(KMC_70011)
|
|
return 75;
|
|
#elif defined(EUROMATE_WIFI_STECKER_SCHUKO)
|
|
return 76;
|
|
#elif defined(EUROMATE_WIFI_STECKER_SCHUKO_V2)
|
|
return 77;
|
|
#elif defined(GENERIC_8CH)
|
|
return 78;
|
|
#elif defined(STM_RELAY)
|
|
return 79;
|
|
#elif defined(TONBUX_POWERSTRIP02)
|
|
return 80;
|
|
#elif defined(LINGAN_SWA1)
|
|
return 81;
|
|
#elif defined(HEYGO_HY02)
|
|
return 82;
|
|
#elif defined(MAXCIO_WUS002S)
|
|
return 83;
|
|
#elif defined(MAXCIO_WDE004)
|
|
return 84;
|
|
#elif defined(OUKITEL_P1)
|
|
return 85;
|
|
#elif defined(YIDIAN_XSSSA05)
|
|
return 86;
|
|
#elif defined(TONBUX_XSSSA01)
|
|
return 87;
|
|
#elif defined(TONBUX_XSSSA06)
|
|
return 88;
|
|
#elif defined(GREEN_ESP8266RELAY)
|
|
return 89;
|
|
#elif defined(IKE_ESPIKE)
|
|
return 90;
|
|
#elif defined(ARNIEX_SWIFITCH)
|
|
return 91;
|
|
#elif defined(GENERIC_ESP01S_RELAY_V40)
|
|
return 92;
|
|
#elif defined(GENERIC_ESP01S_RGBLED_V10)
|
|
return 93;
|
|
#elif defined(GENERIC_ESP01S_DHT11_V10)
|
|
return 94;
|
|
#elif defined(GENERIC_ESP01S_DS18B20_V10)
|
|
return 95;
|
|
#elif defined(PILOTAK_ESP_DIN_V1)
|
|
return 96;
|
|
#elif defined(HELTEC_TOUCHRELAY)
|
|
return 97;
|
|
#elif defined(ZHILDE_44EU_W)
|
|
return 98;
|
|
#elif defined(ALLNET_4DUINO_IOT_WLAN_RELAIS)
|
|
return 99;
|
|
#elif defined(LUANI_HVIO)
|
|
return 100;
|
|
#elif defined(TONBUX_MOSQUITO_KILLER)
|
|
return 101;
|
|
#elif defined(NEO_COOLCAM_NAS_WR01W)
|
|
return 102;
|
|
#elif defined(DELTACO_SH_P01)
|
|
return 103;
|
|
#elif defined(DELTACO_SH_P03USB)
|
|
return 104;
|
|
#elif defined(FORNORM_ZLD_34EU)
|
|
return 105;
|
|
#elif defined(BH_ONOFRE)
|
|
return 106;
|
|
#elif defined(BLITZWOLF_BWSHPX)
|
|
return 107;
|
|
#elif defined(BLITZWOLF_BWSHPX_V23)
|
|
return 108;
|
|
#elif defined(BLITZWOLF_BWSHP5)
|
|
return 109;
|
|
#elif defined(TECKIN_SP21)
|
|
return 110;
|
|
#elif defined(TECKIN_SP22_V14)
|
|
return 111;
|
|
#elif defined(GOSUND_WS1)
|
|
return 112;
|
|
#elif defined(HOMECUBE_16A)
|
|
return 113;
|
|
#elif defined(VANZAVANZU_SMART_WIFI_PLUG_MINI)
|
|
return 114;
|
|
#elif defined(GENERIC_AG_L4)
|
|
return 115;
|
|
#elif defined(ALLTERCO_SHELLY1)
|
|
return 116;
|
|
#elif defined(ALLTERCO_SHELLY2)
|
|
return 117;
|
|
#elif defined(ALLTERCO_SHELLY1PM)
|
|
return 118;
|
|
#elif defined(ALLTERCO_SHELLY25)
|
|
return 119;
|
|
#elif defined(LOHAS_E27_9W)
|
|
return 120;
|
|
#elif defined(LOHAS_E26_A19)
|
|
return 121;
|
|
#elif defined(TECKIN_SB53)
|
|
return 122;
|
|
#elif defined(XIAOMI_SMART_DESK_LAMP)
|
|
return 123;
|
|
#elif defined(PHYX_ESP12_RGB)
|
|
return 124;
|
|
#elif defined(IWOOLE_LED_TABLE_LAMP)
|
|
return 125;
|
|
#elif defined(GENERIC_GU10)
|
|
return 126;
|
|
#elif defined(GENERIC_E14)
|
|
return 127;
|
|
#elif defined(DELTACO_SH_LEXXW)
|
|
return 128;
|
|
#elif defined(DELTACO_SH_LEXXRGB)
|
|
return 129;
|
|
#elif defined(NEXETE_A19)
|
|
return 130;
|
|
#elif defined(LOMBEX_LUX_NOVA2_TUNABLE_WHITE)
|
|
return 131;
|
|
#elif defined(LOMBEX_LUX_NOVA2_WHITE_COLOR)
|
|
return 132;
|
|
#elif defined(BESTEK_MRJ1011)
|
|
return 133;
|
|
#elif defined(GBLIFE_RGBW_SOCKET)
|
|
return 134;
|
|
#elif defined(SMARTLIFE_MINI_SMART_SOCKET)
|
|
return 135;
|
|
#elif defined(HAMA_WIFI_STECKDOSE_00176533)
|
|
return 136;
|
|
#elif defined(DIGOO_NX_SP202)
|
|
return 137;
|
|
#elif defined(FOXEL_LIGHTFOX_DUAL)
|
|
return 138;
|
|
#elif defined(TECKIN_SP20)
|
|
return 139;
|
|
#elif defined(LITESUN_LA_WF3)
|
|
return 140;
|
|
#elif defined(PSH_WIFI_PLUG)
|
|
return 141;
|
|
#elif defined(PSH_RGBW_CONTROLLER)
|
|
return 142;
|
|
#elif defined(PSH_WIFI_SENSOR)
|
|
return 143;
|
|
#elif defined(JINVOO_VALVE_SM_AW713)
|
|
return 144;
|
|
#elif defined(TUYA_GENERIC_DIMMER)
|
|
return 145;
|
|
#elif defined(ETEKCITY_ESW01_USA)
|
|
return 146;
|
|
#elif defined(FS_UAP1)
|
|
return 147;
|
|
#elif defined(TFLAG_NX_SMX00)
|
|
return 148;
|
|
#elif defined(MUVIT_IO_MIOBULB001)
|
|
return 149;
|
|
#elif defined(HYKKER_SMART_HOME_POWER_PLUG)
|
|
return 150;
|
|
#elif defined(KOGAN_SMARTER_HOME_PLUG_W_POW)
|
|
return 151;
|
|
#elif defined(LSC_SMART_LED_LIGHT_STRIP)
|
|
return 152;
|
|
#elif defined(EHOMEDIY_WT02)
|
|
return 153;
|
|
#elif defined(EHOMEDIY_WT03)
|
|
return 154;
|
|
#elif defined(LINKSPRITE_LINKNODE_R4)
|
|
return 155;
|
|
#elif defined(GENERIC_ESP01_512KB)
|
|
return 156;
|
|
#elif defined(GOSUND_WP3)
|
|
return 157;
|
|
#elif defined(GENERIC_AG_L4_V3)
|
|
return 158;
|
|
#elif defined(PRODINO_WIFI)
|
|
return 159;
|
|
#else
|
|
return -1; // CUSTOM
|
|
#endif
|
|
}
|
|
|