diff --git a/src/api.cpp b/src/api.cpp index 8b188fe..ba9d6a7 100644 --- a/src/api.cpp +++ b/src/api.cpp @@ -60,10 +60,10 @@ JsonDocument fetchSpoolsForWebsite() { JsonArray filteredSpools = filteredDoc.to(); for (JsonObject spool : spools) { - JsonObject filteredSpool = filteredSpools.createNestedObject(); + JsonObject filteredSpool = filteredSpools.add(); filteredSpool["extra"]["nfc_id"] = spool["extra"]["nfc_id"]; - JsonObject filament = filteredSpool.createNestedObject("filament"); + JsonObject filament = filteredSpool["filament"].to(); filament["sm_id"] = spool["id"]; filament["id"] = spool["filament"]["id"]; filament["name"] = spool["filament"]["name"]; @@ -73,7 +73,7 @@ JsonDocument fetchSpoolsForWebsite() { filament["price_meter"] = spool["filament"]["extra"]["price_meter"]; filament["price_gramm"] = spool["filament"]["extra"]["price_gramm"]; - JsonObject vendor = filament.createNestedObject("vendor"); + JsonObject vendor = filament["vendor"].to(); vendor["id"] = spool["filament"]["vendor"]["id"]; vendor["name"] = spool["filament"]["vendor"]["name"]; } @@ -110,13 +110,13 @@ JsonDocument fetchAllSpoolsInfo() { JsonArray filteredSpools = filteredDoc.to(); for (JsonObject spool : spools) { - JsonObject filteredSpool = filteredSpools.createNestedObject(); + JsonObject filteredSpool = filteredSpools.add(); filteredSpool["price"] = spool["price"]; filteredSpool["remaining_weight"] = spool["remaining_weight"]; filteredSpool["used_weight"] = spool["used_weight"]; filteredSpool["extra"]["nfc_id"] = spool["extra"]["nfc_id"]; - JsonObject filament = filteredSpool.createNestedObject("filament"); + JsonObject filament = filteredSpool["filament"].to(); filament["id"] = spool["filament"]["id"]; filament["name"] = spool["filament"]["name"]; filament["material"] = spool["filament"]["material"]; @@ -125,11 +125,11 @@ JsonDocument fetchAllSpoolsInfo() { filament["spool_weight"] = spool["filament"]["spool_weight"]; filament["color_hex"] = spool["filament"]["color_hex"]; - JsonObject vendor = filament.createNestedObject("vendor"); + JsonObject vendor = filament["vendor"].to(); vendor["id"] = spool["filament"]["vendor"]["id"]; vendor["name"] = spool["filament"]["vendor"]["name"]; - JsonObject extra = filament.createNestedObject("extra"); + JsonObject extra = filament["extra"].to(); extra["nozzle_temperature"] = spool["filament"]["extra"]["nozzle_temperature"]; extra["price_gramm"] = spool["filament"]["extra"]["price_gramm"]; extra["price_meter"] = spool["filament"]["extra"]["price_meter"]; @@ -186,7 +186,7 @@ bool updateSpoolTagId(String uidString, const char* payload) { } // Überprüfe, ob die erforderlichen Felder vorhanden sind - if (!doc.containsKey("sm_id") || doc["sm_id"] == "") { + if (!doc["sm_id"].is() || doc["sm_id"].as() == "") { Serial.println("Keine Spoolman-ID gefunden."); return false; } @@ -368,7 +368,7 @@ bool checkSpoolmanExtraFields() { for (uint8_t s = 0; s < extraLength; s++) { bool found = false; for (JsonObject field : doc.as()) { - if (field.containsKey("key") && field["key"] == extraFields[s]) { + if (field["key"].is() && field["key"] == extraFields[s]) { Serial.println("Feld gefunden: " + extraFields[s]); found = true; break; @@ -430,7 +430,7 @@ bool checkSpoolmanInstance(const String& url) { String payload = http.getString(); JsonDocument doc; DeserializationError error = deserializeJson(doc, payload); - if (!error && doc.containsKey("status")) { + if (!error && doc["status"].is()) { const char* status = doc["status"]; http.end(); @@ -469,7 +469,7 @@ bool saveSpoolmanUrl(const String& url) { String loadSpoolmanUrl() { JsonDocument doc; - if (loadJsonValue("/spoolman_url.json", doc) && doc.containsKey("url")) { + if (loadJsonValue("/spoolman_url.json", doc) && doc["url"].is()) { return doc["url"].as(); } Serial.println("Keine gültige Spoolman-URL gefunden."); diff --git a/src/bambu.cpp b/src/bambu.cpp index 460ef60..b1a2bde 100644 --- a/src/bambu.cpp +++ b/src/bambu.cpp @@ -58,7 +58,7 @@ bool saveBambuCredentials(const String& ip, const String& serialnr, const String bool loadBambuCredentials() { JsonDocument doc; - if (loadJsonValue("/bambu_credentials.json", doc) && doc.containsKey("bambu_ip")) { + if (loadJsonValue("/bambu_credentials.json", doc) && doc["bambu_ip"].is()) { // Temporäre Strings für die Werte String ip = doc["bambu_ip"].as(); String code = doc["bambu_accesscode"].as(); @@ -270,9 +270,9 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) { } // Prüfen, ob "print->upgrade_state" und "print.ams.ams" existieren - if (doc["print"].containsKey("upgrade_state")) { + if (doc["print"]["upgrade_state"].is()) { // Prüfen ob AMS-Daten vorhanden sind - if (!doc["print"].containsKey("ams") || !doc["print"]["ams"].containsKey("ams")) { + if (!doc["print"]["ams"].is() || !doc["print"]["ams"]["ams"].is()) { return; } @@ -315,7 +315,7 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) { } // Prüfe die externe Spule - if (!hasChanges && doc["print"].containsKey("vt_tray")) { + if (!hasChanges && doc["print"]["vt_tray"].is()) { JsonObject vtTray = doc["print"]["vt_tray"]; bool foundExternal = false; @@ -363,7 +363,7 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) { ams_count = amsArray.size(); // Wenn externe Spule vorhanden, füge sie hinzu - if (doc["print"].containsKey("vt_tray")) { + if (doc["print"]["vt_tray"].is()) { JsonObject vtTray = doc["print"]["vt_tray"]; int extIdx = ams_count; // Index für externe Spule ams_data[extIdx].ams_id = 255; // Spezielle ID für externe Spule @@ -387,14 +387,14 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) { JsonArray wsArray = wsDoc.to(); for (int i = 0; i < ams_count; i++) { - JsonObject amsObj = wsArray.createNestedObject(); + JsonObject amsObj = wsArray.add(); amsObj["ams_id"] = ams_data[i].ams_id; - JsonArray trays = amsObj.createNestedArray("tray"); + JsonArray trays = amsObj["tray"].to(); int maxTrays = (ams_data[i].ams_id == 255) ? 1 : 4; for (int j = 0; j < maxTrays; j++) { - JsonObject trayObj = trays.createNestedObject(); + JsonObject trayObj = trays.add(); trayObj["id"] = ams_data[i].trays[j].id; trayObj["tray_info_idx"] = ams_data[i].trays[j].tray_info_idx; trayObj["tray_type"] = ams_data[i].trays[j].tray_type; @@ -427,14 +427,14 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) { JsonArray wsArray = wsDoc.to(); for (int j = 0; j < ams_count; j++) { - JsonObject amsObj = wsArray.createNestedObject(); + JsonObject amsObj = wsArray.add(); amsObj["ams_id"] = ams_data[j].ams_id; - JsonArray trays = amsObj.createNestedArray("tray"); + JsonArray trays = amsObj["tray"].to(); int maxTrays = (ams_data[j].ams_id == 255) ? 1 : 4; for (int k = 0; k < maxTrays; k++) { - JsonObject trayObj = trays.createNestedObject(); + JsonObject trayObj = trays.add(); trayObj["id"] = ams_data[j].trays[k].id; trayObj["tray_info_idx"] = ams_data[j].trays[k].tray_info_idx; trayObj["tray_type"] = ams_data[j].trays[k].tray_type;