diff --git a/src/cmnds/cmd_if.c b/src/cmnds/cmd_if.c index 97f4f6d8f..0295ad885 100644 --- a/src/cmnds/cmd_if.c +++ b/src/cmnds/cmd_if.c @@ -213,6 +213,9 @@ float getPower(const char *s) { #endif +float getFailedBoots(const char *s) { + return g_bootFailures; +} float getUpTime(const char *s) { return Time_getUpTimeSeconds(); } @@ -342,6 +345,11 @@ const constant_t g_constants[] = { //cnstdetail:"descr":"Time since reboot in seconds", //cnstdetail:"requires":""} { "$uptime", &getUpTime }, + //cnstdetail:{"name":"$failedBoots", + //cnstdetail:"title":"$failedBoots", + //cnstdetail:"descr":"Get number of failed boots (too quick reboots)", + //cnstdetail:"requires":""} + { "$failedBoots", &getFailedBoots }, }; static int g_totalConstants = sizeof(g_constants) / sizeof(g_constants[0]); diff --git a/src/httpserver/http_fns.c b/src/httpserver/http_fns.c index 58b5f5ada..deaee8506 100644 --- a/src/httpserver/http_fns.c +++ b/src/httpserver/http_fns.c @@ -810,7 +810,7 @@ int http_fn_index(http_request_t* request) { hprintf255(request, ""); } hprintf255(request, "
Cfg size: %i, change counter: %i, ota counter: %i, boot incompletes %i (might change to 0 if you wait to 30 sec)!
", - sizeof(g_cfg), g_cfg.changeCounter, g_cfg.otaCounter, Main_GetLastRebootBootFailures()); + sizeof(g_cfg), g_cfg.changeCounter, g_cfg.otaCounter, g_bootFailures); inputName = CFG_GetPingHost(); if (inputName && *inputName && CFG_GetPingDisconnectedSecondsToRestart()) { @@ -893,7 +893,7 @@ int http_fn_index(http_request_t* request) { #endif if (bSafeMode) { hprintf255(request, "
You are in safe mode (AP mode) because full reboot failed %i times. ", - Main_GetLastRebootBootFailures()); + g_bootFailures); hprintf255(request, "Pins, relays, etc are disabled.
"); } diff --git a/src/new_common.h b/src/new_common.h index c27deb1c7..8786f36c9 100644 --- a/src/new_common.h +++ b/src/new_common.h @@ -397,7 +397,6 @@ bool Main_HasFastConnect(); void Main_OnEverySecond(); int Main_HasMQTTConnected(); int Main_HasWiFiConnected(); -int Main_GetLastRebootBootFailures(); void Main_OnPingCheckerReply(int ms); // new_ping.c @@ -442,6 +441,7 @@ extern int g_bWantPinDeepSleep; extern int g_timeSinceLastPingReply; extern int g_startPingWatchDogAfter; extern int g_openAP; +extern int g_bootFailures; typedef int(*jsonCb_t)(void *userData, const char *fmt, ...); int JSON_ProcessCommandReply(const char *cmd, const char *args, void *request, jsonCb_t printer, int flags); diff --git a/src/user_main.c b/src/user_main.c index 3a246afd3..ec2a45fc1 100644 --- a/src/user_main.c +++ b/src/user_main.c @@ -823,10 +823,6 @@ int Main_IsConnectedToWiFi() return g_bHasWiFiConnected; } -int Main_GetLastRebootBootFailures() -{ - return g_bootFailures; -} // called from idle thread each loop. // - just so we know it is running.