diff --git a/src/device_library.h b/src/device_library.h index 8cfdf37ac..78f85c94a 100644 --- a/src/device_library.h +++ b/src/device_library.h @@ -70,8 +70,6 @@ {206, DeviceType::CONTROLLER, "Ecomline", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x09 {207, DeviceType::CONTROLLER, "Sense II/CS200", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x10 {209, DeviceType::CONTROLLER, "ErP", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x09 -{218, DeviceType::CONTROLLER, "M200/RFM200", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x50 -{220, DeviceType::CONTROLLER, "BC30", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x16 {224, DeviceType::CONTROLLER, "9000i", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x09 {229, DeviceType::CONTROLLER, "8700i", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x09 {230, DeviceType::CONTROLLER, "BC Base", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x09 @@ -165,6 +163,7 @@ {206, DeviceType::CONNECT, "Easy Connect", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // Wireless sensor base - 0x50 +{218, DeviceType::CONNECT, "M200/RFM200", DeviceFlags::EMS_DEVICE_FLAG_NONE}, {236, DeviceType::CONNECT, "Wireless sensor base", DeviceFlags::EMS_DEVICE_FLAG_NONE}, {238, DeviceType::CONNECT, "Wireless sensor base", DeviceFlags::EMS_DEVICE_FLAG_NONE}, @@ -174,6 +173,9 @@ // EM10/100 extension module, pump module - 0x15 { 243, DeviceType::EXTENSION, "EM10/EM100", DeviceFlags::EMS_DEVICE_FLAG_NONE}, +// Wireless outdoor sensor T1RF - 0x16 +{ 220, DeviceType::EXTENSION, "T1RF", DeviceFlags::EMS_DEVICE_FLAG_NONE}, // 0x16 + // EM10 error contact and analog flowtemp control- 0x12 { 74, DeviceType::ALERT, "EM10", DeviceFlags::EMS_DEVICE_FLAG_NONE}, diff --git a/src/devices/connect.cpp b/src/devices/connect.cpp index db5d578e3..8e795c242 100644 --- a/src/devices/connect.cpp +++ b/src/devices/connect.cpp @@ -24,6 +24,28 @@ REGISTER_FACTORY(Connect, EMSdevice::DeviceType::CONNECT); Connect::Connect(uint8_t device_type, uint8_t device_id, uint8_t product_id, const char * version, const char * name, uint8_t flags, uint8_t brand) : EMSdevice(device_type, device_id, product_id, version, name, flags, brand) { + if (device_id == 0x50) { // RF Base + register_telegram_type(0xD1, "RFOutdoorTemp", false, MAKE_PF_CB(process_OutdoorTemp)); + register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, + &outdoorTemp_, + DeviceValueType::SHORT, + DeviceValueNumOp::DV_NUMOP_DIV10, + FL_(outdoorTemp), + DeviceValueUOM::DEGREES); + } +} +/* + * OutdoorTemp - type 0xD1 - external temperature + */ +void Connect::process_OutdoorTemp(std::shared_ptr telegram) { + has_update(telegram, outdoorTemp_, 0); } -} // namespace emsesp \ No newline at end of file +/* other values from 0x50 RF base +(0x087F), data: 00 00 +(0x0880), data: 01 04 +(0x0889), data: 00 80 80 01 +*/ + + +} // namespace emsesp diff --git a/src/devices/connect.h b/src/devices/connect.h index 18b75c40f..d868c0872 100644 --- a/src/devices/connect.h +++ b/src/devices/connect.h @@ -26,6 +26,10 @@ namespace emsesp { class Connect : public EMSdevice { public: Connect(uint8_t device_type, uint8_t device_id, uint8_t product_id, const char * version, const char * name, uint8_t flags, uint8_t brand); + + private: + void process_OutdoorTemp(std::shared_ptr telegram); + int16_t outdoorTemp_; }; } // namespace emsesp diff --git a/src/devices/extension.cpp b/src/devices/extension.cpp index 153d8dfca..181103fa9 100644 --- a/src/devices/extension.cpp +++ b/src/devices/extension.cpp @@ -24,6 +24,11 @@ REGISTER_FACTORY(Extension, EMSdevice::DeviceType::EXTENSION); Extension::Extension(uint8_t device_type, uint8_t device_id, uint8_t product_id, const char * version, const char * name, uint8_t flags, uint8_t brand) : EMSdevice(device_type, device_id, product_id, version, name, flags, brand) { + if (device_id == 0x16) { + // no entities for T1RF outdoor sensor, values are comming from RFbase 0x50 (connect) + return; + } + // Extension module EM100 device_id 0x12 register_telegram_type(0x935, "EM100SetMessage", true, MAKE_PF_CB(process_EM100SetMessage)); register_telegram_type(0x936, "EM100OutMessage", false, MAKE_PF_CB(process_EM100OutMessage)); register_telegram_type(0x937, "EM100TempMessage", false, MAKE_PF_CB(process_EM100TempMessage));