From 96c3c39d5a163328f06c5bbd41fb99d6c5b6e6f3 Mon Sep 17 00:00:00 2001 From: Florian <1technophile@users.noreply.github.com> Date: Sun, 12 Nov 2023 19:28:20 -0600 Subject: [PATCH] [SYS] Publish the reboot reason with retain flag So as to have the information stored on the MQTT broker Also remove stopProcessing, not necessary as we follow by a restart --- main/User_config.h | 1 + main/ZgatewayBT.ino | 1 - main/main.ino | 21 ++++++++++++++++----- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/main/User_config.h b/main/User_config.h index 1b42e0513b..8504b806a7 100644 --- a/main/User_config.h +++ b/main/User_config.h @@ -689,6 +689,7 @@ Adafruit_NeoPixel leds2(ANEOPIX_IND_NUM_LEDS, ANEOPIX_IND_DATA_GPIO2, ANEOPIX_IN #define TimeLedON 1 // time LED are ON #define InitialMQTTConnectionTimeout 10 // time estimated (s) before the board is connected to MQTT #define subjectSYStoMQTT "/SYStoMQTT" // system parameters +#define subjectLOGtoMQTT "/LOGtoMQTT" // log informations #define subjectRLStoMQTT "/RLStoMQTT" // latest release information #define subjectMQTTtoSYSset "/commands/MQTTtoSYS/config" #define subjectMQTTtoSYSupdate "/commands/MQTTtoSYS/firmware_update" diff --git a/main/ZgatewayBT.ino b/main/ZgatewayBT.ino index 722f4e212d..24800e639d 100644 --- a/main/ZgatewayBT.ino +++ b/main/ZgatewayBT.ino @@ -115,7 +115,6 @@ void btScanWDG() { scanCount != 0 && (now - lastBtScan > ((BTConfig.BLEinterval + BTConfig.scanDuration) < GeneralTimeOut ? GeneralTimeOut + 1000 : (BTConfig.BLEinterval + BTConfig.scanDuration)))) { Log.error(F("BLE Scan watchdog triggered at : %ds" CR), lastBtScan / 1000); - stopProcessing(); ESPRestart(4); } else { previousBtScanCount = scanCount; diff --git a/main/main.ino b/main/main.ino index 0509c9b8b1..b2a3238229 100644 --- a/main/main.ino +++ b/main/main.ino @@ -63,8 +63,8 @@ unsigned long timer_sys_checks = 0; # include int queueLength = 0; -int queueLengthSum = 0; -int blockedMessages = 0; +unsigned long queueLengthSum = 0; +unsigned long blockedMessages = 0; int maxQueueLength = 0; # ifndef QueueSize # define QueueSize 18 @@ -1470,14 +1470,25 @@ bool wifi_reconnect_bypass() { 6 - OTA Update 7 - Parameters changed */ +#if defined(ESP8266) || defined(ESP32) void ESPRestart(byte reason) { + delay(1000); + StaticJsonDocument<128> jsonBuffer; + JsonObject jsondata = jsonBuffer.to(); + jsondata["reason"] = reason; + jsondata["retain"] = true; + jsondata["uptime"] = uptime(); + pub(subjectLOGtoMQTT, jsondata); Log.warning(F("Rebooting for reason code %d" CR), reason); -#if defined(ESP32) +# if defined(ESP32) ESP.restart(); -#elif defined(ESP8266) +# elif defined(ESP8266) ESP.reset(); -#endif +# endif } +#else +void ESPRestart(byte reason) {} +#endif #if defined(ESPWifiManualSetup) void setup_wifi() {