From 868f0cf3a52348b3665c8c600dd76b0dda578245 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 13 Apr 2022 00:01:23 +0200 Subject: [PATCH] Added second API endpoint which returns system info --- include/WebApi.h | 1 + src/WebApi.cpp | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/include/WebApi.h b/include/WebApi.h index 7f95aeae..f7204b1c 100644 --- a/include/WebApi.h +++ b/include/WebApi.h @@ -17,6 +17,7 @@ private: void onNotFound(AsyncWebServerRequest* request); void onNetworkStatus(AsyncWebServerRequest* request); + void onSystemStatus(AsyncWebServerRequest* request); }; extern WebApiClass WebApi; \ No newline at end of file diff --git a/src/WebApi.cpp b/src/WebApi.cpp index 0c0b3216..91b91368 100644 --- a/src/WebApi.cpp +++ b/src/WebApi.cpp @@ -22,6 +22,7 @@ void WebApiClass::init() _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/system/status", HTTP_GET, std::bind(&WebApiClass::onSystemStatus, this, _1)); _server.serveStatic("/", LITTLEFS, "/", "max-age=86400").setDefaultFile("index.html"); _server.onNotFound(std::bind(&WebApiClass::onNotFound, this, _1)); @@ -71,4 +72,21 @@ void WebApiClass::onNetworkStatus(AsyncWebServerRequest* request) 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; \ No newline at end of file