diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 5cbf2acc..1d78130e 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -1,7 +1,8 @@ # Changelog ### Added -- Boiler WB Greenstar 8000 (195) and Cascade Modul MC400 (210) +- Boiler WB Greenstar 8000 (195) and Cascade Modul MC400 (210) +- show cascaded boilers - optional id to info command to output heatingcircuits separated - Reset to factory setting with PButton (io0 to GND for >9 sec) diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index b1b7d7cc..d6e06848 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -26,6 +26,12 @@ uuid::log::Logger Boiler::logger_{F_(boiler), uuid::log::Facility::CONSOLE}; Boiler::Boiler(uint8_t device_type, int8_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) { + + // register values only for master boiler/cascade module + if (device_id != EMSdevice::EMS_DEVICE_ID_BOILER) { + return; + } + reserve_mem(20); // reserve some space for the telegram registries, to avoid memory fragmentation LOG_DEBUG(F("Adding new Boiler with device ID 0x%02X"), device_id); diff --git a/src/emsdevice.h b/src/emsdevice.h index f63d8d6e..eadb1c71 100644 --- a/src/emsdevice.h +++ b/src/emsdevice.h @@ -189,7 +189,9 @@ class EMSdevice { }; // static device IDs - static constexpr uint8_t EMS_DEVICE_ID_BOILER = 0x08; // fixed device_id for Master Boiler/UBA + static constexpr uint8_t EMS_DEVICE_ID_BOILER = 0x08; // fixed device_id for Master Boiler/UBA + static constexpr uint8_t EMS_DEVICE_ID_BOILER_1 = 0x70; // fixed device_id for 1st. Cascade Boiler/UBA + static constexpr uint8_t EMS_DEVICE_ID_BOILER_F = 0x7F; // fixed device_id for last Cascade Boiler/UBA // 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 7f37ac26..3f95bbe3 100644 --- a/src/emsesp.cpp +++ b/src/emsesp.cpp @@ -806,8 +806,10 @@ bool EMSESP::add_device(const uint8_t device_id, const uint8_t product_id, std:: if (device.product_id == product_id) { // sometimes boilers share the same product id as controllers // so only add boilers if the device_id is 0x08, which is fixed for EMS + // also add cascaded boilers, but without values if (device.device_type == DeviceType::BOILER) { - if (device_id == EMSdevice::EMS_DEVICE_ID_BOILER) { + if (device_id == EMSdevice::EMS_DEVICE_ID_BOILER || + (device_id >= EMSdevice::EMS_DEVICE_ID_BOILER_1 && device_id <= EMSdevice::EMS_DEVICE_ID_BOILER_F)) { device_p = &device; break; }