diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp index 14655bc0e..2584788b6 100644 --- a/src/devices/thermostat.cpp +++ b/src/devices/thermostat.cpp @@ -2421,18 +2421,19 @@ bool Thermostat::set_summermode(const char * value, const int8_t id) { uint8_t set = 0xFF; if (is_fetch(summer2_typeids[hc->hc()])) { - if (!Helpers::value2enum(value, set, FL_(enum_hpoperatingmode))) { - return false; - } - write_command(summer2_typeids[hc->hc()], 0, set, summer2_typeids[hc->hc()]); - } else { - if (!Helpers::value2enum(value, set, FL_(enum_summermode))) { - return false; + if ((hc->statusbyte & 1) && Helpers::value2enum(value, set, FL_(enum_summermode))) { + write_command(summer2_typeids[hc->hc()], 0, set, summer2_typeids[hc->hc()]); + return true; + } else if (Helpers::value2enum(value, set, FL_(enum_hpoperatingmode))) { + write_command(summer2_typeids[hc->hc()], 0, set, summer2_typeids[hc->hc()]); + return true; } + } else if (Helpers::value2enum(value, set, FL_(enum_summermode))) { write_command(summer_typeids[hc->hc()], 7, set, summer_typeids[hc->hc()]); + return true; } - return true; + return false; } // Set fastheatupfactor, ems+