large jsondocs in PSRAM

This commit is contained in:
proddy
2026-05-16 16:26:04 +02:00
parent 2f85b367b0
commit 5f9eb8d6d2
11 changed files with 141 additions and 22 deletions

View File

@@ -69,7 +69,7 @@ void WebCustomEntity::read(WebCustomEntity & webEntity, JsonObject root) {
StateUpdateResult WebCustomEntity::update(JsonObject root, WebCustomEntity & webCustomEntity) {
// reset everything to start fresh
Command::erase_device_commands(EMSdevice::DeviceType::CUSTOM);
JsonDocument doc;
JsonDocument doc(PSRAM_DOC);
for (CustomEntityItem & entityItem : webCustomEntity.customEntityItems) {
if (entityItem.raw) {
delete[] entityItem.raw;
@@ -453,7 +453,7 @@ void WebCustomEntityService::publish_single(CustomEntityItem & entity) {
snprintf(topic, sizeof(topic), "%s_data/%s", F_(custom), entity.name);
}
JsonDocument doc;
JsonDocument doc(PSRAM_DOC);
JsonObject output = doc.to<JsonObject>();
render_value(output, entity, true);
Mqtt::queue_publish(topic, output["value"].as<std::string>());
@@ -475,7 +475,7 @@ void WebCustomEntityService::publish(const bool force) {
}
}
JsonDocument doc;
JsonDocument doc(PSRAM_DOC);
JsonObject output = doc.to<JsonObject>();
bool ha_created = ha_configdone_;
@@ -486,7 +486,7 @@ void WebCustomEntityService::publish(const bool force) {
render_value(output, entityItem);
// create HA config
if (Mqtt::ha_enabled() && !ha_configdone_) {
JsonDocument config;
JsonDocument config(PSRAM_DOC);
config["~"] = Mqtt::base();
char stat_t[50];
@@ -566,7 +566,7 @@ uint8_t WebCustomEntityService::count_entities() {
return 0;
}
JsonDocument doc;
JsonDocument doc(PSRAM_DOC);
JsonObject output = doc.to<JsonObject>();
uint8_t count = 0;

View File

@@ -212,7 +212,7 @@ void WebCustomizationService::device_entities(AsyncWebServerRequest * request) {
JsonArray output = response->getRoot();
emsdevice->generate_values_web_customization(output);
#else
JsonDocument doc;
JsonDocument doc(PSRAM_DOC);
JsonArray output = doc.to<JsonArray>();
emsdevice->generate_values_web_customization(output);
#endif

View File

@@ -50,7 +50,7 @@ void WebModulesService::loop() {
// it adds data to an empty 'root' json object
// and also calls when the Modules web page is refreshed/loaded
void WebModules::read(WebModules & webModules, JsonObject root) {
JsonDocument doc_modules;
JsonDocument doc_modules(PSRAM_DOC);
auto root_modules = doc_modules.to<JsonObject>();
moduleLibrary.list(root_modules); // get list the external library modules, put in a json object

View File

@@ -266,7 +266,7 @@ void WebSchedulerService::publish(const bool force) {
}
}
JsonDocument doc;
JsonDocument doc(PSRAM_DOC);
JsonObject output = doc.to<JsonObject>();
bool ha_created = ha_configdone_;
for (const ScheduleItem & scheduleItem : *scheduleItems_) {
@@ -275,7 +275,7 @@ void WebSchedulerService::publish(const bool force) {
// create HA config
if (Mqtt::ha_enabled() && !ha_configdone_) {
JsonDocument config;
JsonDocument config(PSRAM_DOC);
config["~"] = Mqtt::base();
char stat_t[50];

View File

@@ -433,7 +433,7 @@ bool WebStatusService::refresh_versions_cache() {
return false;
}
JsonDocument doc;
JsonDocument doc(PSRAM_DOC);
DeserializationError err = deserializeJson(doc, http.getStream());
http.end();
if (err) {
@@ -539,7 +539,7 @@ bool WebStatusService::exportData(JsonObject root, std::string & type) {
// action = getCustomSupport
// reads any upload customSupport.json file and sends to to Help page to be shown as Guest
bool WebStatusService::getCustomSupport(JsonObject root) {
JsonDocument doc;
JsonDocument doc(PSRAM_DOC);
#if defined(EMSESP_STANDALONE)
// dummy test data for "test api3"