diff --git a/tasmota/support_features.ino b/tasmota/support_features.ino index 4dc1ee416..3d58d00d0 100644 --- a/tasmota/support_features.ino +++ b/tasmota/support_features.ino @@ -25,7 +25,7 @@ void GetFeatures(void) { feature_drv1 = 0x00000000; -#ifdef USE_ENERGY_MARGIN_DETECTION +#if defined(USE_ENERGY_SENSOR) && defined(USE_ENERGY_MARGIN_DETECTION) feature_drv1 |= 0x00000001; // xdrv_03_energy.ino #endif #ifdef USE_LIGHT @@ -49,10 +49,10 @@ void GetFeatures(void) #ifdef USE_WEBSERVER feature_drv1 |= 0x00000080; // xdrv_01_webserver.ino #endif -#ifdef WEBSERVER_ADVERTISE +#if defined(USE_WEBSERVER) && defined(WEBSERVER_ADVERTISE) feature_drv1 |= 0x00000100; // xdrv_01_webserver.ino #endif -#ifdef USE_EMULATION_HUE +#if defined(USE_WEBSERVER) && defined(USE_EMULATION_HUE) feature_drv1 |= 0x00000200; // xdrv_20_hue.ino #endif //#if (MQTT_LIBRARY_TYPE == MQTT_PUBSUBCLIENT) @@ -67,13 +67,13 @@ void GetFeatures(void) #ifdef MQTT_HOST_DISCOVERY feature_drv1 |= 0x00002000; // xdrv_02_mqtt.ino #endif -#ifdef USE_ARILUX_RF +#if defined(USE_LIGHT) && defined(USE_ARILUX_RF) feature_drv1 |= 0x00004000; // xdrv_04_light.ino #endif #if defined(USE_LIGHT) && defined(USE_WS2812) feature_drv1 |= 0x00008000; // xdrv_04_light.ino #endif -#ifdef USE_WS2812_DMA +#if defined(USE_LIGHT) && defined(USE_WS2812) && defined(USE_WS2812_DMA) feature_drv1 |= 0x00010000; // xdrv_04_light.ino #endif #if defined(USE_IR_REMOTE) || defined(USE_IR_REMOTE_FULL) @@ -82,7 +82,7 @@ void GetFeatures(void) #ifdef USE_IR_HVAC feature_drv1 |= 0x00040000; // xdrv_05_irremote.ino #endif -#ifdef USE_IR_RECEIVE +#if defined(USE_IR_REMOTE) && defined(USE_IR_RECEIVE) feature_drv1 |= 0x00080000; // xdrv_05_irremote.ino #endif #ifdef USE_DOMOTICZ @@ -100,10 +100,10 @@ void GetFeatures(void) #ifdef USE_TIMERS feature_drv1 |= 0x01000000; // xdrv_09_timers.ino #endif -#ifdef USE_SUNRISE +#if defined(USE_TIMERS) && defined(USE_SUNRISE) feature_drv1 |= 0x02000000; // xdrv_09_timers.ino #endif -#ifdef USE_TIMERS_WEB +#if defined(USE_TIMERS) && defined(USE_TIMERS_WEB) feature_drv1 |= 0x04000000; // xdrv_09_timers.ino #endif #ifdef USE_RULES @@ -118,7 +118,7 @@ void GetFeatures(void) #ifdef USE_SMARTCONFIG feature_drv1 |= 0x40000000; // support.ino - removed with version 6.6.0.21 #endif -#ifdef USE_ENERGY_POWER_LIMIT +#if defined(USE_ENERGY_SENSOR) && defined(USE_ENERGY_POWER_LIMIT) feature_drv1 |= 0x80000000; // xdrv_03_energy.ino #endif @@ -141,28 +141,28 @@ void GetFeatures(void) #ifdef FIRMWARE_KNX_NO_EMULATION feature_drv2 |= 0x00000010; // user_config(_override).h #endif -#ifdef USE_DISPLAY_MODES1TO5 +#if defined(USE_DISPLAY) && defined(USE_DISPLAY_MODES1TO5) feature_drv2 |= 0x00000020; // xdrv_13_display.ino #endif -#ifdef USE_DISPLAY_GRAPH +#if defined(USE_DISPLAY) && defined(USE_DISPLAY_GRAPH) feature_drv2 |= 0x00000040; // xdrv_13_display.ino #endif -#ifdef USE_DISPLAY_LCD +#if defined(USE_DISPLAY) && defined(USE_DISPLAY_LCD) feature_drv2 |= 0x00000080; // xdsp_01_lcd.ino #endif -#ifdef USE_DISPLAY_SSD1306 +#if defined(USE_DISPLAY) && defined(USE_DISPLAY_SSD1306) feature_drv2 |= 0x00000100; // xdsp_02_ssd1306.ino #endif -#ifdef USE_DISPLAY_MATRIX +#if defined(USE_DISPLAY) && defined(USE_DISPLAY_MATRIX) feature_drv2 |= 0x00000200; // xdsp_03_matrix.ino #endif -#ifdef USE_DISPLAY_ILI9341 +#if defined(USE_DISPLAY) && defined(USE_DISPLAY_ILI9341) feature_drv2 |= 0x00000400; // xdsp_04_ili9341.ino #endif -#ifdef USE_DISPLAY_EPAPER_29 +#if defined(USE_DISPLAY) && defined(USE_DISPLAY_EPAPER_29) feature_drv2 |= 0x00000800; // xdsp_05_epaper.ino #endif -#ifdef USE_DISPLAY_SH1106 +#if defined(USE_DISPLAY) && defined(USE_DISPLAY_SH1106) feature_drv2 |= 0x00001000; // xdsp_06_sh1106.ino #endif #ifdef USE_MP3_PLAYER @@ -236,7 +236,7 @@ void GetFeatures(void) #ifdef USE_ENERGY_SENSOR feature_sns1 |= 0x00000004; // xdrv_03_energy.ino #endif -#ifdef USE_PZEM004T +#if defined(USE_ENERGY_SENSOR) && defined(USE_PZEM004T) feature_sns1 |= 0x00000008; // xnrg_03_pzem004t.ino #endif #ifdef USE_DS18B20 @@ -251,40 +251,40 @@ void GetFeatures(void) #ifdef USE_DHT feature_sns1 |= 0x00000080; // xsns_06_dht.ino #endif -#ifdef USE_SHT +#if defined(USE_I2C) && defined(USE_SHT) feature_sns1 |= 0x00000100; // xsns_07_sht1x.ino #endif -#ifdef USE_HTU +#if defined(USE_I2C) && defined(USE_HTU) feature_sns1 |= 0x00000200; // xsns_08_htu21.ino #endif -#ifdef USE_BMP +#if defined(USE_I2C) && defined(USE_BMP) feature_sns1 |= 0x00000400; // xsns_09_bmp.ino #endif -#ifdef USE_BME680 +#if defined(USE_I2C) && defined(USE_BMP) && defined(USE_BME680) feature_sns1 |= 0x00000800; // xsns_09_bmp.ino - BME680 #endif -#ifdef USE_BH1750 +#if defined(USE_I2C) && defined(USE_BH1750) feature_sns1 |= 0x00001000; // xsns_10_bh1750.ino #endif -#ifdef USE_VEML6070 +#if defined(USE_I2C) && defined(USE_VEML6070) feature_sns1 |= 0x00002000; // xsns_11_veml6070.ino #endif -#ifdef USE_ADS1115_I2CDEV +#if defined(USE_I2C) && defined(USE_ADS1115_I2CDEV) feature_sns1 |= 0x00004000; // xsns_12_ads1115_i2cdev.ino #endif -#ifdef USE_ADS1115 +#if defined(USE_I2C) && defined(USE_ADS1115) feature_sns1 |= 0x00008000; // xsns_12_ads1115.ino #endif -#ifdef USE_INA219 +#if defined(USE_I2C) && defined(USE_INA219) feature_sns1 |= 0x00010000; // xsns_13_ina219.ino #endif -#ifdef USE_SHT3X +#if defined(USE_I2C) && defined(USE_SHT3X) feature_sns1 |= 0x00020000; // xsns_14_sht3x.ino #endif #ifdef USE_MHZ19 feature_sns1 |= 0x00040000; // xsns_15_mhz19.ino #endif -#ifdef USE_TSL2561 +#if defined(USE_I2C) && defined(USE_TSL2561) feature_sns1 |= 0x00080000; // xsns_16_tsl2561.ino #endif #ifdef USE_SENSEAIR @@ -293,31 +293,31 @@ void GetFeatures(void) #ifdef USE_PMS5003 feature_sns1 |= 0x00200000; // xsns_18_pms5003.ino #endif -#ifdef USE_MGS +#if defined(USE_I2C) && defined(USE_MGS) feature_sns1 |= 0x00400000; // xsns_19_mgs.ino #endif #ifdef USE_NOVA_SDS feature_sns1 |= 0x00800000; // xsns_20_novasds.ino #endif -#ifdef USE_SGP30 +#if defined(USE_I2C) && defined(USE_SGP30) feature_sns1 |= 0x01000000; // xsns_21_sgp30.ino #endif #ifdef USE_SR04 feature_sns1 |= 0x02000000; // xsns_22_sr04.ino #endif -#ifdef USE_SDM120 +#if defined(USE_ENERGY_SENSOR) && defined(USE_SDM120) feature_sns1 |= 0x04000000; // xnrg_08_sdm120.ino #endif -#ifdef USE_SI1145 +#if defined(USE_I2C) && defined(USE_SI1145) feature_sns1 |= 0x08000000; // xsns_24_si1145.ino #endif -#ifdef USE_SDM630 +#if defined(USE_ENERGY_SENSOR) && defined(USE_SDM630) feature_sns1 |= 0x10000000; // xnrg_10_sdm630.ino #endif -#ifdef USE_LM75AD +#if defined(USE_I2C) && defined(USE_LM75AD) feature_sns1 |= 0x20000000; // xsns_26_lm75ad.ino #endif -#ifdef USE_APDS9960 +#if defined(USE_I2C) && defined(USE_APDS9960) feature_sns1 |= 0x40000000; // xsns_27_apds9960.ino #endif #ifdef USE_TM1638 @@ -328,58 +328,58 @@ void GetFeatures(void) feature_sns2 = 0x00000000; -#ifdef USE_MCP230xx +#if defined(USE_I2C) && defined(USE_MCP230xx) feature_sns2 |= 0x00000001; // xsns_29_mcp230xx.ino #endif -#ifdef USE_MPR121 +#if defined(USE_I2C) && defined(USE_MPR121) feature_sns2 |= 0x00000002; // xsns_30_mpr121.ino #endif -#ifdef USE_CCS811 +#if defined(USE_I2C) && defined(USE_CCS811) feature_sns2 |= 0x00000004; // xsns_31_ccs811.ino #endif -#ifdef USE_MPU6050 +#if defined(USE_I2C) && defined(USE_MPU6050) feature_sns2 |= 0x00000008; // xsns_32_mpu6050.ino #endif -#ifdef USE_MCP230xx_OUTPUT +#if defined(USE_I2C) && defined(USE_MCP230xx) && defined(USE_MCP230xx_OUTPUT) feature_sns2 |= 0x00000010; // xsns_29_mcp230xx.ino #endif -#ifdef USE_MCP230xx_DISPLAYOUTPUT +#if defined(USE_I2C) && defined(USE_MCP230xx) && defined(USE_MCP230xx_DISPLAYOUTPUT) feature_sns2 |= 0x00000020; // xsns_29_mcp230xx.ino #endif -#ifdef USE_HLW8012 +#if defined(USE_ENERGY_SENSOR) && defined(USE_HLW8012) feature_sns2 |= 0x00000040; // xnrg_01_hlw8012.ino #endif -#ifdef USE_CSE7766 +#if defined(USE_ENERGY_SENSOR) && defined(USE_CSE7766) feature_sns2 |= 0x00000080; // xnrg_02_cse7766.ino #endif -#ifdef USE_MCP39F501 +#if defined(USE_ENERGY_SENSOR) && defined(USE_MCP39F501) feature_sns2 |= 0x00000100; // xnrg_04_mcp39f501.ino #endif -#ifdef USE_PZEM_AC +#if defined(USE_ENERGY_SENSOR) && defined(USE_PZEM_AC) feature_sns2 |= 0x00000200; // xnrg_05_pzem_ac.ino #endif -#ifdef USE_DS3231 +#if defined(USE_I2C) && defined(USE_DS3231) feature_sns2 |= 0x00000400; // xsns_33_ds3231.ino #endif #ifdef USE_HX711 feature_sns2 |= 0x00000800; // xsns_34_hx711.ino #endif -#ifdef USE_PZEM_DC +#if defined(USE_ENERGY_SENSOR) && defined(USE_PZEM_DC) feature_sns2 |= 0x00001000; // xnrg_06_pzem_dc.ino #endif #if defined(USE_TX20_WIND_SENSOR) || defined(USE_TX23_WIND_SENSOR) feature_sns2 |= 0x00002000; // xsns_35_tx20.ino #endif -#ifdef USE_MGC3130 +#if defined(USE_I2C) && defined(USE_MGC3130) feature_sns2 |= 0x00004000; // xsns_36_mgc3130.ino #endif #ifdef USE_RF_SENSOR feature_sns2 |= 0x00008000; // xsns_37_rfsensor.ino #endif -#ifdef USE_THEO_V2 +#if defined(USE_RF_SENSOR) && defined(USE_THEO_V2) feature_sns2 |= 0x00010000; // xsns_37_rfsensor.ino #endif -#ifdef USE_ALECTO_V2 +#if defined(USE_RF_SENSOR) && defined(USE_ALECTO_V2) feature_sns2 |= 0x00020000; // xsns_37_rfsensor.ino #endif #ifdef USE_AZ7798 @@ -391,37 +391,37 @@ void GetFeatures(void) #ifdef USE_PN532_HSU feature_sns2 |= 0x00100000; // xsns_40_pn532.ino #endif -#ifdef USE_MAX44009 +#if defined(USE_I2C) && defined(USE_MAX44009) feature_sns2 |= 0x00200000; // xsns_41_max44009.ino #endif -#ifdef USE_SCD30 +#if defined(USE_I2C) && defined(USE_SCD30) feature_sns2 |= 0x00400000; // xsns_42_scd30.ino #endif #ifdef USE_HRE feature_sns2 |= 0x00800000; // xsns_43_hre.ino #endif -#ifdef USE_ADE7953 +#if defined(USE_ENERGY_SENSOR) && defined(USE_ADE7953) feature_sns2 |= 0x01000000; // xnrg_07_ade7953.ino #endif -#ifdef USE_SPS30 +#if defined(USE_I2C) && defined(USE_SPS30) feature_sns2 |= 0x02000000; // xsns_44_sps30.ino #endif -#ifdef USE_VL53L0X +#if defined(USE_I2C) && defined(USE_VL53L0X) feature_sns2 |= 0x04000000; // xsns_45_vl53l0x.ino #endif -#ifdef USE_MLX90614 +#if defined(USE_I2C) && defined(USE_MLX90614) feature_sns2 |= 0x08000000; // xsns_46_MLX90614.ino #endif #ifdef USE_MAX31865 feature_sns2 |= 0x10000000; // xsns_47-max31865.ino #endif -#ifdef USE_CHIRP +#if defined(USE_I2C) && defined(USE_CHIRP) feature_sns2 |= 0x20000000; // xsns_48_chirp.ino #endif -#ifdef USE_SOLAX_X1 +#if defined(USE_ENERGY_SENSOR) && defined(USE_SOLAX_X1) feature_sns2 |= 0x40000000; // xnrg_12_solaxX1.ino #endif -#ifdef USE_PAJ7620 +#if defined(USE_I2C) && defined(USE_PAJ7620) feature_sns2 |= 0x80000000; // xsns_50_paj7620.ino #endif @@ -441,13 +441,13 @@ void GetFeatures(void) #ifdef USE_SML_M feature5 |= 0x00000008; // xsns_53_sml.ino #endif -#ifdef USE_INA226 +#if defined(USE_I2C) && defined(USE_INA226) feature5 |= 0x00000010; // xsns_54_ina226.ino #endif #ifdef USE_A4988_STEPPER feature5 |= 0x00000020; // xdrv_25_A4988.ino #endif -#ifdef USE_DDS2382 +#if defined(USE_ENERGY_SENSOR) && defined(USE_DDS2382) feature5 |= 0x00000040; // xnrg_09_dds2382.ino #endif #ifdef USE_SM2135 @@ -456,10 +456,10 @@ void GetFeatures(void) #ifdef USE_SHUTTER feature5 |= 0x00000100; // xdrv_027_shutter.ino #endif -#ifdef USE_PCF8574 +#if defined(USE_I2C) && defined(USE_PCF8574) feature5 |= 0x00000200; // xdrv_028_pcf8574.ino #endif -#ifdef USE_DDSU666 +#if defined(USE_ENERGY_SENSOR) && defined(USE_DDSU666) feature5 |= 0x00000400; // xnrg_11_ddsu666.ino #endif #ifdef USE_DEEPSLEEP @@ -471,7 +471,7 @@ void GetFeatures(void) #ifdef USE_SONOFF_RF feature5 |= 0x00002000; // xdrv_06_snfbridge.ino #endif -#ifdef USE_SONOFF_L1 +#if defined(USE_LIGHT) && defined(USE_SONOFF_L1) feature5 |= 0x00004000; // xlgt_05_sonoff_l1.ino #endif #ifdef USE_EXS_DIMMER @@ -480,19 +480,19 @@ void GetFeatures(void) #ifdef USE_TASMOTA_CLIENT feature5 |= 0x00010000; // xdrv_31_tasmota_client.ino #endif -#ifdef USE_HIH6 +#if defined(USE_I2C) && defined(USE_HIH6) feature5 |= 0x00020000; // xsns_55_hih_series.ino #endif #ifdef USE_HPMA feature5 |= 0x00040000; // xsns_56_hpma.ino #endif -#ifdef USE_TSL2591 +#if defined(USE_I2C) && defined(USE_TSL2591) feature5 |= 0x00080000; // xsns_57_tsl2591.ino #endif -#ifdef USE_DHT12 +#if defined(USE_I2C) && defined(USE_DHT12) feature5 |= 0x00100000; // xsns_58_dht12.ino #endif -#ifdef USE_DS1624 +#if defined(USE_I2C) && defined(USE_DS1624) feature5 |= 0x00200000; // xsns_59_ds1624.ino #endif #ifdef USE_GPS @@ -510,13 +510,13 @@ void GetFeatures(void) #ifdef USE_HM10 feature5 |= 0x04000000; // xsns_62_MI_HM10.ino #endif -#ifdef USE_LE01MR +#if defined(USE_ENERGY_SENSOR) && defined(USE_LE01MR) feature5 |= 0x08000000; // xnrg_13_fif_le01mr.ino #endif -#ifdef USE_AHT1x +#if defined(USE_I2C) && defined(USE_AHT1x) feature5 |= 0x10000000; // xsns_63_aht1x.ino #endif -#ifdef USE_WEMOS_MOTOR_V1 +#if defined(USE_I2C) && defined(USE_WEMOS_MOTOR_V1) feature5 |= 0x20000000; // xdrv_34_wemos_motor_v1.ino #endif #ifdef USE_DEVICE_GROUPS @@ -539,16 +539,16 @@ void GetFeatures(void) #ifdef USE_SONOFF_D1 feature6 |= 0x00000004; // xdrv_37_sonoff_d1.ino #endif -#ifdef USE_HDC1080 +#if defined(USE_I2C) && defined(USE_HDC1080) feature6 |= 0x00000008; // xsns_65_hdc1080.ino #endif -#ifdef USE_IAQ +#if defined(USE_I2C) && defined(USE_IAQ) feature6 |= 0x00000010; // xsns_66_iAQ.ino #endif -#ifdef USE_DISPLAY_SEVENSEG +#if defined(USE_DISPLAY) && defined(USE_DISPLAY_SEVENSEG) feature6 |= 0x00000020; // xdsp_11_sevenseg.ino #endif -#ifdef USE_AS3935 +#if defined(USE_I2C) && defined(USE_AS3935) feature6 |= 0x00000040; // xsns_67_as3935.ino #endif #ifdef USE_PING @@ -563,28 +563,28 @@ void GetFeatures(void) #ifdef USE_THERMOSTAT feature6 |= 0x00000400; // xdrv_39_heating.ino #endif -#ifdef USE_VEML6075 +#if defined(USE_I2C) && defined(USE_VEML6075) feature6 |= 0x00000800; // xsns_70_veml6075.ino #endif -#ifdef USE_VEML7700 +#if defined(USE_I2C) && defined(USE_VEML7700) feature6 |= 0x00001000; // xsns_71_veml7700.ino #endif -#ifdef USE_MCP9808 +#if defined(USE_I2C) && defined(USE_MCP9808) feature6 |= 0x00002000; // xsns_72_mcp9808.ino #endif -#ifdef USE_BL0940 +#if defined(USE_ENERGY_SENSOR) && defined(USE_BL0940) feature6 |= 0x00004000; // xnrg_14_bl0940.ino #endif #ifdef USE_TELEGRAM feature6 |= 0x00008000; // xdrv_40_telegram.ino #endif -#ifdef USE_HP303B +#if defined(USE_I2C) && defined(USE_HP303B) feature6 |= 0x00010000; // xsns_73_hp303b.ino #endif #ifdef USE_TCP_BRIDGE feature6 |= 0x00020000; // xdrv_41_tcp_bridge.ino #endif -#ifdef USE_TELEINFO +#if defined(USE_ENERGY_SENSOR) && defined(USE_TELEINFO) feature6 |= 0x00040000; // xnrg_15_teleinfo.ino #endif #ifdef USE_LMT01 @@ -604,10 +604,10 @@ void GetFeatures(void) // feature6 |= 0x10000000; // feature6 |= 0x20000000; -#ifdef USE_ETHERNET +#if defined(ESP32) && defined(USE_ETHERNET) feature6 |= 0x40000000; // xdrv_82_ethernet.ino #endif -#ifdef USE_WEBCAM +#if defined(ESP32) && defined(USE_WEBCAM) feature6 |= 0x80000000; // xdrv_81_webcam.ino #endif }