Fix iFan response to command Power0 (#23595)

This commit is contained in:
Theo Arends 2025-07-20 16:18:26 +02:00
parent 37af8be39d
commit 8f973e3b3a

View File

@ -389,6 +389,7 @@ void SetAllPower(uint32_t state, uint32_t source) {
publish_power = false; publish_power = false;
} }
if (((state >= POWER_OFF) && (state <= POWER_TOGGLE)) || (POWER_OFF_FORCE == state)) { if (((state >= POWER_OFF) && (state <= POWER_TOGGLE)) || (POWER_OFF_FORCE == state)) {
power_t current_power = TasmotaGlobal.power;
power_t all_on = POWER_MASK >> (POWER_SIZE - TasmotaGlobal.devices_present); power_t all_on = POWER_MASK >> (POWER_SIZE - TasmotaGlobal.devices_present);
switch (state) { switch (state) {
case POWER_OFF: case POWER_OFF:
@ -408,6 +409,11 @@ void SetAllPower(uint32_t state, uint32_t source) {
TasmotaGlobal.power = 0; TasmotaGlobal.power = 0;
break; break;
} }
#ifdef USE_SONOFF_IFAN
// Do not touch Fan relays
TasmotaGlobal.power &= 0x0001;
TasmotaGlobal.power |= (current_power & 0xFFFE);
#endif // USE_SONOFF_IFAN
SetDevicePower(TasmotaGlobal.power, source); SetDevicePower(TasmotaGlobal.power, source);
} }
if (publish_power) { if (publish_power) {