wwchargeoptimization UBAParameterWWPlus

This commit is contained in:
tp1de
2022-05-20 00:10:58 +02:00
parent c481e1fe0f
commit 571f5577d1
3 changed files with 29 additions and 1 deletions

View File

@@ -409,6 +409,13 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
MAKE_CF_CB(set_ww_flowTempOffset), MAKE_CF_CB(set_ww_flowTempOffset),
0, 0,
40); 40);
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA_WW,
&wwChargeOptimization_,
DeviceValueType::BOOL,
nullptr,
FL_(wwChargeOptimization),
DeviceValueUOM::NONE,
MAKE_CF_CB(set_ww_chargeOptimization));
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA_WW, register_device_value(DeviceValueTAG::TAG_DEVICE_DATA_WW,
&wwMaxPower_, &wwMaxPower_,
DeviceValueType::UINT, DeviceValueType::UINT,
@@ -788,6 +795,7 @@ void Boiler::process_UBAParameterWWPlus(std::shared_ptr<const Telegram> telegram
has_update(telegram, wwDisinfectionTemp_, 12); // setting here, status in E9 has_update(telegram, wwDisinfectionTemp_, 12); // setting here, status in E9
has_update(telegram, wwSelTempSingle_, 16); has_update(telegram, wwSelTempSingle_, 16);
has_update(telegram, wwSelTempLow_, 18); has_update(telegram, wwSelTempLow_, 18);
has_update(telegram, wwChargeOptimization_, 25);
uint8_t wwComfort1 = EMS_VALUE_UINT_NOTSET; uint8_t wwComfort1 = EMS_VALUE_UINT_NOTSET;
telegram->read_value(wwComfort1, 13); telegram->read_value(wwComfort1, 13);
@@ -1377,6 +1385,23 @@ bool Boiler::set_ww_hyst_off(const char * value, const int8_t id) {
return true; return true;
} }
// set ww charge optimization
bool Boiler::set_ww_chargeOptimization(const char * value, const int8_t id) {
bool v = false;
if (!Helpers::value2bool(value, v)) {
return false;
}
if (is_fetch(EMS_TYPE_UBAParameterWWPlus)) {
write_command(EMS_TYPE_UBAParameterWWPlus, 25, v ? 1 : 0, EMS_TYPE_UBAParameterWWPlus);
}
return true;
}
// set dhw max power // set dhw max power
bool Boiler::set_ww_maxpower(const char * value, const int8_t id) { bool Boiler::set_ww_maxpower(const char * value, const int8_t id) {
int v = 0; int v = 0;

View File

@@ -61,6 +61,7 @@ class Boiler : public EMSdevice {
uint8_t wwComfort1_; // WW comfort mode RC310 uint8_t wwComfort1_; // WW comfort mode RC310
uint8_t wwCircPump_; // DHW circulation pump available uint8_t wwCircPump_; // DHW circulation pump available
uint8_t wwChargeType_; // DHW charge type (pump or 3-way-valve) uint8_t wwChargeType_; // DHW charge type (pump or 3-way-valve)
uint8_t wwChargeOptimization_; // DHW charge optimization
uint8_t wwDisinfectionTemp_; // DHW disinfection temperature to prevent infection uint8_t wwDisinfectionTemp_; // DHW disinfection temperature to prevent infection
uint8_t wwCircMode_; // DHW circulation pump mode uint8_t wwCircMode_; // DHW circulation pump mode
uint8_t wwCirc_; // Circulation on/off uint8_t wwCirc_; // Circulation on/off
@@ -255,6 +256,7 @@ class Boiler : public EMSdevice {
bool set_ww_disinfect_temp(const char * value, const int8_t id); bool set_ww_disinfect_temp(const char * value, const int8_t id);
bool set_ww_maxpower(const char * value, const int8_t id); bool set_ww_maxpower(const char * value, const int8_t id);
bool set_ww_flowTempOffset(const char * value, const int8_t id); bool set_ww_flowTempOffset(const char * value, const int8_t id);
bool set_ww_chargeOptimization(const char * value, const int8_t id);
bool set_flow_temp(const char * value, const int8_t id); bool set_flow_temp(const char * value, const int8_t id);
bool set_burn_power(const char * value, const int8_t id); bool set_burn_power(const char * value, const int8_t id);
bool set_heating_activated(const char * value, const int8_t id); bool set_heating_activated(const char * value, const int8_t id);

View File

@@ -536,7 +536,7 @@ MAKE_PSTR_LIST(wwSelTempSingle, F("wwseltempsingle"), F("single charge temperatu
MAKE_PSTR_LIST(wwSetTemp, F("wwsettemp"), F("set temperature")) MAKE_PSTR_LIST(wwSetTemp, F("wwsettemp"), F("set temperature"))
MAKE_PSTR_LIST(wwType, F("wwtype"), F("type")) MAKE_PSTR_LIST(wwType, F("wwtype"), F("type"))
MAKE_PSTR_LIST(wwComfort, F("wwcomfort"), F("comfort")) MAKE_PSTR_LIST(wwComfort, F("wwcomfort"), F("comfort"))
MAKE_PSTR_LIST(wwComfort1, F("wwcomfort1"), F("ww comfort1")) MAKE_PSTR_LIST(wwComfort1, F("wwcomfort1"), F("comfort mode"))
MAKE_PSTR_LIST(wwFlowTempOffset, F("wwflowtempoffset"), F("flow temperature offset")) MAKE_PSTR_LIST(wwFlowTempOffset, F("wwflowtempoffset"), F("flow temperature offset"))
MAKE_PSTR_LIST(wwMaxPower, F("wwmaxpower"), F("max power")) MAKE_PSTR_LIST(wwMaxPower, F("wwmaxpower"), F("max power"))
MAKE_PSTR_LIST(wwCircPump, F("wwcircpump"), F("circulation pump available")) MAKE_PSTR_LIST(wwCircPump, F("wwcircpump"), F("circulation pump available"))
@@ -553,6 +553,7 @@ MAKE_PSTR_LIST(wwActivated, F("wwactivated"), F("activated"))
MAKE_PSTR_LIST(wwOneTime, F("wwonetime"), F("one time charging")) MAKE_PSTR_LIST(wwOneTime, F("wwonetime"), F("one time charging"))
MAKE_PSTR_LIST(wwDisinfecting, F("wwdisinfecting"), F("disinfecting")) MAKE_PSTR_LIST(wwDisinfecting, F("wwdisinfecting"), F("disinfecting"))
MAKE_PSTR_LIST(wwCharging, F("wwcharging"), F("charging")) MAKE_PSTR_LIST(wwCharging, F("wwcharging"), F("charging"))
MAKE_PSTR_LIST(wwChargeOptimization, F("wwchargeoptimization"), F("charge optimization"))
MAKE_PSTR_LIST(wwRecharging, F("wwrecharging"), F("recharging")) MAKE_PSTR_LIST(wwRecharging, F("wwrecharging"), F("recharging"))
MAKE_PSTR_LIST(wwTempOK, F("wwtempok"), F("temperature ok")) MAKE_PSTR_LIST(wwTempOK, F("wwtempok"), F("temperature ok"))
MAKE_PSTR_LIST(wwActive, F("wwactive"), F("active")) MAKE_PSTR_LIST(wwActive, F("wwactive"), F("active"))