From 3ad90a6e340f1cb3f4b2b76bb8890692cbf3e21a Mon Sep 17 00:00:00 2001 From: sunbuzz Date: Sat, 28 Aug 2021 12:03:05 +0200 Subject: [PATCH] Added pool data to telegrams 0x494 & 0x495 --- src/devices/boiler.cpp | 22 +++++++++++++++++----- src/devices/boiler.h | 6 ++++++ src/locale_EN.h | 8 +++++++- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index cd1e560ea..b7c5307a1 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -162,20 +162,26 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const register_device_value(TAG_BOILER_DATA, &upTimeCompHeating_, DeviceValueType::TIME, FL_(div60), FL_(upTimeCompHeating), DeviceValueUOM::MINUTES); register_device_value(TAG_BOILER_DATA, &upTimeCompCooling_, DeviceValueType::TIME, FL_(div60), FL_(upTimeCompCooling), DeviceValueUOM::MINUTES); register_device_value(TAG_BOILER_DATA, &upTimeCompWw_, DeviceValueType::TIME, FL_(div60), FL_(upTimeCompWw), DeviceValueUOM::MINUTES); + register_device_value(TAG_BOILER_DATA, &upTimeCompPool_, DeviceValueType::TIME, FL_(div60), FL_(upTimeCompWw), DeviceValueUOM::MINUTES); + register_device_value(TAG_BOILER_DATA, &totalCompStarts_, DeviceValueType::ULONG, nullptr, FL_(heatingStarts), DeviceValueUOM::NUM); register_device_value(TAG_BOILER_DATA, &heatingStarts_, DeviceValueType::ULONG, nullptr, FL_(heatingStarts), DeviceValueUOM::NUM); register_device_value(TAG_BOILER_DATA, &coolingStarts_, DeviceValueType::ULONG, nullptr, FL_(coolingStarts), DeviceValueUOM::NUM); + register_device_value(TAG_BOILER_DATA, &poolStarts_, DeviceValueType::ULONG, nullptr, FL_(poolStarts), DeviceValueUOM::NUM); register_device_value(TAG_BOILER_DATA, &nrgConsTotal_, DeviceValueType::ULONG, nullptr, FL_(nrgConsTotal), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &nrgConsCompTotal_, DeviceValueType::ULONG, nullptr, FL_(nrgConsCompTotal), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &nrgConsCompHeating_, DeviceValueType::ULONG, nullptr, FL_(nrgConsCompHeating), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &nrgConsCompWw_, DeviceValueType::ULONG, nullptr, FL_(nrgConsCompWw), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &nrgConsCompCooling_, DeviceValueType::ULONG, nullptr, FL_(nrgConsCompCooling), DeviceValueUOM::KWH); + register_device_value(TAG_BOILER_DATA, &nrgConsCompPool_, DeviceValueType::ULONG, nullptr, FL_(nrgConsCompPool), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &auxElecHeatNrgConsTotal_, DeviceValueType::ULONG, nullptr, FL_(auxElecHeatNrgConsTotal), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &auxElecHeatNrgConsHeating_, DeviceValueType::ULONG, nullptr, FL_(auxElecHeatNrgConsHeating), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &auxElecHeatNrgConsWW_, DeviceValueType::ULONG, nullptr, FL_(auxElecHeatNrgConsWW), DeviceValueUOM::KWH); + register_device_value(TAG_BOILER_DATA, &auxElecHeatNrgConsPool_, DeviceValueType::ULONG, nullptr, FL_(auxElecHeatNrgConsPool), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &nrgSuppTotal_, DeviceValueType::ULONG, nullptr, FL_(nrgSuppTotal), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &nrgSuppHeating_, DeviceValueType::ULONG, nullptr, FL_(nrgSuppHeating), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &nrgSuppWw_, DeviceValueType::ULONG, nullptr, FL_(nrgSuppWw), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &nrgSuppCooling_, DeviceValueType::ULONG, nullptr, FL_(nrgSuppCooling), DeviceValueUOM::KWH); + register_device_value(TAG_BOILER_DATA, &nrgSuppPool_, DeviceValueType::ULONG, nullptr, FL_(nrgSuppPool), DeviceValueUOM::KWH); register_device_value(TAG_BOILER_DATA, &hpPower_, DeviceValueType::UINT, FL_(div10), FL_(hpPower), DeviceValueUOM::KW); register_device_value(TAG_BOILER_DATA, &hpTc0_, DeviceValueType::SHORT, FL_(div10), FL_(hpTc0), DeviceValueUOM::DEGREES); register_device_value(TAG_BOILER_DATA, &hpTc1_, DeviceValueType::SHORT, FL_(div10), FL_(hpTc1), DeviceValueUOM::DEGREES); @@ -603,32 +609,37 @@ void Boiler::process_UBAMonitorWWPlus(std::shared_ptr telegram) /* * UBAInformation - type 0x495 * all values 32 bit - * 08 0B FF 00 03 95 01 01 AB 83 00 27 78 EB 00 84 FA 39 FF FF FF 00 00 53 7D 8D 00 00 0F 04 1C - * 08 00 FF 00 03 95 01 01 AB 83 00 27 78 EB 00 84 FA 39 FF FF FF 00 00 53 7D 8D 00 00 0F 04 63 - * 08 00 FF 18 03 95 00 00 05 84 00 00 07 22 FF FF FF FF 00 00 02 5C 00 00 03 C0 00 00 01 98 64 - * 08 00 FF 30 03 95 00 00 00 D4 FF FF FF FF 00 00 1C 70 FF FF FF FF 00 00 20 30 00 00 0E 06 FB - * 08 00 FF 48 03 95 00 00 06 C0 00 00 07 66 FF FF FF FF 2E + * 08 00 FF 00 03 95 00 0F 8E C2 00 08 39 C8 00 00 18 7A 00 07 3C 80 00 00 00 00 00 00 00 E5 F6 00 + * 08 00 FF 18 03 95 00 00 00 A1 00 00 00 00 00 00 00 44 00 00 00 00 00 00 00 0A 00 00 00 0A BD 00 + * 08 00 FF 30 03 95 00 00 00 00 00 00 00 00 00 00 02 10 00 00 00 00 00 00 02 1A 00 00 00 02 66 00 + * 08 00 FF 48 03 95 00 00 01 15 00 00 00 00 00 00 00 F9 29 00 + * */ void Boiler::process_UBAInformation(std::shared_ptr telegram) { has_update(telegram->read_value(upTimeControl_, 0)); has_update(telegram->read_value(upTimeCompHeating_, 8)); has_update(telegram->read_value(upTimeCompCooling_, 16)); has_update(telegram->read_value(upTimeCompWw_, 4)); + has_update(telegram->read_value(upTimeCompPool_, 12)); + has_update(telegram->read_value(totalCompStarts_, 20)); has_update(telegram->read_value(heatingStarts_, 28)); has_update(telegram->read_value(coolingStarts_, 36)); has_update(telegram->read_value(wwStarts2_, 24)); + has_update(telegram->read_value(poolStarts_, 32)); has_update(telegram->read_value(nrgConsTotal_, 64)); has_update(telegram->read_value(auxElecHeatNrgConsTotal_, 40)); has_update(telegram->read_value(auxElecHeatNrgConsHeating_, 48)); has_update(telegram->read_value(auxElecHeatNrgConsWW_, 44)); + has_update(telegram->read_value(auxElecHeatNrgConsPool_, 52)); has_update(telegram->read_value(nrgConsCompTotal_, 56)); has_update(telegram->read_value(nrgConsCompHeating_, 68)); has_update(telegram->read_value(nrgConsCompWw_, 72)); has_update(telegram->read_value(nrgConsCompCooling_, 76)); + has_update(telegram->read_value(nrgConsCompPool_, 80)); } /* @@ -643,6 +654,7 @@ void Boiler::process_UBAEnergySupplied(std::shared_ptr telegram) has_update(telegram->read_value(nrgSuppHeating_, 12)); has_update(telegram->read_value(nrgSuppWw_, 8)); has_update(telegram->read_value(nrgSuppCooling_, 16)); + has_update(telegram->read_value(nrgSuppPool_, 20)); } // Heatpump power - type 0x48D diff --git a/src/devices/boiler.h b/src/devices/boiler.h index 0b8b85fbb..3c975341a 100644 --- a/src/devices/boiler.h +++ b/src/devices/boiler.h @@ -140,20 +140,26 @@ class Boiler : public EMSdevice { uint32_t upTimeCompHeating_; // Operating time compressor heating uint32_t upTimeCompCooling_; // Operating time compressor cooling uint32_t upTimeCompWw_; // Operating time compressor warm water + uint32_t upTimeCompPool_; // Operating time compressor pool + uint32_t totalCompStarts_; // Total Commpressor control starts uint32_t heatingStarts_; // Heating control starts uint32_t coolingStarts_; // Cooling control starts + uint32_t poolStarts_; // Warm water control starts uint32_t nrgConsTotal_; // Energy consumption total uint32_t nrgConsCompTotal_; // Energy consumption compressor total uint32_t nrgConsCompHeating_; // Energy consumption compressor heating uint32_t nrgConsCompWw_; // Energy consumption compressor warm water uint32_t nrgConsCompCooling_; // Energy consumption compressor cooling + uint32_t nrgConsCompPool_; // Energy consumption compressor pool uint32_t nrgSuppTotal_; // Energy supplied total uint32_t nrgSuppHeating_; // Energy supplied heating uint32_t nrgSuppWw_; // Energy supplied warm water uint32_t nrgSuppCooling_; // Energy supplied cooling + uint32_t nrgSuppPool_; // Energy supplied pool uint32_t auxElecHeatNrgConsTotal_; // Auxiliary electrical heater energy consumption total uint32_t auxElecHeatNrgConsHeating_; // Auxiliary electrical heater energy consumption heating uint32_t auxElecHeatNrgConsWW_; // Auxiliary electrical heater energy consumption DHW + uint32_t auxElecHeatNrgConsPool_; // Auxiliary electrical heater energy consumption Pool char maintenanceMessage_[4]; char maintenanceDate_[12]; uint8_t maintenanceType_; diff --git a/src/locale_EN.h b/src/locale_EN.h index d333705dc..5afdb863a 100644 --- a/src/locale_EN.h +++ b/src/locale_EN.h @@ -416,20 +416,26 @@ MAKE_PSTR_LIST(upTimeControl, F("uptimecontrol"), F("operating time total heat") MAKE_PSTR_LIST(upTimeCompHeating, F("uptimecompheating"), F("operating time compressor heating")) MAKE_PSTR_LIST(upTimeCompCooling, F("uptimecompcooling"), F("operating time compressor cooling")) MAKE_PSTR_LIST(upTimeCompWw, F("uptimecompww"), F("operating time compressor warm water")) +MAKE_PSTR_LIST(upTimeCompPool, F("uptimecomppool"), F("operating time compressor pool")) +MAKE_PSTR_LIST(totalcompStarts, F("totalcompstarts"), F("# total compressor control starts")) MAKE_PSTR_LIST(heatingStarts, F("heatingstarts"), F("# heating control starts")) MAKE_PSTR_LIST(coolingStarts, F("coolingstarts"), F("# cooling control starts")) +MAKE_PSTR_LIST(poolStarts, F("poolstarts"), F("# pool control starts")) MAKE_PSTR_LIST(nrgConsTotal, F("nrgconstotal"), F("total energy consumption")) MAKE_PSTR_LIST(nrgConsCompTotal, F("nrgconscomptotal"), F("energy consumption compressor total")) MAKE_PSTR_LIST(nrgConsCompHeating, F("nrgconscompheating"), F("energy consumption compressor heating")) MAKE_PSTR_LIST(nrgConsCompWw, F("nrgconscompww"), F("energy consumption compressor warm water")) MAKE_PSTR_LIST(nrgConsCompCooling, F("nrgconscompcooling"), F("energy consumption compressor cooling")) +MAKE_PSTR_LIST(nrgConsCompPool, F("nrgconscomppool"), F("energy consumption compressor pool")) MAKE_PSTR_LIST(nrgSuppTotal, F("nrgsupptotal"), F("total energy supplied")) MAKE_PSTR_LIST(nrgSuppHeating, F("nrgsuppheating"), F("total energy supplied heating")) MAKE_PSTR_LIST(nrgSuppWw, F("nrgsuppww"), F("total energy warm supplied warm water")) MAKE_PSTR_LIST(nrgSuppCooling, F("nrgsuppcooling"), F("total energy supplied cooling")) +MAKE_PSTR_LIST(nrgSuppPool, F("nrgsupppool"), F("total energy supplied pool")) MAKE_PSTR_LIST(auxElecHeatNrgConsTotal, F("auxelecheatnrgconstotal"), F("auxiliary electrical heater energy consumption total")) MAKE_PSTR_LIST(auxElecHeatNrgConsHeating, F("auxelecheatnrgconsheating"), F("auxiliary electrical heater energy consumption heating")) -MAKE_PSTR_LIST(auxElecHeatNrgConsWW, F("auxelecheatnrgconsww"), F("auxiliary electrical heater energy consumption")) +MAKE_PSTR_LIST(auxElecHeatNrgConsWW, F("auxelecheatnrgconsww"), F("auxiliary electrical heater energy consumption warm water")) +MAKE_PSTR_LIST(auxElecHeatNrgConsPool, F("auxelecheatnrgconspool"), F("auxiliary electrical heater energy consumption pool")) MAKE_PSTR_LIST(hpPower, F("hppower"), F("heatpump power")) MAKE_PSTR_LIST(hpTc0, F("hptc0"), F("water temperature condenser inlet (TC0)"))