@@ -1019,6 +1019,7 @@ void Thermostat::process_RC300Set(std::shared_ptr<const Telegram> telegram) {
1019
1019
has_update (telegram, hc->reducetemp , 9 );
1020
1020
has_update (telegram, hc->noreducetemp , 12 );
1021
1021
has_update (telegram, hc->remoteseltemp , 17 ); // see https://github.com/emsesp/EMS-ESP32/issues/590
1022
+ has_update (telegram, hc->cooling , 28 );
1022
1023
}
1023
1024
1024
1025
// types 0x2AF ff
@@ -1970,6 +1971,20 @@ bool Thermostat::set_wwprio(const char * value, const int8_t id) {
1970
1971
return true ;
1971
1972
}
1972
1973
1974
+ // set cooling
1975
+ bool Thermostat::set_cooling (const char * value, const int8_t id) {
1976
+ std::shared_ptr<Thermostat::HeatingCircuit> hc = heating_circuit ((id == -1 ) ? AUTO_HEATING_CIRCUIT : id);
1977
+ if (hc == nullptr ) {
1978
+ return false ;
1979
+ }
1980
+
1981
+ bool b;
1982
+ if (!Helpers::value2bool (value, b)) {
1983
+ return false ;
1984
+ }
1985
+ write_command (set_typeids[hc->hc ()], 28 , b ? 0x01 : 0x00 , set_typeids[hc->hc ()]);
1986
+ return true ;
1987
+ }
1973
1988
1974
1989
// sets the thermostat ww circulation working mode, where mode is a string
1975
1990
bool Thermostat::set_wwcircmode (const char * value, const int8_t id) {
@@ -4178,6 +4193,7 @@ void Thermostat::register_device_values_hc(std::shared_ptr<Thermostat::HeatingCi
4178
4193
register_device_value (tag, &hc->noreducetemp , DeviceValueType::INT, FL_ (noreducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB (set_noreducetemp));
4179
4194
register_device_value (tag, &hc->reducetemp , DeviceValueType::INT, FL_ (reducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB (set_reducetemp));
4180
4195
register_device_value (tag, &hc->wwprio , DeviceValueType::BOOL, FL_ (wwprio), DeviceValueUOM::NONE, MAKE_CF_CB (set_wwprio));
4196
+ register_device_value (tag, &hc->cooling , DeviceValueType::BOOL, FL_ (cooling), DeviceValueUOM::NONE, MAKE_CF_CB (set_cooling));
4181
4197
4182
4198
register_device_value (tag, &hc->hpmode , DeviceValueType::ENUM, FL_ (enum_hpmode), FL_ (hpmode), DeviceValueUOM::NONE, MAKE_CF_CB (set_hpmode));
4183
4199
register_device_value (tag, &hc->dewoffset , DeviceValueType::UINT, FL_ (dewoffset), DeviceValueUOM::K, MAKE_CF_CB (set_dewoffset));
@@ -4350,7 +4366,7 @@ void Thermostat::register_device_values_hc(std::shared_ptr<Thermostat::HeatingCi
4350
4366
MAKE_CF_CB (set_tempautotemp),
4351
4367
0 ,
4352
4368
30 );
4353
- register_device_value (tag, &hc->noreducetemp , DeviceValueType::INT, FL_ (noreducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB (set_noreducetemp), -30 , 10 );
4369
+ register_device_value (tag, &hc->noreducetemp , DeviceValueType::INT, FL_ (noreducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB (set_noreducetemp), -31 , 10 );
4354
4370
register_device_value (tag, &hc->reducetemp , DeviceValueType::INT, FL_ (reducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB (set_reducetemp), -20 , 10 );
4355
4371
register_device_value (tag, &hc->vacreducetemp , DeviceValueType::INT, FL_ (vacreducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB (set_vacreducetemp), -20 , 10 );
4356
4372
register_device_value (
0 commit comments