@@ -84,6 +84,8 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
84
84
register_telegram_type (0x499 , " HPDhwSettings" , true , MAKE_PF_CB (process_HpDhwSettings));
85
85
register_telegram_type (0x49C , " HPSettings2" , true , MAKE_PF_CB (process_HpSettings2));
86
86
register_telegram_type (0x49D , " HPSettings3" , true , MAKE_PF_CB (process_HpSettings3));
87
+ register_telegram_type (0x4AE , " HPEnergy" , true , MAKE_PF_CB (process_HpEnergy));
88
+ register_telegram_type (0x4AF , " HPMeters" , true , MAKE_PF_CB (process_HpMeters));
87
89
}
88
90
89
91
if (model () == EMSdevice::EMS_DEVICE_FLAG_HIU) {
@@ -280,6 +282,12 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
280
282
MAKE_CF_CB (set_emergency_temp),
281
283
15 ,
282
284
70 );
285
+ register_device_value (DeviceValueTAG::TAG_DEVICE_DATA, &nrgTotal_, DeviceValueType::ULONG, DeviceValueNumOp::DV_NUMOP_DIV100, FL_ (nrgTotal), DeviceValueUOM::KWH);
286
+ register_device_value (DeviceValueTAG::TAG_BOILER_DATA_WW, &nrgWw_, DeviceValueType::ULONG, DeviceValueNumOp::DV_NUMOP_DIV100, FL_ (nrgWw), DeviceValueUOM::KWH);
287
+ register_device_value (DeviceValueTAG::TAG_DEVICE_DATA, &nrgHeat_, DeviceValueType::ULONG, DeviceValueNumOp::DV_NUMOP_DIV100, FL_ (nrgHeat), DeviceValueUOM::KWH);
288
+ register_device_value (DeviceValueTAG::TAG_DEVICE_DATA, &meterTotal_, DeviceValueType::ULONG, DeviceValueNumOp::DV_NUMOP_DIV100, FL_ (meterTotal), DeviceValueUOM::KWH);
289
+ register_device_value (DeviceValueTAG::TAG_DEVICE_DATA, &meterComp_, DeviceValueType::ULONG, DeviceValueNumOp::DV_NUMOP_DIV100, FL_ (meterComp), DeviceValueUOM::KWH);
290
+ register_device_value (DeviceValueTAG::TAG_DEVICE_DATA, &meterEHeat_, DeviceValueType::ULONG, DeviceValueNumOp::DV_NUMOP_DIV100, FL_ (meterEHeat), DeviceValueUOM::KWH);
283
291
284
292
/*
285
293
* Hybrid heatpump with telegram 0xBB is readable and writeable in boiler and thermostat
@@ -1780,6 +1788,23 @@ void Boiler::process_HpSettings3(std::shared_ptr<const Telegram> telegram) {
1780
1788
has_update (telegram, elHeatStep3_, 9 );
1781
1789
}
1782
1790
1791
+ // boiler(0x08) -W-> Me(0x0B), ?(0x04AE), data: 00 00 BD C4 00 00 5B 6A 00 00 00 24 00 00 62 59 00 00 00 00 00 00 00 00
1792
+ // boiler(0x08) -W-> Me(0x0B), ?(0x04AE), data: 00 00 00 00 00 00 00 00 (offset 24)
1793
+ void Boiler::process_HpEnergy (std::shared_ptr<const Telegram> telegram) {
1794
+ has_update (telegram, nrgTotal_, 0 );
1795
+ has_update (telegram, nrgWw_, 4 );
1796
+ has_update (telegram, nrgHeat_, 12 );
1797
+ }
1798
+
1799
+ // boiler(0x08) -W-> Me(0x0B), ?(0x04AF), data: 00 00 48 B2 00 00 48 55 00 00 00 5D 00 00 01 78 00 00 00 00 00 00 07 61
1800
+ // boiler(0x08) -W-> Me(0x0B), ?(0x04AF), data: 00 00 24 B0 00 00 00 12 00 00 23 A5 00 00 00 4B 00 00 00 00 00 00 00 00 (offset 24)
1801
+ // boiler(0x08) -W-> Me(0x0B), ?(0x04AF), data: 00 00 00 00 00 00 00 00 (offset 48)
1802
+ void Boiler::process_HpMeters (std::shared_ptr<const Telegram> telegram) {
1803
+ has_update (telegram, meterTotal_, 0 );
1804
+ has_update (telegram, meterComp_, 4 );
1805
+ has_update (telegram, meterEHeat_, 8 );
1806
+ }
1807
+
1783
1808
// HIU unit
1784
1809
1785
1810
// boiler(0x08) -B-> All(0x00), ?(0x0779), data: 06 05 01 01 AD 02 EF FF FF 00 00 7F FF
0 commit comments