Did a similar proof of concept a while ago with Hub-a-Dashery using Chart JS and Gridstack JS. So yeah, the presentation part is not a problem.
Like @chowell said, the problem is with storing data over time. We need some sort of RRD database, either provided by Hubitat or built by someone smarter than me ![]()