diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 043b345ba..9519ed084 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -8,7 +8,7 @@ ## Added -- +- detect old Tado thermostat, device-id 0x19, no entities ## Fixed @@ -17,4 +17,4 @@ ## Changed - Use byte 0 for detection RC30 active heatingcircuit [#786](https://github.com/emsesp/EMS-ESP32/issues/786) -- Write repeated selflowtemp if tx-queue is empty without verify [#954](https://github.com/emsesp/EMS-ESP32/issues/954) +- Write repeated selflowtemp if tx-queue is empty without verify [#954](https://github.com/emsesp/EMS-ESP32/issues/954) \ No newline at end of file diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp index 21f8c16c9..2ecb2d4ae 100644 --- a/src/devices/thermostat.cpp +++ b/src/devices/thermostat.cpp @@ -1192,10 +1192,7 @@ void Thermostat::process_RC30Temp(std::shared_ptr telegram) { // type 0x3E (HC1), 0x48 (HC2), 0x52 (HC3), 0x5C (HC4) - data from the RC35 thermostat (0x10) - 16 bytes void Thermostat::process_RC35Monitor(std::shared_ptr telegram) { - // exit if the 15th byte (second from last) is 0x00, which I think is calculated flow setpoint temperature - // with weather controlled RC35s this value is >=5, otherwise can be zero and our setpoint temps will be incorrect - // see https://github.com/emsesp/EMS-ESP/issues/373#issuecomment-627907301 - // some RC30_N have only 13 byte, use byte 0 for active detection. + // Check if heatingciruit is active, see https://github.com/emsesp/EMS-ESP32/issues/786 if (telegram->offset > 0 || telegram->message_data[0] == 0x00) { return; } diff --git a/src/emsdevice.h b/src/emsdevice.h index 54df6d87d..77b9116b1 100644 --- a/src/emsdevice.h +++ b/src/emsdevice.h @@ -366,6 +366,7 @@ class EMSdevice { static constexpr uint8_t EMS_DEVICE_ID_RFSENSOR = 0x40; // RF sensor only sending, no reply static constexpr uint8_t EMS_DEVICE_ID_RFBASE = 0x50; static constexpr uint8_t EMS_DEVICE_ID_ROOMTHERMOSTAT = 0x17; // TADO using this with no version reply + static constexpr uint8_t EMS_DEVICE_ID_TADO_OLD = 0x19; // TADO using this with no broadcast and version // generic type IDs static constexpr uint16_t EMS_TYPE_VERSION = 0x02; // type ID for Version information. Generic across all EMS devices. diff --git a/src/emsesp.cpp b/src/emsesp.cpp index 1d2dc4873..217df90a7 100644 --- a/src/emsesp.cpp +++ b/src/emsesp.cpp @@ -1057,7 +1057,7 @@ bool EMSESP::add_device(const uint8_t device_id, const uint8_t product_id, const // see: https://github.com/emsesp/EMS-ESP32/issues/103#issuecomment-911717342 and https://github.com/emsesp/EMS-ESP32/issues/624 name = "RF room temperature sensor"; device_type = DeviceType::THERMOSTAT; - } else if (device_id == EMSdevice::EMS_DEVICE_ID_ROOMTHERMOSTAT) { + } else if (device_id == EMSdevice::EMS_DEVICE_ID_ROOMTHERMOSTAT || device_id == EMSdevice::EMS_DEVICE_ID_TADO_OLD) { name = "Generic thermostat"; device_type = DeviceType::THERMOSTAT; flags = DeviceFlags::EMS_DEVICE_FLAG_RC10 | DeviceFlags::EMS_DEVICE_FLAG_NO_WRITE;