Clear GPIO on multi boot loop

Clear GPIO on multi boot loop
This commit is contained in:
Theo Arends 2018-08-30 14:47:48 +02:00
parent f7c38f24f3
commit 2212af4860
3 changed files with 8 additions and 4 deletions

View File

@ -140,6 +140,7 @@ Version 6.2.0 20180901
* Fix Sonoff Bridge data reception when using Portisch EFM8 firmware using in data buffer length (#3605)
* Add read sensor retry to DS18B20, DS18x20, DHT, SHT1X and HTU21
* Add user selection of Wifi Smartconfig as define USE_SMARTCONFIG in user_config.h
* Add boot loop detection and perform some solutions
* Add wifi and mqtt status led blinkyblinky to be disabled by SetOption31 1. Does not work when LedPower is On (deliberate) (#871, #2230, #3114, #3155)
* Add support for TM1638 switch (#2226)
* Add GPIO options ButtonXn, SwitchXn and CounterXn to select INPUT mode instead of INPUT_PULLUP (#2525)

View File

@ -1,5 +1,5 @@
/* 6.1.1.14 20180830
* Add boot loop detection and try to fix
* Add boot loop detection and perform some solutions
*
* 6.1.1.13 20180828
* Fix 6.1.1.12 regression of Mem and Var default handling (#3618)

View File

@ -2527,7 +2527,7 @@ void setup()
save_data_counter = Settings.save_data;
sleep = Settings.sleep;
// Disable functionality as possible cause of fast reboot within BOOT_LOOP_TIME seconds (Exception or WDT)
// Disable functionality as possible cause of fast restart within BOOT_LOOP_TIME seconds (Exception, WDT or restarts)
if (RtcSettings.fast_reboot_count > 1) { // Restart twice
Settings.flag3.user_esp8285_enable = 0; // Disable ESP8285 Generic GPIOs interfering with flash SPI
if (RtcSettings.fast_reboot_count > 2) { // Restart 3 times
@ -2541,8 +2541,11 @@ void setup()
Settings.rule_enabled = 0; // Disable all rules
}
if (RtcSettings.fast_reboot_count > 4) { // Restarted 5 times
Settings.module = SONOFF_BASIC; // Use default module
Settings.last_module = SONOFF_BASIC; // Use default module
Settings.module = SONOFF_BASIC; // Reset module to Sonoff Basic
Settings.last_module = SONOFF_BASIC;
for (byte i = 0; i < MAX_GPIO_PIN; i++) {
Settings.my_gp.io[i] = GPIO_NONE; // Reset user defined GPIO disabling sensors
}
}
snprintf_P(log_data, sizeof(log_data), PSTR(D_LOG_APPLICATION D_LOG_SOME_SETTINGS_RESET " (%d)"), RtcSettings.fast_reboot_count);
AddLog(LOG_LEVEL_DEBUG);