heatpump dhw stop temperatures #1624

This commit is contained in:
MichaelDvP
2024-02-26 14:59:05 +01:00
parent 3a23dae178
commit 20165a528d
3 changed files with 38 additions and 0 deletions

View File

@@ -836,6 +836,24 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
MAKE_CF_CB(set_wwEcoPlusDiffTemp),
6,
12);
register_device_value(DeviceValueTAG::TAG_BOILER_DATA_WW,
&wwComfStopTemp_,
DeviceValueType::UINT,
FL_(wwComfStopTemp),
DeviceValueUOM::DEGREES,
MAKE_CF_CB(set_wwComfStopTemp));
register_device_value(DeviceValueTAG::TAG_BOILER_DATA_WW,
&wwEcoStopTemp_,
DeviceValueType::UINT,
FL_(wwEcoStopTemp),
DeviceValueUOM::DEGREES,
MAKE_CF_CB(set_wwEcoStopTemp));
register_device_value(DeviceValueTAG::TAG_BOILER_DATA_WW,
&wwEcoPlusStopTemp_,
DeviceValueType::UINT,
FL_(wwEcoPlusStopTemp),
DeviceValueUOM::DEGREES,
MAKE_CF_CB(set_wwEcoPlusStopTemp));
register_device_value(DeviceValueTAG::TAG_BOILER_DATA_WW,
&hpCircPumpWw_,
DeviceValueType::BOOL,
@@ -1940,6 +1958,10 @@ void Boiler::process_HpDhwSettings(std::shared_ptr<const Telegram> telegram) {
has_update(telegram, wwComfDiffTemp_, 12);
has_update(telegram, wwEcoDiffTemp_, 13);
has_update(telegram, wwEcoPlusDiffTemp_, 14);
//https://github.com/emsesp/EMS-ESP32/issues/1624
has_update(telegram, wwComfStopTemp_, 8);
has_update(telegram, wwEcoStopTemp_, 9);
has_update(telegram, wwEcoPlusStopTemp_, 10);
}
// 0x49C:
@@ -2952,6 +2974,7 @@ bool Boiler::set_tempDiff(const char * value, const int8_t id) {
return false;
}
// also used for stopTemp with different index
bool Boiler::set_wwOffTemp(const char * value, const int8_t id) {
int v;
if (Helpers::value2temperature(value, v)) {

View File

@@ -269,6 +269,9 @@ class Boiler : public EMSdevice {
uint8_t wwComfDiffTemp_;
uint8_t wwEcoDiffTemp_;
uint8_t wwEcoPlusDiffTemp_;
uint8_t wwComfStopTemp_;
uint8_t wwEcoStopTemp_;
uint8_t wwEcoPlusStopTemp_;
uint8_t vp_cooling_;
uint8_t heatCable_;
@@ -489,6 +492,15 @@ class Boiler : public EMSdevice {
inline bool set_wwEcoPlusDiffTemp(const char * value, const int8_t id) {
return set_wwDiffTemp(value, 14);
}
inline bool set_wwComfStopTemp(const char * value, const int8_t id) {
return set_wwOffTemp(value, 8);
}
inline bool set_wwEcoStopTemp(const char * value, const int8_t id) {
return set_wwOffTemp(value, 9);
}
inline bool set_wwEcoPlusStopTemp(const char * value, const int8_t id) {
return set_wwOffTemp(value, 10);
}
bool set_vp_cooling(const char * value, const int8_t id);
bool set_heatCable(const char * value, const int8_t id);
bool set_VC0valve(const char * value, const int8_t id);