From 21fa1fa04e2bd8872be15b42889afc687badf754 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Fri, 13 Dec 2019 12:05:07 +0100 Subject: [PATCH] Bump version to 7.1.2.5 Change some Settings locations freeing up space for future single char allowing variable length text --- RELEASENOTES.md | 3 ++- tasmota/CHANGELOG.md | 4 +++ tasmota/settings.h | 49 +++++++++++++++++++++++++--------- tasmota/settings.ino | 10 +++++-- tasmota/support_statistics.ino | 9 +------ tasmota/tasmota_version.h | 2 +- 6 files changed, 52 insertions(+), 25 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index d269109e8..0f5e1e33b 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -47,12 +47,13 @@ The following binary downloads have been compiled with ESP8266/Arduino library c ## Changelog -### Version 7.1.2.4 +### Version 7.1.2.5 - Change Exception reporting removing exception details from ``Status 1`` and consolidated in ``Status 12`` if available - Change HTTP CORS from command ``SetOption73 0/1`` to ``Cors `` allowing user control of specific CORS domain by Shantur Rathore (#7066) - Change GUI Shutter button text to Up and Down Arrows based on PR by Xavier Muller (#7166) - Change amount of supported DHT sensors from 3 to 4 by Xavier Muller (#7167) +- Change some Settings locations freeing up space for future single char allowing variable length text - Fix flashing H801 led at boot by Stefan Hadinger (#7165, #649) - Fix duplicated ``Backlog`` when using Event inside a Backlog by Adrian Scillato (#7178, #7147) - Fix Gui Timer when using a negative zero offset of -00:00 by Peter Ooms (#7174) diff --git a/tasmota/CHANGELOG.md b/tasmota/CHANGELOG.md index 4bbeccb26..970d22ca7 100644 --- a/tasmota/CHANGELOG.md +++ b/tasmota/CHANGELOG.md @@ -1,5 +1,9 @@ ## Unreleased (development) +### 7.1.2.5 20191213 + +- Change some Settings locations freeing up space for future single char allowing variable length text + ### 7.1.2.4 20191209 - Change HTTP CORS from command ``SetOption73 0/1`` to ``Cors `` allowing user control of specific CORS domain by Shantur Rathore (#7066) diff --git a/tasmota/settings.h b/tasmota/settings.h index c938f0b39..d05777d17 100644 --- a/tasmota/settings.h +++ b/tasmota/settings.h @@ -248,26 +248,34 @@ struct SYSCFG { SysBitfield flag; // 010 int16_t save_data; // 014 int8_t timezone; // 016 + + // Start of single char array + char ota_url[101]; // 017 char mqtt_prefix[3][11]; // 07C + uint8_t ex_baudrate; // 09D - Free since 6.6.0.9 - uint8_t seriallog_level; // 09E - uint8_t sta_config; // 09F - uint8_t sta_active; // 0A0 + uint8_t ex_seriallog_level; // 09E + uint8_t ex_sta_config; // 09F + uint8_t ex_sta_active; // 0A0 + char sta_ssid[2][33]; // 0A1 - Keep together with sta_pwd as being copied as one chunck with reset 5 char sta_pwd[2][65]; // 0E3 - Keep together with sta_ssid as being copied as one chunck with reset 5 char hostname[33]; // 165 char syslog_host[33]; // 186 - uint8_t rule_stop; // 1A7 - uint16_t syslog_port; // 1A8 - uint8_t syslog_level; // 1AA - uint8_t webserver; // 1AB - uint8_t weblog_level; // 1AC - uint8_t mqtt_fingerprint[2][20]; // 1AD - uint8_t adc_param_type; // 1D5 + + uint8_t ex_rule_stop; // 1A7 + uint16_t ex_syslog_port; // 1A8 + uint8_t ex_syslog_level; // 1AA + uint8_t ex_webserver; // 1AB + uint8_t ex_weblog_level; // 1AC + uint8_t ex_mqtt_fingerprint[2][20]; // 1AD + uint8_t ex_adc_param_type; // 1D5 uint8_t free_1d6[10]; // 1D6 + // End of single char array of 446 chars max (phase 3) + SysBitfield4 flag4; // 1E0 uint8_t serial_config; // 1E4 uint8_t wifi_output_power; // 1E5 @@ -282,6 +290,9 @@ struct SYSCFG { char mqtt_topic[33]; // 26F - Keep together with above items as being copied as one chunck with reset 6 char button_topic[33]; // 290 char mqtt_grptopic[33]; // 2B1 + + // Optional end of single char array of 698 chars max (phase 5) + uint8_t display_model; // 2D2 uint8_t display_mode; // 2D3 uint8_t display_refresh; // 2D4 @@ -302,7 +313,9 @@ struct SYSCFG { int16_t toffset[2]; // 30E uint8_t display_font; // 312 char state_text[4][11]; // 313 + uint8_t ex_energy_power_delta; // 33F - Free since 6.6.0.20 + uint16_t domoticz_update_timer; // 340 uint16_t pwm_range; // 342 unsigned long domoticz_relay_idx[MAX_DOMOTICZ_IDX]; // 344 @@ -338,7 +351,7 @@ struct SYSCFG { char friendlyname[MAX_FRIENDLYNAMES][33]; // 3AC char switch_topic[33]; // 430 char serial_delimiter; // 451 - uint8_t ex_sbaudrate; // 452 - Free since 6.6.0.9 + uint8_t seriallog_level; // 452 uint8_t sleep; // 453 uint16_t domoticz_switch_idx[MAX_DOMOTICZ_IDX]; // 454 uint16_t domoticz_sensor_idx[MAX_DOMOTICZ_SNS_IDX]; // 45C @@ -398,7 +411,6 @@ struct SYSCFG { uint16_t baudrate; // 778 uint16_t sbaudrate; // 77A EnergyUsage energy_usage; // 77C -// uint32_t drivers[3]; // 794 - 6.5.0.12 replaced by below three entries uint32_t adc_param1; // 794 uint32_t adc_param2; // 798 int adc_param3; // 79C @@ -414,7 +426,9 @@ struct SYSCFG { unsigned long energy_frequency_calibration; // 7C8 also used by HX711 to save last weight uint16_t web_refresh; // 7CC char mems[MAX_RULE_MEMS][10]; // 7CE + char rules[MAX_RULE_SETS][MAX_RULE_SIZE]; // 800 uses 512 bytes in v5.12.0m, 3 x 512 bytes in v5.14.0b + TuyaFnidDpidMap tuya_fnid_map[MAX_TUYA_FUNCTIONS]; // E00 32 bytes uint16_t ina226_r_shunt[4]; // E20 uint16_t ina226_i_fs[4]; // E28 @@ -436,8 +450,17 @@ struct SYSCFG { uint8_t weight_change; // E9F uint8_t web_color2[2][3]; // EA0 - Needs to be on integer / 3 distance from web_color char cors_domain[33]; // EA6 + uint8_t sta_config; // EC7 + uint8_t sta_active; // EC8 + uint8_t rule_stop; // EC9 + uint16_t syslog_port; // ECA + uint8_t syslog_level; // ECC + uint8_t webserver; // ECD + uint8_t weblog_level; // ECE + uint8_t mqtt_fingerprint[2][20]; // ECF + uint8_t adc_param_type; // EF7 - uint8_t free_ec7[293]; // EC7 + uint8_t free_ef8[244]; // EF8 uint32_t i2c_drivers[3]; // FEC I2cDriver uint32_t cfg_timestamp; // FF8 diff --git a/tasmota/settings.ino b/tasmota/settings.ino index d616d4cfc..866e72f99 100644 --- a/tasmota/settings.ino +++ b/tasmota/settings.ino @@ -1230,8 +1230,8 @@ void SettingsDelta(void) } } if (Settings.version < 0x06060009) { - Settings.baudrate = Settings.ex_baudrate * 4; - Settings.sbaudrate = Settings.ex_sbaudrate * 4; + Settings.baudrate = APP_BAUDRATE / 300; + Settings.sbaudrate = SOFT_BAUDRATE / 300; } if (Settings.version < 0x0606000A) { uint8_t tuyaindex = 0; @@ -1336,6 +1336,12 @@ void SettingsDelta(void) Settings.cors_domain[0] = 0; } } + if (Settings.version < 0x07010205) { + Settings.seriallog_level = Settings.ex_seriallog_level; // 09E -> 452 + Settings.sta_config = Settings.ex_sta_config; // 09F -> EC7 + Settings.sta_active = Settings.ex_sta_active; // 0A0 -> EC8 + memcpy((char*)&Settings.rule_stop, (char*)&Settings.ex_rule_stop, 47); // 1A7 -> EC9 + } Settings.version = VERSION; SettingsSave(1); diff --git a/tasmota/support_statistics.ino b/tasmota/support_statistics.ino index efd94f307..a34c7250a 100644 --- a/tasmota/support_statistics.ino +++ b/tasmota/support_statistics.ino @@ -27,24 +27,17 @@ struct STATS { // uint32_t str_size = 1151; // Total number of characters reserved as char array in Settings uint32_t str_len = 0; // Total number of characters used within char array - uint32_t str_char = 0; // Total number of character '|' within all char arrays } Stats; void StatisticsChar(const char* text) { uint32_t len = strlen(text); Stats.str_len += len; - for (uint32_t i = 0; i < len; i++) { - if ('|' == text[i]) { // Text string separator as currently used in GetTextIndexed() - Stats.str_char++; - } - } } String GetStatistics(void) { Stats.str_len = 0; - Stats.str_char = 0; for (uint32_t i = 0; i < 2; i++) { StatisticsChar(Settings.sta_ssid[i]); @@ -77,7 +70,7 @@ String GetStatistics(void) StatisticsChar(Settings.cors_domain); char data[40]; - snprintf_P(data, sizeof(data), PSTR(",\"CR\":\"%d/1151/%d\""), Stats.str_len, Stats.str_char); // Char Usage Ratio + snprintf_P(data, sizeof(data), PSTR(",\"CR\":\"%d/1151\""), Stats.str_len); // Char Usage Ratio return String(data); } diff --git a/tasmota/tasmota_version.h b/tasmota/tasmota_version.h index a0cbe1e41..ccc8dcbaf 100644 --- a/tasmota/tasmota_version.h +++ b/tasmota/tasmota_version.h @@ -20,6 +20,6 @@ #ifndef _TASMOTA_VERSION_H_ #define _TASMOTA_VERSION_H_ -const uint32_t VERSION = 0x07010204; +const uint32_t VERSION = 0x07010205; #endif // _TASMOTA_VERSION_H_