diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp index 478722457..0a8bf22d2 100644 --- a/src/devices/thermostat.cpp +++ b/src/devices/thermostat.cpp @@ -194,6 +194,7 @@ Thermostat::Thermostat(uint8_t device_type, uint8_t device_id, uint8_t product_i register_telegram_type(0x269, "RC300Holiday", true, MAKE_PF_CB(process_RC300Holiday)); } register_telegram_type(0x16E, "Absent", true, MAKE_PF_CB(process_Absent)); + register_telegram_type(0xBF, "ErrorMessage", false, MAKE_PF_CB(process_ErrorMessageBF)); register_telegram_type(0xC0, "RCErrorMessage", false, MAKE_PF_CB(process_RCErrorMessage2)); EMSESP::send_read_request(0xC0, device_id); // read last errorcode on start (only published on errors) @@ -1757,6 +1758,12 @@ void Thermostat::process_RCErrorMessage(std::shared_ptr telegram } } } + +// 0xBF +void Thermostat::process_ErrorMessageBF(std::shared_ptr telegram) { + EMSESP::send_read_request(0xC0, device_id(), 0, 20); // read last errorcode +} + // 0xC0 error log for RC300 void Thermostat::process_RCErrorMessage2(std::shared_ptr telegram) { if (telegram->offset > 0 || telegram->message_length < 20) { diff --git a/src/devices/thermostat.h b/src/devices/thermostat.h index 9f1b243f0..3ee85bdc2 100644 --- a/src/devices/thermostat.h +++ b/src/devices/thermostat.h @@ -412,6 +412,7 @@ class Thermostat : public EMSdevice { void process_RCError(std::shared_ptr telegram); void process_RCErrorMessage(std::shared_ptr telegram); void process_RCErrorMessage2(std::shared_ptr telegram); + void process_ErrorMessageBF(std::shared_ptr telegram); void process_RC35wwSettings(std::shared_ptr telegram); void process_RC35wwTimer(std::shared_ptr telegram); void process_RC35Monitor(std::shared_ptr telegram);