mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-09 17:29:50 +03:00
@@ -26,7 +26,6 @@ uuid::log::Logger Boiler::logger_{F_(boiler), uuid::log::Facility::CONSOLE};
|
||||
|
||||
Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const char * version, const char * name, uint8_t flags, uint8_t brand)
|
||||
: EMSdevice(device_type, device_id, product_id, version, name, flags, brand) {
|
||||
|
||||
// register values for master boiler/cascade module
|
||||
// reserve_telegram_functions(25); // reserve some space for the telegram registries, to avoid memory fragmentation
|
||||
|
||||
@@ -444,18 +443,8 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
|
||||
FL_(maxHeatHeat),
|
||||
DeviceValueUOM::NONE,
|
||||
MAKE_CF_CB(set_maxHeatHeat));
|
||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||
&manDefrost_,
|
||||
DeviceValueType::BOOL,
|
||||
FL_(manDefrost),
|
||||
DeviceValueUOM::NONE,
|
||||
MAKE_CF_CB(set_manDefrost));
|
||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||
&pvCooling_,
|
||||
DeviceValueType::BOOL,
|
||||
FL_(pvCooling),
|
||||
DeviceValueUOM::NONE,
|
||||
MAKE_CF_CB(set_pvCooling));
|
||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &manDefrost_, DeviceValueType::BOOL, FL_(manDefrost), DeviceValueUOM::NONE, MAKE_CF_CB(set_manDefrost));
|
||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &pvCooling_, DeviceValueType::BOOL, FL_(pvCooling), DeviceValueUOM::NONE, MAKE_CF_CB(set_pvCooling));
|
||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||
&maxHeatDhw_,
|
||||
DeviceValueType::ENUM,
|
||||
@@ -591,6 +580,12 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
|
||||
MAKE_CF_CB(set_wwEcoPlusOffTemp),
|
||||
48,
|
||||
63);
|
||||
register_device_value(DeviceValueTAG::TAG_BOILER_DATA_WW,
|
||||
&hpCircPumpWw_,
|
||||
DeviceValueType::BOOL,
|
||||
FL_(hpCircPumpWw),
|
||||
DeviceValueUOM::NONE,
|
||||
MAKE_CF_CB(set_hpCircPumpWw));
|
||||
}
|
||||
|
||||
// dhw - DEVICE_DATA_ww topic
|
||||
@@ -1418,6 +1413,7 @@ void Boiler::process_HpSilentMode(std::shared_ptr<const Telegram> telegram) {
|
||||
has_update(telegram, hpHystHeat_, 37); // is / 5
|
||||
has_update(telegram, hpHystCool_, 35); // is / 5, maybe offset swapped with pool
|
||||
has_update(telegram, hpHystPool_, 33); // is / 5
|
||||
has_update(telegram, hpCircPumpWw_, 46);
|
||||
}
|
||||
|
||||
// Boiler(0x08) -B-> All(0x00), ?(0x0488), data: 8E 00 00 00 00 00 01 03
|
||||
@@ -2345,4 +2341,13 @@ bool Boiler::set_wwOffTemp(const char * value, const int8_t id) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Boiler::set_hpCircPumpWw(const char * value, const int8_t id) {
|
||||
bool v;
|
||||
if (Helpers::value2bool(value, v)) {
|
||||
write_command(0x484, 46, v ? 1 : 0, 0x484);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace emsesp
|
||||
|
||||
@@ -229,6 +229,7 @@ class Boiler : public EMSdevice {
|
||||
uint16_t hpHystPool_;
|
||||
uint8_t tempDiffHeat_;
|
||||
uint8_t tempDiffCool_;
|
||||
uint8_t hpCircPumpWw_;
|
||||
|
||||
uint8_t wwComfOffTemp_;
|
||||
uint8_t wwEcoOffTemp_;
|
||||
@@ -365,6 +366,7 @@ class Boiler : public EMSdevice {
|
||||
bool set_auxMaxTemp(const char * value, const int8_t id);
|
||||
bool set_manDefrost(const char * value, const int8_t id);
|
||||
bool set_pvCooling(const char * value, const int8_t id);
|
||||
bool set_hpCircPumpWw(const char * value, const int8_t id);
|
||||
|
||||
bool set_hpHyst(const char * value, const int8_t id);
|
||||
inline bool set_hpHystHeat(const char * value, const int8_t id) {
|
||||
|
||||
@@ -887,7 +887,7 @@ void Thermostat::process_HybridSettings(std::shared_ptr<const Telegram> telegram
|
||||
// 0x23E PV settings
|
||||
void Thermostat::process_PVSettings(std::shared_ptr<const Telegram> telegram) {
|
||||
has_update(telegram, pvRaiseHeat_, 0);
|
||||
has_update(telegram, pvEnable_, 3);
|
||||
has_update(telegram, pvEnableWw_, 3);
|
||||
has_update(telegram, pvLowerCool_, 5);
|
||||
}
|
||||
|
||||
@@ -1511,7 +1511,7 @@ bool Thermostat::set_tempDiffBoiler(const char * value, const int8_t id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Thermostat::set_pvEnable(const char * value, const int8_t id) {
|
||||
bool Thermostat::set_pvEnableWw(const char * value, const int8_t id) {
|
||||
bool v;
|
||||
if (Helpers::value2bool(value, v)) {
|
||||
write_command(0x23E, 3, v ? 0xFF : 0, 0x23E);
|
||||
@@ -3572,11 +3572,11 @@ void Thermostat::register_device_values() {
|
||||
1,
|
||||
99);
|
||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||
&pvEnable_,
|
||||
&pvEnableWw_,
|
||||
DeviceValueType::BOOL,
|
||||
FL_(pvEnable),
|
||||
FL_(pvEnableWw),
|
||||
DeviceValueUOM::NONE,
|
||||
MAKE_CF_CB(set_pvEnable));
|
||||
MAKE_CF_CB(set_pvEnableWw));
|
||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||
&pvRaiseHeat_,
|
||||
DeviceValueType::INT,
|
||||
|
||||
@@ -237,7 +237,7 @@ class Thermostat : public EMSdevice {
|
||||
uint8_t tempDiffBoiler_; // relative temperature degrees
|
||||
|
||||
// PV
|
||||
uint8_t pvEnable_;
|
||||
uint8_t pvEnableWw_;
|
||||
uint8_t pvRaiseHeat_;
|
||||
uint8_t pvLowerCool_;
|
||||
|
||||
@@ -498,7 +498,7 @@ class Thermostat : public EMSdevice {
|
||||
bool set_tempDiffBoiler(const char * value, const int8_t id);
|
||||
bool set_roomsensor(const char * value, const int8_t id);
|
||||
|
||||
bool set_pvEnable(const char * value, const int8_t id);
|
||||
bool set_pvEnableWw(const char * value, const int8_t id);
|
||||
bool set_pvRaiseHeat(const char * value, const int8_t id);
|
||||
bool set_pvLowerCool(const char * value, const int8_t id);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user