set CS5800iG as gas boiler and HP, #2569

This commit is contained in:
MichaelDvP
2025-06-07 11:57:53 +02:00
parent c71034ff12
commit faa2c5f1aa
2 changed files with 13 additions and 7 deletions

View File

@@ -26,7 +26,7 @@
// Boilers - 0x08
{ 8, DeviceType::BOILER, "CS5800i, CS6800i, WLW176i, WLW186i", DeviceFlags::EMS_DEVICE_FLAG_CS6800},
{ 12, DeviceType::BOILER, "C1200W", DeviceFlags::EMS_DEVICE_FLAG_NONE},
{ 16, DeviceType::BOILER, "CS5800iG", DeviceFlags::EMS_DEVICE_FLAG_CS6800},
{ 16, DeviceType::BOILER, "CS5800iG", DeviceFlags::EMS_DEVICE_FLAG_NONE},
{ 64, DeviceType::BOILER, "BK13/BK15, Smartline, GB1*2", DeviceFlags::EMS_DEVICE_FLAG_NONE},
{ 72, DeviceType::BOILER, "Logano GB1*5, Logamatic MC10", DeviceFlags::EMS_DEVICE_FLAG_EMS},
{ 81, DeviceType::BOILER, "Cascade CM10", DeviceFlags::EMS_DEVICE_FLAG_NONE},
@@ -154,6 +154,7 @@
// Heat Pumps - 0x53
{248, DeviceType::HEATPUMP, "Hybrid Manager HM200", DeviceFlags::EMS_DEVICE_FLAG_NONE},
{16, DeviceType::HEATPUMP, "CSH5800iG", DeviceFlags::EMS_DEVICE_FLAG_NONE},
// Ventilation - 0x51
{231, DeviceType::VENTILATION, "Logavent HRV176", DeviceFlags::EMS_DEVICE_FLAG_NONE},

View File

@@ -1002,11 +1002,16 @@ void EMSESP::process_deviceName(std::shared_ptr<const Telegram> telegram) {
// e.g. 09 0B 02 00 PP V1 V2
void EMSESP::process_version(std::shared_ptr<const Telegram> telegram) {
// check for valid telegram, just in case
if (telegram->message_length < 3) {
// for empty telegram add device with empty product, version and brand
if (!telegram->message_length) {
(void)add_device(telegram->src, 0, "00.00", 0);
}
if (telegram->offset != 0) {
return;
}
// for empty telegram add device with empty product, version and brand
if (telegram->message_length == 0) {
(void)add_device(telegram->src, 0, "00.00", 0);
return;
} else if (telegram->message_length < 3) {
(void)add_device(telegram->src, telegram->message_data[0], "00.00", 0);
send_read_request(EMSdevice::EMS_TYPE_NAME, telegram->src, 27);
return;
}
@@ -1014,7 +1019,7 @@ void EMSESP::process_version(std::shared_ptr<const Telegram> telegram) {
uint8_t offset = 0;
if (telegram->message_data[0] == 0x00) {
// see if we have a 2nd subscriber
if (telegram->message_data[3] != 0x00) {
if (telegram->message_length > 5 && telegram->message_data[3] != 0x00) {
offset = 3;
} else {
return; // ignore whole telegram