battery_optimizer.uk.ev.result#

Classes

EVEnergyMarketContinuousPositions(*, ...[, ...])

EVSoE(*, time_from, time_to, soe_target, ...)

EVUKResult(*, asset_id, request_id, ...[, ...])

class battery_optimizer.uk.ev.result.EVEnergyMarketContinuousPositions(*, time_from, time_to, volume_sold_MW=None, volume_bought_MW=None, energy_sell_price_per_MWh=None, energy_buy_price_per_MWh=None)#

Bases: EnergyMarketContinuousPositions

Parameters:
  • time_from (datetime)

  • time_to (datetime)

  • volume_sold_MW (float | None)

  • volume_bought_MW (float | None)

  • energy_sell_price_per_MWh (float | None)

  • energy_buy_price_per_MWh (float | None)

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'ignore', 'frozen': False, 'json_encoders': {<class 'datetime.datetime'>: <function BaseModel.<lambda>>, <class 'pandas._libs.tslibs.timedeltas.Timedelta'>: <function BaseModel.<lambda>>, <class 'pandas._libs.tslibs.timestamps.Timestamp'>: <function BaseModel.<lambda>>, <class 'pandas.core.frame.DataFrame'>: <function BaseModel.<lambda>>, <class 'pandas.core.series.Series'>: <function BaseModel.<lambda>>}, 'validate_default': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod round_bought_MW_to_nearest_kW(volume_bought_MW)#
classmethod round_sold_MW_to_nearest_kW(volume_sold_MW)#
class battery_optimizer.uk.ev.result.EVSoE(*, time_from, time_to, soe_target, soe_target_kwh, max_charge_kW, max_discharge_kW, charge_power_kW, discharge_power_kW)#

Bases: SoE

Parameters:
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'ignore', 'frozen': False, 'json_encoders': {<class 'datetime.datetime'>: <function BaseModel.<lambda>>, <class 'pandas._libs.tslibs.timedeltas.Timedelta'>: <function BaseModel.<lambda>>, <class 'pandas._libs.tslibs.timestamps.Timestamp'>: <function BaseModel.<lambda>>, <class 'pandas.core.frame.DataFrame'>: <function BaseModel.<lambda>>, <class 'pandas.core.series.Series'>: <function BaseModel.<lambda>>}, 'validate_default': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

classmethod validate_charge_power_kW(charge_power_kW, values)#
class battery_optimizer.uk.ev.result.EVUKResult(*, asset_id, request_id, battery_optimizer_commit_sha, user_id, request_creation_time, result_creation_time, request, market_positions, markets_optimized, markets_already_auctioned, soe, discharge_over_daily_cycle_limit_kWh=None, discharge_over_daily_cycle_limit_count=None, intraday_buckets=None, aggregated_intraday_buckets=None, trace=None, pulp_solver_variables_values_delta_false=None, pulp_solver_variables_values_delta_true=None, optimizer_object=None, commercial_results_per_settlement_period=None, commercial_results=None, dynamic_services_energy_throughput_buffer=None)#

Bases: UKResult

Parameters:
classmethod get_intraday_position_model()#

Hook method to return the class used for intraday market positions.

Return type:

type[EnergyMarketContinuousPositions]

classmethod get_soe_model()#

Hook method to return the class used for SoE records.

Return type:

type[EVSoE]

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'ignore', 'frozen': False, 'json_encoders': {<class 'datetime.datetime'>: <function BaseModel.<lambda>>, <class 'pandas._libs.tslibs.timedeltas.Timedelta'>: <function BaseModel.<lambda>>, <class 'pandas._libs.tslibs.timestamps.Timestamp'>: <function BaseModel.<lambda>>, <class 'pandas.core.frame.DataFrame'>: <function BaseModel.<lambda>>, <class 'pandas.core.series.Series'>: <function BaseModel.<lambda>>}, 'validate_default': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

soe: list[EVSoE] | DataFrame#