mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 15:59:52 +03:00
heatpump summer mode, fix #503
This commit is contained in:
@@ -973,7 +973,7 @@ void Thermostat::process_RC300Summer(std::shared_ptr<const Telegram> telegram) {
|
|||||||
has_update(telegram, hc->offsettemp, 2);
|
has_update(telegram, hc->offsettemp, 2);
|
||||||
if (!is_fetch(summer2_typeids[hc->hc()])) {
|
if (!is_fetch(summer2_typeids[hc->hc()])) {
|
||||||
has_update(telegram, hc->summertemp, 6);
|
has_update(telegram, hc->summertemp, 6);
|
||||||
has_update(telegram, hc->summer_setmode, 7);
|
has_update(telegram, hc->summersetmode, 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hc->heatingtype < 3) {
|
if (hc->heatingtype < 3) {
|
||||||
@@ -993,7 +993,7 @@ void Thermostat::process_RC300Summer2(std::shared_ptr<const Telegram> telegram)
|
|||||||
if (hc == nullptr) {
|
if (hc == nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
has_update(telegram, hc->summer_setmode, 0);
|
has_update(telegram, hc->hpsummersetmode, 0);
|
||||||
has_update(telegram, hc->summertemp, 1);
|
has_update(telegram, hc->summertemp, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2348,13 +2348,16 @@ bool Thermostat::set_summermode(const char * value, const int8_t id) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
uint8_t set = 0xFF;
|
uint8_t set = 0xFF;
|
||||||
|
|
||||||
|
if (is_fetch(summer2_typeids[hc->hc()])) {
|
||||||
|
if (!Helpers::value2enum(value, set, FL_(enum_hpsummermode))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
write_command(summer2_typeids[hc->hc()], 0, set, summer2_typeids[hc->hc()]);
|
||||||
|
} else {
|
||||||
if (!Helpers::value2enum(value, set, FL_(enum_summermode))) {
|
if (!Helpers::value2enum(value, set, FL_(enum_summermode))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_fetch(summer2_typeids[hc->hc()])) {
|
|
||||||
write_command(summer2_typeids[hc->hc()], 0, set, summer2_typeids[hc->hc()]);
|
|
||||||
} else {
|
|
||||||
write_command(summer_typeids[hc->hc()], 7, set, summer_typeids[hc->hc()]);
|
write_command(summer_typeids[hc->hc()], 7, set, summer_typeids[hc->hc()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3831,7 +3834,9 @@ void Thermostat::register_device_values_hc(std::shared_ptr<Thermostat::HeatingCi
|
|||||||
register_device_value(
|
register_device_value(
|
||||||
tag, &hc->heatingtype, DeviceValueType::ENUM, FL_(enum_heatingtype), FL_(heatingtype), DeviceValueUOM::NONE, MAKE_CF_CB(set_heatingtype));
|
tag, &hc->heatingtype, DeviceValueType::ENUM, FL_(enum_heatingtype), FL_(heatingtype), DeviceValueUOM::NONE, MAKE_CF_CB(set_heatingtype));
|
||||||
register_device_value(
|
register_device_value(
|
||||||
tag, &hc->summer_setmode, DeviceValueType::ENUM, FL_(enum_summermode), FL_(summersetmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_summermode));
|
tag, &hc->summersetmode, DeviceValueType::ENUM, FL_(enum_summermode), FL_(summersetmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_summermode));
|
||||||
|
register_device_value(
|
||||||
|
tag, &hc->hpsummersetmode, DeviceValueType::ENUM, FL_(enum_hpsummermode), FL_(hpsummersetmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_summermode));
|
||||||
register_device_value(tag, &hc->summermode, DeviceValueType::ENUM, FL_(enum_summer), FL_(summermode), DeviceValueUOM::NONE);
|
register_device_value(tag, &hc->summermode, DeviceValueType::ENUM, FL_(enum_summer), FL_(summermode), DeviceValueUOM::NONE);
|
||||||
register_device_value(
|
register_device_value(
|
||||||
tag, &hc->controlmode, DeviceValueType::ENUM, FL_(enum_controlmode), FL_(controlmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_controlmode));
|
tag, &hc->controlmode, DeviceValueType::ENUM, FL_(enum_controlmode), FL_(controlmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_controlmode));
|
||||||
|
|||||||
@@ -54,7 +54,8 @@ class Thermostat : public EMSdevice {
|
|||||||
uint8_t designtemp; // heating curve design temp at MinExtTemp
|
uint8_t designtemp; // heating curve design temp at MinExtTemp
|
||||||
int8_t offsettemp; // heating curve offest temp at roomtemp signed!
|
int8_t offsettemp; // heating curve offest temp at roomtemp signed!
|
||||||
uint8_t manualtemp;
|
uint8_t manualtemp;
|
||||||
uint8_t summer_setmode;
|
uint8_t summersetmode;
|
||||||
|
uint8_t hpsummersetmode;
|
||||||
uint8_t roominfluence;
|
uint8_t roominfluence;
|
||||||
uint8_t roominfl_factor;
|
uint8_t roominfl_factor;
|
||||||
int16_t curroominfl;
|
int16_t curroominfl;
|
||||||
|
|||||||
@@ -364,6 +364,7 @@ MAKE_PSTR_LIST(enum_wwMode2, F_(off), F_(on), F_(auto))
|
|||||||
MAKE_PSTR_LIST(enum_wwMode3, F_(on), F_(off), F_(auto))
|
MAKE_PSTR_LIST(enum_wwMode3, F_(on), F_(off), F_(auto))
|
||||||
MAKE_PSTR_LIST(enum_heatingtype, F_(off), F_(radiator), F_(convector), F_(floor))
|
MAKE_PSTR_LIST(enum_heatingtype, F_(off), F_(radiator), F_(convector), F_(floor))
|
||||||
MAKE_PSTR_LIST(enum_summermode, F_(summer), F_(auto), F_(winter))
|
MAKE_PSTR_LIST(enum_summermode, F_(summer), F_(auto), F_(winter))
|
||||||
|
MAKE_PSTR_LIST(enum_hpsummermode, F_(off), F_(auto), F("heizen"), F("kühlen"))
|
||||||
MAKE_PSTR_LIST(enum_summer, F_(winter), F_(summer))
|
MAKE_PSTR_LIST(enum_summer, F_(winter), F_(summer))
|
||||||
|
|
||||||
MAKE_PSTR_LIST(enum_mode, F_(manual), F_(auto)) // RC100, RC300, RC310
|
MAKE_PSTR_LIST(enum_mode, F_(manual), F_(auto)) // RC100, RC300, RC310
|
||||||
@@ -649,6 +650,7 @@ MAKE_PSTR_LIST(nofrosttemp, F("nofrosttemp"), F("Frostschutztemperatur"))
|
|||||||
MAKE_PSTR_LIST(targetflowtemp, F("targetflowtemp"), F("berechnete Flusstemperatur"))
|
MAKE_PSTR_LIST(targetflowtemp, F("targetflowtemp"), F("berechnete Flusstemperatur"))
|
||||||
MAKE_PSTR_LIST(heatingtype, F("heatingtype"), F("Heizungstyp"))
|
MAKE_PSTR_LIST(heatingtype, F("heatingtype"), F("Heizungstyp"))
|
||||||
MAKE_PSTR_LIST(summersetmode, F("summersetmode"), F("Einstellung Sommerbetrieb"))
|
MAKE_PSTR_LIST(summersetmode, F("summersetmode"), F("Einstellung Sommerbetrieb"))
|
||||||
|
MAKE_PSTR_LIST(hpsummersetmode, F("hpsummersetmode"), F("Wärmepumpe Sommerbetrieb"))
|
||||||
MAKE_PSTR_LIST(controlmode, F("controlmode"), F("Kontrollmodus"))
|
MAKE_PSTR_LIST(controlmode, F("controlmode"), F("Kontrollmodus"))
|
||||||
MAKE_PSTR_LIST(control, F("control"), F("Fernsteuerung"))
|
MAKE_PSTR_LIST(control, F("control"), F("Fernsteuerung"))
|
||||||
MAKE_PSTR_LIST(holidays, F("holidays"), F("holiday dates"))
|
MAKE_PSTR_LIST(holidays, F("holidays"), F("holiday dates"))
|
||||||
|
|||||||
@@ -364,6 +364,7 @@ MAKE_PSTR_LIST(enum_wwMode2, F_(off), F_(on), F_(auto))
|
|||||||
MAKE_PSTR_LIST(enum_wwMode3, F_(on), F_(off), F_(auto))
|
MAKE_PSTR_LIST(enum_wwMode3, F_(on), F_(off), F_(auto))
|
||||||
MAKE_PSTR_LIST(enum_heatingtype, F_(off), F_(radiator), F_(convector), F_(floor))
|
MAKE_PSTR_LIST(enum_heatingtype, F_(off), F_(radiator), F_(convector), F_(floor))
|
||||||
MAKE_PSTR_LIST(enum_summermode, F_(summer), F_(auto), F_(winter))
|
MAKE_PSTR_LIST(enum_summermode, F_(summer), F_(auto), F_(winter))
|
||||||
|
MAKE_PSTR_LIST(enum_hpsummermode, F_(off), F_(auto), F("heating"), F("cooling"))
|
||||||
MAKE_PSTR_LIST(enum_summer, F_(winter), F_(summer))
|
MAKE_PSTR_LIST(enum_summer, F_(winter), F_(summer))
|
||||||
|
|
||||||
MAKE_PSTR_LIST(enum_mode, F_(manual), F_(auto)) // RC100, RC300, RC310
|
MAKE_PSTR_LIST(enum_mode, F_(manual), F_(auto)) // RC100, RC300, RC310
|
||||||
@@ -638,6 +639,7 @@ MAKE_PSTR_LIST(nofrosttemp, F("nofrosttemp"), F("nofrost temperature"))
|
|||||||
MAKE_PSTR_LIST(targetflowtemp, F("targetflowtemp"), F("target flow temperature"))
|
MAKE_PSTR_LIST(targetflowtemp, F("targetflowtemp"), F("target flow temperature"))
|
||||||
MAKE_PSTR_LIST(heatingtype, F("heatingtype"), F("heating type"))
|
MAKE_PSTR_LIST(heatingtype, F("heatingtype"), F("heating type"))
|
||||||
MAKE_PSTR_LIST(summersetmode, F("summersetmode"), F("set summer mode"))
|
MAKE_PSTR_LIST(summersetmode, F("summersetmode"), F("set summer mode"))
|
||||||
|
MAKE_PSTR_LIST(hpsummersetmode, F("hpsummersetmode"), F("heatpump summer mode"))
|
||||||
MAKE_PSTR_LIST(controlmode, F("controlmode"), F("control mode"))
|
MAKE_PSTR_LIST(controlmode, F("controlmode"), F("control mode"))
|
||||||
MAKE_PSTR_LIST(control, F("control"), F("control device"))
|
MAKE_PSTR_LIST(control, F("control"), F("control device"))
|
||||||
MAKE_PSTR_LIST(holidays, F("holidays"), F("holiday dates"))
|
MAKE_PSTR_LIST(holidays, F("holidays"), F("holiday dates"))
|
||||||
|
|||||||
Reference in New Issue
Block a user