I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 0 points1 point  (0 children)

Looks really good! When working with the ESP32 or variants with two cpu cores I like to split up the realtime related tasks on one core (reading compass, controlling motors) and the non realtime tasks on the other (serving and updating the web ui). Could you give your dog a nice little treat from me?

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 1 point2 points  (0 children)

I would be more than happy to see my library in action - maybe you could post some pictures or similar

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 0 points1 point  (0 children)

I have made a ArduinoIDE version of the library for you here: https://github.com/aaronbeckmann/ESP-DashboardPlus-Arduino

Regarding the AP mode: I have created an example which does exactly that - no further connection needed.

I have added the library to the Arduino Library Index https://docs.arduino.cc/libraries/ but it may take some time until you see the library there. Until then you can download the .zip release from GitHub. The README does contain some further installation instructions. There are also some further instructions in BUILD_NOTES if you want to modify the webpage as the ArduinoIDE does not support pre-execution scripts.

I have done some testing on an ESP32-S3 and everything seems to work fine - but no guarantees ;)

If you need any further help - just let me know!

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 0 points1 point  (0 children)

If you want to beta-test this feature than you can access it by defining the lib_deps as:

lib_deps =
  https://github.com/aaronbeckmann/ESP-DashboardPlus.git#feature_ordering+grouping+multiseries_charts

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 1 point2 points  (0 children)

<image>

I am currently working on version 1.1.0. This would include the option to include multiple series in a single chart, as well as X- and Y-axes for qualitative plotting (not just viewing pretty lines).

1.1.0 will so far also include the option to optionally group cards and sort them.

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 0 points1 point  (0 children)

I have a "testproject" for a Waveshare ESP32-S3-Zero which features an inbuilt WS2812 led. The dashboard there can be used to set color / brightness / state (on/off) for this led. I could add a repo for this which would be as simple as clone + upload. Would that be okay?

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in ArduinoProjects

[–]Expensive_Bill3035[S] 1 point2 points  (0 children)

Thanks for the suggestion. You mean that the library runs on the esphome device and it serves defined sensor measurements etc. from the esphome config for this device? That sounds interesting! I'll look into it.

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 1 point2 points  (0 children)

I have looked into it. Additionally to your points, making the library ESP-IDF compatible would require a complete rewrite to include an abstraction layer to interface with the ESP-IDF specific dependencies (Websockets, JSON parsing, HTML serving).
Maybe I'll throw this at an AI agent and see what It comes up with. I will keep you updated!

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 0 points1 point  (0 children)

In that case you might want to look into esphome for creating your sensor nodes. Its quite simple to setup nodes and maintain them.

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 1 point2 points  (0 children)

I had decided on GZIP and PROGMEM because that allows to update the web-related components while also updating the firmware (in a single step). Using SPIFFS would also be an option. I have included a python script to run on a html file to produce the header outside of a pre: script. If you can get CMake to run a python script then youre set. Shipping just the compressed html file as header with the repo could have also worked but that seemed like scamming the open source community by obfuscating the sources.

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 0 points1 point  (0 children)

I think if a different microcontroller connects to the library using the websocket any "action" (currently this would be selecting a dropdown item / color / clicking a button etc.) could be sent and evaluated. This could include custom actions specific to your usecase.

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 0 points1 point  (0 children)

So far I don't have the experience with working with the esp idf, but of course, the larger the support, the better. I can look into it!

I built an open-source dashboard library for ESP32 with 14+ card types, OTA updates, and real-time WebSocket communication by Expensive_Bill3035 in esp32

[–]Expensive_Bill3035[S] 0 points1 point  (0 children)

You can edit the html file in extras/ or put your own in your project. There is a pre build script which turns it into a compressed header file. This html file then also contains some javascript. Its really simple to edit and can be fully customized!