Files
EOS/src/akkudoktoreos/core/emsettings.py
T

48 lines
1.2 KiB
Python
Raw Normal View History

2025-02-12 21:35:51 +01:00
"""Settings for energy management.
Kept in an extra module to avoid cyclic dependencies on package import.
"""
2025-10-28 02:50:31 +01:00
from enum import Enum
2025-02-12 21:35:51 +01:00
from typing import Optional
from pydantic import Field
from akkudoktoreos.config.configabc import SettingsBaseModel
2025-10-28 02:50:31 +01:00
class EnergyManagementMode(str, Enum):
"""Energy management mode."""
PREDICTION = "PREDICTION"
OPTIMIZATION = "OPTIMIZATION"
2025-02-12 21:35:51 +01:00
class EnergyManagementCommonSettings(SettingsBaseModel):
"""Energy Management Configuration."""
startup_delay: float = Field(
default=5,
ge=1,
json_schema_extra={
"description": "Startup delay in seconds for EOS energy management runs."
},
2025-02-12 21:35:51 +01:00
)
interval: float = Field(
default=300.0,
ge=60.0,
json_schema_extra={
"description": "Intervall between EOS energy management runs [seconds].",
"examples": ["300"],
},
2025-02-12 21:35:51 +01:00
)
2025-10-28 02:50:31 +01:00
mode: Optional[EnergyManagementMode] = Field(
default=None,
json_schema_extra={
"description": "Energy management mode [OPTIMIZATION | PREDICTION].",
"examples": ["OPTIMIZATION", "PREDICTION"],
},
2025-10-28 02:50:31 +01:00
)