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.