diff --git a/src/AmsConfiguration.cpp b/src/AmsConfiguration.cpp
index b10916d4..5d8ec11a 100644
--- a/src/AmsConfiguration.cpp
+++ b/src/AmsConfiguration.cpp
@@ -236,7 +236,7 @@ bool AmsConfiguration::getDebugConfig(DebugConfig& config) {
bool AmsConfiguration::setDebugConfig(DebugConfig& config) {
if(!config.serial && !config.telnet)
- config.level = 5; // Force error level when debug is disabled
+ config.level = 4; // Force warning level when debug is disabled
EEPROM.begin(EEPROM_SIZE);
EEPROM.put(CONFIG_DEBUG_START, config);
bool ret = EEPROM.commit();
diff --git a/src/AmsToMqttBridge.ino b/src/AmsToMqttBridge.ino
index 1480a154..771450ad 100644
--- a/src/AmsToMqttBridge.ino
+++ b/src/AmsToMqttBridge.ino
@@ -212,13 +212,8 @@ void setup() {
Serial.begin(115200);
}
+ Debug.setSerialEnabled(true);
DebugConfig debug;
- if(config.getDebugConfig(debug) && (debug.serial || debug.telnet)) {
- Debug.setSerialEnabled(debug.serial);
- }
- #if DEBUG_MODE
- Debug.setSerialEnabled(true);
- #endif
delay(1);
float vcc = hw.getVcc();
@@ -416,9 +411,8 @@ void loop() {
Debug.setPassword(web.password);
}
DebugConfig debug;
- if(config.getDebugConfig(debug) && (debug.serial || debug.telnet)) {
- Debug.begin(wifi.hostname, (uint8_t) debug.level);
- Debug.setSerialEnabled(debug.serial);
+ if(config.getDebugConfig(debug)) {
+ Debug.begin(wifi.hostname, debug.serial || debug.telnet ? (uint8_t) debug.level : RemoteDebug::WARNING); // I don't know why, but ESP8266 stops working after a while if ERROR level is set
if(!debug.telnet) {
Debug.stop();
}
diff --git a/src/web/AmsWebServer.cpp b/src/web/AmsWebServer.cpp
index bb81e95c..60a67ed4 100644
--- a/src/web/AmsWebServer.cpp
+++ b/src/web/AmsWebServer.cpp
@@ -1283,11 +1283,13 @@ void AmsWebServer::handleSave() {
if(server.hasArg("debugConfig") && server.arg("debugConfig") == "true") {
printD("Received Debug config");
DebugConfig debug;
+ config->getDebugConfig(debug);
+ bool active = debug.serial || debug.telnet;
+
debug.telnet = server.hasArg("debugTelnet") && server.arg("debugTelnet") == "true";
debug.serial = server.hasArg("debugSerial") && server.arg("debugSerial") == "true";
debug.level = server.arg("debugLevel").toInt();
- debugger->stop();
if(debug.telnet || debug.serial) {
if(webConfig.security > 0) {
debugger->setPassword(webConfig.password);
@@ -1302,8 +1304,8 @@ void AmsWebServer::handleSave() {
debugger->stop();
}
}
- } else {
- debugger->stop();
+ } else if(active) {
+ performRestart = true;
}
config->setDebugConfig(debug);
}
@@ -1350,7 +1352,7 @@ void AmsWebServer::handleSave() {
//if (debugger->isActive(RemoteDebug::DEBUG)) config->print(debugger);
if (config->save()) {
printI("Successfully saved.");
- if(config->isWifiChanged()) {
+ if(config->isWifiChanged() || performRestart) {
performRestart = true;
server.sendHeader("Location","/restart-wait");
server.send(303);
diff --git a/web/debugging.html b/web/debugging.html
index ac858968..3e7311a8 100644
--- a/web/debugging.html
+++ b/web/debugging.html
@@ -25,7 +25,6 @@
-