{
  "openapi": "3.1.0",
  "info": {
    "title": "Akkudoktor-EOS",
    "summary": "Comprehensive solution for simulating and optimizing an energy system based on renewable energy sources",
    "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.\n\n## Currency Information\n\nAll monetary values in this API are expressed in the locally configured currency of the EOS installation. The system is designed to work with any currency (e.g., EUR, SEK, CHF, USD, GBP, etc.). Each installation uses a single, consistent currency throughout all endpoints and responses.\n\nValues are given in whole currency units, not in hundredth subunits: a value of `0.0003` in an installation configured for Euro means 0.0003 EUR/Wh (i.e. 0.30 EUR/kWh), never cents. The same applies to all totals (e.g. `total_costs` of `1.5` = 1.50 EUR).\n\nField names containing cost, price, revenue, tariff, or similar monetary terms (e.g., `total_costs`, `electricity_price_per_wh`, `revenue_per_hour`) represent amounts in the configured currency, without explicit currency designation in the field name to maintain currency-neutrality.\n\n## Deprecated Field Names\n\nThe genetic optimization API fields were renamed from German to English. For backward compatibility the old German field names (e.g. `gesamtlast`, `pv_prognose_wh`, `Gesamtbilanz_Euro`) are still accepted on input and are emitted in responses alongside the English names, marked as deprecated in the schema. They will be removed in a future release \u2014 new clients should use the English field names only.\n",
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version": "v0.3.0.dev2608221553448643"
  },
  "paths": {
    "/v1/admin/cache/clear": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Fastapi Admin Cache Clear Post",
        "description": "Clear the cache.\n\nDeletes all cache files.\n\nReturns:\n    data (dict): The management data after cleanup.",
        "operationId": "fastapi_admin_cache_clear_post_v1_admin_cache_clear_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Fastapi Admin Cache Clear Post V1 Admin Cache Clear Post"
                }
              }
            }
          }
        }
      }
    },
    "/v1/admin/cache/clear-expired": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Fastapi Admin Cache Clear Expired Post",
        "description": "Clear the cache from expired data.\n\nDeletes expired cache files.\n\nReturns:\n    data (dict): The management data after cleanup.",
        "operationId": "fastapi_admin_cache_clear_expired_post_v1_admin_cache_clear_expired_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Fastapi Admin Cache Clear Expired Post V1 Admin Cache Clear Expired Post"
                }
              }
            }
          }
        }
      }
    },
    "/v1/admin/cache/save": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Fastapi Admin Cache Save Post",
        "description": "Save the current cache management data.\n\nReturns:\n    data (dict): The management data that was saved.",
        "operationId": "fastapi_admin_cache_save_post_v1_admin_cache_save_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Fastapi Admin Cache Save Post V1 Admin Cache Save Post"
                }
              }
            }
          }
        }
      }
    },
    "/v1/admin/cache/load": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Fastapi Admin Cache Load Post",
        "description": "Load cache management data.\n\nReturns:\n    data (dict): The management data that was loaded.",
        "operationId": "fastapi_admin_cache_load_post_v1_admin_cache_load_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Fastapi Admin Cache Load Post V1 Admin Cache Load Post"
                }
              }
            }
          }
        }
      }
    },
    "/v1/admin/cache": {
      "get": {
        "tags": [
          "admin"
        ],
        "summary": "Fastapi Admin Cache Get",
        "description": "Current cache management data.\n\nReturns:\n    data (dict): The management data.",
        "operationId": "fastapi_admin_cache_get_v1_admin_cache_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Fastapi Admin Cache Get V1 Admin Cache Get"
                }
              }
            }
          }
        }
      }
    },
    "/v1/admin/database/stats": {
      "get": {
        "tags": [
          "admin"
        ],
        "summary": "Fastapi Admin Database Stats Get",
        "description": "Get statistics from database.\n\nReturns:\n    data (dict): The database statistics",
        "operationId": "fastapi_admin_database_stats_get_v1_admin_database_stats_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Fastapi Admin Database Stats Get V1 Admin Database Stats Get"
                }
              }
            }
          }
        }
      }
    },
    "/v1/admin/database/save": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Fastapi Admin Database Save Post",
        "description": "Save in memory data to database.\n\nReturns:\n    data (dict): The database stats after saving the records.",
        "operationId": "fastapi_admin_database_save_post_v1_admin_database_save_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Fastapi Admin Database Save Post V1 Admin Database Save Post"
                }
              }
            }
          }
        }
      }
    },
    "/v1/admin/database/vacuum": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Fastapi Admin Database Vacuum Post",
        "description": "Remove old records from database.\n\nReturns:\n    data (dict): The database stats after removal of old records.",
        "operationId": "fastapi_admin_database_vacuum_post_v1_admin_database_vacuum_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Fastapi Admin Database Vacuum Post V1 Admin Database Vacuum Post"
                }
              }
            }
          }
        }
      }
    },
    "/v1/admin/server/restart": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Fastapi Admin Server Restart Post",
        "description": "Restart the server.\n\nRestart EOS properly by starting a new instance before exiting the old one.",
        "operationId": "fastapi_admin_server_restart_post_v1_admin_server_restart_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Fastapi Admin Server Restart Post V1 Admin Server Restart Post"
                }
              }
            }
          }
        }
      }
    },
    "/v1/admin/server/shutdown": {
      "post": {
        "tags": [
          "admin"
        ],
        "summary": "Fastapi Admin Server Shutdown Post",
        "description": "Shutdown the server.",
        "operationId": "fastapi_admin_server_shutdown_post_v1_admin_server_shutdown_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "type": "object",
                  "title": "Response Fastapi Admin Server Shutdown Post V1 Admin Server Shutdown Post"
                }
              }
            }
          }
        }
      }
    },
    "/v1/health": {
      "get": {
        "tags": [
          "health"
        ],
        "summary": "Fastapi Health Get",
        "description": "Health check endpoint to verify that the EOS server is alive.",
        "operationId": "fastapi_health_get_v1_health_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/v1/config/reset": {
      "post": {
        "tags": [
          "config"
        ],
        "summary": "Fastapi Config Reset Post",
        "description": "Reset the configuration to the EOS configuration file.\n\nReturns:\n    configuration (ConfigEOS): The current configuration after update.",
        "operationId": "fastapi_config_reset_post_v1_config_reset_post",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigEOS"
                }
              }
            }
          }
        }
      }
    },
    "/v1/config/backup": {
      "get": {
        "tags": [
          "config"
        ],
        "summary": "Fastapi Config Backup Get",
        "description": "Get the EOS configuration backup identifiers and backup metadata.\n\nReturns:\n    dict[str, dict[str, Any]]: Mapping of backup identifiers to metadata.",
        "operationId": "fastapi_config_backup_get_v1_config_backup_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "additionalProperties": true,
                    "type": "object"
                  },
                  "type": "object",
                  "title": "Response Fastapi Config Backup Get V1 Config Backup Get"
                }
              }
            }
          }
        }
      }
    },
    "/v1/config/revert": {
      "put": {
        "tags": [
          "config"
        ],
        "summary": "Fastapi Config Revert Put",
        "description": "Revert the configuration to a EOS configuration backup.\n\nReturns:\n    configuration (ConfigEOS): The current configuration after revert.",
        "operationId": "fastapi_config_revert_put_v1_config_revert_put",
        "parameters": [
          {
            "name": "backup_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "EOS configuration backup ID.",
              "title": "Backup Id"
            },
            "description": "EOS configuration backup ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigEOS"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/config/file": {
      "put": {
        "tags": [
          "config"
        ],
        "summary": "Fastapi 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": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigEOS"
                }
              }
            }
          }
        }
      }
    },
    "/v1/config": {
      "get": {
        "tags": [
          "config"
        ],
        "summary": "Fastapi Config Get",
        "description": "Get the current configuration.\n\nReturns:\n    configuration (ConfigEOS): The current configuration.",
        "operationId": "fastapi_config_get_v1_config_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigEOS"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "config"
        ],
        "summary": "Fastapi 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": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigEOS"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/config/{path}": {
      "put": {
        "tags": [
          "config"
        ],
        "summary": "Fastapi Config Put Key",
        "description": "Update a nested key or index in the config model.\n\nArgs:\n    path (str): The nested path to the key (e.g., \"general/latitude\" or \"optimize/nested_list/0\").\n    value (Any): The new value to assign to the key or index at path.\n\nReturns:\n    configuration (ConfigEOS): The current configuration after the update.",
        "operationId": "fastapi_config_put_key_v1_config__path__put",
        "parameters": [
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The nested path to the configuration key (e.g., general/latitude).",
              "title": "Path"
            },
            "description": "The nested path to the configuration key (e.g., general/latitude)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {},
                  {
                    "type": "null"
                  }
                ],
                "description": "The value to assign to the specified configuration path (can be None).",
                "title": "Value"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigEOS"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "config"
        ],
        "summary": "Fastapi Config Get Key",
        "description": "Get the value of a nested key or index in the config model.\n\nArgs:\n    path (str): The nested path to the key (e.g., \"general/latitude\" or \"optimize/nested_list/0\").\n\nReturns:\n    value (Any): The value of the selected nested key.",
        "operationId": "fastapi_config_get_key_v1_config__path__get",
        "parameters": [
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The nested path to the configuration key (e.g., general/latitude).",
              "title": "Path"
            },
            "description": "The nested path to the configuration key (e.g., general/latitude)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/logging/log": {
      "get": {
        "tags": [
          "logging"
        ],
        "summary": "Fastapi Logging Get Log",
        "description": "Get structured log entries from the EOS log file.\n\nFilters and returns log entries based on the specified query parameters. The log\nfile is expected to contain newline-delimited JSON entries.\n\nArgs:\n    limit (int): Maximum number of entries to return.\n    level (Optional[str]): Filter logs by severity level (e.g., DEBUG, INFO).\n    contains (Optional[str]): Return only logs that include this string in the message.\n    regex (Optional[str]): Return logs that match this regular expression in the message.\n    from_time (Optional[str]): ISO 8601 timestamp to filter logs not older than this.\n    to_time (Optional[str]): ISO 8601 timestamp to filter logs not newer than this.\n    tail (bool): If True, fetch the most recent log entries (like `tail`).\n\nReturns:\n    JSONResponse: A JSON list of log entries.",
        "operationId": "fastapi_logging_get_log_v1_logging_log_get",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Maximum number of log entries to return.",
              "default": 100,
              "title": "Limit"
            },
            "description": "Maximum number of log entries to return."
          },
          {
            "name": "level",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter by log level (e.g., INFO, ERROR).",
              "title": "Level"
            },
            "description": "Filter by log level (e.g., INFO, ERROR)."
          },
          {
            "name": "contains",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter logs containing this substring.",
              "title": "Contains"
            },
            "description": "Filter logs containing this substring."
          },
          {
            "name": "regex",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter logs by matching regex in message.",
              "title": "Regex"
            },
            "description": "Filter logs by matching regex in message."
          },
          {
            "name": "from_time",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Start time (ISO format) for filtering logs.",
              "title": "From Time"
            },
            "description": "Start time (ISO format) for filtering logs."
          },
          {
            "name": "to_time",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "End time (ISO format) for filtering logs.",
              "title": "To Time"
            },
            "description": "End time (ISO format) for filtering logs."
          },
          {
            "name": "tail",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "If True, returns the most recent lines (tail mode).",
              "default": false,
              "title": "Tail"
            },
            "description": "If True, returns the most recent lines (tail mode)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/resource/status": {
      "get": {
        "tags": [
          "resource"
        ],
        "summary": "Fastapi Devices Status Get",
        "description": "Get the latest status of a resource/ device.\n\nReturn:\n    latest_status: The latest status of a resource/ device.",
        "operationId": "fastapi_devices_status_get_v1_resource_status_get",
        "parameters": [
          {
            "name": "resource_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Resource ID.",
              "title": "Resource Id"
            },
            "description": "Resource ID."
          },
          {
            "name": "actuator_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Actuator ID.",
              "title": "Actuator Id"
            },
            "description": "Actuator ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/PowerMeasurement"
                    },
                    {
                      "$ref": "#/components/schemas/EnergyMeasurement"
                    },
                    {
                      "$ref": "#/components/schemas/PPBCPowerProfileStatus"
                    },
                    {
                      "$ref": "#/components/schemas/OMBCStatus"
                    },
                    {
                      "$ref": "#/components/schemas/FRBCActuatorStatus"
                    },
                    {
                      "$ref": "#/components/schemas/FRBCEnergyStatus"
                    },
                    {
                      "$ref": "#/components/schemas/FRBCStorageStatus"
                    },
                    {
                      "$ref": "#/components/schemas/FRBCTimerStatus"
                    },
                    {
                      "$ref": "#/components/schemas/DDBCActuatorStatus"
                    }
                  ],
                  "discriminator": {
                    "propertyName": "type",
                    "mapping": {
                      "PowerMeasurement": "#/components/schemas/PowerMeasurement",
                      "EnergyMeasurement": "#/components/schemas/EnergyMeasurement",
                      "PPBCPowerProfileStatus": "#/components/schemas/PPBCPowerProfileStatus",
                      "OMBCStatus": "#/components/schemas/OMBCStatus",
                      "FRBCActuatorStatus": "#/components/schemas/FRBCActuatorStatus",
                      "FRBCEnergyStatus": "#/components/schemas/FRBCEnergyStatus",
                      "FRBCStorageStatus": "#/components/schemas/FRBCStorageStatus",
                      "FRBCTimerStatus": "#/components/schemas/FRBCTimerStatus",
                      "DDBCActuatorStatus": "#/components/schemas/DDBCActuatorStatus"
                    }
                  },
                  "title": "Response Fastapi Devices Status Get V1 Resource Status Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "resource"
        ],
        "summary": "Fastapi Devices Status Put",
        "description": "Update the status of a resource/ device.\n\nReturn:\n    latest_status: The latest status of a resource/ device.",
        "operationId": "fastapi_devices_status_put_v1_resource_status_put",
        "parameters": [
          {
            "name": "resource_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Resource ID.",
              "title": "Resource Id"
            },
            "description": "Resource ID."
          },
          {
            "name": "actuator_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Actuator ID.",
              "title": "Actuator Id"
            },
            "description": "Actuator ID."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/PowerMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/EnergyMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/PPBCPowerProfileStatus"
                  },
                  {
                    "$ref": "#/components/schemas/OMBCStatus"
                  },
                  {
                    "$ref": "#/components/schemas/FRBCActuatorStatus"
                  },
                  {
                    "$ref": "#/components/schemas/FRBCEnergyStatus"
                  },
                  {
                    "$ref": "#/components/schemas/FRBCStorageStatus"
                  },
                  {
                    "$ref": "#/components/schemas/FRBCTimerStatus"
                  },
                  {
                    "$ref": "#/components/schemas/DDBCActuatorStatus"
                  }
                ],
                "description": "Resource Status.",
                "title": "Status"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/PowerMeasurement"
                    },
                    {
                      "$ref": "#/components/schemas/EnergyMeasurement"
                    },
                    {
                      "$ref": "#/components/schemas/PPBCPowerProfileStatus"
                    },
                    {
                      "$ref": "#/components/schemas/OMBCStatus"
                    },
                    {
                      "$ref": "#/components/schemas/FRBCActuatorStatus"
                    },
                    {
                      "$ref": "#/components/schemas/FRBCEnergyStatus"
                    },
                    {
                      "$ref": "#/components/schemas/FRBCStorageStatus"
                    },
                    {
                      "$ref": "#/components/schemas/FRBCTimerStatus"
                    },
                    {
                      "$ref": "#/components/schemas/DDBCActuatorStatus"
                    }
                  ],
                  "discriminator": {
                    "propertyName": "type",
                    "mapping": {
                      "PowerMeasurement": "#/components/schemas/PowerMeasurement",
                      "EnergyMeasurement": "#/components/schemas/EnergyMeasurement",
                      "PPBCPowerProfileStatus": "#/components/schemas/PPBCPowerProfileStatus",
                      "OMBCStatus": "#/components/schemas/OMBCStatus",
                      "FRBCActuatorStatus": "#/components/schemas/FRBCActuatorStatus",
                      "FRBCEnergyStatus": "#/components/schemas/FRBCEnergyStatus",
                      "FRBCStorageStatus": "#/components/schemas/FRBCStorageStatus",
                      "FRBCTimerStatus": "#/components/schemas/FRBCTimerStatus",
                      "DDBCActuatorStatus": "#/components/schemas/DDBCActuatorStatus"
                    }
                  },
                  "title": "Response Fastapi Devices Status Put V1 Resource Status Put"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/measurement/keys": {
      "get": {
        "tags": [
          "measurement"
        ],
        "summary": "Fastapi Measurement Keys Get",
        "description": "Get a list of available measurement keys.",
        "operationId": "fastapi_measurement_keys_get_v1_measurement_keys_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "title": "Response Fastapi Measurement Keys Get V1 Measurement Keys Get"
                }
              }
            }
          }
        }
      }
    },
    "/v1/measurement/series": {
      "get": {
        "tags": [
          "measurement"
        ],
        "summary": "Fastapi Measurement Series Get",
        "description": "Get measurements for given key within given date range as series.\n\nArgs:\n    key (str): Measurement key\n    start_datetime (Optional[str]): Starting datetime (inclusive).\n        Defaults to datetime of first measurement.\n    end_datetime (Optional[str]: Ending datetime (exclusive).\n        Defaults to datetime after latest measurement.\n    interval (Optional[str]): Time duration for each interval.\n        Defaults to 1 hour.\n    fill_method (str): Method to handle missing values during resampling.\n\n        - 'linear': Linearly interpolate missing values (for numeric data only).\n        - 'time': Interpolate missing values (for numeric data only).\n        - 'ffill': Forward fill missing values.\n        - 'bfill': Backward fill missing values.\n        - Defaults to 'linear' for numeric values, otherwise 'ffill'.\n\n    resample_method (str):\n        Method used to aggregate values within a resampling interval.\n\n        - \"first\": Use the first value in each interval.\n        - \"mean\": Compute the arithmetic mean of all samples in each interval.\n        - \"interval_mean\": Compute the time-weighted mean assuming each\n            value remains valid until the next timestamp (piecewise-constant\n            signal).\n\n    dropna: (bool): Whether to drop NAN/ None values before processing.\n        Defaults to True.\n    boundary (Literal[\"strict\", \"context\"]): resampling boundary\n        \"strict\"  \u2192 only values inside [start, end)\n        \"context\" \u2192 include one value before and after for proper resampling\n    align_to_interval (bool): When True, snap the resample origin to the nearest\n        UTC epoch-aligned boundary of ``interval`` before resampling.  This ensures\n        that bucket timestamps always fall on wall-clock-round times regardless of\n        when ``start_datetime`` falls:\n\n        - 15-minute interval \u2192 buckets on :00, :15, :30, :45\n        - 1-hour interval    \u2192 buckets on the hour\n\n        When False (default), the origin is ``query_start`` (or ``\"start_day\"`` when\n        no start is given), preserving the existing behaviour where buckets are\n        aligned to the query window rather than the clock.\n\n        Set to True when storing compacted records back to the database so that the\n        resulting timestamps are predictable and human-readable.  Leave False for\n        forecast or reporting queries where alignment to the exact query window is\n        more important than clock-round boundaries.\n    processing (SeriesProcessing):\n        Processing mode for the returned series.\n\n        - ``SeriesProcessing.RESAMPLED``: Return a processed series.\n            Measurements are first filtered by ``start_datetime``,\n            ``end_datetime``, and ``dropna``, then resampled according to\n            ``interval`` and ``resample_method``, and finally missing values\n            are filled using ``fill_method``.\n        - ``SeriesProcessing.RAW``: Return the original measurement series.\n            Measurements are filtered by ``start_datetime``,\n            ``end_datetime``, and ``dropna`` only. No resampling or filling is\n            performed, and ``interval``, ``fill_method``,\n            ``resample_method``, ``boundary``, and\n            ``align_to_interval`` are ignored.\n\n        Defaults to ``SeriesProcessing.RAW``.\n\nReturns:\n    Series",
        "operationId": "fastapi_measurement_series_get_v1_measurement_series_get",
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Measurement key.",
              "title": "Key"
            },
            "description": "Measurement key."
          },
          {
            "name": "start_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Starting datetime (inclusive).",
              "title": "Start Datetime"
            },
            "description": "Starting datetime (inclusive)."
          },
          {
            "name": "end_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Ending datetime (exclusive).",
              "title": "End Datetime"
            },
            "description": "Ending datetime (exclusive)."
          },
          {
            "name": "interval",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Time duration for each interval. Defaults to 1 hour.",
              "title": "Interval"
            },
            "description": "Time duration for each interval. Defaults to 1 hour."
          },
          {
            "name": "fill_method",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "linear",
                    "time",
                    "ffill",
                    "bfill"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Method to handle missing values during resampling.",
              "title": "Fill Method"
            },
            "description": "Method to handle missing values during resampling."
          },
          {
            "name": "resample_method",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "first",
                "mean",
                "interval_mean"
              ],
              "type": "string",
              "description": "Method used to aggregate values within a resampling interval.",
              "default": "mean",
              "title": "Resample Method"
            },
            "description": "Method used to aggregate values within a resampling interval."
          },
          {
            "name": "dropna",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Drop NAN/ None values before processing.",
              "default": true,
              "title": "Dropna"
            },
            "description": "Drop NAN/ None values before processing."
          },
          {
            "name": "boundary",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "strict",
                "context"
              ],
              "type": "string",
              "description": "Resampling boundary mode.",
              "default": "context",
              "title": "Boundary"
            },
            "description": "Resampling boundary mode."
          },
          {
            "name": "align_to_interval",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Snap resample origin to the nearest UTC epoch-aligned boundary of interval.",
              "default": false,
              "title": "Align To Interval"
            },
            "description": "Snap resample origin to the nearest UTC epoch-aligned boundary of interval."
          },
          {
            "name": "processing",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/SeriesProcessing",
              "description": "Processing mode. 'raw' returns original measurement data without resampling or filling.",
              "default": "raw"
            },
            "description": "Processing mode. 'raw' returns original measurement data without resampling or filling."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PydanticDateTimeSeries"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "measurement"
        ],
        "summary": "Fastapi Measurement Series Put",
        "description": "Merge measurement given as series into given key.",
        "operationId": "fastapi_measurement_series_put_v1_measurement_series_put",
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Measurement key.",
              "title": "Key"
            },
            "description": "Measurement key."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PydanticDateTimeSeries"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PydanticDateTimeSeries"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/measurement/value": {
      "put": {
        "tags": [
          "measurement"
        ],
        "summary": "Fastapi 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": [
          {
            "name": "datetime",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Datetime.",
              "title": "Datetime"
            },
            "description": "Datetime."
          },
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Measurement key.",
              "title": "Key"
            },
            "description": "Measurement key."
          },
          {
            "name": "value",
            "in": "query",
            "required": true,
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Value"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PydanticDateTimeSeries"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/measurement/dataframe": {
      "put": {
        "tags": [
          "measurement"
        ],
        "summary": "Fastapi 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": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/measurement/data": {
      "put": {
        "tags": [
          "measurement"
        ],
        "summary": "Fastapi 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": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/measurement/range": {
      "delete": {
        "tags": [
          "measurement"
        ],
        "summary": "Fastapi Measurement Range Delete",
        "description": "Delete measurement values for a key within a datetime range.",
        "operationId": "fastapi_measurement_range_delete_v1_measurement_range_delete",
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Measurement key.",
              "title": "Key"
            },
            "description": "Measurement key."
          },
          {
            "name": "start_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Start datetime.",
              "title": "Start Datetime"
            },
            "description": "Start datetime."
          },
          {
            "name": "end_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "End datetime.",
              "title": "End Datetime"
            },
            "description": "End datetime."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PydanticDateTimeSeries"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prediction/providers": {
      "get": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi 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": [
          {
            "name": "enabled",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Enabled"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "title": "Response Fastapi Prediction Providers Get V1 Prediction Providers Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prediction/keys": {
      "get": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Prediction Keys Get",
        "description": "Get a list of available prediction keys.",
        "operationId": "fastapi_prediction_keys_get_v1_prediction_keys_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "title": "Response Fastapi Prediction Keys Get V1 Prediction Keys Get"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prediction/series": {
      "get": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi 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.\n    interval (Optional[str]): Time duration for each interval.\n        Defaults to 1 hour.\n    fill_method (str): Method to handle missing values during resampling.\n\n        - 'linear': Linearly interpolate missing values (for numeric data only).\n        - 'time': Interpolate missing values (for numeric data only).\n        - 'ffill': Forward fill missing values.\n        - 'bfill': Backward fill missing values.\n        - Defaults to 'linear' for numeric values, otherwise 'ffill'.\n\n    resample_method (str):\n        Method used to aggregate values within a resampling interval.\n\n        - \"first\": Use the first value in each interval.\n        - \"mean\": Compute the arithmetic mean of all samples in each interval.\n        - \"interval_mean\": Compute the time-weighted mean assuming each\n            value remains valid until the next timestamp (piecewise-constant\n            signal).\n\n    dropna: (bool): Whether to drop NAN/ None values before processing.\n        Defaults to True.\n    boundary (Literal[\"strict\", \"context\"]): resampling boundary\n        \"strict\"  \u2192 only values inside [start, end)\n        \"context\" \u2192 include one value before and after for proper resampling\n    align_to_interval (bool): When True, snap the resample origin to the nearest\n        UTC epoch-aligned boundary of ``interval`` before resampling.  This ensures\n        that bucket timestamps always fall on wall-clock-round times regardless of\n        when ``start_datetime`` falls:\n\n        - 15-minute interval \u2192 buckets on :00, :15, :30, :45\n        - 1-hour interval    \u2192 buckets on the hour\n\n        When False (default), the origin is ``query_start`` (or ``\"start_day\"`` when\n        no start is given), preserving the existing behaviour where buckets are\n        aligned to the query window rather than the clock.\n\n        Set to True when storing compacted records back to the database so that the\n        resulting timestamps are predictable and human-readable.  Leave False for\n        forecast or reporting queries where alignment to the exact query window is\n        more important than clock-round boundaries.\n    processing (SeriesProcessing):\n        Processing mode for the returned series.\n\n        - ``SeriesProcessing.RESAMPLED``: Return a processed series.\n            Measurements are first filtered by ``start_datetime``,\n            ``end_datetime``, and ``dropna``, then resampled according to\n            ``interval`` and ``resample_method``, and finally missing values\n            are filled using ``fill_method``.\n        - ``SeriesProcessing.RAW``: Return the original measurement series.\n            Measurements are filtered by ``start_datetime``,\n            ``end_datetime``, and ``dropna`` only. No resampling or filling is\n            performed, and ``interval``, ``fill_method``,\n            ``resample_method``, ``boundary``, and\n            ``align_to_interval`` are ignored.\n\n        Defaults to ``SeriesProcessing.RAW``.\n\nReturns:\n    Array",
        "operationId": "fastapi_prediction_series_get_v1_prediction_series_get",
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Prediction key.",
              "title": "Key"
            },
            "description": "Prediction key."
          },
          {
            "name": "start_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Starting datetime (inclusive).",
              "title": "Start Datetime"
            },
            "description": "Starting datetime (inclusive)."
          },
          {
            "name": "end_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Ending datetime (exclusive).",
              "title": "End Datetime"
            },
            "description": "Ending datetime (exclusive)."
          },
          {
            "name": "interval",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Time duration for each interval. Defaults to 1 hour.",
              "title": "Interval"
            },
            "description": "Time duration for each interval. Defaults to 1 hour."
          },
          {
            "name": "fill_method",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "linear",
                    "time",
                    "ffill",
                    "bfill"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Method to handle missing values during resampling.",
              "title": "Fill Method"
            },
            "description": "Method to handle missing values during resampling."
          },
          {
            "name": "resample_method",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "first",
                "mean",
                "interval_mean"
              ],
              "type": "string",
              "description": "Method used to aggregate values within a resampling interval.",
              "default": "mean",
              "title": "Resample Method"
            },
            "description": "Method used to aggregate values within a resampling interval."
          },
          {
            "name": "dropna",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Drop NAN/ None values before processing.",
              "default": true,
              "title": "Dropna"
            },
            "description": "Drop NAN/ None values before processing."
          },
          {
            "name": "boundary",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "strict",
                "context"
              ],
              "type": "string",
              "description": "Resampling boundary mode.",
              "default": "context",
              "title": "Boundary"
            },
            "description": "Resampling boundary mode."
          },
          {
            "name": "align_to_interval",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Snap resample origin to the nearest UTC epoch-aligned boundary of interval.",
              "default": false,
              "title": "Align To Interval"
            },
            "description": "Snap resample origin to the nearest UTC epoch-aligned boundary of interval."
          },
          {
            "name": "processing",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/SeriesProcessing",
              "description": "Processing mode. 'raw' returns original measurement data without resampling or filling.",
              "default": "raw"
            },
            "description": "Processing mode. 'raw' returns original measurement data without resampling or filling."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PydanticDateTimeSeries"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prediction/dataframe": {
      "get": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Prediction Dataframe Get",
        "description": "Get prediction for given keys within given date range as dataframe.\n\nArgs:\n    key (list[str]): Prediction keys\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.\n    fill_method (str): Method to handle missing values during resampling.\n\n        - 'linear': Linearly interpolate missing values (for numeric data only).\n        - 'time': Interpolate missing values (for numeric data only).\n        - 'ffill': Forward fill missing values.\n        - 'bfill': Backward fill missing values.\n        - Defaults to 'linear' for numeric values, otherwise 'ffill'.\n\n    resample_method (str):\n        Method used to aggregate values within a resampling interval.\n\n        - \"first\": Use the first value in each interval.\n        - \"mean\": Compute the arithmetic mean of all samples in each interval.\n        - \"interval_mean\": Compute the time-weighted mean assuming each\n            value remains valid until the next timestamp (piecewise-constant\n            signal).\n\n    dropna: (bool): Whether to drop NAN/ None values before processing.\n        Defaults to True.\n    boundary (Literal[\"strict\", \"context\"]): resampling boundary\n        \"strict\"  \u2192 only values inside [start, end)\n        \"context\" \u2192 include one value before and after for proper resampling\n    align_to_interval (bool): When True, snap the resample origin to the nearest\n        UTC epoch-aligned boundary of ``interval`` before resampling.  This ensures\n        that bucket timestamps always fall on wall-clock-round times regardless of\n        when ``start_datetime`` falls:\n\n        - 15-minute interval \u2192 buckets on :00, :15, :30, :45\n        - 1-hour interval    \u2192 buckets on the hour\n\n        When False (default), the origin is ``query_start`` (or ``\"start_day\"`` when\n        no start is given), preserving the existing behaviour where buckets are\n        aligned to the query window rather than the clock.\n\n        Set to True when storing compacted records back to the database so that the\n        resulting timestamps are predictable and human-readable.  Leave False for\n        forecast or reporting queries where alignment to the exact query window is\n        more important than clock-round boundaries.",
        "operationId": "fastapi_prediction_dataframe_get_v1_prediction_dataframe_get",
        "parameters": [
          {
            "name": "keys",
            "in": "query",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Prediction keys.",
              "title": "Keys"
            },
            "description": "Prediction keys."
          },
          {
            "name": "start_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Starting datetime (inclusive).",
              "title": "Start Datetime"
            },
            "description": "Starting datetime (inclusive)."
          },
          {
            "name": "end_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Ending datetime (exclusive).",
              "title": "End Datetime"
            },
            "description": "Ending datetime (exclusive)."
          },
          {
            "name": "interval",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Time duration for each interval. Defaults to 1 hour.",
              "title": "Interval"
            },
            "description": "Time duration for each interval. Defaults to 1 hour."
          },
          {
            "name": "fill_method",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "linear",
                    "time",
                    "ffill",
                    "bfill"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Method to handle missing values during resampling.",
              "title": "Fill Method"
            },
            "description": "Method to handle missing values during resampling."
          },
          {
            "name": "resample_method",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "first",
                "mean",
                "interval_mean"
              ],
              "type": "string",
              "description": "Method used to aggregate values within a resampling interval.",
              "default": "mean",
              "title": "Resample Method"
            },
            "description": "Method used to aggregate values within a resampling interval."
          },
          {
            "name": "dropna",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Drop NAN/ None values before processing.",
              "default": true,
              "title": "Dropna"
            },
            "description": "Drop NAN/ None values before processing."
          },
          {
            "name": "boundary",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "strict",
                "context"
              ],
              "type": "string",
              "description": "Resampling boundary mode.",
              "default": "context",
              "title": "Boundary"
            },
            "description": "Resampling boundary mode."
          },
          {
            "name": "align_to_interval",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Snap resample origin to the nearest UTC epoch-aligned boundary of interval.",
              "default": false,
              "title": "Align To Interval"
            },
            "description": "Snap resample origin to the nearest UTC epoch-aligned boundary of interval."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PydanticDateTimeDataFrame"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prediction/list": {
      "get": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi 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.\n    fill_method (str): Method to handle missing values during resampling.\n\n        - 'linear': Linearly interpolate missing values (for numeric data only).\n        - 'time': Interpolate missing values (for numeric data only).\n        - 'ffill': Forward fill missing values.\n        - 'bfill': Backward fill missing values.\n        - Defaults to 'linear' for numeric values, otherwise 'ffill'.\n\n    resample_method (str):\n        Method used to aggregate values within a resampling interval.\n\n        - \"first\": Use the first value in each interval.\n        - \"mean\": Compute the arithmetic mean of all samples in each interval.\n        - \"interval_mean\": Compute the time-weighted mean assuming each\n            value remains valid until the next timestamp (piecewise-constant\n            signal).\n\n    dropna: (bool): Whether to drop NAN/ None values before processing.\n        Defaults to True.\n    boundary (Literal[\"strict\", \"context\"]): resampling boundary\n        \"strict\"  \u2192 only values inside [start, end)\n        \"context\" \u2192 include one value before and after for proper resampling\n    align_to_interval (bool): When True, snap the resample origin to the nearest\n        UTC epoch-aligned boundary of ``interval`` before resampling.  This ensures\n        that bucket timestamps always fall on wall-clock-round times regardless of\n        when ``start_datetime`` falls:\n\n        - 15-minute interval \u2192 buckets on :00, :15, :30, :45\n        - 1-hour interval    \u2192 buckets on the hour\n\n        When False (default), the origin is ``query_start`` (or ``\"start_day\"`` when\n        no start is given), preserving the existing behaviour where buckets are\n        aligned to the query window rather than the clock.\n\n        Set to True when storing compacted records back to the database so that the\n        resulting timestamps are predictable and human-readable.  Leave False for\n        forecast or reporting queries where alignment to the exact query window is\n        more important than clock-round boundaries.",
        "operationId": "fastapi_prediction_list_get_v1_prediction_list_get",
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Prediction key.",
              "title": "Key"
            },
            "description": "Prediction key."
          },
          {
            "name": "start_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Starting datetime (inclusive).",
              "title": "Start Datetime"
            },
            "description": "Starting datetime (inclusive)."
          },
          {
            "name": "end_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Ending datetime (exclusive).",
              "title": "End Datetime"
            },
            "description": "Ending datetime (exclusive)."
          },
          {
            "name": "interval",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Time duration for each interval. Defaults to 1 hour.",
              "title": "Interval"
            },
            "description": "Time duration for each interval. Defaults to 1 hour."
          },
          {
            "name": "fill_method",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "linear",
                    "time",
                    "ffill",
                    "bfill"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Method to handle missing values during resampling.",
              "title": "Fill Method"
            },
            "description": "Method to handle missing values during resampling."
          },
          {
            "name": "resample_method",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "first",
                "mean",
                "interval_mean"
              ],
              "type": "string",
              "description": "Method used to aggregate values within a resampling interval.",
              "default": "mean",
              "title": "Resample Method"
            },
            "description": "Method used to aggregate values within a resampling interval."
          },
          {
            "name": "dropna",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Drop NAN/ None values before processing.",
              "default": true,
              "title": "Dropna"
            },
            "description": "Drop NAN/ None values before processing."
          },
          {
            "name": "boundary",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "strict",
                "context"
              ],
              "type": "string",
              "description": "Resampling boundary mode.",
              "default": "context",
              "title": "Boundary"
            },
            "description": "Resampling boundary mode."
          },
          {
            "name": "align_to_interval",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Snap resample origin to the nearest UTC epoch-aligned boundary of interval.",
              "default": false,
              "title": "Align To Interval"
            },
            "description": "Snap resample origin to the nearest UTC epoch-aligned boundary of interval."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {},
                  "title": "Response Fastapi Prediction List Get V1 Prediction List Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prediction/import/{provider_id}": {
      "put": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Prediction Import Provider",
        "description": "Import prediction for given provider ID.\n\nArgs:\n    provider_id: ID of provider to update.\n    data: Prediction data.\n    force_enable: Update data even if provider is disabled.\n        Defaults to False.",
        "operationId": "fastapi_prediction_import_provider_v1_prediction_import__provider_id__put",
        "parameters": [
          {
            "name": "provider_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Provider ID.",
              "title": "Provider Id"
            },
            "description": "Provider ID."
          },
          {
            "name": "force_enable",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Force Enable"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/PydanticDateTimeDataFrame"
                  },
                  {
                    "$ref": "#/components/schemas/PydanticDateTimeData"
                  },
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "null"
                  }
                ],
                "title": "Data"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prediction/update": {
      "post": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Prediction Update",
        "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": [
          {
            "name": "force_update",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": false,
              "title": "Force Update"
            }
          },
          {
            "name": "force_enable",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": false,
              "title": "Force Enable"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prediction/update/{provider_id}": {
      "post": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Prediction Update Provider",
        "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": [
          {
            "name": "provider_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Provider Id"
            }
          },
          {
            "name": "force_update",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": false,
              "title": "Force Update"
            }
          },
          {
            "name": "force_enable",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": false,
              "title": "Force Enable"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prediction/range": {
      "delete": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Prediction Range Delete",
        "description": "Delete prediction values for a key within a datetime range.",
        "operationId": "fastapi_prediction_range_delete_v1_prediction_range_delete",
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Prediction key.",
              "title": "Key"
            },
            "description": "Prediction key."
          },
          {
            "name": "start_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Start datetime.",
              "title": "Start Datetime"
            },
            "description": "Start datetime."
          },
          {
            "name": "end_datetime",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "End datetime.",
              "title": "End Datetime"
            },
            "description": "End datetime."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PydanticDateTimeSeries"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prediction/pvforecast/pvlib/modules": {
      "get": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Prediction Pvforecast Modules Get",
        "description": "Get module names supported by PVForecast PVLib provider.",
        "operationId": "fastapi_prediction_pvforecast_modules_get_v1_prediction_pvforecast_pvlib_modules_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "title": "Response Fastapi Prediction Pvforecast Modules Get V1 Prediction Pvforecast Pvlib Modules Get"
                }
              }
            }
          }
        }
      }
    },
    "/v1/prediction/pvforecast/pvlib/inverters": {
      "get": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Prediction Pvforecast Inverters Get",
        "description": "Get inverter names supported by PVForecast PVLib provider.",
        "operationId": "fastapi_prediction_pvforecast_inverters_get_v1_prediction_pvforecast_pvlib_inverters_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array",
                  "title": "Response Fastapi Prediction Pvforecast Inverters Get V1 Prediction Pvforecast Pvlib Inverters Get"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy-management/optimization/solution": {
      "get": {
        "tags": [
          "energy-management"
        ],
        "summary": "Fastapi Energy Management Optimization Solution Get",
        "description": "Get the latest solution of the optimization.",
        "operationId": "fastapi_energy_management_optimization_solution_get_v1_energy_management_optimization_solution_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OptimizationSolution"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy-management/optimization/solution/{algorithm}": {
      "get": {
        "tags": [
          "energy-management"
        ],
        "summary": "Fastapi Energy Management Optimization Solution Algorithm Get",
        "description": "Get the latest algorithm specific solution of the optimization.\n\nArgs:\n    algorithm: Optimization algorithm",
        "operationId": "fastapi_energy_management_optimization_solution_algorithm_get_v1_energy_management_optimization_solution__algorithm__get",
        "parameters": [
          {
            "name": "algorithm",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OptimizationAlgorithm"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/GeneticSolution"
                    },
                    {
                      "$ref": "#/components/schemas/Genetic0Solution"
                    }
                  ],
                  "title": "Response Fastapi Energy Management Optimization Solution Algorithm Get V1 Energy Management Optimization Solution  Algorithm  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/v1/energy-management/plan": {
      "get": {
        "tags": [
          "energy-management"
        ],
        "summary": "Fastapi Energy Management Plan Get",
        "description": "Get the latest energy management plan.",
        "operationId": "fastapi_energy_management_plan_get_v1_energy_management_plan_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnergyManagementPlan"
                }
              }
            }
          }
        }
      }
    },
    "/strompreis": {
      "get": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Strompreis",
        "description": "Deprecated: Electricity Market Price Prediction per Wh [amount/Wh].\n\nElectricity prices start at 00.00.00 today and are provided for 48 hours\nin 1-hour intervals. If no prices are available the missing ones at the\nstart of the series are filled 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": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "number"
                  },
                  "type": "array",
                  "title": "Response Fastapi Strompreis Strompreis Get"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/gesamtlast": {
      "post": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Gesamtlast",
        "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\nin 1-hour intervals. If no prediction values are available the missing ones\nat the start of the series are filled with the first available prediction value.\n\nNote:\n    Use '/v1/prediction/list?key=loadforecast_power_w' instead.\n    Load energy meter readings to be added to EOS measurement by:\n    '/v1/measurement/value' or\n    '/v1/measurement/series' or\n    '/v1/measurement/dataframe' or\n    '/v1/measurement/data'",
        "operationId": "fastapi_gesamtlast_gesamtlast_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GesamtlastRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "number"
                  },
                  "type": "array",
                  "title": "Response Fastapi Gesamtlast Gesamtlast Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/gesamtlast_simple": {
      "get": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Gesamtlast Simple",
        "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\nin 1-hour intervals. If no prediction values are available the missing ones\nat the start of the series are filled 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=loadforecast_power_w' instead.",
        "operationId": "fastapi_gesamtlast_simple_gesamtlast_simple_get",
        "deprecated": true,
        "parameters": [
          {
            "name": "year_energy",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number",
              "title": "Year Energy"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  },
                  "title": "Response Fastapi Gesamtlast Simple Gesamtlast Simple Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/pvforecast": {
      "get": {
        "tags": [
          "prediction"
        ],
        "summary": "Fastapi Pvforecast",
        "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\nin 1-hour intervals. If no forecast values are available the missing ones\nat the start of the series are filled 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": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForecastResponse"
                }
              }
            }
          }
        }
      }
    },
    "/optimize": {
      "post": {
        "tags": [
          "optimize"
        ],
        "summary": "Fastapi Optimize",
        "description": "Deprecated: Optimize.\n\nEndpoint to handle optimization.\n\nUses the `classic` GENETIC0 optimisation algorithm (__NO__ 15-minutes slots).\n\nNote:\n    Use automatic optimization instead.\n    \"v1/energy-management/optimization/solution/GENETIC0\"",
        "operationId": "fastapi_optimize_optimize_post",
        "parameters": [
          {
            "name": "start_hour",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Defaults to current hour of the day.",
              "title": "Start Hour"
            },
            "description": "Defaults to current hour of the day."
          },
          {
            "name": "ngen",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Number of indivuals to generate for genetic algorithm.",
              "title": "Ngen"
            },
            "description": "Number of indivuals to generate for genetic algorithm."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Genetic0OptimizationParameters-Input"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Genetic0SolutionLegacy"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/visualization_results.pdf": {
      "get": {
        "tags": [
          "optimize"
        ],
        "summary": "Get Pdf",
        "operationId": "get_pdf_visualization_results_pdf_get",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AdapterCommonSettings-Input": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "List of adapter provider id(s) of provider(s) to be used.",
            "examples": [
              [
                "HomeAssistant"
              ],
              [
                "HomeAssistant",
                "NodeRED"
              ]
            ]
          },
          "homeassistant": {
            "$ref": "#/components/schemas/HomeAssistantAdapterCommonSettings-Input",
            "description": "Home Assistant adapter settings."
          },
          "nodered": {
            "$ref": "#/components/schemas/NodeREDAdapterCommonSettings",
            "description": "NodeRED adapter settings."
          }
        },
        "type": "object",
        "title": "AdapterCommonSettings",
        "description": "Adapter Configuration."
      },
      "AdapterCommonSettings-Output": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "List of adapter provider id(s) of provider(s) to be used.",
            "examples": [
              [
                "HomeAssistant"
              ],
              [
                "HomeAssistant",
                "NodeRED"
              ]
            ]
          },
          "homeassistant": {
            "$ref": "#/components/schemas/HomeAssistantAdapterCommonSettings-Output",
            "description": "Home Assistant adapter settings."
          },
          "nodered": {
            "$ref": "#/components/schemas/NodeREDAdapterCommonSettings",
            "description": "NodeRED adapter settings."
          },
          "providers": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Providers",
            "description": "Available adapter provider ids.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "providers"
        ],
        "title": "AdapterCommonSettings",
        "description": "Adapter Configuration."
      },
      "BatteriesCommonSettings-Input": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of device",
            "examples": [
              "battery1",
              "ev1",
              "inverter1",
              "dishwasher"
            ]
          },
          "capacity_wh": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Capacity Wh",
            "description": "Capacity [Wh].",
            "default": 8000,
            "examples": [
              8000
            ]
          },
          "charging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Charging Efficiency",
            "description": "Charging efficiency [0.01 ... 1.00].",
            "default": 0.88,
            "examples": [
              0.88
            ]
          },
          "discharging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Discharging Efficiency",
            "description": "Discharge efficiency [0.01 ... 1.00].",
            "default": 0.88,
            "examples": [
              0.88
            ]
          },
          "levelized_cost_of_storage_kwh": {
            "type": "number",
            "title": "Levelized Cost Of Storage Kwh",
            "description": "Levelized cost of storage (LCOS), the average lifetime cost of delivering one kWh [amount/kWh].",
            "default": 0.0,
            "examples": [
              0.12
            ]
          },
          "max_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Charge Power W",
            "description": "Maximum charging power [W].",
            "default": 5000,
            "examples": [
              5000
            ]
          },
          "min_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Min Charge Power W",
            "description": "Minimum charging power [W].",
            "default": 50,
            "examples": [
              50
            ]
          },
          "charge_rates": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Charge Rates",
            "description": "Charge rates as factor of maximum charging power [0.00 ... 1.00]. None triggers fallback to default charge-rates.",
            "default": [
              0.0,
              0.1,
              0.2,
              0.3,
              0.4,
              0.5,
              0.6,
              0.7,
              0.8,
              0.9,
              1.0
            ],
            "examples": [
              [
                0.0,
                0.25,
                0.5,
                0.75,
                1.0
              ],
              null
            ]
          },
          "min_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Min Soc Percentage",
            "description": "Minimum state of charge (SOC) as percentage of capacity [%]. This is the target SoC for charging",
            "default": 0,
            "examples": [
              10
            ]
          },
          "max_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Max Soc Percentage",
            "description": "Maximum state of charge (SOC) as percentage of capacity [%].",
            "default": 100,
            "examples": [
              100
            ]
          }
        },
        "type": "object",
        "title": "BatteriesCommonSettings",
        "description": "Battery devices base settings."
      },
      "BatteriesCommonSettings-Output": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of device",
            "examples": [
              "battery1",
              "ev1",
              "inverter1",
              "dishwasher"
            ]
          },
          "capacity_wh": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Capacity Wh",
            "description": "Capacity [Wh].",
            "default": 8000,
            "examples": [
              8000
            ]
          },
          "charging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Charging Efficiency",
            "description": "Charging efficiency [0.01 ... 1.00].",
            "default": 0.88,
            "examples": [
              0.88
            ]
          },
          "discharging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Discharging Efficiency",
            "description": "Discharge efficiency [0.01 ... 1.00].",
            "default": 0.88,
            "examples": [
              0.88
            ]
          },
          "levelized_cost_of_storage_kwh": {
            "type": "number",
            "title": "Levelized Cost Of Storage Kwh",
            "description": "Levelized cost of storage (LCOS), the average lifetime cost of delivering one kWh [amount/kWh].",
            "default": 0.0,
            "examples": [
              0.12
            ]
          },
          "max_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Charge Power W",
            "description": "Maximum charging power [W].",
            "default": 5000,
            "examples": [
              5000
            ]
          },
          "min_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Min Charge Power W",
            "description": "Minimum charging power [W].",
            "default": 50,
            "examples": [
              50
            ]
          },
          "charge_rates": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Charge Rates",
            "description": "Charge rates as factor of maximum charging power [0.00 ... 1.00]. None triggers fallback to default charge-rates.",
            "default": [
              0.0,
              0.1,
              0.2,
              0.3,
              0.4,
              0.5,
              0.6,
              0.7,
              0.8,
              0.9,
              1.0
            ],
            "examples": [
              [
                0.0,
                0.25,
                0.5,
                0.75,
                1.0
              ],
              null
            ]
          },
          "min_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Min Soc Percentage",
            "description": "Minimum state of charge (SOC) as percentage of capacity [%]. This is the target SoC for charging",
            "default": 0,
            "examples": [
              10
            ]
          },
          "max_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Max Soc Percentage",
            "description": "Maximum state of charge (SOC) as percentage of capacity [%].",
            "default": 100,
            "examples": [
              100
            ]
          },
          "measurement_key_soc_factor": {
            "type": "string",
            "title": "Measurement Key Soc Factor",
            "description": "Measurement key for the battery state of charge (SoC) as factor of total capacity [0.0 ... 1.0].",
            "readOnly": true
          },
          "measurement_key_power_l1_w": {
            "type": "string",
            "title": "Measurement Key Power L1 W",
            "description": "Measurement key for the L1 power the battery is charged or discharged with [W].",
            "readOnly": true
          },
          "measurement_key_power_l2_w": {
            "type": "string",
            "title": "Measurement Key Power L2 W",
            "description": "Measurement key for the L2 power the battery is charged or discharged with [W].",
            "readOnly": true
          },
          "measurement_key_power_l3_w": {
            "type": "string",
            "title": "Measurement Key Power L3 W",
            "description": "Measurement key for the L3 power the battery is charged or discharged with [W].",
            "readOnly": true
          },
          "measurement_key_power_3_phase_sym_w": {
            "type": "string",
            "title": "Measurement Key Power 3 Phase Sym W",
            "description": "Measurement key for the symmetric 3 phase power the battery is charged or discharged with [W].",
            "readOnly": true
          },
          "measurement_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measurement Keys",
            "description": "Measurement keys for the battery stati that are measurements.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "measurement_key_soc_factor",
          "measurement_key_power_l1_w",
          "measurement_key_power_l2_w",
          "measurement_key_power_l3_w",
          "measurement_key_power_3_phase_sym_w",
          "measurement_keys"
        ],
        "title": "BatteriesCommonSettings",
        "description": "Battery devices base settings."
      },
      "CacheCommonSettings": {
        "properties": {
          "subpath": {
            "anyOf": [
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subpath",
            "description": "Sub-path for the EOS cache data directory.",
            "default": "cache"
          },
          "cleanup_interval": {
            "type": "number",
            "minimum": 5.0,
            "title": "Cleanup Interval",
            "description": "Intervall in seconds for EOS file cache cleanup.",
            "default": 300.0
          }
        },
        "type": "object",
        "title": "CacheCommonSettings",
        "description": "Cache Configuration."
      },
      "CommodityQuantity": {
        "type": "string",
        "enum": [
          "ELECTRIC.POWER.L1",
          "ELECTRIC.POWER.L2",
          "ELECTRIC.POWER.L3",
          "ELECTRIC.POWER.3_PHASE_SYM",
          "NATURAL_GAS.FLOW_RATE",
          "HYDROGEN.FLOW_RATE",
          "HEAT.TEMPERATURE",
          "HEAT.FLOW_RATE",
          "HEAT.THERMAL_POWER",
          "OIL.FLOW_RATE",
          "CURRENCY"
        ],
        "title": "CommodityQuantity",
        "description": "Enumeration of specific commodity quantities and measurement types."
      },
      "ConfigEOS": {
        "properties": {
          "general": {
            "$ref": "#/components/schemas/GeneralSettings-Output"
          },
          "cache": {
            "$ref": "#/components/schemas/CacheCommonSettings"
          },
          "database": {
            "$ref": "#/components/schemas/DatabaseCommonSettings-Output"
          },
          "ems": {
            "$ref": "#/components/schemas/EnergyManagementCommonSettings-Output"
          },
          "logging": {
            "$ref": "#/components/schemas/LoggingCommonSettings-Output"
          },
          "devices": {
            "$ref": "#/components/schemas/DevicesCommonSettings-Output"
          },
          "measurement": {
            "$ref": "#/components/schemas/MeasurementCommonSettings-Output"
          },
          "optimization": {
            "$ref": "#/components/schemas/OptimizationCommonSettings-Output"
          },
          "prediction": {
            "$ref": "#/components/schemas/PredictionCommonSettings"
          },
          "elecfee": {
            "$ref": "#/components/schemas/ElecFeeCommonSettings-Output"
          },
          "elecprice": {
            "$ref": "#/components/schemas/ElecPriceCommonSettings-Output"
          },
          "feedintariff": {
            "$ref": "#/components/schemas/FeedInTariffCommonSettings-Output"
          },
          "load": {
            "$ref": "#/components/schemas/LoadCommonSettings-Output"
          },
          "pvforecast": {
            "$ref": "#/components/schemas/PVForecastCommonSettings-Output"
          },
          "weather": {
            "$ref": "#/components/schemas/WeatherCommonSettings-Output"
          },
          "server": {
            "$ref": "#/components/schemas/ServerCommonSettings"
          },
          "utils": {
            "$ref": "#/components/schemas/UtilsCommonSettings"
          },
          "adapter": {
            "$ref": "#/components/schemas/AdapterCommonSettings-Output"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "title": "ConfigEOS",
        "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\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    .. code-block:: python\n\n        config_eos = ConfigEOS()  # Always returns the same instance\n            print(config_eos.prediction.hours)  # Access a setting from the loaded configuration"
      },
      "ConfigSaveMode": {
        "type": "string",
        "enum": [
          "AUTOMATIC",
          "MANUAL"
        ],
        "title": "ConfigSaveMode",
        "description": "Configuration file save mode."
      },
      "DDBCActuatorStatus": {
        "properties": {
          "type": {
            "type": "string",
            "const": "DDBCActuatorStatus",
            "title": "Type",
            "default": "DDBCActuatorStatus"
          },
          "active_operation_mode_id": {
            "type": "string",
            "title": "Active Operation Mode Id",
            "description": "Currently active operation mode ID."
          },
          "operation_mode_factor": {
            "type": "number",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Operation Mode Factor",
            "description": "Factor with which the operation mode is configured (0 to 1)."
          },
          "previous_operation_mode_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Operation Mode Id",
            "description": "Previously active operation mode ID. Required unless this is the first mode."
          },
          "transition_timestamp": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transition Timestamp",
            "description": "Timestamp of transition to the active operation mode."
          }
        },
        "type": "object",
        "required": [
          "active_operation_mode_id",
          "operation_mode_factor"
        ],
        "title": "DDBCActuatorStatus",
        "description": "Current status of a DDBC Actuator.\n\nProvides information about the currently active operation mode and transition history.\nUsed to track the current state of the actuator."
      },
      "DDBCInstruction": {
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id",
            "description": "Unique identifier of the instruction in the ResourceManager scope. If not provided and a `resource_id` is passed at instantiation, this will be auto-generated as `{resource_id}@{UUID}`."
          },
          "execution_time": {
            "type": "string",
            "format": "date-time",
            "title": "Execution Time",
            "description": "Start time of the instruction execution."
          },
          "abnormal_condition": {
            "type": "boolean",
            "title": "Abnormal Condition",
            "description": "Indicates if this is an instruction for abnormal conditions. Defaults to False.",
            "default": false
          },
          "type": {
            "type": "string",
            "const": "DDBCInstruction",
            "title": "Type",
            "default": "DDBCInstruction"
          },
          "actuator_id": {
            "type": "string",
            "title": "Actuator Id",
            "description": "ID of the actuator this instruction belongs to."
          },
          "operation_mode_id": {
            "type": "string",
            "title": "Operation Mode Id",
            "description": "ID of the DDBC.OperationMode to apply."
          },
          "operation_mode_factor": {
            "type": "number",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Operation Mode Factor",
            "description": "Factor with which the operation mode should be applied (0 to 1)."
          },
          "resource_id": {
            "type": "string",
            "title": "Resource Id",
            "description": "Get the resource identifier component from the instruction's `id`.\n\nAssumes the `id` follows the format `{resource_id}@{UUID}`. Extracts the resource_id part\nof the id by splitting at the last @.\n\nReturns:\n    str: The resource identifier prefix of `id`, or an empty string if `id` is None.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "execution_time",
          "actuator_id",
          "operation_mode_id",
          "operation_mode_factor",
          "resource_id"
        ],
        "title": "DDBCInstruction",
        "description": "Instruction for Demand Driven Based Control (DDBC).\n\nContains information about when and how to activate a specific operation mode\nfor an actuator. Used to command resources to change their operation at a specified time."
      },
      "DatabaseCommonSettings-Input": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Database provider id of provider to be used.",
            "examples": [
              "LMDB"
            ]
          },
          "compression_level": {
            "type": "integer",
            "maximum": 9.0,
            "minimum": 0.0,
            "title": "Compression Level",
            "description": "Compression level for database record data.",
            "default": 9,
            "examples": [
              0,
              9
            ]
          },
          "initial_load_window_h": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Initial Load Window H",
            "description": "Specifies the default duration of the initial load window when loading records from the database, in hours. If set to None, the full available range is loaded. The window is centered around the current time by default, unless a different center time is specified. Different database namespaces may define their own default windows.",
            "examples": [
              "48",
              "None"
            ]
          },
          "keep_duration_h": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Keep Duration H",
            "description": "Default maximum duration records shall be kept in database [hours, none].\nNone indicates forever. Database namespaces may have diverging definitions.",
            "examples": [
              48,
              "none"
            ]
          },
          "autosave_interval_sec": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 5.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Autosave Interval Sec",
            "description": "Automatic saving interval [seconds].\nSet to None to disable automatic saving.",
            "default": 10,
            "examples": [
              5
            ]
          },
          "compaction_interval_sec": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Compaction Interval Sec",
            "description": "Interval in between automatic tiered compaction runs [seconds].\nCompaction downsamples old records to reduce storage while retaining coverage. Set to None to disable automatic compaction.",
            "default": 3600,
            "examples": [
              3600
            ]
          },
          "batch_size": {
            "type": "integer",
            "title": "Batch Size",
            "description": "Number of records to process in batch operations.",
            "default": 100,
            "examples": [
              100
            ]
          }
        },
        "type": "object",
        "title": "DatabaseCommonSettings",
        "description": "Configuration model for database settings.\n\nAttributes:\n    provider: Optional provider identifier (e.g. \"LMDB\").\n    max_records_in_memory: Maximum records kept in memory before auto-save.\n    auto_save: Whether to auto-save when threshold exceeded.\n    batch_size: Batch size for batch operations."
      },
      "DatabaseCommonSettings-Output": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Database provider id of provider to be used.",
            "examples": [
              "LMDB"
            ]
          },
          "compression_level": {
            "type": "integer",
            "maximum": 9.0,
            "minimum": 0.0,
            "title": "Compression Level",
            "description": "Compression level for database record data.",
            "default": 9,
            "examples": [
              0,
              9
            ]
          },
          "initial_load_window_h": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Initial Load Window H",
            "description": "Specifies the default duration of the initial load window when loading records from the database, in hours. If set to None, the full available range is loaded. The window is centered around the current time by default, unless a different center time is specified. Different database namespaces may define their own default windows.",
            "examples": [
              "48",
              "None"
            ]
          },
          "keep_duration_h": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Keep Duration H",
            "description": "Default maximum duration records shall be kept in database [hours, none].\nNone indicates forever. Database namespaces may have diverging definitions.",
            "examples": [
              48,
              "none"
            ]
          },
          "autosave_interval_sec": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 5.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Autosave Interval Sec",
            "description": "Automatic saving interval [seconds].\nSet to None to disable automatic saving.",
            "default": 10,
            "examples": [
              5
            ]
          },
          "compaction_interval_sec": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Compaction Interval Sec",
            "description": "Interval in between automatic tiered compaction runs [seconds].\nCompaction downsamples old records to reduce storage while retaining coverage. Set to None to disable automatic compaction.",
            "default": 3600,
            "examples": [
              3600
            ]
          },
          "batch_size": {
            "type": "integer",
            "title": "Batch Size",
            "description": "Number of records to process in batch operations.",
            "default": 100,
            "examples": [
              100
            ]
          },
          "providers": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Providers",
            "description": "Return available database provider ids.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "providers"
        ],
        "title": "DatabaseCommonSettings",
        "description": "Configuration model for database settings.\n\nAttributes:\n    provider: Optional provider identifier (e.g. \"LMDB\").\n    max_records_in_memory: Maximum records kept in memory before auto-save.\n    auto_save: Whether to auto-save when threshold exceeded.\n    batch_size: Batch size for batch operations."
      },
      "DevicesCommonSettings-Input": {
        "properties": {
          "batteries": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/BatteriesCommonSettings-Input"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Batteries",
            "description": "List of battery devices",
            "examples": [
              [
                {
                  "capacity_wh": 8000,
                  "device_id": "battery1"
                }
              ]
            ]
          },
          "max_batteries": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Batteries",
            "description": "Maximum number of batteries that can be set",
            "examples": [
              1,
              2
            ]
          },
          "electric_vehicles": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/BatteriesCommonSettings-Input"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Electric Vehicles",
            "description": "List of electric vehicle devices",
            "examples": [
              [
                {
                  "capacity_wh": 8000,
                  "device_id": "battery1"
                }
              ]
            ]
          },
          "max_electric_vehicles": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Electric Vehicles",
            "description": "Maximum number of electric vehicles that can be set",
            "examples": [
              1,
              2
            ]
          },
          "inverters": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/InverterCommonSettings-Input"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Inverters",
            "description": "List of inverters",
            "examples": [
              []
            ]
          },
          "max_inverters": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Inverters",
            "description": "Maximum number of inverters that can be set",
            "examples": [
              1,
              2
            ]
          },
          "home_appliances": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/HomeApplianceCommonSettings-Input"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Home Appliances",
            "description": "List of home appliances",
            "examples": [
              []
            ]
          },
          "max_home_appliances": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Home Appliances",
            "description": "Maximum number of home_appliances that can be set",
            "examples": [
              1,
              2
            ]
          }
        },
        "type": "object",
        "title": "DevicesCommonSettings",
        "description": "Base configuration for devices simulation settings."
      },
      "DevicesCommonSettings-Output": {
        "properties": {
          "batteries": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/BatteriesCommonSettings-Output"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Batteries",
            "description": "List of battery devices",
            "examples": [
              [
                {
                  "capacity_wh": 8000,
                  "device_id": "battery1"
                }
              ]
            ]
          },
          "max_batteries": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Batteries",
            "description": "Maximum number of batteries that can be set",
            "examples": [
              1,
              2
            ]
          },
          "electric_vehicles": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/BatteriesCommonSettings-Output"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Electric Vehicles",
            "description": "List of electric vehicle devices",
            "examples": [
              [
                {
                  "capacity_wh": 8000,
                  "device_id": "battery1"
                }
              ]
            ]
          },
          "max_electric_vehicles": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Electric Vehicles",
            "description": "Maximum number of electric vehicles that can be set",
            "examples": [
              1,
              2
            ]
          },
          "inverters": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/InverterCommonSettings-Output"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Inverters",
            "description": "List of inverters",
            "examples": [
              []
            ]
          },
          "max_inverters": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Inverters",
            "description": "Maximum number of inverters that can be set",
            "examples": [
              1,
              2
            ]
          },
          "home_appliances": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/HomeApplianceCommonSettings-Output"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Home Appliances",
            "description": "List of home appliances",
            "examples": [
              []
            ]
          },
          "max_home_appliances": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Home Appliances",
            "description": "Maximum number of home_appliances that can be set",
            "examples": [
              1,
              2
            ]
          },
          "measurement_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measurement Keys",
            "description": "Return the measurement keys for the resource/ device stati that are measurements.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "measurement_keys"
        ],
        "title": "DevicesCommonSettings",
        "description": "Base configuration for devices simulation settings."
      },
      "ElecFeeCommonSettings-Input": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Electricity fee provider id of provider to be used.",
            "examples": [
              "ElecFeeFixed"
            ]
          },
          "elecfeefixed": {
            "$ref": "#/components/schemas/ElecFeeFixedCommonSettings-Input",
            "description": "Fixed electricity fees provider settings."
          },
          "elecfeeimport": {
            "$ref": "#/components/schemas/ElecFeeImportCommonSettings",
            "description": "Electricity fees import provider settings."
          }
        },
        "type": "object",
        "title": "ElecFeeCommonSettings",
        "description": "Electricity Price Prediction Configuration."
      },
      "ElecFeeCommonSettings-Output": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Electricity fee provider id of provider to be used.",
            "examples": [
              "ElecFeeFixed"
            ]
          },
          "elecfeefixed": {
            "$ref": "#/components/schemas/ElecFeeFixedCommonSettings-Output",
            "description": "Fixed electricity fees provider settings."
          },
          "elecfeeimport": {
            "$ref": "#/components/schemas/ElecFeeImportCommonSettings",
            "description": "Electricity fees import provider settings."
          },
          "providers": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Providers",
            "description": "Available electricity fee provider ids.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "providers"
        ],
        "title": "ElecFeeCommonSettings",
        "description": "Electricity Price Prediction Configuration."
      },
      "ElecFeeFixedCommonSettings-Input": {
        "properties": {
          "consumption_amt_kwh": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Input",
            "description": "Sequence of time windows defining the total fixed per-kWh electricty fee charged for consumed energy, accumulating all applicable fixed per-kWh charges (e.g. network charge, metering fee, concession fee) into a single amount [amount/kWh]. If not provided, no fixed per-kWh consumption fee is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "8 hours",
                    "start_time": "00:00",
                    "value": 0.00288
                  },
                  {
                    "duration": "16 hours",
                    "start_time": "08:00",
                    "value": 0.0034
                  }
                ]
              }
            ]
          },
          "consumption_percent_amt": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Input",
            "description": "Sequence of time windows defining the total fixed electricity surcharge applied as a percentage of the monetary amount already charged for consumed energy, accumulating all applicable percentage-based surcharges (e.g. VAT, electricity tax) into a single percentage [%]. This is a percentage of the fee amount, not a per-kWh rate. If not provided, no percentage-based consumption surcharge is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "24 hours",
                    "start_time": "00:00",
                    "value": 19.0
                  }
                ]
              }
            ]
          },
          "feedin_amt_kwh": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Input",
            "description": "Sequence of time windows defining the total deduction from feed-in energy per Wh [amount/Wh]. This is the accumulation of all fixed per-Wh charges deducted from feed-in energy - such as metering fees or grid-operator handling charges - into a single amount. Applied after the percentage-based deduction, i.e. it reduces the price by a flat amount per Wh rather than by a share of the raw price. If not provided, no fixed per-kWh feed-in fee is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "8 hours",
                    "start_time": "00:00",
                    "value": 0.00288
                  },
                  {
                    "duration": "16 hours",
                    "start_time": "08:00",
                    "value": 0.0034
                  }
                ]
              }
            ]
          },
          "feedin_percent_amt": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Input",
            "description": "Sequence of time windows defining the total percentage deducted from the raw feed-in price (spot price) [%]. This is the accumulation of all percentage-based deductions payable on the feed-in tariff - such as a marketing or balancing fee retained by the aggregator - into a single percentage. It is applied as `raw_price * (100 - percent) / 100`, i.e. it scales down the raw price rather than adding a surcharge to it. If not provided, no percentage-based feed-in deduction is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "24 hours",
                    "start_time": "00:00",
                    "value": 19.0
                  }
                ]
              }
            ]
          }
        },
        "type": "object",
        "title": "ElecFeeFixedCommonSettings",
        "description": "Common settings for fixed electricity fees.\n\nThis model defines a fixed electricity fee schedule using a sequence\nof time windows. Each window specifies a time interval and the electricity\nfee applicable during that interval."
      },
      "ElecFeeFixedCommonSettings-Output": {
        "properties": {
          "consumption_amt_kwh": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Output",
            "description": "Sequence of time windows defining the total fixed per-kWh electricty fee charged for consumed energy, accumulating all applicable fixed per-kWh charges (e.g. network charge, metering fee, concession fee) into a single amount [amount/kWh]. If not provided, no fixed per-kWh consumption fee is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "8 hours",
                    "start_time": "00:00",
                    "value": 0.00288
                  },
                  {
                    "duration": "16 hours",
                    "start_time": "08:00",
                    "value": 0.0034
                  }
                ]
              }
            ]
          },
          "consumption_percent_amt": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Output",
            "description": "Sequence of time windows defining the total fixed electricity surcharge applied as a percentage of the monetary amount already charged for consumed energy, accumulating all applicable percentage-based surcharges (e.g. VAT, electricity tax) into a single percentage [%]. This is a percentage of the fee amount, not a per-kWh rate. If not provided, no percentage-based consumption surcharge is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "24 hours",
                    "start_time": "00:00",
                    "value": 19.0
                  }
                ]
              }
            ]
          },
          "feedin_amt_kwh": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Output",
            "description": "Sequence of time windows defining the total deduction from feed-in energy per Wh [amount/Wh]. This is the accumulation of all fixed per-Wh charges deducted from feed-in energy - such as metering fees or grid-operator handling charges - into a single amount. Applied after the percentage-based deduction, i.e. it reduces the price by a flat amount per Wh rather than by a share of the raw price. If not provided, no fixed per-kWh feed-in fee is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "8 hours",
                    "start_time": "00:00",
                    "value": 0.00288
                  },
                  {
                    "duration": "16 hours",
                    "start_time": "08:00",
                    "value": 0.0034
                  }
                ]
              }
            ]
          },
          "feedin_percent_amt": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Output",
            "description": "Sequence of time windows defining the total percentage deducted from the raw feed-in price (spot price) [%]. This is the accumulation of all percentage-based deductions payable on the feed-in tariff - such as a marketing or balancing fee retained by the aggregator - into a single percentage. It is applied as `raw_price * (100 - percent) / 100`, i.e. it scales down the raw price rather than adding a surcharge to it. If not provided, no percentage-based feed-in deduction is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "24 hours",
                    "start_time": "00:00",
                    "value": 19.0
                  }
                ]
              }
            ]
          }
        },
        "type": "object",
        "title": "ElecFeeFixedCommonSettings",
        "description": "Common settings for fixed electricity fees.\n\nThis model defines a fixed electricity fee schedule using a sequence\nof time windows. Each window specifies a time interval and the electricity\nfee applicable during that interval."
      },
      "ElecFeeImportCommonSettings": {
        "properties": {
          "import_file_path": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import File Path",
            "description": "Path to the file to import elecfee data from.",
            "examples": [
              null,
              "/path/to/prices.json"
            ]
          },
          "import_json": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import Json",
            "description": "JSON string, dictionary of electricity fee forecast value lists.",
            "examples": [
              "{\"elecfee_consumption_amt_wh\": [0.0003384, 0.0003318, 0.0003284]}"
            ]
          }
        },
        "type": "object",
        "title": "ElecFeeImportCommonSettings",
        "description": "Common settings for elecfee data import from file or JSON String."
      },
      "ElecPriceAkkudoktorCommonSettings": {
        "properties": {},
        "type": "object",
        "title": "ElecPriceAkkudoktorCommonSettings",
        "description": "Common configuration settings for Akkodoktor electricity pricing."
      },
      "ElecPriceCommonSettings-Input": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Electricity price provider id of provider to be used.",
            "examples": [
              "ElecPriceAkkudoktor"
            ]
          },
          "akkudoktor": {
            "$ref": "#/components/schemas/ElecPriceAkkudoktorCommonSettings",
            "description": "Akkudoktor electricity price provider settings."
          },
          "elecpricefixed": {
            "$ref": "#/components/schemas/ElecPriceFixedCommonSettings-Input",
            "description": "Fixed electricity price provider settings."
          },
          "elecpriceimport": {
            "$ref": "#/components/schemas/ElecPriceImportCommonSettings",
            "description": "Electricity price import provider settings."
          },
          "energycharts": {
            "$ref": "#/components/schemas/ElecPriceEnergyChartsCommonSettings",
            "description": "Energy Charts provider settings."
          },
          "smard": {
            "$ref": "#/components/schemas/ElecPriceSMARDCommonSettings",
            "description": "SMARD electricity price provider settings."
          },
          "tibber": {
            "$ref": "#/components/schemas/ElecPriceTibberCommonSettings",
            "description": "Tibber electricity price provider settings."
          }
        },
        "type": "object",
        "title": "ElecPriceCommonSettings",
        "description": "Electricity Price Prediction Configuration."
      },
      "ElecPriceCommonSettings-Output": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Electricity price provider id of provider to be used.",
            "examples": [
              "ElecPriceAkkudoktor"
            ]
          },
          "akkudoktor": {
            "$ref": "#/components/schemas/ElecPriceAkkudoktorCommonSettings",
            "description": "Akkudoktor electricity price provider settings."
          },
          "elecpricefixed": {
            "$ref": "#/components/schemas/ElecPriceFixedCommonSettings-Output",
            "description": "Fixed electricity price provider settings."
          },
          "elecpriceimport": {
            "$ref": "#/components/schemas/ElecPriceImportCommonSettings",
            "description": "Electricity price import provider settings."
          },
          "energycharts": {
            "$ref": "#/components/schemas/ElecPriceEnergyChartsCommonSettings",
            "description": "Energy Charts provider settings."
          },
          "smard": {
            "$ref": "#/components/schemas/ElecPriceSMARDCommonSettings",
            "description": "SMARD electricity price provider settings."
          },
          "tibber": {
            "$ref": "#/components/schemas/ElecPriceTibberCommonSettings",
            "description": "Tibber electricity price provider settings."
          },
          "providers": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Providers",
            "description": "Available electricity price provider ids.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "providers"
        ],
        "title": "ElecPriceCommonSettings",
        "description": "Electricity Price Prediction Configuration."
      },
      "ElecPriceEnergyChartsCommonSettings": {
        "properties": {
          "bidding_zone": {
            "$ref": "#/components/schemas/EnergyChartsBiddingZones",
            "description": "Bidding Zone: 'AT', 'BE', 'CH', 'CZ', 'DE-LU', 'DE-AT-LU', 'DK1', 'DK2', 'FR', 'HU', 'IT-NORTH', 'NL', 'NO2', 'PL', 'SE4' or 'SI'",
            "default": "DE-LU",
            "examples": [
              "AT"
            ]
          }
        },
        "type": "object",
        "title": "ElecPriceEnergyChartsCommonSettings",
        "description": "Common settings for Energy Charts electricity price provider."
      },
      "ElecPriceFixedCommonSettings-Input": {
        "properties": {
          "elecprice_marketprice_amt_kwh": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Input",
            "description": "Sequence of time windows defining the fixed price schedule. If not provided, no fixed pricing is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "8 hours",
                    "start_time": "00:00",
                    "value": 0.288
                  },
                  {
                    "duration": "16 hours",
                    "start_time": "08:00",
                    "value": 0.34
                  }
                ]
              }
            ]
          }
        },
        "type": "object",
        "title": "ElecPriceFixedCommonSettings",
        "description": "Common configuration settings for fixed electricity pricing.\n\nThis model defines a fixed electricity price schedule using a sequence\nof time windows. Each window specifies a time interval and the electricity\nprice applicable during that interval."
      },
      "ElecPriceFixedCommonSettings-Output": {
        "properties": {
          "elecprice_marketprice_amt_kwh": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Output",
            "description": "Sequence of time windows defining the fixed price schedule. If not provided, no fixed pricing is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "8 hours",
                    "start_time": "00:00",
                    "value": 0.288
                  },
                  {
                    "duration": "16 hours",
                    "start_time": "08:00",
                    "value": 0.34
                  }
                ]
              }
            ]
          }
        },
        "type": "object",
        "title": "ElecPriceFixedCommonSettings",
        "description": "Common configuration settings for fixed electricity pricing.\n\nThis model defines a fixed electricity price schedule using a sequence\nof time windows. Each window specifies a time interval and the electricity\nprice applicable during that interval."
      },
      "ElecPriceImportCommonSettings": {
        "properties": {
          "import_file_path": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import File Path",
            "description": "Path to the file to import elecprice data from.",
            "examples": [
              null,
              "/path/to/prices.json"
            ]
          },
          "import_json": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import Json",
            "description": "JSON string, dictionary of electricity price forecast value lists.",
            "examples": [
              "{\"elecprice_marketprice_wh\": [0.0003384, 0.0003318, 0.0003284]}"
            ]
          }
        },
        "type": "object",
        "title": "ElecPriceImportCommonSettings",
        "description": "Common settings for elecprice data import from file or JSON String."
      },
      "ElecPriceSMARDCommonSettings": {
        "properties": {
          "filter_id": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Filter Id",
            "description": "SMARD filter id for the German/Luxembourg day-ahead price.",
            "default": 4169,
            "examples": [
              4169
            ]
          },
          "region": {
            "type": "string",
            "minLength": 2,
            "title": "Region",
            "description": "SMARD market region used in the chart-data endpoint.",
            "default": "DE",
            "examples": [
              "DE"
            ]
          }
        },
        "type": "object",
        "title": "ElecPriceSMARDCommonSettings",
        "description": "Common settings for the direct SMARD electricity-price provider."
      },
      "ElecPriceTibberCommonSettings": {
        "properties": {
          "access_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Access Token",
            "description": "Tibber API access token.",
            "examples": [
              "tibber_pat_..."
            ]
          },
          "home_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Home Id",
            "description": "Optional Tibber home id. If omitted, the first home with a subscription is used.",
            "examples": [
              "00000000-0000-0000-0000-000000000000"
            ]
          }
        },
        "type": "object",
        "title": "ElecPriceTibberCommonSettings",
        "description": "Common settings for the Tibber electricity price provider."
      },
      "ElectricVehicleParameters": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of electric vehicle",
            "examples": [
              "ev1"
            ]
          },
          "hours": {
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hours",
            "description": "Number of prediction hours. Defaults to global config prediction hours.",
            "examples": [
              null
            ]
          },
          "capacity_wh": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Capacity Wh",
            "description": "An integer representing the capacity of the battery in watt-hours.",
            "examples": [
              8000
            ]
          },
          "charging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Charging Efficiency",
            "description": "A float representing the charging efficiency of the battery.",
            "default": 0.88
          },
          "discharging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Discharging Efficiency",
            "description": "A float representing the discharge efficiency of the battery.",
            "default": 1.0
          },
          "max_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Charge Power W",
            "description": "Maximum charging power in watts.",
            "default": 5000
          },
          "initial_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Initial Soc Percentage",
            "description": "An integer representing the current state of charge (SOC) of the battery in percentage.",
            "default": 0,
            "examples": [
              42
            ]
          },
          "min_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Min Soc Percentage",
            "description": "An integer representing the minimum state of charge (SOC) of the battery in percentage.",
            "default": 0,
            "examples": [
              10
            ]
          },
          "max_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Max Soc Percentage",
            "description": "An integer representing the maximum state of charge (SOC) of the battery in percentage.",
            "default": 100
          },
          "charge_rates": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Charge Rates",
            "description": "Charge rates as factor of maximum charging power [0.00 ... 1.00]. None denotes all charge rates are available.",
            "examples": [
              [
                0.0,
                0.25,
                0.5,
                0.75,
                1.0
              ],
              null
            ]
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "device_id",
          "capacity_wh"
        ],
        "title": "ElectricVehicleParameters",
        "description": "Battery Electric Vehicle Device Simulation Configuration."
      },
      "ElectricVehicleResult": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of electric vehicle",
            "examples": [
              "ev1"
            ]
          },
          "hours": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Hours",
            "description": "Number of hours in the simulation.",
            "examples": [
              24
            ]
          },
          "charge_array": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Charge Array",
            "description": "Hourly charging status (0 for no charging, 1 for charging)."
          },
          "discharge_array": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Discharge Array",
            "description": "Hourly discharging status (0 for no discharging, 1 for discharging)."
          },
          "discharging_efficiency": {
            "type": "number",
            "title": "Discharging Efficiency",
            "description": "The discharge efficiency as a float.."
          },
          "capacity_wh": {
            "type": "integer",
            "title": "Capacity Wh",
            "description": "Capacity of the EV\u2019s battery in watt-hours."
          },
          "charging_efficiency": {
            "type": "number",
            "title": "Charging Efficiency",
            "description": "Charging efficiency as a float.."
          },
          "max_charge_power_w": {
            "type": "integer",
            "title": "Max Charge Power W",
            "description": "Maximum charging power in watts."
          },
          "soc_wh": {
            "type": "number",
            "title": "Soc Wh",
            "description": "State of charge of the battery in watt-hours at the start of the simulation."
          },
          "initial_soc_percentage": {
            "type": "integer",
            "title": "Initial Soc Percentage",
            "description": "State of charge at the start of the simulation in percentage."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "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",
        "description": "Result class containing information related to the electric vehicle's charging and discharging behavior."
      },
      "EnergyChartsBiddingZones": {
        "type": "string",
        "enum": [
          "AT",
          "BE",
          "CH",
          "CZ",
          "DE-LU",
          "DE-AT-LU",
          "DK1",
          "DK2",
          "FR",
          "HU",
          "IT-NORTH",
          "NL",
          "NO2",
          "PL",
          "SE4",
          "SI"
        ],
        "title": "EnergyChartsBiddingZones",
        "description": "Energy Charts Bidding Zones."
      },
      "EnergyManagementCommonSettings-Input": {
        "properties": {
          "startup_delay": {
            "type": "number",
            "minimum": 1.0,
            "title": "Startup Delay",
            "description": "Startup delay in seconds for EOS energy management runs.",
            "default": 5
          },
          "interval": {
            "type": "number",
            "minimum": 60.0,
            "title": "Interval",
            "description": "Intervall between EOS energy management runs [seconds].",
            "default": 300.0,
            "examples": [
              "300"
            ]
          },
          "mode": {
            "$ref": "#/components/schemas/EnergyManagementMode",
            "description": "Energy management mode [DISABLED | PREDICTION | OPTIMIZATION]. Defaults to DISABLED.",
            "examples": [
              "OPTIMIZATION"
            ]
          }
        },
        "type": "object",
        "title": "EnergyManagementCommonSettings",
        "description": "Energy Management Configuration."
      },
      "EnergyManagementCommonSettings-Output": {
        "properties": {
          "startup_delay": {
            "type": "number",
            "minimum": 1.0,
            "title": "Startup Delay",
            "description": "Startup delay in seconds for EOS energy management runs.",
            "default": 5
          },
          "interval": {
            "type": "number",
            "minimum": 60.0,
            "title": "Interval",
            "description": "Intervall between EOS energy management runs [seconds].",
            "default": 300.0,
            "examples": [
              "300"
            ]
          },
          "mode": {
            "$ref": "#/components/schemas/EnergyManagementMode",
            "description": "Energy management mode [DISABLED | PREDICTION | OPTIMIZATION]. Defaults to DISABLED.",
            "examples": [
              "OPTIMIZATION"
            ]
          },
          "modes": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Modes",
            "description": "Available energy management modes.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "modes"
        ],
        "title": "EnergyManagementCommonSettings",
        "description": "Energy Management Configuration."
      },
      "EnergyManagementMode": {
        "type": "string",
        "enum": [
          "DISABLED",
          "PREDICTION",
          "OPTIMIZATION"
        ],
        "title": "EnergyManagementMode",
        "description": "Energy management mode."
      },
      "EnergyManagementPlan": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique ID for the energy management plan."
          },
          "generated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Generated At",
            "description": "Timestamp when the plan was generated."
          },
          "valid_from": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid From",
            "description": "Earliest start time of any instruction."
          },
          "valid_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid Until",
            "description": "Latest end time across all instructions with finite duration; None if all instructions have infinite duration."
          },
          "instructions": {
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PEBCInstruction"
                },
                {
                  "$ref": "#/components/schemas/PPBCScheduleInstruction"
                },
                {
                  "$ref": "#/components/schemas/PPBCStartInterruptionInstruction"
                },
                {
                  "$ref": "#/components/schemas/PPBCEndInterruptionInstruction"
                },
                {
                  "$ref": "#/components/schemas/OMBCInstruction"
                },
                {
                  "$ref": "#/components/schemas/FRBCInstruction"
                },
                {
                  "$ref": "#/components/schemas/DDBCInstruction"
                }
              ],
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "DDBCInstruction": "#/components/schemas/DDBCInstruction",
                  "FRBCInstruction": "#/components/schemas/FRBCInstruction",
                  "OMBCInstruction": "#/components/schemas/OMBCInstruction",
                  "PEBCInstruction": "#/components/schemas/PEBCInstruction",
                  "PPBCEndInterruptionInstruction": "#/components/schemas/PPBCEndInterruptionInstruction",
                  "PPBCScheduleInstruction": "#/components/schemas/PPBCScheduleInstruction",
                  "PPBCStartInterruptionInstruction": "#/components/schemas/PPBCStartInterruptionInstruction"
                }
              }
            },
            "type": "array",
            "title": "Instructions",
            "description": "List of control instructions for the plan."
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment",
            "description": "Optional comment or annotation for the plan."
          }
        },
        "type": "object",
        "required": [
          "id",
          "generated_at",
          "instructions"
        ],
        "title": "EnergyManagementPlan",
        "description": "A coordinated energy management plan composed of device control instructions.\n\nAttributes:\n    plan_id (ID): Unique identifier for this energy management plan.\n    generated_at (DateTime): Timestamp when the plan was generated.\n    valid_from (Optional[DateTime]): Earliest start time of any instruction.\n    valid_until (Optional[DateTime]): Latest end time across all instructions\n        with finite duration; None if all instructions have infinite duration.\n    instructions (list[BaseInstruction]): List of control instructions for the plan.\n    comment (Optional[str]): Optional comment or annotation for the plan."
      },
      "EnergyMeasurement": {
        "properties": {
          "type": {
            "type": "string",
            "const": "EnergyMeasurement",
            "title": "Type",
            "default": "EnergyMeasurement"
          },
          "measurement_timestamp": {
            "type": "string",
            "format": "date-time",
            "title": "Measurement Timestamp",
            "description": "Timestamp when energy values were measured."
          },
          "last_reset": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Reset",
            "description": "Timestamp when the energy meter's cumulative counter was last reset."
          },
          "values": {
            "items": {
              "$ref": "#/components/schemas/PowerValue"
            },
            "type": "array",
            "title": "Values",
            "description": "Array of measured energy values. Shall contain at least one item and at most one item per 'commodity_quantity' (defined inside the PowerValue)."
          }
        },
        "type": "object",
        "required": [
          "measurement_timestamp",
          "values"
        ],
        "title": "EnergyMeasurement",
        "description": "Captures a set of energy meter readouts taken at a specific point in time.\n\nEnergy is defined as the cummulative power per hour as provided by an energy meter.\n\nThis model records multiple energy values (for different commodity quantities)\nalong with the timestamp when the meter readouts were taken, enabling time-series\nanalysis and monitoring of energy consumption or production.\n\nNote: This is an extension to the S2 standard."
      },
      "FRBCActuatorStatus": {
        "properties": {
          "type": {
            "type": "string",
            "const": "FRBCActuatorStatus",
            "title": "Type",
            "default": "FRBCActuatorStatus"
          },
          "active_operation_mode_id": {
            "type": "string",
            "title": "Active Operation Mode Id",
            "description": "Currently active operation mode ID."
          },
          "operation_mode_factor": {
            "type": "number",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Operation Mode Factor",
            "description": "Factor with which the mode is configured (0 to 1)."
          },
          "previous_operation_mode_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Operation Mode Id",
            "description": "Previously active operation mode ID."
          },
          "transition_timestamp": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transition Timestamp",
            "description": "Timestamp of the last transition between modes."
          }
        },
        "type": "object",
        "required": [
          "active_operation_mode_id",
          "operation_mode_factor"
        ],
        "title": "FRBCActuatorStatus",
        "description": "Current status of an FRBC Actuator.\n\nProvides information about the currently active operation mode and transition history.\nUsed to track the current state of the actuator."
      },
      "FRBCEnergyStatus": {
        "properties": {
          "type": {
            "type": "string",
            "const": "FRBCEnergyStatus",
            "title": "Type",
            "default": "FRBCEnergyStatus"
          },
          "import_total": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EnergyMeasurement"
              },
              {
                "type": "null"
              }
            ],
            "description": "Total cumulative imported energy from the energy meter start."
          },
          "export_total": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EnergyMeasurement"
              },
              {
                "type": "null"
              }
            ],
            "description": "Total cumulative exported energy from the energy meter start."
          }
        },
        "type": "object",
        "title": "FRBCEnergyStatus",
        "description": "Energy status of an FRBC storage.\n\nNote: This is an extension to the S2 standard."
      },
      "FRBCInstruction": {
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id",
            "description": "Unique identifier of the instruction in the ResourceManager scope. If not provided and a `resource_id` is passed at instantiation, this will be auto-generated as `{resource_id}@{UUID}`."
          },
          "execution_time": {
            "type": "string",
            "format": "date-time",
            "title": "Execution Time",
            "description": "Start time of the instruction execution."
          },
          "abnormal_condition": {
            "type": "boolean",
            "title": "Abnormal Condition",
            "description": "Indicates if this is an instruction for abnormal conditions. Defaults to False.",
            "default": false
          },
          "type": {
            "type": "string",
            "const": "FRBCInstruction",
            "title": "Type",
            "default": "FRBCInstruction"
          },
          "actuator_id": {
            "type": "string",
            "title": "Actuator Id",
            "description": "ID of the actuator this instruction belongs to."
          },
          "operation_mode_id": {
            "type": "string",
            "title": "Operation Mode Id",
            "description": "ID of the operation mode to activate."
          },
          "operation_mode_factor": {
            "type": "number",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Operation Mode Factor",
            "description": "Factor for the operation mode configuration (0 to 1)."
          },
          "resource_id": {
            "type": "string",
            "title": "Resource Id",
            "description": "Get the resource identifier component from the instruction's `id`.\n\nAssumes the `id` follows the format `{resource_id}@{UUID}`. Extracts the resource_id part\nof the id by splitting at the last @.\n\nReturns:\n    str: The resource identifier prefix of `id`, or an empty string if `id` is None.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "execution_time",
          "actuator_id",
          "operation_mode_id",
          "operation_mode_factor",
          "resource_id"
        ],
        "title": "FRBCInstruction",
        "description": "Instruction for Fill Rate Based Control (FRBC).\n\nContains information about when and how to activate a specific operation mode\nfor an actuator. Used to command resources to change their operation at a specified time."
      },
      "FRBCStorageStatus": {
        "properties": {
          "type": {
            "type": "string",
            "const": "FRBCStorageStatus",
            "title": "Type",
            "default": "FRBCStorageStatus"
          },
          "present_fill_level": {
            "type": "number",
            "title": "Present Fill Level",
            "description": "Current fill level of the storage."
          }
        },
        "type": "object",
        "required": [
          "present_fill_level"
        ],
        "title": "FRBCStorageStatus",
        "description": "Current status of an FRBC Storage.\n\nIndicates the current fill level of the storage, which is essential\nfor determining applicable operation modes and control decisions."
      },
      "FRBCTimerStatus": {
        "properties": {
          "type": {
            "type": "string",
            "const": "FRBCTimerStatus",
            "title": "Type",
            "default": "FRBCTimerStatus"
          },
          "actuator_id": {
            "type": "string",
            "title": "Actuator Id",
            "description": "ID of the actuator the timer belongs to."
          },
          "timer_id": {
            "type": "string",
            "title": "Timer Id",
            "description": "ID of the timer this status refers to."
          },
          "finished_at": {
            "type": "string",
            "format": "date-time",
            "title": "Finished At",
            "description": "Indicates when the Timer will be finished. If the DateTime is in the future, the timer is not yet finished. If the DateTime is in the past, the timer is finished. If the timer was never started, the value can be an arbitrary DateTimeStamp in the past."
          }
        },
        "type": "object",
        "required": [
          "actuator_id",
          "timer_id",
          "finished_at"
        ],
        "title": "FRBCTimerStatus",
        "description": "Current status of an FRBC Timer.\n\nIndicates when the Timer will be finished."
      },
      "FeedInTariffCommonSettings-Input": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Feed in tariff provider id of provider to be used.",
            "examples": [
              "FeedInTariffFixed",
              "FeedInTarifImport"
            ]
          },
          "feedintarifffixed": {
            "$ref": "#/components/schemas/FeedInTariffFixedCommonSettings-Input",
            "description": "Fixed feed in tariff provider settings."
          },
          "feedintariffimport": {
            "$ref": "#/components/schemas/FeedInTariffImportCommonSettings",
            "description": "Feed in tarif import provider settings."
          },
          "dvhubonline": {
            "$ref": "#/components/schemas/FeedInTariffDvhubOnlineCommonSettings",
            "description": "DvhubOnline feed in tariff provider settings."
          },
          "energycharts": {
            "$ref": "#/components/schemas/FeedInTariffEnergyChartsCommonSettings",
            "description": "EnergyCharts feed in tariff provider settings."
          },
          "smard": {
            "$ref": "#/components/schemas/FeedInTariffSMARDCommonSettings",
            "description": "SMARD feed in tariff provider settings."
          }
        },
        "type": "object",
        "title": "FeedInTariffCommonSettings",
        "description": "Feed In Tariff Prediction Configuration."
      },
      "FeedInTariffCommonSettings-Output": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Feed in tariff provider id of provider to be used.",
            "examples": [
              "FeedInTariffFixed",
              "FeedInTarifImport"
            ]
          },
          "feedintarifffixed": {
            "$ref": "#/components/schemas/FeedInTariffFixedCommonSettings-Output",
            "description": "Fixed feed in tariff provider settings."
          },
          "feedintariffimport": {
            "$ref": "#/components/schemas/FeedInTariffImportCommonSettings",
            "description": "Feed in tarif import provider settings."
          },
          "dvhubonline": {
            "$ref": "#/components/schemas/FeedInTariffDvhubOnlineCommonSettings",
            "description": "DvhubOnline feed in tariff provider settings."
          },
          "energycharts": {
            "$ref": "#/components/schemas/FeedInTariffEnergyChartsCommonSettings",
            "description": "EnergyCharts feed in tariff provider settings."
          },
          "smard": {
            "$ref": "#/components/schemas/FeedInTariffSMARDCommonSettings",
            "description": "SMARD feed in tariff provider settings."
          },
          "providers": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Providers",
            "description": "Available feed in tariff provider ids.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "providers"
        ],
        "title": "FeedInTariffCommonSettings",
        "description": "Feed In Tariff Prediction Configuration."
      },
      "FeedInTariffDvhubOnlineCommonSettings": {
        "properties": {
          "base_url": {
            "type": "string",
            "title": "Base Url",
            "description": "Base URL of the dvhub.online price API.",
            "default": "https://dvhub.online",
            "examples": [
              "https://dvhub.online"
            ]
          },
          "zone": {
            "type": "string",
            "title": "Zone",
            "description": "Bidding zone passed to the dvhub.online price API.",
            "default": "DE-LU",
            "examples": [
              "DE-LU"
            ]
          }
        },
        "type": "object",
        "title": "FeedInTariffDvhubOnlineCommonSettings",
        "description": "Common settings for the dvhub.online feed-in tariff provider."
      },
      "FeedInTariffEnergyChartsCommonSettings": {
        "properties": {
          "bidding_zone": {
            "$ref": "#/components/schemas/EnergyChartsBiddingZones",
            "description": "Bidding Zone: 'AT', 'BE', 'CH', 'CZ', 'DE-LU', 'DE-AT-LU', 'DK1', 'DK2', 'FR', 'HU', 'IT-NORTH', 'NL', 'NO2', 'PL', 'SE4' or 'SI'",
            "default": "DE-LU",
            "examples": [
              "DE-LU"
            ]
          }
        },
        "type": "object",
        "title": "FeedInTariffEnergyChartsCommonSettings",
        "description": "Common settings for Energy-Charts feed-in tariff provider."
      },
      "FeedInTariffFixedCommonSettings-Input": {
        "properties": {
          "feed_in_tariff_amt_kwh": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Input",
            "description": "Sequence of time windows defining the electricity feed in tariff [amount/kWh]. If not provided, no fixed feed in tariff is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "8 hours",
                    "start_time": "00:00",
                    "value": 0.028
                  },
                  {
                    "duration": "16 hours",
                    "start_time": "08:00",
                    "value": 0.034
                  }
                ]
              }
            ]
          }
        },
        "type": "object",
        "title": "FeedInTariffFixedCommonSettings",
        "description": "Common settings for elecprice fixed price."
      },
      "FeedInTariffFixedCommonSettings-Output": {
        "properties": {
          "feed_in_tariff_amt_kwh": {
            "$ref": "#/components/schemas/ValueTimeWindowSequence-Output",
            "description": "Sequence of time windows defining the electricity feed in tariff [amount/kWh]. If not provided, no fixed feed in tariff is applied.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "8 hours",
                    "start_time": "00:00",
                    "value": 0.028
                  },
                  {
                    "duration": "16 hours",
                    "start_time": "08:00",
                    "value": 0.034
                  }
                ]
              }
            ]
          }
        },
        "type": "object",
        "title": "FeedInTariffFixedCommonSettings",
        "description": "Common settings for elecprice fixed price."
      },
      "FeedInTariffImportCommonSettings": {
        "properties": {
          "import_file_path": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import File Path",
            "description": "Path to the file to import feed in tariff data from.",
            "examples": [
              null,
              "/path/to/feedintariff.json"
            ]
          },
          "import_json": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import Json",
            "description": "JSON string, dictionary of feed in tariff forecast value lists.",
            "examples": [
              "{\"fead_in_tariff_wh\": [0.000078, 0.000078, 0.000023]}"
            ]
          }
        },
        "type": "object",
        "title": "FeedInTariffImportCommonSettings",
        "description": "Common settings for feed in tariff data import from file or JSON string."
      },
      "FeedInTariffSMARDCommonSettings": {
        "properties": {},
        "type": "object",
        "title": "FeedInTariffSMARDCommonSettings",
        "description": "Settings for SMARD feed-in prices shared with ``elecprice.smard``."
      },
      "ForecastResponse": {
        "properties": {
          "temperature": {
            "items": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "array",
            "title": "Temperature"
          },
          "pvpower": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Pvpower"
          }
        },
        "type": "object",
        "required": [
          "temperature",
          "pvpower"
        ],
        "title": "ForecastResponse"
      },
      "GeneralSettings-Input": {
        "properties": {
          "config_save_mode": {
            "$ref": "#/components/schemas/ConfigSaveMode",
            "description": "Configuration file save mode for configuration changes ['MANUAL', 'AUTOMATIC']. Defaults to 'AUTOMATIC'.",
            "default": "AUTOMATIC",
            "examples": [
              "AUTOMATIC",
              "MANUAL"
            ]
          },
          "config_save_interval_sec": {
            "type": "integer",
            "minimum": 5.0,
            "title": "Config Save Interval Sec",
            "description": "Automatic configuration file saving interval [seconds].",
            "default": 60,
            "examples": [
              60
            ]
          },
          "home_assistant_addon": {
            "type": "boolean",
            "title": "Home Assistant Addon",
            "description": "EOS is running as home assistant add-on."
          },
          "version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version",
            "description": "Configuration file version.",
            "examples": [
              "0.0.0"
            ]
          },
          "data_folder_path": {
            "type": "string",
            "format": "path",
            "title": "Data Folder Path",
            "description": "Path to EOS data folder."
          },
          "data_output_subpath": {
            "anyOf": [
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Data Output Subpath",
            "description": "Sub-path for the EOS output data folder.",
            "default": "output"
          },
          "latitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 90.0,
                "minimum": -90.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Latitude",
            "description": "Latitude in decimal degrees between -90 and 90. North is positive (ISO 19115) (\u00b0)",
            "default": 52.52
          },
          "longitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 180.0,
                "minimum": -180.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Longitude",
            "description": "Longitude in decimal degrees within -180 to 180 (\u00b0)",
            "default": 13.405
          }
        },
        "type": "object",
        "title": "GeneralSettings",
        "description": "General settings."
      },
      "GeneralSettings-Output": {
        "properties": {
          "config_save_mode": {
            "$ref": "#/components/schemas/ConfigSaveMode",
            "description": "Configuration file save mode for configuration changes ['MANUAL', 'AUTOMATIC']. Defaults to 'AUTOMATIC'.",
            "default": "AUTOMATIC",
            "examples": [
              "AUTOMATIC",
              "MANUAL"
            ]
          },
          "config_save_interval_sec": {
            "type": "integer",
            "minimum": 5.0,
            "title": "Config Save Interval Sec",
            "description": "Automatic configuration file saving interval [seconds].",
            "default": 60,
            "examples": [
              60
            ]
          },
          "version": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Version",
            "description": "Configuration file version.",
            "examples": [
              "0.0.0"
            ]
          },
          "data_folder_path": {
            "type": "string",
            "format": "path",
            "title": "Data Folder Path",
            "description": "Path to EOS data folder."
          },
          "data_output_subpath": {
            "anyOf": [
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Data Output Subpath",
            "description": "Sub-path for the EOS output data folder.",
            "default": "output"
          },
          "latitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 90.0,
                "minimum": -90.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Latitude",
            "description": "Latitude in decimal degrees between -90 and 90. North is positive (ISO 19115) (\u00b0)",
            "default": 52.52
          },
          "longitude": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 180.0,
                "minimum": -180.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Longitude",
            "description": "Longitude in decimal degrees within -180 to 180 (\u00b0)",
            "default": 13.405
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timezone",
            "description": "Computed timezone based on latitude and longitude.",
            "readOnly": true
          },
          "data_output_path": {
            "anyOf": [
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Data Output Path",
            "description": "Computed data_output_path based on data_folder_path.",
            "readOnly": true
          },
          "config_folder_path": {
            "anyOf": [
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Config Folder Path",
            "description": "Path to EOS configuration directory.",
            "readOnly": true
          },
          "config_file_path": {
            "anyOf": [
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Config File Path",
            "description": "Path to EOS configuration file.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "timezone",
          "data_output_path",
          "config_folder_path",
          "config_file_path"
        ],
        "title": "GeneralSettings",
        "description": "General settings."
      },
      "Genetic0CommonSettings-Input": {
        "properties": {
          "horizon_hours": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Horizon Hours",
            "description": "The general time window within which the energy optimization goal shall be achieved [h]. Defaults to 24 hours.",
            "default": 24,
            "examples": [
              24
            ]
          },
          "individuals": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 10.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Individuals",
            "description": "Number of individuals (solutions) in the population [>= 10]. Defaults to 300.",
            "default": 300,
            "examples": [
              300
            ]
          },
          "generations": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 10.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Generations",
            "description": "Number of generations to evolve [>= 10]. Defaults to 400.",
            "default": 400,
            "examples": [
              400
            ]
          },
          "seed": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Seed",
            "description": "Random seed for reproducibility. None = random.",
            "examples": [
              null,
              42
            ]
          },
          "penalties": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "string"
                }
              ]
            },
            "type": "object",
            "title": "Penalties",
            "description": "Penalty parameters used in fitness evaluation.",
            "examples": [
              {
                "ev_soc_miss": 10
              }
            ]
          }
        },
        "type": "object",
        "title": "Genetic0CommonSettings",
        "description": "GENETIC0 Optimization Algorithm Configuration."
      },
      "Genetic0CommonSettings-Output": {
        "properties": {
          "horizon_hours": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Horizon Hours",
            "description": "The general time window within which the energy optimization goal shall be achieved [h]. Defaults to 24 hours.",
            "default": 24,
            "examples": [
              24
            ]
          },
          "individuals": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 10.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Individuals",
            "description": "Number of individuals (solutions) in the population [>= 10]. Defaults to 300.",
            "default": 300,
            "examples": [
              300
            ]
          },
          "generations": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 10.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Generations",
            "description": "Number of generations to evolve [>= 10]. Defaults to 400.",
            "default": 400,
            "examples": [
              400
            ]
          },
          "seed": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Seed",
            "description": "Random seed for reproducibility. None = random.",
            "examples": [
              null,
              42
            ]
          },
          "penalties": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "string"
                }
              ]
            },
            "type": "object",
            "title": "Penalties",
            "description": "Penalty parameters used in fitness evaluation.",
            "examples": [
              {
                "ev_soc_miss": 10
              }
            ]
          },
          "interval_sec": {
            "type": "integer",
            "title": "Interval Sec",
            "description": "The optimization interval [sec]. Fixed to 1 hour (3600 seconds).",
            "readOnly": true
          },
          "horizon": {
            "type": "integer",
            "title": "Horizon",
            "description": "Number of optimization steps.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "interval_sec",
          "horizon"
        ],
        "title": "Genetic0CommonSettings",
        "description": "GENETIC0 Optimization Algorithm Configuration."
      },
      "Genetic0ElectricVehicleParameters": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of electric vehicle",
            "examples": [
              "ev1"
            ]
          },
          "hours": {
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hours",
            "description": "Number of prediction hours. Defaults to global config prediction hours.",
            "examples": [
              null
            ]
          },
          "capacity_wh": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Capacity Wh",
            "description": "An integer representing the capacity of the battery in watt-hours.",
            "examples": [
              8000
            ]
          },
          "charging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Charging Efficiency",
            "description": "A float representing the charging efficiency of the battery.",
            "default": 0.88
          },
          "discharging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Discharging Efficiency",
            "description": "A float representing the discharge efficiency of the battery.",
            "default": 1.0
          },
          "max_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Charge Power W",
            "description": "Maximum charging power in watts.",
            "default": 5000
          },
          "initial_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Initial Soc Percentage",
            "description": "An integer representing the current state of charge (SOC) of the battery in percentage.",
            "default": 0,
            "examples": [
              42
            ]
          },
          "min_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Min Soc Percentage",
            "description": "An integer representing the minimum state of charge (SOC) of the battery in percentage.",
            "default": 0,
            "examples": [
              10
            ]
          },
          "max_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Max Soc Percentage",
            "description": "An integer representing the maximum state of charge (SOC) of the battery in percentage.",
            "default": 100
          },
          "charge_rates": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Charge Rates",
            "description": "Charge rates as factor of maximum charging power [0.00 ... 1.00]. None denotes all charge rates are available.",
            "examples": [
              [
                0.0,
                0.25,
                0.5,
                0.75,
                1.0
              ],
              null
            ]
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "device_id",
          "capacity_wh"
        ],
        "title": "Genetic0ElectricVehicleParameters",
        "description": "Battery Electric Vehicle Device Simulation Configuration."
      },
      "Genetic0ElectricVehicleResult": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of electric vehicle",
            "examples": [
              "ev1"
            ]
          },
          "hours": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Hours",
            "description": "Number of hours in the simulation.",
            "examples": [
              24
            ]
          },
          "charge_array": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Charge Array",
            "description": "Hourly charging status (0 for no charging, 1 for charging)."
          },
          "discharge_array": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Discharge Array",
            "description": "Hourly discharging status (0 for no discharging, 1 for discharging)."
          },
          "discharging_efficiency": {
            "type": "number",
            "title": "Discharging Efficiency",
            "description": "The discharge efficiency as a float.."
          },
          "capacity_wh": {
            "type": "integer",
            "title": "Capacity Wh",
            "description": "Capacity of the EV\u2019s battery in watt-hours."
          },
          "charging_efficiency": {
            "type": "number",
            "title": "Charging Efficiency",
            "description": "Charging efficiency as a float.."
          },
          "max_charge_power_w": {
            "type": "integer",
            "title": "Max Charge Power W",
            "description": "Maximum charging power in watts."
          },
          "soc_wh": {
            "type": "number",
            "title": "Soc Wh",
            "description": "State of charge of the battery in watt-hours at the start of the simulation."
          },
          "initial_soc_percentage": {
            "type": "integer",
            "title": "Initial Soc Percentage",
            "description": "State of charge at the start of the simulation in percentage."
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "device_id",
          "hours",
          "charge_array",
          "discharge_array",
          "discharging_efficiency",
          "capacity_wh",
          "charging_efficiency",
          "max_charge_power_w",
          "soc_wh",
          "initial_soc_percentage"
        ],
        "title": "Genetic0ElectricVehicleResult",
        "description": "Result class containing information related to the electric vehicle's charging and discharging behavior."
      },
      "Genetic0EnergyManagementParameters-Input": {
        "properties": {
          "pv_forecast_wh": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Pv Forecast Wh",
            "description": "An array of floats representing the forecasted photovoltaic output in watts for different time intervals."
          },
          "electricity_price_per_wh": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Electricity Price Per Wh",
            "description": "An array of floats representing the electricity price per watt-hour for different time intervals."
          },
          "feed_in_tariff_per_wh": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "number"
              }
            ],
            "title": "Feed In Tariff Per Wh",
            "description": "A float or array of floats representing the feed-in compensation per watt-hour."
          },
          "price_per_wh_battery": {
            "type": "number",
            "title": "Price Per Wh Battery",
            "description": "A float representing the cost of battery energy per watt-hour."
          },
          "total_load": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Total Load",
            "description": "An array of floats representing the total load (consumption) in watts for different time intervals."
          }
        },
        "type": "object",
        "required": [
          "pv_forecast_wh",
          "electricity_price_per_wh",
          "feed_in_tariff_per_wh",
          "price_per_wh_battery",
          "total_load"
        ],
        "title": "Genetic0EnergyManagementParameters",
        "description": "Encapsulates energy-related forecasts and costs used in GENETIC optimization."
      },
      "Genetic0EnergyManagementParameters-Output": {
        "properties": {
          "pv_forecast_wh": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Pv Forecast Wh",
            "description": "An array of floats representing the forecasted photovoltaic output in watts for different time intervals."
          },
          "electricity_price_per_wh": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Electricity Price Per Wh",
            "description": "An array of floats representing the electricity price per watt-hour for different time intervals."
          },
          "feed_in_tariff_per_wh": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "number"
              }
            ],
            "title": "Feed In Tariff Per Wh",
            "description": "A float or array of floats representing the feed-in compensation per watt-hour."
          },
          "price_per_wh_battery": {
            "type": "number",
            "title": "Price Per Wh Battery",
            "description": "A float representing the cost of battery energy per watt-hour."
          },
          "total_load": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Total Load",
            "description": "An array of floats representing the total load (consumption) in watts for different time intervals."
          },
          "pv_prognose_wh": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Pv Prognose Wh",
            "description": "Deprecated: Use pv_forecast_wh instead.",
            "deprecated": true,
            "readOnly": true
          },
          "strompreis_euro_pro_wh": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Strompreis Euro Pro Wh",
            "description": "Deprecated: Use electricity_price_per_wh instead.",
            "deprecated": true,
            "readOnly": true
          },
          "einspeiseverguetung_euro_pro_wh": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "number"
              }
            ],
            "title": "Einspeiseverguetung Euro Pro Wh",
            "description": "Deprecated: Use feed_in_tariff_per_wh instead.",
            "deprecated": true,
            "readOnly": true
          },
          "preis_euro_pro_wh_akku": {
            "type": "number",
            "title": "Preis Euro Pro Wh Akku",
            "description": "Deprecated: Use price_per_wh_battery instead.",
            "deprecated": true,
            "readOnly": true
          },
          "gesamtlast": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Gesamtlast",
            "description": "Deprecated: Use total_load instead.",
            "deprecated": true,
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "pv_forecast_wh",
          "electricity_price_per_wh",
          "feed_in_tariff_per_wh",
          "price_per_wh_battery",
          "total_load",
          "pv_prognose_wh",
          "strompreis_euro_pro_wh",
          "einspeiseverguetung_euro_pro_wh",
          "preis_euro_pro_wh_akku",
          "gesamtlast"
        ],
        "title": "Genetic0EnergyManagementParameters",
        "description": "Encapsulates energy-related forecasts and costs used in GENETIC optimization."
      },
      "Genetic0HomeApplianceParameters-Input": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of home appliance",
            "examples": [
              "dishwasher"
            ]
          },
          "hours": {
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hours",
            "description": "Number of prediction hours. Defaults to global config prediction hours.",
            "examples": [
              null
            ]
          },
          "consumption_wh": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Consumption Wh",
            "description": "An integer representing the energy consumption of a household device in watt-hours.",
            "examples": [
              2000
            ]
          },
          "duration_h": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Duration H",
            "description": "An integer representing the usage duration of a household device in hours.",
            "examples": [
              3
            ]
          },
          "time_windows": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TimeWindowSequence-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "List of allowed time windows. Defaults to optimization general time window.",
            "examples": [
              [
                {
                  "duration": "3 hours",
                  "start_time": "10:00"
                }
              ]
            ]
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "device_id",
          "consumption_wh",
          "duration_h"
        ],
        "title": "Genetic0HomeApplianceParameters",
        "description": "Home Appliance Device Simulation Configuration."
      },
      "Genetic0HomeApplianceParameters-Output": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of home appliance",
            "examples": [
              "dishwasher"
            ]
          },
          "hours": {
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hours",
            "description": "Number of prediction hours. Defaults to global config prediction hours.",
            "examples": [
              null
            ]
          },
          "consumption_wh": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Consumption Wh",
            "description": "An integer representing the energy consumption of a household device in watt-hours.",
            "examples": [
              2000
            ]
          },
          "duration_h": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Duration H",
            "description": "An integer representing the usage duration of a household device in hours.",
            "examples": [
              3
            ]
          },
          "time_windows": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TimeWindowSequence-Output"
              },
              {
                "type": "null"
              }
            ],
            "description": "List of allowed time windows. Defaults to optimization general time window.",
            "examples": [
              [
                {
                  "duration": "3 hours",
                  "start_time": "10:00"
                }
              ]
            ]
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "device_id",
          "consumption_wh",
          "duration_h"
        ],
        "title": "Genetic0HomeApplianceParameters",
        "description": "Home Appliance Device Simulation Configuration."
      },
      "Genetic0InverterParameters": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of inverter",
            "examples": [
              "inverter1"
            ]
          },
          "hours": {
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hours",
            "description": "Number of prediction hours. Defaults to global config prediction hours.",
            "examples": [
              null
            ]
          },
          "max_power_wh": {
            "type": "number",
            "exclusiveMinimum": 0.0,
            "title": "Max Power Wh",
            "examples": [
              10000
            ]
          },
          "battery_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Battery Id",
            "description": "ID of battery",
            "examples": [
              null,
              "battery1"
            ]
          },
          "ac_to_dc_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Ac To Dc Efficiency",
            "description": "Efficiency of AC to DC conversion (for AC/grid charging of battery). Set to 0 to disable AC charging via inverter. Default 1.0 for backward compatibility (no additional inverter loss).",
            "default": 1.0,
            "examples": [
              0.95,
              1.0,
              0.0
            ]
          },
          "dc_to_ac_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Dc To Ac Efficiency",
            "description": "Efficiency of DC to AC conversion (for battery discharging to AC load/grid). Default 1.0 for backward compatibility (no additional inverter loss).",
            "default": 1.0,
            "examples": [
              0.95,
              1.0
            ]
          },
          "max_ac_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Ac Charge Power W",
            "description": "Maximum AC charging power in watts. None means no additional limit (battery's own max_charge_power_w applies). Set to 0 to disable AC charging.",
            "examples": [
              null,
              0,
              5000
            ]
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "device_id",
          "max_power_wh"
        ],
        "title": "Genetic0InverterParameters",
        "description": "Inverter Device Simulation Configuration."
      },
      "Genetic0OptimizationParameters-Input": {
        "properties": {
          "ems": {
            "$ref": "#/components/schemas/Genetic0EnergyManagementParameters-Input"
          },
          "pv_battery": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0SolarPanelBatteryParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "PV battery parameters."
          },
          "inverter": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0InverterParameters"
              },
              {
                "type": "null"
              }
            ]
          },
          "ev": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0ElectricVehicleParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "Electric vehicle parameters."
          },
          "dishwasher": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0HomeApplianceParameters-Input"
              },
              {
                "type": "null"
              }
            ]
          },
          "temperature_forecast": {
            "anyOf": [
              {
                "items": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Temperature Forecast",
            "description": "An array of floats representing the temperature forecast in degrees Celsius for different time intervals."
          },
          "start_solution": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Solution",
            "description": "Can be `null` or contain a previous solution (if available)."
          }
        },
        "type": "object",
        "required": [
          "ems",
          "pv_battery",
          "inverter",
          "ev"
        ],
        "title": "Genetic0OptimizationParameters",
        "description": "Main parameter class for running the genetic energy optimization.\n\nCollects all model and configuration parameters necessary to run the\noptimization process, such as forecasts, pricing, battery and appliance models."
      },
      "Genetic0OptimizationParameters-Output": {
        "properties": {
          "ems": {
            "$ref": "#/components/schemas/Genetic0EnergyManagementParameters-Output"
          },
          "pv_battery": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0SolarPanelBatteryParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "PV battery parameters."
          },
          "inverter": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0InverterParameters"
              },
              {
                "type": "null"
              }
            ]
          },
          "ev": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0ElectricVehicleParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "Electric vehicle parameters."
          },
          "dishwasher": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0HomeApplianceParameters-Output"
              },
              {
                "type": "null"
              }
            ]
          },
          "temperature_forecast": {
            "anyOf": [
              {
                "items": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Temperature Forecast",
            "description": "An array of floats representing the temperature forecast in degrees Celsius for different time intervals."
          },
          "start_solution": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Solution",
            "description": "Can be `null` or contain a previous solution (if available)."
          },
          "pv_akku": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0SolarPanelBatteryParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated: Use pv_battery instead.",
            "deprecated": true,
            "readOnly": true
          },
          "eauto": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0ElectricVehicleParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated: Use ev instead.",
            "deprecated": true,
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "ems",
          "pv_battery",
          "inverter",
          "ev",
          "pv_akku",
          "eauto"
        ],
        "title": "Genetic0OptimizationParameters",
        "description": "Main parameter class for running the genetic energy optimization.\n\nCollects all model and configuration parameters necessary to run the\noptimization process, such as forecasts, pricing, battery and appliance models."
      },
      "Genetic0SimulationResult": {
        "properties": {
          "load_wh_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Load Wh Per Hour",
            "description": "The load in watt-hours per hour."
          },
          "ev_soc_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Ev Soc Per Hour",
            "description": "The state of charge of the EV for each hour."
          },
          "revenue_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Revenue Per Hour",
            "description": "The revenue from grid feed-in or other sources per hour."
          },
          "total_losses": {
            "type": "number",
            "title": "Total Losses",
            "description": "The total losses in watt-hours over the entire period."
          },
          "total_balance": {
            "type": "number",
            "title": "Total Balance",
            "description": "The total balance of revenues minus costs."
          },
          "total_revenue": {
            "type": "number",
            "title": "Total Revenue",
            "description": "The total revenues."
          },
          "total_costs": {
            "type": "number",
            "title": "Total Costs",
            "description": "The total costs."
          },
          "home_appliance_wh_per_hour": {
            "items": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "array",
            "title": "Home Appliance Wh Per Hour",
            "description": "The energy consumption of a household appliance in watt-hours per hour."
          },
          "costs_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Costs Per Hour",
            "description": "The costs per hour."
          },
          "grid_consumption_wh_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Grid Consumption Wh Per Hour",
            "description": "The grid energy drawn in watt-hours per hour."
          },
          "grid_feed_in_wh_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Grid Feed In Wh Per Hour",
            "description": "The energy fed into the grid in watt-hours per hour."
          },
          "losses_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Losses Per Hour",
            "description": "The losses in watt-hours per hour."
          },
          "battery_soc_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Battery Soc Per Hour",
            "description": "The state of charge of the battery (not the EV) in percentage per hour."
          },
          "electricity_price": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Electricity Price",
            "description": "Used Electricity Price, including predictions"
          },
          "Last_Wh_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Last Wh Pro Stunde",
            "description": "Deprecated: Use load_wh_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "EAuto_SoC_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Eauto Soc Pro Stunde",
            "description": "Deprecated: Use ev_soc_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Einnahmen_Euro_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Einnahmen Euro Pro Stunde",
            "description": "Deprecated: Use revenue_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Gesamt_Verluste": {
            "type": "number",
            "title": "Gesamt Verluste",
            "description": "Deprecated: Use total_losses instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Gesamtbilanz_Euro": {
            "type": "number",
            "title": "Gesamtbilanz Euro",
            "description": "Deprecated: Use total_balance instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Gesamteinnahmen_Euro": {
            "type": "number",
            "title": "Gesamteinnahmen Euro",
            "description": "Deprecated: Use total_revenue instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Gesamtkosten_Euro": {
            "type": "number",
            "title": "Gesamtkosten Euro",
            "description": "Deprecated: Use total_costs instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Home_appliance_wh_per_hour": {
            "items": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "array",
            "title": "Home Appliance Wh Per Hour",
            "description": "Deprecated: Use home_appliance_wh_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Kosten_Euro_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Kosten Euro Pro Stunde",
            "description": "Deprecated: Use costs_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Netzbezug_Wh_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Netzbezug Wh Pro Stunde",
            "description": "Deprecated: Use grid_consumption_wh_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Netzeinspeisung_Wh_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Netzeinspeisung Wh Pro Stunde",
            "description": "Deprecated: Use grid_feed_in_wh_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Verluste_Pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Verluste Pro Stunde",
            "description": "Deprecated: Use losses_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "akku_soc_pro_stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Akku Soc Pro Stunde",
            "description": "Deprecated: Use battery_soc_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Electricity_price": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Electricity Price",
            "description": "Deprecated: Use electricity_price instead.",
            "deprecated": true,
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "load_wh_per_hour",
          "ev_soc_per_hour",
          "revenue_per_hour",
          "total_losses",
          "total_balance",
          "total_revenue",
          "total_costs",
          "home_appliance_wh_per_hour",
          "costs_per_hour",
          "grid_consumption_wh_per_hour",
          "grid_feed_in_wh_per_hour",
          "losses_per_hour",
          "battery_soc_per_hour",
          "electricity_price",
          "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": "Genetic0SimulationResult",
        "description": "This object contains the results of the simulation and provides insights into various parameters over the entire forecast period."
      },
      "Genetic0SolarPanelBatteryParameters": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of battery",
            "examples": [
              "battery1"
            ]
          },
          "hours": {
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hours",
            "description": "Number of prediction hours. Defaults to global config prediction hours.",
            "examples": [
              null
            ]
          },
          "capacity_wh": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Capacity Wh",
            "description": "An integer representing the capacity of the battery in watt-hours.",
            "examples": [
              8000
            ]
          },
          "charging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Charging Efficiency",
            "description": "A float representing the charging efficiency of the battery.",
            "default": 0.88
          },
          "discharging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Discharging Efficiency",
            "description": "A float representing the discharge efficiency of the battery.",
            "default": 0.88
          },
          "max_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Charge Power W",
            "description": "Maximum charging power in watts.",
            "default": 5000
          },
          "initial_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Initial Soc Percentage",
            "description": "An integer representing the state of charge of the battery at the **start** of the current hour (not the current state).",
            "default": 0,
            "examples": [
              42
            ]
          },
          "min_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Min Soc Percentage",
            "description": "An integer representing the minimum state of charge (SOC) of the battery in percentage.",
            "default": 0,
            "examples": [
              10
            ]
          },
          "max_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Max Soc Percentage",
            "description": "An integer representing the maximum state of charge (SOC) of the battery in percentage.",
            "default": 100
          },
          "charge_rates": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Charge Rates",
            "description": "Charge rates as factor of maximum charging power [0.00 ... 1.00]. None denotes all charge rates are available.",
            "examples": [
              [
                0.0,
                0.25,
                0.5,
                0.75,
                1.0
              ],
              null
            ]
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "device_id",
          "capacity_wh"
        ],
        "title": "Genetic0SolarPanelBatteryParameters",
        "description": "PV battery device simulation configuration."
      },
      "Genetic0Solution": {
        "properties": {
          "parameters": {
            "$ref": "#/components/schemas/Genetic0OptimizationParameters-Output",
            "description": "Optimization parameters used to generate solution."
          },
          "ac_charge": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Ac Charge",
            "description": "Array with AC charging values as relative power (0.0-1.0), other values set to 0."
          },
          "dc_charge": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Dc Charge",
            "description": "Array with DC charging values as relative power (0-1), other values set to 0."
          },
          "discharge_allowed": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Discharge Allowed",
            "description": "Array with discharge values (1 for discharge, 0 otherwise)."
          },
          "ev_charge_hours_float": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ev Charge Hours Float",
            "description": "Array with EV charging values as relative power (0.0-1.0), or `null` if no EV is optimized."
          },
          "result": {
            "$ref": "#/components/schemas/Genetic0SimulationResult"
          },
          "ev_obj": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0ElectricVehicleResult"
              },
              {
                "type": "null"
              }
            ],
            "description": "Electric vehicle state after optimization."
          },
          "start_hour": {
            "type": "integer",
            "title": "Start Hour",
            "description": "Start hour.",
            "default": 0
          },
          "start_solution": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Solution",
            "description": "An array of binary values (0 or 1) representing a possible starting solution for the simulation."
          },
          "washingstart": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Washingstart",
            "description": "Can be `null` or contain an object representing the start of washing (if applicable)."
          },
          "extra_data": {
            "anyOf": [
              {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "items": {
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    {
                      "items": {
                        "type": "number"
                      },
                      "type": "array"
                    }
                  ]
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extra Data",
            "description": "Dictionary of balance: TBD, losses: TBD, constraints: TBD."
          },
          "fitness_history": {
            "anyOf": [
              {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "items": {
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    {
                      "items": {
                        "type": "number"
                      },
                      "type": "array"
                    }
                  ]
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fitness History",
            "description": "Dictionary of gen: Generation numbers (X-axis), avg: Average fitness for each generation (Y-axis), max: Maximum fitness for each generation (Y-axis), min: Minimum fitness for each generation (Y-axis)."
          },
          "fixed_seed": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fixed Seed",
            "description": "Fixed seed."
          },
          "eautocharge_hours_float": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Eautocharge Hours Float",
            "description": "Deprecated: Use ev_charge_hours_float instead.",
            "deprecated": true,
            "readOnly": true
          },
          "eauto_obj": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0ElectricVehicleResult"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated: Use ev_obj instead.",
            "deprecated": true,
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "parameters",
          "ac_charge",
          "dc_charge",
          "discharge_allowed",
          "ev_charge_hours_float",
          "result",
          "ev_obj",
          "eautocharge_hours_float",
          "eauto_obj"
        ],
        "title": "Genetic0Solution",
        "description": "**Note**: The first value of \"load_wh_per_hour\", \"grid_feed_in_wh_per_hour\", and \"grid_consumption_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."
      },
      "Genetic0SolutionLegacy": {
        "properties": {
          "ac_charge": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Ac Charge",
            "description": "Array with AC charging values as relative power (0.0-1.0), other values set to 0."
          },
          "dc_charge": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Dc Charge",
            "description": "Array with DC charging values as relative power (0-1), other values set to 0."
          },
          "discharge_allowed": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Discharge Allowed",
            "description": "Array with discharge values (1 for discharge, 0 otherwise)."
          },
          "ev_charge_hours_float": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ev Charge Hours Float",
            "description": "Array with EV charging values as relative power (0.0-1.0), or `null` if no EV is optimized."
          },
          "result": {
            "$ref": "#/components/schemas/Genetic0SimulationResult"
          },
          "ev_obj": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0ElectricVehicleResult"
              },
              {
                "type": "null"
              }
            ],
            "description": "Electric vehicle state after optimization."
          },
          "start_solution": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Solution",
            "description": "An array of binary values (0 or 1) representing a possible starting solution for the simulation."
          },
          "washingstart": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Washingstart",
            "description": "Can be `null` or contain an object representing the start of washing (if applicable)."
          },
          "eautocharge_hours_float": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Eautocharge Hours Float",
            "description": "Deprecated: Use ev_charge_hours_float instead.",
            "deprecated": true,
            "readOnly": true
          },
          "eauto_obj": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Genetic0ElectricVehicleResult"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated: Use ev_obj instead.",
            "deprecated": true,
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "ac_charge",
          "dc_charge",
          "discharge_allowed",
          "ev_charge_hours_float",
          "result",
          "ev_obj",
          "eautocharge_hours_float",
          "eauto_obj"
        ],
        "title": "Genetic0SolutionLegacy",
        "description": "GENETIC0 solution legacy dataset."
      },
      "GeneticCommonSettings-Input": {
        "properties": {
          "interval_sec": {
            "type": "integer",
            "maximum": 3600.0,
            "minimum": 900.0,
            "title": "Interval Sec",
            "description": "The optimization interval [sec]. Defaults to 3600 seconds (1 hour)",
            "default": 3600,
            "examples": [
              3600,
              900
            ]
          },
          "horizon_hours": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Horizon Hours",
            "description": "The general time window within which the energy optimization goal shall be achieved [h]. Defaults to 24 hours.",
            "default": 24,
            "examples": [
              24
            ]
          },
          "individuals": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 10.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Individuals",
            "description": "Number of individuals (solutions) in the population [>= 10]. Defaults to 300.",
            "default": 300,
            "examples": [
              300
            ]
          },
          "generations": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 10.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Generations",
            "description": "Number of generations to evolve [>= 10]. Defaults to 400.",
            "default": 400,
            "examples": [
              400
            ]
          },
          "seed": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Seed",
            "description": "Random seed for reproducibility. None = random.",
            "examples": [
              null,
              42
            ]
          },
          "penalties": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "string"
                }
              ]
            },
            "type": "object",
            "title": "Penalties",
            "description": "Penalty parameters used in fitness evaluation.",
            "examples": [
              {
                "ev_soc_miss": 10
              }
            ]
          }
        },
        "type": "object",
        "title": "GeneticCommonSettings",
        "description": "GENETIC Optimization Algorithm Configuration."
      },
      "GeneticCommonSettings-Output": {
        "properties": {
          "interval_sec": {
            "type": "integer",
            "maximum": 3600.0,
            "minimum": 900.0,
            "title": "Interval Sec",
            "description": "The optimization interval [sec]. Defaults to 3600 seconds (1 hour)",
            "default": 3600,
            "examples": [
              3600,
              900
            ]
          },
          "horizon_hours": {
            "type": "integer",
            "minimum": 0.0,
            "title": "Horizon Hours",
            "description": "The general time window within which the energy optimization goal shall be achieved [h]. Defaults to 24 hours.",
            "default": 24,
            "examples": [
              24
            ]
          },
          "individuals": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 10.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Individuals",
            "description": "Number of individuals (solutions) in the population [>= 10]. Defaults to 300.",
            "default": 300,
            "examples": [
              300
            ]
          },
          "generations": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 10.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Generations",
            "description": "Number of generations to evolve [>= 10]. Defaults to 400.",
            "default": 400,
            "examples": [
              400
            ]
          },
          "seed": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Seed",
            "description": "Random seed for reproducibility. None = random.",
            "examples": [
              null,
              42
            ]
          },
          "penalties": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "string"
                }
              ]
            },
            "type": "object",
            "title": "Penalties",
            "description": "Penalty parameters used in fitness evaluation.",
            "examples": [
              {
                "ev_soc_miss": 10
              }
            ]
          },
          "horizon": {
            "type": "integer",
            "title": "Horizon",
            "description": "Number of optimization steps.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "horizon"
        ],
        "title": "GeneticCommonSettings",
        "description": "GENETIC Optimization Algorithm Configuration."
      },
      "GeneticEnergyManagementParameters": {
        "properties": {
          "pv_forecast_wh": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Pv Forecast Wh",
            "description": "An array of floats representing the forecasted photovoltaic output in watts for different time intervals."
          },
          "electricity_price_per_wh": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Electricity Price Per Wh",
            "description": "An array of floats representing the electricity price per watt-hour for different time intervals."
          },
          "feed_in_tariff_per_wh": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "number"
              }
            ],
            "title": "Feed In Tariff Per Wh",
            "description": "A float or array of floats representing the feed-in compensation per watt-hour."
          },
          "price_per_wh_battery": {
            "type": "number",
            "title": "Price Per Wh Battery",
            "description": "A float representing the cost of battery energy per watt-hour."
          },
          "total_load": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Total Load",
            "description": "An array of floats representing the total load (consumption) in watts for different time intervals."
          },
          "pv_prognose_wh": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Pv Prognose Wh",
            "description": "Deprecated: Use pv_forecast_wh instead.",
            "deprecated": true,
            "readOnly": true
          },
          "strompreis_euro_pro_wh": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Strompreis Euro Pro Wh",
            "description": "Deprecated: Use electricity_price_per_wh instead.",
            "deprecated": true,
            "readOnly": true
          },
          "einspeiseverguetung_euro_pro_wh": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "number"
              }
            ],
            "title": "Einspeiseverguetung Euro Pro Wh",
            "description": "Deprecated: Use feed_in_tariff_per_wh instead.",
            "deprecated": true,
            "readOnly": true
          },
          "preis_euro_pro_wh_akku": {
            "type": "number",
            "title": "Preis Euro Pro Wh Akku",
            "description": "Deprecated: Use price_per_wh_battery instead.",
            "deprecated": true,
            "readOnly": true
          },
          "gesamtlast": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Gesamtlast",
            "description": "Deprecated: Use total_load instead.",
            "deprecated": true,
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "pv_forecast_wh",
          "electricity_price_per_wh",
          "feed_in_tariff_per_wh",
          "price_per_wh_battery",
          "total_load",
          "pv_prognose_wh",
          "strompreis_euro_pro_wh",
          "einspeiseverguetung_euro_pro_wh",
          "preis_euro_pro_wh_akku",
          "gesamtlast"
        ],
        "title": "GeneticEnergyManagementParameters",
        "description": "Encapsulates energy-related forecasts and costs used in GENETIC optimization."
      },
      "GeneticOptimizationParameters": {
        "properties": {
          "ems": {
            "$ref": "#/components/schemas/GeneticEnergyManagementParameters"
          },
          "pv_battery": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SolarPanelBatteryParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "PV battery parameters."
          },
          "inverter": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/InverterParameters"
              },
              {
                "type": "null"
              }
            ]
          },
          "ev": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ElectricVehicleParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "Electric vehicle parameters."
          },
          "dishwasher": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/HomeApplianceParameters"
              },
              {
                "type": "null"
              }
            ]
          },
          "temperature_forecast": {
            "anyOf": [
              {
                "items": {
                  "anyOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Temperature Forecast",
            "description": "An array of floats representing the temperature forecast in degrees Celsius for different time intervals."
          },
          "start_solution": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Solution",
            "description": "Can be `null` or contain a previous solution (if available)."
          },
          "pv_akku": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SolarPanelBatteryParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated: Use pv_battery instead.",
            "deprecated": true,
            "readOnly": true
          },
          "eauto": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ElectricVehicleParameters"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated: Use ev instead.",
            "deprecated": true,
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "ems",
          "pv_battery",
          "inverter",
          "ev",
          "pv_akku",
          "eauto"
        ],
        "title": "GeneticOptimizationParameters",
        "description": "Main parameter class for running the genetic energy optimization.\n\nCollects all model and configuration parameters necessary to run the\noptimization process, such as forecasts, pricing, battery and appliance models."
      },
      "GeneticSimulationResult": {
        "properties": {
          "load_wh_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Load Wh Per Hour",
            "description": "The load in watt-hours per hour."
          },
          "ev_soc_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Ev Soc Per Hour",
            "description": "The state of charge of the EV for each hour."
          },
          "revenue_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Revenue Per Hour",
            "description": "The revenue from grid feed-in or other sources per hour."
          },
          "total_losses": {
            "type": "number",
            "title": "Total Losses",
            "description": "The total losses in watt-hours over the entire period."
          },
          "total_balance": {
            "type": "number",
            "title": "Total Balance",
            "description": "The total balance of revenues minus costs."
          },
          "total_revenue": {
            "type": "number",
            "title": "Total Revenue",
            "description": "The total revenues."
          },
          "total_costs": {
            "type": "number",
            "title": "Total Costs",
            "description": "The total costs."
          },
          "home_appliance_wh_per_hour": {
            "items": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "array",
            "title": "Home Appliance Wh Per Hour",
            "description": "The energy consumption of a household appliance in watt-hours per hour."
          },
          "costs_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Costs Per Hour",
            "description": "The costs per hour."
          },
          "grid_consumption_wh_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Grid Consumption Wh Per Hour",
            "description": "The grid energy drawn in watt-hours per hour."
          },
          "grid_feed_in_wh_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Grid Feed In Wh Per Hour",
            "description": "The energy fed into the grid in watt-hours per hour."
          },
          "losses_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Losses Per Hour",
            "description": "The losses in watt-hours per hour."
          },
          "battery_soc_per_hour": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Battery Soc Per Hour",
            "description": "The state of charge of the battery (not the EV) in percentage per hour."
          },
          "electricity_price": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Electricity Price",
            "description": "Used Electricity Price, including predictions"
          },
          "Last_Wh_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Last Wh Pro Stunde",
            "description": "Deprecated: Use load_wh_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "EAuto_SoC_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Eauto Soc Pro Stunde",
            "description": "Deprecated: Use ev_soc_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Einnahmen_Euro_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Einnahmen Euro Pro Stunde",
            "description": "Deprecated: Use revenue_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Gesamt_Verluste": {
            "type": "number",
            "title": "Gesamt Verluste",
            "description": "Deprecated: Use total_losses instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Gesamtbilanz_Euro": {
            "type": "number",
            "title": "Gesamtbilanz Euro",
            "description": "Deprecated: Use total_balance instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Gesamteinnahmen_Euro": {
            "type": "number",
            "title": "Gesamteinnahmen Euro",
            "description": "Deprecated: Use total_revenue instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Gesamtkosten_Euro": {
            "type": "number",
            "title": "Gesamtkosten Euro",
            "description": "Deprecated: Use total_costs instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Home_appliance_wh_per_hour": {
            "items": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "type": "array",
            "title": "Home Appliance Wh Per Hour",
            "description": "Deprecated: Use home_appliance_wh_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Kosten_Euro_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Kosten Euro Pro Stunde",
            "description": "Deprecated: Use costs_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Netzbezug_Wh_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Netzbezug Wh Pro Stunde",
            "description": "Deprecated: Use grid_consumption_wh_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Netzeinspeisung_Wh_pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Netzeinspeisung Wh Pro Stunde",
            "description": "Deprecated: Use grid_feed_in_wh_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Verluste_Pro_Stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Verluste Pro Stunde",
            "description": "Deprecated: Use losses_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "akku_soc_pro_stunde": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Akku Soc Pro Stunde",
            "description": "Deprecated: Use battery_soc_per_hour instead.",
            "deprecated": true,
            "readOnly": true
          },
          "Electricity_price": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Electricity Price",
            "description": "Deprecated: Use electricity_price instead.",
            "deprecated": true,
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "load_wh_per_hour",
          "ev_soc_per_hour",
          "revenue_per_hour",
          "total_losses",
          "total_balance",
          "total_revenue",
          "total_costs",
          "home_appliance_wh_per_hour",
          "costs_per_hour",
          "grid_consumption_wh_per_hour",
          "grid_feed_in_wh_per_hour",
          "losses_per_hour",
          "battery_soc_per_hour",
          "electricity_price",
          "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": "GeneticSimulationResult",
        "description": "This object contains the results of the simulation and provides insights into various parameters over the entire forecast period."
      },
      "GeneticSolution": {
        "properties": {
          "parameters": {
            "$ref": "#/components/schemas/GeneticOptimizationParameters",
            "description": "Optimization parameters used to generate solution."
          },
          "ac_charge": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Ac Charge",
            "description": "Array with AC charging values as relative power (0.0-1.0), other values set to 0."
          },
          "dc_charge": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Dc Charge",
            "description": "Array with DC charging values as relative power (0-1), other values set to 0."
          },
          "discharge_allowed": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Discharge Allowed",
            "description": "Array with discharge values (1 for discharge, 0 otherwise)."
          },
          "ev_charge_hours_float": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ev Charge Hours Float",
            "description": "Array with EV charging values as relative power (0.0-1.0), or `null` if no EV is optimized."
          },
          "result": {
            "$ref": "#/components/schemas/GeneticSimulationResult"
          },
          "ev_obj": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ElectricVehicleResult"
              },
              {
                "type": "null"
              }
            ],
            "description": "Electric vehicle state after optimization."
          },
          "start_hour": {
            "type": "integer",
            "title": "Start Hour",
            "description": "Start hour.",
            "default": 0
          },
          "start_solution": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Start Solution",
            "description": "An array of binary values (0 or 1) representing a possible starting solution for the simulation."
          },
          "washingstart": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Washingstart",
            "description": "Can be `null` or contain an object representing the start of washing (if applicable)."
          },
          "extra_data": {
            "anyOf": [
              {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "items": {
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    {
                      "items": {
                        "type": "number"
                      },
                      "type": "array"
                    }
                  ]
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Extra Data",
            "description": "Dictionary of balance: TBD, losses: TBD, constraints: TBD."
          },
          "fitness_history": {
            "anyOf": [
              {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "items": {
                        "type": "integer"
                      },
                      "type": "array"
                    },
                    {
                      "items": {
                        "type": "number"
                      },
                      "type": "array"
                    }
                  ]
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fitness History",
            "description": "Dictionary of gen: Generation numbers (X-axis), avg: Average fitness for each generation (Y-axis), max: Maximum fitness for each generation (Y-axis), min: Minimum fitness for each generation (Y-axis)."
          },
          "fixed_seed": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fixed Seed",
            "description": "Fixed seed."
          },
          "eautocharge_hours_float": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Eautocharge Hours Float",
            "description": "Deprecated: Use ev_charge_hours_float instead.",
            "deprecated": true,
            "readOnly": true
          },
          "eauto_obj": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ElectricVehicleResult"
              },
              {
                "type": "null"
              }
            ],
            "description": "Deprecated: Use ev_obj instead.",
            "deprecated": true,
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "parameters",
          "ac_charge",
          "dc_charge",
          "discharge_allowed",
          "ev_charge_hours_float",
          "result",
          "ev_obj",
          "eautocharge_hours_float",
          "eauto_obj"
        ],
        "title": "GeneticSolution",
        "description": "**Note**: The first value of \"load_wh_per_hour\", \"grid_feed_in_wh_per_hour\", and \"grid_consumption_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."
      },
      "GesamtlastRequest": {
        "properties": {
          "year_energy": {
            "type": "number",
            "title": "Year Energy"
          },
          "measured_data": {
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array",
            "title": "Measured Data"
          },
          "hours": {
            "type": "integer",
            "title": "Hours"
          }
        },
        "type": "object",
        "required": [
          "year_energy",
          "measured_data",
          "hours"
        ],
        "title": "GesamtlastRequest"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "HomeApplianceCommonSettings-Input": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of device",
            "examples": [
              "battery1",
              "ev1",
              "inverter1",
              "dishwasher"
            ]
          },
          "consumption_wh": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Consumption Wh",
            "description": "Energy consumption [Wh].",
            "examples": [
              2000
            ]
          },
          "duration_h": {
            "type": "integer",
            "maximum": 24.0,
            "exclusiveMinimum": 0.0,
            "title": "Duration H",
            "description": "Usage duration in hours [0 ... 24].",
            "examples": [
              1
            ]
          },
          "time_windows": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TimeWindowSequence-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Sequence of allowed time windows. Defaults to optimization general time window.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "2 hours",
                    "start_time": "10:00"
                  }
                ]
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "consumption_wh",
          "duration_h"
        ],
        "title": "HomeApplianceCommonSettings",
        "description": "Home Appliance devices base settings."
      },
      "HomeApplianceCommonSettings-Output": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of device",
            "examples": [
              "battery1",
              "ev1",
              "inverter1",
              "dishwasher"
            ]
          },
          "consumption_wh": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Consumption Wh",
            "description": "Energy consumption [Wh].",
            "examples": [
              2000
            ]
          },
          "duration_h": {
            "type": "integer",
            "maximum": 24.0,
            "exclusiveMinimum": 0.0,
            "title": "Duration H",
            "description": "Usage duration in hours [0 ... 24].",
            "examples": [
              1
            ]
          },
          "time_windows": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TimeWindowSequence-Output"
              },
              {
                "type": "null"
              }
            ],
            "description": "Sequence of allowed time windows. Defaults to optimization general time window.",
            "examples": [
              {
                "windows": [
                  {
                    "duration": "2 hours",
                    "start_time": "10:00"
                  }
                ]
              }
            ]
          },
          "measurement_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measurement Keys",
            "description": "Measurement keys for the home appliance stati that are measurements.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "consumption_wh",
          "duration_h",
          "measurement_keys"
        ],
        "title": "HomeApplianceCommonSettings",
        "description": "Home Appliance devices base settings."
      },
      "HomeApplianceParameters": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of home appliance",
            "examples": [
              "dishwasher"
            ]
          },
          "hours": {
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hours",
            "description": "Number of prediction hours. Defaults to global config prediction hours.",
            "examples": [
              null
            ]
          },
          "consumption_wh": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Consumption Wh",
            "description": "An integer representing the energy consumption of a household device in watt-hours.",
            "examples": [
              2000
            ]
          },
          "duration_h": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Duration H",
            "description": "An integer representing the usage duration of a household device in hours.",
            "examples": [
              3
            ]
          },
          "time_windows": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TimeWindowSequence-Output"
              },
              {
                "type": "null"
              }
            ],
            "description": "List of allowed time windows. Defaults to optimization general time window.",
            "examples": [
              [
                {
                  "duration": "3 hours",
                  "start_time": "10:00"
                }
              ]
            ]
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "device_id",
          "consumption_wh",
          "duration_h"
        ],
        "title": "HomeApplianceParameters",
        "description": "Home Appliance Device Simulation Configuration."
      },
      "HomeAssistantAdapterCommonSettings-Input": {
        "properties": {
          "config_entity_ids": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Config Entity Ids",
            "description": "Mapping of EOS config keys to Home Assistant entity IDs.\nThe config key has to be given by a \u2018/\u2019-separated path\ne.g. devices/batteries/0/capacity_wh",
            "examples": [
              {
                "devices/batteries/0/capacity_wh": "sensor.battery1_capacity"
              }
            ]
          },
          "load_emr_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Load Emr Entity Ids",
            "description": "Entity ID(s) of load energy meter readings [kWh]",
            "examples": [
              [
                "sensor.load_energy_total_kwh"
              ],
              [
                "sensor.load_emr1_kwh",
                "sensor.load_emr2_kwh"
              ]
            ]
          },
          "grid_export_emr_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grid Export Emr Entity Ids",
            "description": "Entity ID(s) of export to grid energy meter readings [kWh]",
            "examples": [
              [
                "sensor.grid_export_energy_total_kwh"
              ]
            ]
          },
          "grid_import_emr_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grid Import Emr Entity Ids",
            "description": "Entity ID(s) of import from grid energy meter readings [kWh]",
            "examples": [
              [
                "sensor.grid_import_energy_total_kwh"
              ]
            ]
          },
          "pv_production_emr_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pv Production Emr Entity Ids",
            "description": "Entity ID(s) of PV production energy meter readings [kWh]",
            "examples": [
              [
                "sensor.pv_energy_total_kwh"
              ],
              [
                "sensor.pv_emr1_kwh",
                "sensor.pv_emr2_kwh"
              ]
            ]
          },
          "device_measurement_entity_ids": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device Measurement Entity Ids",
            "description": "Mapping of EOS measurement keys used by device (resource) simulations to Home Assistant entity IDs.",
            "examples": [
              {
                "battery1_soc_factor": "sensor.battery1_soc_factor",
                "ev11_soc_factor": "sensor.ev11_soc_factor"
              }
            ]
          },
          "device_instruction_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device Instruction Entity Ids",
            "description": "Entity IDs for device (resource) instructions to be updated by EOS.\nThe device ids (resource ids) have to be prepended by 'sensor.eos_' to build the entity_id.\nE.g. The instruction for device id 'battery1' becomes the entity_id 'sensor.eos_battery1'.",
            "examples": [
              [
                "sensor.eos_battery1"
              ]
            ]
          },
          "solution_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Solution Entity Ids",
            "description": "Entity IDs for optimization solution keys to be updated by EOS.\nThe solution keys have to be prepended by 'sensor.eos_' to build the entity_id.\nE.g. solution key 'battery1_idle_op_mode' becomes the entity_id 'sensor.eos_battery1_idle_op_mode'.",
            "examples": [
              [
                "sensor.eos_battery1_idle_mode_mode"
              ]
            ]
          }
        },
        "type": "object",
        "title": "HomeAssistantAdapterCommonSettings",
        "description": "Common settings for the home assistant adapter."
      },
      "HomeAssistantAdapterCommonSettings-Output": {
        "properties": {
          "config_entity_ids": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Config Entity Ids",
            "description": "Mapping of EOS config keys to Home Assistant entity IDs.\nThe config key has to be given by a \u2018/\u2019-separated path\ne.g. devices/batteries/0/capacity_wh",
            "examples": [
              {
                "devices/batteries/0/capacity_wh": "sensor.battery1_capacity"
              }
            ]
          },
          "load_emr_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Load Emr Entity Ids",
            "description": "Entity ID(s) of load energy meter readings [kWh]",
            "examples": [
              [
                "sensor.load_energy_total_kwh"
              ],
              [
                "sensor.load_emr1_kwh",
                "sensor.load_emr2_kwh"
              ]
            ]
          },
          "grid_export_emr_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grid Export Emr Entity Ids",
            "description": "Entity ID(s) of export to grid energy meter readings [kWh]",
            "examples": [
              [
                "sensor.grid_export_energy_total_kwh"
              ]
            ]
          },
          "grid_import_emr_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grid Import Emr Entity Ids",
            "description": "Entity ID(s) of import from grid energy meter readings [kWh]",
            "examples": [
              [
                "sensor.grid_import_energy_total_kwh"
              ]
            ]
          },
          "pv_production_emr_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pv Production Emr Entity Ids",
            "description": "Entity ID(s) of PV production energy meter readings [kWh]",
            "examples": [
              [
                "sensor.pv_energy_total_kwh"
              ],
              [
                "sensor.pv_emr1_kwh",
                "sensor.pv_emr2_kwh"
              ]
            ]
          },
          "device_measurement_entity_ids": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device Measurement Entity Ids",
            "description": "Mapping of EOS measurement keys used by device (resource) simulations to Home Assistant entity IDs.",
            "examples": [
              {
                "battery1_soc_factor": "sensor.battery1_soc_factor",
                "ev11_soc_factor": "sensor.ev11_soc_factor"
              }
            ]
          },
          "device_instruction_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Device Instruction Entity Ids",
            "description": "Entity IDs for device (resource) instructions to be updated by EOS.\nThe device ids (resource ids) have to be prepended by 'sensor.eos_' to build the entity_id.\nE.g. The instruction for device id 'battery1' becomes the entity_id 'sensor.eos_battery1'.",
            "examples": [
              [
                "sensor.eos_battery1"
              ]
            ]
          },
          "solution_entity_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Solution Entity Ids",
            "description": "Entity IDs for optimization solution keys to be updated by EOS.\nThe solution keys have to be prepended by 'sensor.eos_' to build the entity_id.\nE.g. solution key 'battery1_idle_op_mode' becomes the entity_id 'sensor.eos_battery1_idle_op_mode'.",
            "examples": [
              [
                "sensor.eos_battery1_idle_mode_mode"
              ]
            ]
          },
          "homeassistant_entity_ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Homeassistant Entity Ids",
            "description": "Entity IDs available at Home Assistant.",
            "readOnly": true
          },
          "eos_solution_entity_ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Eos Solution Entity Ids",
            "description": "Entity IDs for optimization solution available at EOS.",
            "readOnly": true
          },
          "eos_device_instruction_entity_ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Eos Device Instruction Entity Ids",
            "description": "Entity IDs for energy management instructions available at EOS.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "homeassistant_entity_ids",
          "eos_solution_entity_ids",
          "eos_device_instruction_entity_ids"
        ],
        "title": "HomeAssistantAdapterCommonSettings",
        "description": "Common settings for the home assistant adapter."
      },
      "InverterCommonSettings-Input": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of device",
            "examples": [
              "battery1",
              "ev1",
              "inverter1",
              "dishwasher"
            ]
          },
          "max_power_w": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Power W",
            "description": "Maximum power [W].",
            "examples": [
              10000
            ]
          },
          "battery_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Battery Id",
            "description": "ID of battery controlled by this inverter.",
            "examples": [
              null,
              "battery1"
            ]
          },
          "ac_to_dc_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Ac To Dc Efficiency",
            "description": "Efficiency of AC to DC conversion for grid-to-battery AC charging (0-1). Set to 0 to disable AC charging. Default 1.0 (no additional inverter loss).",
            "default": 1.0,
            "examples": [
              0.95,
              1.0,
              0.0
            ]
          },
          "dc_to_ac_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Dc To Ac Efficiency",
            "description": "Efficiency of DC to AC conversion for battery discharging to AC load/grid (0-1). Default 1.0 (no additional inverter loss).",
            "default": 1.0,
            "examples": [
              0.95,
              1.0
            ]
          },
          "max_ac_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Ac Charge Power W",
            "description": "Maximum AC charging power in watts. null means no additional limit. Set to 0 to disable AC charging.",
            "examples": [
              null,
              0,
              5000
            ]
          }
        },
        "type": "object",
        "title": "InverterCommonSettings",
        "description": "Inverter devices base settings."
      },
      "InverterCommonSettings-Output": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of device",
            "examples": [
              "battery1",
              "ev1",
              "inverter1",
              "dishwasher"
            ]
          },
          "max_power_w": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Power W",
            "description": "Maximum power [W].",
            "examples": [
              10000
            ]
          },
          "battery_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Battery Id",
            "description": "ID of battery controlled by this inverter.",
            "examples": [
              null,
              "battery1"
            ]
          },
          "ac_to_dc_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Ac To Dc Efficiency",
            "description": "Efficiency of AC to DC conversion for grid-to-battery AC charging (0-1). Set to 0 to disable AC charging. Default 1.0 (no additional inverter loss).",
            "default": 1.0,
            "examples": [
              0.95,
              1.0,
              0.0
            ]
          },
          "dc_to_ac_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Dc To Ac Efficiency",
            "description": "Efficiency of DC to AC conversion for battery discharging to AC load/grid (0-1). Default 1.0 (no additional inverter loss).",
            "default": 1.0,
            "examples": [
              0.95,
              1.0
            ]
          },
          "max_ac_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Ac Charge Power W",
            "description": "Maximum AC charging power in watts. null means no additional limit. Set to 0 to disable AC charging.",
            "examples": [
              null,
              0,
              5000
            ]
          },
          "measurement_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Measurement Keys",
            "description": "Measurement keys for the inverter stati that are measurements.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "measurement_keys"
        ],
        "title": "InverterCommonSettings",
        "description": "Inverter devices base settings."
      },
      "InverterParameters": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of inverter",
            "examples": [
              "inverter1"
            ]
          },
          "hours": {
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hours",
            "description": "Number of prediction hours. Defaults to global config prediction hours.",
            "examples": [
              null
            ]
          },
          "max_power_wh": {
            "type": "number",
            "exclusiveMinimum": 0.0,
            "title": "Max Power Wh",
            "examples": [
              10000
            ]
          },
          "battery_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Battery Id",
            "description": "ID of battery",
            "examples": [
              null,
              "battery1"
            ]
          },
          "ac_to_dc_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Ac To Dc Efficiency",
            "description": "Efficiency of AC to DC conversion (for AC/grid charging of battery). Set to 0 to disable AC charging via inverter. Default 1.0 for backward compatibility (no additional inverter loss).",
            "default": 1.0,
            "examples": [
              0.95,
              1.0,
              0.0
            ]
          },
          "dc_to_ac_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Dc To Ac Efficiency",
            "description": "Efficiency of DC to AC conversion (for battery discharging to AC load/grid). Default 1.0 for backward compatibility (no additional inverter loss).",
            "default": 1.0,
            "examples": [
              0.95,
              1.0
            ]
          },
          "max_ac_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Ac Charge Power W",
            "description": "Maximum AC charging power in watts. None means no additional limit (battery's own max_charge_power_w applies). Set to 0 to disable AC charging.",
            "examples": [
              null,
              0,
              5000
            ]
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "device_id",
          "max_power_wh"
        ],
        "title": "InverterParameters",
        "description": "Inverter Device Simulation Configuration."
      },
      "LoadAkkudoktorCommonSettings": {
        "properties": {
          "loadakkudoktor_year_energy_kwh": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Loadakkudoktor Year Energy Kwh",
            "description": "Yearly energy consumption (kWh).",
            "examples": [
              40421
            ]
          }
        },
        "type": "object",
        "title": "LoadAkkudoktorCommonSettings",
        "description": "Common settings for load data import from file."
      },
      "LoadCommonSettings-Input": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Load provider id of provider to be used.",
            "examples": [
              "LoadAkkudoktor"
            ]
          },
          "loadakkudoktor": {
            "$ref": "#/components/schemas/LoadAkkudoktorCommonSettings",
            "description": "LoadAkkudoktor provider settings."
          },
          "loadimport": {
            "$ref": "#/components/schemas/LoadImportCommonSettings",
            "description": "LoadImport provider settings."
          },
          "vrm": {
            "$ref": "#/components/schemas/LoadVrmCommonSettings",
            "description": "Victron Remote Management (VRM) provider settings."
          }
        },
        "type": "object",
        "title": "LoadCommonSettings",
        "description": "Load Prediction Configuration."
      },
      "LoadCommonSettings-Output": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Load provider id of provider to be used.",
            "examples": [
              "LoadAkkudoktor"
            ]
          },
          "loadakkudoktor": {
            "$ref": "#/components/schemas/LoadAkkudoktorCommonSettings",
            "description": "LoadAkkudoktor provider settings."
          },
          "loadimport": {
            "$ref": "#/components/schemas/LoadImportCommonSettings",
            "description": "LoadImport provider settings."
          },
          "vrm": {
            "$ref": "#/components/schemas/LoadVrmCommonSettings",
            "description": "Victron Remote Management (VRM) provider settings."
          },
          "providers": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Providers",
            "description": "Available load provider ids.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "providers"
        ],
        "title": "LoadCommonSettings",
        "description": "Load Prediction Configuration."
      },
      "LoadImportCommonSettings": {
        "properties": {
          "import_file_path": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import File Path",
            "description": "Path to the file to import load data from.",
            "examples": [
              null,
              "/path/to/yearly_load.json"
            ]
          },
          "import_json": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import Json",
            "description": "JSON string, dictionary of load forecast value lists.",
            "examples": [
              "{\"loadforecast_power_w\": [676.71, 876.19, 527.13]}"
            ]
          }
        },
        "type": "object",
        "title": "LoadImportCommonSettings",
        "description": "Common settings for load data import from file or JSON string."
      },
      "LoadVrmCommonSettings": {
        "properties": {
          "token": {
            "type": "string",
            "title": "Token",
            "description": "Access token for connecting to the Victron Remote Management (VRM) API",
            "default": "your-token",
            "examples": [
              "your-token"
            ]
          },
          "site_id": {
            "type": "integer",
            "title": "Site Id",
            "description": "VRM-Installation-ID",
            "default": 12345,
            "examples": [
              12345
            ]
          }
        },
        "type": "object",
        "title": "LoadVrmCommonSettings",
        "description": "Common settings for load forecast VRM API."
      },
      "LoggingCommonSettings-Input": {
        "properties": {
          "api_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Api Level",
            "description": "Logging level for API response.",
            "examples": [
              "TRACE",
              "DEBUG",
              "INFO",
              "WARNING",
              "ERROR",
              "CRITICAL"
            ]
          },
          "console_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Console Level",
            "description": "Logging level for logging to console.",
            "examples": [
              "TRACE",
              "DEBUG",
              "INFO",
              "WARNING",
              "ERROR",
              "CRITICAL"
            ]
          },
          "file_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "File Level",
            "description": "Logging level for logging to file.",
            "examples": [
              "TRACE",
              "DEBUG",
              "INFO",
              "WARNING",
              "ERROR",
              "CRITICAL"
            ]
          }
        },
        "type": "object",
        "title": "LoggingCommonSettings",
        "description": "Logging Configuration."
      },
      "LoggingCommonSettings-Output": {
        "properties": {
          "api_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Api Level",
            "description": "Logging level for API response.",
            "examples": [
              "TRACE",
              "DEBUG",
              "INFO",
              "WARNING",
              "ERROR",
              "CRITICAL"
            ]
          },
          "console_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Console Level",
            "description": "Logging level for logging to console.",
            "examples": [
              "TRACE",
              "DEBUG",
              "INFO",
              "WARNING",
              "ERROR",
              "CRITICAL"
            ]
          },
          "file_level": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "File Level",
            "description": "Logging level for logging to file.",
            "examples": [
              "TRACE",
              "DEBUG",
              "INFO",
              "WARNING",
              "ERROR",
              "CRITICAL"
            ]
          },
          "file_path": {
            "anyOf": [
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "File Path",
            "description": "Computed log file path based on data output path.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "file_path"
        ],
        "title": "LoggingCommonSettings",
        "description": "Logging Configuration."
      },
      "MeasurementCommonSettings-Input": {
        "properties": {
          "historic_hours": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Historic Hours",
            "description": "Number of hours into the past for measurement data",
            "default": 17520,
            "examples": [
              17520
            ]
          },
          "load_emr_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Load Emr Keys",
            "description": "The keys of the measurements that are energy meter readings of a load [kWh].",
            "examples": [
              [
                "load0_emr"
              ]
            ]
          },
          "grid_export_emr_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grid Export Emr Keys",
            "description": "The keys of the measurements that are energy meter readings of energy export to grid [kWh].",
            "examples": [
              [
                "grid_export_emr"
              ]
            ]
          },
          "grid_import_emr_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grid Import Emr Keys",
            "description": "The keys of the measurements that are energy meter readings of energy import from grid [kWh].",
            "examples": [
              [
                "grid_import_emr"
              ]
            ]
          },
          "pv_production_emr_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pv Production Emr Keys",
            "description": "The keys of the measurements that are PV production energy meter readings [kWh].",
            "examples": [
              [
                "pv1_emr"
              ]
            ]
          }
        },
        "type": "object",
        "title": "MeasurementCommonSettings",
        "description": "Measurement Configuration."
      },
      "MeasurementCommonSettings-Output": {
        "properties": {
          "historic_hours": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Historic Hours",
            "description": "Number of hours into the past for measurement data",
            "default": 17520,
            "examples": [
              17520
            ]
          },
          "load_emr_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Load Emr Keys",
            "description": "The keys of the measurements that are energy meter readings of a load [kWh].",
            "examples": [
              [
                "load0_emr"
              ]
            ]
          },
          "grid_export_emr_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grid Export Emr Keys",
            "description": "The keys of the measurements that are energy meter readings of energy export to grid [kWh].",
            "examples": [
              [
                "grid_export_emr"
              ]
            ]
          },
          "grid_import_emr_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Grid Import Emr Keys",
            "description": "The keys of the measurements that are energy meter readings of energy import from grid [kWh].",
            "examples": [
              [
                "grid_import_emr"
              ]
            ]
          },
          "pv_production_emr_keys": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pv Production Emr Keys",
            "description": "The keys of the measurements that are PV production energy meter readings [kWh].",
            "examples": [
              [
                "pv1_emr"
              ]
            ]
          },
          "keys": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Keys",
            "description": "The keys of the measurements that can be stored.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "keys"
        ],
        "title": "MeasurementCommonSettings",
        "description": "Measurement Configuration."
      },
      "NodeREDAdapterCommonSettings": {
        "properties": {
          "host": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Host",
            "description": "Node-RED server IP address. Defaults to 127.0.0.1.",
            "default": "127.0.0.1",
            "examples": [
              "127.0.0.1",
              "localhost"
            ]
          },
          "port": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Port",
            "description": "Node-RED server IP port number. Defaults to 1880.",
            "default": 1880,
            "examples": [
              1880
            ]
          }
        },
        "type": "object",
        "title": "NodeREDAdapterCommonSettings",
        "description": "Common settings for the NodeRED adapter.\n\nThe Node-RED adapter sends to HTTP IN nodes.\n\nThis is the example flow:\n\n`[HTTP In <URL>] -> [Function (parse payload)] -> [Debug] -> [HTTP Response]`\n\nThere are two URLs that are used:\n\n- GET /eos/data_aquisition\n  The GET is issued before the optimization.\n- POST /eos/control_dispatch\n  The POST is issued after the optimization."
      },
      "OMBCInstruction": {
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id",
            "description": "Unique identifier of the instruction in the ResourceManager scope. If not provided and a `resource_id` is passed at instantiation, this will be auto-generated as `{resource_id}@{UUID}`."
          },
          "execution_time": {
            "type": "string",
            "format": "date-time",
            "title": "Execution Time",
            "description": "Start time of the instruction execution."
          },
          "abnormal_condition": {
            "type": "boolean",
            "title": "Abnormal Condition",
            "description": "Indicates if this is an instruction for abnormal conditions. Defaults to False.",
            "default": false
          },
          "type": {
            "type": "string",
            "const": "OMBCInstruction",
            "title": "Type",
            "default": "OMBCInstruction"
          },
          "operation_mode_id": {
            "type": "string",
            "title": "Operation Mode Id",
            "description": "ID of the OMBC.OperationMode to activate."
          },
          "operation_mode_factor": {
            "type": "number",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Operation Mode Factor",
            "description": "Factor with which the operation mode is configured (0 to 1)."
          },
          "resource_id": {
            "type": "string",
            "title": "Resource Id",
            "description": "Get the resource identifier component from the instruction's `id`.\n\nAssumes the `id` follows the format `{resource_id}@{UUID}`. Extracts the resource_id part\nof the id by splitting at the last @.\n\nReturns:\n    str: The resource identifier prefix of `id`, or an empty string if `id` is None.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "execution_time",
          "operation_mode_id",
          "operation_mode_factor",
          "resource_id"
        ],
        "title": "OMBCInstruction",
        "description": "Instruction for Operation Mode Based Control (OMBC).\n\nContains information about when and how to activate a specific operation mode.\nUsed to command resources to change their operation at a specified time."
      },
      "OMBCStatus": {
        "properties": {
          "type": {
            "type": "string",
            "const": "OMBCStatus",
            "title": "Type",
            "default": "OMBCStatus"
          },
          "active_operation_mode_id": {
            "type": "string",
            "title": "Active Operation Mode Id",
            "description": "ID of the currently active operation mode."
          },
          "operation_mode_factor": {
            "type": "number",
            "maximum": 1.0,
            "minimum": 0.0,
            "title": "Operation Mode Factor",
            "description": "Factor with which the operation mode is configured (between 0 and 1)."
          },
          "previous_operation_mode_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Operation Mode Id",
            "description": "ID of the previously active operation mode, if known."
          },
          "transition_timestamp": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transition Timestamp",
            "description": "Timestamp of transition to the active operation mode, if applicable."
          }
        },
        "type": "object",
        "required": [
          "active_operation_mode_id",
          "operation_mode_factor"
        ],
        "title": "OMBCStatus",
        "description": "Reports the current operational status of an Operation Mode Based Control system.\n\nThis model provides real-time status information about an OMBC-controlled device,\nincluding which operation mode is currently active, how it is configured,\nand information about recent mode transitions. It enables monitoring of the\ndevice's operational state and tracking mode transition history."
      },
      "OptimizationAlgorithm": {
        "type": "string",
        "enum": [
          "GENETIC",
          "GENETIC0"
        ],
        "title": "OptimizationAlgorithm",
        "description": "Optimization Algorithm."
      },
      "OptimizationCommonSettings-Input": {
        "properties": {
          "algorithm": {
            "$ref": "#/components/schemas/OptimizationAlgorithm",
            "description": "Optimization algorithm [GENETIC | GENETIC0]. Defaults to GENETIC.",
            "examples": [
              "GENETIC",
              "GENETIC0"
            ]
          },
          "genetic": {
            "$ref": "#/components/schemas/GeneticCommonSettings-Input",
            "description": "GENETIC optimization algorithm configuration.",
            "examples": [
              {
                "individuals": 400,
                "penalties": {
                  "ev_soc_miss": 10
                }
              }
            ]
          },
          "genetic0": {
            "$ref": "#/components/schemas/Genetic0CommonSettings-Input",
            "description": "GENETIC0 optimization algorithm configuration.",
            "examples": [
              {
                "individuals": 400,
                "penalties": {
                  "ev_soc_miss": 10
                }
              }
            ]
          }
        },
        "type": "object",
        "title": "OptimizationCommonSettings",
        "description": "General Optimization Configuration."
      },
      "OptimizationCommonSettings-Output": {
        "properties": {
          "algorithm": {
            "$ref": "#/components/schemas/OptimizationAlgorithm",
            "description": "Optimization algorithm [GENETIC | GENETIC0]. Defaults to GENETIC.",
            "examples": [
              "GENETIC",
              "GENETIC0"
            ]
          },
          "genetic": {
            "$ref": "#/components/schemas/GeneticCommonSettings-Output",
            "description": "GENETIC optimization algorithm configuration.",
            "examples": [
              {
                "individuals": 400,
                "penalties": {
                  "ev_soc_miss": 10
                }
              }
            ]
          },
          "genetic0": {
            "$ref": "#/components/schemas/Genetic0CommonSettings-Output",
            "description": "GENETIC0 optimization algorithm configuration.",
            "examples": [
              {
                "individuals": 400,
                "penalties": {
                  "ev_soc_miss": 10
                }
              }
            ]
          },
          "algorithms": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Algorithms",
            "description": "Available optimization algorithms.",
            "readOnly": true
          },
          "keys": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Keys",
            "description": "The keys of the solution.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "algorithms",
          "keys"
        ],
        "title": "OptimizationCommonSettings",
        "description": "General Optimization Configuration."
      },
      "OptimizationSolution": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique ID for the optimization solution."
          },
          "generated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Generated At",
            "description": "Timestamp when the solution was generated."
          },
          "comment": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comment",
            "description": "Optional comment or annotation for the solution."
          },
          "valid_from": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid From",
            "description": "Start time of the optimization solution."
          },
          "valid_until": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid Until",
            "description": "End time of the optimization solution."
          },
          "total_losses_energy_wh": {
            "type": "number",
            "title": "Total Losses Energy Wh",
            "description": "The total losses in watt-hours over the entire period."
          },
          "total_revenues_amt": {
            "type": "number",
            "title": "Total Revenues Amt",
            "description": "The total revenues [money amount]."
          },
          "total_costs_amt": {
            "type": "number",
            "title": "Total Costs Amt",
            "description": "The total costs [money amount]."
          },
          "fitness_score": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "uniqueItems": true,
            "title": "Fitness Score",
            "description": "The fitness score as a set of fitness values."
          },
          "prediction": {
            "$ref": "#/components/schemas/PydanticDateTimeDataFrame",
            "description": "Datetime data frame with time series prediction data per optimization interval:- pv_energy_wh: PV energy prediction (positive) in wh- elec_price_amt_kwh: Electricity price prediction in money per kwh- feed_in_tariff_amt_kwh: Feed in tariff prediction in money per kwh- weather_temp_air_celcius: Temperature in \u00b0C- loadforecast_energy_wh: Load mean energy prediction in wh- loadakkudoktor_std_energy_wh: Load energy standard deviation prediction in wh- loadakkudoktor_mean_energy_wh: Load mean energy prediction in wh"
          },
          "solution": {
            "$ref": "#/components/schemas/PydanticDateTimeDataFrame",
            "description": "Datetime data frame with time series solution data per optimization interval:- load_energy_wh: Load of all energy consumers in wh- grid_energy_wh: Grid energy feed in (negative) or consumption (positive) in wh- costs_amt: Costs in money amount- revenue_amt: Revenue in money amount- losses_energy_wh: Energy losses in wh- <device-id>_operation_mode_id: Operation mode id of the device.- <device-id>_operation_mode_factor: Operation mode factor of the device.- <device-id>_soc_factor: State of charge of a battery/ electric vehicle device as factor of total capacity.- <device-id>_energy_wh: Energy consumption (positive) of a device in wh."
          }
        },
        "type": "object",
        "required": [
          "id",
          "generated_at",
          "total_losses_energy_wh",
          "total_revenues_amt",
          "total_costs_amt",
          "fitness_score",
          "prediction",
          "solution"
        ],
        "title": "OptimizationSolution",
        "description": "General Optimization Solution."
      },
      "PEBCInstruction": {
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id",
            "description": "Unique identifier of the instruction in the ResourceManager scope. If not provided and a `resource_id` is passed at instantiation, this will be auto-generated as `{resource_id}@{UUID}`."
          },
          "execution_time": {
            "type": "string",
            "format": "date-time",
            "title": "Execution Time",
            "description": "Start time of the instruction execution."
          },
          "abnormal_condition": {
            "type": "boolean",
            "title": "Abnormal Condition",
            "description": "Indicates if this is an instruction for abnormal conditions. Defaults to False.",
            "default": false
          },
          "type": {
            "type": "string",
            "const": "PEBCInstruction",
            "title": "Type",
            "default": "PEBCInstruction"
          },
          "power_constraints_id": {
            "type": "string",
            "title": "Power Constraints Id",
            "description": "ID of the associated PEBC.PowerConstraints."
          },
          "power_envelopes": {
            "items": {
              "$ref": "#/components/schemas/PEBCPowerEnvelope"
            },
            "type": "array",
            "minItems": 1,
            "title": "Power Envelopes",
            "description": "List of PowerEnvelopes to follow. One per CommodityQuantity, max one per type."
          },
          "resource_id": {
            "type": "string",
            "title": "Resource Id",
            "description": "Get the resource identifier component from the instruction's `id`.\n\nAssumes the `id` follows the format `{resource_id}@{UUID}`. Extracts the resource_id part\nof the id by splitting at the last @.\n\nReturns:\n    str: The resource identifier prefix of `id`, or an empty string if `id` is None.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "execution_time",
          "power_constraints_id",
          "power_envelopes",
          "resource_id"
        ],
        "title": "PEBCInstruction",
        "description": "Represents a control instruction for Power Envelope Based Control.\n\nThis model defines a complete instruction for controlling a device using power\nenvelopes. It specifies when the instruction should be executed, which power\nconstraints apply, and the specific power envelopes to follow. It supports\nmultiple power envelopes for different commodity quantities."
      },
      "PEBCPowerEnvelope": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique identifier of this PEBC.PowerEnvelope, scoped to the ResourceManager."
          },
          "commodity_quantity": {
            "$ref": "#/components/schemas/CommodityQuantity",
            "description": "Type of power quantity the envelope applies to."
          },
          "power_envelope_elements": {
            "items": {
              "$ref": "#/components/schemas/PEBCPowerEnvelopeElement"
            },
            "type": "array",
            "minItems": 1,
            "title": "Power Envelope Elements",
            "description": "Chronologically ordered list of PowerEnvelopeElements. Defines how power should be constrained over time."
          }
        },
        "type": "object",
        "required": [
          "id",
          "commodity_quantity",
          "power_envelope_elements"
        ],
        "title": "PEBCPowerEnvelope",
        "description": "Defines a complete power envelope constraint for a specific commodity quantity.\n\nThis model specifies a time-series of power limits (upper and lower bounds) that\na device must operate within. The power envelope consists of sequential elements,\neach defining constraints for a specific duration, creating a complete time-varying\noperational boundary for the device."
      },
      "PEBCPowerEnvelopeElement": {
        "properties": {
          "duration": {
            "type": "string",
            "format": "duration",
            "title": "Duration",
            "description": "Duration of this power envelope element."
          },
          "upper_limit": {
            "type": "number",
            "title": "Upper Limit",
            "description": "Upper power limit for the given commodity_quantity. Shall match PEBC.AllowedLimitRange with limit_type UPPER_LIMIT."
          },
          "lower_limit": {
            "type": "number",
            "title": "Lower Limit",
            "description": "Lower power limit for the given commodity_quantity. Shall match PEBC.AllowedLimitRange with limit_type LOWER_LIMIT."
          }
        },
        "type": "object",
        "required": [
          "duration",
          "upper_limit",
          "lower_limit"
        ],
        "title": "PEBCPowerEnvelopeElement",
        "description": "Defines a segment of a power envelope for a specific duration.\n\nThis model specifies the upper and lower power limits for a specific time duration,\nforming part of a complete power envelope. A sequence of these elements creates\na time-varying power envelope that constrains device power consumption or production."
      },
      "PPBCEndInterruptionInstruction": {
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id",
            "description": "Unique identifier of the instruction in the ResourceManager scope. If not provided and a `resource_id` is passed at instantiation, this will be auto-generated as `{resource_id}@{UUID}`."
          },
          "execution_time": {
            "type": "string",
            "format": "date-time",
            "title": "Execution Time",
            "description": "Start time of the instruction execution."
          },
          "abnormal_condition": {
            "type": "boolean",
            "title": "Abnormal Condition",
            "description": "Indicates if this is an instruction for abnormal conditions. Defaults to False.",
            "default": false
          },
          "type": {
            "type": "string",
            "const": "PPBCEndInterruptionInstruction",
            "title": "Type",
            "default": "PPBCEndInterruptionInstruction"
          },
          "power_profile_id": {
            "type": "string",
            "title": "Power Profile Id",
            "description": "ID of the PowerProfileDefinition related to the ended interruption."
          },
          "sequence_container_id": {
            "type": "string",
            "title": "Sequence Container Id",
            "description": "ID of the container containing the sequence."
          },
          "power_sequence_id": {
            "type": "string",
            "title": "Power Sequence Id",
            "description": "ID of the PowerSequence for which the interruption ends."
          },
          "resource_id": {
            "type": "string",
            "title": "Resource Id",
            "description": "Get the resource identifier component from the instruction's `id`.\n\nAssumes the `id` follows the format `{resource_id}@{UUID}`. Extracts the resource_id part\nof the id by splitting at the last @.\n\nReturns:\n    str: The resource identifier prefix of `id`, or an empty string if `id` is None.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "execution_time",
          "power_profile_id",
          "sequence_container_id",
          "power_sequence_id",
          "resource_id"
        ],
        "title": "PPBCEndInterruptionInstruction",
        "description": "Represents an instruction to resume execution of a previously interrupted power sequence.\n\nThis model defines a control instruction that ends an interruption and resumes\nexecution of a previously interrupted power sequence. It complements the start\ninterruption instruction, enabling the complete interruption-resumption cycle\nfor flexible sequence execution control."
      },
      "PPBCPowerProfileStatus": {
        "properties": {
          "type": {
            "type": "string",
            "const": "PPBCPowerProfileStatus",
            "title": "Type",
            "default": "PPBCPowerProfileStatus"
          },
          "sequence_container_status": {
            "items": {
              "$ref": "#/components/schemas/PPBCPowerSequenceContainerStatus"
            },
            "type": "array",
            "title": "Sequence Container Status",
            "description": "Status list for all sequence containers in the PowerProfileDefinition."
          }
        },
        "type": "object",
        "required": [
          "sequence_container_status"
        ],
        "title": "PPBCPowerProfileStatus",
        "description": "Reports the current status of a power profile execution.\n\nThis model provides comprehensive status information for all sequence containers\nin a power profile definition, enabling monitoring of profile execution progress.\nIt tracks which sequences have been selected and their current execution status."
      },
      "PPBCPowerSequenceContainerStatus": {
        "properties": {
          "power_profile_id": {
            "type": "string",
            "title": "Power Profile Id",
            "description": "ID of the related PowerProfileDefinition."
          },
          "sequence_container_id": {
            "type": "string",
            "title": "Sequence Container Id",
            "description": "ID of the PowerSequenceContainer being reported on."
          },
          "selected_sequence_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Sequence Id",
            "description": "ID of the selected PowerSequence, if any."
          },
          "progress": {
            "anyOf": [
              {
                "type": "string",
                "format": "duration"
              },
              {
                "type": "null"
              }
            ],
            "title": "Progress",
            "description": "Elapsed time since the selected sequence started, if applicable."
          },
          "status": {
            "$ref": "#/components/schemas/PPBCPowerSequenceStatus",
            "description": "Status of the selected PowerSequence."
          }
        },
        "type": "object",
        "required": [
          "power_profile_id",
          "sequence_container_id",
          "status"
        ],
        "title": "PPBCPowerSequenceContainerStatus",
        "description": "Reports the status of a specific power sequence container execution.\n\nThis model provides detailed status information for a single sequence container,\nincluding which sequence was selected, the current execution progress, and the\noperational status. It enables fine-grained monitoring of sequence execution\nwithin the broader power profile."
      },
      "PPBCPowerSequenceStatus": {
        "type": "string",
        "enum": [
          "NOT_SCHEDULED",
          "SCHEDULED",
          "EXECUTING",
          "INTERRUPTED",
          "FINISHED",
          "ABORTED"
        ],
        "title": "PPBCPowerSequenceStatus",
        "description": "Enumeration of status values for Power Profile Based Control sequences."
      },
      "PPBCScheduleInstruction": {
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id",
            "description": "Unique identifier of the instruction in the ResourceManager scope. If not provided and a `resource_id` is passed at instantiation, this will be auto-generated as `{resource_id}@{UUID}`."
          },
          "execution_time": {
            "type": "string",
            "format": "date-time",
            "title": "Execution Time",
            "description": "Start time of the instruction execution."
          },
          "abnormal_condition": {
            "type": "boolean",
            "title": "Abnormal Condition",
            "description": "Indicates if this is an instruction for abnormal conditions. Defaults to False.",
            "default": false
          },
          "type": {
            "type": "string",
            "const": "PPBCScheduleInstruction",
            "title": "Type",
            "default": "PPBCScheduleInstruction"
          },
          "power_profile_id": {
            "type": "string",
            "title": "Power Profile Id",
            "description": "ID of the PowerProfileDefinition being scheduled."
          },
          "sequence_container_id": {
            "type": "string",
            "title": "Sequence Container Id",
            "description": "ID of the container with the selected sequence."
          },
          "power_sequence_id": {
            "type": "string",
            "title": "Power Sequence Id",
            "description": "ID of the selected PowerSequence."
          },
          "resource_id": {
            "type": "string",
            "title": "Resource Id",
            "description": "Get the resource identifier component from the instruction's `id`.\n\nAssumes the `id` follows the format `{resource_id}@{UUID}`. Extracts the resource_id part\nof the id by splitting at the last @.\n\nReturns:\n    str: The resource identifier prefix of `id`, or an empty string if `id` is None.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "execution_time",
          "power_profile_id",
          "sequence_container_id",
          "power_sequence_id",
          "resource_id"
        ],
        "title": "PPBCScheduleInstruction",
        "description": "Represents an instruction to schedule execution of a specific power sequence.\n\nThis model defines a control instruction that schedules the execution of a\nselected power sequence from a power profile. It specifies which sequence\nhas been selected and when it should begin execution, enabling precise control\nof device power behavior according to the predefined sequence."
      },
      "PPBCStartInterruptionInstruction": {
        "properties": {
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id",
            "description": "Unique identifier of the instruction in the ResourceManager scope. If not provided and a `resource_id` is passed at instantiation, this will be auto-generated as `{resource_id}@{UUID}`."
          },
          "execution_time": {
            "type": "string",
            "format": "date-time",
            "title": "Execution Time",
            "description": "Start time of the instruction execution."
          },
          "abnormal_condition": {
            "type": "boolean",
            "title": "Abnormal Condition",
            "description": "Indicates if this is an instruction for abnormal conditions. Defaults to False.",
            "default": false
          },
          "type": {
            "type": "string",
            "const": "PPBCStartInterruptionInstruction",
            "title": "Type",
            "default": "PPBCStartInterruptionInstruction"
          },
          "power_profile_id": {
            "type": "string",
            "title": "Power Profile Id",
            "description": "ID of the PowerProfileDefinition whose sequence is being interrupted."
          },
          "sequence_container_id": {
            "type": "string",
            "title": "Sequence Container Id",
            "description": "ID of the container containing the sequence."
          },
          "power_sequence_id": {
            "type": "string",
            "title": "Power Sequence Id",
            "description": "ID of the PowerSequence to be interrupted."
          },
          "resource_id": {
            "type": "string",
            "title": "Resource Id",
            "description": "Get the resource identifier component from the instruction's `id`.\n\nAssumes the `id` follows the format `{resource_id}@{UUID}`. Extracts the resource_id part\nof the id by splitting at the last @.\n\nReturns:\n    str: The resource identifier prefix of `id`, or an empty string if `id` is None.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "execution_time",
          "power_profile_id",
          "sequence_container_id",
          "power_sequence_id",
          "resource_id"
        ],
        "title": "PPBCStartInterruptionInstruction",
        "description": "Represents an instruction to interrupt execution of a running power sequence.\n\nThis model defines a control instruction that interrupts the execution of an\nactive power sequence. It enables dynamic control over sequence execution,\nallowing temporary suspension of a sequence in response to changing system conditions\nor requirements, particularly for sequences marked as interruptible."
      },
      "PVForecastCommonSettings-Input": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "PVForecast provider id of provider to be used.",
            "examples": [
              "PVForecastAkkudoktor"
            ]
          },
          "pvforecastimport": {
            "$ref": "#/components/schemas/PVForecastImportCommonSettings",
            "description": "PV forecast import provider settings"
          },
          "vrm": {
            "$ref": "#/components/schemas/PVForecastVrmCommonSettings",
            "description": "Victron Remote Management (VRM) provider settings"
          },
          "pvlib": {
            "$ref": "#/components/schemas/PVForecastPVLibCommonSettings",
            "description": "PVLib provider settings"
          },
          "pvnode": {
            "$ref": "#/components/schemas/PVForecastPVNodeCommonSettings",
            "description": "PVNode provider settings"
          },
          "forecastsolar": {
            "$ref": "#/components/schemas/PVForecastForecastSolarCommonSettings",
            "description": "ForecastSolar provider settings"
          },
          "solcast": {
            "$ref": "#/components/schemas/PVForecastSolcastCommonSettings",
            "description": "Solcast provider settings"
          },
          "planes": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/PVForecastPlaneSetting"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Planes",
            "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": 180.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": 90.0,
                  "surface_tilt": 20.0,
                  "trackingtype": 1,
                  "userhorizon": [
                    5.0,
                    15.0,
                    25.0
                  ]
                }
              ]
            ]
          },
          "max_planes": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Planes",
            "description": "Maximum number of planes that can be set",
            "default": 0,
            "examples": [
              1,
              2
            ]
          }
        },
        "type": "object",
        "title": "PVForecastCommonSettings",
        "description": "PV Forecast Configuration."
      },
      "PVForecastCommonSettings-Output": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "PVForecast provider id of provider to be used.",
            "examples": [
              "PVForecastAkkudoktor"
            ]
          },
          "pvforecastimport": {
            "$ref": "#/components/schemas/PVForecastImportCommonSettings",
            "description": "PV forecast import provider settings"
          },
          "vrm": {
            "$ref": "#/components/schemas/PVForecastVrmCommonSettings",
            "description": "Victron Remote Management (VRM) provider settings"
          },
          "pvlib": {
            "$ref": "#/components/schemas/PVForecastPVLibCommonSettings",
            "description": "PVLib provider settings"
          },
          "pvnode": {
            "$ref": "#/components/schemas/PVForecastPVNodeCommonSettings",
            "description": "PVNode provider settings"
          },
          "forecastsolar": {
            "$ref": "#/components/schemas/PVForecastForecastSolarCommonSettings",
            "description": "ForecastSolar provider settings"
          },
          "solcast": {
            "$ref": "#/components/schemas/PVForecastSolcastCommonSettings",
            "description": "Solcast provider settings"
          },
          "planes": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/PVForecastPlaneSetting"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Planes",
            "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": 180.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": 90.0,
                  "surface_tilt": 20.0,
                  "trackingtype": 1,
                  "userhorizon": [
                    5.0,
                    15.0,
                    25.0
                  ]
                }
              ]
            ]
          },
          "max_planes": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Planes",
            "description": "Maximum number of planes that can be set",
            "default": 0,
            "examples": [
              1,
              2
            ]
          },
          "providers": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Providers",
            "description": "Available PVForecast provider ids.",
            "readOnly": true
          },
          "planes_peakpower": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Planes Peakpower",
            "description": "Compute a list of the peak power per active planes.",
            "readOnly": true
          },
          "planes_azimuth": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Planes Azimuth",
            "description": "Compute a list of the azimuths per active planes.",
            "readOnly": true
          },
          "planes_tilt": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "title": "Planes Tilt",
            "description": "Compute a list of the tilts per active planes.",
            "readOnly": true
          },
          "planes_userhorizon": {
            "title": "Planes Userhorizon",
            "description": "Compute a list of the user horizon per active planes.",
            "readOnly": true
          },
          "planes_inverter_paco": {
            "title": "Planes Inverter Paco",
            "description": "Compute a list of the maximum power rating of the inverter per active planes.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "providers",
          "planes_peakpower",
          "planes_azimuth",
          "planes_tilt",
          "planes_userhorizon",
          "planes_inverter_paco"
        ],
        "title": "PVForecastCommonSettings",
        "description": "PV Forecast Configuration."
      },
      "PVForecastForecastSolarCommonSettings": {
        "properties": {
          "api_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Api Key",
            "description": "Forecast.Solar API key. Optional \u2014 the public endpoint works without a key (lower rate limit).",
            "examples": [
              null,
              "your-forecast-solar-key"
            ]
          }
        },
        "type": "object",
        "title": "PVForecastForecastSolarCommonSettings",
        "description": "Common settings for the Forecast.Solar PV forecast provider."
      },
      "PVForecastImportCommonSettings": {
        "properties": {
          "import_file_path": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import File Path",
            "description": "Path to the file to import PV forecast data from.",
            "examples": [
              null,
              "/path/to/pvforecast.json"
            ]
          },
          "import_json": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import Json",
            "description": "JSON string, dictionary of PV forecast value lists.",
            "examples": [
              "{\"pvforecast_ac_power\": [0, 8.05, 352.91]}"
            ]
          }
        },
        "type": "object",
        "title": "PVForecastImportCommonSettings",
        "description": "Common settings for pvforecast data import from file or JSON string."
      },
      "PVForecastPVLibCommonSettings": {
        "properties": {},
        "type": "object",
        "title": "PVForecastPVLibCommonSettings",
        "description": "Common settings for pvforecast data calculation with PVLib."
      },
      "PVForecastPVNodeCommonSettings": {
        "properties": {
          "api_key": {
            "type": "string",
            "title": "Api Key",
            "description": "pvnode.com API key (Bearer auth). Required.",
            "default": "",
            "examples": [
              "pvn_live_xxxxxxxxxxxxxxxx"
            ]
          },
          "site_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Site Id",
            "description": "pvnode.com site id of the saved plant ('Anlagen-ID'). When set, the saved (possibly calibrated) site is used. Leave empty to send the configured pvforecast.planes inline instead.",
            "examples": [
              "abcd-1234"
            ]
          },
          "forecast_days": {
            "type": "integer",
            "maximum": 7.0,
            "minimum": 1.0,
            "title": "Forecast Days",
            "description": "Forecast horizon in days (1-7, capped by the pvnode plan).",
            "default": 2,
            "examples": [
              2
            ]
          }
        },
        "type": "object",
        "title": "PVForecastPVNodeCommonSettings",
        "description": "Common settings for the pvnode.com PV forecast provider."
      },
      "PVForecastPlaneSetting": {
        "properties": {
          "surface_tilt": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 90.0,
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Surface Tilt",
            "description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
            "default": 30.0,
            "examples": [
              10.0,
              20.0
            ]
          },
          "surface_azimuth": {
            "anyOf": [
              {
                "type": "number",
                "maximum": 360.0,
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Surface Azimuth",
            "description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
            "default": 180.0,
            "examples": [
              180.0,
              90.0
            ]
          },
          "userhorizon": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Userhorizon",
            "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
              ]
            ]
          },
          "peakpower": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Peakpower",
            "description": "Nominal power of PV system in kW.",
            "examples": [
              5.0,
              3.5
            ]
          },
          "pvtechchoice": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pvtechchoice",
            "description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
            "default": "crystSi"
          },
          "mountingplace": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mountingplace",
            "description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
            "default": "building"
          },
          "loss": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Loss",
            "description": "Sum of PV system losses in percent",
            "default": 14.0
          },
          "trackingtype": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 5.0,
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Trackingtype",
            "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
            ]
          },
          "optimal_surface_tilt": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Optimal Surface Tilt",
            "description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
            "default": false,
            "examples": [
              false
            ]
          },
          "optimalangles": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Optimalangles",
            "description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
            "default": false,
            "examples": [
              false
            ]
          },
          "albedo": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Albedo",
            "description": "Proportion of the light hitting the ground that it reflects back.",
            "default": 0.2,
            "examples": [
              null
            ]
          },
          "module_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Module Model",
            "description": "Model of the PV modules of this plane.",
            "examples": [
              null
            ]
          },
          "inverter_model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Inverter Model",
            "description": "Model of the inverter of this plane.",
            "examples": [
              null
            ]
          },
          "inverter_paco": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Inverter Paco",
            "description": "AC power rating of the inverter [W].",
            "examples": [
              6000,
              4000
            ]
          },
          "modules_per_string": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Modules Per String",
            "description": "Number of the PV modules of the strings of this plane.",
            "examples": [
              20
            ]
          },
          "strings_per_inverter": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Strings Per Inverter",
            "description": "Number of the strings of the inverter of this plane.",
            "examples": [
              2
            ]
          }
        },
        "type": "object",
        "title": "PVForecastPlaneSetting",
        "description": "PV Forecast Plane Configuration."
      },
      "PVForecastSolcastCommonSettings": {
        "properties": {
          "api_key": {
            "type": "string",
            "title": "Api Key",
            "description": "Solcast API key (Bearer auth). Required.",
            "default": "",
            "examples": [
              "your-solcast-key"
            ]
          },
          "site_id": {
            "type": "string",
            "title": "Site Id",
            "description": "Solcast rooftop site (resource) id. Required.",
            "default": "",
            "examples": [
              "abcd-1234-efgh-5678"
            ]
          }
        },
        "type": "object",
        "title": "PVForecastSolcastCommonSettings",
        "description": "Common settings for the Solcast PV forecast provider."
      },
      "PVForecastVrmCommonSettings": {
        "properties": {
          "token": {
            "type": "string",
            "title": "Token",
            "description": "Access token for connecting to the Victron Remote Management (VRM) API",
            "default": "your-token",
            "examples": [
              "your-token"
            ]
          },
          "site_id": {
            "type": "integer",
            "title": "Site Id",
            "description": "VRM-Installation-ID",
            "default": 12345,
            "examples": [
              12345
            ]
          }
        },
        "type": "object",
        "title": "PVForecastVrmCommonSettings",
        "description": "Common settings for PV forecast VRM API."
      },
      "PowerMeasurement": {
        "properties": {
          "type": {
            "type": "string",
            "const": "PowerMeasurement",
            "title": "Type",
            "default": "PowerMeasurement"
          },
          "measurement_timestamp": {
            "type": "string",
            "format": "date-time",
            "title": "Measurement Timestamp",
            "description": "Timestamp when PowerValues were measured."
          },
          "values": {
            "items": {
              "$ref": "#/components/schemas/PowerValue"
            },
            "type": "array",
            "title": "Values",
            "description": "Array of measured PowerValues. Shall contain at least one item and at most one item per 'commodity_quantity' (defined inside the PowerValue)."
          }
        },
        "type": "object",
        "required": [
          "measurement_timestamp",
          "values"
        ],
        "title": "PowerMeasurement",
        "description": "Captures a set of power measurements taken at a specific point in time.\n\nThis model records multiple power values (for different commodity quantities)\nalong with the timestamp when the measurements were taken, enabling time-series\nanalysis and monitoring of power consumption or production."
      },
      "PowerValue": {
        "properties": {
          "commodity_quantity": {
            "$ref": "#/components/schemas/CommodityQuantity",
            "description": "The power quantity the value refers to."
          },
          "value": {
            "type": "number",
            "title": "Value",
            "description": "Power value expressed in the unit associated with the CommodityQuantity."
          }
        },
        "type": "object",
        "required": [
          "commodity_quantity",
          "value"
        ],
        "title": "PowerValue",
        "description": "Represents a specific power value measurement with its associated commodity quantity.\n\nThis class links a numerical power value to a specific type of power quantity (such as\nactive power, reactive power, etc.) and its unit of measurement."
      },
      "PredictionCommonSettings": {
        "properties": {
          "hours": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hours",
            "description": "Number of hours into the future for predictions",
            "default": 48
          },
          "historic_hours": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Historic Hours",
            "description": "Number of hours into the past for historical predictions data",
            "default": 48
          }
        },
        "type": "object",
        "title": "PredictionCommonSettings",
        "description": "General Prediction Configuration."
      },
      "PydanticDateTimeData": {
        "additionalProperties": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "type": "array"
            }
          ]
        },
        "type": "object",
        "title": "PydanticDateTimeData",
        "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    .. code-block:: python\n\n        {\n            \"start_datetime\": \"2024-01-01 00:00:00\",  # optional\n            \"interval\": \"1 hour\",                     # optional\n            \"loadforecast_power_w\": [20.5, 21.0, 22.1],\n            \"load_min\": [18.5, 19.0, 20.1]\n        }"
      },
      "PydanticDateTimeDataFrame": {
        "properties": {
          "data": {
            "additionalProperties": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "object",
            "title": "Data"
          },
          "dtypes": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Dtypes"
          },
          "tz": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tz",
            "description": "Timezone for datetime values"
          },
          "datetime_columns": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Datetime Columns",
            "description": "Columns to be treated as datetime"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PydanticDateTimeDataFrame",
        "description": "Pydantic model for validating pandas DataFrame data with datetime index."
      },
      "PydanticDateTimeSeries": {
        "properties": {
          "data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Data"
          },
          "dtype": {
            "type": "string",
            "title": "Dtype",
            "default": "float64"
          },
          "tz": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tz"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "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."
      },
      "SeriesProcessing": {
        "type": "string",
        "enum": [
          "raw",
          "resampled"
        ],
        "title": "SeriesProcessing"
      },
      "ServerCommonSettings": {
        "properties": {
          "host": {
            "type": "string",
            "title": "Host",
            "description": "EOS server IP address. Defaults to 127.0.0.1.",
            "default": "127.0.0.1",
            "examples": [
              "127.0.0.1",
              "localhost"
            ]
          },
          "port": {
            "type": "integer",
            "title": "Port",
            "description": "EOS server IP port number. Defaults to 8503.",
            "default": 8503,
            "examples": [
              8503
            ]
          },
          "verbose": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Verbose",
            "description": "Enable debug output",
            "default": false
          },
          "startup_eosdash": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Startup Eosdash",
            "description": "EOS server to start EOSdash server. Defaults to True.",
            "default": true
          },
          "eosdash_host": {
            "type": "string",
            "title": "Eosdash Host",
            "description": "EOSdash server IP address. Defaults to EOS server IP address.",
            "default": "127.0.0.1",
            "examples": [
              "127.0.0.1",
              "localhost"
            ]
          },
          "eosdash_port": {
            "type": "integer",
            "title": "Eosdash Port",
            "description": "EOSdash server IP port number. Defaults to 8504.",
            "default": 8504,
            "examples": [
              8504
            ]
          },
          "eosdash_supervise_interval_sec": {
            "type": "integer",
            "title": "Eosdash Supervise Interval Sec",
            "description": "Supervision interval for EOS server to supervise EOSdash [seconds].",
            "default": 10,
            "examples": [
              10
            ]
          },
          "run_as_user": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Run As User",
            "description": "The name of the target user to switch to. If ``None`` (default), the current effective user is used and no privilege change is attempted.",
            "examples": [
              null,
              "user"
            ]
          },
          "reload": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reload",
            "description": "Enable server auto-reload for debugging or development. Default is False. Monitors the package directory for changes and reloads the server.",
            "default": false,
            "examples": [
              true
            ]
          }
        },
        "type": "object",
        "title": "ServerCommonSettings",
        "description": "Server Configuration."
      },
      "SettingsEOS": {
        "properties": {
          "general": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GeneralSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "General Settings"
          },
          "cache": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CacheCommonSettings"
              },
              {
                "type": "null"
              }
            ],
            "description": "Cache Settings"
          },
          "database": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DatabaseCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Database Settings"
          },
          "ems": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EnergyManagementCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Energy Management Settings"
          },
          "logging": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LoggingCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Logging Settings"
          },
          "devices": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DevicesCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Devices Settings"
          },
          "measurement": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MeasurementCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Measurement Settings"
          },
          "optimization": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OptimizationCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Optimization Settings"
          },
          "prediction": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PredictionCommonSettings"
              },
              {
                "type": "null"
              }
            ],
            "description": "Prediction Settings"
          },
          "elecfee": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ElecFeeCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Electricity Fee Settings"
          },
          "elecprice": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ElecPriceCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Electricity Price Settings"
          },
          "feedintariff": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FeedInTariffCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Feed In Tariff Settings"
          },
          "load": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LoadCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Load Settings"
          },
          "pvforecast": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PVForecastCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "PV Forecast Settings"
          },
          "weather": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/WeatherCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Weather Settings"
          },
          "server": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ServerCommonSettings"
              },
              {
                "type": "null"
              }
            ],
            "description": "Server Settings"
          },
          "utils": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/UtilsCommonSettings"
              },
              {
                "type": "null"
              }
            ],
            "description": "Utilities Settings"
          },
          "adapter": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AdapterCommonSettings-Input"
              },
              {
                "type": "null"
              }
            ],
            "description": "Adapter Settings"
          }
        },
        "additionalProperties": false,
        "type": "object",
        "title": "SettingsEOS",
        "description": "Settings for all EOS.\n\nOnly used to update the configuration with specific settings."
      },
      "SolarPanelBatteryParameters": {
        "properties": {
          "device_id": {
            "type": "string",
            "title": "Device Id",
            "description": "ID of battery",
            "examples": [
              "battery1"
            ]
          },
          "hours": {
            "anyOf": [
              {
                "type": "integer",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Hours",
            "description": "Number of prediction hours. Defaults to global config prediction hours.",
            "examples": [
              null
            ]
          },
          "capacity_wh": {
            "type": "integer",
            "exclusiveMinimum": 0.0,
            "title": "Capacity Wh",
            "description": "An integer representing the capacity of the battery in watt-hours.",
            "examples": [
              8000
            ]
          },
          "charging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Charging Efficiency",
            "description": "A float representing the charging efficiency of the battery.",
            "default": 0.88
          },
          "discharging_efficiency": {
            "type": "number",
            "maximum": 1.0,
            "exclusiveMinimum": 0.0,
            "title": "Discharging Efficiency",
            "description": "A float representing the discharge efficiency of the battery.",
            "default": 0.88
          },
          "max_charge_power_w": {
            "anyOf": [
              {
                "type": "number",
                "exclusiveMinimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Charge Power W",
            "description": "Maximum charging power in watts.",
            "default": 5000
          },
          "initial_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Initial Soc Percentage",
            "description": "An integer representing the state of charge of the battery at the **start** of the current hour (not the current state).",
            "default": 0,
            "examples": [
              42
            ]
          },
          "min_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Min Soc Percentage",
            "description": "An integer representing the minimum state of charge (SOC) of the battery in percentage.",
            "default": 0,
            "examples": [
              10
            ]
          },
          "max_soc_percentage": {
            "type": "integer",
            "maximum": 100.0,
            "minimum": 0.0,
            "title": "Max Soc Percentage",
            "description": "An integer representing the maximum state of charge (SOC) of the battery in percentage.",
            "default": 100
          },
          "charge_rates": {
            "anyOf": [
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Charge Rates",
            "description": "Charge rates as factor of maximum charging power [0.00 ... 1.00]. None denotes all charge rates are available.",
            "examples": [
              [
                0.0,
                0.25,
                0.5,
                0.75,
                1.0
              ],
              null
            ]
          }
        },
        "additionalProperties": false,
        "type": "object",
        "required": [
          "device_id",
          "capacity_wh"
        ],
        "title": "SolarPanelBatteryParameters",
        "description": "PV battery device simulation configuration."
      },
      "TimeWindow-Input": {
        "properties": {
          "start_time": {
            "title": "Start Time",
            "description": "Naive start time of the time window (time of day, no timezone). Interpreted in the timezone of the datetime passed to contains() or earliest_start_time().",
            "examples": [
              "00:00:00"
            ]
          },
          "duration": {
            "type": "string",
            "format": "duration",
            "title": "Duration",
            "description": "Duration of the time window starting from `start_time`.",
            "examples": [
              "2 hours"
            ]
          },
          "day_of_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Day Of Week",
            "description": "Optional day of the week restriction. Can be specified as integer (0=Monday to 6=Sunday) or localized weekday name. If None, applies every day unless `date` is set.",
            "examples": [
              null
            ]
          },
          "date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date",
            "description": "Optional specific calendar date for the time window. Naive \u2014 matched against the local date of the datetime passed to contains(). Overrides `day_of_week` if set.",
            "examples": [
              null
            ]
          },
          "locale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale",
            "description": "Locale used to parse weekday names in `day_of_week` when given as string. If not set, Pendulum's default locale is used. Examples: 'en', 'de', 'fr', etc.",
            "examples": [
              null
            ]
          }
        },
        "type": "object",
        "required": [
          "start_time",
          "duration"
        ],
        "title": "TimeWindow",
        "description": "Model defining a daily or date time window with optional localization support.\n\nRepresents a time interval starting at `start_time` and lasting for `duration`.\nCan restrict applicability to a specific day of the week or a specific calendar date.\nSupports day names in multiple languages via locale-aware parsing.\n\nTimezone contract:\n\n``start_time`` is always **naive** (no ``tzinfo``).  It is interpreted as a\nlocal wall-clock time in whatever timezone the caller's ``date_time`` or\n``reference_date`` carries.  When those arguments are timezone-aware the\nwindow boundaries are evaluated in that timezone; when they are naive,\narithmetic is performed as-is (no timezone conversion occurs).\n\n``date``, being a calendar ``Date`` object, is inherently timezone-free.\n\nThis design avoids the ambiguity that arises when a stored ``start_time``\ncarries its own timezone that differs from the caller's timezone, and keeps\nthe model serialisable without timezone state."
      },
      "TimeWindow-Output": {
        "properties": {
          "start_time": {
            "type": "string",
            "title": "Start Time",
            "description": "Naive start time of the time window (time of day, no timezone). Interpreted in the timezone of the datetime passed to contains() or earliest_start_time().",
            "examples": [
              "00:00:00"
            ]
          },
          "duration": {
            "type": "string",
            "title": "Duration",
            "description": "Duration of the time window starting from `start_time`.",
            "examples": [
              "2 hours"
            ]
          },
          "day_of_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Day Of Week",
            "description": "Optional day of the week restriction. Can be specified as integer (0=Monday to 6=Sunday) or localized weekday name. If None, applies every day unless `date` is set.",
            "examples": [
              null
            ]
          },
          "date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date",
            "description": "Optional specific calendar date for the time window. Naive \u2014 matched against the local date of the datetime passed to contains(). Overrides `day_of_week` if set.",
            "examples": [
              null
            ]
          },
          "locale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale",
            "description": "Locale used to parse weekday names in `day_of_week` when given as string. If not set, Pendulum's default locale is used. Examples: 'en', 'de', 'fr', etc.",
            "examples": [
              null
            ]
          }
        },
        "type": "object",
        "required": [
          "start_time",
          "duration"
        ],
        "title": "TimeWindow",
        "description": "Model defining a daily or date time window with optional localization support.\n\nRepresents a time interval starting at `start_time` and lasting for `duration`.\nCan restrict applicability to a specific day of the week or a specific calendar date.\nSupports day names in multiple languages via locale-aware parsing.\n\nTimezone contract:\n\n``start_time`` is always **naive** (no ``tzinfo``).  It is interpreted as a\nlocal wall-clock time in whatever timezone the caller's ``date_time`` or\n``reference_date`` carries.  When those arguments are timezone-aware the\nwindow boundaries are evaluated in that timezone; when they are naive,\narithmetic is performed as-is (no timezone conversion occurs).\n\n``date``, being a calendar ``Date`` object, is inherently timezone-free.\n\nThis design avoids the ambiguity that arises when a stored ``start_time``\ncarries its own timezone that differs from the caller's timezone, and keeps\nthe model serialisable without timezone state."
      },
      "TimeWindowSequence-Input": {
        "properties": {
          "windows": {
            "items": {
              "$ref": "#/components/schemas/TimeWindow-Input"
            },
            "type": "array",
            "title": "Windows",
            "description": "List of TimeWindow objects that make up this sequence."
          }
        },
        "type": "object",
        "title": "TimeWindowSequence",
        "description": "Model representing a sequence of time windows with collective operations.\n\nManages multiple TimeWindow objects and provides methods to work with them\nas a cohesive unit for scheduling and availability checking."
      },
      "TimeWindowSequence-Output": {
        "properties": {
          "windows": {
            "items": {
              "$ref": "#/components/schemas/TimeWindow-Output"
            },
            "type": "array",
            "title": "Windows",
            "description": "List of TimeWindow objects that make up this sequence."
          }
        },
        "type": "object",
        "title": "TimeWindowSequence",
        "description": "Model representing a sequence of time windows with collective operations.\n\nManages multiple TimeWindow objects and provides methods to work with them\nas a cohesive unit for scheduling and availability checking."
      },
      "UtilsCommonSettings": {
        "properties": {},
        "type": "object",
        "title": "UtilsCommonSettings",
        "description": "Utils Configuration."
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          },
          "input": {
            "title": "Input"
          },
          "ctx": {
            "type": "object",
            "title": "Context"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "ValueTimeWindow-Input": {
        "properties": {
          "start_time": {
            "title": "Start Time",
            "description": "Naive start time of the time window (time of day, no timezone). Interpreted in the timezone of the datetime passed to contains() or earliest_start_time().",
            "examples": [
              "00:00:00"
            ]
          },
          "duration": {
            "type": "string",
            "format": "duration",
            "title": "Duration",
            "description": "Duration of the time window starting from `start_time`.",
            "examples": [
              "2 hours"
            ]
          },
          "day_of_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Day Of Week",
            "description": "Optional day of the week restriction. Can be specified as integer (0=Monday to 6=Sunday) or localized weekday name. If None, applies every day unless `date` is set.",
            "examples": [
              null
            ]
          },
          "date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date",
            "description": "Optional specific calendar date for the time window. Naive \u2014 matched against the local date of the datetime passed to contains(). Overrides `day_of_week` if set.",
            "examples": [
              null
            ]
          },
          "locale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale",
            "description": "Locale used to parse weekday names in `day_of_week` when given as string. If not set, Pendulum's default locale is used. Examples: 'en', 'de', 'fr', etc.",
            "examples": [
              null
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Value",
            "description": "Value applicable during this time window.",
            "examples": [
              0.288
            ]
          }
        },
        "type": "object",
        "required": [
          "start_time",
          "duration"
        ],
        "title": "ValueTimeWindow",
        "description": "Value applicable during a specific time window.\n\nThis model extends `TimeWindow` by associating a value with the defined time interval."
      },
      "ValueTimeWindow-Output": {
        "properties": {
          "start_time": {
            "type": "string",
            "title": "Start Time",
            "description": "Naive start time of the time window (time of day, no timezone). Interpreted in the timezone of the datetime passed to contains() or earliest_start_time().",
            "examples": [
              "00:00:00"
            ]
          },
          "duration": {
            "type": "string",
            "title": "Duration",
            "description": "Duration of the time window starting from `start_time`.",
            "examples": [
              "2 hours"
            ]
          },
          "day_of_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Day Of Week",
            "description": "Optional day of the week restriction. Can be specified as integer (0=Monday to 6=Sunday) or localized weekday name. If None, applies every day unless `date` is set.",
            "examples": [
              null
            ]
          },
          "date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date",
            "description": "Optional specific calendar date for the time window. Naive \u2014 matched against the local date of the datetime passed to contains(). Overrides `day_of_week` if set.",
            "examples": [
              null
            ]
          },
          "locale": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Locale",
            "description": "Locale used to parse weekday names in `day_of_week` when given as string. If not set, Pendulum's default locale is used. Examples: 'en', 'de', 'fr', etc.",
            "examples": [
              null
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "number",
                "minimum": 0.0
              },
              {
                "type": "null"
              }
            ],
            "title": "Value",
            "description": "Value applicable during this time window.",
            "examples": [
              0.288
            ]
          }
        },
        "type": "object",
        "required": [
          "start_time",
          "duration"
        ],
        "title": "ValueTimeWindow",
        "description": "Value applicable during a specific time window.\n\nThis model extends `TimeWindow` by associating a value with the defined time interval."
      },
      "ValueTimeWindowSequence-Input": {
        "properties": {
          "windows": {
            "items": {
              "$ref": "#/components/schemas/ValueTimeWindow-Input"
            },
            "type": "array",
            "title": "Windows",
            "description": "Ordered list of value time windows. Each window defines a time interval and an associated value."
          }
        },
        "type": "object",
        "title": "ValueTimeWindowSequence",
        "description": "Sequence of value time windows.\n\nThis model specializes `TimeWindowSequence` to ensure that all\ncontained windows are instances of `ValueTimeWindow`.\nIt provides the full set of sequence operations (containment checks,\navailability, start time calculations) for value windows."
      },
      "ValueTimeWindowSequence-Output": {
        "properties": {
          "windows": {
            "items": {
              "$ref": "#/components/schemas/ValueTimeWindow-Output"
            },
            "type": "array",
            "title": "Windows",
            "description": "Ordered list of value time windows. Each window defines a time interval and an associated value."
          }
        },
        "type": "object",
        "title": "ValueTimeWindowSequence",
        "description": "Sequence of value time windows.\n\nThis model specializes `TimeWindowSequence` to ensure that all\ncontained windows are instances of `ValueTimeWindow`.\nIt provides the full set of sequence operations (containment checks,\navailability, start time calculations) for value windows."
      },
      "WeatherCommonSettings-Input": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Weather provider id of provider to be used.",
            "examples": [
              "WeatherImport"
            ]
          },
          "weatherimport": {
            "$ref": "#/components/schemas/WeatherImportCommonSettings",
            "description": "Weather import provider settings"
          }
        },
        "type": "object",
        "title": "WeatherCommonSettings",
        "description": "Weather Forecast Configuration."
      },
      "WeatherCommonSettings-Output": {
        "properties": {
          "provider": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Provider",
            "description": "Weather provider id of provider to be used.",
            "examples": [
              "WeatherImport"
            ]
          },
          "weatherimport": {
            "$ref": "#/components/schemas/WeatherImportCommonSettings",
            "description": "Weather import provider settings"
          },
          "providers": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Providers",
            "description": "Available weather provider ids.",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "providers"
        ],
        "title": "WeatherCommonSettings",
        "description": "Weather Forecast Configuration."
      },
      "WeatherImportCommonSettings": {
        "properties": {
          "import_file_path": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "string",
                "format": "path"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import File Path",
            "description": "Path to the file to import weather data from.",
            "examples": [
              null,
              "/path/to/weather_data.json"
            ]
          },
          "import_json": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Import Json",
            "description": "JSON string, dictionary of weather forecast value lists.",
            "examples": [
              "{\"weather_temp_air\": [18.3, 17.8, 16.9]}"
            ]
          }
        },
        "type": "object",
        "title": "WeatherImportCommonSettings",
        "description": "Common settings for weather data import from file or JSON string."
      }
    }
  }
}