force sel temp on RC35 temperature change - #310

This commit is contained in:
Paul
2020-01-26 21:10:07 +01:00
parent 55fcfb132f
commit 03489d43f4
5 changed files with 16 additions and 9 deletions

View File

@@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### Fixed
- set boiler warm water temp on Junkers/Bosch HT3 - 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 ### Changed
- improved MQTT publishing to stop flooding. `publish_time` must be at least 1 (second) - improved MQTT publishing to stop flooding. `publish_time` must be at least 1 (second)

View File

@@ -914,7 +914,7 @@ void do_regularUpdates() {
// turn back on the hot water for the shower // turn back on the hot water for the shower
void _showerColdShotStop() { void _showerColdShotStop() {
if (EMSESP_Shower.doingColdShot) { 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); ems_setWarmTapWaterActivated(true);
EMSESP_Shower.doingColdShot = false; EMSESP_Shower.doingColdShot = false;
showerColdShotStopTimer.detach(); // disable the timer showerColdShotStopTimer.detach(); // disable the timer
@@ -924,7 +924,7 @@ void _showerColdShotStop() {
// turn off hot water to send a shot of cold // turn off hot water to send a shot of cold
void _showerColdShotStart() { void _showerColdShotStart() {
if (EMSESP_Settings.shower_alert) { if (EMSESP_Settings.shower_alert) {
myDebugLog("[Shower] doing a shot of cold water"); myDebugLog("[Shower] starting shot of cold water");
ems_setWarmTapWaterActivated(false); ems_setWarmTapWaterActivated(false);
EMSESP_Shower.doingColdShot = true; EMSESP_Shower.doingColdShot = true;
// start the timer for n seconds which will reset the water back to hot // start the timer for n seconds which will reset the water back to hot
@@ -1912,9 +1912,9 @@ void showerCheck() {
// SETUP // SETUP
// //
void 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); pinMode(D8, OUTPUT);
digitalWrite(D8, 1); digitalWrite(D8, HIGH);
// init our own parameters // init our own parameters
initEMSESP(); initEMSESP();

View File

@@ -2311,11 +2311,15 @@ void ems_setThermostatTemp(float temperature, uint8_t hc_num, uint8_t temptype)
break; break;
default: default:
case 0: // automatic selection, if no type is defined, we use the standard code 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) { if (EMS_Thermostat.hc[hc_num - 1].day_mode == 0) {
EMS_TxTelegram.offset = EMS_OFFSET_RC35Set_temp_night; EMS_TxTelegram.offset = EMS_OFFSET_RC35Set_temp_night;
} else if (EMS_Thermostat.hc[hc_num - 1].day_mode == 1) { } else if (EMS_Thermostat.hc[hc_num - 1].day_mode == 1) {
EMS_TxTelegram.offset = EMS_OFFSET_RC35Set_temp_day; EMS_TxTelegram.offset = EMS_OFFSET_RC35Set_temp_day;
} }
*/
break; break;
} }
@@ -2661,7 +2665,7 @@ void ems_setWarmTapWaterActivated(bool activated) {
EMS_TxTelegram.data[3] = EMS_TxTelegram.offset; // offset 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 // 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 // when in test mode we're able to mess around with the 3-way valve settings
if (!activated) { if (!activated) {
// on // on

View File

@@ -120,9 +120,10 @@
#define EMS_OFFSET_RC35Set_mode 7 // position of thermostat mode #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_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_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_temp_holiday 3 // temp during holiday mode
#define EMS_OFFSET_RC35Set_heatingtype 0 // floor heating = 3 0x47 #define EMS_OFFSET_RC35Set_heatingtype 0 // e.g. floor heating = 3
#define EMS_OFFSET_RC35Set_circuitcalctemp 14 // calculated circuit temperature 0x48 #define EMS_OFFSET_RC35Set_circuitcalctemp 14 // calculated circuit temperature
#define EMS_OFFSET_RC35Set_seltemp 37 // selected temp
// Easy specific // Easy specific
#define EMS_TYPE_EasyStatusMessage 0x0A // reading values on an Easy Thermostat #define EMS_TYPE_EasyStatusMessage 0x0A // reading values on an Easy Thermostat

View File

@@ -1 +1 @@
#define APP_VERSION "1.9.5b18" #define APP_VERSION "1.9.5b19"