From 5a69ac074fbdeabb4b536fe585a69cf41746a6e3 Mon Sep 17 00:00:00 2001 From: pswid <78219494+pswid@users.noreply.github.com> Date: Tue, 20 Dec 2022 12:01:41 +0100 Subject: [PATCH 1/2] added "compressor temp." for more hp types tested with Buderus WSW196iT --- src/devices/boiler.cpp | 8 +++++--- src/devices/boiler.h | 3 ++- src/devices/heatpump.cpp | 1 - src/locale_translations.h | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index 3923db89e..a67225bbe 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -176,7 +176,7 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const register_telegram_type(0x494, "UBAEnergySupplied", false, MAKE_PF_CB(process_UBAEnergySupplied)); register_telegram_type(0x495, "UBAInformation", false, MAKE_PF_CB(process_UBAInformation)); register_telegram_type(0x48D, "HpPower", true, MAKE_PF_CB(process_HpPower)); - register_telegram_type(0x48F, "HpOutdoor", false, MAKE_PF_CB(process_HpOutdoor)); + register_telegram_type(0x48F, "HpTemperatures", false, MAKE_PF_CB(process_HpTemperatures)); register_telegram_type(0x48A, "HpPool", true, MAKE_PF_CB(process_HpPool)); register_telegram_type(0x4A2, "HpInput", true, MAKE_PF_CB(process_HpInput)); register_telegram_type(0x486, "HpInConfig", true, MAKE_PF_CB(process_HpInConfig)); @@ -494,6 +494,7 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTc0_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTc0), DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTc1_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTc1), DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTc3_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTc3), DeviceValueUOM::DEGREES); + register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTr1_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTr1), DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTr3_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTr3), DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTr4_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTr4), DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTr5_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTr5), DeviceValueUOM::DEGREES); @@ -1206,11 +1207,12 @@ void Boiler::process_HpPower(std::shared_ptr telegram) { has_update(hpPoolOn_, hpActivity_ == 4 ? 0xFF : 0); } -// Heatpump outdoor unit - type 0x48F -void Boiler::process_HpOutdoor(std::shared_ptr telegram) { +// Heatpump temperatures - type 0x48F +void Boiler::process_HpTemperatures(std::shared_ptr telegram) { has_update(telegram, hpTc0_, 6); has_update(telegram, hpTc1_, 4); has_update(telegram, hpTc3_, 2); + has_update(telegram, hpTr1_, 14); has_update(telegram, hpTr3_, 16); has_update(telegram, hpTr4_, 18); // has_update(telegram, hpTr5_, 20); diff --git a/src/devices/boiler.h b/src/devices/boiler.h index b6b0c8a33..1297ec619 100644 --- a/src/devices/boiler.h +++ b/src/devices/boiler.h @@ -190,6 +190,7 @@ class Boiler : public EMSdevice { int16_t hpTc0_; int16_t hpTc1_; int16_t hpTc3_; + int16_t hpTr1_; int16_t hpTr3_; int16_t hpTr4_; int16_t hpTr5_; @@ -293,7 +294,7 @@ class Boiler : public EMSdevice { void process_CascadeMessage(std::shared_ptr telegram); void process_UBASettingsWW(std::shared_ptr telegram); void process_HpPower(std::shared_ptr telegram); - void process_HpOutdoor(std::shared_ptr telegram); + void process_HpTemperatures(std::shared_ptr telegram); void process_HpPool(std::shared_ptr telegram); void process_HpInput(std::shared_ptr telegram); void process_HpInConfig(std::shared_ptr telegram); diff --git a/src/devices/heatpump.cpp b/src/devices/heatpump.cpp index bd986591d..a3e9b9dd6 100644 --- a/src/devices/heatpump.cpp +++ b/src/devices/heatpump.cpp @@ -44,7 +44,6 @@ Heatpump::Heatpump(uint8_t device_type, uint8_t device_id, uint8_t product_id, c register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTa4_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTa4), DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTr1_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTr1), DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTr3_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTr3), DeviceValueUOM::DEGREES); - register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTr3_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTr3), DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTr4_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTr4), DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTr5_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTr5), DeviceValueUOM::DEGREES); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hpTr6_, DeviceValueType::SHORT, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(hpTr6), DeviceValueUOM::DEGREES); diff --git a/src/locale_translations.h b/src/locale_translations.h index 1f2f4466d..cc9b54cb7 100644 --- a/src/locale_translations.h +++ b/src/locale_translations.h @@ -345,7 +345,7 @@ MAKE_PSTR_LIST(hpPower, "hppower", "compressor power output", "Kompressorleistun MAKE_PSTR_LIST(hpTc0, "hptc0", "heat carrier return (TC0)", "Kältemittel Rücklauf (TC0)", "Koudemiddel retour (TC0)", "Värmebärare Retur (TC0)", "temperatura nośnika ciepła na powrocie (TC0)", "kjølemiddel retur (TC0)", "retour caloporteur (TC0)") MAKE_PSTR_LIST(hpTc1, "hptc1", "heat carrier forward (TC1)", "Kältemittel Vorlauf (TC1)", "Koudemiddel aanvoer (TC1)", "Värmebärare Framledning (TC1)", "temperatura nośnika ciepła pierwotna (TC1)", "kjølemiddel tur (TC1)", "avance caloporteur (TC1)") MAKE_PSTR_LIST(hpTc3, "hptc3", "condenser temperature (TC3)", "Verflüssigertemperatur (TC3)", "Condensortemperatuur (TC3)", "Kondensortemperatur (TC3)", "temperatura skraplacza/na wyjściu sprężarki (TC3)", "kondensortemperatur (TC3)", "température condensateur (TC3)") -MAKE_PSTR_LIST(hpTr1, "hptr1", "compressor temperature (TR1)", "Kompessortemperatur (TR1)", "Compressor temperatuur (TR1)", "Kompressor temp (TR1)", "kompressor temp (TR1)", "température compresseur (TR1)") +MAKE_PSTR_LIST(hpTr1, "hptr1", "compressor temperature (TR1)", "Kompessortemperatur (TR1)", "Compressor temperatuur (TR1)", "Kompressor temp (TR1)", "temperatura sprężarki (TR1)", "kompressor temperatur (TR1)", "température compresseur (TR1)") MAKE_PSTR_LIST(hpTr3, "hptr3", "refrigerant temperature liquid side (condenser output) (TR3)", "Kältemittel (flüssig) (TR3)", "Temperatuur koudemiddel vloeibare zijde (TR3)", "Köldmedium temperatur (kondensorutlopp) (TR3)", "temperatura skraplacza ogrzew. (TR3)", "kjølemiddeltemperatur på væskesiden (TR3)", "température réfrigérant côté liquide (sortie condensateur) (TR3)") MAKE_PSTR_LIST(hpTr4, "hptr4", "evaporator inlet temperature (TR4)", "Verdampfer Eingang (TR4)", "Verdamper ingangstemperatuur (TR4)", "Förångare inloppstemp (TR4)", "temperatura na wejściu parownika (TR4)", "innløpstemperatur for fordamperen (TR4)", "température entrée évaporateur (TR4)") MAKE_PSTR_LIST(hpTr5, "hptr5", "compressor inlet temperature (TR5)", "Kompessoreingang (TR5)", "Compressor ingangstemperatuur (TR5)", "Kompressor inloppstemp (TR5)", "temperatura na wejściu sprężarki (TR5)", "kompressor innløpstemp (TR5)", "température entrée compresseur (TR5)") From d1afea104e56a436bdb346f8823ea24337324adc Mon Sep 17 00:00:00 2001 From: pswid <78219494+pswid@users.noreply.github.com> Date: Wed, 21 Dec 2022 09:19:33 +0100 Subject: [PATCH 2/2] added dhw eco+ switch off temp tested on the Buderus WSW196iT --- src/devices/boiler.cpp | 9 +++++++++ src/devices/boiler.h | 5 ++++- src/locale_translations.h | 5 +++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index fd49debf0..658936393 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -662,6 +662,14 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const MAKE_CF_CB(set_wwEcoOffTemp), 15, 65); + register_device_value(DeviceValueTAG::TAG_BOILER_DATA_WW, + &wwEcoPlusOffTemp_, + DeviceValueType::UINT, + FL_(wwEcoPlusOffTemp), + DeviceValueUOM::DEGREES, + MAKE_CF_CB(set_wwEcoPlusOffTemp), + 48, + 63); } // dhw - DEVICE_DATA_ww topic @@ -1595,6 +1603,7 @@ void Boiler::process_HpAdditionalHeater(std::shared_ptr telegram void Boiler::process_HpDhwSettings(std::shared_ptr telegram) { has_update(telegram, wwComfOffTemp_, 1); has_update(telegram, wwEcoOffTemp_, 0); + has_update(telegram, wwEcoPlusOffTemp_, 5); } // Settings AM200 diff --git a/src/devices/boiler.h b/src/devices/boiler.h index 594be2ec0..aa6c30879 100644 --- a/src/devices/boiler.h +++ b/src/devices/boiler.h @@ -258,6 +258,7 @@ class Boiler : public EMSdevice { uint8_t wwComfOffTemp_; uint8_t wwEcoOffTemp_; + uint8_t wwEcoPlusOffTemp_; /* // Hybrid heatpump with telegram 0xBB is readable and writeable in boiler and thermostat @@ -430,7 +431,9 @@ class Boiler : public EMSdevice { inline bool set_wwEcoOffTemp(const char * value, const int8_t id) { return set_wwOffTemp(value, 0); } - + inline bool set_wwEcoPlusOffTemp(const char * value, const int8_t id) { + return set_wwOffTemp(value, 5); + } /* bool set_hybridStrategy(const char * value, const int8_t id); bool set_switchOverTemp(const char * value, const int8_t id); diff --git a/src/locale_translations.h b/src/locale_translations.h index 91acdc627..02217b543 100644 --- a/src/locale_translations.h +++ b/src/locale_translations.h @@ -382,8 +382,9 @@ MAKE_PSTR_LIST(hpHystPool, "hphystpool", "on/off hyst pool", "Schalthysterese Po MAKE_PSTR_LIST(tempDiffHeat, "tempdiffheat", "temp. diff. TC3/TC0 heat", "Temp.diff. TC3/TC0 Heizen", "Temp.vers. TC3/TC0 verw", "", "", "", "Delta T TC3/TC0 Chauff") MAKE_PSTR_LIST(tempDiffCool, "tempdiffcool", "temp. diff. TC3/TC0 cool", "Temp.diff. TC3/TC0 Kühlen", "Temp.vers. TC3/TC0 koel.", "", "", "", "Delta T TC3/TC0 Refroid.") -MAKE_PSTR_LIST(wwComfOffTemp, "wwcomfoff", "comfort switch off", "Komfort Ausschalttemp", "Comfort Uitschakeltemp.", "", "", "", "Confort Temp. d'arrêt") -MAKE_PSTR_LIST(wwEcoOffTemp, "wwecooff", "eco switch off", "ECO Ausschalttemp", "Eco Uitschakeltemp.", "", "", "", "Eco Temp. d'arrêt") +MAKE_PSTR_LIST(wwComfOffTemp, "wwcomfoff", "comfort switch off", "Komfort Ausschalttemp", "Comfort Uitschakeltemp.", "", "temperatura wyłączania w trybie komfort", "", "Confort Temp. d'arrêt") +MAKE_PSTR_LIST(wwEcoOffTemp, "wwecooff", "eco switch off", "ECO Ausschalttemp", "Eco Uitschakeltemp.", "", "temperatura wyłączania w trybie eko", "", "Eco Temp. d'arrêt") +MAKE_PSTR_LIST(wwEcoPlusOffTemp, "wwecoplusoff", "eco+ switch off", "ECO+ Ausschalttemp", "Eco+ Uitschakeltemp.", "", "temperatura wyłączania w trybie eko+", "", "Eco+ Temp. d'arrêt") // hybrid heatpump MAKE_PSTR_LIST(hybridStrategy, "hybridstrategy", "hybrid control strategy", "Hybrid Strategie", "Hybride strategie", "Hybrid kontrollstrategi", "strategia sterowania hybrydowego", "hybrid kontrollstrategi", "stratégie contrôle hybride")