mirror of
https://github.com/Akkudoktor-EOS/EOS.git
synced 2026-11-13 09:13:30 +01:00
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:
co-authored by
Claude Opus 5.5
parent
7554e2dc47
commit
527c26d424
+164
-1
@@ -8,7 +8,7 @@
|
||||
"name": "Apache 2.0",
|
||||
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
|
||||
},
|
||||
"version": "v0.3.0.dev2610291327175670"
|
||||
"version": "v0.3.0.dev2610292046449086"
|
||||
},
|
||||
"paths": {
|
||||
"/v1/measurement/battery-capacity/{battery_id}": {
|
||||
@@ -4126,6 +4126,9 @@
|
||||
},
|
||||
"adapter": {
|
||||
"$ref": "#/components/schemas/AdapterCommonSettings-Output"
|
||||
},
|
||||
"eosdash": {
|
||||
"$ref": "#/components/schemas/EOSdashCommonSettings"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
@@ -4989,6 +4992,155 @@
|
||||
"title": "DevicesCommonSettings",
|
||||
"description": "Configuration for all controllable devices in the simulation.\n\nEvery device collection is a ``dict[str, <Settings>]`` keyed by\n``device_id``. This makes config paths stable regardless of\ndeclaration order and lets each device settings class build its own\nconfig path from ``self.device_id`` without needing an external index."
|
||||
},
|
||||
"EOSdashCommonSettings": {
|
||||
"properties": {
|
||||
"plan": {
|
||||
"$ref": "#/components/schemas/EOSdashPlanSettings",
|
||||
"description": "Plan page settings."
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"title": "EOSdashCommonSettings",
|
||||
"description": "EOS-Dash Configuration."
|
||||
},
|
||||
"EOSdashPlanSettings": {
|
||||
"properties": {
|
||||
"visible": {
|
||||
"additionalProperties": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"type": "object",
|
||||
"title": "Visible",
|
||||
"description": "Visibility of solution chart columns and commands.",
|
||||
"examples": [
|
||||
{
|
||||
"grid_feedin_energy_wh": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"alias": {
|
||||
"additionalProperties": {
|
||||
"type": "string",
|
||||
"maxLength": 32,
|
||||
"minLength": 1
|
||||
},
|
||||
"type": "object",
|
||||
"title": "Alias",
|
||||
"description": "Display names of solution chart columns and commands.",
|
||||
"examples": [
|
||||
{
|
||||
"mode_SELF_CONSUMPTION": "Self consumption"
|
||||
}
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"additionalProperties": {
|
||||
"type": "string",
|
||||
"pattern": "^#[0-9A-Fa-f]{6}$"
|
||||
},
|
||||
"type": "object",
|
||||
"title": "Color",
|
||||
"description": "Colors of solution chart columns and commands (#RRGGBB).",
|
||||
"examples": [
|
||||
{
|
||||
"battery1_soc_factor": "#DAA520"
|
||||
}
|
||||
]
|
||||
},
|
||||
"style": {
|
||||
"additionalProperties": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"line",
|
||||
"bar"
|
||||
]
|
||||
},
|
||||
"type": "object",
|
||||
"title": "Style",
|
||||
"description": "Chart type of solution chart columns and commands.",
|
||||
"examples": [
|
||||
{
|
||||
"pvforecast_ac_energy_wh": "bar"
|
||||
}
|
||||
]
|
||||
},
|
||||
"width": {
|
||||
"additionalProperties": {
|
||||
"type": "integer",
|
||||
"maximum": 5.0,
|
||||
"minimum": 1.0
|
||||
},
|
||||
"type": "object",
|
||||
"title": "Width",
|
||||
"description": "Line width (1..5) of solution chart columns and commands.",
|
||||
"examples": [
|
||||
{
|
||||
"loadforecast_energy_wh": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
"line_dash": {
|
||||
"additionalProperties": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"solid",
|
||||
"dashed",
|
||||
"dotted"
|
||||
]
|
||||
},
|
||||
"type": "object",
|
||||
"title": "Line Dash",
|
||||
"description": "Line dash of solution chart columns and commands.",
|
||||
"examples": [
|
||||
{
|
||||
"elec_price_amt_kwh": "dotted"
|
||||
}
|
||||
]
|
||||
},
|
||||
"device_alias": {
|
||||
"additionalProperties": {
|
||||
"type": "string",
|
||||
"maxLength": 32,
|
||||
"minLength": 1
|
||||
},
|
||||
"type": "object",
|
||||
"title": "Device Alias",
|
||||
"description": "Display names of devices (device id -> name) on the plan page.",
|
||||
"examples": [
|
||||
{
|
||||
"battery1": "House battery"
|
||||
}
|
||||
]
|
||||
},
|
||||
"plan_table_open": {
|
||||
"type": "boolean",
|
||||
"title": "Plan Table Open",
|
||||
"description": "Energy management plan table open on page load. Defaults to False.",
|
||||
"default": false
|
||||
},
|
||||
"energy_kwh": {
|
||||
"type": "boolean",
|
||||
"title": "Energy Kwh",
|
||||
"description": "Energy in kWh instead of Wh in the solution chart. Defaults to True.",
|
||||
"default": true
|
||||
},
|
||||
"factor_percent": {
|
||||
"type": "boolean",
|
||||
"title": "Factor Percent",
|
||||
"description": "Factors in % instead of 0.0..1.0 in the solution chart. Defaults to True.",
|
||||
"default": true
|
||||
},
|
||||
"price_minor_unit": {
|
||||
"type": "boolean",
|
||||
"title": "Price Minor Unit",
|
||||
"description": "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.",
|
||||
"default": true
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"title": "EOSdashPlanSettings",
|
||||
"description": "EOSdash plan page settings.\n\nKeys are the columns of the optimization solution chart (e.g. ``battery1_soc_factor``)\nor EMS plan commands (operation modes) with the prefix ``mode_``\n(e.g. ``mode_SELF_CONSUMPTION``). A command applies to the plan timeline and to the\noperation mode factor columns of all devices. Only choices of the user are stored,\neverything else uses the defaults of EOSdash."
|
||||
},
|
||||
"ElecFeeCommonSettings-Input": {
|
||||
"properties": {
|
||||
"provider": {
|
||||
@@ -15719,6 +15871,17 @@
|
||||
}
|
||||
],
|
||||
"description": "Adapter Settings"
|
||||
},
|
||||
"eosdash": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/EOSdashCommonSettings"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"description": "EOS-Dash Settings"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
|
||||
Reference in New Issue
Block a user