From c61c34f10ebf31466015f07c03b845f8f5220081 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 23 Nov 2023 17:24:40 +0100 Subject: [PATCH] HIU heating/tapwater-active, always use `EMSdevice::` for flags --- src/devices/boiler.cpp | 21 +++- src/devices/thermostat.cpp | 218 ++++++++++++++++++------------------- 2 files changed, 125 insertions(+), 114 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index 2063bf7d9..b0b500dca 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -179,7 +179,7 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const DeviceValueUOM::DEGREES); // exclude burner related entities from heatpump and HIU - if (model() != EMS_DEVICE_FLAG_HEATPUMP && model() != EMS_DEVICE_FLAG_HIU) { + if (model() != EMSdevice::EMS_DEVICE_FLAG_HEATPUMP && model() != EMSdevice::EMS_DEVICE_FLAG_HIU) { register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &exhaustTemp_, DeviceValueType::USHORT, @@ -367,7 +367,7 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const */ // heatpump info - if (model() == EMS_DEVICE_FLAG_HEATPUMP) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_HEATPUMP) { register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &nrgTotal_, DeviceValueType::ULONG, @@ -945,7 +945,7 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const EMSESP::send_read_request(0xC2, device_id); // read last errorcode on start (only published on errors) - if (model() != EMS_DEVICE_FLAG_HEATPUMP && model() != EMS_DEVICE_FLAG_HIU) { + if (model() != EMSdevice::EMS_DEVICE_FLAG_HEATPUMP && model() != EMSdevice::EMS_DEVICE_FLAG_HIU) { register_telegram_type(0x04, "UBAFactory", true, MAKE_PF_CB(process_UBAFactory)); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &nomPower_, DeviceValueType::UINT, FL_(nomPower), DeviceValueUOM::KW, MAKE_CF_CB(set_nomPower)); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, @@ -1066,7 +1066,7 @@ void Boiler::check_active() { } // calculate energy for boiler 0x08 from stored modulation an time in units of 0.01 Wh - if (model() != EMS_DEVICE_FLAG_HEATPUMP) { + if (model() != EMSdevice::EMS_DEVICE_FLAG_HEATPUMP && model() != EMSdevice::EMS_DEVICE_FLAG_HIU) { // remember values from last call static uint32_t powLastReadTime_ = uuid::get_uptime(); static uint8_t heatBurnPow = 0; @@ -1309,7 +1309,7 @@ void Boiler::process_UBAMonitorFastPlus(std::shared_ptr telegram // at this point do a quick check to see if the hot water or heating is active uint8_t state = EMS_VALUE_UINT_NOTSET; - if (telegram->read_value(state, 11)) { + if (telegram->read_value(state, 11) && model() != EMSdevice::EMS_DEVICE_FLAG_HIU) { boilerState_ = state & 0x01 ? 0x08 : 0; boilerState_ |= state & 0x02 ? 0x01 : 0; boilerState_ |= state & 0x04 ? 0x02 : 0; @@ -1348,6 +1348,17 @@ void Boiler::process_UBAMonitorSlow(std::shared_ptr telegram) { */ void Boiler::process_UBAMonitorSlowPlus2(std::shared_ptr telegram) { has_update(telegram, absBurnPow_, 13); // current burner absolute power (percent of rating plate power) + if (model() == EMSdevice::EMS_DEVICE_FLAG_HIU) { + uint8_t state = EMS_VALUE_UINT_NOTSET; + boilerState_ = 0; + if (telegram->read_value(state, 2)) { + boilerState_ |= state == 1 ? 0x09 : 0; // heating 0/1 + } + state = EMS_VALUE_UINT_NOTSET; + if (telegram->read_value(state, 5)) { + boilerState_ |= state == 1 ? 0x0A : 0; // dhw 0/1 + } + } } /* diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp index 5f96cacd1..6ea436794 100644 --- a/src/devices/thermostat.cpp +++ b/src/devices/thermostat.cpp @@ -180,7 +180,7 @@ Thermostat::Thermostat(uint8_t device_type, uint8_t device_id, uint8_t product_i register_telegram_type(monitor_typeids[i], "JunkersMonitor", false, MAKE_PF_CB(process_JunkersMonitor)); } - if (has_flags(EMS_DEVICE_FLAG_JUNKERS_OLD)) { + if (has_flags(EMSdevice::EMS_DEVICE_FLAG_JUNKERS_OLD)) { // FR120, FR100 set_typeids = {0x0179, 0x017A, 0x017B, 0x017C}; for (uint8_t i = 0; i < monitor_typeids.size(); i++) { @@ -517,7 +517,7 @@ uint8_t Thermostat::HeatingCircuit::get_mode() const { uint8_t Thermostat::HeatingCircuit::get_mode_type() const { uint8_t model = get_model(); - if (model == EMS_DEVICE_FLAG_JUNKERS) { + if (model == EMSdevice::EMS_DEVICE_FLAG_JUNKERS) { if (modetype == 2) { return HeatingCircuit::Mode::HEAT; } else if (modetype == 1) { @@ -525,25 +525,25 @@ uint8_t Thermostat::HeatingCircuit::get_mode_type() const { } else if (modetype == 0) { return HeatingCircuit::Mode::NOFROST; } - } else if ((model == EMS_DEVICE_FLAG_RC35) || (model == EMS_DEVICE_FLAG_RC30_N)) { + } else if ((model == EMSdevice::EMS_DEVICE_FLAG_RC35) || (model == EMSdevice::EMS_DEVICE_FLAG_RC30_N)) { if (modetype == 0) { return HeatingCircuit::Mode::NIGHT; } else if (modetype == 1) { return HeatingCircuit::Mode::DAY; } - } else if (model == EMS_DEVICE_FLAG_CRF) { + } else if (model == EMSdevice::EMS_DEVICE_FLAG_CRF) { if (modetype == 0) { return HeatingCircuit::Mode::OFF; } else if (modetype == 1) { return HeatingCircuit::Mode::ON; } - } else if ((model == EMS_DEVICE_FLAG_BC400) || (model == EMS_DEVICE_FLAG_RC300)) { + } else if ((model == EMSdevice::EMS_DEVICE_FLAG_BC400) || (model == EMSdevice::EMS_DEVICE_FLAG_RC300)) { if (modetype == 0) { return HeatingCircuit::Mode::ECO; } else if (modetype == 1) { return HeatingCircuit::Mode::COMFORT; } - } else if (model == EMS_DEVICE_FLAG_RC100) { + } else if (model == EMSdevice::EMS_DEVICE_FLAG_RC100) { return HeatingCircuit::Mode::DAY; // no other modes on these devices } @@ -1146,7 +1146,7 @@ void Thermostat::process_RC300WWmode(std::shared_ptr telegram) { // circulation pump see: https://github.com/Th3M3/buderus_ems-wiki/blob/master/Einstellungen%20der%20Bedieneinheit%20RC310.md has_update(telegram, wwCircPump_, 1); // FF=off, 0=on ? - if (model() == EMS_DEVICE_FLAG_BC400) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400) { const uint8_t modes[] = {0, 5, 1, 2, 4}; // off, eco+, eco, comfort, auto uint8_t wwmode = wwMode_ < sizeof(modes) ? modes[wwMode_] : EMS_VALUE_UINT_NOTSET; telegram->read_value(wwmode, 2); @@ -1355,7 +1355,7 @@ void Thermostat::process_RC35Set(std::shared_ptr telegram) { has_update(telegram, hc->minflowtemp, 16); // RC35 stores values for floorheating in different position - if (hc->heatingtype == 3 && model() == EMS_DEVICE_FLAG_RC35) { + if (hc->heatingtype == 3 && model() == EMSdevice::EMS_DEVICE_FLAG_RC35) { has_update(telegram, hc->designtemp, 36); // is * 1 has_update(telegram, hc->maxflowtemp, 35); // is * 1 } else { // radiator/convector @@ -1378,14 +1378,14 @@ void Thermostat::process_RC35Timer(std::shared_ptr telegram) { char data[sizeof(hc->switchtime1)]; uint8_t no = telegram->offset / 2; uint8_t day = telegram->message_data[0] >> 5; - uint8_t on = model() == EMS_DEVICE_FLAG_RC30 ? telegram->message_data[0] & 7 : telegram->message_data[0] & 1; + uint8_t on = model() == EMSdevice::EMS_DEVICE_FLAG_RC30 ? telegram->message_data[0] & 7 : telegram->message_data[0] & 1; uint8_t time = telegram->message_data[1]; // we use EN settings for the day abbreviation auto sday = (FL_(enum_dayOfWeek)[day][0]); if (day == 7) { snprintf(data, sizeof(data), "%02d not_set", no); - } else if (model() == EMS_DEVICE_FLAG_RC30) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { snprintf(data, sizeof(data), "%02d %s %02d:%02d T%d", no, sday, time / 6, 10 * (time % 6), on); } else { snprintf(data, sizeof(data), "%02d %s %02d:%02d %s", no, sday, time / 6, 10 * (time % 6), on ? "on" : "off"); @@ -1441,7 +1441,7 @@ void Thermostat::process_RCTime(std::shared_ptr telegram) { return; } - if (flags() == EMS_DEVICE_FLAG_EASY) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_EASY) { return; // not supported } @@ -1702,9 +1702,9 @@ bool Thermostat::set_minexttemp(const char * value, const int8_t id) { return false; } - if ((model() == EMS_DEVICE_FLAG_RC20_N) || (model() == EMS_DEVICE_FLAG_RC25)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_RC20_N) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC25)) { write_command(0xAD, 14, mt, 0xAD); - } else if ((model() == EMS_DEVICE_FLAG_BC400) || (model() == EMS_DEVICE_FLAG_RC300) || (model() == EMS_DEVICE_FLAG_RC100)) { + } else if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC300) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC100)) { write_command(0x240, 10, mt, 0x240); } else { write_command(EMS_TYPE_IBASettings, 5, mt, EMS_TYPE_IBASettings); @@ -1720,7 +1720,7 @@ bool Thermostat::set_clockoffset(const char * value, const int8_t id) { return false; } - if (model() == EMS_DEVICE_FLAG_RC30) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { write_command(EMS_TYPE_RC30Settings, 10, co, EMS_TYPE_RC30Settings); } else { write_command(EMS_TYPE_IBASettings, 12, co, EMS_TYPE_IBASettings); @@ -1739,13 +1739,13 @@ bool Thermostat::set_calinttemp(const char * value, const int8_t id) { auto t = (int8_t)(ct * 10); LOG_DEBUG("Calibrating internal temperature to %d.%d C", t / 10, t < 0 ? -t % 10 : t % 10); - if (model() == EMS_DEVICE_FLAG_RC10) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_RC10) { write_command(0xB0, 0, t, 0xB0); - } else if (model() == EMS_DEVICE_FLAG_RC30) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { write_command(EMS_TYPE_RC30Settings, 1, t, EMS_TYPE_RC30Settings); - } else if (model() == EMS_DEVICE_FLAG_RC100H) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC100H) { write_command(0x273, 0, t, 0x273); - } else if ((model() == EMS_DEVICE_FLAG_BC400) || model() == EMS_DEVICE_FLAG_RC100 || model() == EMS_DEVICE_FLAG_RC300) { + } else if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || model() == EMSdevice::EMS_DEVICE_FLAG_RC100 || model() == EMSdevice::EMS_DEVICE_FLAG_RC300) { write_command(0x240, 7, t, 0x240); } else { write_command(EMS_TYPE_IBASettings, 2, t, EMS_TYPE_IBASettings); @@ -1800,7 +1800,7 @@ bool Thermostat::set_remotetemp(const char * value, const int8_t id) { Roomctrl::set_remotetemp(Roomctrl::FB10, hc->hc(), hc->remotetemp); // FB10 } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC35 || model() == EMSdevice::EMS_DEVICE_FLAG_RC30_N) { Roomctrl::set_remotetemp(Roomctrl::RC20, hc->hc(), hc->remotetemp); // RC20 - } else if ((model() == EMS_DEVICE_FLAG_BC400) || model() == EMSdevice::EMS_DEVICE_FLAG_RC300) { + } else if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || model() == EMSdevice::EMS_DEVICE_FLAG_RC300) { Roomctrl::set_remotetemp(Roomctrl::RC100H, hc->hc(), hc->remotetemp); // RC100H } @@ -1825,7 +1825,7 @@ bool Thermostat::set_remotehum(const char * value, const int8_t id) { hc->remotehum = h; } - if ((model() == EMS_DEVICE_FLAG_BC400) || model() == EMSdevice::EMS_DEVICE_FLAG_RC300) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || model() == EMSdevice::EMS_DEVICE_FLAG_RC300) { Roomctrl::set_remotehum(Roomctrl::RC100H, hc->hc(), hc->remotehum); // RC100H return true; } @@ -1839,9 +1839,9 @@ bool Thermostat::set_building(const char * value, const int8_t id) { return false; } - if ((model() == EMS_DEVICE_FLAG_BC400) || (model() == EMS_DEVICE_FLAG_RC300) || (model() == EMS_DEVICE_FLAG_RC100)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC300) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC100)) { write_command(0x240, 9, bd + 1, 0x240); - } else if (model() == EMS_DEVICE_FLAG_RC30) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { write_command(EMS_TYPE_RC30Settings, 4, bd, EMS_TYPE_RC30Settings); } else { write_command(EMS_TYPE_IBASettings, 6, bd, EMS_TYPE_IBASettings); @@ -1857,9 +1857,9 @@ bool Thermostat::set_heatingpid(const char * value, const int8_t id) { return false; } - if (model() == EMS_DEVICE_FLAG_RC10) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_RC10) { write_command(0xB0, 6, pid, 0xB0); - } else if (model() == EMS_DEVICE_FLAG_RC30) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { write_command(EMS_TYPE_RC30Settings, 25, pid, EMS_TYPE_RC30Settings); } @@ -1869,7 +1869,7 @@ bool Thermostat::set_heatingpid(const char * value, const int8_t id) { // 0xA5 and 0x0240- Set the damping settings bool Thermostat::set_damping(const char * value, const int8_t id) { bool dmp; - if ((model() == EMS_DEVICE_FLAG_BC400) || model() == EMS_DEVICE_FLAG_RC300) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || model() == EMSdevice::EMS_DEVICE_FLAG_RC300) { if (Helpers::value2bool(value, dmp)) { write_command(0x240, 8, dmp ? 0xFF : 0, 0x240); return true; @@ -1887,7 +1887,7 @@ bool Thermostat::set_damping(const char * value, const int8_t id) { bool Thermostat::set_language(const char * value, const int8_t id) { uint8_t lg; - if (model() == EMS_DEVICE_FLAG_RC30) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { if (!Helpers::value2enum(value, lg, FL_(enum_ibaLanguage_RC30))) { return false; } @@ -1911,12 +1911,12 @@ bool Thermostat::set_control(const char * value, const int8_t id) { } uint8_t ctrl; - if (model() == EMS_DEVICE_FLAG_JUNKERS && !has_flags(EMS_DEVICE_FLAG_JUNKERS_OLD)) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_JUNKERS && !has_flags(EMSdevice::EMS_DEVICE_FLAG_JUNKERS_OLD)) { if (Helpers::value2enum(value, ctrl, FL_(enum_j_control))) { write_command(set_typeids[hc->hc()], 1, ctrl); return true; } - } else if (model() == EMS_DEVICE_FLAG_BC400 || model() == EMS_DEVICE_FLAG_RC300 || model() == EMS_DEVICE_FLAG_RC100) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_RC300 || model() == EMSdevice::EMS_DEVICE_FLAG_RC100) { if (Helpers::value2enum(value, ctrl, FL_(enum_control1))) { write_command(hpmode_typeids[hc->hc()], 3, ctrl); return true; @@ -1938,7 +1938,7 @@ bool Thermostat::set_roomsensor(const char * value, const int8_t id) { } uint8_t ctrl; - if (model() == EMS_DEVICE_FLAG_JUNKERS && !has_flags(EMS_DEVICE_FLAG_JUNKERS_OLD)) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_JUNKERS && !has_flags(EMSdevice::EMS_DEVICE_FLAG_JUNKERS_OLD)) { if (Helpers::value2enum(value, ctrl, FL_(enum_roomsensor))) { write_command(set_typeids[hc->hc()], 9, ctrl + 1); return true; @@ -1951,23 +1951,23 @@ bool Thermostat::set_roomsensor(const char * value, const int8_t id) { bool Thermostat::set_wwmode(const char * value, const int8_t id) { uint8_t set; - if (model() == EMS_DEVICE_FLAG_RC10) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_RC10) { if (!Helpers::value2enum(value, set, FL_(enum_wwMode3))) { return false; } write_command(0xB0, 2, set, 0xB0); - } else if (model() == EMS_DEVICE_FLAG_BC400) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400) { if (!Helpers::value2enum(value, set, FL_(enum_wwMode4))) { return false; } const uint8_t modes[] = {0, 5, 1, 2, 4}; write_command(0x02F5, 2, modes[set], 0x02F5); - } else if ((model() == EMS_DEVICE_FLAG_RC300) || (model() == EMS_DEVICE_FLAG_RC100)) { + } else if ((model() == EMSdevice::EMS_DEVICE_FLAG_RC300) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC100)) { if (!Helpers::value2enum(value, set, FL_(enum_wwMode))) { return false; } write_command(0x02F5, 2, set, 0x02F5); - } else if (model() == EMS_DEVICE_FLAG_RC30) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { if (!Helpers::value2enum(value, set, FL_(enum_wwMode3))) { return false; } @@ -2025,7 +2025,7 @@ bool Thermostat::set_wwcharge(const char * value, const int8_t id) { return false; } - if ((model() == EMS_DEVICE_FLAG_JUNKERS)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_JUNKERS)) { write_command(0x0115, 0, b ? 0xFF : 0x00, 0x01D3); } else { write_command(0x02F5, 11, b ? 0xFF : 0x00, 0x02F5); @@ -2058,7 +2058,7 @@ bool Thermostat::set_wwprio(const char * value, const int8_t id) { if (!Helpers::value2bool(value, b)) { return false; } - if ((model() == EMS_DEVICE_FLAG_BC400) || (model() == EMS_DEVICE_FLAG_RC300)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC300)) { write_command(set2_typeids[hc->hc()], 3, b ? 0xFF : 0x00, set2_typeids[hc->hc()]); } else { write_command(set_typeids[hc->hc()], 21, b ? 0xFF : 0x00, set_typeids[hc->hc()]); @@ -2086,7 +2086,7 @@ bool Thermostat::set_cooling(const char * value, const int8_t id) { bool Thermostat::set_wwcircmode(const char * value, const int8_t id) { uint8_t set; - if ((model() == EMS_DEVICE_FLAG_BC400) || (model() == EMS_DEVICE_FLAG_RC300) || (model() == EMS_DEVICE_FLAG_RC100)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC300) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC100)) { if (!Helpers::value2enum(value, set, FL_(enum_wwCircMode))) { return false; } @@ -2118,7 +2118,7 @@ bool Thermostat::set_wwDailyHeatTime(const char * value, const int8_t id) { return false; } - if ((model() == EMS_DEVICE_FLAG_BC400) || (model() == EMS_DEVICE_FLAG_RC300) || (model() == EMS_DEVICE_FLAG_RC100)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC300) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC100)) { uint8_t t = (set + 8) / 15; if (t > 95) { return false; @@ -2135,9 +2135,9 @@ bool Thermostat::set_wwDisinfect(const char * value, const int8_t id) { return false; } - if ((model() == EMS_DEVICE_FLAG_BC400) || (model() == EMS_DEVICE_FLAG_RC300) || (model() == EMS_DEVICE_FLAG_RC100)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC300) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC100)) { write_command(0x2F5, 5, b ? 0xFF : 0x00, 0x2F5); - } else if (model() == EMS_DEVICE_FLAG_RC30) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { write_command(EMS_TYPE_RC30wwSettings, 2, b ? 0xFF : 0x00, EMS_TYPE_RC30wwSettings); } else { write_command(0x37, 4, b ? 0xFF : 0x00, 0x37); @@ -2152,9 +2152,9 @@ bool Thermostat::set_wwDisinfectDay(const char * value, const int8_t id) { return false; } - if ((model() == EMS_DEVICE_FLAG_BC400) || (model() == EMS_DEVICE_FLAG_RC300) || (model() == EMS_DEVICE_FLAG_RC100)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC300) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC100)) { write_command(0x2F5, 7, set, 0x2F5); - } else if (model() == EMS_DEVICE_FLAG_RC30) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { write_command(EMS_TYPE_RC30wwSettings, 3, set, EMS_TYPE_RC30wwSettings); } else { write_command(0x37, 5, set, 0x37); @@ -2165,12 +2165,12 @@ bool Thermostat::set_wwDisinfectDay(const char * value, const int8_t id) { bool Thermostat::set_wwDisinfectHour(const char * value, const int8_t id) { int set; - if ((model() == EMS_DEVICE_FLAG_BC400) || (model() == EMS_DEVICE_FLAG_RC300) || (model() == EMS_DEVICE_FLAG_RC100)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_BC400) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC300) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC100)) { if (!Helpers::value2number(value, set, 0, 1431)) { return false; } write_command(0x2F5, 6, (set + 8) / 15, 0x2F5); - } else if (model() == EMS_DEVICE_FLAG_RC30) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { if (!Helpers::value2number(value, set, 0, 23)) { return false; } @@ -2197,7 +2197,7 @@ bool Thermostat::set_wwMaxTemp(const char * value, const int8_t id) { } bool Thermostat::set_wwOneTimeKey(const char * value, const int8_t id) { - bool b = false; + bool b; if (!Helpers::value2bool(value, b)) { return false; } @@ -2214,7 +2214,7 @@ bool Thermostat::set_backlight(const char * value, const int8_t id) { return false; } - if (model() == EMS_DEVICE_FLAG_RC30) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { write_command(EMS_TYPE_RC30Settings, 12, b ? 0xFF : 0x00, EMS_TYPE_RC30Settings); } else { write_command(0xB0, 1, b ? 0xFF : 0x00, 0xB0); @@ -2601,7 +2601,7 @@ bool Thermostat::set_mode_n(const uint8_t mode, const uint8_t hc_num) { set_mode_value = set_mode_value == 2 ? 0xFF : 0; break; case EMSdevice::EMS_DEVICE_FLAG_JUNKERS: - if (has_flags(EMS_DEVICE_FLAG_JUNKERS_OLD)) { + if (has_flags(EMSdevice::EMS_DEVICE_FLAG_JUNKERS_OLD)) { offset = EMS_OFFSET_JunkersSetMessage2_set_mode; } else { offset = EMS_OFFSET_JunkersSetMessage_set_mode; @@ -2629,7 +2629,7 @@ bool Thermostat::set_mode_n(const uint8_t mode, const uint8_t hc_num) { // set hc->mode temporary until validate is received if (model_ == EMSdevice::EMS_DEVICE_FLAG_RC10) { hc->mode = set_mode_value >> 1; - } else if (model_ == EMS_DEVICE_FLAG_BC400) { + } else if (model_ == EMSdevice::EMS_DEVICE_FLAG_BC400) { hc->mode_new = set_mode_value; } else if (model_ == EMSdevice::EMS_DEVICE_FLAG_RC300 || model_ == EMSdevice::EMS_DEVICE_FLAG_RC100) { hc->mode = set_mode_value == 0xFF ? 1 : 0; @@ -2782,7 +2782,7 @@ bool Thermostat::set_reducemode(const char * value, const int8_t id) { } uint8_t set; - if (model() == EMS_DEVICE_FLAG_BC400 || model() == EMS_DEVICE_FLAG_RC300 || model() == EMS_DEVICE_FLAG_RC100) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_RC300 || model() == EMSdevice::EMS_DEVICE_FLAG_RC100) { if (Helpers::value2enum(value, set, FL_(enum_reducemode1))) { write_command(set_typeids[hc->hc()], 5, set + 1, set_typeids[hc->hc()]); return true; @@ -2822,7 +2822,7 @@ bool Thermostat::set_nofrostmode(const char * value, const int8_t id) { return false; } uint8_t set; - if (model() == EMS_DEVICE_FLAG_BC400 || model() == EMS_DEVICE_FLAG_RC300 || model() == EMS_DEVICE_FLAG_RC100) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_RC300 || model() == EMSdevice::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; @@ -2846,11 +2846,11 @@ bool Thermostat::set_heatingtype(const char * value, const int8_t id) { uint8_t set; if (Helpers::value2enum(value, set, FL_(enum_heatingtype))) { - if ((model() == EMS_DEVICE_FLAG_RC20_N) || (model() == EMS_DEVICE_FLAG_RC25)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_RC20_N) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC25)) { write_command(set_typeids[hc->hc()], 0, set, set_typeids[hc->hc()]); - } else if (model() == EMS_DEVICE_FLAG_RC35 || model() == EMS_DEVICE_FLAG_RC30_N) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC35 || model() == EMSdevice::EMS_DEVICE_FLAG_RC30_N) { write_command(set_typeids[hc->hc()], 0, set, set_typeids[hc->hc()]); - } else if (model() == EMS_DEVICE_FLAG_RC30) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { write_command(curve_typeids[hc->hc()], 0, set, curve_typeids[hc->hc()]); } else { write_command(curve_typeids[hc->hc()], 1, set, curve_typeids[hc->hc()]); @@ -2870,22 +2870,22 @@ bool Thermostat::set_controlmode(const char * value, const int8_t id) { } uint8_t set; - if (model() == EMS_DEVICE_FLAG_RC100) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_RC100) { if (Helpers::value2enum(value, set, FL_(enum_controlmode))) { write_command(curve_typeids[hc->hc()], 0, set, curve_typeids[hc->hc()]); return true; } - } else if (model() == EMS_DEVICE_FLAG_BC400 || model() == EMS_DEVICE_FLAG_RC300) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_RC300) { if (Helpers::value2enum(value, set, FL_(enum_controlmode1))) { write_command(curve_typeids[hc->hc()], 0, set + 1, curve_typeids[hc->hc()]); return true; } - } else if (model() == EMS_DEVICE_FLAG_RC30) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC30) { if (Helpers::value2enum(value, set, FL_(enum_controlmode2))) { write_command(curve_typeids[hc->hc()], 1, set, curve_typeids[hc->hc()]); return true; } - } else if (model() == EMS_DEVICE_FLAG_RC35 || model() == EMS_DEVICE_FLAG_RC30_N) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC35 || model() == EMSdevice::EMS_DEVICE_FLAG_RC30_N) { if (Helpers::value2enum(value, set, FL_(enum_controlmode2))) { write_command(set_typeids[hc->hc()], 33, set, set_typeids[hc->hc()]); return true; @@ -2944,7 +2944,7 @@ bool Thermostat::set_switchtime(const char * value, const uint16_t type_id, char } const char * s_mode = doc["mode"]; const char * s_time = doc["time"]; - if (model() == EMS_DEVICE_FLAG_RC35 || model() == EMS_DEVICE_FLAG_RC30_N) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_RC35 || model() == EMSdevice::EMS_DEVICE_FLAG_RC30_N) { bool b; if (Helpers::value2bool(s_mode, b)) { on = b ? 1 : 0; @@ -2952,7 +2952,7 @@ bool Thermostat::set_switchtime(const char * value, const uint16_t type_id, char if (strlen(s_time) == 5 && s_time[2] == ':') { time = 6 * ((s_time[0] - '0') * 10 + (s_time[1] - '0')) + (s_time[3] - '0'); } - } else if ((model() == EMS_DEVICE_FLAG_RC20) || (model() == EMS_DEVICE_FLAG_RC30)) { + } else if ((model() == EMSdevice::EMS_DEVICE_FLAG_RC20) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC30)) { if (s_mode[0] == 'T') { on = s_mode[1] - '0'; } else { @@ -3018,7 +3018,7 @@ bool Thermostat::set_switchtime(const char * value, const uint16_t type_id, char uint8_t min_on = 1; uint8_t max_on = 4; - if ((model() == EMS_DEVICE_FLAG_RC35) || (model() == EMS_DEVICE_FLAG_RC30_N)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_RC35) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC30_N)) { min_on = 0; max_on = 1; } @@ -3030,9 +3030,9 @@ bool Thermostat::set_switchtime(const char * value, const uint16_t type_id, char if (data[0] != 0xE7) { // we use EN settings for the day abbreviation auto sday = (FL_(enum_dayOfWeek)[day][0]); - if (model() == EMS_DEVICE_FLAG_RC35 || model() == EMS_DEVICE_FLAG_RC30_N) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_RC35 || model() == EMSdevice::EMS_DEVICE_FLAG_RC30_N) { snprintf(out, len, "%02d %s %02d:%02d %s", no, sday, time / 6, 10 * (time % 6), on ? "on" : "off"); - } else if ((model() == EMS_DEVICE_FLAG_RC20) || (model() == EMS_DEVICE_FLAG_RC30)) { + } else if ((model() == EMSdevice::EMS_DEVICE_FLAG_RC20) || (model() == EMSdevice::EMS_DEVICE_FLAG_RC30)) { snprintf(out, len, "%02d %s %02d:%02d T%d", no, sday, time / 6, 10 * (time % 6), on); } else { auto son = (FL_(enum_switchmode)[on][0]); @@ -3115,24 +3115,24 @@ bool Thermostat::set_program(const char * value, const int8_t id) { } uint8_t set; - if ((model() == EMS_DEVICE_FLAG_RC20_N) || (model() == EMS_DEVICE_FLAG_RC25)) { + if ((model() == EMSdevice::EMS_DEVICE_FLAG_RC20_N) || (model() == EMSdevice::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) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_RC35 || model() == EMSdevice::EMS_DEVICE_FLAG_RC30_N || model() == EMSdevice::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_BC400 || model() == EMS_DEVICE_FLAG_RC300 || model() == EMS_DEVICE_FLAG_RC100) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_RC300 || model() == EMSdevice::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) { + } else if (model() == EMSdevice::EMS_DEVICE_FLAG_JUNKERS) { if (Helpers::value2enum(value, set, FL_(enum_progMode4))) { - if (has_flags(EMS_DEVICE_FLAG_JUNKERS_OLD)) { + if (has_flags(EMSdevice::EMS_DEVICE_FLAG_JUNKERS_OLD)) { write_command(set_typeids[hc->hc()], 10, set + 1, set_typeids[hc->hc()]); } else { write_command(set_typeids[hc->hc()], 13, set + 1, set_typeids[hc->hc()]); @@ -3158,7 +3158,7 @@ bool Thermostat::set_temperature(const float temperature, const uint8_t mode, co uint16_t validate_typeid = monitor_typeids[hc->hc()]; uint16_t set_typeid = set_typeids[hc->hc()]; - if (model == EMS_DEVICE_FLAG_RC10) { + if (model == EMSdevice::EMS_DEVICE_FLAG_RC10) { switch (mode) { case HeatingCircuit::Mode::NIGHT: offset = 3; @@ -3177,7 +3177,7 @@ bool Thermostat::set_temperature(const float temperature, const uint8_t mode, co break; } - } else if (model == EMS_DEVICE_FLAG_RC20) { + } else if (model == EMSdevice::EMS_DEVICE_FLAG_RC20) { switch (mode) { case HeatingCircuit::Mode::NIGHT: offset = 3; @@ -3220,7 +3220,7 @@ bool Thermostat::set_temperature(const float temperature, const uint8_t mode, co break; } - } else if (model == EMS_DEVICE_FLAG_RC30) { + } else if (model == EMSdevice::EMS_DEVICE_FLAG_RC30) { switch (mode) { case HeatingCircuit::Mode::OFF: offset = EMS_OFFSET_RC30Set_temp_off; @@ -3270,7 +3270,7 @@ bool Thermostat::set_temperature(const float temperature, const uint8_t mode, co break; } - } else if (model == EMS_DEVICE_FLAG_BC400 || (model == EMS_DEVICE_FLAG_RC300) || (model == EMS_DEVICE_FLAG_RC100)) { + } else if (model == EMSdevice::EMS_DEVICE_FLAG_BC400 || (model == EMSdevice::EMS_DEVICE_FLAG_RC300) || (model == EMSdevice::EMS_DEVICE_FLAG_RC100)) { validate_typeid = set_typeids[hc->hc()]; switch (mode) { case HeatingCircuit::Mode::SUMMER: @@ -3372,7 +3372,7 @@ bool Thermostat::set_temperature(const float temperature, const uint8_t mode, co break; } - } else if ((model == EMS_DEVICE_FLAG_RC20_N) || (model == EMS_DEVICE_FLAG_RC25)) { + } else if ((model == EMSdevice::EMS_DEVICE_FLAG_RC20_N) || (model == EMSdevice::EMS_DEVICE_FLAG_RC25)) { switch (mode) { case HeatingCircuit::Mode::MINFLOW: offset = 15; @@ -3408,7 +3408,7 @@ bool Thermostat::set_temperature(const float temperature, const uint8_t mode, co break; } - } else if ((model == EMS_DEVICE_FLAG_RC35) || (model == EMS_DEVICE_FLAG_RC30_N)) { + } else if ((model == EMSdevice::EMS_DEVICE_FLAG_RC35) || (model == EMSdevice::EMS_DEVICE_FLAG_RC30_N)) { validate_typeid = set_typeids[hc->hc()]; switch (mode) { case HeatingCircuit::Mode::NIGHT: // change the night temp @@ -3428,7 +3428,7 @@ bool Thermostat::set_temperature(const float temperature, const uint8_t mode, co factor = 1; break; case HeatingCircuit::Mode::DESIGN: - if (hc->heatingtype == 3 && model == EMS_DEVICE_FLAG_RC35) { + if (hc->heatingtype == 3 && model == EMSdevice::EMS_DEVICE_FLAG_RC35) { offset = EMS_OFFSET_RC35Set_temp_design_floor; } else { offset = EMS_OFFSET_RC35Set_temp_design; @@ -3467,7 +3467,7 @@ bool Thermostat::set_temperature(const float temperature, const uint8_t mode, co factor = 1; break; case HeatingCircuit::Mode::MAXFLOW: - if (hc->heatingtype == 3 && model == EMS_DEVICE_FLAG_RC35) { + if (hc->heatingtype == 3 && model == EMSdevice::EMS_DEVICE_FLAG_RC35) { offset = 35; } else { offset = 15; @@ -3482,7 +3482,7 @@ bool Thermostat::set_temperature(const float temperature, const uint8_t mode, co offset = EMS_OFFSET_RC35Set_temp_night; } else if (mode_ == HeatingCircuit::Mode::DAY) { offset = EMS_OFFSET_RC35Set_temp_day; - } else if (model == EMS_DEVICE_FLAG_RC35) { + } else if (model == EMSdevice::EMS_DEVICE_FLAG_RC35) { offset = EMS_OFFSET_RC35Set_seltemp; // https://github.com/emsesp/EMS-ESP/issues/310 } else { // RC30_N missing temporary auto temperature https://github.com/emsesp/EMS-ESP32/issues/395 @@ -3492,10 +3492,10 @@ bool Thermostat::set_temperature(const float temperature, const uint8_t mode, co break; } - } else if (model == EMS_DEVICE_FLAG_JUNKERS) { + } else if (model == EMSdevice::EMS_DEVICE_FLAG_JUNKERS) { // figure out if we have older or new thermostats, Heating Circuits on 0x65 or 0x79 // see https://github.com/emsesp/EMS-ESP/issues/335#issuecomment-593324716) - bool old_junkers = (has_flags(EMS_DEVICE_FLAG_JUNKERS_OLD)); + bool old_junkers = (has_flags(EMSdevice::EMS_DEVICE_FLAG_JUNKERS_OLD)); if (!old_junkers) { switch (mode) { case HeatingCircuit::Mode::NOFROST: @@ -3600,7 +3600,7 @@ void Thermostat::register_device_values() { register_device_value(tag, &tempsensor1_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(RFTemp), DeviceValueUOM::DEGREES); return; } - // RC100H remote with humidity, this is also EMS_DEVICE_FLAG_RC100 for set_calinttemp + // RC100H remote with humidity, this is also EMSdevice::EMS_DEVICE_FLAG_RC100 for set_calinttemp if (device_id() >= 0x38 && device_id() <= 0x3F) { // each device controls only one hc, so we tag the values uint8_t tag = DeviceValueTAG::TAG_HC1 + device_id() - 0x38; @@ -3623,9 +3623,9 @@ void Thermostat::register_device_values() { register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &lastCode_, DeviceValueType::STRING, FL_(lastCode), DeviceValueUOM::NONE); switch (this->model()) { - case EMS_DEVICE_FLAG_RC100: - case EMS_DEVICE_FLAG_RC300: - case EMS_DEVICE_FLAG_BC400: + case EMSdevice::EMS_DEVICE_FLAG_RC100: + case EMSdevice::EMS_DEVICE_FLAG_RC300: + case EMSdevice::EMS_DEVICE_FLAG_BC400: register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &dateTime_, DeviceValueType::STRING, @@ -3668,7 +3668,7 @@ void Thermostat::register_device_values() { MAKE_CF_CB(set_minexttemp)); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &ibaDamping_, DeviceValueType::BOOL, FL_(damping), DeviceValueUOM::NONE, MAKE_CF_CB(set_damping)); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA_WW, &wwSetTemp_, DeviceValueType::UINT, FL_(wwSetTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_wwtemp)); - if (model() == EMS_DEVICE_FLAG_BC400) { + if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400) { register_device_value(DeviceValueTAG::TAG_DEVICE_DATA_WW, &wwMode_, DeviceValueType::ENUM, @@ -3795,7 +3795,7 @@ void Thermostat::register_device_values() { register_device_value( DeviceValueTAG::TAG_DEVICE_DATA, &pvLowerCool_, DeviceValueType::INT, FL_(pvLowerCool), DeviceValueUOM::K, MAKE_CF_CB(set_pvLowerCool), -5, 0); break; - case EMS_DEVICE_FLAG_RC10: + case EMSdevice::EMS_DEVICE_FLAG_RC10: register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &ibaCalIntTemperature_, DeviceValueType::INT, @@ -3814,8 +3814,8 @@ void Thermostat::register_device_values() { register_device_value( DeviceValueTAG::TAG_DEVICE_DATA_WW, &wwMode_, DeviceValueType::ENUM, FL_(enum_wwMode3), FL_(wwMode), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwmode)); break; - case EMS_DEVICE_FLAG_RC20_N: - case EMS_DEVICE_FLAG_RC25: + case EMSdevice::EMS_DEVICE_FLAG_RC20_N: + case EMSdevice::EMS_DEVICE_FLAG_RC25: register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &dateTime_, DeviceValueType::STRING, FL_(dateTime), DeviceValueUOM::NONE); // can't set datetime register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &ibaMinExtTemperature_, @@ -3824,10 +3824,10 @@ void Thermostat::register_device_values() { DeviceValueUOM::DEGREES, MAKE_CF_CB(set_minexttemp)); break; - case EMS_DEVICE_FLAG_RC20: + case EMSdevice::EMS_DEVICE_FLAG_RC20: register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &dateTime_, DeviceValueType::STRING, FL_(dateTime), DeviceValueUOM::NONE); // can't set datetime break; - case EMS_DEVICE_FLAG_RC30: + case EMSdevice::EMS_DEVICE_FLAG_RC30: register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &dateTime_, DeviceValueType::STRING, FL_(dateTime), DeviceValueUOM::NONE); // can't set datetime register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &ibaClockOffset_, @@ -3914,7 +3914,7 @@ void Thermostat::register_device_values() { DeviceValueUOM::NONE, MAKE_CF_CB(set_wwVacation)); break; - case EMS_DEVICE_FLAG_RC30_N: + case EMSdevice::EMS_DEVICE_FLAG_RC30_N: register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &dateTime_, DeviceValueType::STRING, FL_(dateTime), DeviceValueUOM::NONE); // can't set datetime register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &ibaMainDisplay_, @@ -4049,7 +4049,7 @@ void Thermostat::register_device_values() { DeviceValueUOM::NONE, MAKE_CF_CB(set_wwVacation)); break; - case EMS_DEVICE_FLAG_RC35: + case EMSdevice::EMS_DEVICE_FLAG_RC35: register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &dateTime_, DeviceValueType::STRING, @@ -4176,10 +4176,10 @@ void Thermostat::register_device_values() { DeviceValueUOM::NONE, MAKE_CF_CB(set_wwVacation)); break; - case EMS_DEVICE_FLAG_JUNKERS: + case EMSdevice::EMS_DEVICE_FLAG_JUNKERS: // FR100 is not writable, see. https://github.com/emsesp/EMS-ESP32/issues/536 // FW500 is not writable, see. https://github.com/emsesp/EMS-ESP32/issues/666 - if (has_flags(EMS_DEVICE_FLAG_JUNKERS_OLD)) { + if (has_flags(EMSdevice::EMS_DEVICE_FLAG_JUNKERS_OLD)) { register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &dateTime_, DeviceValueType::STRING, FL_(tpl_datetime), FL_(dateTime), DeviceValueUOM::NONE); } else { register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, @@ -4250,11 +4250,11 @@ void Thermostat::register_device_values() { 99); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA_WW, &wwCharge_, DeviceValueType::BOOL, FL_(wwCharge), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwcharge)); break; - case EMS_DEVICE_FLAG_EASY: + case EMSdevice::EMS_DEVICE_FLAG_EASY: // Easy TC100 have no date/time, see issue #100, not sure about CT200, so leave it. register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &dateTime_, DeviceValueType::STRING, FL_(dateTime), DeviceValueUOM::NONE); // can't set datetime break; - case EMS_DEVICE_FLAG_CRF: + case EMSdevice::EMS_DEVICE_FLAG_CRF: default: register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &dateTime_, DeviceValueType::STRING, FL_(dateTime), DeviceValueUOM::NONE); // can't set datetime break; @@ -4277,10 +4277,10 @@ void Thermostat::register_device_values_hc(std::shared_ptrselTemp, DeviceValueType::SHORT, seltemp_divider, FL_(selRoomTemp), DeviceValueUOM::DEGREES); } else { register_device_value(tag, &hc->selTemp, DeviceValueType::SHORT, seltemp_divider, FL_(selRoomTemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_temp), 0, 30); @@ -4297,7 +4297,7 @@ void Thermostat::register_device_values_hc(std::shared_ptrclimate, DeviceValueType::ENUM, FL_(enum_climate), FL_(haclimate), DeviceValueUOM::NONE, nullptr, 5, 30); switch (model) { - case EMS_DEVICE_FLAG_RC10: + case EMSdevice::EMS_DEVICE_FLAG_RC10: register_device_value(tag, &hc->mode, DeviceValueType::ENUM, FL_(enum_mode6), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode)); register_device_value( tag, &hc->daytemp, DeviceValueType::UINT, DeviceValueNumOp::DV_NUMOP_DIV2, FL_(daytemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_daytemp)); @@ -4306,10 +4306,10 @@ void Thermostat::register_device_values_hc(std::shared_ptrreducehours, DeviceValueType::UINT, FL_(reducehours), DeviceValueUOM::HOURS, MAKE_CF_CB(set_reducehours)); register_device_value(tag, &hc->reduceminutes, DeviceValueType::USHORT, FL_(reduceminutes), DeviceValueUOM::MINUTES); break; - case EMS_DEVICE_FLAG_RC100: - case EMS_DEVICE_FLAG_RC300: - case EMS_DEVICE_FLAG_BC400: - if (model == EMS_DEVICE_FLAG_BC400) { + case EMSdevice::EMS_DEVICE_FLAG_RC100: + case EMSdevice::EMS_DEVICE_FLAG_RC300: + case EMSdevice::EMS_DEVICE_FLAG_BC400: + if (model == EMSdevice::EMS_DEVICE_FLAG_BC400) { register_device_value(tag, &hc->mode_new, DeviceValueType::ENUM, FL_(enum_mode2), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode)); } else { register_device_value(tag, &hc->mode, DeviceValueType::ENUM, FL_(enum_mode), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode)); @@ -4402,12 +4402,12 @@ void Thermostat::register_device_values_hc(std::shared_ptrboosttime, DeviceValueType::UINT, FL_(boosttime), DeviceValueUOM::HOURS, MAKE_CF_CB(set_boosttime)); break; - case EMS_DEVICE_FLAG_CRF: + case EMSdevice::EMS_DEVICE_FLAG_CRF: register_device_value(tag, &hc->mode, DeviceValueType::ENUM, FL_(enum_mode5), FL_(mode), DeviceValueUOM::NONE); register_device_value(tag, &hc->modetype, DeviceValueType::ENUM, FL_(enum_modetype5), FL_(modetype), DeviceValueUOM::NONE); register_device_value(tag, &hc->targetflowtemp, DeviceValueType::UINT, FL_(targetflowtemp), DeviceValueUOM::DEGREES); break; - case EMS_DEVICE_FLAG_RC20: + case EMSdevice::EMS_DEVICE_FLAG_RC20: register_device_value(tag, &hc->mode, DeviceValueType::ENUM, FL_(enum_mode2), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode)); register_device_value( tag, &hc->manualtemp, DeviceValueType::UINT, DeviceValueNumOp::DV_NUMOP_DIV2, FL_(manualtemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_manualtemp)); @@ -4424,7 +4424,7 @@ void Thermostat::register_device_values_hc(std::shared_ptrswitchtime1, DeviceValueType::STRING, FL_(tpl_switchtime1), FL_(switchtime), DeviceValueUOM::NONE, MAKE_CF_CB(set_switchtime1)); break; - case EMS_DEVICE_FLAG_RC20_N: + case EMSdevice::EMS_DEVICE_FLAG_RC20_N: register_device_value(tag, &hc->mode, DeviceValueType::ENUM, FL_(enum_mode3), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode)); register_device_value(tag, &hc->modetype, DeviceValueType::ENUM, FL_(enum_modetype3), FL_(modetype), DeviceValueUOM::NONE); register_device_value( @@ -4447,7 +4447,7 @@ void Thermostat::register_device_values_hc(std::shared_ptrsummermode, DeviceValueType::ENUM, FL_(enum_summer), FL_(summermode), DeviceValueUOM::NONE); register_device_value(tag, &hc->remotetemp, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(remotetemp), DeviceValueUOM::DEGREES); break; - case EMS_DEVICE_FLAG_RC25: + case EMSdevice::EMS_DEVICE_FLAG_RC25: register_device_value(tag, &hc->mode, DeviceValueType::ENUM, FL_(enum_mode3), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode)); register_device_value(tag, &hc->modetype, DeviceValueType::ENUM, FL_(enum_modetype3), FL_(modetype), DeviceValueUOM::NONE); register_device_value( @@ -4469,7 +4469,7 @@ void Thermostat::register_device_values_hc(std::shared_ptrsummertemp, DeviceValueType::UINT, 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: + case EMSdevice::EMS_DEVICE_FLAG_RC30: register_device_value(tag, &hc->mode, DeviceValueType::ENUM, FL_(enum_mode2), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode)); register_device_value(tag, &hc->holiday, DeviceValueType::STRING, FL_(tpl_holidays), FL_(holidays), DeviceValueUOM::NONE, MAKE_CF_CB(set_holiday)); register_device_value(tag, &hc->vacation, DeviceValueType::STRING, FL_(tpl_holidays), FL_(vacations), DeviceValueUOM::NONE, MAKE_CF_CB(set_vacation)); @@ -4502,8 +4502,8 @@ void Thermostat::register_device_values_hc(std::shared_ptrnofrosttemp, DeviceValueType::UINT, DeviceValueNumOp::DV_NUMOP_DIV2, FL_(offtemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_offtemp)); break; - case EMS_DEVICE_FLAG_RC30_N: - case EMS_DEVICE_FLAG_RC35: + case EMSdevice::EMS_DEVICE_FLAG_RC30_N: + case EMSdevice::EMS_DEVICE_FLAG_RC35: register_device_value(tag, &hc->mode, DeviceValueType::ENUM, FL_(enum_mode3), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode)); register_device_value(tag, &hc->modetype, DeviceValueType::ENUM, FL_(enum_modetype3), FL_(modetype), DeviceValueUOM::NONE); register_device_value( @@ -4587,7 +4587,7 @@ void Thermostat::register_device_values_hc(std::shared_ptrswitchtime2, DeviceValueType::STRING, FL_(tpl_switchtime), FL_(switchtime2), DeviceValueUOM::NONE, MAKE_CF_CB(set_switchtime2)); break; - case EMS_DEVICE_FLAG_JUNKERS: + case EMSdevice::EMS_DEVICE_FLAG_JUNKERS: register_device_value(tag, &hc->mode, DeviceValueType::ENUM, FL_(enum_mode4), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode)); register_device_value(tag, &hc->modetype, DeviceValueType::ENUM, FL_(enum_modetype4), FL_(modetype), DeviceValueUOM::NONE); register_device_value(