From fa8421b297aabfd5389618386d2d8d5145dd8494 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Thu, 23 Oct 2025 13:31:42 +0200 Subject: [PATCH] special char for servicecode --- src/core/helpers.cpp | 4 ++++ src/devices/boiler.cpp | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/core/helpers.cpp b/src/core/helpers.cpp index 7e5ccd6c0..9080c21f4 100644 --- a/src/core/helpers.cpp +++ b/src/core/helpers.cpp @@ -414,6 +414,10 @@ char * Helpers::render_string(char * result, const char * c, const uint8_t len) *p = 0xC3; *(++p) = 0xBC; break; + case 0xF0: // greek capital Xi, used for boiler servicecode dhw+heat + *p = 0xCE; + *(++p) = 0x9E; + break; default: *p = (*c & 0x80) ? '?' : *c; break; diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index d0c72cfe4..8eacebc06 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -1308,7 +1308,8 @@ void Boiler::process_UBAMonitorFast(std::shared_ptr telegram) { if ((telegram->message_length > 18) && (telegram->offset == 0)) { char serviceCode[4]; telegram->read_value(serviceCode[0], 18); - serviceCode[0] = (serviceCode[0] == (char)0xF0) ? '~' : serviceCode[0]; + // 0xF0 for 3 stacked horizontal lines like greek capital Xi + // serviceCode[0] = (serviceCode[0] == (char)0xF0) ? '~' : serviceCode[0]; telegram->read_value(serviceCode[1], 19); serviceCode[2] = '\0'; // null terminate string has_update(serviceCode_, serviceCode, sizeof(serviceCode_)); @@ -1474,9 +1475,9 @@ void Boiler::process_UBAMonitorFastPlus(std::shared_ptr telegram if ((telegram->message_length > 3) && (telegram->offset == 0)) { char serviceCode[4] = {0}; telegram->read_value(serviceCode[0], 1); - serviceCode[0] = (serviceCode[0] == (char)0xF0) ? '~' : serviceCode[0]; + // serviceCode[0] = (serviceCode[0] == (char)0xF0) ? '~' : serviceCode[0]; telegram->read_value(serviceCode[1], 2); - serviceCode[1] = (serviceCode[1] == (char)0xF0) ? '~' : serviceCode[1]; + // serviceCode[1] = (serviceCode[1] == (char)0xF0) ? '~' : serviceCode[1]; telegram->read_value(serviceCode[2], 3); serviceCode[3] = '\0'; has_update(serviceCode_, serviceCode, sizeof(serviceCode_));