diff --git a/Arduino_Sketch/HASwitchPlate/HASwitchPlate.ino b/Arduino_Sketch/HASwitchPlate/HASwitchPlate.ino
index 887f815..806d542 100644
--- a/Arduino_Sketch/HASwitchPlate/HASwitchPlate.ino
+++ b/Arduino_Sketch/HASwitchPlate/HASwitchPlate.ino
@@ -175,9 +175,13 @@ void setup()
{ // System setup
debugPrint(String(F("\n\n================================================================================\n")));
debugPrintln(String(F("SYSTEM: Starting HASPone v")) + String(haspVersion));
- debugPrintln(String(F("SYSTEM: Last reset reason: ")) + String(ESP.getResetInfo()));
debugPrintln(String(F("SYSTEM: heapFree: ")) + String(ESP.getFreeHeap()) + String(F(" heapMaxFreeBlockSize: ")) + String(ESP.getMaxFreeBlockSize()));
- debugPrintCrash();
+ debugPrintln(String(F("SYSTEM: Last reset reason: ")) + String(ESP.getResetInfo()));
+ if (SaveCrash.count())
+ {
+ debugPrint(String(F("SYSTEM: Crashdump data discovered:")));
+ debugPrintCrash();
+ }
debugPrint(String(F("================================================================================\n\n")));
pinMode(nextionResetPin, OUTPUT); // Take control over the power switch for the LCD
@@ -476,17 +480,26 @@ void mqttConnect()
mqttReconnectCount++;
if (mqttReconnectCount * mqttConnectTimeout * 6 > (connectTimeout * 1000))
{
- debugPrintln(String(F("MQTT connection attempt ")) + String(mqttReconnectCount) + String(F(" failed with rc: ")) + String(mqttClient.returnCode()) + String(F(" and error: ")) + String(mqttClient.lastError()) + String(F(". Restarting device.")));
+ debugPrintln(String(F("MQTT: connection attempt ")) + String(mqttReconnectCount) + String(F(" failed with rc: ")) + String(mqttClient.returnCode()) + String(F(" and error: ")) + String(mqttClient.lastError()) + String(F(". Restarting device.")));
espReset();
}
yield();
webServer.handleClient();
+
+ String mqttCheckResult = "Ping: FAILED";
+ String mqttCheckResultNextion = "MQTT Check...";
+
+ debugPrintln(String(F("MQTT: connection attempt ")) + String(mqttReconnectCount) + String(F(" failed with rc ")) + String(mqttClient.returnCode()) + String(F(" and error: ")) + String(mqttClient.lastError()));
+ nextionSetAttr("p[0].b[1].txt", String(F("\"WiFi Connected!\\r ")) + String(WiFi.SSID()) + String(F("\\rIP: ")) + WiFi.localIP().toString() + String(F("\\r\\rMQTT Failed:\\r ")) + String(mqttServer) + String(F("\\rRC: ")) + String(mqttClient.returnCode()) + String(F(" Error: ")) + String(mqttClient.lastError()) + String(F("\\r")) + mqttCheckResultNextion + String(F("\"")));
+
mqttPingCheck = Ping.ping(mqttServer, 4);
yield();
webServer.handleClient();
mqttPortCheck = wifiClient.connect(mqttServer, atoi(mqttPort));
- String mqttCheckResult = "Ping: FAILED";
- String mqttCheckResultNextion = "Ping: ";
+ yield();
+ webServer.handleClient();
+
+ mqttCheckResultNextion = "Ping: ";
if (mqttPingCheck)
{
mqttCheckResult = "Ping: SUCCESS";
@@ -502,7 +515,7 @@ void mqttConnect()
mqttCheckResult += " Port: FAILED";
mqttCheckResultNextion += " Port: ";
}
- debugPrintln(String(F("MQTT connection attempt ")) + String(mqttReconnectCount) + String(F(" failed with rc ")) + String(mqttClient.returnCode()) + String(F(" and error: ")) + String(mqttClient.lastError()) + String(F(". Connection checks: ")) + mqttCheckResult + String(F(". Trying again in 30 seconds.")));
+ debugPrintln(String(F("MQTT: connection checks: ")) + mqttCheckResult + String(F(". Trying again in 30 seconds.")));
nextionSetAttr("p[0].b[1].txt", String(F("\"WiFi Connected!\\r ")) + String(WiFi.SSID()) + String(F("\\rIP: ")) + WiFi.localIP().toString() + String(F("\\r\\rMQTT Failed:\\r ")) + String(mqttServer) + String(F("\\rRC: ")) + String(mqttClient.returnCode()) + String(F(" Error: ")) + String(mqttClient.lastError()) + String(F("\\r")) + mqttCheckResultNextion + String(F("\"")));
while (millis() < (mqttConnectTimer + (mqttConnectTimeout * 6)))
@@ -2471,7 +2484,7 @@ void webHandleRoot()
webServer.sendContent(haspNode);
webServer.sendContent(F("'>
Group Name (required)
MQTT Broker (required, IP address is preferred)
MQTT Broker (required, IP address is preferred)