mirror of
https://github.com/arendst/Tasmota.git
synced 2025-04-25 07:17:16 +00:00
ESP32 Increase number of interlock groups from 4 to 14
- Removed migration support for versions before v8.1.0 (Doris) - ESP32 Increase number of interlock groups from 4 to 14
This commit is contained in:
parent
5d58eb39cf
commit
19ef735c08
@ -5,8 +5,10 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
## [9.2.0.6]
|
||||
### Changed
|
||||
- Removed migration support for versions before v8.1.0 (Doris)
|
||||
- Increase number of switch GPIOs from 8 to 28
|
||||
- Increase number of button GPIOs from 4 to 8
|
||||
- ESP32 Increase number of interlock groups from 4 to 14
|
||||
|
||||
## [9.2.0.5] 20210205
|
||||
### Changed
|
||||
|
@ -114,15 +114,17 @@ The attached binaries can also be downloaded from http://ota.tasmota.com/tasmota
|
||||
- Replaced RA8876 GPIO selection from ``SPI CS`` by ``RA8876 CS``
|
||||
|
||||
### Changed
|
||||
- Removed migration support for versions before v8.1.0 (Doris)
|
||||
- Command ``Sleep 0`` removes any sleep from wifi modem except when ESP32 BLE is active
|
||||
- Logging from heap to stack freeing 700 bytes RAM
|
||||
- Disabled ``USE_LIGHT`` light support for ZBBridge saving 17.6kB [#10374](https://github.com/arendst/Tasmota/issues/10374)
|
||||
- Force initial default state ``SetOption57 1`` to scan wifi network every 44 minutes for strongest signal [#10395](https://github.com/arendst/Tasmota/issues/10395)
|
||||
- PubSubClient MQTT_SOCKET_TIMEOUT from 15 to 4 seconds
|
||||
- Domoticz fixed 2 decimals resolution by user selectable ``TempRes``, ``HumRes`` and ``PressRes`` resolutions
|
||||
- ESP32 increase number of relay GPIOs from 8 to 28
|
||||
- Increase number of switch GPIOs from 8 to 28
|
||||
- Increase number of button GPIOs from 4 to 8
|
||||
- ESP32 increase number of relay GPIOs from 8 to 28
|
||||
- ESP32 Increase number of interlock groups from 4 to 14
|
||||
|
||||
### Fixed
|
||||
- Redesign syslog and mqttlog using log buffer [#10164](https://github.com/arendst/Tasmota/issues/10164)
|
||||
|
@ -493,9 +493,13 @@ struct {
|
||||
|
||||
uint8_t free_4c5[5]; // 4C5
|
||||
|
||||
uint8_t interlock[MAX_INTERLOCKS]; // 4CA
|
||||
uint8_t ex_interlock[4]; // 4CA MAX_INTERLOCKS = MAX_RELAYS / 2 (Legacy)
|
||||
|
||||
char ex_ntp_server[3][33]; // 4CE Free since 8.0.0.1
|
||||
uint8_t free_4ce[2]; // 4CE
|
||||
|
||||
power_t interlock[MAX_INTERLOCK_GROUPS]; // 4D0 MAX_INTERLOCKS = MAX_RELAYS / 2
|
||||
|
||||
uint8_t free_508[41]; // 508
|
||||
|
||||
uint8_t ina219_mode; // 531
|
||||
uint16_t pulse_timer[MAX_PULSETIMERS]; // 532
|
||||
|
@ -1111,111 +1111,6 @@ void SettingsDelta(void) {
|
||||
if (Settings.version != VERSION) { // Fix version dependent changes
|
||||
|
||||
#ifdef ESP8266
|
||||
#ifndef UPGRADE_V8_MIN
|
||||
if (Settings.version < 0x07000002) {
|
||||
Settings.web_color2[0][0] = Settings.web_color[0][0];
|
||||
Settings.web_color2[0][1] = Settings.web_color[0][1];
|
||||
Settings.web_color2[0][2] = Settings.web_color[0][2];
|
||||
}
|
||||
if (Settings.version < 0x07000003) {
|
||||
SettingsEnableAllI2cDrivers();
|
||||
}
|
||||
if (Settings.version < 0x07000004) {
|
||||
Settings.ex_wifi_output_power = 170;
|
||||
}
|
||||
if (Settings.version < 0x07010202) {
|
||||
Settings.ex_serial_config = TS_SERIAL_8N1;
|
||||
}
|
||||
if (Settings.version < 0x07010204) {
|
||||
if (Settings.flag3.mqtt_buttons == 1) {
|
||||
strlcpy(Settings.ex_cors_domain, CORS_ENABLED_ALL, sizeof(Settings.ex_cors_domain));
|
||||
} else {
|
||||
Settings.ex_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
|
||||
}
|
||||
if (Settings.version < 0x07010206) {
|
||||
Settings.flag4 = Settings.ex_flag4; // 1E0 -> EF8
|
||||
Settings.mqtt_port = Settings.ex_mqtt_port; // 20A -> EFC
|
||||
memcpy((char*)&Settings.serial_config, (char*)&Settings.ex_serial_config, 5); // 1E4 -> EFE
|
||||
}
|
||||
if (Settings.version < 0x08000000) {
|
||||
char temp[strlen(Settings.text_pool) +1]; strncpy(temp, Settings.text_pool, sizeof(temp)); // Was ota_url
|
||||
char temp21[strlen(Settings.ex_mqtt_prefix[0]) +1]; strncpy(temp21, Settings.ex_mqtt_prefix[0], sizeof(temp21));
|
||||
char temp22[strlen(Settings.ex_mqtt_prefix[1]) +1]; strncpy(temp22, Settings.ex_mqtt_prefix[1], sizeof(temp22));
|
||||
char temp23[strlen(Settings.ex_mqtt_prefix[2]) +1]; strncpy(temp23, Settings.ex_mqtt_prefix[2], sizeof(temp23));
|
||||
char temp31[strlen(Settings.ex_sta_ssid[0]) +1]; strncpy(temp31, Settings.ex_sta_ssid[0], sizeof(temp31));
|
||||
char temp32[strlen(Settings.ex_sta_ssid[1]) +1]; strncpy(temp32, Settings.ex_sta_ssid[1], sizeof(temp32));
|
||||
char temp41[strlen(Settings.ex_sta_pwd[0]) +1]; strncpy(temp41, Settings.ex_sta_pwd[0], sizeof(temp41));
|
||||
char temp42[strlen(Settings.ex_sta_pwd[1]) +1]; strncpy(temp42, Settings.ex_sta_pwd[1], sizeof(temp42));
|
||||
char temp5[strlen(Settings.ex_hostname) +1]; strncpy(temp5, Settings.ex_hostname, sizeof(temp5));
|
||||
char temp6[strlen(Settings.ex_syslog_host) +1]; strncpy(temp6, Settings.ex_syslog_host, sizeof(temp6));
|
||||
char temp7[strlen(Settings.ex_mqtt_host) +1]; strncpy(temp7, Settings.ex_mqtt_host, sizeof(temp7));
|
||||
char temp8[strlen(Settings.ex_mqtt_client) +1]; strncpy(temp8, Settings.ex_mqtt_client, sizeof(temp8));
|
||||
char temp9[strlen(Settings.ex_mqtt_user) +1]; strncpy(temp9, Settings.ex_mqtt_user, sizeof(temp9));
|
||||
char temp10[strlen(Settings.ex_mqtt_pwd) +1]; strncpy(temp10, Settings.ex_mqtt_pwd, sizeof(temp10));
|
||||
char temp11[strlen(Settings.ex_mqtt_topic) +1]; strncpy(temp11, Settings.ex_mqtt_topic, sizeof(temp11));
|
||||
char temp12[strlen(Settings.ex_button_topic) +1]; strncpy(temp12, Settings.ex_button_topic, sizeof(temp12));
|
||||
char temp13[strlen(Settings.ex_mqtt_grptopic) +1]; strncpy(temp13, Settings.ex_mqtt_grptopic, sizeof(temp13));
|
||||
|
||||
memset(Settings.text_pool, 0x00, settings_text_size);
|
||||
SettingsUpdateText(SET_OTAURL, temp);
|
||||
SettingsUpdateText(SET_MQTTPREFIX1, temp21);
|
||||
SettingsUpdateText(SET_MQTTPREFIX2, temp22);
|
||||
SettingsUpdateText(SET_MQTTPREFIX3, temp23);
|
||||
SettingsUpdateText(SET_STASSID1, temp31);
|
||||
SettingsUpdateText(SET_STASSID2, temp32);
|
||||
SettingsUpdateText(SET_STAPWD1, temp41);
|
||||
SettingsUpdateText(SET_STAPWD2, temp42);
|
||||
SettingsUpdateText(SET_HOSTNAME, temp5);
|
||||
SettingsUpdateText(SET_SYSLOG_HOST, temp6);
|
||||
#if defined(USE_MQTT_TLS) && defined(USE_MQTT_AWS_IOT)
|
||||
if (!strlen(Settings.ex_mqtt_user)) {
|
||||
SettingsUpdateText(SET_MQTT_HOST, temp7);
|
||||
SettingsUpdateText(SET_MQTT_USER, temp9);
|
||||
} else {
|
||||
char aws_mqtt_host[66];
|
||||
snprintf_P(aws_mqtt_host, sizeof(aws_mqtt_host), PSTR("%s%s"), temp9, temp7);
|
||||
SettingsUpdateText(SET_MQTT_HOST, aws_mqtt_host);
|
||||
SettingsUpdateText(SET_MQTT_USER, "");
|
||||
}
|
||||
#else
|
||||
SettingsUpdateText(SET_MQTT_HOST, temp7);
|
||||
SettingsUpdateText(SET_MQTT_USER, temp9);
|
||||
#endif
|
||||
SettingsUpdateText(SET_MQTT_CLIENT, temp8);
|
||||
SettingsUpdateText(SET_MQTT_PWD, temp10);
|
||||
SettingsUpdateText(SET_MQTT_TOPIC, temp11);
|
||||
SettingsUpdateText(SET_MQTT_BUTTON_TOPIC, temp12);
|
||||
SettingsUpdateText(SET_MQTT_GRP_TOPIC, temp13);
|
||||
|
||||
// SettingsUpdateText(SET_WEBPWD, Settings.ex_web_password);
|
||||
SettingsUpdateText(SET_CORS, Settings.ex_cors_domain);
|
||||
SettingsUpdateText(SET_MQTT_FULLTOPIC, Settings.ex_mqtt_fulltopic);
|
||||
// SettingsUpdateText(SET_MQTT_SWITCH_TOPIC, Settings.ex_switch_topic);
|
||||
SettingsUpdateText(SET_STATE_TXT1, Settings.ex_state_text[0]);
|
||||
SettingsUpdateText(SET_STATE_TXT2, Settings.ex_state_text[1]);
|
||||
SettingsUpdateText(SET_STATE_TXT3, Settings.ex_state_text[2]);
|
||||
SettingsUpdateText(SET_STATE_TXT4, Settings.ex_state_text[3]);
|
||||
SettingsUpdateText(SET_NTPSERVER1, Settings.ex_ntp_server[0]);
|
||||
SettingsUpdateText(SET_NTPSERVER2, Settings.ex_ntp_server[1]);
|
||||
SettingsUpdateText(SET_NTPSERVER3, Settings.ex_ntp_server[2]);
|
||||
SettingsUpdateText(SET_MEM1, Settings.script_pram[0]);
|
||||
SettingsUpdateText(SET_MEM2, Settings.script_pram[1]);
|
||||
SettingsUpdateText(SET_MEM3, Settings.script_pram[2]);
|
||||
SettingsUpdateText(SET_MEM4, Settings.script_pram[3]);
|
||||
SettingsUpdateText(SET_MEM5, Settings.script_pram[4]);
|
||||
// SettingsUpdateText(SET_FRIENDLYNAME1, Settings.ex_friendlyname[0]);
|
||||
// SettingsUpdateText(SET_FRIENDLYNAME2, Settings.ex_friendlyname[1]);
|
||||
// SettingsUpdateText(SET_FRIENDLYNAME3, Settings.ex_friendlyname[2]);
|
||||
// SettingsUpdateText(SET_FRIENDLYNAME4, Settings.ex_friendlyname[3]);
|
||||
}
|
||||
#else // UPGRADE_V8_MIN
|
||||
if (Settings.version < 0x08000000) {
|
||||
#ifdef UPGRADE_V8_MIN_KEEP_WIFI
|
||||
// Save SSIDs and Passwords
|
||||
@ -1269,7 +1164,7 @@ void SettingsDelta(void) {
|
||||
SettingsUpdateText(SET_MQTT_TOPIC, temp11);
|
||||
#endif // UPGRADE_V8_MIN_KEEP_MQTT
|
||||
}
|
||||
#endif // UPGRADE_V8_MIN
|
||||
|
||||
if (Settings.version < 0x08020003) {
|
||||
SettingsUpdateText(SET_TEMPLATE_NAME, Settings.user_template_name);
|
||||
Settings.zb_channel = 0; // set channel to zero to force reinit of zigbee parameters
|
||||
@ -1338,6 +1233,9 @@ void SettingsDelta(void) {
|
||||
for (uint32_t i = 0; i < MAX_SWITCHES; i++) {
|
||||
Settings.switchmode[i] = (i < 8) ? Settings.ex_switchmode[i] : SWITCH_MODE;
|
||||
}
|
||||
for (uint32_t i = 0; i < MAX_INTERLOCK_GROUPS; i++) {
|
||||
Settings.interlock[i] = (i < 4) ? Settings.ex_interlock[i] : 0;
|
||||
}
|
||||
}
|
||||
|
||||
Settings.version = VERSION;
|
||||
|
@ -49,15 +49,17 @@ const uint32_t POWER_MASK = 0xffffffffUL; // Power (Relay) full mask
|
||||
\*********************************************************************************************/
|
||||
|
||||
#ifdef ESP8266
|
||||
const uint8_t MAX_RELAYS = 8; // Max number of relays
|
||||
const uint8_t MAX_RELAYS = 8; // Max number of relays (up to 28)
|
||||
const uint8_t MAX_INTERLOCKS = 4; // Max number of interlock groups (up to MAX_INTERLOCK_GROUPS)
|
||||
#endif // ESP8266
|
||||
#ifdef ESP32
|
||||
const uint8_t MAX_RELAYS = 28; // Max number of relays
|
||||
const uint8_t MAX_RELAYS = 28; // Max number of relays (up to 28)
|
||||
const uint8_t MAX_INTERLOCKS = 14; // Max number of interlock groups (up to MAX_INTERLOCK_GROUPS)
|
||||
#endif // ESP32
|
||||
const uint8_t MAX_KEYS = 8; // Max number of keys or buttons
|
||||
const uint8_t MAX_KEYS = 8; // Max number of keys or buttons (up to 28)
|
||||
|
||||
// Changes to the following MAX_ defines will impact settings layout
|
||||
const uint8_t MAX_INTERLOCKS = 4; // Max number of interlock groups (MAX_RELAYS / 2)
|
||||
const uint8_t MAX_INTERLOCK_GROUPS = 14; // Max number of interlock groups (MAX_RELAYS / 2)
|
||||
const uint8_t MAX_SWITCHES = 28; // Max number of switches
|
||||
const uint8_t MAX_LEDS = 4; // Max number of leds
|
||||
const uint8_t MAX_PWMS = 5; // Max number of PWM channels
|
||||
|
Loading…
x
Reference in New Issue
Block a user