diff --git a/sonoff/my_user_config.h b/sonoff/my_user_config.h index 9cc66a9b9..9d245caa6 100644 --- a/sonoff/my_user_config.h +++ b/sonoff/my_user_config.h @@ -303,7 +303,15 @@ // #define USE_EXPRESSION // Add support for expression evaluation in rules (+3k2 code, +64 bytes mem) // #define SUPPORT_MQTT_EVENT // Support trigger event with MQTT subscriptions (+3k5 code) -// -- Counter input ----------------------- +// -- Optional modules ---------------------------- +#define USE_SONOFF_IFAN // Add support for Sonoff iFan02 and iFan03 (+2k code) +#define USE_TUYA_DIMMER // Add support for Tuya Serial Dimmer + #define TUYA_DIMMER_ID 0 // Default dimmer Id +#define USE_ARMTRONIX_DIMMERS // Add support for Armtronix Dimmers (+1k4 code) +#define USE_PS_16_DZ // Add support for PS-16-DZ Dimmer and Sonoff L1 (+2k code) +//#define ROTARY_V1 // Add support for MI Desk Lamp + +// -- Counter input ------------------------------- #define USE_COUNTER // Enable inputs as counter (+0k8 code) // -- Internal Analog input ----------------------- @@ -402,11 +410,6 @@ #define SDM630_SPEED 9600 // SDM630-Modbus RS485 serial speed (default: 9600 baud) //#define USE_MP3_PLAYER // Use of the DFPlayer Mini MP3 Player RB-DFR-562 commands: play, volume and stop #define MP3_VOLUME 10 // Set the startup volume on init, the range can be 0..30(max) -#define USE_TUYA_DIMMER // Add support for Tuya Serial Dimmer - #define TUYA_DIMMER_ID 0 // Default dimmer Id -#define USE_ARMTRONIX_DIMMERS // Add support for Armtronix Dimmers (+1k4 code) -#define USE_PS_16_DZ // Add support for PS-16-DZ Dimmer and Sonoff L1 (+2k code) -//#define ROTARY_V1 // Add support for MI Desk Lamp //#define USE_AZ7798 // Add support for AZ-Instrument 7798 CO2 datalogger (+1k6 code) //#define USE_PN532_HSU // Add support for PN532 using HSU (Serial) interface (+1k8 code, 140 bytes mem) // #define USE_PN532_CAUSE_EVENTS // Cause event execution for PN532_UID= and PN532_DATA=[if defined] (+ 30 bytes code) diff --git a/sonoff/sonoff.ino b/sonoff/sonoff.ino index 465b59caf..e03f22ea4 100755 --- a/sonoff/sonoff.ino +++ b/sonoff/sonoff.ino @@ -1632,6 +1632,7 @@ void ExecuteCommandPower(uint8_t device, uint8_t state, int source) // ShowSource(source); +#ifdef USE_SONOFF_IFAN if (IsModuleIfan()) { blink_mask &= 1; // No blinking on the fan relays Settings.flag.interlock = 0; // No interlock mode as it is already done by the microcontroller @@ -1639,6 +1640,7 @@ void ExecuteCommandPower(uint8_t device, uint8_t state, int source) Settings.pulse_timer[2] = 0; Settings.pulse_timer[3] = 0; } +#endif // USE_SONOFF_IFAN uint8_t publish_power = 1; if ((POWER_OFF_NO_STATE == state) || (POWER_ON_NO_STATE == state)) { @@ -1783,7 +1785,9 @@ void PublishStatus(uint8_t payload) if ((0 == payload) || (99 == payload)) { uint8_t maxfn = (devices_present > MAX_FRIENDLYNAMES) ? MAX_FRIENDLYNAMES : (!devices_present) ? 1 : devices_present; +#ifdef USE_SONOFF_IFAN if (IsModuleIfan()) { maxfn = 1; } +#endif // USE_SONOFF_IFAN stemp[0] = '\0'; for (uint32_t i = 0; i < maxfn; i++) { snprintf_P(stemp, sizeof(stemp), PSTR("%s%s\"%s\"" ), stemp, (i > 0 ? "," : ""), Settings.friendlyname[i]); @@ -1922,10 +1926,12 @@ void MqttShowState(void) } else { #endif ResponseAppend_P(PSTR(",\"%s\":\"%s\""), GetPowerDevice(stemp1, i +1, sizeof(stemp1), Settings.flag.device_index_enable), GetStateText(bitRead(power, i))); +#ifdef USE_SONOFF_IFAN if (IsModuleIfan()) { ResponseAppend_P(PSTR(",\"" D_CMND_FANSPEED "\":%d"), GetFanspeed()); break; } +#endif // USE_SONOFF_IFAN #ifdef USE_LIGHT } #endif @@ -2000,11 +2006,6 @@ void PerformEverySecond(void) AddLog_P2(LOG_LEVEL_DEBUG, PSTR(D_LOG_APPLICATION D_BOOT_COUNT " %d"), Settings.bootcount); } - if ((4 == uptime) && (SONOFF_IFAN02 == my_module_type)) { // Microcontroller needs 3 seconds before accepting commands - SetDevicePower(1, SRC_RETRY); // Sync with default power on state microcontroller being Light ON and Fan OFF - SetDevicePower(power, SRC_RETRY); // Set required power on state - } - if (seriallog_timer) { seriallog_timer--; if (!seriallog_timer) { diff --git a/sonoff/sonoff_post.h b/sonoff/sonoff_post.h index 3be46fb59..7f50782c6 100644 --- a/sonoff/sonoff_post.h +++ b/sonoff/sonoff_post.h @@ -81,6 +81,16 @@ void KNX_CB_Action(message_t const &msg, void *arg); #undef CODE_IMAGE #define CODE_IMAGE 3 +// -- Optional modules ------------------------- +#define USE_SONOFF_IFAN // Add support for Sonoff iFan02 and iFan03 (+2k code) +#define USE_TUYA_DIMMER // Add support for Tuya Serial Dimmer +#ifndef TUYA_DIMMER_ID + #define TUYA_DIMMER_ID 0 // Default dimmer Id +#endif +//#define USE_ARMTRONIX_DIMMERS // Add support for Armtronix Dimmers (+1k4 code) +#define USE_PS_16_DZ // Add support for PS-16-DZ Dimmer and Sonoff L1 (+2k code) +//#define ROTARY_V1 // Add support for MI Desk Lamp + #define USE_COUNTER // Enable counters #undef USE_ADC_VCC // Add Analog input on selected devices #define USE_DS18x20 // For more than one DS18x20 sensors with id sort, single scan and read retry (+1k3 code) @@ -137,11 +147,6 @@ void KNX_CB_Action(message_t const &msg, void *arg); #define USE_SDM630 // Add support for Eastron SDM630-Modbus energy meter (+2k code) #define USE_MP3_PLAYER // Use of the DFPlayer Mini MP3 Player RB-DFR-562 commands: play, volume and stop #define MP3_VOLUME 10 // Set the startup volume on init, the range can be 0..30(max) -#define USE_TUYA_DIMMER // Add support for Tuya Serial Dimmer -#ifndef TUYA_DIMMER_ID - #define TUYA_DIMMER_ID 0 // Default dimmer Id -#endif -#define USE_PS_16_DZ // Add support for PS-16-DZ Dimmer and Sonoff L1 (+2k code) //#define USE_AZ7798 // Add support for AZ-Instrument 7798 CO2 datalogger #define USE_PN532_HSU // Add support for PN532 using HSU (Serial) interface (+1k8 code, 140 bytes mem) #define USE_PZEM004T // Add support for PZEM004T Energy monitor (+2k code) @@ -199,6 +204,16 @@ void KNX_CB_Action(message_t const &msg, void *arg); #undef USE_TIMERS_WEB // Disable support for timer webpage #undef USE_SUNRISE // Disable support for Sunrise and sunset tools #undef USE_RULES // Disable support for rules + +// -- Optional modules ------------------------- +//#ifndef USE_SONOFF_IFAN +#define USE_SONOFF_IFAN // Add support for Sonoff iFan02 and iFan03 (+2k code) +//#endif +#undef USE_TUYA_DIMMER // Disable support for Tuya Serial Dimmer +#undef USE_ARMTRONIX_DIMMERS // Disable support for Armtronix Dimmers (+1k4 code) +#undef USE_PS_16_DZ // Disable support for PS-16-DZ Dimmer and Sonoff L1 (+2k code) +#undef ROTARY_V1 // Disable support for MI Desk Lamp + #undef USE_COUNTER // Disable counters #undef USE_I2C // Disable all I2C sensors #undef USE_SPI // Disable all SPI devices @@ -210,9 +225,6 @@ void KNX_CB_Action(message_t const &msg, void *arg); #undef USE_SDM120 // Disable support for Eastron SDM120-Modbus energy meter #undef USE_SDM630 // Disable support for Eastron SDM630-Modbus energy meter #undef USE_MP3_PLAYER // Disable DFPlayer Mini MP3 Player RB-DFR-562 commands: play, volume and stop -#undef USE_TUYA_DIMMER // Disable support for Tuya Serial Dimmer -#undef USE_ARMTRONIX_DIMMERS // Disable support for Armtronix Dimmers (+1k4 code) -#undef USE_PS_16_DZ // Disable support for PS-16-DZ Dimmer and Sonoff L1 (+2k code) #undef USE_AZ7798 // Disable support for AZ-Instrument 7798 CO2 datalogger #undef USE_PN532_HSU // Disable support for PN532 using HSU (Serial) interface (+1k8 code, 140 bytes mem) #undef USE_PZEM004T // Disable PZEM004T energy sensor @@ -328,6 +340,14 @@ void KNX_CB_Action(message_t const &msg, void *arg); //#undef USE_TIMERS_WEB // Disable support for timer webpage //#undef USE_SUNRISE // Disable support for Sunrise and sunset tools //#undef USE_RULES // Disable support for rules + +// -- Optional modules ------------------------- +#define USE_SONOFF_IFAN // Add support for Sonoff iFan02 and iFan03 (+2k code) +//#undef USE_TUYA_DIMMER // Disable support for Tuya Serial Dimmer +#undef USE_ARMTRONIX_DIMMERS // Disable support for Armtronix Dimmers (+1k4 code) +#undef USE_PS_16_DZ // Disable support for PS-16-DZ Dimmer and Sonoff L1 (+2k code) +#undef ROTARY_V1 // Disable support for MI Desk Lamp + #undef USE_COUNTER // Disable counters #undef USE_DS18x20 // Disable DS18x20 sensor #undef USE_DS18x20_LEGACY // Disable DS18x20 sensor @@ -343,9 +363,6 @@ void KNX_CB_Action(message_t const &msg, void *arg); #undef USE_SDM120 // Disable support for Eastron SDM120-Modbus energy meter #undef USE_SDM630 // Disable support for Eastron SDM630-Modbus energy meter #undef USE_MP3_PLAYER // Disable DFPlayer Mini MP3 Player RB-DFR-562 commands: play, volume and stop -//#undef USE_TUYA_DIMMER // Disable support for Tuya Serial Dimmer -#undef USE_ARMTRONIX_DIMMERS // Disable support for Armtronix Dimmers (+1k4 code) -#undef USE_PS_16_DZ // Disable support for PS-16-DZ Dimmer and Sonoff L1 (+2k code) #undef USE_AZ7798 // Disable support for AZ-Instrument 7798 CO2 datalogger #undef USE_PN532_HSU // Disable support for PN532 using HSU (Serial) interface (+1k8 code, 140 bytes mem) #undef USE_PZEM004T // Disable PZEM004T energy sensor @@ -399,6 +416,14 @@ void KNX_CB_Action(message_t const &msg, void *arg); #undef USE_RULES // Disable support for rules #undef USE_SCRIPT // Disable support for script #undef USE_LIGHT // Disable support for lights + +// -- Optional modules ------------------------- +#undef USE_SONOFF_IFAN // Disable support for Sonoff iFan02 and iFan03 (+2k code) +#undef USE_TUYA_DIMMER // Disable support for Tuya Serial Dimmer +#undef USE_ARMTRONIX_DIMMERS // Disable support for Armtronix Dimmers (+1k4 code) +#undef USE_PS_16_DZ // Disable support for PS-16-DZ Dimmer and Sonoff L1 (+2k code) +#undef ROTARY_V1 // Disable support for MI Desk Lamp + #undef USE_COUNTER // Disable counters #undef USE_DS18x20 // Disable DS18x20 sensor #undef USE_DS18x20_LEGACY // Disable DS18x20 sensor @@ -414,9 +439,6 @@ void KNX_CB_Action(message_t const &msg, void *arg); #undef USE_SDM120 // Disable support for Eastron SDM120-Modbus energy meter #undef USE_SDM630 // Disable support for Eastron SDM630-Modbus energy meter #undef USE_MP3_PLAYER // Disable DFPlayer Mini MP3 Player RB-DFR-562 commands: play, volume and stop -#undef USE_TUYA_DIMMER // Disable support for Tuya Serial Dimmer -#undef USE_ARMTRONIX_DIMMERS // Disable support for Armtronix Dimmers (+1k4 code) -#undef USE_PS_16_DZ // Disable support for PS-16-DZ Dimmer and Sonoff L1 (+2k code) #undef USE_AZ7798 // Disable support for AZ-Instrument 7798 CO2 datalogger #undef USE_PN532_HSU // Disable support for PN532 using HSU (Serial) interface (+1k8 code, 140 bytes mem) #undef USE_PZEM004T // Disable PZEM004T energy sensor diff --git a/sonoff/sonoff_template.h b/sonoff/sonoff_template.h index a99b3bce9..3b336fdc6 100644 --- a/sonoff/sonoff_template.h +++ b/sonoff/sonoff_template.h @@ -669,8 +669,10 @@ const uint8_t kModuleNiceList[] PROGMEM = { SONOFF_B1, // Sonoff Light Bulbs SLAMPHER, SONOFF_SC, // Sonoff Environmemtal Sensor +#ifdef USE_SONOFF_IFAN SONOFF_IFAN02, // Sonoff Fan SONOFF_IFAN03, +#endif SONOFF_BRIDGE, // Sonoff Bridge SONOFF_SV, // Sonoff Development Devices SONOFF_DEV, diff --git a/sonoff/xdrv_01_webserver.ino b/sonoff/xdrv_01_webserver.ino index 2ab583218..23f600525 100644 --- a/sonoff/xdrv_01_webserver.ino +++ b/sonoff/xdrv_01_webserver.ino @@ -942,6 +942,7 @@ void HandleRoot(void) #endif WSContentSend_P(HTTP_TABLE100); WSContentSend_P(PSTR("