Skip to content

Releases: ayushsharma82/ESP-DASH

v5.0.2

29 Aug 19:40
7b6e722
Compare
Choose a tag to compare

What's Changed

  • Fixed page getting re-routed to somewhere else when websocket connection was restored.
  • Fixed Statistics tab not showing in OSS version.
  • Removed MAC address statistic from default set of statistics as the value will always be "00:00:00:00:00:00" on dashboard intialization. User should use StatisticsProvider to fetch MAC address whenever requested by the dashboard. Example code in this issue: #266

Full Changelog: v5.0.1...v5.0.2

v5.0.1

03 Aug 06:57
Compare
Choose a tag to compare

What's Changed

  • ESP-DASH is now compatible with Cloudflare Tunnels. Your dashboard will now automatically use WSS (Secure WebSockets) if it detects the webpage is using https protocol.
  • Added tooltip to show any truncated names. This helps with UI structure not breaking while keeping compatibility with longer card names. (Fixes #263)

Documentation Updates

  • Updated input card callback syntax inside documentation. Previous syntax was wrong which resulted in compilation errors.
  • Documented setTarget function for link card. Now users can decide if the link card will open the desired URL within the same tab or a new one.

Full Changelog: v5.0.0...v5.0.1

v5.0 - A Giant Leap Forward

16 Jul 21:44
Compare
Choose a tag to compare

I'm excited to finally announce the release of ESP-DASH v5! The next major revision of the ESP-DASH library which just started as my hobby project in 2017 but turned into something beautiful because 'you' the OSS community liked it 😄 .

Without wasting much time - v5 finally brings the best of both worlds, a memory optimized C++ backend (thanks to @mathieucarbou) and a new refined UI according to Y25' style trends which makes it look professional. Here are the top features that are introduced with this release:

Memory Optimization

A revamped C++ backend was proposed for v5 by @mathieucarbou and the benefits are evident! According to tests, this resulted in a huge reduction of heap usage and the template class based approach provides ESP-DASH with what it really needed - a truly extensive backend that can be moulded in any way possible for complex widgets.

This approach allows every widget to have its own set of methods and how it parses the data, this in return opens up a whole new world of possibilities which can be now be integrated within ESP-DASH in the long run!

Important

For existing users coming from v4, there's already a quick migration guide available in the latest documentation here: https://docs.espdash.pro/v5.x.x/getting-started/migrating-from-v4-to-v5 . Make sure to go through everything as this release is not directly compatible with v5, there are a lot of breaking changes.


🌞 Light or 🌑 Dark?

light-dark-shift-espdash

It's 2025 and having a application without dark mode is a shame! That's why with this release, ESP-DASH v5 finally supports both light and dark modes! The colors are adjusted very precisely between both modes so that nothing appears out-of-place. Additionally, you or your user can easily switch between light and dark mode easily from the dashboard itself.


Interactive Widgets Now Support Numbers Natively

Interactive widgets like slider, input etc now support numbers natively with precision of your choice! Earlier we used to parse the value from string but this time almost all interactive widgets support native numerical types (int, float) thanks to the template class based approach in the new backend!


Improved Chart Animations 📊

chart-animations

Chart animations in v5 have been improved; this time the whole chart doesn't refresh whenever we update the values instead the existing chart values transition/animate to new position gracefully.


Separator Card

separator-card

A dashboard with lots of widgets can get messy! V5 introduces a whole new card called "Separator", it's only purpose is to divide the page into groups which are easier to understand. A feature so requested that separator card is made available in both ESP-DASH Lite (OSS) and Pro! 🎉


Indicator Button (Pro)

indicator-button-success

A whole new kind of push button which has a indicator in the centre of it that is individually controllable via your code! You can indicate multiple status types through this indicator like green, blue, red, or even no indication as well.


Action Button (Pro)

action-button
action-button-dialog

Want to double confirm a particular action with the user? Use action button card! This whole new card looks just like a push button card but it opens a confirmation dialog so that you can make sure it's not a accidental press by the user! This card is particularly helpful when it comes to offering critical actions on the dashboard like: rebooting, factory reset etc.


Range Slider (Pro)

range-slider

A slider when you want to select a certain range between two numbers. Just like a regular slider but with 2 thumbs to set a range.


File Upload (Pro)

file-upload

A very demanded feature by many! File upload card now allows your user to upload files to an external or internal URL. Simply supply it with an URL to where the file should be uploaded and the acceptable file types if you want to restrict the upload to specific file types. That's it! Rest the file upload card will handle for you.

If you want to receive the file within your microcontroller then it's advised to create a "file upload" route in your AsyncWebServer instance to which the file upload card will then upload the file to.


Doughnut Chart (Pro)

doughnut

A pie turned into a doughnut 😆 . There's really not much to say about it, it's the same thing as a pie chart but with an giant hole in centre.


Changelog

Note

Like I always say, examples are your best friend! Glance over all the examples provided with the library so that you can quickly grasp the changes. Reading changelog always looks daunting for everyone 😄 .

  • Revamped C++ backend by @mathieucarbou
  • V5 introduces dashboard.refresh(<card>) method. This refresh method is now used in callbacks for refreshing 1 widget quickly for which you have just received the value inside callback. Earlier, we used sendUpdates but that method would send updates for all the widgets making it slow. sendUpdates is still used for regularly sending batch updates to dashboard.
  • Widgets now use class based approach rather than macros like TEMPERATURE_CARD. Example: dash::TemperatureCard, dash::HumidityCard etc.
  • Every widget has it's own class and methods. Everything is documented inside each widget's documentation page.
  • AsyncWebServer instance is now passed as reference rather than a pointer inside constructor of ESP-DASH. Example: ESPDash dashboard(server);
  • ESP-DASH dashboard instance is now passed as reference rather than a pointer to widgets. Example: dash::TemperatureCard temp1(dashboard, "Temperature");
  • Status card is now called "Feedback" card in v5. The functionality remains the same but the name better describes its purpose.
  • Button card is now called "Toggle Button" card in v5. Version 5 introduces lots of more buttons so it was necessary to distinguish it.
  • Statistics now have a StatisticProvider class through which you can provide real-time values. The StatisticsProvider will execute your callback function to get the latest value and display it on the dashboard!
  • All new UI design language according to Y25' trends. It now feels more professional and just like a proper full blown dashboard.
  • UI is now based on latest Svelte 5 framework which in return makes it more robust with improved performance.
  • Dashboard now has a collapsable sidebar which provides with more screen space when required.
  • ESP-DASH v5 now comes with light and dark modes! There's a toggle switch provided inside the dashboard as well for user to set their preference.
  • Added all-new Separator card (even in the lite/oss version) which allows you to segment the dashboard into multiple intuitive regions!
  • Chart animations are now fixed with v5! Now instead of refreshing whole chart, values within chart gracefully transition/animate to the new position.
  • Deprecated ESP8266 support. This platform is now unmaintainable as nobody is supporting its core development.

v4.0.9

21 Feb 20:05
ab0bb19
Compare
Choose a tag to compare

Important

We have officially switched our dependency to ESP32Async/ESPAsyncWebServer which is now the only official & maintained version. It's advised to delete old forks from your system and install the latest ESP32Async/ESPAsyncWebServer and it's dependencies from here.

This was a joint decision among multiple core collaborators to form ESP32Async organization and keep a single active version. All the changes and improvements from mathieu's fork of ESPAsyncWebServer were merged in ESP32Async/ESPAsyncWebServer.

More information about required dependencies can also be found in our documentation.

What's Changed

Full Changelog: v4.0.8...v4.0.9

v4.0.8

21 Oct 22:46
3475adc
Compare
Choose a tag to compare

Note: Make sure to update your ESP-DASH to latest release to mitigate any compilation errors. This release fixes a critical compilation bug which was happening due to a return statement in a void function.

What's Changed

Full Changelog: v4.0.7...v4.0.8

v4.0.7

16 Aug 12:27
Compare
Choose a tag to compare
  • Added written offer for source code due to compliance issues.

Full Changelog: v4.0.6...v4.0.7

v4.0.6

03 Aug 05:20
092f59e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v4.0.5...v4.0.6

June 2024 Maintenance Release

28 Jun 21:56
6f07395
Compare
Choose a tag to compare

Important

ESPAsyncWebserver dependency has to be updated on your end to be compatible with this release. Ref: https://docs.espdash.pro/installation/

What's Changed

Full Changelog: v4.0.4...v4.0.5

February 2024 Maintenance Release

05 Feb 16:03
Compare
Choose a tag to compare

What's Changed

Brief Note by @mathieucarbou

  • Changed card and stat names to const char* to improve memory usage. This makes them immutable and require to use constants but avoids a memory copy on heap of all the string values

  • Help mitigate concurrency issue with isAsyncAccessInProgress() to avoid updating cards while the layout is being generated from the async_http task

  • Support both ESPAsyncWebServer Ws buffer API and yubox-node-org/ESPAsyncWebServer buffer API (which as a better api for sending websocket buffers and dealing with concurrency)

  • Supports WebSocket batching to avoid crash with the initial layout sending. Batch sizes can be controlled with DASH_JSON_SIZE and DASH_JSON_DOCUMENT_ALLOCATION (Arduino Json 6)

  • refreshLayout() refactoring in order to avoid too many layout refresh requests when updating components dynamically: let the caller trigger a layout refresh once.

  • Removed refreshStatistics() because it it not refreshing the stats only but all the updated cards also

  • Removed update calls when adding / removing cards and stats in order to avoid trigger a sequence of full layout updates: this is u to the user to call refreshLayout() when he has finished

  • DASH_MAX_WS_CLIENTS allows to configure the max WS clients: the default value being set by the ESPAsyncWebServer lib. I recommend setting this value to 1 or 2.

Full Changelog: v4.0.3...v4.0.4

December Maintenance Release

03 Dec 18:51
95cde9c
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v4.0.2...v4.0.3