Downgrade von V2.2 auf 2.1 - Anpassung der ArduinoJson library möglich?

Ich habe aufgrund einer Inkompatibilität mit LPCD bei mir den Wunsch, von dem aktuellen Master (2.2) wieder auf 2.1 zurückzukehren.

Das Erstellen eines Branches in PlatformIO aus der Version 2.1 hat nicht funktioniert und auch das manuelle Einbinden der als zip geladenen V2.1 hat aufgrund der Umstellung von ArduinoJson nicht geklappt (Dank an @freddy für die Erklärung).

Meine Programmierkenntnisse sind (immer noch) sehr eingeschränkt, aber in der platformio.ini konnte ich zumindest den Link zur erwarteten Version der library anpassen auf

https://github.com/bblanchon/ArduinoJson.git#f17fc05

und damit zumindest das Projekt erstmal laden. Beim Upload kam dann aber natürlich eine Fehlermeldung:

Compiling .pio\build\lolin_d32_pro_sdmmc_pe\libea8\FastLED\FastLED.cpp.o
In file included from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:88:25: warning: 'DynamicJsonDocument' is deprecated: use JsonDocument instead [-Wdeprecated-declarations]
     DynamicJsonDocument _jsonBuffer;
                         ^~~~~~~~~~~
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:53,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/compatibility.hpp:125:58: note: declared here
 class ARDUINOJSON_DEPRECATED("use JsonDocument instead") DynamicJsonDocument
                                                          ^~~~~~~~~~~~~~~~~~~
In file included from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h: In constructor 'AsyncJsonResponse::AsyncJsonResponse(bool, size_t)':
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:110:47: warning: 'ArduinoJson::V703PB2::JsonArray ArduinoJson::V703PB2::JsonDocument::createNestedArray()' is deprecated: use add<JsonArray>() instead [-Wdeprecated-declarations]
         _root = _jsonBuffer.createNestedArray();
                                               ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:33,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:298:13: note: declared here
   JsonArray createNestedArray() {
             ^~~~~~~~~~~~~~~~~
In file included from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:112:48: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonDocument::createNestedObject()' is deprecated: use add<JsonObject>() instead [-Wdeprecated-declarations]
         _root = _jsonBuffer.createNestedObject();
                                                ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:33,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:318:14: note: declared here
   JsonObject createNestedObject() {
              ^~~~~~~~~~~~~~~~~~
In file included from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h: In member function 'virtual void AsyncCallbackJsonWebHandler::handleRequest(AsyncWebServerRequest*)':
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:224:39: warning: 'DynamicJsonDocument' is deprecated: use JsonDocument instead [-Wdeprecated-declarations]
         DynamicJsonDocument jsonBuffer(this->maxJsonBufferSize);
                                       ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:53,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/compatibility.hpp:125:58: note: declared here
 class ARDUINOJSON_DEPRECATED("use JsonDocument instead") DynamicJsonDocument
                                                          ^~~~~~~~~~~~~~~~~~~
src/Web.cpp: At global scope:
src/Web.cpp:96:28: warning: 'template<class TAllocator> class ArduinoJson::V703PB2::BasicJsonDocument' is deprecated: use JsonDocument instead [-Wdeprecated-declarations]
 using SpiRamJsonDocument = BasicJsonDocument<SpiRamAllocator>;
                            ^~~~~~~~~~~~~~~~~
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:53,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/compatibility.hpp:107:58: note: declared here
 class ARDUINOJSON_DEPRECATED("use JsonDocument instead") BasicJsonDocument
                                                          ^~~~~~~~~~~~~~~~~
src/Web.cpp: In function 'void settingsToJSON(ArduinoJson::V703PB2::JsonObject, String)':
src/Web.cpp:711:55: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject curObj = obj.createNestedObject("current");
                                                       ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:717:59: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject generalObj = obj.createNestedObject("general");
                                                           ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:725:53: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject wifiObj = obj.createNestedObject("wifi");
                                                     ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:731:55: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject ssidsObj = obj.createNestedObject("ssids");
                                                       ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:734:62: warning: 'ArduinoJson::V703PB2::JsonArray ArduinoJson::V703PB2::JsonObject::createNestedArray(TChar*) const [with TChar = const char]' is deprecated: use obj[key].to<JsonArray>() instead [-Wdeprecated-declarations]
   JsonArray ssidArr = ssidsObj.createNestedArray("savedSSIDs");
                                                              ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:167:13: note: declared here
   JsonArray createNestedArray(TChar* key) const {
             ^~~~~~~~~~~~~~~~~
src/Web.cpp:749:52: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
    JsonObject ledObj = obj.createNestedObject("led");
                                                    ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:757:60: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
    JsonObject batteryObj = obj.createNestedObject("battery");
                                                            ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:766:61: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject defaultsObj = obj.createNestedObject("defaults");
                                                             ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:785:52: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
    JsonObject ftpObj = obj.createNestedObject("ftp");
                                                    ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:811:57: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
    JsonObject btObj = obj.createNestedObject("bluetooth");
                                                         ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
Compiling .pio\build\lolin_d32_pro_sdmmc_pe\libea8\FastLED\bitswap.cpp.o
src/Web.cpp: In function 'void handleGetInfo(AsyncWebServerRequest*)':
src/Web.cpp:839:52: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonDocument::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use doc[key].to<JsonObject>() instead [-Wdeprecated-declarations]
  JsonObject infoObj = doc.createNestedObject("info");
                                                    ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:33,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:325:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:842:65: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject softwareObj = infoObj.createNestedObject("software");
                                                                 ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:850:65: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject hardwareObj = infoObj.createNestedObject("hardware");
                                                                 ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:857:61: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject memoryObj = infoObj.createNestedObject("memory");
                                                             ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:866:57: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject wifiObj = infoObj.createNestedObject("wifi");
                                                         ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:872:59: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject audioObj = infoObj.createNestedObject("audio");
                                                           ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:880:64: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
    JsonObject batteryObj = infoObj.createNestedObject("battery");
                                                                ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp: In function 'void handleGetSettings(AsyncWebServerRequest*)':
src/Web.cpp:921:60: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonDocument::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use doc[key].to<JsonObject>() instead [-Wdeprecated-declarations]
  JsonObject settingsObj = doc.createNestedObject("settings");
                                                            ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:33,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:325:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp: In function 'void Web_SendWebsocketData(uint32_t, uint8_t)':
src/Web.cpp:970:2: warning: 'template<unsigned int N> class ArduinoJson::V703PB2::StaticJsonDocument' is deprecated: use JsonDocument instead [-Wdeprecated-declarations]
  StaticJsonDocument<1024> doc;
  ^~~~~~~~~~~~~~~~~~
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:53,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/compatibility.hpp:63:58: note: declared here
 class ARDUINOJSON_DEPRECATED("use JsonDocument instead") StaticJsonDocument
                                                          ^~~~~~~~~~~~~~~~~~
src/Web.cpp:985:59: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject entry = object.createNestedObject("trackinfo");
                                                           ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:996:58: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject entry = object.createNestedObject("settings");
                                                          ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp:999:58: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonObject::createNestedObject(TChar*) [with TChar = const char]' is deprecated: use obj[key].to<JsonObject>() instead [-Wdeprecated-declarations]
   JsonObject entry = object.createNestedObject("settings");
                                                          ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:30,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp:181:14: note: declared here
   JsonObject createNestedObject(TChar* key) {
              ^~~~~~~~~~~~~~~~~~
src/Web.cpp: In function 'void explorerHandleListRequest(AsyncWebServerRequest*)':
src/Web.cpp:1273:47: warning: 'ArduinoJson::V703PB2::JsonArray ArduinoJson::V703PB2::JsonDocument::createNestedArray()' is deprecated: use add<JsonArray>() instead [-Wdeprecated-declarations]
  JsonArray obj = jsonBuffer.createNestedArray();
                                               ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:33,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
Compiling .pio\build\lolin_d32_pro_sdmmc_pe\libea8\FastLED\colorpalettes.cpp.o
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:298:13: note: declared here
   JsonArray createNestedArray() {
             ^~~~~~~~~~~~~~~~~
src/Web.cpp:1299:46: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonArray::createNestedObject() const' is deprecated: use add<JsonObject>() instead [-Wdeprecated-declarations]
    JsonObject entry = obj.createNestedObject();
                                              ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:53,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/compatibility.hpp:140:19: note: declared here
 inline JsonObject JsonArray::createNestedObject() const {
                   ^~~~~~~~~
src/Web.cpp: In function 'bool DumpNvsToJSONCallback(const char*, void*)':
src/Web.cpp:1651:45: warning: 'ArduinoJson::V703PB2::JsonObject ArduinoJson::V703PB2::JsonArray::createNestedObject() const' is deprecated: use add<JsonObject>() instead [-Wdeprecated-declarations]
  JsonObject obj = myArr->createNestedObject();
                                             ^
In file included from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.hpp:53,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson.h:9,
                 from .pio/libdeps/lolin_d32_pro_sdmmc_pe/ESP Async WebServer/src/AsyncJson.h:37,
                 from src/Web.cpp:10:
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/compatibility.hpp:140:19: note: declared here
 inline JsonObject JsonArray::createNestedObject() const {
                   ^~~~~~~~~
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/compatibility.hpp: In instantiation of 'void* ArduinoJson::V703PB2::detail::AllocatorAdapter<TAllocator>::reallocate(void*, size_t) [with TAllocator = SpiRamAllocator; size_t = unsigned int]':
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/compatibility.hpp:88:9:   required from here
.pio/libdeps/lolin_d32_pro_sdmmc_pe/ArduinoJson/src/ArduinoJson/compatibility.hpp:89:23: error: 'struct SpiRamAllocator' has no member named 'reallocate'; did you mean 'deallocate'?
     return _allocator.reallocate(ptr, new_size);
            ~~~~~~~~~~~^~~~~~~~~~
            deallocate
*** [.pio\build\lolin_d32_pro_sdmmc_pe\src\Web.o] Error 1

Jetzt meine Fragen als Laie: Sind die Stellen zur Anpassung der Bibliothek einfach zu finden und zu ändern? Oder geht das überhaupt nicht so leicht, wie ich mir das erhofft habe?

Und gibt es vielleicht einen viel einfacheren Weg, auf die Version 2.1 zurückzukehren?

Danke schonmal

Klar. Am besten ist es, das ganze Projekt mit git auszuchecken und in vsc als Plugin gitlens zu installieren. Dann kannst die Branches sehen. Zuvor muss man das natürlich auschecken. Wie das geht steht hier: 📗 ESPuino in Platformio anlegen und mit git aktuell halten

So sieht das dann aus zB:

Auf Master machst du einen Rechtsklick und dann gibt’s da „Open in commit graph“. Sieht dann so aus:

Da kannst du jetzt durch die History pflügen und kriegst es graphisch noch nett aufbereitet. Im Bild habe ich mal die v2.1 markiert. Da kann man nach Rechtsklick mit „Switch to commit“ hinspringen. Man kann sich aber auch einen Branch mit „Create Branch“ anlegen. Dann wird genau von diesem Commit-Stand ein Branch angelegt, indem du deine Änderungen machen kannst. Die kannst du dann lokal bei dir einchecken oder stashen. Du kannst von dort aber auch jederzeit zum aktuellen Master oder dev springen - und auch wieder zurück.

Links unten kannst du den Branch anklicken (hier master)
Branch

und dann erscheinen oben alle Branches, die man so hat

Muss man dann halt wieder aktualisieren die Branches - das geht zB mit diesen beiden Pfeilen, die im Kreis neben master angeordnet sind.

Gitlens habe ich heute auch schon installiert und mit deiner Erklärung lässt sich da gut navigieren.

Wenn ich jetzt aber zu einem der Stände an der von dir markierten Stelle auschecken möchte, bekomme ich denselben Fehler der library über die Ausgabe…

Resolving lolin_d32_pro_sdmmc_pe dependencies...
Library Manager: Installing git+https://github.com/bblanchon/ArduinoJson.git @ 6.21.3
git version 2.43.2
Klone nach '/home/.platformio/.cache/tmp/pkg-installing-8a2d3n8c'...

PackageException: Package version 7.0.3+sha.f17fc05 doesn't satisfy requirements 6.21.3 based on PackageMetadata <type=library name=ArduinoJson version=7.0.3+sha.f17fc05 spec={'owner': None, 'id': None, 'name': 'ArduinoJson', 'requirements': '6.21.3', 'uri': 'git+https://github.com/bblanchon/ArduinoJson.git'}

Kannst du denn ohne Error an die Stelle wechseln? Also liegt das Problem vielleicht an meinem Rechner?

Ich vermute die ArduinoJosn Lib ist zu „jung“…

geh mal auf:

dann suche die eine ältere Version aus z.B. eine von vor einem Jahr…

dann findest du unter „Installtion“ → „Depend on it“ den passende Zeile
für deine .ini
→ bblanchon/ArduinoJson@6.21.3

Danach unbedingt „Full Clean“ machen, kannst zu Sicherheit auch einmal VsCode schließen und den Ordner .pio in dem Verzeichnis löschen…

Ich hab’s dank euch tatsächlich hinbekommen :upside_down_face:

Die Änderung in der platformio.ini hatte ich gestern schon vorgenommen. Dabei habe ich festgestellt, dass die ArduinoJson-lib mit der Nummer nicht konfiguriert wurde, mit dem Hash-Wert aber schon. Das ist mir gestern schon als Issue in guthub über den Weg gelaufen, richtig verarbeitet habe ich die Information da aber scheinbar nicht…
Hier im Forum habe ich dann in einem Fehler-Log den Hash-Wert für die Version 6.21.2 gefunden, der Stand nicht auf der vorher verlinkten Installationsseite.

Mit dem Wert in der platformio.ini hat dann alles geklappt und ich konnte die Branch der V2.1 konfigurieren und hochladen.

Also statt

https://github.com/bblanchon/ArduinoJson.git@6.21.3

Einfach

https://github.com/bblanchon/ArduinoJson.git#4b00783

einfügen.

Vielen Dank! :smiley:

ah okay war mir auch neu, das mit den Versionen nicht immer klappt, wieder was gelernt :slight_smile:

Das Problem in welches du gelaufen bist, hängt damit zusammen, dass in der platformio.ini im Git-Tag v2.1 eine falsche Syntax zur Referenzierung der Version für Git-Repositories verwendet wurde.

Laut der Dokumentation von Platformio ist die Angabe der Version via „@“-Zeichen bei Git Repositories nicht zulässig. Es ist stattdessen ein „#“-Zeichen zur Referenzierung des Tags oder des Commits zu verwenden.

Das „@“-Zeichen kann verwendet werden, wenn statt des Git-Repositories die spezifizierte Version von der PlatformIO Registry bezogen werden soll.

Wenn die Version aus der Registry verwendet werden soll, ist wie @JHB erwähnt hat, folgendes in die platformio.ini einzutragen:

bblanchon/ArduinoJson@^6.21.5

Das „^“-Zeichen sorgt dafür, dass die letzte verfügbare Release aus der 6.x.x installiert, mindestens aber die Version 6.21.5. Diese Version wurde zuletzt für 6.x.x released und ich konnte mit dieser Version auch den ESPuino Tag v2.1 bauen. Dies ist ebenfalls in der Dokumentation beschrieben.

3 „Gefällt mir“