@@ -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