diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp index 7cdac85ed..130133672 100644 --- a/src/devices/boiler.cpp +++ b/src/devices/boiler.cpp @@ -52,7 +52,7 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const // not ems1.0, but HT3 if (model() != EMSdevice::EMS_DEVICE_FLAG_EMS) { - register_telegram_type(0x26, "UBASettingsWW", true, MAKE_PF_CB(process_UBASettingsWW)); + register_telegram_type(0x27, "UBASettingsWW", true, MAKE_PF_CB(process_UBASettingsWW)); register_telegram_type(0x2A, "MC110Status", false, MAKE_PF_CB(process_MC110Status)); } @@ -1365,7 +1365,7 @@ void Boiler::process_UBAParameters(std::shared_ptr telegram) { * Boiler(0x08) -> Me(0x0B), ?(0x26), data: 01 05 00 0F 00 1E 58 5A */ void Boiler::process_UBASettingsWW(std::shared_ptr telegram) { - has_update(telegram, wwMaxPower_, 7); + has_update(telegram, wwMaxPower_, 10); } // 0x33 @@ -2578,7 +2578,7 @@ bool Boiler::set_ww_maxpower(const char * value, const int8_t id) { return false; } - write_command(EMS_TYPE_UBASettingsWW, 7, v, EMS_TYPE_UBASettingsWW); + write_command(EMS_TYPE_UBASettingsWW, 10, v, EMS_TYPE_UBASettingsWW); return true; } @@ -2839,7 +2839,7 @@ bool Boiler::set_ww_disinfect(const char * value, const int8_t id) { } if (is_received(EMS_TYPE_UBAParameterWWPlus)) { - write_command(EMS_TYPE_UBAFlags, 0, (v ? 0x44 : 0x04), 0xE9); // not sure if this is in flags + write_command(0x05, 44, (v ? 0xFF : 0xFE), 0xE9); // https://github.com/emsesp/EMS-ESP32/discussions/2601 } else { write_command(EMS_TYPE_UBAFlags, 0, (v ? 0x44 : 0x04), 0x34); } @@ -2916,11 +2916,11 @@ bool Boiler::set_reset(const char * value, const int8_t id) { return true; // dash } else if (num == 1) { // LOG_INFO("Reset boiler maintenance message"); - write_command(0x05, 0x08, 0xFF, 0x1C); + write_command(0x05, 8, 0xFF, 0x1C); return true; } else if (num == 2) { // LOG_INFO("Reset boiler error message"); - write_command(0x05, 0x00, 0x5A); // error reset + write_command(0x05, 0, 0x5A); // error reset return true; } else if (num == 3) { // LOG_INFO("Reset boiler history"); @@ -2928,7 +2928,11 @@ bool Boiler::set_reset(const char * value, const int8_t id) { return true; } else if (num == 4) { // LOG_INFO("Reset boiler message"); - write_command(0x05, 0x08, 0xFF); // same as maintenance + write_command(0x05, 8, 0xFF); // same as maintenance + return true; + } else if (num == 5) { + // LOG_INFO("Factory Reset"); + write_command(0x05, 6, 154); return true; } return false; diff --git a/src/devices/boiler.h b/src/devices/boiler.h index 48061d255..3ff03cf76 100644 --- a/src/devices/boiler.h +++ b/src/devices/boiler.h @@ -43,7 +43,7 @@ class Boiler : public EMSdevice { uint8_t boilerState_ = EMS_VALUE_UINT8_NOTSET; // Boiler state flag - FOR INTERNAL USE - static constexpr uint8_t EMS_TYPE_UBASettingsWW = 0x26; + static constexpr uint8_t EMS_TYPE_UBASettingsWW = 0x27; static constexpr uint8_t EMS_TYPE_UBAParameterWW = 0x33; static constexpr uint8_t EMS_TYPE_UBAFunctionTest = 0x1D; static constexpr uint8_t EMS_TYPE_UBAFlags = 0x35; diff --git a/src/emsesp_version.h b/src/emsesp_version.h index d265f92c5..5ff361f20 100644 --- a/src/emsesp_version.h +++ b/src/emsesp_version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.7.3-dev.15" +#define EMSESP_APP_VERSION "3.7.3-dev.16"