Skip to content

Commit bbc2de0

Browse files
committed
support dhw5...
1 parent df808a2 commit bbc2de0

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

src/devices/water.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,20 @@ Water::Water(uint8_t device_type, uint8_t device_id, uint8_t product_id, const c
2929
dhw_ = device_id - EMSdevice::EMS_DEVICE_ID_DHW1;
3030
int8_t tag = DeviceValueTAG::TAG_DHW1 + dhw_;
3131
if (flags == EMSdevice::EMS_DEVICE_FLAG_SM100) { // device_id 0x2A, DHW3
32+
3233
// telegram handlers
34+
register_telegram_type(0x07D6 + dhw_ - 2, "SM100wwTemperature", false, MAKE_PF_CB(process_SM100wwTemperature));
35+
register_telegram_type(0x07E0 + dhw_ - 2, "SM100wwStatus2", true, MAKE_PF_CB(process_SM100wwStatus2));
36+
register_telegram_type(0x07A6, "SM100wwParam", true, MAKE_PF_CB(process_SM100wwParam)); // same telegram for all circuits
3337
if (tag == DeviceValueTAG::TAG_DHW3) {
3438
register_telegram_type(0x07AA, "SM100wwStatus", false, MAKE_PF_CB(process_SM100wwStatus));
3539
register_telegram_type(0x07AC, "SM100wwParam1", false, MAKE_PF_CB(process_SM100wwParam2));
3640
register_telegram_type(0x07A5, "SM100wwCirc", true, MAKE_PF_CB(process_SM100wwCirc));
37-
register_telegram_type(0x07A6, "SM100wwParam", true, MAKE_PF_CB(process_SM100wwParam));
3841
register_telegram_type(0x07AE, "SM100wwKeepWarm", true, MAKE_PF_CB(process_SM100wwKeepWarm));
3942
register_telegram_type(0x07AD, "SM100ValveStatus", false, MAKE_PF_CB(process_SM100ValveStatus));
40-
register_telegram_type(0x07AB, "SM100wwCommand", false, MAKE_PF_CB(process_SM100wwCommand));
41-
register_telegram_type(0x07D6, "SM100wwTemperature", false, MAKE_PF_CB(process_SM100wwTemperature));
42-
register_telegram_type(0x07E0, "SM100wwStatus2", true, MAKE_PF_CB(process_SM100wwStatus2));
43-
// 0x07C3
43+
register_telegram_type(0x07AB, "SM100wwCommand", false, MAKE_PF_CB(process_SM100wwCommand)); // command from thermostat
4444
} else if (tag == DeviceValueTAG::TAG_DHW4) {
45-
register_telegram_type(0x07A6, "SM100wwParam", true, MAKE_PF_CB(process_SM100wwParam));
46-
register_telegram_type(0x07D7, "SM100wwTemperature", false, MAKE_PF_CB(process_SM100wwTemperature));
47-
register_telegram_type(0x07E1, "SM100wwStatus2", true, MAKE_PF_CB(process_SM100wwStatus2));
48-
register_telegram_type(0x07C3, "SM100wwCommand", false, MAKE_PF_CB(process_SM100wwCommand));
45+
register_telegram_type(0x07C3, "SM100wwCommand", false, MAKE_PF_CB(process_SM100wwCommand)); // command from dhw3->dhw4
4946
}
5047
// device values...
5148
register_device_value(tag, &wwTemp_, DeviceValueType::UINT16, DeviceValueNumOp::DV_NUMOP_DIV10, FL_(wwTemp), DeviceValueUOM::DEGREES);
@@ -275,7 +272,7 @@ bool Water::set_wwMaxTemp(const char * value, const int8_t id) {
275272
} else if (flags() == EMSdevice::EMS_DEVICE_FLAG_MMPLUS) {
276273
write_command(0x313 + dhw_, 10, (uint8_t)temperature, 0x313 + dhw_);
277274
} else { // SM100
278-
write_command(0x7A6, 8, (uint8_t)temperature, 0x7A6);
275+
write_command(0x7A6, 8, (uint8_t)temperature, 0x7A6);
279276
}
280277
return true;
281278
}

0 commit comments

Comments
 (0)