Added second API endpoint which returns system info

This commit is contained in:
Thomas Basler 2022-04-13 00:01:23 +02:00
parent b58788ded5
commit 868f0cf3a5
2 changed files with 19 additions and 0 deletions

View File

@ -17,6 +17,7 @@ private:
void onNotFound(AsyncWebServerRequest* request); void onNotFound(AsyncWebServerRequest* request);
void onNetworkStatus(AsyncWebServerRequest* request); void onNetworkStatus(AsyncWebServerRequest* request);
void onSystemStatus(AsyncWebServerRequest* request);
}; };
extern WebApiClass WebApi; extern WebApiClass WebApi;

View File

@ -22,6 +22,7 @@ void WebApiClass::init()
_ws.onEvent(std::bind(&WebApiClass::onWebsocketEvent, this, _1, _2, _3, _4, _5, _6)); _ws.onEvent(std::bind(&WebApiClass::onWebsocketEvent, this, _1, _2, _3, _4, _5, _6));
_server.on("/api/network/status", HTTP_GET, std::bind(&WebApiClass::onNetworkStatus, this, _1)); _server.on("/api/network/status", HTTP_GET, std::bind(&WebApiClass::onNetworkStatus, this, _1));
_server.on("/api/system/status", HTTP_GET, std::bind(&WebApiClass::onSystemStatus, this, _1));
_server.serveStatic("/", LITTLEFS, "/", "max-age=86400").setDefaultFile("index.html"); _server.serveStatic("/", LITTLEFS, "/", "max-age=86400").setDefaultFile("index.html");
_server.onNotFound(std::bind(&WebApiClass::onNotFound, this, _1)); _server.onNotFound(std::bind(&WebApiClass::onNotFound, this, _1));
@ -71,4 +72,21 @@ void WebApiClass::onNetworkStatus(AsyncWebServerRequest* request)
request->send(response); request->send(response);
} }
void WebApiClass::onSystemStatus(AsyncWebServerRequest* request)
{
AsyncJsonResponse* response = new AsyncJsonResponse();
JsonObject root = response->getRoot();
root[F("hostname")] = WiFi.getHostname();
root[F("heapfree")] = ESP.getFreeHeap();
root[F("heaptotal")] = ESP.getHeapSize();
root[F("sdkversion")] = ESP.getSdkVersion();
root[F("cpufreq")] = ESP.getCpuFreqMHz();
root[F("sketchtotal")] = ESP.getSketchSize() + ESP.getFreeSketchSpace();
root[F("sketchused")] = ESP.getSketchSize();
response->setLength();
request->send(response);
}
WebApiClass WebApi; WebApiClass WebApi;