check RC20 master/remote thermostat, #1378

This commit is contained in:
MichaelDvP
2023-11-02 07:34:18 +01:00
parent c934b9e8d9
commit e7b7002883

View File

@@ -83,6 +83,7 @@ Thermostat::Thermostat(uint8_t device_type, uint8_t device_id, uint8_t product_i
// RC20 // RC20
} else if (model == EMSdevice::EMS_DEVICE_FLAG_RC20) { } else if (model == EMSdevice::EMS_DEVICE_FLAG_RC20) {
if (device_id == 0x17) { // master
monitor_typeids = {0x91}; monitor_typeids = {0x91};
set_typeids = {0xA8}; set_typeids = {0xA8};
curve_typeids = {0x90}; curve_typeids = {0x90};
@@ -93,17 +94,23 @@ Thermostat::Thermostat(uint8_t device_type, uint8_t device_id, uint8_t product_i
register_telegram_type(curve_typeids[i], "RC20Temp", false, MAKE_PF_CB(process_RC20Temp)); register_telegram_type(curve_typeids[i], "RC20Temp", false, MAKE_PF_CB(process_RC20Temp));
register_telegram_type(timer_typeids[i], "RC20Timer", false, MAKE_PF_CB(process_RC20Timer)); register_telegram_type(timer_typeids[i], "RC20Timer", false, MAKE_PF_CB(process_RC20Timer));
} }
} else {
// remote thermostat uses only 0xAF // remote thermostat uses only 0xAF
register_telegram_type(0xAF, "RC20Remote", false, MAKE_PF_CB(process_RC20Remote)); register_telegram_type(0xAF, "RC20Remote", false, MAKE_PF_CB(process_RC20Remote));
}
// RC20 newer // RC20 newer
} else if ((model == EMSdevice::EMS_DEVICE_FLAG_RC20_N) || (model == EMSdevice::EMS_DEVICE_FLAG_RC25)) { } else if ((model == EMSdevice::EMS_DEVICE_FLAG_RC20_N) || (model == EMSdevice::EMS_DEVICE_FLAG_RC25)) {
if (device_id == 0x17) { // master
monitor_typeids = {0xAE}; monitor_typeids = {0xAE};
set_typeids = {0xAD}; set_typeids = {0xAD};
for (uint8_t i = 0; i < monitor_typeids.size(); i++) { for (uint8_t i = 0; i < monitor_typeids.size(); i++) {
register_telegram_type(monitor_typeids[i], "RC20Monitor", false, MAKE_PF_CB(process_RC20Monitor_2)); register_telegram_type(monitor_typeids[i], "RC20Monitor", false, MAKE_PF_CB(process_RC20Monitor_2));
register_telegram_type(set_typeids[i], "RC20Set", false, MAKE_PF_CB(process_RC20Set_2)); register_telegram_type(set_typeids[i], "RC20Set", false, MAKE_PF_CB(process_RC20Set_2));
} }
} else {
// remote thermostat uses only 0xAF
register_telegram_type(0xAF, "RC20Remote", false, MAKE_PF_CB(process_RC20Remote)); register_telegram_type(0xAF, "RC20Remote", false, MAKE_PF_CB(process_RC20Remote));
}
// RC30 // RC30
} else if (model == EMSdevice::EMS_DEVICE_FLAG_RC30) { } else if (model == EMSdevice::EMS_DEVICE_FLAG_RC30) {
monitor_typeids = {0x41}; monitor_typeids = {0x41};