mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 08:19:52 +03:00
1.2.4
This commit is contained in:
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.2.4] 2019-01-03
|
||||
|
||||
### Fixed
|
||||
|
||||
- RC35 fetching current temp
|
||||
- MQTT data max set to 600 and resolved a memory issue
|
||||
|
||||
## [1.2.3] 2019-01-03
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -193,7 +193,7 @@ void MyESP::mqttUnsubscribe(const char * topic) {
|
||||
|
||||
// MQTT Publish
|
||||
void MyESP::mqttPublish(const char * topic, const char * payload) {
|
||||
char s[600];
|
||||
char s[MQTT_MAX_SIZE];
|
||||
snprintf(s, sizeof(s), "%s%s/%s", MQTT_BASE, _app_hostname, topic);
|
||||
// myDebug_P(PSTR("[MQTT] Sending pubish to %s with payload %s"), s, payload);
|
||||
mqttClient.publish(s, MQTT_QOS, false, payload);
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#define MQTT_RECONNECT_DELAY_MIN 5000 // Try to reconnect in 5 seconds upon disconnection
|
||||
#define MQTT_RECONNECT_DELAY_STEP 5000 // Increase the reconnect delay in 5 seconds after each failed attempt
|
||||
#define MQTT_RECONNECT_DELAY_MAX 120000 // Set reconnect time to 2 minutes at most
|
||||
#define MQTT_MAX_SIZE 600 // max length of MQTT message
|
||||
// Internal MQTT events
|
||||
#define MQTT_CONNECT_EVENT 0
|
||||
#define MQTT_DISCONNECT_EVENT 1
|
||||
|
||||
@@ -100,7 +100,7 @@ command_t PROGMEM project_cmds[] = {
|
||||
{"h", "list supported EMS telegram type IDs"},
|
||||
{"M", "publish to MQTT"},
|
||||
{"Q", "print Tx Queue"},
|
||||
{"U [n]", "do a deep scan of all thermostat messages types, start at n"},
|
||||
{"U [n]", "do a deep scan of all thermostat message types, starting at n"},
|
||||
{"P", "toggle EMS Poll response on/off"},
|
||||
{"X", "toggle EMS Tx transmission on/off"},
|
||||
{"S", "toggle Shower timer on/off"},
|
||||
@@ -411,10 +411,8 @@ void showInfo() {
|
||||
// CRC check is done to see if there are changes in the values since the last send to avoid too much wifi traffic
|
||||
void publishValues(bool force) {
|
||||
char s[20] = {0}; // for formatting strings
|
||||
|
||||
// Boiler values as one JSON object
|
||||
StaticJsonBuffer<512> jsonBuffer;
|
||||
char data[512];
|
||||
char data[MQTT_MAX_SIZE] = {0};
|
||||
JsonObject & rootBoiler = jsonBuffer.createObject();
|
||||
size_t rlen;
|
||||
CRC32 crc;
|
||||
@@ -481,6 +479,7 @@ void publishValues(bool force) {
|
||||
rootThermostat[THERMOSTAT_CURRTEMP] = _float_to_char(s, EMS_Thermostat.curr_roomTemp);
|
||||
rootThermostat[THERMOSTAT_SELTEMP] = _float_to_char(s, EMS_Thermostat.setpoint_roomTemp);
|
||||
|
||||
// RC20 has different mode settings
|
||||
if (ems_getThermostatModel() == EMS_MODEL_RC20) {
|
||||
if (EMS_Thermostat.mode == 0) {
|
||||
rootThermostat[THERMOSTAT_MODE] = "low";
|
||||
@@ -499,6 +498,7 @@ void publishValues(bool force) {
|
||||
}
|
||||
}
|
||||
|
||||
data[0] = '\0'; // reset data for next package
|
||||
rlen = rootThermostat.measureLength();
|
||||
rootThermostat.printTo(data, rlen + 1); // form the json string
|
||||
|
||||
@@ -619,7 +619,7 @@ void myDebugCallback() {
|
||||
systemCheckTimer.detach();
|
||||
regularUpdatesTimer.detach();
|
||||
scanThermostat_count = (uint8_t)strtol(&cmd[2], 0, 16);
|
||||
myDebug("Doing a deep scan on all message types to the thermometer start at 0x%02. Reboot ESP when finished.", scanThermostat_count);
|
||||
myDebug("Starting a deep message scan on thermometer");
|
||||
scanThermostat.attach(SCANTHERMOSTAT_TIME, do_scanThermostat);
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -993,9 +993,7 @@ 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;
|
||||
|
||||
// There is no current room temperature sensor in this telegram
|
||||
EMS_Thermostat.curr_roomTemp = EMS_VALUE_FLOAT_NOTSET;
|
||||
EMS_Thermostat.curr_roomTemp = _toFloat(EMS_TYPE_RC35StatusMessage_curr, data);
|
||||
|
||||
EMS_Sys_Status.emsRefreshed = true; // triggers a send the values back to Home Assistant via MQTT
|
||||
}
|
||||
@@ -1097,7 +1095,6 @@ void _process_Version(uint8_t * data, uint8_t length) {
|
||||
|
||||
// if we don't have a thermostat set, use this one
|
||||
if (!ems_getThermostatEnabled()) {
|
||||
myDebug("Setting the Thermostat to this one.");
|
||||
// set its capabilities
|
||||
EMS_Thermostat.model_id = Model_Types[i].model_id;
|
||||
EMS_Thermostat.type_id = Model_Types[i].type_id;
|
||||
@@ -1118,7 +1115,6 @@ void _process_Version(uint8_t * data, uint8_t length) {
|
||||
}
|
||||
|
||||
if (!ems_getBoilerEnabled()) {
|
||||
myDebug("Setting the Boiler to this one.");
|
||||
EMS_Boiler.type_id = Model_Types[i].type_id;
|
||||
EMS_Boiler.model_id = Model_Types[i].model_id;
|
||||
strlcpy(EMS_Boiler.version, version, sizeof(EMS_Boiler.version));
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
// RC35 specific
|
||||
#define EMS_TYPE_RC35StatusMessage 0x3E // is an automatic thermostat broadcast giving us temps
|
||||
#define EMS_TYPE_RC35StatusMessage_setpoint 2 // desired temp
|
||||
#define EMS_TYPE_RC35StatusMessage_curr 3 // current temp
|
||||
#define EMS_TYPE_RC35Set 0x3D // for setting values like temp and mode (Working mode HC1)
|
||||
#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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#define APP_NAME "EMS-ESP-Boiler"
|
||||
#define APP_VERSION "1.2.3"
|
||||
#define APP_VERSION "1.2.4"
|
||||
#define APP_HOSTNAME "boiler"
|
||||
|
||||
Reference in New Issue
Block a user