Blazing fast library to create a functional dashboard on ESP8266 or ESP32
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: https://github.com/ayushsharma82/ESP-DASH/compare/v4.0.3...v4.0.4
Full Changelog: https://github.com/ayushsharma82/ESP-DASH/compare/v4.0.2...v4.0.3
portal
as submodule from repository. This created issues with PlatformIO as this submodule was private ( internal use only ).Finally, after lots of coffee and months of unexpected delays, ESP-DASH V4 is ready for public rollout 🎊! Version 4 primarily focuses on the stability of the codebase and optimizing the webpage, while also integrating lots of cool suggestions provided by the community. I'm really excited for you guys to try & use it in your own projects now!
A quick rundown of things that have been added with V4:
Rewritten webpage with SvelteJS framework: I already use Svelte in many of my other libraries and now it comes to ESP-DASH as well, It is one framework that I trust the best for creating SPAs for embedded applications. The final bundle size is something that some other frameworks can never achieve!
Here's the comparison:
Old V3 with Vuejs | New V4 with Svelte |
---|---|
151Kb | 91Kb (-40%) |
Improved compression script, now webpage header files are divided between header and source. This fixes linker issues when using ESP-DASH within another class/library.
Refreshed webpage UI according to Y22 standards. It now features a sidebar that can be collapsed to provide more screen space.
Rewritten charts functionality to prevent memory hogging of the microcontroller. Discussed more in Migration Guide
With V4, users can now add their own key-value pairs to the statistics page. When there are no statistics, the webpage smartly hides the "statistics" tab on it's own.
ESP-DASH Pro has a specially made responsive size engine that lets you change the size of your cards and charts without even touching the webpage's source code! Simply use setSize
function. More on this here
Now you can add multiple pages/tabs to the dashboard and choose which cards and charts will appear in that Tab. It adds another dimension to your dashboard! Know more
You can now add your own custom dashboard title. Know more
I know people wanted to add their own project/company logo to personalize their dashboards, therefore with V4 I've separated the logos from the webpage and now those can be set within the C++ code! Again, without touching the HTML, CSS or JS which is just awesome. Know more
I hope everybody likes this release! If you are new to ESP-DASH, I'll highly recommend trying out the open-source version and if you want more features you can look into purchasing the pro version which is catered towards people who want more. Learn More: https://espdash.pro
A bit of size reduction of the library but other than that nothing important has been changed with the release.
Apart from that: ESP-DASH is now split into Lite and Pro versions. The open-source version will now remain like what it was before this release and will continue to have timely bug fixes and slight improvements, while the Pro will now feature exclusive cards, new charts and extended functionality ( example: changing layout/order of cards ).
This helps me maintain the project for a better future and to keep it alive.
Pro version is available at https://espdash.pro
Optimized grid layout of cards to be consistent
Minor fix for cards layout where the humidity
and status
cards had inconsistent width in tablet viewport.
🐞 Fixed an issue: where the minimum and maximum values were not applied to the progress bar.
Related to #107.
🐞 Fixed an issue: where storing strings would cause the card to store references instead