feat(eosdash): plan page with EMS plan timeline and persisted settings (#1460)

* feat(eosdash): plan page with EMS plan timeline and persisted settings

Fixes:
- SolutionCard no longer appends to the module-level solution_excludes
  list on every render (the list grew without limit).
- All EOSdash pages: keep the scroll position after htmx actions instead
  of jumping to the bottom; Bokeh() reserves the plot height.
- Default visible PV column pvforecast_power_w -> pvforecast_ac_energy_wh
  (the old column no longer exists).
- All EOSdash pages: remove w-screen from components.Page (horizontal
  scrollbar).
- Solution chart: energy is the main axis; the always empty power axis is
  only shown with power columns. Typo "Electricty" fixed.

Features:
- EMS plan timeline per device, plan table as collapsible section.
- Solution chart rework: KPI row, legend, totals view, value axes for the
  displayed columns only, units menu, currency from the timezone, aligned
  time axes with the timeline, themed tooltips, system font.
- Per-column and per-command settings: visibility, alias, color, style;
  device aliases.
- New config section eosdash.plan (server/dash/dashsettings.py) stores the
  plan page settings in the EOS configuration; docs regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: SchaafAlexander <86607129+SchaafAlexander@users.noreply.github.com>
This commit is contained in:
SchaafAlexander
2026-10-30 08:03:19 +01:00
committed by GitHub
co-authored by Claude Opus 5.5
parent 7554e2dc47
commit 527c26d424
13 changed files with 2266 additions and 315 deletions
+15
View File
@@ -183,6 +183,21 @@
"mode": "OPTIMIZATION",
"notify_url": null
},
"eosdash": {
"plan": {
"visible": {},
"alias": {},
"color": {},
"style": {},
"width": {},
"line_dash": {},
"device_alias": {},
"plan_table_open": false,
"energy_kwh": true,
"factor_percent": true,
"price_minor_unit": true
}
},
"feedintariff": {
"direct_marketing_enabled": false,
"provider": "FeedInTariffFixed",