mirror of
https://github.com/Akkudoktor-EOS/EOS.git
synced 2026-11-09 23:33:20 +01:00
* 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>
4.7 KiB
4.7 KiB
EOS-Dash Configuration
:::{table} eosdash :widths: 10 20 10 5 5 30 :align: left
| Name | Environment Variable | Type | Read-Only | Default | Description |
|---|---|---|---|---|---|
| plan | EOS_EOSDASH__PLAN |
EOSdashPlanSettings |
rw |
required |
Plan page settings. |
| ::: |
Example Input/Output
{
"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
}
}
}
EOSdash plan page settings
Keys are the columns of the optimization solution chart (e.g. battery1_soc_factor)
or EMS plan commands (operation modes) with the prefix mode_
(e.g. mode_SELF_CONSUMPTION). A command applies to the plan timeline and to the
operation mode factor columns of all devices. Only choices of the user are stored,
everything else uses the defaults of EOSdash.
:::{table} eosdash::plan :widths: 10 10 5 5 30 :align: left
| Name | Type | Read-Only | Default | Description |
|---|---|---|---|---|
| alias | dict[str, Annotated[str, StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=1, max_length=32, pattern=None, ascii_only=None)]] |
rw |
required |
Display names of solution chart columns and commands. |
| color | dict[str, Annotated[str, StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern='^#[0-9A-Fa-f]{6}$', ascii_only=None)]] |
rw |
required |
Colors of solution chart columns and commands (#RRGGBB). |
| device_alias | dict[str, Annotated[str, StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=1, max_length=32, pattern=None, ascii_only=None)]] |
rw |
required |
Display names of devices (device id -> name) on the plan page. |
| energy_kwh | bool |
rw |
True |
Energy in kWh instead of Wh in the solution chart. Defaults to True. |
| factor_percent | bool |
rw |
True |
Factors in % instead of 0.0..1.0 in the solution chart. Defaults to True. |
| line_dash | dict[str, Literal['solid', 'dashed', 'dotted']] |
rw |
required |
Line dash of solution chart columns and commands. |
| plan_table_open | bool |
rw |
False |
Energy management plan table open on page load. Defaults to False. |
| price_minor_unit | bool |
rw |
True |
Electricity price in the minor unit of the currency per kWh (e.g. ct/kWh for EUR, Rp./kWh for CHF) instead of currency/kWh in the solution chart. Has no effect for currencies without a minor unit. Defaults to True. |
| style | dict[str, Literal['line', 'bar']] |
rw |
required |
Chart type of solution chart columns and commands. |
| visible | dict[str, bool] |
rw |
required |
Visibility of solution chart columns and commands. |
| width | dict[str, Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=1), Le(le=5)])]] |
rw |
required |
Line width (1..5) of solution chart columns and commands. |
| ::: |
Example Input/Output
{
"eosdash": {
"plan": {
"visible": {
"grid_feedin_energy_wh": false
},
"alias": {
"mode_SELF_CONSUMPTION": "Self consumption"
},
"color": {
"battery1_soc_factor": "#DAA520"
},
"style": {
"pvforecast_ac_energy_wh": "bar"
},
"width": {
"loadforecast_energy_wh": 3
},
"line_dash": {
"elec_price_amt_kwh": "dotted"
},
"device_alias": {
"battery1": "House battery"
},
"plan_table_open": false,
"energy_kwh": true,
"factor_percent": true,
"price_minor_unit": true
}
}
}