Breaking update for webthings and Arduino code

Just a quick heads up.

Version 7.x of ArduinoJson (by Benoit Blanhon) implements changes which may create issues when compiling. Other breaking updates may include the arduino-esp32 boards libraries (2.0.13) and the ESP32 WebSocket libraries, I’m guessing here.

The following is the first obvious error that I have come across. this was tested with the simple LED example and the Seeed XIAO ESP32-S3, which previously compiled with no errors.

In file included from

    ..\WebThings-Arduino-ESP32-S3_LED\WebThings-Arduino-ESP32-S3_LED.ino:13:
    ..\Arduino\libraries\webthing-arduino/Thing.h: In member function 'void ThingDevice::queueEventObject(ThingEventObject*)':
    ..\Arduino\libraries\webthing-arduino/Thing.h:692:51:
    error: cannot convert 'const AsyncWebSocketClient' to 'AsyncWebSocketClient*' in initialization
              ((AsyncWebSocket *)this->ws)->getClients()) {

I’m currently going through the code to work out what else has broken. This may not be the only thing broken.

Debugging time.

A quick update on various library updates and changes. The following combination of libraries works and compiles correctly. Still testing.

Using library webthing-arduino at version 0.12.0 
Using library ESP Async WebServer at version 1.2.3 
Using library FS at version 2.0.0 
Using library WiFi at version 2.0.0 
Using library AsyncTCP at version 1.1.4
Using library ArduinoJson at version 7.0.3
Using library ESPmDNS at version 2.0.0 

Updating ESP Async Webserver next, then ArduinoJson.

Thank you for the heads up.

I believe @rzr is the current module owner of the webthing-arduino library.

PSA… Status of updated libraries and WebThing-Arduino.

After a hiatus of a few months due to illness and paid work commitments, I’ve returned to my last project, a WebThings-Arduino based module for monitoring small distributed 12V UPSs.

Now that the hardware is finished, using a XIAO-ESP32S3 module, the software requires some minor bugs ironed out…

As part of the design, I have added an OTA capability (where most of the bugs reside, and using ElegantOTA due to its simplicity).

Whilst working on the code, several libraries have been updated. The following list is what I have current installed in the Arduino IDE 2.3.4, and found to work. The code compiles with no errors, aside from my coding blunders…

Multiple libraries were found for “ESPmDNS.h”
Used: Arduino15\packages\esp32\hardware\esp32\3.0.7\libraries\ESPmDNS

Multiple libraries were found for “WiFi.h”
Used: Arduino15\packages\esp32\hardware\esp32\3.0.7\libraries\WiFi

Multiple libraries were found for “AsyncTCP.h”
Used: Arduino\libraries\AsyncTCP

Using library webthing-arduino at version 0.12.0
Using library ESPAsyncWebServer at version 3.1.0 https://github.com/lacamera/ESPAsyncWebServer, with fix suggested at
https://github.com/me-no-dev/ESPAsyncWebServer/issues/1352

Using library FS at version 3.0.7
Using library WiFi at version 3.0.7
Using library Networking at version 3.0.7
Using library AsyncTCP at version 1.1.4 https://github.com/dvarrel/AsyncTCP
Using library ArduinoJson at version 7.2.1
Using library ESPmDNS at version 3.0.7
Using library ElegantOTA at version 3.1.6 https://github.com/ayushsharma82/ElegantOTA
Using library Update at version 3.0.7 in
Using library BlockNot at version 2.3.0 https://github.com/EasyG0ing1/BlockNot

And last but not least, the latest espressif ESP32 board libraries, V3.0.7…

I hope this helps others.

Cheers.

1 Like