diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 4f49d423c..927d66944 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -14,6 +14,7 @@ - change syslog settings without reboot - HA-config split in smaller blocks - commands `fetch` and `publish [ha]` as call +- mqtt json package size ### Removed - old scripts diff --git a/src/WebAPIService.cpp b/src/WebAPIService.cpp index 499741713..94da9e153 100644 --- a/src/WebAPIService.cpp +++ b/src/WebAPIService.cpp @@ -71,7 +71,7 @@ void WebAPIService::webAPIService(AsyncWebServerRequest * request) { id = "-1"; } - DynamicJsonDocument doc(EMSESP_MAX_JSON_SIZE_LARGE); + DynamicJsonDocument doc(EMSESP_MAX_JSON_SIZE_DYN); JsonObject json = doc.to(); bool ok = false; @@ -101,7 +101,7 @@ void WebAPIService::webAPIService(AsyncWebServerRequest * request) { ok ? PSTR("OK") : PSTR("Invalid")); EMSESP::logger().info(debug.c_str()); if (json.size()) { - char buffer2[EMSESP_MAX_JSON_SIZE_LARGE]; + char buffer2[EMSESP_MAX_JSON_SIZE_DYN]; serializeJson(doc, buffer2); EMSESP::logger().info("json (max 255 chars): %s", buffer2); } @@ -110,7 +110,7 @@ void WebAPIService::webAPIService(AsyncWebServerRequest * request) { // if we have returned data in JSON format, send this to the WEB if (json.size()) { doc.shrinkToFit(); - char buffer[EMSESP_MAX_JSON_SIZE_LARGE]; + char buffer[EMSESP_MAX_JSON_SIZE_DYN]; serializeJsonPretty(doc, buffer); request->send(200, "text/plain", buffer); } else { diff --git a/src/mqtt.h b/src/mqtt.h index ead5681d9..7e5080a79 100644 --- a/src/mqtt.h +++ b/src/mqtt.h @@ -38,11 +38,10 @@ using uuid::console::Shell; -#define EMSESP_MAX_JSON_SIZE_SMALL 256 // for smaller json docs when using StaticJsonDocument -#define EMSESP_MAX_JSON_SIZE_MEDIUM 768 // for smaller json docs from ems devices, when using StaticJsonDocument -// #define EMSESP_MAX_JSON_SIZE_LARGE 2048 // for large json docs from ems devices, like boiler or thermostat data. Using DynamicJsonDocument -// mqtt does not publish larger than 1570 on esp8266, boiler message is split and now smaller -#define EMSESP_MAX_JSON_SIZE_LARGE 1536 // for large json docs from ems devices, like boiler or thermostat data. Using StaticJsonDocument +#define EMSESP_MAX_JSON_SIZE_SMALL 384 // for smaller json docs when using StaticJsonDocument +#define EMSESP_MAX_JSON_SIZE_MEDIUM 768 // for medium json docs from ems devices, when 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_DYN 2048 // for large json docs from web. Using DynamicJsonDocument namespace emsesp {