mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-06-15 04:16:27 +03:00
FLAG UI800, no poll-ack on id 0x0D
This commit is contained in:
@@ -1,3 +1,28 @@
|
|||||||
|
allowBuilds:
|
||||||
|
cwebp-bin: set this to true or false
|
||||||
|
esbuild: set this to true or false
|
||||||
|
gifsicle: set this to true or false
|
||||||
|
jpegtran-bin: set this to true or false
|
||||||
|
mozjpeg: set this to true or false
|
||||||
|
optipng-bin: set this to true or false
|
||||||
|
pngquant-bin: set this to true or false
|
||||||
|
minimumReleaseAgeExclude:
|
||||||
|
- '@babel/code-frame@7.29.7'
|
||||||
|
- '@babel/compat-data@7.29.7'
|
||||||
|
- '@babel/core@7.29.7'
|
||||||
|
- '@babel/generator@7.29.7'
|
||||||
|
- '@babel/helper-compilation-targets@7.29.7'
|
||||||
|
- '@babel/helper-globals@7.29.7'
|
||||||
|
- '@babel/helper-module-imports@7.29.7'
|
||||||
|
- '@babel/helper-module-transforms@7.29.7'
|
||||||
|
- '@babel/helper-string-parser@7.29.7'
|
||||||
|
- '@babel/helper-validator-identifier@7.29.7'
|
||||||
|
- '@babel/helper-validator-option@7.29.7'
|
||||||
|
- '@babel/helpers@7.29.7'
|
||||||
|
- '@babel/parser@7.29.7'
|
||||||
|
- '@babel/template@7.29.7'
|
||||||
|
- '@babel/traverse@7.29.7'
|
||||||
|
- '@babel/types@7.29.7'
|
||||||
onlyBuiltDependencies:
|
onlyBuiltDependencies:
|
||||||
- cwebp-bin
|
- cwebp-bin
|
||||||
- esbuild
|
- esbuild
|
||||||
|
|||||||
@@ -105,7 +105,7 @@
|
|||||||
{215, DeviceType::THERMOSTAT, "Comfort RF", DeviceFlags::EMS_DEVICE_FLAG_CRF | DeviceFlags::EMS_DEVICE_FLAG_NO_WRITE}, // 0x18
|
{215, DeviceType::THERMOSTAT, "Comfort RF", DeviceFlags::EMS_DEVICE_FLAG_CRF | DeviceFlags::EMS_DEVICE_FLAG_NO_WRITE}, // 0x18
|
||||||
{216, DeviceType::THERMOSTAT, "CRF200S", DeviceFlags::EMS_DEVICE_FLAG_CRF | DeviceFlags::EMS_DEVICE_FLAG_NO_WRITE}, // 0x18
|
{216, DeviceType::THERMOSTAT, "CRF200S", DeviceFlags::EMS_DEVICE_FLAG_CRF | DeviceFlags::EMS_DEVICE_FLAG_NO_WRITE}, // 0x18
|
||||||
{246, DeviceType::THERMOSTAT, "Comfort+2RF", DeviceFlags::EMS_DEVICE_FLAG_CRF | DeviceFlags::EMS_DEVICE_FLAG_NO_WRITE}, // 0x18
|
{246, DeviceType::THERMOSTAT, "Comfort+2RF", DeviceFlags::EMS_DEVICE_FLAG_CRF | DeviceFlags::EMS_DEVICE_FLAG_NO_WRITE}, // 0x18
|
||||||
{253, DeviceType::THERMOSTAT, "Rego 3000, UI800, Logamatic BC400", DeviceFlags::EMS_DEVICE_FLAG_BC400}, // 0x10
|
{253, DeviceType::THERMOSTAT, "Rego 3000, UI800, Logamatic BC400", DeviceFlags::EMS_DEVICE_FLAG_UI800}, // 0x10
|
||||||
|
|
||||||
// Thermostat - Sieger - 0x10 / 0x17
|
// Thermostat - Sieger - 0x10 / 0x17
|
||||||
{ 66, DeviceType::THERMOSTAT, "ES72, RC20", DeviceFlags::EMS_DEVICE_FLAG_RC20_N}, // 0x17 or remote
|
{ 66, DeviceType::THERMOSTAT, "ES72, RC20", DeviceFlags::EMS_DEVICE_FLAG_RC20_N}, // 0x17 or remote
|
||||||
|
|||||||
@@ -513,6 +513,7 @@ class EMSdevice {
|
|||||||
static constexpr uint8_t EMS_DEVICE_FLAG_CR120 = 16; // mostly like RC300, but some changes
|
static constexpr uint8_t EMS_DEVICE_FLAG_CR120 = 16; // mostly like RC300, but some changes
|
||||||
static constexpr uint8_t EMS_DEVICE_FLAG_CR11 = 17; // CRF200 only monitor
|
static constexpr uint8_t EMS_DEVICE_FLAG_CR11 = 17; // CRF200 only monitor
|
||||||
static constexpr uint8_t EMS_DEVICE_FLAG_HMC310 = 18;
|
static constexpr uint8_t EMS_DEVICE_FLAG_HMC310 = 18;
|
||||||
|
static constexpr uint8_t EMS_DEVICE_FLAG_UI800 = 19;
|
||||||
|
|
||||||
uint8_t count_entities();
|
uint8_t count_entities();
|
||||||
uint8_t count_entities_fav();
|
uint8_t count_entities_fav();
|
||||||
|
|||||||
@@ -190,7 +190,11 @@ MAKE_NOTRANSLATION(rc100, "RC100")
|
|||||||
MAKE_NOTRANSLATION(rc100h, "RC100H")
|
MAKE_NOTRANSLATION(rc100h, "RC100H")
|
||||||
MAKE_NOTRANSLATION(tc100, "TC100")
|
MAKE_NOTRANSLATION(tc100, "TC100")
|
||||||
MAKE_NOTRANSLATION(rc120rf, "RC120RF")
|
MAKE_NOTRANSLATION(rc120rf, "RC120RF")
|
||||||
MAKE_NOTRANSLATION(rc220, "RC220/RT800")
|
MAKE_NOTRANSLATION(rc220, "RC220")
|
||||||
|
MAKE_NOTRANSLATION(rt800, "RT800")
|
||||||
|
MAKE_NOTRANSLATION(cr10, "CR10")
|
||||||
|
MAKE_NOTRANSLATION(cr10h, "CR10H")
|
||||||
|
MAKE_NOTRANSLATION(cr20rf, "CR20RF")
|
||||||
MAKE_NOTRANSLATION(single, "single")
|
MAKE_NOTRANSLATION(single, "single")
|
||||||
MAKE_NOTRANSLATION(dash, "-")
|
MAKE_NOTRANSLATION(dash, "-")
|
||||||
MAKE_NOTRANSLATION(BLANK, "")
|
MAKE_NOTRANSLATION(BLANK, "")
|
||||||
@@ -370,6 +374,7 @@ MAKE_ENUM(enum_roomsensor, FL_(extern), FL_(intern), FL_(auto))
|
|||||||
MAKE_ENUM(enum_roominfluence, FL_(off), FL_(intern), FL_(extern), FL_(auto))
|
MAKE_ENUM(enum_roominfluence, FL_(off), FL_(intern), FL_(extern), FL_(auto))
|
||||||
MAKE_ENUM(enum_control1, FL_(rc310), FL_(rc200), FL_(rc100), FL_(rc100h), FL_(tc100))
|
MAKE_ENUM(enum_control1, FL_(rc310), FL_(rc200), FL_(rc100), FL_(rc100h), FL_(tc100))
|
||||||
MAKE_ENUM(enum_control2, FL_(off), FL_(dash), FL_(rc100), FL_(rc100h), FL_(dash), FL_(rc120rf), FL_(rc220), FL_(single)) // BC400
|
MAKE_ENUM(enum_control2, FL_(off), FL_(dash), FL_(rc100), FL_(rc100h), FL_(dash), FL_(rc120rf), FL_(rc220), FL_(single)) // BC400
|
||||||
|
MAKE_ENUM(enum_control3, FL_(off), FL_(dash), FL_(cr10), FL_(cr10h), FL_(dash), FL_(cr20rf), FL_(rt800), FL_(single)) // UI800
|
||||||
|
|
||||||
MAKE_ENUM(enum_switchmode, FL_(off), FL_(eco), FL_(comfort), FL_(heat))
|
MAKE_ENUM(enum_switchmode, FL_(off), FL_(eco), FL_(comfort), FL_(heat))
|
||||||
MAKE_ENUM(enum_switchProgMode, FL_(level), FL_(absolute))
|
MAKE_ENUM(enum_switchProgMode, FL_(level), FL_(absolute))
|
||||||
|
|||||||
@@ -276,7 +276,7 @@ void TxService::start() {
|
|||||||
// sends a 1 byte poll which is our own deviceID
|
// sends a 1 byte poll which is our own deviceID
|
||||||
void TxService::send_poll() const {
|
void TxService::send_poll() const {
|
||||||
// LOG_DEBUG("Ack %02X",ems_bus_id() ^ ems_mask());
|
// LOG_DEBUG("Ack %02X",ems_bus_id() ^ ems_mask());
|
||||||
if (tx_mode() != EMS_TXMODE_OFF) {
|
if (tx_mode() != EMS_TXMODE_OFF && ems_bus_id() != 0x0D) {
|
||||||
EMSuart::send_poll(ems_bus_id() ^ ems_mask());
|
EMSuart::send_poll(ems_bus_id() ^ ems_mask());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -543,7 +543,7 @@ uint8_t Thermostat::HeatingCircuit::get_mode() const {
|
|||||||
} else {
|
} else {
|
||||||
return HeatingCircuit::Mode::OFF;
|
return HeatingCircuit::Mode::OFF;
|
||||||
}
|
}
|
||||||
} else if (model == EMSdevice::EMS_DEVICE_FLAG_BC400 || model == EMSdevice::EMS_DEVICE_FLAG_CR120) {
|
} else if (model == EMSdevice::EMS_DEVICE_FLAG_BC400 || model == EMSdevice::EMS_DEVICE_FLAG_UI800 || model == EMSdevice::EMS_DEVICE_FLAG_CR120) {
|
||||||
if (mode_new == 0) {
|
if (mode_new == 0) {
|
||||||
return HeatingCircuit::Mode::OFF;
|
return HeatingCircuit::Mode::OFF;
|
||||||
} else if (mode_new == 1) {
|
} else if (mode_new == 1) {
|
||||||
@@ -607,7 +607,7 @@ uint8_t Thermostat::HeatingCircuit::get_mode_type() const {
|
|||||||
return HeatingCircuit::Mode::ON;
|
return HeatingCircuit::Mode::ON;
|
||||||
}
|
}
|
||||||
} else if (model == EMSdevice::EMS_DEVICE_FLAG_RC300 || model == EMSdevice::EMS_DEVICE_FLAG_R3000 || model == EMSdevice::EMS_DEVICE_FLAG_BC400
|
} else if (model == EMSdevice::EMS_DEVICE_FLAG_RC300 || model == EMSdevice::EMS_DEVICE_FLAG_R3000 || model == EMSdevice::EMS_DEVICE_FLAG_BC400
|
||||||
|| model == EMSdevice::EMS_DEVICE_FLAG_HMC310) {
|
|| model == EMSdevice::EMS_DEVICE_FLAG_UI800 || model == EMSdevice::EMS_DEVICE_FLAG_HMC310) {
|
||||||
if (modetype == 0) {
|
if (modetype == 0) {
|
||||||
return HeatingCircuit::Mode::ECO;
|
return HeatingCircuit::Mode::ECO;
|
||||||
} else if (modetype == 1) {
|
} else if (modetype == 1) {
|
||||||
@@ -1334,7 +1334,7 @@ void Thermostat::process_RC300WWmode(std::shared_ptr<const Telegram> telegram) {
|
|||||||
// circulation pump see: https://github.com/Th3M3/buderus_ems-wiki/blob/master/Einstellungen%20der%20Bedieneinheit%20RC310.md
|
// circulation pump see: https://github.com/Th3M3/buderus_ems-wiki/blob/master/Einstellungen%20der%20Bedieneinheit%20RC310.md
|
||||||
has_update(telegram, dhw->wwCircPump_, 1); // FF=off, 0=on ?
|
has_update(telegram, dhw->wwCircPump_, 1); // FF=off, 0=on ?
|
||||||
|
|
||||||
if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_HMC310) {
|
if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_UI800 || model() == EMSdevice::EMS_DEVICE_FLAG_HMC310) {
|
||||||
has_enumupdate(telegram, dhw->wwMode_, 2, {0, 5, 1, 2, 4});
|
has_enumupdate(telegram, dhw->wwMode_, 2, {0, 5, 1, 2, 4});
|
||||||
} else if (model() == EMSdevice::EMS_DEVICE_FLAG_R3000) {
|
} else if (model() == EMSdevice::EMS_DEVICE_FLAG_R3000) {
|
||||||
// https://github.com/emsesp/EMS-ESP32/pull/1722#discussion_r1582823521
|
// https://github.com/emsesp/EMS-ESP32/pull/1722#discussion_r1582823521
|
||||||
@@ -2355,7 +2355,7 @@ bool Thermostat::set_control(const char * value, const int8_t id) {
|
|||||||
}
|
}
|
||||||
// BC400
|
// BC400
|
||||||
// 1-RC100, 2-RC100H, 3-RC200
|
// 1-RC100, 2-RC100H, 3-RC200
|
||||||
} else if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400) {
|
} else if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_UI800) {
|
||||||
if (Helpers::value2enum(value, ctrl, FL_(enum_control2))) {
|
if (Helpers::value2enum(value, ctrl, FL_(enum_control2))) {
|
||||||
write_command(hpmode_typeids[hc->hc()], 3, ctrl);
|
write_command(hpmode_typeids[hc->hc()], 3, ctrl);
|
||||||
hc->control = ctrl; // set in advance, dont wait for verify
|
hc->control = ctrl; // set in advance, dont wait for verify
|
||||||
@@ -2435,7 +2435,7 @@ bool Thermostat::set_wwmode(const char * value, const int8_t id) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
write_command(0xB0, 2, set, 0xB0);
|
write_command(0xB0, 2, set, 0xB0);
|
||||||
} else if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_HMC310) {
|
} else if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_UI800 || model() == EMSdevice::EMS_DEVICE_FLAG_HMC310) {
|
||||||
if (!Helpers::value2enum(value, set, FL_(enum_wwMode4), {0, 5, 1, 2, 4})) { // off, eco+, eco, comfort, auto
|
if (!Helpers::value2enum(value, set, FL_(enum_wwMode4), {0, 5, 1, 2, 4})) { // off, eco+, eco, comfort, auto
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -2599,7 +2599,11 @@ bool Thermostat::set_coolondelay(const char * value, const int8_t id) {
|
|||||||
if (!Helpers::value2float(value, f)) {
|
if (!Helpers::value2float(value, f)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
write_command(summer2_typeids[hc->hc()], 6, (uint8_t)(f * 4), summer2_typeids[hc->hc()]);
|
if (model() == EMSdevice::EMS_DEVICE_FLAG_UI800) {
|
||||||
|
write_command(summer2_typeids[hc->hc()], 6, (uint8_t)(f * 4), summer2_typeids[hc->hc()]);
|
||||||
|
} else {
|
||||||
|
write_command(summer2_typeids[hc->hc()], 6, (uint8_t)f, summer2_typeids[hc->hc()]);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2613,7 +2617,11 @@ bool Thermostat::set_cooloffdelay(const char * value, const int8_t id) {
|
|||||||
if (!Helpers::value2float(value, f)) {
|
if (!Helpers::value2float(value, f)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
write_command(summer2_typeids[hc->hc()], 7, (uint8_t)(f * 4), summer2_typeids[hc->hc()]);
|
if (model() == EMSdevice::EMS_DEVICE_FLAG_UI800) {
|
||||||
|
write_command(summer2_typeids[hc->hc()], 7, (uint8_t)(f * 4), summer2_typeids[hc->hc()]);
|
||||||
|
} else {
|
||||||
|
write_command(summer2_typeids[hc->hc()], 7, (uint8_t)f, summer2_typeids[hc->hc()]);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3142,6 +3150,7 @@ bool Thermostat::set_mode(const char * value, const int8_t id) {
|
|||||||
mode_list = FL_(enum_mode3);
|
mode_list = FL_(enum_mode3);
|
||||||
break;
|
break;
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_BC400:
|
case EMSdevice::EMS_DEVICE_FLAG_BC400:
|
||||||
|
case EMSdevice::EMS_DEVICE_FLAG_UI800:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_CR120:
|
case EMSdevice::EMS_DEVICE_FLAG_CR120:
|
||||||
mode_list = FL_(enum_mode2);
|
mode_list = FL_(enum_mode2);
|
||||||
break;
|
break;
|
||||||
@@ -3279,6 +3288,7 @@ bool Thermostat::set_mode_n(const uint8_t mode, const int8_t id) {
|
|||||||
offset = EMS_OFFSET_RC35Set_mode;
|
offset = EMS_OFFSET_RC35Set_mode;
|
||||||
break;
|
break;
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_BC400:
|
case EMSdevice::EMS_DEVICE_FLAG_BC400:
|
||||||
|
case EMSdevice::EMS_DEVICE_FLAG_UI800:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_CR120:
|
case EMSdevice::EMS_DEVICE_FLAG_CR120:
|
||||||
offset = EMS_OFFSET_RCPLUSSet_mode_new;
|
offset = EMS_OFFSET_RCPLUSSet_mode_new;
|
||||||
break;
|
break;
|
||||||
@@ -3318,7 +3328,7 @@ bool Thermostat::set_mode_n(const uint8_t mode, const int8_t id) {
|
|||||||
// set hc->mode temporary until validate is received
|
// set hc->mode temporary until validate is received
|
||||||
if (model_ == EMSdevice::EMS_DEVICE_FLAG_RC10) {
|
if (model_ == EMSdevice::EMS_DEVICE_FLAG_RC10) {
|
||||||
hc->mode = set_mode_value >> 1;
|
hc->mode = set_mode_value >> 1;
|
||||||
} else if (model_ == EMSdevice::EMS_DEVICE_FLAG_BC400 || model_ == EMSdevice::EMS_DEVICE_FLAG_CR120) {
|
} else if (model_ == EMSdevice::EMS_DEVICE_FLAG_BC400 || model_ == EMSdevice::EMS_DEVICE_FLAG_UI800 || model_ == EMSdevice::EMS_DEVICE_FLAG_CR120) {
|
||||||
hc->mode_new = set_mode_value;
|
hc->mode_new = set_mode_value;
|
||||||
} else if (model_ == EMSdevice::EMS_DEVICE_FLAG_RC300 || model_ == EMSdevice::EMS_DEVICE_FLAG_R3000 || model_ == EMSdevice::EMS_DEVICE_FLAG_HMC310
|
} else if (model_ == EMSdevice::EMS_DEVICE_FLAG_RC300 || model_ == EMSdevice::EMS_DEVICE_FLAG_R3000 || model_ == EMSdevice::EMS_DEVICE_FLAG_HMC310
|
||||||
|| model_ == EMSdevice::EMS_DEVICE_FLAG_RC100) {
|
|| model_ == EMSdevice::EMS_DEVICE_FLAG_RC100) {
|
||||||
@@ -3495,7 +3505,11 @@ bool Thermostat::set_heatondelay(const char * value, const int8_t id) {
|
|||||||
if (!Helpers::value2float(value, f)) {
|
if (!Helpers::value2float(value, f)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
write_command(summer2_typeids[hc->hc()], 2, (uint8_t)(f * 4), summer2_typeids[hc->hc()]);
|
if (model() == EMSdevice::EMS_DEVICE_FLAG_UI800) {
|
||||||
|
write_command(summer2_typeids[hc->hc()], 2, (uint8_t)(f * 4), summer2_typeids[hc->hc()]);
|
||||||
|
} else {
|
||||||
|
write_command(summer2_typeids[hc->hc()], 2, (uint8_t)f, summer2_typeids[hc->hc()]);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3508,7 +3522,11 @@ bool Thermostat::set_heatoffdelay(const char * value, const int8_t id) {
|
|||||||
if (!Helpers::value2float(value, f)) {
|
if (!Helpers::value2float(value, f)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
write_command(summer2_typeids[hc->hc()], 3, (uint8_t)(f * 4), summer2_typeids[hc->hc()]);
|
if (model() == EMSdevice::EMS_DEVICE_FLAG_UI800) {
|
||||||
|
write_command(summer2_typeids[hc->hc()], 3, (uint8_t)(f * 4), summer2_typeids[hc->hc()]);
|
||||||
|
} else {
|
||||||
|
write_command(summer2_typeids[hc->hc()], 3, (uint8_t)f, summer2_typeids[hc->hc()]);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4443,6 +4461,7 @@ void Thermostat::register_device_values() {
|
|||||||
case EMSdevice::EMS_DEVICE_FLAG_RC300:
|
case EMSdevice::EMS_DEVICE_FLAG_RC300:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_R3000:
|
case EMSdevice::EMS_DEVICE_FLAG_R3000:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_BC400:
|
case EMSdevice::EMS_DEVICE_FLAG_BC400:
|
||||||
|
case EMSdevice::EMS_DEVICE_FLAG_UI800:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_CR120:
|
case EMSdevice::EMS_DEVICE_FLAG_CR120:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_HMC310:
|
case EMSdevice::EMS_DEVICE_FLAG_HMC310:
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||||
@@ -4902,9 +4921,10 @@ void Thermostat::register_device_values_hc(std::shared_ptr<Thermostat::HeatingCi
|
|||||||
case EMSdevice::EMS_DEVICE_FLAG_RC300:
|
case EMSdevice::EMS_DEVICE_FLAG_RC300:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_R3000:
|
case EMSdevice::EMS_DEVICE_FLAG_R3000:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_BC400:
|
case EMSdevice::EMS_DEVICE_FLAG_BC400:
|
||||||
|
case EMSdevice::EMS_DEVICE_FLAG_UI800:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_CR120:
|
case EMSdevice::EMS_DEVICE_FLAG_CR120:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_HMC310:
|
case EMSdevice::EMS_DEVICE_FLAG_HMC310:
|
||||||
if (model == EMSdevice::EMS_DEVICE_FLAG_BC400 || model == EMSdevice::EMS_DEVICE_FLAG_CR120) {
|
if (model == EMSdevice::EMS_DEVICE_FLAG_BC400 || model == EMSdevice::EMS_DEVICE_FLAG_UI800 || model == EMSdevice::EMS_DEVICE_FLAG_CR120) {
|
||||||
register_device_value(tag, &hc->mode_new, DeviceValueType::ENUM, FL_(enum_mode2), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode));
|
register_device_value(tag, &hc->mode_new, DeviceValueType::ENUM, FL_(enum_mode2), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode));
|
||||||
} else {
|
} else {
|
||||||
register_device_value(tag, &hc->mode, DeviceValueType::ENUM, FL_(enum_mode), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode));
|
register_device_value(tag, &hc->mode, DeviceValueType::ENUM, FL_(enum_mode), FL_(mode), DeviceValueUOM::NONE, MAKE_CF_CB(set_mode));
|
||||||
@@ -4997,6 +5017,8 @@ void Thermostat::register_device_values_hc(std::shared_ptr<Thermostat::HeatingCi
|
|||||||
register_device_value(tag, &hc->hpminflowtemp, DeviceValueType::UINT8, FL_(hpminflowtemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_hpminflowtemp));
|
register_device_value(tag, &hc->hpminflowtemp, DeviceValueType::UINT8, FL_(hpminflowtemp), DeviceValueUOM::DEGREES, MAKE_CF_CB(set_hpminflowtemp));
|
||||||
if (model == EMSdevice::EMS_DEVICE_FLAG_BC400) {
|
if (model == EMSdevice::EMS_DEVICE_FLAG_BC400) {
|
||||||
register_device_value(tag, &hc->control, DeviceValueType::ENUM, FL_(enum_control2), FL_(control), DeviceValueUOM::NONE, MAKE_CF_CB(set_control));
|
register_device_value(tag, &hc->control, DeviceValueType::ENUM, FL_(enum_control2), FL_(control), DeviceValueUOM::NONE, MAKE_CF_CB(set_control));
|
||||||
|
} else if (model == EMSdevice::EMS_DEVICE_FLAG_UI800) {
|
||||||
|
register_device_value(tag, &hc->control, DeviceValueType::ENUM, FL_(enum_control3), FL_(control), DeviceValueUOM::NONE, MAKE_CF_CB(set_control));
|
||||||
} else {
|
} else {
|
||||||
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->control, DeviceValueType::ENUM, FL_(enum_control1), FL_(control), DeviceValueUOM::NONE, MAKE_CF_CB(set_control));
|
||||||
}
|
}
|
||||||
@@ -5012,24 +5034,49 @@ void Thermostat::register_device_values_hc(std::shared_ptr<Thermostat::HeatingCi
|
|||||||
101);
|
101);
|
||||||
register_device_value(tag, &hc->remotehum, DeviceValueType::CMD, FL_(remotehum), DeviceValueUOM::PERCENT, MAKE_CF_CB(set_remotehum), -1, 101);
|
register_device_value(tag, &hc->remotehum, DeviceValueType::CMD, FL_(remotehum), DeviceValueUOM::PERCENT, MAKE_CF_CB(set_remotehum), -1, 101);
|
||||||
}
|
}
|
||||||
register_device_value(tag,
|
if (model == EMSdevice::EMS_DEVICE_FLAG_UI800) {
|
||||||
&hc->heatondelay,
|
register_device_value(tag,
|
||||||
DeviceValueType::UINT8,
|
&hc->heatondelay,
|
||||||
DeviceValueNumOp::DV_NUMOP_DIV4,
|
DeviceValueType::UINT8,
|
||||||
FL_(heatondelay),
|
DeviceValueNumOp::DV_NUMOP_DIV4,
|
||||||
DeviceValueUOM::HOURS,
|
FL_(heatondelay),
|
||||||
MAKE_CF_CB(set_heatondelay),
|
DeviceValueUOM::HOURS,
|
||||||
1,
|
MAKE_CF_CB(set_heatondelay),
|
||||||
48);
|
1,
|
||||||
register_device_value(tag,
|
48);
|
||||||
&hc->heatoffdelay,
|
register_device_value(tag,
|
||||||
DeviceValueType::UINT8,
|
&hc->heatoffdelay,
|
||||||
DeviceValueNumOp::DV_NUMOP_DIV4,
|
DeviceValueType::UINT8,
|
||||||
FL_(heatoffdelay),
|
DeviceValueNumOp::DV_NUMOP_DIV4,
|
||||||
DeviceValueUOM::HOURS,
|
FL_(heatoffdelay),
|
||||||
MAKE_CF_CB(set_heatoffdelay),
|
DeviceValueUOM::HOURS,
|
||||||
1,
|
MAKE_CF_CB(set_heatoffdelay),
|
||||||
48);
|
1,
|
||||||
|
48);
|
||||||
|
register_device_value(tag,
|
||||||
|
&hc->coolondelay,
|
||||||
|
DeviceValueType::UINT8,
|
||||||
|
DeviceValueNumOp::DV_NUMOP_DIV4,
|
||||||
|
FL_(coolondelay),
|
||||||
|
DeviceValueUOM::HOURS,
|
||||||
|
MAKE_CF_CB(set_coolondelay),
|
||||||
|
1,
|
||||||
|
48);
|
||||||
|
register_device_value(tag,
|
||||||
|
&hc->cooloffdelay,
|
||||||
|
DeviceValueType::UINT8,
|
||||||
|
DeviceValueNumOp::DV_NUMOP_DIV4,
|
||||||
|
FL_(cooloffdelay),
|
||||||
|
DeviceValueUOM::HOURS,
|
||||||
|
MAKE_CF_CB(set_cooloffdelay),
|
||||||
|
1,
|
||||||
|
48);
|
||||||
|
} else {
|
||||||
|
register_device_value(tag, &hc->heatondelay, DeviceValueType::UINT8, FL_(heatondelay), DeviceValueUOM::HOURS, MAKE_CF_CB(set_heatondelay), 1, 48);
|
||||||
|
register_device_value(tag, &hc->heatoffdelay, DeviceValueType::UINT8, FL_(heatoffdelay), DeviceValueUOM::HOURS, MAKE_CF_CB(set_heatoffdelay), 1, 48);
|
||||||
|
register_device_value(tag, &hc->coolondelay, DeviceValueType::UINT8, FL_(coolondelay), DeviceValueUOM::HOURS, MAKE_CF_CB(set_coolondelay), 1, 48);
|
||||||
|
register_device_value(tag, &hc->cooloffdelay, DeviceValueType::UINT8, FL_(cooloffdelay), DeviceValueUOM::HOURS, MAKE_CF_CB(set_cooloffdelay), 1, 48);
|
||||||
|
}
|
||||||
register_device_value(tag, &hc->instantstart, DeviceValueType::UINT8, FL_(instantstart), DeviceValueUOM::K, MAKE_CF_CB(set_instantstart), 1, 10);
|
register_device_value(tag, &hc->instantstart, DeviceValueType::UINT8, FL_(instantstart), DeviceValueUOM::K, MAKE_CF_CB(set_instantstart), 1, 10);
|
||||||
register_device_value(tag, &hc->boost, DeviceValueType::BOOL, FL_(boost), DeviceValueUOM::NONE, MAKE_CF_CB(set_boost));
|
register_device_value(tag, &hc->boost, DeviceValueType::BOOL, FL_(boost), DeviceValueUOM::NONE, MAKE_CF_CB(set_boost));
|
||||||
register_device_value(tag, &hc->boosttime, DeviceValueType::UINT8, FL_(boosttime), DeviceValueUOM::HOURS, MAKE_CF_CB(set_boosttime));
|
register_device_value(tag, &hc->boosttime, DeviceValueType::UINT8, FL_(boosttime), DeviceValueUOM::HOURS, MAKE_CF_CB(set_boosttime));
|
||||||
@@ -5391,9 +5438,10 @@ void Thermostat::register_device_values_dhw(std::shared_ptr<Thermostat::DhwCircu
|
|||||||
case EMSdevice::EMS_DEVICE_FLAG_RC300:
|
case EMSdevice::EMS_DEVICE_FLAG_RC300:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_R3000:
|
case EMSdevice::EMS_DEVICE_FLAG_R3000:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_BC400:
|
case EMSdevice::EMS_DEVICE_FLAG_BC400:
|
||||||
|
case EMSdevice::EMS_DEVICE_FLAG_UI800:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_CR120:
|
case EMSdevice::EMS_DEVICE_FLAG_CR120:
|
||||||
case EMSdevice::EMS_DEVICE_FLAG_HMC310:
|
case EMSdevice::EMS_DEVICE_FLAG_HMC310:
|
||||||
if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_HMC310) {
|
if (model() == EMSdevice::EMS_DEVICE_FLAG_BC400 || model() == EMSdevice::EMS_DEVICE_FLAG_UI800 || model() == EMSdevice::EMS_DEVICE_FLAG_HMC310) {
|
||||||
register_device_value(tag, &dhw->wwMode_, DeviceValueType::ENUM, FL_(enum_wwMode4), FL_(wwMode), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwmode));
|
register_device_value(tag, &dhw->wwMode_, DeviceValueType::ENUM, FL_(enum_wwMode4), FL_(wwMode), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwmode));
|
||||||
} else if (model() == EMSdevice::EMS_DEVICE_FLAG_R3000) {
|
} else if (model() == EMSdevice::EMS_DEVICE_FLAG_R3000) {
|
||||||
register_device_value(tag, &dhw->wwMode_, DeviceValueType::ENUM, FL_(enum_wwMode5), FL_(wwMode), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwmode));
|
register_device_value(tag, &dhw->wwMode_, DeviceValueType::ENUM, FL_(enum_wwMode5), FL_(wwMode), DeviceValueUOM::NONE, MAKE_CF_CB(set_wwmode));
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ class Thermostat : public EMSdevice {
|
|||||||
// check to see if the thermostat is a hybrid of the R300
|
// check to see if the thermostat is a hybrid of the R300
|
||||||
inline bool isRC300() const {
|
inline bool isRC300() const {
|
||||||
return (model() == EMSdevice::EMS_DEVICE_FLAG_RC300 || model() == EMSdevice::EMS_DEVICE_FLAG_R3000 || model() == EMSdevice::EMS_DEVICE_FLAG_BC400
|
return (model() == EMSdevice::EMS_DEVICE_FLAG_RC300 || model() == EMSdevice::EMS_DEVICE_FLAG_R3000 || model() == EMSdevice::EMS_DEVICE_FLAG_BC400
|
||||||
|| model() == EMSdevice::EMS_DEVICE_FLAG_CR120 || model() == EMSdevice::EMS_DEVICE_FLAG_HMC310);
|
|| model() == EMSdevice::EMS_DEVICE_FLAG_CR120 || model() == EMSdevice::EMS_DEVICE_FLAG_HMC310 || model() == EMSdevice::EMS_DEVICE_FLAG_UI800);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline uint8_t id2dhw(const int8_t id) const { // returns telegram offset for TAG(id)
|
inline uint8_t id2dhw(const int8_t id) const { // returns telegram offset for TAG(id)
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
#define EMSESP_APP_VERSION "3.8.3-dev.4"
|
#define EMSESP_APP_VERSION "3.8.3-dev.4a"
|
||||||
|
|||||||
Reference in New Issue
Block a user