Add Markdown linter (pymarkdown) to pre-commit. Adapt current markdown files to fulfill linter rules. Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
5.7 KiB
% SPDX-License-Identifier: Apache-2.0
Optimization
Introduction
The POST /optimize
API endpoint optimizes your energy management system based on various inputs
including electricity prices, battery storage capacity, PV forecast, and temperature data.
Input Payload
Sample Request
{
"ems": {
"preis_euro_pro_wh_akku": 0.0007,
"einspeiseverguetung_euro_pro_wh": 0.00007,
"gesamtlast": [500, 500, ..., 500, 500],
"pv_prognose_wh": [300, 0, 0, ..., 2160, 1840],
"strompreis_euro_pro_wh": [0.0003784, 0.0003868, ..., 0.00034102, 0.00033709]
},
"pv_akku": {
"capacity_wh": 12000,
"charging_efficiency": 0.92,
"discharging_efficiency": 0.92,
"max_charge_power_w": 5700,
"initial_soc_percentage": 66,
"min_soc_percentage": 5,
"max_soc_percentage": 100
},
"inverter": {
"max_power_wh": 15500
},
"eauto": {
"capacity_wh": 64000,
"charging_efficiency": 0.88,
"discharging_efficiency": 0.88,
"max_charge_power_w": 11040,
"initial_soc_percentage": 98,
"min_soc_percentage": 60,
"max_soc_percentage": 100
},
"temperature_forecast": [18.3, 18, ..., 20.16, 19.84],
"start_solution": null
}
Input Parameters
Energy Management System (EMS)
Battery Cost (preis_euro_pro_wh_akku
)
- Unit: €/Wh
- Purpose: Represents the residual value of energy stored in the battery
- Impact: Lower values encourage battery depletion, higher values preserve charge at the end of the simulation.
Feed-in Tariff (einspeiseverguetung_euro_pro_wh
)
- Unit: €/Wh
- Purpose: Compensation received for feeding excess energy back to the grid
Total Load Forecast (gesamtlast
)
- Unit: W
- Time Range: 48 hours (00:00 today to 23:00 tomorrow)
- Format: Array of hourly values
- Note: Exclude optimizable loads (EV charging, battery charging, etc.)
Data Sources
- Standard Load Profile:
GET /v1/prediction/list?key=load_mean
for a standard load profile based on your yearly consumption. - Adjusted Load Profile:
GET /v1/prediction/list?key=load_mean_adjusted
for a combination of a standard load profile based on your yearly consumption incl. data from last 48h.
PV Generation Forecast (pv_prognose_wh
)
- Unit: W
- Time Range: 48 hours (00:00 today to 23:00 tomorrow)
- Format: Array of hourly values
- Data Source:
GET /v1/prediction/series?key=pvforecast_ac_power
Electricity Price Forecast (strompreis_euro_pro_wh
)
- Unit: €/Wh
- Time Range: 48 hours (00:00 today to 23:00 tomorrow)
- Format: Array of hourly values
- Data Source:
GET /v1/prediction/list?key=elecprice_marketprice_wh
Verify prices against your local tariffs.
Battery Storage System
Configuration
capacity_wh
: Total battery capacity in Whcharging_efficiency
: Charging efficiency (0-1)discharging_efficiency
: Discharging efficiency (0-1)max_charge_power_w
: Maximum charging power in W
State of Charge (SoC)
initial_soc_percentage
: Current battery level (%)min_soc_percentage
: Minimum allowed SoC (%)max_soc_percentage
: Maximum allowed SoC (%)
Inverter
max_power_wh
: Maximum inverter power in Wh
Electric Vehicle (EV)
capacity_wh
: Battery capacity in Whcharging_efficiency
: Charging efficiency (0-1)discharging_efficiency
: Discharging efficiency (0-1)max_charge_power_w
: Maximum charging power in Winitial_soc_percentage
: Current charge level (%)min_soc_percentage
: Minimum allowed SoC (%)max_soc_percentage
: Maximum allowed SoC (%)
Temperature Forecast
- Unit: °C
- Time Range: 48 hours (00:00 today to 23:00 tomorrow)
- Format: Array of hourly values
- Data Source:
GET /v1/prediction/list?key=weather_temp_air
Output Format
Sample Response
{
"ac_charge": [0.625, 0, ..., 0.75, 0],
"dc_charge": [1, 1, ..., 1, 1],
"discharge_allowed": [0, 0, 1, ..., 0, 0],
"eautocharge_hours_float": [0.625, 0, ..., 0.75, 0],
"result": {
"Last_Wh_pro_Stunde": [...],
"EAuto_SoC_pro_Stunde": [...],
"Einnahmen_Euro_pro_Stunde": [...],
"Gesamt_Verluste": 1514.96,
"Gesamtbilanz_Euro": 2.51,
"Gesamteinnahmen_Euro": 2.88,
"Gesamtkosten_Euro": 5.39,
"akku_soc_pro_stunde": [...]
}
}
Output Parameters
Battery Control
ac_charge
: Grid charging schedule (0-1)dc_charge
: DC charging schedule (0-1)discharge_allowed
: Discharge permission (0 or 1)
0 (no charge) 1 (charge with full load)
ac_charge
multiplied by the maximum charge power of the battery results in the planned charging power.
EV Charging
eautocharge_hours_float
: EV charging schedule (0-1)
Results
The result
object contains detailed information about the optimization outcome.
The length of the array is between 25 and 48 and starts at the current hour and ends at 23:00 tomorrow.
-
Last_Wh_pro_Stunde
: Array of hourly load values in Wh- Shows the total energy consumption per hour
- Includes household load, battery charging/discharging, and EV charging
-
EAuto_SoC_pro_Stunde
: Array of hourly EV state of charge values (%)- Shows the projected EV battery level throughout the optimization period
-
Einnahmen_Euro_pro_Stunde
: Array of hourly revenue values in Euro -
Gesamt_Verluste
: Total energy losses in Wh -
Gesamtbilanz_Euro
: Overall financial balance in Euro -
Gesamteinnahmen_Euro
: Total revenue in Euro -
Gesamtkosten_Euro
: Total costs in Euro -
akku_soc_pro_stunde
: Array of hourly battery state of charge values (%)
Timeframe overview
:alt: Timeframe Overview
Timeframe Overview