json sizes for web and console

This commit is contained in:
MichaelDvP
2020-11-30 17:00:06 +01:00
parent 32bffcb42f
commit f3b3f9fc60
4 changed files with 7 additions and 6 deletions

View File

@@ -45,7 +45,7 @@ void WebDevicesService::scan_devices(AsyncWebServerRequest * request) {
} }
void WebDevicesService::all_devices(AsyncWebServerRequest * request) { void WebDevicesService::all_devices(AsyncWebServerRequest * request) {
AsyncJsonResponse * response = new AsyncJsonResponse(false, EMSESP_MAX_JSON_SIZE_LARGE); AsyncJsonResponse * response = new AsyncJsonResponse(false, EMSESP_MAX_JSON_SIZE_LARGE_DYN);
JsonObject root = response->getRoot(); JsonObject root = response->getRoot();
JsonArray devices = root.createNestedArray("devices"); JsonArray devices = root.createNestedArray("devices");
@@ -80,7 +80,7 @@ void WebDevicesService::all_devices(AsyncWebServerRequest * request) {
void WebDevicesService::device_data(AsyncWebServerRequest * request, JsonVariant & json) { void WebDevicesService::device_data(AsyncWebServerRequest * request, JsonVariant & json) {
if (json.is<JsonObject>()) { if (json.is<JsonObject>()) {
AsyncJsonResponse * response = new AsyncJsonResponse(false, EMSESP_MAX_JSON_SIZE_LARGE_DYN); AsyncJsonResponse * response = new AsyncJsonResponse(false, EMSESP_MAX_JSON_SIZE_MAX_DYN);
#ifndef EMSESP_STANDALONE #ifndef EMSESP_STANDALONE
uint8_t id = json["id"]; // get id from selected table row uint8_t id = json["id"]; // get id from selected table row
EMSESP::device_info_web(id, (JsonObject &)response->getRoot()); EMSESP::device_info_web(id, (JsonObject &)response->getRoot());

View File

@@ -57,7 +57,7 @@ void WebStatusService::onStationModeGotIP(const WiFiEventStationModeGotIP & even
#endif #endif
void WebStatusService::webStatusService(AsyncWebServerRequest * request) { void WebStatusService::webStatusService(AsyncWebServerRequest * request) {
AsyncJsonResponse * response = new AsyncJsonResponse(false, EMSESP_MAX_JSON_SIZE_LARGE); AsyncJsonResponse * response = new AsyncJsonResponse(false, EMSESP_MAX_JSON_SIZE_MEDIUM_DYN);
JsonObject root = response->getRoot(); JsonObject root = response->getRoot();
root["status"] = EMSESP::bus_status(); // 0, 1 or 2 root["status"] = EMSESP::bus_status(); // 0, 1 or 2

View File

@@ -264,7 +264,7 @@ void EMSESP::show_device_values(uuid::console::Shell & shell) {
return; return;
} }
DynamicJsonDocument doc(EMSESP_MAX_JSON_SIZE_LARGE_DYN); DynamicJsonDocument doc(EMSESP_MAX_JSON_SIZE_MAX_DYN);
// do this in the order of factory classes to keep a consistent order when displaying // do this in the order of factory classes to keep a consistent order when displaying
for (const auto & device_class : EMSFactory::device_handlers()) { for (const auto & device_class : EMSFactory::device_handlers()) {
@@ -677,8 +677,8 @@ void EMSESP::device_info_web(const uint8_t unique_id, JsonObject & root) {
for (const auto & emsdevice : emsdevices) { for (const auto & emsdevice : emsdevices) {
if (emsdevice) { if (emsdevice) {
if (emsdevice->unique_id() == unique_id) { if (emsdevice->unique_id() == unique_id) {
root["name"] = emsdevice->to_string_short(); // can't use c_str() because of scope root["name"] = emsdevice->to_string_short(); // can't use c_str() because of scope
JsonArray data = root.createNestedArray("data"); JsonArray data = root.createNestedArray("data");
emsdevice->device_info_web(data); emsdevice->device_info_web(data);
return; return;
} }

View File

@@ -58,6 +58,7 @@
#define EMSESP_MAX_JSON_SIZE_LARGE 1024 // for large json docs from ems devices, like boiler or thermostat data, using StaticJsonDocument #define EMSESP_MAX_JSON_SIZE_LARGE 1024 // for large json docs from ems devices, like boiler or thermostat data, using StaticJsonDocument
#define EMSESP_MAX_JSON_SIZE_MEDIUM_DYN 1024 // for large json docs, using DynamicJsonDocument #define EMSESP_MAX_JSON_SIZE_MEDIUM_DYN 1024 // for large json docs, using DynamicJsonDocument
#define EMSESP_MAX_JSON_SIZE_LARGE_DYN 2048 // for very large json docs, using DynamicJsonDocument #define EMSESP_MAX_JSON_SIZE_LARGE_DYN 2048 // for very large json docs, using DynamicJsonDocument
#define EMSESP_MAX_JSON_SIZE_MAX_DYN 4096 // for very very large json docs, using DynamicJsonDocument
namespace emsesp { namespace emsesp {