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
- 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)

View File

@@ -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();

View File

@@ -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

View File

@@ -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

View File

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