mirror of
https://github.com/Akkudoktor-EOS/EOS.git
synced 2026-04-19 04:06:20 +00:00
Some checks failed
Bump Version / Bump Version Workflow (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
docker-build / platform-excludes (push) Has been cancelled
pre-commit / pre-commit (push) Has been cancelled
Run Pytest on Pull Request / test (push) Has been cancelled
docker-build / build (push) Has been cancelled
docker-build / merge (push) Has been cancelled
Close stale pull requests/issues / Find Stale issues and PRs (push) Has been cancelled
Fix documentation for the loadforecast_power_w key. Fix documentation to explain the usage of import file/ JSON string to primarily initialise prediction data. Fix code scanning alert no. 6: URL redirection from remote source Enable to automatically save the configuration to the configuration file by default, which is a widespread user expectation. Make the genetic parameters non optional for better pydantic compliance. Update: - bump pytest to 9.0.3 - bump pillow to 12.2.0 - bump platformdirs to 4.9.6 - bump typespyyaml to 6.0.12.20260408 - bump tzfpy to 1.2.0 - bump pydantic to 2.13.0 - bump types-requests to 2.33.0.20260408 Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com> Co-authored-by: Normann <github@koldrack.com>
111 lines
4.1 KiB
Markdown
111 lines
4.1 KiB
Markdown
% SPDX-License-Identifier: Apache-2.0
|
|
(configuration-page)=
|
|
|
|
# Configuration Guide
|
|
|
|
The configuration controls all aspects of EOS: optimization, prediction, measurement, and energy
|
|
management.
|
|
|
|
## Storing Configuration
|
|
|
|
EOS stores configuration data in a `nested structure`.
|
|
|
|
Some `configuration keys` are read-only and cannot be altered. These keys are either set up by other
|
|
means, such as environment variables, or determined from other information.
|
|
|
|
Several endpoints of the EOS REST server allow for the management and retrieval of configuration
|
|
data.
|
|
|
|
:::{admonition} Note
|
|
:class: note
|
|
Configuration changes inside EOS are updated in memory, meaning all changes will be lost upon
|
|
restarting the EOS REST server unless the configuration is saved to the `EOS configuration file`.
|
|
This can be done manually or is done automatically by default.
|
|
:::
|
|
|
|
### Save Configuration File
|
|
|
|
Configure EOS for `AUTOMATIC` (vs. `MANUAL`) configuration file update in case of configuration
|
|
changes.
|
|
|
|
Use endpoint `PUT /v1/config/file` to save the current configuration to the
|
|
`EOS configuration file`.
|
|
|
|
### Load Configuration File
|
|
|
|
Use endpoint `POST /v1/config/reset` to reset the configuration to the values in the
|
|
`EOS configuration file`.
|
|
|
|
## Configuration Sources and Priorities
|
|
|
|
The configuration sources and their priorities are as follows:
|
|
|
|
1. `Settings`: Provided during runtime by the REST interface
|
|
2. `Environment Variables`: Defined at startup of the REST server and during runtime
|
|
3. `EOS Configuration File`: Read at startup of the REST server and on request
|
|
4. `Default Values`
|
|
|
|
### Runtime Config Updates
|
|
|
|
The EOS configuration can be updated at runtime.
|
|
|
|
Use the following endpoints to change the current runtime configuration:
|
|
|
|
- `PUT /v1/config`: Update the entire or parts of the configuration.
|
|
|
|
:::{admonition} Note
|
|
:class: note
|
|
Those updates are not persistent automatically. However it is possible to save the configuration to
|
|
the `EOS configuration file`. See [Save Configuration File](#save-configuration-file) above.
|
|
:::
|
|
|
|
### Environment Variables
|
|
|
|
All `configuration keys` can be set by environment variables prefixed with `EOS_` and separated by
|
|
`__` for nested structures. Environment variables are case insensitive.
|
|
|
|
EOS recognizes the following special environment variables (case sensitive):
|
|
|
|
- `EOS_CONFIG_DIR`: The directory to search for an EOS configuration file.
|
|
- `EOS_DIR`: The directory used by EOS for data, which will also be searched for an EOS
|
|
configuration file.
|
|
|
|
### EOS Configuration File
|
|
|
|
The EOS configuration file provides persistent storage for configuration data. It can be modified
|
|
directly or through the REST interface.
|
|
|
|
If you do not have a configuration file, it will be automatically created on the first startup of
|
|
the REST server in a system-dependent location.
|
|
|
|
To determine the location of the configuration file used by EOS, ask the REST server. The endpoint
|
|
`GET /v1/config` provides the `general.config_file_path` configuration key.
|
|
|
|
EOS searches for the configuration file in the following order:
|
|
|
|
1. The directory specified by the `EOS_CONFIG_DIR` environment variable
|
|
2. The directory specified by the `EOS_DIR` environment variable
|
|
3. A platform-specific default directory for EOS
|
|
4. The current working directory
|
|
|
|
The first configuration file available in these directories is loaded. If no configuration file is
|
|
found, a default configuration file is created, and the default settings are written to it. The
|
|
location of the created configuration file follows the same order in which EOS searches for
|
|
configuration files, and it depends on whether the relevant environment variables are set.
|
|
|
|
Use the following endpoints to interact with the configuration file:
|
|
|
|
- `PUT /v1/config/file`: Save the current configuration to the configuration file.
|
|
- `PUT /v1/config/reset`: Reload the configuration file, all unsaved runtime configuration is reset.
|
|
|
|
### Default Values
|
|
|
|
Some of the `configuration keys` have default values by definition. For most of the
|
|
`configuration keys` the default value is just `None`, which means no default value.
|
|
|
|
```{include} /_generated/config.md
|
|
:heading-offset: 1
|
|
:relative-docs: ..
|
|
:relative-images:
|
|
```
|