From 03489d43f48ba9b43db43ccb037a7255549bca22 Mon Sep 17 00:00:00 2001 From: Paul Date: Sun, 26 Jan 2020 21:10:07 +0100 Subject: [PATCH] force sel temp on RC35 temperature change - #310 --- CHANGELOG.md | 2 ++ src/ems-esp.cpp | 8 ++++---- src/ems.cpp | 6 +++++- src/ems_devices.h | 7 ++++--- src/version.h | 2 +- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df6f20278..675e5a57b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - set boiler warm water temp on Junkers/Bosch HT3 +- fixed detection of the Moduline 400 thermostat +- RC35 setting temperature also forces the current select temp to change, irrespective of the mode ### Changed - improved MQTT publishing to stop flooding. `publish_time` must be at least 1 (second) diff --git a/src/ems-esp.cpp b/src/ems-esp.cpp index 7ee571d89..6ec023704 100644 --- a/src/ems-esp.cpp +++ b/src/ems-esp.cpp @@ -914,7 +914,7 @@ void do_regularUpdates() { // turn back on the hot water for the shower void _showerColdShotStop() { if (EMSESP_Shower.doingColdShot) { - myDebugLog("[Shower] finished shot of cold. hot water back on"); + myDebugLog("[Shower] finished shot of cold water. Hot water turned back on"); ems_setWarmTapWaterActivated(true); EMSESP_Shower.doingColdShot = false; showerColdShotStopTimer.detach(); // disable the timer @@ -924,7 +924,7 @@ void _showerColdShotStop() { // turn off hot water to send a shot of cold void _showerColdShotStart() { if (EMSESP_Settings.shower_alert) { - myDebugLog("[Shower] doing a shot of cold water"); + myDebugLog("[Shower] starting shot of cold water"); ems_setWarmTapWaterActivated(false); EMSESP_Shower.doingColdShot = true; // start the timer for n seconds which will reset the water back to hot @@ -1912,9 +1912,9 @@ void showerCheck() { // SETUP // void setup() { - // GPIO15/D8 has a pull down, so we must set it to HIGH so it doesn't bring the whole EMS bus down + // GPIO15/D8 has an onboard pull down resistor and we use this for Tx, so force it high so it doesn't bring the whole EMS bus down pinMode(D8, OUTPUT); - digitalWrite(D8, 1); + digitalWrite(D8, HIGH); // init our own parameters initEMSESP(); diff --git a/src/ems.cpp b/src/ems.cpp index 8217f9f21..74be07cde 100644 --- a/src/ems.cpp +++ b/src/ems.cpp @@ -2311,11 +2311,15 @@ void ems_setThermostatTemp(float temperature, uint8_t hc_num, uint8_t temptype) break; default: case 0: // automatic selection, if no type is defined, we use the standard code + EMS_TxTelegram.offset = EMS_OFFSET_RC35Set_seltemp; + + /* commented out for https://github.com/proddy/EMS-ESP/issues/310 if (EMS_Thermostat.hc[hc_num - 1].day_mode == 0) { EMS_TxTelegram.offset = EMS_OFFSET_RC35Set_temp_night; } else if (EMS_Thermostat.hc[hc_num - 1].day_mode == 1) { EMS_TxTelegram.offset = EMS_OFFSET_RC35Set_temp_day; } + */ break; } @@ -2661,7 +2665,7 @@ void ems_setWarmTapWaterActivated(bool activated) { EMS_TxTelegram.data[3] = EMS_TxTelegram.offset; // offset // we use the special test mode 0x1D for this. Setting the first data to 5A puts the system into test mode and - // a setting of 0x00 puts it back into normal operarting mode + // a setting of 0x00 puts it back into normal operating mode // when in test mode we're able to mess around with the 3-way valve settings if (!activated) { // on diff --git a/src/ems_devices.h b/src/ems_devices.h index cf46fba39..37a5d3d06 100644 --- a/src/ems_devices.h +++ b/src/ems_devices.h @@ -120,9 +120,10 @@ #define EMS_OFFSET_RC35Set_mode 7 // position of thermostat mode #define EMS_OFFSET_RC35Set_temp_day 2 // position of thermostat setpoint temperature for day time #define EMS_OFFSET_RC35Set_temp_night 1 // position of thermostat setpoint temperature for night time -#define EMS_OFFSET_RC35Set_temp_holiday 3 // temp during holiday 0x47 -#define EMS_OFFSET_RC35Set_heatingtype 0 // floor heating = 3 0x47 -#define EMS_OFFSET_RC35Set_circuitcalctemp 14 // calculated circuit temperature 0x48 +#define EMS_OFFSET_RC35Set_temp_holiday 3 // temp during holiday mode +#define EMS_OFFSET_RC35Set_heatingtype 0 // e.g. floor heating = 3 +#define EMS_OFFSET_RC35Set_circuitcalctemp 14 // calculated circuit temperature +#define EMS_OFFSET_RC35Set_seltemp 37 // selected temp // Easy specific #define EMS_TYPE_EasyStatusMessage 0x0A // reading values on an Easy Thermostat diff --git a/src/version.h b/src/version.h index 6406162bd..6733def75 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define APP_VERSION "1.9.5b18" +#define APP_VERSION "1.9.5b19"