add boiler pump operating mode #944

This commit is contained in:
MichaelDvP
2023-02-06 14:19:58 +01:00
parent e66e2c40a6
commit 7227937660
4 changed files with 21 additions and 0 deletions

View File

@@ -158,6 +158,8 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
MAKE_CF_CB(set_heating_temp));
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &pumpModMax_, DeviceValueType::UINT, FL_(pumpModMax), DeviceValueUOM::PERCENT, MAKE_CF_CB(set_max_pump));
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &pumpModMin_, DeviceValueType::UINT, FL_(pumpModMin), DeviceValueUOM::PERCENT, MAKE_CF_CB(set_min_pump));
register_device_value(
DeviceValueTAG::TAG_DEVICE_DATA, &pumpMode_, DeviceValueType::ENUM, FL_(enum_pumpMode), FL_(pumpMode), DeviceValueUOM::NONE, MAKE_CF_CB(set_pumpMode));
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &pumpDelay_, DeviceValueType::UINT, FL_(pumpDelay), DeviceValueUOM::MINUTES, MAKE_CF_CB(set_pump_delay));
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
&burnMinPeriod_,
@@ -942,6 +944,7 @@ void Boiler::process_UBAParameters(std::shared_ptr<const Telegram> telegram) {
has_update(telegram, pumpDelay_, 8);
has_update(telegram, pumpModMax_, 9);
has_update(telegram, pumpModMin_, 10);
has_update(telegram, pumpMode_, 11);
has_update(telegram, boil2HystOff_, 12);
has_update(telegram, boil2HystOn_, 13);
}
@@ -1917,6 +1920,15 @@ bool Boiler::set_max_pump(const char * value, const int8_t id) {
return true;
}
bool Boiler::set_pumpMode(const char * value, const int8_t id) {
uint8_t v;
if (Helpers::value2enum(value, v, FL_(enum_pumpMode))) {
write_command(EMS_TYPE_UBAParameters, 11, v, EMS_TYPE_UBAParameters);
return true;
}
return false;
}
// set boiler on hysteresis
bool Boiler::set_hyst_on(const char * value, const int8_t id) {
int v;

View File

@@ -121,6 +121,7 @@ class Boiler : public EMSdevice {
uint8_t heatingTemp_; // Heating temperature setting on the boiler
uint8_t pumpModMax_; // Boiler circuit pump modulation max. power %
uint8_t pumpModMin_; // Boiler circuit pump modulation min. power
uint8_t pumpMode_; // pump setting proportional/deltaP
uint8_t pumpDelay_;
uint8_t burnMinPeriod_;
uint8_t burnMinPower_;
@@ -331,6 +332,7 @@ class Boiler : public EMSdevice {
bool set_max_power(const char * value, const int8_t id);
bool set_min_pump(const char * value, const int8_t id);
bool set_max_pump(const char * value, const int8_t id);
bool set_pumpMode(const char * value, const int8_t id);
bool set_hyst_on(const char * value, const int8_t id);
bool set_hyst_off(const char * value, const int8_t id);
inline bool set_hyst2_on(const char * value, const int8_t id) {