From efa5eb273c63030b6f36a5db4100d1f6b2274bb6 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Sat, 25 Jun 2022 09:43:26 +0200 Subject: [PATCH] show summermode or operatingmode, fix #550 --- src/devices/thermostat.cpp | 47 ++++++++++++++++++++++++++------------ src/devices/thermostat.h | 2 ++ src/locale_DE.h | 28 ++++++++++++++++++----- src/locale_EN.h | 10 +++++--- 4 files changed, 63 insertions(+), 24 deletions(-) diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp index d23df31e9..8bcdabbf9 100644 --- a/src/devices/thermostat.cpp +++ b/src/devices/thermostat.cpp @@ -933,7 +933,16 @@ void Thermostat::process_RC300Monitor(std::shared_ptr telegram) // pos 6 actual setpoint according to programmed changes eco/comfort // pos 7 next setpoint in the future, time to next setpoint in pos 8/9 has_update(telegram, hc->selTemp, 3, 1); // is * 2, force as single byte - has_bitupdate(telegram, hc->summermode, 2, 4); + // has_bitupdate(telegram, hc->summermode, 2, 4); + // summermode is bit 4 for boilers and bit 6 for heatpumps: 0:winter, 1:summer + telegram->read_value(hc->statusbyte, 2); + if (hc->statusbyte & 1) { + has_update(hc->summermode, hc->statusbyte & 0x50 ? 1 : 0); + has_update(hc->hpoperatingstate, EMS_VALUE_UINT_NOTSET); + } else { + has_enumupdate(telegram, hc->hpoperatingstate, 20, 1); // 1:heating, 2:off, 3:cooling + has_update(hc->summermode, EMS_VALUE_UINT_NOTSET); + } has_update(telegram, hc->targetflowtemp, 4); has_update(telegram, hc->curroominfl, 27); @@ -980,6 +989,7 @@ void Thermostat::process_RC300Set(std::shared_ptr telegram) { } // types 0x2AF ff +// RC300Summer(0x02AF), data: 00 28 00 00 3C 26 00 00 19 0F 00 (from a heatpump) void Thermostat::process_RC300Summer(std::shared_ptr telegram) { std::shared_ptr hc = heating_circuit(telegram); if (hc == nullptr) { @@ -1011,11 +1021,18 @@ void Thermostat::process_RC300Summer2(std::shared_ptr telegram) if (hc == nullptr) { return; } - has_update(telegram, hc->hpoperatingmode, 0); + if (hc->statusbyte & 1) { + has_update(telegram, hc->summermode, 0); + has_update(hc->hpoperatingmode, EMS_VALUE_UINT_NOTSET); + } else { + has_update(telegram, hc->hpoperatingmode, 0); + has_update(hc->summermode, EMS_VALUE_UINT_NOTSET); + } has_update(telegram, hc->summertemp, 1); } // types 0x29B ff +// Thermostat(0x10) -> Me(0x0B), RC300Curves(0x29B), data: 01 01 00 FF FF 01 05 30 52 void Thermostat::process_RC300Curve(std::shared_ptr telegram) { std::shared_ptr hc = heating_circuit(telegram); if (hc == nullptr) { @@ -2045,7 +2062,7 @@ bool Thermostat::set_wwCircProg(const char * value, const int8_t id) { return true; } -// set the holiday as string dd.mm.yyyy-dd.mm.yyyy +// set the holiday or vacations as string dd.mm.yyyy-dd.mm.yyyy bool Thermostat::set_holiday(const char * value, const int8_t id, const bool vacation) { uint8_t hc_num = (id == -1) ? AUTO_HEATING_CIRCUIT : id; std::shared_ptr hc = heating_circuit(hc_num); @@ -2503,7 +2520,7 @@ bool Thermostat::set_nofrostmode(const char * value, const int8_t id) { return false; } uint8_t set = 0xFF; - if (model() == EMS_DEVICE_FLAG_RC300) { + if (model() == EMS_DEVICE_FLAG_RC300 || model() == EMS_DEVICE_FLAG_RC100) { if (Helpers::value2enum(value, set, FL_(enum_nofrostmode1))) { write_command(curve_typeids[hc->hc()], 5, set + 1, curve_typeids[hc->hc()]); return true; @@ -2514,7 +2531,7 @@ bool Thermostat::set_nofrostmode(const char * value, const int8_t id) { return true; } } - return true; + return false; } // sets the thermostat heatingtype for RC35, RC300 @@ -2788,14 +2805,17 @@ bool Thermostat::set_program(const char * value, const int8_t id) { if ((model() == EMS_DEVICE_FLAG_RC20_N) || (model() == EMS_DEVICE_FLAG_RC25)) { if (Helpers::value2enum(value, set, FL_(enum_progMode3))) { write_command(set_typeids[hc->hc()], 11, set + 1, set_typeids[hc->hc()]); + return true; } } else if (model() == EMS_DEVICE_FLAG_RC35 || model() == EMS_DEVICE_FLAG_RC30_N || model() == EMS_DEVICE_FLAG_RC30) { if (Helpers::value2enum(value, set, FL_(enum_progMode2))) { write_command(timer_typeids[hc->hc()], 84, set, timer_typeids[hc->hc()]); + return true; } } else if (model() == EMS_DEVICE_FLAG_RC300 || model() == EMS_DEVICE_FLAG_RC100) { if (Helpers::value2enum(value, set, FL_(enum_progMode))) { write_command(set_typeids[hc->hc()], 11, set + 1, set_typeids[hc->hc()]); + return true; } } else if (model() == EMS_DEVICE_FLAG_JUNKERS) { if (Helpers::value2enum(value, set, FL_(enum_progMode4))) { @@ -2804,14 +2824,10 @@ bool Thermostat::set_program(const char * value, const int8_t id) { } else { write_command(set_typeids[hc->hc()], 13, set + 1, set_typeids[hc->hc()]); } + return true; } } - - if (set == 0xFF) { - return false; - } - - return true; + return false; } // Set the temperature of the thermostat @@ -3946,7 +3962,7 @@ void Thermostat::register_device_values_hc(std::shared_ptrnighttemp, DeviceValueType::UINT, FL_(div2), FL_(ecotemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_ecotemp)); register_device_value(tag, &hc->manualtemp, DeviceValueType::UINT, FL_(div2), FL_(manualtemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_manualtemp)); register_device_value(tag, &hc->daytemp, DeviceValueType::UINT, FL_(div2), FL_(comforttemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_comforttemp)); - register_device_value(tag, &hc->summertemp, DeviceValueType::UINT, nullptr, FL_(summertemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_summertemp)); + register_device_value(tag, &hc->summertemp, DeviceValueType::UINT, nullptr, FL_(summertemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_summertemp), 10, 30); register_device_value(tag, &hc->designtemp, DeviceValueType::UINT, nullptr, FL_(designtemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_designtemp)); register_device_value(tag, &hc->offsettemp, DeviceValueType::INT, nullptr, FL_(offsettemp), DeviceValueUOM::DEGREES_R, MAKE_CF_CB(set_offsettemp)); register_device_value(tag, &hc->minflowtemp, DeviceValueType::UINT, nullptr, FL_(minflowtemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_minflowtemp)); @@ -3971,6 +3987,7 @@ void Thermostat::register_device_values_hc(std::shared_ptrsummermode, DeviceValueType::ENUM, FL_(enum_summer), FL_(summermode), DeviceValueUOM::NONE); + register_device_value(tag, &hc->hpoperatingstate, DeviceValueType::ENUM, FL_(enum_operatingstate), FL_(hpoperatingstate), DeviceValueUOM::NONE); register_device_value( tag, &hc->controlmode, DeviceValueType::ENUM, FL_(enum_controlmode1), FL_(controlmode), DeviceValueUOM::NONE, MAKE_CF_CB(set_controlmode)); register_device_value(tag, &hc->program, DeviceValueType::ENUM, FL_(enum_progMode), FL_(program), DeviceValueUOM::NONE, MAKE_CF_CB(set_program)); @@ -4015,7 +4032,7 @@ void Thermostat::register_device_values_hc(std::shared_ptrtempautotemp, DeviceValueType::UINT, FL_(div2), FL_(tempautotemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_tempautotemp)); register_device_value( tag, &hc->heatingtype, DeviceValueType::ENUM, FL_(enum_heatingtype), FL_(heatingtype), DeviceValueUOM::NONE, MAKE_CF_CB(set_heatingtype)); - register_device_value(tag, &hc->summertemp, DeviceValueType::UINT, nullptr, FL_(summertemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_summertemp)); + register_device_value(tag, &hc->summertemp, DeviceValueType::UINT, nullptr, FL_(summertemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_summertemp), 10, 30); register_device_value(tag, &hc->summermode, DeviceValueType::ENUM, FL_(enum_summer), FL_(summermode), DeviceValueUOM::NONE); register_device_value(tag, &hc->remotetemp, DeviceValueType::SHORT, FL_(div10), FL_(remotetemp), DeviceValueUOM::DEGREES); break; @@ -4030,7 +4047,7 @@ void Thermostat::register_device_values_hc(std::shared_ptrtempautotemp, DeviceValueType::UINT, FL_(div2), FL_(tempautotemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_tempautotemp)); register_device_value( tag, &hc->heatingtype, DeviceValueType::ENUM, FL_(enum_heatingtype), FL_(heatingtype), DeviceValueUOM::NONE, MAKE_CF_CB(set_heatingtype)); - register_device_value(tag, &hc->summertemp, DeviceValueType::UINT, nullptr, FL_(summertemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_summertemp)); + register_device_value(tag, &hc->summertemp, DeviceValueType::UINT, nullptr, FL_(summertemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_summertemp), 9, 25); register_device_value(tag, &hc->summermode, DeviceValueType::ENUM, FL_(enum_summer), FL_(summermode), DeviceValueUOM::NONE); break; case EMS_DEVICE_FLAG_RC30: @@ -4062,7 +4079,7 @@ void Thermostat::register_device_values_hc(std::shared_ptroffsettemp, DeviceValueType::INT, FL_(div2), FL_(offsettemp), DeviceValueUOM::DEGREES_R, MAKE_CF_CB(set_offsettemp)); register_device_value(tag, &hc->holidaytemp, DeviceValueType::UINT, FL_(div2), FL_(holidaytemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_holidaytemp)); register_device_value(tag, &hc->targetflowtemp, DeviceValueType::UINT, nullptr, FL_(targetflowtemp), DeviceValueUOM::DEGREES); - register_device_value(tag, &hc->summertemp, DeviceValueType::UINT, nullptr, FL_(summertemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_summertemp)); + register_device_value(tag, &hc->summertemp, DeviceValueType::UINT, nullptr, FL_(summertemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_summertemp), 9, 25); register_device_value(tag, &hc->summermode, DeviceValueType::ENUM, FL_(enum_summer), FL_(summermode), DeviceValueUOM::NONE); register_device_value(tag, &hc->holidaymode, DeviceValueType::BOOL, nullptr, FL_(holidaymode), DeviceValueUOM::NONE); register_device_value(tag, &hc->nofrosttemp, DeviceValueType::INT, nullptr, FL_(nofrosttemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_nofrosttemp)); diff --git a/src/devices/thermostat.h b/src/devices/thermostat.h index bf4d694f6..89ed3b956 100644 --- a/src/devices/thermostat.h +++ b/src/devices/thermostat.h @@ -56,6 +56,7 @@ class Thermostat : public EMSdevice { uint8_t manualtemp; uint8_t summersetmode; uint8_t hpoperatingmode; + uint8_t hpoperatingstate; uint8_t roominfluence; uint8_t roominfl_factor; int16_t curroominfl; @@ -81,6 +82,7 @@ class Thermostat : public EMSdevice { char switchtime2[16]; uint8_t climate; uint8_t switchonoptimization; + uint8_t statusbyte; // from RC300monitor // RC 10 uint8_t reducehours; // night reduce duration diff --git a/src/locale_DE.h b/src/locale_DE.h index 8249ad710..0899d40c4 100644 --- a/src/locale_DE.h +++ b/src/locale_DE.h @@ -259,6 +259,7 @@ MAKE_PSTR_(continuos, "kontinuierlich") MAKE_PSTR(3wayvalve, "3-Wege Ventil") MAKE_PSTR(chargepump, "Ladepumpe") MAKE_PSTR(hot, "Heiss") +MAKE_PSTR(high_comfort, "Heiss Komfort") MAKE_PSTR(eco, "Eco") MAKE_PSTR(intelligent, "Intelligent") MAKE_PSTR_(flow, "Fluss") @@ -267,6 +268,8 @@ MAKE_PSTR_(buffer, "Speicher") MAKE_PSTR(bufferedflow, "Durchlaufspeicher") MAKE_PSTR(layeredbuffer, "Schichtspeicher") MAKE_PSTR(maintenance, "Wartung") +MAKE_PSTR(heating, "Heizen") +MAKE_PSTR(cooling, "Kühlen") // boiler lists MAKE_PSTR_LIST(tpl_date, F("Format: < dd.mm.yyyy >")) // template for text input @@ -274,6 +277,7 @@ MAKE_PSTR_LIST(enum_off_time_date_manual, F_(off), F_(time), F_(date), F_(manual MAKE_PSTR_LIST(enum_freq, F_(off), F_(1x3min), F_(2x3min), F_(3x3min), F_(4x3min), F_(5x3min), F_(6x3min), F_(continuous)) MAKE_PSTR_LIST(enum_charge, F_(chargepump), F_(3wayvalve)) MAKE_PSTR_LIST(enum_comfort, F_(hot), F_(eco), F_(intelligent)) +MAKE_PSTR_LIST(enum_comfort1, F_(high_comfort), F_(eco)) MAKE_PSTR_LIST(enum_flow, F_(off), F_(flow), F_(bufferedflow), F_(buffer), F_(layeredbuffer)) MAKE_PSTR_LIST(enum_reset, F("-"), F_(maintenance), F_(error)) // MAKE_PSTR_LIST(enum_bool, F_(off), F_(on)) @@ -308,6 +312,7 @@ MAKE_PSTR(winter, "Winter") MAKE_PSTR(outdoor, "Aussentemperatur") MAKE_PSTR_WORD(mpc) MAKE_PSTR(room, "Raum") +MAKE_PSTR(room_outdoor, "Raum+Außen") MAKE_PSTR(power, "Leistung") MAKE_PSTR(constant, "konstant") MAKE_PSTR(simple, "einfach") @@ -363,6 +368,7 @@ 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_hpoperatingmode, F_(off), F_(auto), F("heizen"), F("kühlen")) MAKE_PSTR_LIST(enum_summer, F_(winter), F_(summer)) +MAKE_PSTR_LIST(enum_operatingstate, F_(heating), F_(off), F_(cooling)) MAKE_PSTR_LIST(enum_mode, F_(manual), F_(auto)) // RC100, RC300, RC310 MAKE_PSTR_LIST(enum_mode2, F_(off), F_(manual), F_(auto)) // RC20 @@ -378,9 +384,12 @@ MAKE_PSTR_LIST(enum_modetype4, F_(nofrost), F_(eco), F_(heat)) MAKE_PSTR_LIST(enum_modetype5, F_(off), F_(on)) MAKE_PSTR_LIST(enum_reducemode, F_(nofrost), F_(reduce), F_(room), F_(outdoor)) +MAKE_PSTR_LIST(enum_reducemode1, F_(outdoor), F_(room), F_(reduce)) // RC310 values: 1-3 MAKE_PSTR_LIST(enum_nofrostmode, F_(off), F_(room), F_(outdoor)) +MAKE_PSTR_LIST(enum_nofrostmode1, F_(room), F_(outdoor), F_(room_outdoor)) MAKE_PSTR_LIST(enum_controlmode, F_(off), F_(optimized), F_(simple), F_(mpc), F_(room), F_(power), F_(constant)) +MAKE_PSTR_LIST(enum_controlmode1, F("weather-compensated"), F("outside-basepoint"), F("n/a"), F_(room)) // RC310 1-4 MAKE_PSTR_LIST(enum_controlmode2, F_(outdoor), F_(room)) // MAKE_PSTR_LIST(enum_controlmode3, F_(off), F_(room), F_(outdoor), F("room+outdoor")) MAKE_PSTR_LIST(enum_control, F_(off), F_(rc20), F_(rc3x)) @@ -471,6 +480,8 @@ MAKE_PSTR_LIST(maintenanceMessage, F("maintenancemessage"), F("Wartungsmeldung") MAKE_PSTR_LIST(maintenanceDate, F("maintenancedate"), F("Wartungsdatum")) MAKE_PSTR_LIST(maintenanceType, F_(maintenance), F("Wartungsplan")) MAKE_PSTR_LIST(maintenanceTime, F("maintenancetime"), F("Wartung in")) +MAKE_PSTR_LIST(emergencyOps, F("emergencyops"), F("emergency operation")) +MAKE_PSTR_LIST(emergencyTemp, F("emergencytemp"), F("emergency temperature")) // heatpump/compress specific MAKE_PSTR_LIST(upTimeControl, F("uptimecontrol"), F("Betriebszeit total heizen")) @@ -562,7 +573,9 @@ MAKE_PSTR_LIST(wWCharging, F("wwcharging"), F("Laden")) MAKE_PSTR_LIST(wWRecharging, F("wwrecharging"), F("Nachladen")) MAKE_PSTR_LIST(wWTempOK, F("wwtempok"), F("Temperatur ok")) MAKE_PSTR_LIST(wWActive, F("wwactive"), F("aktiv")) -MAKE_PSTR_LIST(ww3wayValve, F("ww3wayvalve"), F("3way valve active")) +MAKE_PSTR_LIST(wwTempOK, F("wwtempok"), F("Temperatur ok")) +MAKE_PSTR_LIST(wwActive, F("wwactive"), F("aktiv")) +MAKE_PSTR_LIST(ww3wayValve, F("ww3wayvalve"), F("3-Wegeventil aktiv")) MAKE_PSTR_LIST(wWSetPumpPower, F("wwsetpumppower"), F("Soll Pumpenleistung")) MAKE_PSTR_LIST(mixerTemp, F("mixertemp"), F("Mischertemperatur")) MAKE_PSTR_LIST(wwCylMiddleTemp, F("wwcylmiddletemp"), F("cylinder middle temperature (TS3)")) @@ -577,11 +590,11 @@ MAKE_PSTR_LIST(wwMaxTemp, F("wwmaxtemp"), F("Maximale Temperatur")) MAKE_PSTR_LIST(wwOneTimeKey, F("wwonetimekey"), F("Einmalladungstaste")) // mqtt values / commands -MAKE_PSTR_LIST(switchtime, F("switchtime"), F("program switchtime")) -MAKE_PSTR_LIST(switchtime1, F("switchtime1"), F("own1 program switchtime")) -MAKE_PSTR_LIST(switchtime2, F("switchtime2"), F("own2 program switchtime")) -MAKE_PSTR_LIST(wwswitchtime, F("wwswitchtime"), F("program switchtime")) -MAKE_PSTR_LIST(wwcircswitchtime, F("wwcircswitchtime"), F("circulation program switchtime")) +MAKE_PSTR_LIST(switchtime, F("switchtime"), F("Program Schaltzeit")) +MAKE_PSTR_LIST(switchtime1, F("switchtime1"), F("Program 1 Schaltzeit")) +MAKE_PSTR_LIST(switchtime2, F("switchtime2"), F("Programm 2 Schaltzeit")) +MAKE_PSTR_LIST(wwswitchtime, F("wwswitchtime"), F("Programm Schaltzeit")) +MAKE_PSTR_LIST(wwcircswitchtime, F("wwcircswitchtime"), F("Zirculationsprogramm Schaltzeit")) MAKE_PSTR_LIST(dateTime, F("datetime"), F("Datum/Zeit")) MAKE_PSTR_LIST(errorCode, F("errorcode"), F("Fehlermeldung")) MAKE_PSTR_LIST(ibaMainDisplay, F("display"), F("Anzeige")) @@ -648,6 +661,7 @@ MAKE_PSTR_LIST(targetflowtemp, F("targetflowtemp"), F("berechnete Flusstemperatu MAKE_PSTR_LIST(heatingtype, F("heatingtype"), F("Heizungstyp")) MAKE_PSTR_LIST(summersetmode, F("summersetmode"), F("Einstellung Sommerbetrieb")) MAKE_PSTR_LIST(hpoperatingmode, F("hpoperatingmode"), F("Wärmepumpe Betriebsmodus")) +MAKE_PSTR_LIST(hpoperatingstate, F("hpoperatingstate"), F("heatpump operating state")) MAKE_PSTR_LIST(controlmode, F("controlmode"), F("Kontrollmodus")) MAKE_PSTR_LIST(control, F("control"), F("Fernsteuerung")) MAKE_PSTR_LIST(wwHolidays, F("wwholidays"), F("holiday dates")) @@ -668,9 +682,11 @@ MAKE_PSTR_LIST(reducetemp, F("reducetemp"), F("Absenkmodus unter Temperatur")) MAKE_PSTR_LIST(vacreducetemp, F("vacreducetemp"), F("Urlaub Absenkmodus unter Temperatur")) MAKE_PSTR_LIST(vacreducemode, F("vacreducemode"), F("Urlaub Absenkmodus")) MAKE_PSTR_LIST(nofrostmode, F("nofrostmode"), F("Frostschutz Modus")) +MAKE_PSTR_LIST(nofrostmode1, F("nofrostmode1"), F("nofrost mode")) // RC310 MAKE_PSTR_LIST(remotetemp, F("remotetemp"), F("Raumtemperatur der Fernsteuerung")) MAKE_PSTR_LIST(reducehours, F("reducehours"), F("duration for nighttemp")) MAKE_PSTR_LIST(reduceminutes, F("reduceminutes"), F("remaining time for nightmode")) +MAKE_PSTR_LIST(switchonoptimization, F("switchonoptimization"), F("switch-on optimization")) // heatpump MAKE_PSTR_LIST(airHumidity, F("airhumidity"), F("relative Luftfeuchte")) diff --git a/src/locale_EN.h b/src/locale_EN.h index e9242ec0d..9cfaf980d 100644 --- a/src/locale_EN.h +++ b/src/locale_EN.h @@ -269,6 +269,8 @@ MAKE_PSTR_WORD(buffer) MAKE_PSTR(bufferedflow, "buffered flow") MAKE_PSTR(layeredbuffer, "layered buffer") MAKE_PSTR_WORD(maintenance) +MAKE_PSTR_WORD(heating) +MAKE_PSTR_WORD(cooling) // boiler lists MAKE_PSTR_LIST(tpl_date, F("Format: < dd.mm.yyyy >")) // template for text input @@ -282,7 +284,7 @@ MAKE_PSTR_LIST(enum_reset, F("-"), F_(maintenance), F_(error)) // MAKE_PSTR_LIST(enum_bool, F_(off), F_(on)) //heatpump -MAKE_PSTR_LIST(enum_hpactivity, F("none"), F("heating"), F("cooling"), F("hot water"), F("pool")) +MAKE_PSTR_LIST(enum_hpactivity, F("none"), F_(heating), F_(cooling), F("hot_water"), F("pool")) // mixer MAKE_PSTR_LIST(enum_shunt, F("stopped"), F("opening"), F("closing"), F("open"), F("close")) @@ -340,7 +342,7 @@ MAKE_PSTR(functioning_mode, "functioning mode") MAKE_PSTR(smoke_temperature, "smoke temperature") // thermostat lists -MAKE_PSTR_LIST(tpl_datetime, F("Format: < NTP | dd.mm.yyyy-hh:mm:ss-dw-dst >")) +MAKE_PSTR_LIST(tpl_datetime, F("Format: < NTP | dd.mm.yyyy-hh:mm:ss-day(0-6)-dst(0/1) >")) MAKE_PSTR_LIST(tpl_switchtime, F("Format: [ not_set | day hh:mm on|off ]")) MAKE_PSTR_LIST(tpl_switchtime1, F("Format: [ not_set | day hh:mm Tn ]")) MAKE_PSTR_LIST(tpl_holidays, F("format: < dd.mm.yyyy-dd.mm.yyyy >")) @@ -365,8 +367,9 @@ 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_heatingtype, F_(off), F_(radiator), F_(convector), F_(floor)) MAKE_PSTR_LIST(enum_summermode, F_(summer), F_(auto), F_(winter)) -MAKE_PSTR_LIST(enum_hpoperatingmode, F_(off), F_(auto), F("heating"), F("cooling")) +MAKE_PSTR_LIST(enum_hpoperatingmode, F_(off), F_(auto), F_(heating), F_(cooling)) MAKE_PSTR_LIST(enum_summer, F_(winter), F_(summer)) +MAKE_PSTR_LIST(enum_operatingstate, F_(heating), F_(off), F_(cooling)) MAKE_PSTR_LIST(enum_mode, F_(manual), F_(auto)) // RC100, RC300, RC310 MAKE_PSTR_LIST(enum_mode2, F_(off), F_(manual), F_(auto)) // RC20 @@ -648,6 +651,7 @@ MAKE_PSTR_LIST(targetflowtemp, F("targetflowtemp"), F("target flow temperature") MAKE_PSTR_LIST(heatingtype, F("heatingtype"), F("heating type")) MAKE_PSTR_LIST(summersetmode, F("summersetmode"), F("set summer mode")) MAKE_PSTR_LIST(hpoperatingmode, F("hpoperatingmode"), F("heatpump operating mode")) +MAKE_PSTR_LIST(hpoperatingstate, F("hpoperatingstate"), F("heatpump operating state")) MAKE_PSTR_LIST(controlmode, F("controlmode"), F("control mode")) MAKE_PSTR_LIST(control, F("control"), F("control device")) MAKE_PSTR_LIST(wwHolidays, F("wwholidays"), F("holiday dates"))