From 710fd1bc79527ebfdd49925cbc939ef69068994d Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 12 Oct 2023 09:15:42 +0200 Subject: [PATCH] add control setting for RC300 --- src/devices/thermostat.cpp | 8 ++++++++ src/locale_common.h | 6 ++++++ src/version.h | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp index 805bbc91c..b5767d273 100644 --- a/src/devices/thermostat.cpp +++ b/src/devices/thermostat.cpp @@ -1144,6 +1144,7 @@ void Thermostat::process_RC300OutdoorTemp(std::shared_ptr telegr } // 0x240 RC300 parameter +// RC300Settings(0x240), data: 26 00 03 00 00 00 00 00 FF 01 F6 06 FF 00 00 00 00 00 00 00 00 00 00 void Thermostat::process_RC300Settings(std::shared_ptr telegram) { has_update(telegram, ibaCalIntTemperature_, 7); has_update(telegram, ibaDamping_, 8); @@ -1176,6 +1177,7 @@ void Thermostat::process_HPMode(std::shared_ptr telegram) { if (hc == nullptr) { return; } + has_update(telegram, hc->control, 3); has_update(telegram, hc->hpmode, 5); } @@ -1873,6 +1875,11 @@ bool Thermostat::set_control(const char * value, const int8_t id) { write_command(set_typeids[hc->hc()], 1, ctrl); return true; } + } else if (model() == EMS_DEVICE_FLAG_RC300 || model() == EMS_DEVICE_FLAG_RC100) { + if (Helpers::value2enum(value, ctrl, FL_(enum_control1))) { + write_command(hpmode_typeids[hc->hc()], 3, ctrl); + return true; + } } else if (Helpers::value2enum(value, ctrl, FL_(enum_control))) { write_command(set_typeids[hc->hc()], EMS_OFFSET_RC35Set_control, ctrl); return true; @@ -4243,6 +4250,7 @@ void Thermostat::register_device_values_hc(std::shared_ptrdewoffset, DeviceValueType::UINT, FL_(dewoffset), DeviceValueUOM::K, MAKE_CF_CB(set_dewoffset), 2, 10); register_device_value(tag, &hc->roomtempdiff, DeviceValueType::UINT, FL_(roomtempdiff), DeviceValueUOM::K, MAKE_CF_CB(set_roomtempdiff)); register_device_value(tag, &hc->hpminflowtemp, DeviceValueType::UINT, FL_(hpminflowtemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_hpminflowtemp)); + register_device_value(tag, &hc->control, DeviceValueType::ENUM, FL_(enum_control1), FL_(control), DeviceValueUOM::NONE, MAKE_CF_CB(set_control)); register_device_value(tag, &hc->remotetemp, DeviceValueType::SHORT, diff --git a/src/locale_common.h b/src/locale_common.h index 3eb878b5e..b6c966990 100644 --- a/src/locale_common.h +++ b/src/locale_common.h @@ -167,6 +167,11 @@ MAKE_NOTRANSLATION(rc3x, "RC3x") MAKE_NOTRANSLATION(rc20, "RC20") MAKE_NOTRANSLATION(fb10, "FB10") MAKE_NOTRANSLATION(fb100, "FB100") +MAKE_NOTRANSLATION(rc310, "RC310") +MAKE_NOTRANSLATION(rc200, "RC200") +MAKE_NOTRANSLATION(rc100, "RC100") +MAKE_NOTRANSLATION(rc100h, "RC100H") +MAKE_NOTRANSLATION(tc100, "TC100") MAKE_NOTRANSLATION(dash, "-") MAKE_NOTRANSLATION(BLANK, "") MAKE_NOTRANSLATION(pwm, "pwm") @@ -319,6 +324,7 @@ MAKE_ENUM(enum_controlmode2, FL_(outdoor), FL_(room)) MAKE_ENUM(enum_control, FL_(off), FL_(rc20), FL_(rc3x)) MAKE_ENUM(enum_j_control, FL_(off), FL_(fb10), FL_(fb100)) MAKE_ENUM(enum_roomsensor, FL_(extern), FL_(intern), FL_(auto)) +MAKE_ENUM(enum_control1, FL_(rc310), FL_(rc200), FL_(rc100), FL_(rc100h), FL_(tc100)) MAKE_ENUM(enum_switchmode, FL_(off), FL_(eco), FL_(comfort), FL_(heat)) diff --git a/src/version.h b/src/version.h index c0c6afcee..bd65306ed 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.6.3-dev.2d" +#define EMSESP_APP_VERSION "3.6.3-dev.2e"