EOS/openapi.json
Dominique Lasserre 26762e5e93 Review comments
2025-01-24 21:14:37 +01:00

4026 lines
168 KiB
JSON

{
"components": {
"schemas": {
"BaseBatteryParameters": {
"additionalProperties": false,
"description": "Battery Device Simulation Configuration.",
"properties": {
"capacity_wh": {
"description": "An integer representing the capacity of the battery in watt-hours.",
"examples": [
8000
],
"exclusiveMinimum": 0.0,
"title": "Capacity Wh",
"type": "integer"
},
"charging_efficiency": {
"default": 0.88,
"description": "A float representing the charging efficiency of the battery.",
"exclusiveMinimum": 0.0,
"maximum": 1.0,
"title": "Charging Efficiency",
"type": "number"
},
"device_id": {
"description": "ID of battery",
"examples": [
"battery1"
],
"title": "Device Id",
"type": "string"
},
"discharging_efficiency": {
"default": 0.88,
"description": "A float representing the discharge efficiency of the battery.",
"exclusiveMinimum": 0.0,
"maximum": 1.0,
"title": "Discharging Efficiency",
"type": "number"
},
"hours": {
"anyOf": [
{
"exclusiveMinimum": 0.0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Number of prediction hours. Defaults to global config prediction hours.",
"examples": [
null
],
"title": "Hours"
},
"initial_soc_percentage": {
"default": 0,
"description": "An integer representing the state of charge of the battery at the **start** of the current hour (not the current state).",
"examples": [
42
],
"maximum": 100.0,
"minimum": 0.0,
"title": "Initial Soc Percentage",
"type": "integer"
},
"max_charge_power_w": {
"anyOf": [
{
"exclusiveMinimum": 0.0,
"type": "number"
},
{
"type": "null"
}
],
"default": 5000,
"description": "Maximum charging power in watts.",
"title": "Max Charge Power W"
},
"max_soc_percentage": {
"default": 100,
"description": "An integer representing the maximum state of charge (SOC) of the battery in percentage.",
"maximum": 100.0,
"minimum": 0.0,
"title": "Max Soc Percentage",
"type": "integer"
},
"min_soc_percentage": {
"default": 0,
"description": "An integer representing the minimum state of charge (SOC) of the battery in percentage.",
"examples": [
10
],
"maximum": 100.0,
"minimum": 0.0,
"title": "Min Soc Percentage",
"type": "integer"
}
},
"required": [
"device_id",
"capacity_wh"
],
"title": "BaseBatteryParameters",
"type": "object"
},
"GeneralSettings-Input": {
"description": "Settings for common configuration.\n\nGeneral configuration to set directories of cache and output files and system location (latitude\nand longitude).\nValidators ensure each parameter is within a specified range. A computed property, `timezone`,\ndetermines the time zone based on latitude and longitude.\n\nAttributes:\n latitude (Optional[float]): Latitude in degrees, must be between -90 and 90.\n longitude (Optional[float]): Longitude in degrees, must be between -180 and 180.\n\nProperties:\n timezone (Optional[str]): Computed time zone string based on the specified latitude\n and longitude.\n\nValidators:\n validate_latitude (float): Ensures `latitude` is within the range -90 to 90.\n validate_longitude (float): Ensures `longitude` is within the range -180 to 180.",
"properties": {
"data_cache_subpath": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": "cache",
"description": "Sub-path for the EOS cache data directory.",
"title": "Data Cache Subpath"
},
"data_folder_path": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to EOS data directory.",
"examples": [
null,
"/home/eos/data"
],
"title": "Data Folder Path"
},
"data_output_subpath": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": "output",
"description": "Sub-path for the EOS output data directory.",
"title": "Data Output Subpath"
},
"latitude": {
"anyOf": [
{
"maximum": 90.0,
"minimum": -90.0,
"type": "number"
},
{
"type": "null"
}
],
"default": 52.52,
"description": "Latitude in decimal degrees, between -90 and 90, north is positive (ISO 19115) (\u00b0)",
"title": "Latitude"
},
"longitude": {
"anyOf": [
{
"maximum": 180.0,
"minimum": -180.0,
"type": "number"
},
{
"type": "null"
}
],
"default": 13.405,
"description": "Longitude in decimal degrees, within -180 to 180 (\u00b0)",
"title": "Longitude"
}
},
"title": "GeneralSettings",
"type": "object"
},
"GeneralSettings-Output": {
"description": "Settings for common configuration.\n\nGeneral configuration to set directories of cache and output files and system location (latitude\nand longitude).\nValidators ensure each parameter is within a specified range. A computed property, `timezone`,\ndetermines the time zone based on latitude and longitude.\n\nAttributes:\n latitude (Optional[float]): Latitude in degrees, must be between -90 and 90.\n longitude (Optional[float]): Longitude in degrees, must be between -180 and 180.\n\nProperties:\n timezone (Optional[str]): Computed time zone string based on the specified latitude\n and longitude.\n\nValidators:\n validate_latitude (float): Ensures `latitude` is within the range -90 to 90.\n validate_longitude (float): Ensures `longitude` is within the range -180 to 180.",
"properties": {
"config_file_path": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to EOS configuration file.",
"readOnly": true,
"title": "Config File Path"
},
"config_folder_path": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to EOS configuration directory.",
"readOnly": true,
"title": "Config Folder Path"
},
"data_cache_path": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"description": "Compute data_cache_path based on data_folder_path.",
"readOnly": true,
"title": "Data Cache Path"
},
"data_cache_subpath": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": "cache",
"description": "Sub-path for the EOS cache data directory.",
"title": "Data Cache Subpath"
},
"data_folder_path": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to EOS data directory.",
"examples": [
null,
"/home/eos/data"
],
"title": "Data Folder Path"
},
"data_output_path": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"description": "Compute data_output_path based on data_folder_path.",
"readOnly": true,
"title": "Data Output Path"
},
"data_output_subpath": {
"anyOf": [
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"default": "output",
"description": "Sub-path for the EOS output data directory.",
"title": "Data Output Subpath"
},
"latitude": {
"anyOf": [
{
"maximum": 90.0,
"minimum": -90.0,
"type": "number"
},
{
"type": "null"
}
],
"default": 52.52,
"description": "Latitude in decimal degrees, between -90 and 90, north is positive (ISO 19115) (\u00b0)",
"title": "Latitude"
},
"longitude": {
"anyOf": [
{
"maximum": 180.0,
"minimum": -180.0,
"type": "number"
},
{
"type": "null"
}
],
"default": 13.405,
"description": "Longitude in decimal degrees, within -180 to 180 (\u00b0)",
"title": "Longitude"
},
"timezone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Compute timezone based on latitude and longitude.",
"readOnly": true,
"title": "Timezone"
}
},
"required": [
"timezone",
"data_output_path",
"data_cache_path",
"config_folder_path",
"config_file_path"
],
"title": "GeneralSettings",
"type": "object"
},
"ConfigEOS": {
"additionalProperties": false,
"description": "Singleton configuration handler for the EOS application.\n\nConfigEOS extends `SettingsEOS` with support for default configuration paths and automatic\ninitialization.\n\n`ConfigEOS` ensures that only one instance of the class is created throughout the application,\nallowing consistent access to EOS configuration settings. This singleton instance loads\nconfiguration data from a predefined set of directories or creates a default configuration if\nnone is found.\n\nInitialization Process:\n - Upon instantiation, the singleton instance attempts to load a configuration file in this order:\n 1. The directory specified by the `EOS_CONFIG_DIR` environment variable\n 2. The directory specified by the `EOS_DIR` environment variable.\n 3. A platform specific default directory for EOS.\n 4. The current working directory.\n - The first available configuration file found in these directories is loaded.\n - If no configuration file is found, a default configuration file is created in the platform\n specific default directory, and default settings are loaded into it.\n\nAttributes from the loaded configuration are accessible directly as instance attributes of\n`ConfigEOS`, providing a centralized, shared configuration object for EOS.\n\nSingleton Behavior:\n - This class uses the `SingletonMixin` to ensure that all requests for `ConfigEOS` return\n the same instance, which contains the most up-to-date configuration. Modifying the configuration\n in one part of the application reflects across all references to this class.\n\nAttributes:\n config_folder_path (Optional[Path]): Path to the configuration directory.\n config_file_path (Optional[Path]): Path to the configuration file.\n\nRaises:\n FileNotFoundError: If no configuration file is found, and creating a default configuration fails.\n\nExample:\n To initialize and access configuration attributes (only one instance is created):\n ```python\n config_eos = ConfigEOS() # Always returns the same instance\n print(config_eos.prediction.hours) # Access a setting from the loaded configuration\n ```",
"properties": {
"devices": {
"$ref": "#/components/schemas/DevicesCommonSettings",
"default": {}
},
"elecprice": {
"$ref": "#/components/schemas/ElecPriceCommonSettings",
"default": {}
},
"general": {
"$ref": "#/components/schemas/GeneralSettings-Output",
"default": {
"config_file_path": "/home/user/.config/net.akkudoktoreos.net/EOS.config.json",
"config_folder_path": "/home/user/.config/net.akkudoktoreos.net",
"data_cache_subpath": "cache",
"data_output_subpath": "output",
"latitude": 52.52,
"longitude": 13.405,
"timezone": "Europe/Berlin"
}
},
"load": {
"$ref": "#/components/schemas/LoadCommonSettings",
"default": {}
},
"logging": {
"$ref": "#/components/schemas/LoggingCommonSettings-Output",
"default": {
"root_level": "INFO"
}
},
"measurement": {
"$ref": "#/components/schemas/MeasurementCommonSettings",
"default": {}
},
"optimization": {
"$ref": "#/components/schemas/OptimizationCommonSettings",
"default": {
"ev_available_charge_rates_percent": [
0.0,
0.375,
0.5,
0.625,
0.75,
0.875,
1.0
],
"hours": 48,
"penalty": 10
}
},
"prediction": {
"$ref": "#/components/schemas/PredictionCommonSettings",
"default": {
"historic_hours": 48,
"hours": 48
}
},
"pvforecast": {
"$ref": "#/components/schemas/PVForecastCommonSettings-Output",
"default": {
"planes_azimuth": [],
"planes_inverter_paco": [],
"planes_peakpower": [],
"planes_tilt": [],
"planes_userhorizon": []
}
},
"server": {
"$ref": "#/components/schemas/ServerCommonSettings",
"default": {
"eosdash_host": "0.0.0.0",
"eosdash_port": 8504,
"host": "0.0.0.0",
"port": 8503,
"startup_eosdash": true,
"verbose": false
}
},
"utils": {
"$ref": "#/components/schemas/UtilsCommonSettings",
"default": {}
},
"weather": {
"$ref": "#/components/schemas/WeatherCommonSettings",
"default": {}
}
},
"title": "ConfigEOS",
"type": "object"
},
"DevicesCommonSettings": {
"description": "Base configuration for devices simulation settings.",
"properties": {
"batteries": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/BaseBatteryParameters"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "List of battery/ev devices",
"examples": [
[
{
"capacity_wh": 8000,
"device_id": "battery1"
}
]
],
"title": "Batteries"
},
"home_appliances": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/HomeApplianceParameters"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "List of home appliances",
"examples": [
[]
],
"title": "Home Appliances"
},
"inverters": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/InverterParameters"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "List of inverters",
"examples": [
[]
],
"title": "Inverters"
}
},
"title": "DevicesCommonSettings",
"type": "object"
},
"ElecPriceCommonSettings": {
"description": "Electricity Price Prediction Configuration.",
"properties": {
"charges_kwh": {
"anyOf": [
{
"minimum": 0.0,
"type": "number"
},
{
"type": "null"
}
],
"description": "Electricity price charges (\u20ac/kWh).",
"examples": [
0.21
],
"title": "Charges Kwh"
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Electricity price provider id of provider to be used.",
"examples": [
"ElecPriceAkkudoktor"
],
"title": "Provider"
},
"provider_settings": {
"anyOf": [
{
"$ref": "#/components/schemas/ElecPriceImportCommonSettings"
},
{
"type": "null"
}
],
"description": "Provider settings",
"examples": [
null
]
}
},
"title": "ElecPriceCommonSettings",
"type": "object"
},
"ElecPriceImportCommonSettings": {
"description": "Common settings for elecprice data import from file or JSON String.",
"properties": {
"import_file_path": {
"anyOf": [
{
"type": "string"
},
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to the file to import elecprice data from.",
"examples": [
null,
"/path/to/prices.json"
],
"title": "Import File Path"
},
"import_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "JSON string, dictionary of electricity price forecast value lists.",
"examples": [
"{\"elecprice_marketprice_wh\": [0.0003384, 0.0003318, 0.0003284]}"
],
"title": "Import Json"
}
},
"title": "ElecPriceImportCommonSettings",
"type": "object"
},
"ElectricVehicleParameters": {
"additionalProperties": false,
"description": "Battery Electric Vehicle Device Simulation Configuration.",
"properties": {
"capacity_wh": {
"description": "An integer representing the capacity of the battery in watt-hours.",
"examples": [
8000
],
"exclusiveMinimum": 0.0,
"title": "Capacity Wh",
"type": "integer"
},
"charging_efficiency": {
"default": 0.88,
"description": "A float representing the charging efficiency of the battery.",
"exclusiveMinimum": 0.0,
"maximum": 1.0,
"title": "Charging Efficiency",
"type": "number"
},
"device_id": {
"description": "ID of electric vehicle",
"examples": [
"ev1"
],
"title": "Device Id",
"type": "string"
},
"discharging_efficiency": {
"default": 1.0,
"description": "A float representing the discharge efficiency of the battery.",
"exclusiveMinimum": 0.0,
"maximum": 1.0,
"title": "Discharging Efficiency",
"type": "number"
},
"hours": {
"anyOf": [
{
"exclusiveMinimum": 0.0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Number of prediction hours. Defaults to global config prediction hours.",
"examples": [
null
],
"title": "Hours"
},
"initial_soc_percentage": {
"default": 0,
"description": "An integer representing the current state of charge (SOC) of the battery in percentage.",
"examples": [
42
],
"maximum": 100.0,
"minimum": 0.0,
"title": "Initial Soc Percentage",
"type": "integer"
},
"max_charge_power_w": {
"anyOf": [
{
"exclusiveMinimum": 0.0,
"type": "number"
},
{
"type": "null"
}
],
"default": 5000,
"description": "Maximum charging power in watts.",
"title": "Max Charge Power W"
},
"max_soc_percentage": {
"default": 100,
"description": "An integer representing the maximum state of charge (SOC) of the battery in percentage.",
"maximum": 100.0,
"minimum": 0.0,
"title": "Max Soc Percentage",
"type": "integer"
},
"min_soc_percentage": {
"default": 0,
"description": "An integer representing the minimum state of charge (SOC) of the battery in percentage.",
"examples": [
10
],
"maximum": 100.0,
"minimum": 0.0,
"title": "Min Soc Percentage",
"type": "integer"
}
},
"required": [
"device_id",
"capacity_wh"
],
"title": "ElectricVehicleParameters",
"type": "object"
},
"ElectricVehicleResult": {
"additionalProperties": false,
"description": "Result class containing information related to the electric vehicle's charging and discharging behavior.",
"properties": {
"capacity_wh": {
"description": "Capacity of the EV\u2019s battery in watt-hours.",
"title": "Capacity Wh",
"type": "integer"
},
"charge_array": {
"description": "Hourly charging status (0 for no charging, 1 for charging).",
"items": {
"type": "number"
},
"title": "Charge Array",
"type": "array"
},
"charging_efficiency": {
"description": "Charging efficiency as a float..",
"title": "Charging Efficiency",
"type": "number"
},
"device_id": {
"description": "ID of electric vehicle",
"examples": [
"ev1"
],
"title": "Device Id",
"type": "string"
},
"discharge_array": {
"description": "Hourly discharging status (0 for no discharging, 1 for discharging).",
"items": {
"type": "integer"
},
"title": "Discharge Array",
"type": "array"
},
"discharging_efficiency": {
"description": "The discharge efficiency as a float..",
"title": "Discharging Efficiency",
"type": "number"
},
"hours": {
"description": "Number of hours in the simulation.",
"examples": [
24
],
"exclusiveMinimum": 0.0,
"title": "Hours",
"type": "integer"
},
"initial_soc_percentage": {
"description": "State of charge at the start of the simulation in percentage.",
"title": "Initial Soc Percentage",
"type": "integer"
},
"max_charge_power_w": {
"description": "Maximum charging power in watts.",
"title": "Max Charge Power W",
"type": "integer"
},
"soc_wh": {
"description": "State of charge of the battery in watt-hours at the start of the simulation.",
"title": "Soc Wh",
"type": "number"
}
},
"required": [
"device_id",
"hours",
"charge_array",
"discharge_array",
"discharging_efficiency",
"capacity_wh",
"charging_efficiency",
"max_charge_power_w",
"soc_wh",
"initial_soc_percentage"
],
"title": "ElectricVehicleResult",
"type": "object"
},
"EnergieManagementSystemParameters": {
"additionalProperties": false,
"properties": {
"einspeiseverguetung_euro_pro_wh": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "number"
}
],
"description": "A float or array of floats representing the feed-in compensation in euros per watt-hour.",
"title": "Einspeiseverguetung Euro Pro Wh"
},
"gesamtlast": {
"description": "An array of floats representing the total load (consumption) in watts for different time intervals.",
"items": {
"type": "number"
},
"title": "Gesamtlast",
"type": "array"
},
"preis_euro_pro_wh_akku": {
"description": "A float representing the cost of battery energy per watt-hour.",
"title": "Preis Euro Pro Wh Akku",
"type": "number"
},
"pv_prognose_wh": {
"description": "An array of floats representing the forecasted photovoltaic output in watts for different time intervals.",
"items": {
"type": "number"
},
"title": "Pv Prognose Wh",
"type": "array"
},
"strompreis_euro_pro_wh": {
"description": "An array of floats representing the electricity price in euros per watt-hour for different time intervals.",
"items": {
"type": "number"
},
"title": "Strompreis Euro Pro Wh",
"type": "array"
}
},
"required": [
"pv_prognose_wh",
"strompreis_euro_pro_wh",
"einspeiseverguetung_euro_pro_wh",
"preis_euro_pro_wh_akku",
"gesamtlast"
],
"title": "EnergieManagementSystemParameters",
"type": "object"
},
"ForecastResponse": {
"properties": {
"pvpower": {
"items": {
"type": "number"
},
"title": "Pvpower",
"type": "array"
},
"temperature": {
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"title": "Temperature",
"type": "array"
}
},
"required": [
"temperature",
"pvpower"
],
"title": "ForecastResponse",
"type": "object"
},
"GesamtlastRequest": {
"properties": {
"hours": {
"title": "Hours",
"type": "integer"
},
"measured_data": {
"items": {
"type": "object"
},
"title": "Measured Data",
"type": "array"
},
"year_energy": {
"title": "Year Energy",
"type": "number"
}
},
"required": [
"year_energy",
"measured_data",
"hours"
],
"title": "GesamtlastRequest",
"type": "object"
},
"HTTPValidationError": {
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"title": "Detail",
"type": "array"
}
},
"title": "HTTPValidationError",
"type": "object"
},
"HomeApplianceParameters": {
"additionalProperties": false,
"description": "Home Appliance Device Simulation Configuration.",
"properties": {
"consumption_wh": {
"description": "An integer representing the energy consumption of a household device in watt-hours.",
"examples": [
2000
],
"exclusiveMinimum": 0.0,
"title": "Consumption Wh",
"type": "integer"
},
"device_id": {
"description": "ID of home appliance",
"examples": [
"dishwasher"
],
"title": "Device Id",
"type": "string"
},
"duration_h": {
"description": "An integer representing the usage duration of a household device in hours.",
"examples": [
3
],
"exclusiveMinimum": 0.0,
"title": "Duration H",
"type": "integer"
},
"hours": {
"anyOf": [
{
"exclusiveMinimum": 0.0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Number of prediction hours. Defaults to global config prediction hours.",
"examples": [
null
],
"title": "Hours"
}
},
"required": [
"device_id",
"consumption_wh",
"duration_h"
],
"title": "HomeApplianceParameters",
"type": "object"
},
"InverterParameters": {
"additionalProperties": false,
"description": "Inverter Device Simulation Configuration.",
"properties": {
"battery_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ID of battery",
"examples": [
null,
"battery1"
],
"title": "Battery Id"
},
"device_id": {
"description": "ID of inverter",
"examples": [
"inverter1"
],
"title": "Device Id",
"type": "string"
},
"hours": {
"anyOf": [
{
"exclusiveMinimum": 0.0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Number of prediction hours. Defaults to global config prediction hours.",
"examples": [
null
],
"title": "Hours"
},
"max_power_wh": {
"examples": [
10000
],
"exclusiveMinimum": 0.0,
"title": "Max Power Wh",
"type": "number"
}
},
"required": [
"device_id",
"max_power_wh"
],
"title": "InverterParameters",
"type": "object"
},
"LoadAkkudoktorCommonSettings": {
"description": "Common settings for load data import from file.",
"properties": {
"loadakkudoktor_year_energy": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Yearly energy consumption (kWh).",
"examples": [
40421
],
"title": "Loadakkudoktor Year Energy"
}
},
"title": "LoadAkkudoktorCommonSettings",
"type": "object"
},
"LoadCommonSettings": {
"description": "Load Prediction Configuration.",
"properties": {
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Load provider id of provider to be used.",
"examples": [
"LoadAkkudoktor"
],
"title": "Provider"
},
"provider_settings": {
"anyOf": [
{
"$ref": "#/components/schemas/LoadAkkudoktorCommonSettings"
},
{
"$ref": "#/components/schemas/LoadImportCommonSettings"
},
{
"type": "null"
}
],
"description": "Provider settings",
"examples": [
null
],
"title": "Provider Settings"
}
},
"title": "LoadCommonSettings",
"type": "object"
},
"LoadImportCommonSettings": {
"description": "Common settings for load data import from file or JSON string.",
"properties": {
"import_file_path": {
"anyOf": [
{
"type": "string"
},
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to the file to import load data from.",
"examples": [
null,
"/path/to/yearly_load.json"
],
"title": "Import File Path"
},
"import_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "JSON string, dictionary of load forecast value lists.",
"examples": [
"{\"load0_mean\": [676.71, 876.19, 527.13]}"
],
"title": "Import Json"
}
},
"title": "LoadImportCommonSettings",
"type": "object"
},
"LoggingCommonSettings-Input": {
"description": "Logging Configuration.",
"properties": {
"level": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "EOS default logging level.",
"examples": [
"INFO",
"DEBUG",
"WARNING",
"ERROR",
"CRITICAL"
],
"title": "Level"
}
},
"title": "LoggingCommonSettings",
"type": "object"
},
"LoggingCommonSettings-Output": {
"description": "Logging Configuration.",
"properties": {
"level": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "EOS default logging level.",
"examples": [
"INFO",
"DEBUG",
"WARNING",
"ERROR",
"CRITICAL"
],
"title": "Level"
},
"root_level": {
"description": "Root logger logging level.",
"readOnly": true,
"title": "Root Level",
"type": "string"
}
},
"required": [
"root_level"
],
"title": "LoggingCommonSettings",
"type": "object"
},
"MeasurementCommonSettings": {
"description": "Measurement Configuration.",
"properties": {
"load0_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the load0 source",
"examples": [
"Household",
"Heat Pump"
],
"title": "Load0 Name"
},
"load1_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the load1 source",
"examples": [
null
],
"title": "Load1 Name"
},
"load2_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the load2 source",
"examples": [
null
],
"title": "Load2 Name"
},
"load3_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the load3 source",
"examples": [
null
],
"title": "Load3 Name"
},
"load4_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Name of the load4 source",
"examples": [
null
],
"title": "Load4 Name"
}
},
"title": "MeasurementCommonSettings",
"type": "object"
},
"OptimizationCommonSettings": {
"description": "General Optimization Configuration.\n\nAttributes:\n hours (int): Number of hours for optimizations.",
"properties": {
"ev_available_charge_rates_percent": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": [
0.0,
0.375,
0.5,
0.625,
0.75,
0.875,
1.0
],
"description": "Charge rates available for the EV in percent of maximum charge.",
"title": "Ev Available Charge Rates Percent"
},
"hours": {
"anyOf": [
{
"minimum": 0.0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 48,
"description": "Number of hours into the future for optimizations.",
"title": "Hours"
},
"penalty": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 10,
"description": "Penalty factor used in optimization.",
"title": "Penalty"
}
},
"title": "OptimizationCommonSettings",
"type": "object"
},
"OptimizationParameters": {
"additionalProperties": false,
"properties": {
"dishwasher": {
"anyOf": [
{
"$ref": "#/components/schemas/HomeApplianceParameters"
},
{
"type": "null"
}
]
},
"eauto": {
"anyOf": [
{
"$ref": "#/components/schemas/ElectricVehicleParameters"
},
{
"type": "null"
}
]
},
"ems": {
"$ref": "#/components/schemas/EnergieManagementSystemParameters"
},
"inverter": {
"anyOf": [
{
"$ref": "#/components/schemas/InverterParameters"
},
{
"type": "null"
}
]
},
"pv_akku": {
"anyOf": [
{
"$ref": "#/components/schemas/SolarPanelBatteryParameters"
},
{
"type": "null"
}
]
},
"start_solution": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Can be `null` or contain a previous solution (if available).",
"title": "Start Solution"
},
"temperature_forecast": {
"anyOf": [
{
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"type": "array"
},
{
"type": "null"
}
],
"description": "An array of floats representing the temperature forecast in degrees Celsius for different time intervals.",
"title": "Temperature Forecast"
}
},
"required": [
"ems",
"pv_akku",
"inverter",
"eauto"
],
"title": "OptimizationParameters",
"type": "object"
},
"OptimizeResponse": {
"additionalProperties": false,
"description": "**Note**: The first value of \"Last_Wh_per_hour\", \"Netzeinspeisung_Wh_per_hour\", and \"Netzbezug_Wh_per_hour\", will be set to null in the JSON output and represented as NaN or None in the corresponding classes' data returns. This approach is adopted to ensure that the current hour's processing remains unchanged.",
"properties": {
"ac_charge": {
"description": "Array with AC charging values as relative power (0-1), other values set to 0.",
"items": {
"type": "number"
},
"title": "Ac Charge",
"type": "array"
},
"dc_charge": {
"description": "Array with DC charging values as relative power (0-1), other values set to 0.",
"items": {
"type": "number"
},
"title": "Dc Charge",
"type": "array"
},
"discharge_allowed": {
"description": "Array with discharge values (1 for discharge, 0 otherwise).",
"items": {
"type": "integer"
},
"title": "Discharge Allowed",
"type": "array"
},
"eauto_obj": {
"anyOf": [
{
"$ref": "#/components/schemas/ElectricVehicleResult"
},
{
"type": "null"
}
]
},
"eautocharge_hours_float": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "TBD",
"title": "Eautocharge Hours Float"
},
"result": {
"$ref": "#/components/schemas/SimulationResult"
},
"start_solution": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "An array of binary values (0 or 1) representing a possible starting solution for the simulation.",
"title": "Start Solution"
},
"washingstart": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Can be `null` or contain an object representing the start of washing (if applicable).",
"title": "Washingstart"
}
},
"required": [
"ac_charge",
"dc_charge",
"discharge_allowed",
"eautocharge_hours_float",
"result",
"eauto_obj"
],
"title": "OptimizeResponse",
"type": "object"
},
"PVForecastCommonSettings-Input": {
"description": "PV Forecast Configuration.",
"properties": {
"planes": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/PVForecastPlaneSetting"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Plane configuration.",
"examples": [
[
{
"inverter_paco": 6000,
"loss": 14.0,
"modules_per_string": 20,
"mountingplace": "free",
"optimal_surface_tilt": false,
"optimalangles": false,
"peakpower": 5.0,
"pvtechchoice": "crystSi",
"strings_per_inverter": 2,
"surface_azimuth": 10.0,
"surface_tilt": 10.0,
"trackingtype": 0,
"userhorizon": [
10.0,
20.0,
30.0
]
},
{
"inverter_paco": 4000,
"loss": 14.0,
"modules_per_string": 20,
"mountingplace": "free",
"optimal_surface_tilt": false,
"optimalangles": false,
"peakpower": 3.5,
"pvtechchoice": "crystSi",
"strings_per_inverter": 2,
"surface_azimuth": 20.0,
"surface_tilt": 20.0,
"trackingtype": 1,
"userhorizon": [
5.0,
15.0,
25.0
]
}
]
],
"title": "Planes"
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "PVForecast provider id of provider to be used.",
"examples": [
"PVForecastAkkudoktor"
],
"title": "Provider"
},
"provider_settings": {
"anyOf": [
{
"$ref": "#/components/schemas/PVForecastImportCommonSettings"
},
{
"type": "null"
}
],
"description": "Provider settings",
"examples": [
null
]
}
},
"title": "PVForecastCommonSettings",
"type": "object"
},
"PVForecastCommonSettings-Output": {
"description": "PV Forecast Configuration.",
"properties": {
"planes": {
"anyOf": [
{
"items": {
"$ref": "#/components/schemas/PVForecastPlaneSetting"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Plane configuration.",
"examples": [
[
{
"inverter_paco": 6000,
"loss": 14.0,
"modules_per_string": 20,
"mountingplace": "free",
"optimal_surface_tilt": false,
"optimalangles": false,
"peakpower": 5.0,
"pvtechchoice": "crystSi",
"strings_per_inverter": 2,
"surface_azimuth": 10.0,
"surface_tilt": 10.0,
"trackingtype": 0,
"userhorizon": [
10.0,
20.0,
30.0
]
},
{
"inverter_paco": 4000,
"loss": 14.0,
"modules_per_string": 20,
"mountingplace": "free",
"optimal_surface_tilt": false,
"optimalangles": false,
"peakpower": 3.5,
"pvtechchoice": "crystSi",
"strings_per_inverter": 2,
"surface_azimuth": 20.0,
"surface_tilt": 20.0,
"trackingtype": 1,
"userhorizon": [
5.0,
15.0,
25.0
]
}
]
],
"title": "Planes"
},
"planes_azimuth": {
"description": "Compute a list of the azimuths per active planes.",
"items": {
"type": "number"
},
"readOnly": true,
"title": "Planes Azimuth",
"type": "array"
},
"planes_inverter_paco": {
"description": "Compute a list of the maximum power rating of the inverter per active planes.",
"readOnly": true,
"title": "Planes Inverter Paco"
},
"planes_peakpower": {
"description": "Compute a list of the peak power per active planes.",
"items": {
"type": "number"
},
"readOnly": true,
"title": "Planes Peakpower",
"type": "array"
},
"planes_tilt": {
"description": "Compute a list of the tilts per active planes.",
"items": {
"type": "number"
},
"readOnly": true,
"title": "Planes Tilt",
"type": "array"
},
"planes_userhorizon": {
"description": "Compute a list of the user horizon per active planes.",
"readOnly": true,
"title": "Planes Userhorizon"
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "PVForecast provider id of provider to be used.",
"examples": [
"PVForecastAkkudoktor"
],
"title": "Provider"
},
"provider_settings": {
"anyOf": [
{
"$ref": "#/components/schemas/PVForecastImportCommonSettings"
},
{
"type": "null"
}
],
"description": "Provider settings",
"examples": [
null
]
}
},
"required": [
"planes_peakpower",
"planes_azimuth",
"planes_tilt",
"planes_userhorizon",
"planes_inverter_paco"
],
"title": "PVForecastCommonSettings",
"type": "object"
},
"PVForecastImportCommonSettings": {
"description": "Common settings for pvforecast data import from file or JSON string.",
"properties": {
"import_file_path": {
"anyOf": [
{
"type": "string"
},
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to the file to import PV forecast data from.",
"examples": [
null,
"/path/to/pvforecast.json"
],
"title": "Import File Path"
},
"import_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "JSON string, dictionary of PV forecast value lists.",
"examples": [
"{\"pvforecast_ac_power\": [0, 8.05, 352.91]}"
],
"title": "Import Json"
}
},
"title": "PVForecastImportCommonSettings",
"type": "object"
},
"PVForecastPlaneSetting": {
"description": "PV Forecast Plane Configuration.",
"properties": {
"albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Proportion of the light hitting the ground that it reflects back.",
"examples": [
null
],
"title": "Albedo"
},
"inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Model of the inverter of this plane.",
"examples": [
null
],
"title": "Inverter Model"
},
"inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "AC power rating of the inverter. [W]",
"examples": [
6000,
4000
],
"title": "Inverter Paco"
},
"loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 14.0,
"description": "Sum of PV system losses in percent",
"title": "Loss"
},
"module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Model of the PV modules of this plane.",
"examples": [
null
],
"title": "Module Model"
},
"modules_per_string": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Number of the PV modules of the strings of this plane.",
"examples": [
20
],
"title": "Modules Per String"
},
"mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "free",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"title": "Mountingplace"
},
"optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"examples": [
false
],
"title": "Optimal Surface Tilt"
},
"optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"examples": [
false
],
"title": "Optimalangles"
},
"peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Nominal power of PV system in kW.",
"examples": [
5.0,
3.5
],
"title": "Peakpower"
},
"pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "crystSi",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"title": "Pvtechchoice"
},
"strings_per_inverter": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Number of the strings of the inverter of this plane.",
"examples": [
2
],
"title": "Strings Per Inverter"
},
"surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"examples": [
10.0,
20.0
],
"title": "Surface Azimuth"
},
"surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"examples": [
10.0,
20.0
],
"title": "Surface Tilt"
},
"trackingtype": {
"anyOf": [
{
"maximum": 5.0,
"minimum": 0.0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Type of suntracking. 0=fixed, 1=single horizontal axis aligned north-south, 2=two-axis tracking, 3=vertical axis tracking, 4=single horizontal axis aligned east-west, 5=single inclined axis aligned north-south.",
"examples": [
0,
1,
2,
3,
4,
5
],
"title": "Trackingtype"
},
"userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north.",
"examples": [
[
10.0,
20.0,
30.0
],
[
5.0,
15.0,
25.0
]
],
"title": "Userhorizon"
}
},
"title": "PVForecastPlaneSetting",
"type": "object"
},
"PredictionCommonSettings": {
"description": "General Prediction Configuration.\n\nThis class provides configuration for prediction settings, allowing users to specify\nparameters such as the forecast duration (in hours).\nValidators ensure each parameter is within a specified range.\n\nAttributes:\n hours (Optional[int]): Number of hours into the future for predictions.\n Must be non-negative.\n historic_hours (Optional[int]): Number of hours into the past for historical data.\n Must be non-negative.\n\nValidators:\n validate_hours (int): Ensures `hours` is a non-negative integer.\n validate_historic_hours (int): Ensures `historic_hours` is a non-negative integer.",
"properties": {
"historic_hours": {
"anyOf": [
{
"minimum": 0.0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 48,
"description": "Number of hours into the past for historical predictions data",
"title": "Historic Hours"
},
"hours": {
"anyOf": [
{
"minimum": 0.0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 48,
"description": "Number of hours into the future for predictions",
"title": "Hours"
}
},
"title": "PredictionCommonSettings",
"type": "object"
},
"PydanticDateTimeData": {
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
},
{
"type": "string"
},
{
"type": "null"
}
]
},
"type": "array"
}
]
},
"description": "Pydantic model for time series data with consistent value lengths.\n\nThis model validates a dictionary where:\n- Keys are strings representing data series names\n- Values are lists of numeric or string values\n- Special keys 'start_datetime' and 'interval' can contain string values\nfor time series indexing\n- All value lists must have the same length\n\nExample:\n {\n \"start_datetime\": \"2024-01-01 00:00:00\", # optional\n \"interval\": \"1 Hour\", # optional\n \"load_mean\": [20.5, 21.0, 22.1],\n \"load_min\": [18.5, 19.0, 20.1]\n }",
"title": "PydanticDateTimeData",
"type": "object"
},
"PydanticDateTimeDataFrame": {
"description": "Pydantic model for validating pandas DataFrame data with datetime index.",
"properties": {
"data": {
"additionalProperties": {
"type": "object"
},
"title": "Data",
"type": "object"
},
"datetime_columns": {
"description": "Columns to be treated as datetime",
"items": {
"type": "string"
},
"title": "Datetime Columns",
"type": "array"
},
"dtypes": {
"additionalProperties": {
"type": "string"
},
"title": "Dtypes",
"type": "object"
},
"tz": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Timezone for datetime values",
"title": "Tz"
}
},
"required": [
"data"
],
"title": "PydanticDateTimeDataFrame",
"type": "object"
},
"PydanticDateTimeSeries": {
"description": "Pydantic model for validating pandas Series with datetime index in JSON format.\n\nThis model handles Series data serialized with orient='index', where the keys are\ndatetime strings and values are the series values. Provides validation and\nconversion between JSON and pandas Series with datetime index.\n\nAttributes:\n data (Dict[str, Any]): Dictionary mapping datetime strings to values.\n dtype (str): The data type of the series values.\n tz (str | None): Timezone name if the datetime index is timezone-aware.",
"properties": {
"data": {
"title": "Data",
"type": "object"
},
"dtype": {
"default": "float64",
"title": "Dtype",
"type": "string"
},
"tz": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Tz"
}
},
"required": [
"data"
],
"title": "PydanticDateTimeSeries",
"type": "object"
},
"ServerCommonSettings": {
"description": "Server Configuration.\n\nAttributes:\n To be added",
"properties": {
"eosdash_host": {
"anyOf": [
{
"format": "ipvanyaddress",
"type": "string"
},
{
"type": "null"
}
],
"default": "0.0.0.0",
"description": "EOSdash server IP address.",
"title": "Eosdash Host"
},
"eosdash_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 8504,
"description": "EOSdash server IP port number.",
"title": "Eosdash Port"
},
"host": {
"anyOf": [
{
"format": "ipvanyaddress",
"type": "string"
},
{
"type": "null"
}
],
"default": "0.0.0.0",
"description": "EOS server IP address.",
"title": "Host"
},
"port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 8503,
"description": "EOS server IP port number.",
"title": "Port"
},
"startup_eosdash": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": true,
"description": "EOS server to start EOSdash server.",
"title": "Startup Eosdash"
},
"verbose": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"description": "Enable debug output",
"title": "Verbose"
}
},
"title": "ServerCommonSettings",
"type": "object"
},
"SettingsEOS": {
"additionalProperties": false,
"description": "Settings for all EOS.\n\nUsed by updating the configuration with specific settings only.",
"properties": {
"devices": {
"anyOf": [
{
"$ref": "#/components/schemas/DevicesCommonSettings"
},
{
"type": "null"
}
]
},
"elecprice": {
"anyOf": [
{
"$ref": "#/components/schemas/ElecPriceCommonSettings"
},
{
"type": "null"
}
]
},
"general": {
"anyOf": [
{
"$ref": "#/components/schemas/GeneralSettings-Input"
},
{
"type": "null"
}
]
},
"load": {
"anyOf": [
{
"$ref": "#/components/schemas/LoadCommonSettings"
},
{
"type": "null"
}
]
},
"logging": {
"anyOf": [
{
"$ref": "#/components/schemas/LoggingCommonSettings-Input"
},
{
"type": "null"
}
]
},
"measurement": {
"anyOf": [
{
"$ref": "#/components/schemas/MeasurementCommonSettings"
},
{
"type": "null"
}
]
},
"optimization": {
"anyOf": [
{
"$ref": "#/components/schemas/OptimizationCommonSettings"
},
{
"type": "null"
}
]
},
"prediction": {
"anyOf": [
{
"$ref": "#/components/schemas/PredictionCommonSettings"
},
{
"type": "null"
}
]
},
"pvforecast": {
"anyOf": [
{
"$ref": "#/components/schemas/PVForecastCommonSettings-Input"
},
{
"type": "null"
}
]
},
"server": {
"anyOf": [
{
"$ref": "#/components/schemas/ServerCommonSettings"
},
{
"type": "null"
}
]
},
"utils": {
"anyOf": [
{
"$ref": "#/components/schemas/UtilsCommonSettings"
},
{
"type": "null"
}
]
},
"weather": {
"anyOf": [
{
"$ref": "#/components/schemas/WeatherCommonSettings"
},
{
"type": "null"
}
]
}
},
"title": "SettingsEOS",
"type": "object"
},
"SimulationResult": {
"additionalProperties": false,
"description": "This object contains the results of the simulation and provides insights into various parameters over the entire forecast period.",
"properties": {
"EAuto_SoC_pro_Stunde": {
"description": "The state of charge of the EV for each hour.",
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"title": "Eauto Soc Pro Stunde",
"type": "array"
},
"Einnahmen_Euro_pro_Stunde": {
"description": "The revenue from grid feed-in or other sources in euros per hour.",
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"title": "Einnahmen Euro Pro Stunde",
"type": "array"
},
"Electricity_price": {
"description": "Used Electricity Price, including predictions",
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"title": "Electricity Price",
"type": "array"
},
"Gesamt_Verluste": {
"description": "The total losses in watt-hours over the entire period.",
"title": "Gesamt Verluste",
"type": "number"
},
"Gesamtbilanz_Euro": {
"description": "The total balance of revenues minus costs in euros.",
"title": "Gesamtbilanz Euro",
"type": "number"
},
"Gesamteinnahmen_Euro": {
"description": "The total revenues in euros.",
"title": "Gesamteinnahmen Euro",
"type": "number"
},
"Gesamtkosten_Euro": {
"description": "The total costs in euros.",
"title": "Gesamtkosten Euro",
"type": "number"
},
"Home_appliance_wh_per_hour": {
"description": "The energy consumption of a household appliance in watt-hours per hour.",
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"title": "Home Appliance Wh Per Hour",
"type": "array"
},
"Kosten_Euro_pro_Stunde": {
"description": "The costs in euros per hour.",
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"title": "Kosten Euro Pro Stunde",
"type": "array"
},
"Last_Wh_pro_Stunde": {
"description": "TBD",
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"title": "Last Wh Pro Stunde",
"type": "array"
},
"Netzbezug_Wh_pro_Stunde": {
"description": "The grid energy drawn in watt-hours per hour.",
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"title": "Netzbezug Wh Pro Stunde",
"type": "array"
},
"Netzeinspeisung_Wh_pro_Stunde": {
"description": "The energy fed into the grid in watt-hours per hour.",
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"title": "Netzeinspeisung Wh Pro Stunde",
"type": "array"
},
"Verluste_Pro_Stunde": {
"description": "The losses in watt-hours per hour.",
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"title": "Verluste Pro Stunde",
"type": "array"
},
"akku_soc_pro_stunde": {
"description": "The state of charge of the battery (not the EV) in percentage per hour.",
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"title": "Akku Soc Pro Stunde",
"type": "array"
}
},
"required": [
"Last_Wh_pro_Stunde",
"EAuto_SoC_pro_Stunde",
"Einnahmen_Euro_pro_Stunde",
"Gesamt_Verluste",
"Gesamtbilanz_Euro",
"Gesamteinnahmen_Euro",
"Gesamtkosten_Euro",
"Home_appliance_wh_per_hour",
"Kosten_Euro_pro_Stunde",
"Netzbezug_Wh_pro_Stunde",
"Netzeinspeisung_Wh_pro_Stunde",
"Verluste_Pro_Stunde",
"akku_soc_pro_stunde",
"Electricity_price"
],
"title": "SimulationResult",
"type": "object"
},
"SolarPanelBatteryParameters": {
"additionalProperties": false,
"properties": {
"capacity_wh": {
"description": "An integer representing the capacity of the battery in watt-hours.",
"examples": [
8000
],
"exclusiveMinimum": 0.0,
"title": "Capacity Wh",
"type": "integer"
},
"charging_efficiency": {
"default": 0.88,
"description": "A float representing the charging efficiency of the battery.",
"exclusiveMinimum": 0.0,
"maximum": 1.0,
"title": "Charging Efficiency",
"type": "number"
},
"device_id": {
"description": "ID of battery",
"examples": [
"battery1"
],
"title": "Device Id",
"type": "string"
},
"discharging_efficiency": {
"default": 0.88,
"description": "A float representing the discharge efficiency of the battery.",
"exclusiveMinimum": 0.0,
"maximum": 1.0,
"title": "Discharging Efficiency",
"type": "number"
},
"hours": {
"anyOf": [
{
"exclusiveMinimum": 0.0,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Number of prediction hours. Defaults to global config prediction hours.",
"examples": [
null
],
"title": "Hours"
},
"initial_soc_percentage": {
"default": 0,
"description": "An integer representing the state of charge of the battery at the **start** of the current hour (not the current state).",
"examples": [
42
],
"maximum": 100.0,
"minimum": 0.0,
"title": "Initial Soc Percentage",
"type": "integer"
},
"max_charge_power_w": {
"anyOf": [
{
"exclusiveMinimum": 0.0,
"type": "number"
},
{
"type": "null"
}
],
"default": 5000,
"description": "Maximum charging power in watts.",
"title": "Max Charge Power W"
},
"max_soc_percentage": {
"default": 100,
"description": "An integer representing the maximum state of charge (SOC) of the battery in percentage.",
"maximum": 100.0,
"minimum": 0.0,
"title": "Max Soc Percentage",
"type": "integer"
},
"min_soc_percentage": {
"default": 0,
"description": "An integer representing the minimum state of charge (SOC) of the battery in percentage.",
"examples": [
10
],
"maximum": 100.0,
"minimum": 0.0,
"title": "Min Soc Percentage",
"type": "integer"
}
},
"required": [
"device_id",
"capacity_wh"
],
"title": "SolarPanelBatteryParameters",
"type": "object"
},
"UtilsCommonSettings": {
"description": "Utils Configuration.",
"properties": {},
"title": "UtilsCommonSettings",
"type": "object"
},
"ValidationError": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"title": "Location",
"type": "array"
},
"msg": {
"title": "Message",
"type": "string"
},
"type": {
"title": "Error Type",
"type": "string"
}
},
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError",
"type": "object"
},
"WeatherCommonSettings": {
"description": "Weather Forecast Configuration.",
"properties": {
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Weather provider id of provider to be used.",
"examples": [
"WeatherImport"
],
"title": "Provider"
},
"provider_settings": {
"anyOf": [
{
"$ref": "#/components/schemas/WeatherImportCommonSettings"
},
{
"type": "null"
}
],
"description": "Provider settings",
"examples": [
null
]
}
},
"title": "WeatherCommonSettings",
"type": "object"
},
"WeatherImportCommonSettings": {
"description": "Common settings for weather data import from file or JSON string.",
"properties": {
"import_file_path": {
"anyOf": [
{
"type": "string"
},
{
"format": "path",
"type": "string"
},
{
"type": "null"
}
],
"description": "Path to the file to import weather data from.",
"examples": [
null,
"/path/to/weather_data.json"
],
"title": "Import File Path"
},
"import_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "JSON string, dictionary of weather forecast value lists.",
"examples": [
"{\"weather_temp_air\": [18.3, 17.8, 16.9]}"
],
"title": "Import Json"
}
},
"title": "WeatherImportCommonSettings",
"type": "object"
}
}
},
"info": {
"description": "This project provides a comprehensive solution for simulating and optimizing an energy system based on renewable energy sources. With a focus on photovoltaic (PV) systems, battery storage (batteries), load management (consumer requirements), heat pumps, electric vehicles, and consideration of electricity price data, this system enables forecasting and optimization of energy flow and costs over a specified period.",
"title": "Akkudoktor-EOS",
"version": "0.0.1"
},
"openapi": "3.1.0",
"paths": {
"/gesamtlast": {
"post": {
"description": "Deprecated: Total Load Prediction with adjustment.\n\nEndpoint to handle total load prediction adjusted by latest measured data.\n\nTotal load prediction starts at 00.00.00 today and is provided for 48 hours.\nIf no prediction values are available the missing ones at the start of the series are\nfilled with the first available prediction value.\n\nNote:\n Use '/v1/prediction/list?key=load_mean_adjusted' instead.\n Load energy meter readings to be added to EOS measurement by:\n '/v1/measurement/load-mr/value/by-name' or\n '/v1/measurement/value'",
"operationId": "fastapi_gesamtlast_gesamtlast_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GesamtlastRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"type": "number"
},
"title": "Response Fastapi Gesamtlast Gesamtlast Post",
"type": "array"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Gesamtlast",
"tags": [
"prediction"
]
}
},
"/gesamtlast_simple": {
"get": {
"description": "Deprecated: Total Load Prediction.\n\nEndpoint to handle total load prediction.\n\nTotal load prediction starts at 00.00.00 today and is provided for 48 hours.\nIf no prediction values are available the missing ones at the start of the series are\nfilled with the first available prediction value.\n\nArgs:\n year_energy (float): Yearly energy consumption in Wh.\n\nNote:\n Set LoadAkkudoktor as provider, then update data with\n '/v1/prediction/update'\n and then request data with\n '/v1/prediction/list?key=load_mean' instead.",
"operationId": "fastapi_gesamtlast_simple_gesamtlast_simple_get",
"parameters": [
{
"in": "query",
"name": "year_energy",
"required": true,
"schema": {
"title": "Year Energy",
"type": "number"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"type": "number"
},
"title": "Response Fastapi Gesamtlast Simple Gesamtlast Simple Get",
"type": "array"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Gesamtlast Simple",
"tags": [
"prediction"
]
}
},
"/optimize": {
"post": {
"operationId": "fastapi_optimize_optimize_post",
"parameters": [
{
"description": "Defaults to current hour of the day.",
"in": "query",
"name": "start_hour",
"required": false,
"schema": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Defaults to current hour of the day.",
"title": "Start Hour"
}
},
{
"in": "query",
"name": "ngen",
"required": false,
"schema": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Ngen"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OptimizationParameters"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OptimizeResponse"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Optimize",
"tags": [
"optimize"
]
}
},
"/pvforecast": {
"get": {
"description": "Deprecated: PV Forecast Prediction.\n\nEndpoint to handle PV forecast prediction.\n\nPVForecast starts at 00.00.00 today and is provided for 48 hours.\nIf no forecast values are available the missing ones at the start of the series are\nfilled with the first available forecast value.\n\nNote:\n Set PVForecastAkkudoktor as provider, then update data with\n '/v1/prediction/update'\n and then request data with\n '/v1/prediction/list?key=pvforecast_ac_power' and\n '/v1/prediction/list?key=pvforecastakkudoktor_temp_air' instead.",
"operationId": "fastapi_pvforecast_pvforecast_get",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForecastResponse"
}
}
},
"description": "Successful Response"
}
},
"summary": "Fastapi Pvforecast",
"tags": [
"prediction"
]
}
},
"/strompreis": {
"get": {
"description": "Deprecated: Electricity Market Price Prediction per Wh (\u20ac/Wh).\n\nElectricity prices start at 00.00.00 today and are provided for 48 hours.\nIf no prices are available the missing ones at the start of the series are\nfilled with the first available price.\n\nNote:\n Electricity price charges are added.\n\nNote:\n Set ElecPriceAkkudoktor as provider, then update data with\n '/v1/prediction/update'\n and then request data with\n '/v1/prediction/list?key=elecprice_marketprice_wh' or\n '/v1/prediction/list?key=elecprice_marketprice_kwh' instead.",
"operationId": "fastapi_strompreis_strompreis_get",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"type": "number"
},
"title": "Response Fastapi Strompreis Strompreis Get",
"type": "array"
}
}
},
"description": "Successful Response"
}
},
"summary": "Fastapi Strompreis",
"tags": [
"prediction"
]
}
},
"/v1/config": {
"get": {
"description": "Get the current configuration.\n\nReturns:\n configuration (ConfigEOS): The current configuration.",
"operationId": "fastapi_config_get_v1_config_get",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConfigEOS"
}
}
},
"description": "Successful Response"
}
},
"summary": "Fastapi Config Get",
"tags": [
"config"
]
},
"put": {
"description": "Update the current config with the provided settings.\n\nNote that for any setting value that is None or unset, the configuration will fall back to\nvalues from other sources such as environment variables, the EOS configuration file, or default\nvalues.\n\nArgs:\n settings (SettingsEOS): The settings to write into the current settings.\n\nReturns:\n configuration (ConfigEOS): The current configuration after the write.",
"operationId": "fastapi_config_put_v1_config_put",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SettingsEOS"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConfigEOS"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Config Put",
"tags": [
"config"
]
}
},
"/v1/config/file": {
"put": {
"description": "Save the current configuration to the EOS configuration file.\n\nReturns:\n configuration (ConfigEOS): The current configuration that was saved.",
"operationId": "fastapi_config_file_put_v1_config_file_put",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConfigEOS"
}
}
},
"description": "Successful Response"
}
},
"summary": "Fastapi Config File Put",
"tags": [
"config"
]
}
},
"/v1/config/reset": {
"put": {
"description": "Reset the configuration to the EOS configuration file.\n\nReturns:\n configuration (ConfigEOS): The current configuration after update.",
"operationId": "fastapi_config_update_post_v1_config_reset_put",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConfigEOS"
}
}
},
"description": "Successful Response"
}
},
"summary": "Fastapi Config Update Post",
"tags": [
"config"
]
}
},
"/v1/measurement/data": {
"put": {
"description": "Merge the measurement data given as datetime data into EOS measurements.",
"operationId": "fastapi_measurement_data_put_v1_measurement_data_put",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PydanticDateTimeData"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Measurement Data Put",
"tags": [
"measurement"
]
}
},
"/v1/measurement/dataframe": {
"put": {
"description": "Merge the measurement data given as dataframe into EOS measurements.",
"operationId": "fastapi_measurement_dataframe_put_v1_measurement_dataframe_put",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PydanticDateTimeDataFrame"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Measurement Dataframe Put",
"tags": [
"measurement"
]
}
},
"/v1/measurement/keys": {
"get": {
"description": "Get a list of available measurement keys.",
"operationId": "fastapi_measurement_keys_get_v1_measurement_keys_get",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"type": "string"
},
"title": "Response Fastapi Measurement Keys Get V1 Measurement Keys Get",
"type": "array"
}
}
},
"description": "Successful Response"
}
},
"summary": "Fastapi Measurement Keys Get",
"tags": [
"measurement"
]
}
},
"/v1/measurement/load-mr/series/by-name": {
"get": {
"description": "Get the meter reading of given load name as series.",
"operationId": "fastapi_measurement_load_mr_series_by_name_get_v1_measurement_load_mr_series_by_name_get",
"parameters": [
{
"description": "Load name.",
"in": "query",
"name": "name",
"required": true,
"schema": {
"description": "Load name.",
"title": "Name",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PydanticDateTimeSeries"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Measurement Load Mr Series By Name Get",
"tags": [
"measurement"
]
},
"put": {
"description": "Merge the meter readings series of given load name into EOS measurements at given datetime.",
"operationId": "fastapi_measurement_load_mr_series_by_name_put_v1_measurement_load_mr_series_by_name_put",
"parameters": [
{
"description": "Load name.",
"in": "query",
"name": "name",
"required": true,
"schema": {
"description": "Load name.",
"title": "Name",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PydanticDateTimeSeries"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PydanticDateTimeSeries"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Measurement Load Mr Series By Name Put",
"tags": [
"measurement"
]
}
},
"/v1/measurement/load-mr/value/by-name": {
"put": {
"description": "Merge the meter reading of given load name and value into EOS measurements at given datetime.",
"operationId": "fastapi_measurement_load_mr_value_by_name_put_v1_measurement_load_mr_value_by_name_put",
"parameters": [
{
"description": "Datetime.",
"in": "query",
"name": "datetime",
"required": true,
"schema": {
"description": "Datetime.",
"title": "Datetime",
"type": "string"
}
},
{
"description": "Load name.",
"in": "query",
"name": "name",
"required": true,
"schema": {
"description": "Load name.",
"title": "Name",
"type": "string"
}
},
{
"in": "query",
"name": "value",
"required": true,
"schema": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
],
"title": "Value"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PydanticDateTimeSeries"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Measurement Load Mr Value By Name Put",
"tags": [
"measurement"
]
}
},
"/v1/measurement/series": {
"get": {
"description": "Get the measurements of given key as series.",
"operationId": "fastapi_measurement_series_get_v1_measurement_series_get",
"parameters": [
{
"description": "Prediction key.",
"in": "query",
"name": "key",
"required": true,
"schema": {
"description": "Prediction key.",
"title": "Key",
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PydanticDateTimeSeries"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Measurement Series Get",
"tags": [
"measurement"
]
},
"put": {
"description": "Merge measurement given as series into given key.",
"operationId": "fastapi_measurement_series_put_v1_measurement_series_put",
"parameters": [
{
"description": "Prediction key.",
"in": "query",
"name": "key",
"required": true,
"schema": {
"description": "Prediction key.",
"title": "Key",
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PydanticDateTimeSeries"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PydanticDateTimeSeries"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Measurement Series Put",
"tags": [
"measurement"
]
}
},
"/v1/measurement/value": {
"put": {
"description": "Merge the measurement of given key and value into EOS measurements at given datetime.",
"operationId": "fastapi_measurement_value_put_v1_measurement_value_put",
"parameters": [
{
"description": "Datetime.",
"in": "query",
"name": "datetime",
"required": true,
"schema": {
"description": "Datetime.",
"title": "Datetime",
"type": "string"
}
},
{
"description": "Prediction key.",
"in": "query",
"name": "key",
"required": true,
"schema": {
"description": "Prediction key.",
"title": "Key",
"type": "string"
}
},
{
"in": "query",
"name": "value",
"required": true,
"schema": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
],
"title": "Value"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PydanticDateTimeSeries"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Measurement Value Put",
"tags": [
"measurement"
]
}
},
"/v1/prediction/keys": {
"get": {
"description": "Get a list of available prediction keys.",
"operationId": "fastapi_prediction_keys_get_v1_prediction_keys_get",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"type": "string"
},
"title": "Response Fastapi Prediction Keys Get V1 Prediction Keys Get",
"type": "array"
}
}
},
"description": "Successful Response"
}
},
"summary": "Fastapi Prediction Keys Get",
"tags": [
"prediction"
]
}
},
"/v1/prediction/list": {
"get": {
"description": "Get prediction for given key within given date range as value list.\n\nArgs:\n key (str): Prediction key\n start_datetime (Optional[str]): Starting datetime (inclusive).\n Defaults to start datetime of latest prediction.\n end_datetime (Optional[str]: Ending datetime (exclusive).\n Defaults to end datetime of latest prediction.\n interval (Optional[str]): Time duration for each interval.\n Defaults to 1 hour.",
"operationId": "fastapi_prediction_list_get_v1_prediction_list_get",
"parameters": [
{
"description": "Prediction key.",
"in": "query",
"name": "key",
"required": true,
"schema": {
"description": "Prediction key.",
"title": "Key",
"type": "string"
}
},
{
"description": "Starting datetime (inclusive).",
"in": "query",
"name": "start_datetime",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Starting datetime (inclusive).",
"title": "Start Datetime"
}
},
{
"description": "Ending datetime (exclusive).",
"in": "query",
"name": "end_datetime",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Ending datetime (exclusive).",
"title": "End Datetime"
}
},
{
"description": "Time duration for each interval.",
"in": "query",
"name": "interval",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Time duration for each interval.",
"title": "Interval"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {},
"title": "Response Fastapi Prediction List Get V1 Prediction List Get",
"type": "array"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Prediction List Get",
"tags": [
"prediction"
]
}
},
"/v1/prediction/providers": {
"get": {
"description": "Get a list of available prediction providers.\n\nArgs:\n enabled (bool): Return enabled/disabled providers. If unset, return all providers.",
"operationId": "fastapi_prediction_providers_get_v1_prediction_providers_get",
"parameters": [
{
"in": "query",
"name": "enabled",
"required": false,
"schema": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Enabled"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"type": "string"
},
"title": "Response Fastapi Prediction Providers Get V1 Prediction Providers Get",
"type": "array"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Prediction Providers Get",
"tags": [
"prediction"
]
}
},
"/v1/prediction/series": {
"get": {
"description": "Get prediction for given key within given date range as series.\n\nArgs:\n key (str): Prediction key\n start_datetime (Optional[str]): Starting datetime (inclusive).\n Defaults to start datetime of latest prediction.\n end_datetime (Optional[str]: Ending datetime (exclusive).\n Defaults to end datetime of latest prediction.",
"operationId": "fastapi_prediction_series_get_v1_prediction_series_get",
"parameters": [
{
"description": "Prediction key.",
"in": "query",
"name": "key",
"required": true,
"schema": {
"description": "Prediction key.",
"title": "Key",
"type": "string"
}
},
{
"description": "Starting datetime (inclusive).",
"in": "query",
"name": "start_datetime",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Starting datetime (inclusive).",
"title": "Start Datetime"
}
},
{
"description": "Ending datetime (exclusive).",
"in": "query",
"name": "end_datetime",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Ending datetime (exclusive).",
"title": "End Datetime"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PydanticDateTimeSeries"
}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Prediction Series Get",
"tags": [
"prediction"
]
}
},
"/v1/prediction/update": {
"post": {
"description": "Update predictions for all providers.\n\nArgs:\n force_update: Update data even if it is already cached.\n Defaults to False.\n force_enable: Update data even if provider is disabled.\n Defaults to False.",
"operationId": "fastapi_prediction_update_v1_prediction_update_post",
"parameters": [
{
"in": "query",
"name": "force_update",
"required": false,
"schema": {
"default": false,
"title": "Force Update",
"type": "boolean"
}
},
{
"in": "query",
"name": "force_enable",
"required": false,
"schema": {
"default": false,
"title": "Force Enable",
"type": "boolean"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Prediction Update",
"tags": [
"prediction"
]
}
},
"/v1/prediction/update/{provider_id}": {
"post": {
"description": "Update predictions for given provider ID.\n\nArgs:\n provider_id: ID of provider to update.\n force_update: Update data even if it is already cached.\n Defaults to False.\n force_enable: Update data even if provider is disabled.\n Defaults to False.",
"operationId": "fastapi_prediction_update_provider_v1_prediction_update__provider_id__post",
"parameters": [
{
"in": "path",
"name": "provider_id",
"required": true,
"schema": {
"title": "Provider Id",
"type": "string"
}
},
{
"in": "query",
"name": "force_update",
"required": false,
"schema": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"title": "Force Update"
}
},
{
"in": "query",
"name": "force_enable",
"required": false,
"schema": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"title": "Force Enable"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {}
}
},
"description": "Successful Response"
},
"422": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
},
"description": "Validation Error"
}
},
"summary": "Fastapi Prediction Update Provider",
"tags": [
"prediction"
]
}
},
"/visualization_results.pdf": {
"get": {
"operationId": "get_pdf_visualization_results_pdf_get",
"responses": {
"200": {
"content": {
"application/pdf": {
"schema": {
"type": "string"
}
}
},
"description": "Successful Response"
}
},
"summary": "Get Pdf",
"tags": [
"optimize"
]
}
}
}
}