mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 15:59:52 +03:00
add cooling #1198, fix min limit of noreducetemp
This commit is contained in:
@@ -1019,6 +1019,7 @@ void Thermostat::process_RC300Set(std::shared_ptr<const Telegram> telegram) {
|
|||||||
has_update(telegram, hc->reducetemp, 9);
|
has_update(telegram, hc->reducetemp, 9);
|
||||||
has_update(telegram, hc->noreducetemp, 12);
|
has_update(telegram, hc->noreducetemp, 12);
|
||||||
has_update(telegram, hc->remoteseltemp, 17); // see https://github.com/emsesp/EMS-ESP32/issues/590
|
has_update(telegram, hc->remoteseltemp, 17); // see https://github.com/emsesp/EMS-ESP32/issues/590
|
||||||
|
has_update(telegram, hc->cooling, 28);
|
||||||
}
|
}
|
||||||
|
|
||||||
// types 0x2AF ff
|
// types 0x2AF ff
|
||||||
@@ -1970,6 +1971,20 @@ bool Thermostat::set_wwprio(const char * value, const int8_t id) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set cooling
|
||||||
|
bool Thermostat::set_cooling(const char * value, const int8_t id) {
|
||||||
|
std::shared_ptr<Thermostat::HeatingCircuit> hc = heating_circuit((id == -1) ? AUTO_HEATING_CIRCUIT : id);
|
||||||
|
if (hc == nullptr) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool b;
|
||||||
|
if (!Helpers::value2bool(value, b)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
write_command(set_typeids[hc->hc()], 28, b ? 0x01 : 0x00, set_typeids[hc->hc()]);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// sets the thermostat ww circulation working mode, where mode is a string
|
// sets the thermostat ww circulation working mode, where mode is a string
|
||||||
bool Thermostat::set_wwcircmode(const char * value, const int8_t id) {
|
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
|
|||||||
register_device_value(tag, &hc->noreducetemp, DeviceValueType::INT, FL_(noreducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_noreducetemp));
|
register_device_value(tag, &hc->noreducetemp, DeviceValueType::INT, FL_(noreducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_noreducetemp));
|
||||||
register_device_value(tag, &hc->reducetemp, DeviceValueType::INT, FL_(reducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_reducetemp));
|
register_device_value(tag, &hc->reducetemp, DeviceValueType::INT, FL_(reducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_reducetemp));
|
||||||
register_device_value(tag, &hc->wwprio, DeviceValueType::BOOL, FL_(wwprio), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwprio));
|
register_device_value(tag, &hc->wwprio, DeviceValueType::BOOL, FL_(wwprio), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwprio));
|
||||||
|
register_device_value(tag, &hc->cooling, DeviceValueType::BOOL, FL_(cooling), DeviceValueUOM::NONE, MAKE_CF_CB(set_cooling));
|
||||||
|
|
||||||
register_device_value(tag, &hc->hpmode, DeviceValueType::ENUM, FL_(enum_hpmode), FL_(hpmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_hpmode));
|
register_device_value(tag, &hc->hpmode, DeviceValueType::ENUM, FL_(enum_hpmode), FL_(hpmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_hpmode));
|
||||||
register_device_value(tag, &hc->dewoffset, DeviceValueType::UINT, FL_(dewoffset), DeviceValueUOM::K, MAKE_CF_CB(set_dewoffset));
|
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
|
|||||||
MAKE_CF_CB(set_tempautotemp),
|
MAKE_CF_CB(set_tempautotemp),
|
||||||
0,
|
0,
|
||||||
30);
|
30);
|
||||||
register_device_value(tag, &hc->noreducetemp, DeviceValueType::INT, FL_(noreducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_noreducetemp), -30, 10);
|
register_device_value(tag, &hc->noreducetemp, DeviceValueType::INT, FL_(noreducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_noreducetemp), -31, 10);
|
||||||
register_device_value(tag, &hc->reducetemp, DeviceValueType::INT, FL_(reducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_reducetemp), -20, 10);
|
register_device_value(tag, &hc->reducetemp, DeviceValueType::INT, FL_(reducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_reducetemp), -20, 10);
|
||||||
register_device_value(tag, &hc->vacreducetemp, DeviceValueType::INT, FL_(vacreducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_vacreducetemp), -20, 10);
|
register_device_value(tag, &hc->vacreducetemp, DeviceValueType::INT, FL_(vacreducetemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_vacreducetemp), -20, 10);
|
||||||
register_device_value(
|
register_device_value(
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ class Thermostat : public EMSdevice {
|
|||||||
uint8_t roomtempdiff;
|
uint8_t roomtempdiff;
|
||||||
uint8_t hpminflowtemp;
|
uint8_t hpminflowtemp;
|
||||||
uint8_t hpmode;
|
uint8_t hpmode;
|
||||||
|
uint8_t cooling;
|
||||||
|
|
||||||
uint8_t hc_num() const {
|
uint8_t hc_num() const {
|
||||||
return hc_num_;
|
return hc_num_;
|
||||||
@@ -565,6 +566,7 @@ class Thermostat : public EMSdevice {
|
|||||||
bool set_dewoffset(const char * value, const int8_t id);
|
bool set_dewoffset(const char * value, const int8_t id);
|
||||||
bool set_hpminflowtemp(const char * value, const int8_t id);
|
bool set_hpminflowtemp(const char * value, const int8_t id);
|
||||||
bool set_hpmode(const char * value, const int8_t id);
|
bool set_hpmode(const char * value, const int8_t id);
|
||||||
|
bool set_cooling(const char * value, const int8_t id);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace emsesp
|
} // namespace emsesp
|
||||||
|
|||||||
Reference in New Issue
Block a user