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)