diff --git a/CHANGELOG.md b/CHANGELOG.md index 415e64e86..417461c43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - MQTT keep alive, last will testament and other settings all configurable in my_config.h +- RC35: MQTT day/night/auto mode; sets setpoint temperature in type 0x3D depends on current night/day Mode (@SpaceTeddy) [#33](https://github.com/proddy/EMS-ESP/pull/33) ## [1.3.0] 2019-01-09 diff --git a/src/ems.cpp b/src/ems.cpp index 1d054edba..6d2f41872 100644 --- a/src/ems.cpp +++ b/src/ems.cpp @@ -952,7 +952,7 @@ void _process_RC20StatusMessage(uint8_t * data, uint8_t length) { EMS_Thermostat.setpoint_roomTemp = ((float)data[EMS_TYPE_RC20StatusMessage_setpoint]) / (float)2; EMS_Thermostat.curr_roomTemp = _toFloat(EMS_TYPE_RC20StatusMessage_curr, data); - EMS_Sys_Status.emsRefreshed = true; // triggers a send the values back to Home Assistant via MQTT + EMS_Sys_Status.emsRefreshed = true; // triggers a send the values back via MQTT } /** @@ -964,7 +964,7 @@ void _process_RC30StatusMessage(uint8_t * data, uint8_t length) { EMS_Thermostat.setpoint_roomTemp = ((float)data[EMS_TYPE_RC30StatusMessage_setpoint]) / (float)2; EMS_Thermostat.curr_roomTemp = _toFloat(EMS_TYPE_RC30StatusMessage_curr, data); - EMS_Sys_Status.emsRefreshed = true; // triggers a send the values back to Home Assistant via MQTT + EMS_Sys_Status.emsRefreshed = true; // triggers a send the values back via MQTT } /** @@ -975,8 +975,8 @@ void _process_RC30StatusMessage(uint8_t * data, uint8_t length) { void _process_RC35StatusMessage(uint8_t * data, uint8_t length) { EMS_Thermostat.setpoint_roomTemp = ((float)data[EMS_TYPE_RC35StatusMessage_setpoint]) / (float)2; EMS_Thermostat.curr_roomTemp = _toFloat(EMS_TYPE_RC35StatusMessage_curr, data); - EMS_Thermostat.day_mode = bitRead(data[EMS_OFFSET_RC35Get_mode_day], 1); //get day mode flag - EMS_Sys_Status.emsRefreshed = true; // triggers a send the values back to Home Assistant via MQTT + EMS_Thermostat.day_mode = bitRead(data[EMS_OFFSET_RC35Get_mode_day], 1); //get day mode flag + EMS_Sys_Status.emsRefreshed = true; // triggers a send the values back via MQTT } /** @@ -987,7 +987,7 @@ void _process_EasyStatusMessage(uint8_t * data, uint8_t length) { EMS_Thermostat.curr_roomTemp = ((float)(((data[EMS_TYPE_EasyStatusMessage_curr] << 8) + data[9]))) / 100; EMS_Thermostat.setpoint_roomTemp = ((float)(((data[EMS_TYPE_EasyStatusMessage_setpoint] << 8) + data[11]))) / 100; - EMS_Sys_Status.emsRefreshed = true; // triggers a send the values back to Home Assistant via MQTT + EMS_Sys_Status.emsRefreshed = true; // triggers a send the values back via MQTT } /** @@ -1566,11 +1566,11 @@ void ems_setThermostatTemp(float temperature) { EMS_TxTelegram.offset = EMS_OFFSET_RC30Set_temp; EMS_TxTelegram.comparisonPostRead = EMS_TYPE_RC30StatusMessage; } else if ((model_id == EMS_MODEL_RC35) || (model_id == EMS_MODEL_ES73)) { - EMS_TxTelegram.type = EMS_TYPE_RC35Set; - if (EMS_Thermostat.day_mode == 0){ - EMS_TxTelegram.offset = EMS_OFFSET_RC35Set_temp_night; - } else if (EMS_Thermostat.day_mode == 1){ - EMS_TxTelegram.offset = EMS_OFFSET_RC35Set_temp_day; + EMS_TxTelegram.type = EMS_TYPE_RC35Set; + if (EMS_Thermostat.day_mode == 0) { + EMS_TxTelegram.offset = EMS_OFFSET_RC35Set_temp_night; + } else if (EMS_Thermostat.day_mode == 1) { + EMS_TxTelegram.offset = EMS_OFFSET_RC35Set_temp_day; } EMS_TxTelegram.comparisonPostRead = EMS_TYPE_RC35StatusMessage; diff --git a/src/ems.h b/src/ems.h index f251c5e7f..b2fe4a541 100644 --- a/src/ems.h +++ b/src/ems.h @@ -212,7 +212,7 @@ typedef struct { float setpoint_roomTemp; // current set temp float curr_roomTemp; // current room temp uint8_t mode; // 0=low, 1=manual, 2=auto - bool day_mode; // 0=night, 1=day + bool day_mode; // 0=night, 1=day uint8_t hour; uint8_t minute; uint8_t second;