mirror of
https://github.com/Akkudoktor-EOS/EOS.git
synced 2026-08-31 12:46:38 +00:00
30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
"""Provide direct-marketing feed-in prices from SMARD day-ahead data."""
|
|||
|
|
|
||
|
|
from typing import Optional
|
||
|
|
|
||
|
|
from akkudoktoreos.config.configabc import SettingsBaseModel
|
||
|
|
from akkudoktoreos.prediction.elecpriceenergycharts import EnergyChartsElecPrice
|
||
|
|
from akkudoktoreos.prediction.elecpricesmard import ElecPriceSMARD
|
||
|
|
from akkudoktoreos.prediction.feedintariffenergycharts import FeedInTariffEnergyCharts
|
||
|
|
|
||
|
|
|
||
|
|
class FeedInTariffSMARDCommonSettings(SettingsBaseModel):
|
||
|
|
"""Settings for SMARD feed-in prices shared with ``elecprice.smard``."""
|
||
|
|
|
||
|
|
|
||
|
|
class FeedInTariffSMARD(FeedInTariffEnergyCharts):
|
||
|
|
"""Use raw SMARD day-ahead market prices for direct-marketing feed-in revenue."""
|
||
|
|
|
||
|
|
@classmethod
|
||
|
|
def provider_id(cls) -> str:
|
||
|
|
"""Return the unique identifier for the direct SMARD feed-in provider."""
|
||
|
|
return "FeedInTariffSMARD"
|
||
|
|
|
||
|
|
def _request_forecast(
|
||
|
|
self, start_date: Optional[str] = None, force_update: Optional[bool] = False
|
||
|
|
) -> EnergyChartsElecPrice:
|
||
|
|
"""Reuse the cached direct SMARD request without import-price components."""
|
||
|
|
return ElecPriceSMARD()._request_forecast( # type: ignore[call-arg]
|
||
|
|
start_date=start_date, force_update=force_update
|
||
|
|
)
|