show rf sensor temperature

This commit is contained in:
MichaelDvP
2021-11-05 11:57:58 +01:00
parent 95e3a11a11
commit ae4a1358af
3 changed files with 18 additions and 0 deletions

View File

@@ -26,6 +26,12 @@ uuid::log::Logger Generic::logger_{F_(generic), uuid::log::Facility::CONSOLE};
Generic::Generic(uint8_t device_type, uint8_t device_id, uint8_t product_id, const std::string & version, const std::string & name, uint8_t flags, uint8_t brand) Generic::Generic(uint8_t device_type, uint8_t device_id, uint8_t product_id, const std::string & version, const std::string & name, uint8_t flags, uint8_t brand)
: EMSdevice(device_type, device_id, product_id, version, name, flags, brand) { : EMSdevice(device_type, device_id, product_id, version, name, flags, brand) {
// RF-Sensor 0x40 sending temperature in telegram 0x435, see https://github.com/emsesp/EMS-ESP32/issues/103
if (device_id == 0x40) {
register_telegram_type(0x435, F("RFSensorMessage"), false, MAKE_PF_CB(process_RFSensorMessage));
register_device_value(TAG_NONE, &rfTemp_, DeviceValueType::SHORT, FL_(div10), FL_(RFTemp), DeviceValueUOM::DEGREES);
}
} }
// publish HA config // publish HA config
@@ -33,4 +39,9 @@ bool Generic::publish_ha_config() {
return true; return true;
} }
// type 0x435 rf remote sensor
void Generic::process_RFSensorMessage(std::shared_ptr<const Telegram> telegram) {
has_update(telegram->read_value(rfTemp_, 0)); // is * 10
}
} // namespace emsesp } // namespace emsesp

View File

@@ -31,6 +31,10 @@ class Generic : public EMSdevice {
private: private:
static uuid::log::Logger logger_; static uuid::log::Logger logger_;
int16_t rfTemp_;
void process_RFSensorMessage(std::shared_ptr<const Telegram> telegram);
}; };
} // namespace emsesp } // namespace emsesp

View File

@@ -659,3 +659,6 @@ MAKE_PSTR_LIST(collector1Type, F("collector1type"), F("collector 1 type"))
// switch // switch
MAKE_PSTR_LIST(activated, F("activated"), F("activated")) MAKE_PSTR_LIST(activated, F("activated"), F("activated"))
MAKE_PSTR_LIST(status, F("status"), F("status")) MAKE_PSTR_LIST(status, F("status"), F("status"))
// RF sensor, id 0x40, telegram 0x435
MAKE_PSTR_LIST(RFTemp, F("rftemp"), F("RF room temperature sensor"));