mirror of
https://github.com/Akkudoktor-EOS/EOS.git
synced 2025-09-13 07:21:16 +00:00
Nested config, devices registry
* All config now nested. - Use default config from model field default values. If providers should be enabled by default, non-empty default config file could be provided again. - Environment variable support with EOS_ prefix and __ between levels, e.g. EOS_SERVER__EOS_SERVER_PORT=8503 where all values are case insensitive. For more information see: https://docs.pydantic.dev/latest/concepts/pydantic_settings/#parsing-environment-variable-values - Use devices as registry for configured devices. DeviceBase as base class with for now just initializion support (in the future expand to operations during optimization). - Strip down ConfigEOS to the only configuration instance. Reload from file or reset to defaults is possible. * Fix multi-initialization of derived SingletonMixin classes.
This commit is contained in:
110
tests/testdata/EOS.config.json
vendored
110
tests/testdata/EOS.config.json
vendored
@@ -1,110 +0,0 @@
|
||||
{
|
||||
"config_file_path": null,
|
||||
"config_folder_path": null,
|
||||
"data_cache_path": null,
|
||||
"data_cache_subpath": null,
|
||||
"data_folder_path": null,
|
||||
"data_output_path": null,
|
||||
"data_output_subpath": null,
|
||||
"elecprice_provider": null,
|
||||
"elecpriceimport_file_path": null,
|
||||
"latitude": null,
|
||||
"load_import_file_path": null,
|
||||
"load_name": null,
|
||||
"load_provider": null,
|
||||
"loadakkudoktor_year_energy": null,
|
||||
"longitude": null,
|
||||
"optimization_ev_available_charge_rates_percent": [],
|
||||
"optimization_hours": 24,
|
||||
"optimization_penalty": null,
|
||||
"prediction_historic_hours": 48,
|
||||
"prediction_hours": 48,
|
||||
"pvforecast0_albedo": null,
|
||||
"pvforecast0_inverter_model": null,
|
||||
"pvforecast0_inverter_paco": null,
|
||||
"pvforecast0_loss": null,
|
||||
"pvforecast0_module_model": null,
|
||||
"pvforecast0_modules_per_string": null,
|
||||
"pvforecast0_mountingplace": "free",
|
||||
"pvforecast0_optimal_surface_tilt": false,
|
||||
"pvforecast0_optimalangles": false,
|
||||
"pvforecast0_peakpower": null,
|
||||
"pvforecast0_pvtechchoice": "crystSi",
|
||||
"pvforecast0_strings_per_inverter": null,
|
||||
"pvforecast0_surface_azimuth": null,
|
||||
"pvforecast0_surface_tilt": null,
|
||||
"pvforecast0_trackingtype": null,
|
||||
"pvforecast0_userhorizon": null,
|
||||
"pvforecast1_albedo": null,
|
||||
"pvforecast1_inverter_model": null,
|
||||
"pvforecast1_inverter_paco": null,
|
||||
"pvforecast1_loss": 0,
|
||||
"pvforecast1_module_model": null,
|
||||
"pvforecast1_modules_per_string": null,
|
||||
"pvforecast1_mountingplace": "free",
|
||||
"pvforecast1_optimal_surface_tilt": false,
|
||||
"pvforecast1_optimalangles": false,
|
||||
"pvforecast1_peakpower": null,
|
||||
"pvforecast1_pvtechchoice": "crystSi",
|
||||
"pvforecast1_strings_per_inverter": null,
|
||||
"pvforecast1_surface_azimuth": null,
|
||||
"pvforecast1_surface_tilt": null,
|
||||
"pvforecast1_trackingtype": null,
|
||||
"pvforecast1_userhorizon": null,
|
||||
"pvforecast2_albedo": null,
|
||||
"pvforecast2_inverter_model": null,
|
||||
"pvforecast2_inverter_paco": null,
|
||||
"pvforecast2_loss": 0,
|
||||
"pvforecast2_module_model": null,
|
||||
"pvforecast2_modules_per_string": null,
|
||||
"pvforecast2_mountingplace": "free",
|
||||
"pvforecast2_optimal_surface_tilt": false,
|
||||
"pvforecast2_optimalangles": false,
|
||||
"pvforecast2_peakpower": null,
|
||||
"pvforecast2_pvtechchoice": "crystSi",
|
||||
"pvforecast2_strings_per_inverter": null,
|
||||
"pvforecast2_surface_azimuth": null,
|
||||
"pvforecast2_surface_tilt": null,
|
||||
"pvforecast2_trackingtype": null,
|
||||
"pvforecast2_userhorizon": null,
|
||||
"pvforecast3_albedo": null,
|
||||
"pvforecast3_inverter_model": null,
|
||||
"pvforecast3_inverter_paco": null,
|
||||
"pvforecast3_loss": 0,
|
||||
"pvforecast3_module_model": null,
|
||||
"pvforecast3_modules_per_string": null,
|
||||
"pvforecast3_mountingplace": "free",
|
||||
"pvforecast3_optimal_surface_tilt": false,
|
||||
"pvforecast3_optimalangles": false,
|
||||
"pvforecast3_peakpower": null,
|
||||
"pvforecast3_pvtechchoice": "crystSi",
|
||||
"pvforecast3_strings_per_inverter": null,
|
||||
"pvforecast3_surface_azimuth": null,
|
||||
"pvforecast3_surface_tilt": null,
|
||||
"pvforecast3_trackingtype": null,
|
||||
"pvforecast3_userhorizon": null,
|
||||
"pvforecast4_albedo": null,
|
||||
"pvforecast4_inverter_model": null,
|
||||
"pvforecast4_inverter_paco": null,
|
||||
"pvforecast4_loss": 0,
|
||||
"pvforecast4_module_model": null,
|
||||
"pvforecast4_modules_per_string": null,
|
||||
"pvforecast4_mountingplace": "free",
|
||||
"pvforecast4_optimal_surface_tilt": false,
|
||||
"pvforecast4_optimalangles": false,
|
||||
"pvforecast4_peakpower": null,
|
||||
"pvforecast4_pvtechchoice": "crystSi",
|
||||
"pvforecast4_strings_per_inverter": null,
|
||||
"pvforecast4_surface_azimuth": null,
|
||||
"pvforecast4_surface_tilt": null,
|
||||
"pvforecast4_trackingtype": null,
|
||||
"pvforecast4_userhorizon": null,
|
||||
"pvforecast_provider": null,
|
||||
"pvforecastimport_file_path": null,
|
||||
"server_eos_host": "0.0.0.0",
|
||||
"server_eos_port": 8503,
|
||||
"server_eosdash_host": "0.0.0.0",
|
||||
"server_eosdash_port": 8504,
|
||||
"weather_provider": null,
|
||||
"weatherimport_file_path": null
|
||||
}
|
6
tests/testdata/optimize_input_1.json
vendored
6
tests/testdata/optimize_input_1.json
vendored
@@ -26,15 +26,19 @@
|
||||
]
|
||||
},
|
||||
"pv_akku": {
|
||||
"device_id": "battery1",
|
||||
"capacity_wh": 26400,
|
||||
"max_charge_power_w": 5000,
|
||||
"initial_soc_percentage": 80,
|
||||
"min_soc_percentage": 15
|
||||
},
|
||||
"inverter": {
|
||||
"max_power_wh": 10000
|
||||
"device_id": "inverter1",
|
||||
"max_power_wh": 10000,
|
||||
"battery": "battery1"
|
||||
},
|
||||
"eauto": {
|
||||
"device_id": "ev1",
|
||||
"capacity_wh": 60000,
|
||||
"charging_efficiency": 0.95,
|
||||
"discharging_efficiency": 1.0,
|
||||
|
8
tests/testdata/optimize_input_2.json
vendored
8
tests/testdata/optimize_input_2.json
vendored
@@ -154,6 +154,7 @@
|
||||
]
|
||||
},
|
||||
"pv_akku": {
|
||||
"device_id": "battery1",
|
||||
"capacity_wh": 26400,
|
||||
"initial_soc_percentage": 80,
|
||||
"min_soc_percentage": 0
|
||||
@@ -162,13 +163,20 @@
|
||||
"max_power_wh": 10000
|
||||
},
|
||||
"eauto": {
|
||||
"device_id": "ev1",
|
||||
"capacity_wh": 60000,
|
||||
"charging_efficiency": 0.95,
|
||||
"max_charge_power_w": 11040,
|
||||
"initial_soc_percentage": 5,
|
||||
"min_soc_percentage": 80
|
||||
},
|
||||
"inverter": {
|
||||
"device_id": "inverter1",
|
||||
"max_power_wh": 10000,
|
||||
"battery": "battery1"
|
||||
},
|
||||
"dishwasher": {
|
||||
"device_id": "dishwasher1",
|
||||
"consumption_wh": 5000,
|
||||
"duration_h": 2
|
||||
},
|
||||
|
1
tests/testdata/optimize_result_1.json
vendored
1
tests/testdata/optimize_result_1.json
vendored
@@ -557,6 +557,7 @@
|
||||
]
|
||||
},
|
||||
"eauto_obj": {
|
||||
"device_id": "ev1",
|
||||
"charge_array": [
|
||||
1.0,
|
||||
1.0,
|
||||
|
1
tests/testdata/optimize_result_2.json
vendored
1
tests/testdata/optimize_result_2.json
vendored
@@ -606,6 +606,7 @@
|
||||
]
|
||||
},
|
||||
"eauto_obj": {
|
||||
"device_id": "ev1",
|
||||
"charge_array": [
|
||||
1.0,
|
||||
1.0,
|
||||
|
1
tests/testdata/optimize_result_2_full.json
vendored
1
tests/testdata/optimize_result_2_full.json
vendored
@@ -606,6 +606,7 @@
|
||||
]
|
||||
},
|
||||
"eauto_obj": {
|
||||
"device_id": "ev1",
|
||||
"charge_array": [
|
||||
1.0,
|
||||
1.0,
|
||||
|
Reference in New Issue
Block a user