EOS/docs/akkudoktoreos/openapi.json

5877 lines
173 KiB
JSON
Raw Normal View History

{
"openapi": "3.1.0",
"info": {
"title": "Akkudoktor-EOS",
"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.",
"version": "0.0.1"
},
"paths": {
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"/v1/config": {
"get": {
"summary": "Fastapi Config Get",
"description": "Get the current configuration.",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"operationId": "fastapi_config_get_v1_config_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConfigEOS"
}
}
}
}
}
},
"put": {
"summary": "Fastapi Config Put",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"description": "Merge settings into current configuration.\n\nArgs:\n settings (SettingsEOS): The settings to merge into the current configuration.\n save (Optional[bool]): Save the resulting configuration to the configuration file.\n Defaults to False.",
"operationId": "fastapi_config_put_v1_config_put",
"parameters": [
{
"name": "save",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Save"
}
}
],
"requestBody": {
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SettingsEOS"
}
}
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
}
},
"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/measurement/keys": {
"get": {
"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/load-mr/series/by-name": {
"get": {
"summary": "Fastapi Measurement Load Mr Series By Name Get",
"description": "Get the meter reading of given load name as series.",
"operationId": "fastapi_measurement_load_mr_series_by_name_get_v1_measurement_load_mr_series_by_name_get",
"parameters": [
{
"name": "name",
"in": "query",
"required": true,
"schema": {
"type": "string",
"title": "Name"
}
}
],
"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": {
"summary": "Fastapi Measurement Load Mr Series By Name Put",
"description": "Merge the meter readings series of given load name into EOS measurements at given datetime.",
"operationId": "fastapi_measurement_load_mr_series_by_name_put_v1_measurement_load_mr_series_by_name_put",
"parameters": [
{
"name": "name",
"in": "query",
"required": true,
"schema": {
"type": "string",
"title": "Name"
}
}
],
"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/load-mr/value/by-name": {
"put": {
"summary": "Fastapi Measurement Load Mr Value By Name Put",
"description": "Merge the meter reading of given load name and value into EOS measurements at given datetime.",
"operationId": "fastapi_measurement_load_mr_value_by_name_put_v1_measurement_load_mr_value_by_name_put",
"parameters": [
{
"name": "datetime",
"in": "query",
"required": true,
"schema": {
"title": "Datetime"
}
},
{
"name": "name",
"in": "query",
"required": true,
"schema": {
"type": "string",
"title": "Name"
}
},
{
"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/series": {
"get": {
"summary": "Fastapi Measurement Series Get",
"description": "Get the measurements of given key as series.",
"operationId": "fastapi_measurement_series_get_v1_measurement_series_get",
"parameters": [
{
"name": "key",
"in": "query",
"required": true,
"schema": {
"type": "string",
"title": "Key"
}
}
],
"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": {
"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",
"title": "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": {
"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": {
"title": "Datetime"
}
},
{
"name": "key",
"in": "query",
"required": true,
"schema": {
"type": "string",
"title": "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": {
"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",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
}
}
}
},
"/v1/measurement/data": {
"put": {
"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"
}
}
}
}
}
}
},
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"/v1/prediction/keys": {
"get": {
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"summary": "Fastapi Prediction Keys Get",
"description": "Get a list of available prediction keys.",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"operationId": "fastapi_prediction_keys_get_v1_prediction_keys_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"items": {
"type": "string"
},
"type": "array",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"title": "Response Fastapi Prediction Keys Get V1 Prediction Keys Get"
}
}
}
}
}
}
},
"/v1/prediction/series": {
"get": {
"summary": "Fastapi Prediction Series Get",
"description": "Get prediction for given key within given date range as series.\n\nArgs:\n start_datetime: Starting datetime (inclusive).\n Defaults to start datetime of latest prediction.\n end_datetime: Ending datetime (exclusive).\n Defaults to end datetime of latest prediction.",
"operationId": "fastapi_prediction_series_get_v1_prediction_series_get",
"parameters": [
{
"name": "key",
"in": "query",
"required": true,
"schema": {
"type": "string",
"title": "Key"
}
},
{
"name": "start_datetime",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Start Datetime"
}
},
{
"name": "end_datetime",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "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"
}
}
}
}
}
}
},
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"/v1/prediction/list": {
"get": {
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"summary": "Fastapi Prediction List Get",
"description": "Get prediction for given key within given date range as value list.\n\nArgs:\n start_datetime: Starting datetime (inclusive).\n Defaults to start datetime of latest prediction.\n end_datetime: Ending datetime (exclusive).\n Defaults to end datetime of latest prediction.\n interval: Time duration for each interval\n Defaults to 1 hour.",
"operationId": "fastapi_prediction_list_get_v1_prediction_list_get",
"parameters": [
{
"name": "key",
"in": "query",
"required": true,
"schema": {
"type": "string",
"title": "Key"
}
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
},
{
"name": "start_datetime",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Start Datetime"
}
},
{
"name": "end_datetime",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "End Datetime"
}
},
{
"name": "interval",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Interval"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"type": "array",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"items": {},
"title": "Response Fastapi Prediction List Get V1 Prediction List Get"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/strompreis": {
"get": {
"summary": "Fastapi Strompreis",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"description": "Deprecated: Electricity Market Price Prediction.\n\nNote:\n Use '/v1/prediction/list?key=elecprice_marketprice' 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"
}
}
}
}
}
}
},
"/gesamtlast": {
"post": {
"summary": "Fastapi Gesamtlast",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"description": "Deprecated: Total Load Prediction with adjustment.\n\nEndpoint to handle total load prediction adjusted by latest measured data.\n\nNote:\n Use '/v1/prediction/list?key=load_mean_adjusted' instead.\n Load energy meter readings to be added to EOS measurement by:\n '/v1/measurement/load-mr/value/by-name' or\n '/v1/measurement/value'",
"operationId": "fastapi_gesamtlast_gesamtlast_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
2024-12-11 10:29:15 +01:00
"$ref": "#/components/schemas/GesamtlastRequest"
}
}
2024-12-11 10:11:26 +01:00
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"items": {
"type": "number"
},
2024-12-11 10:11:26 +01:00
"type": "array",
"title": "Response Fastapi Gesamtlast Gesamtlast Post"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/gesamtlast_simple": {
"get": {
"summary": "Fastapi Gesamtlast Simple",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"description": "Deprecated: Total Load Prediction.\n\nEndpoint to handle total load prediction.\n\nNote:\n Use '/v1/prediction/list?key=load_mean' instead.",
"operationId": "fastapi_gesamtlast_simple_gesamtlast_simple_get",
"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": {
"summary": "Fastapi Pvprognose",
"operationId": "fastapi_pvprognose_pvforecast_get",
"parameters": [
{
"name": "ac_power_measurement",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Ac Power Measurement"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ForecastResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/optimize": {
"post": {
"summary": "Fastapi Optimize",
"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."
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OptimizationParameters"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OptimizeResponse"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/visualization_results.pdf": {
"get": {
"summary": "Get Pdf",
"operationId": "get_pdf_visualization_results_pdf_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/pdf": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/{path}": {
"delete": {
"summary": "Proxy Delete",
"operationId": "proxy_delete__path__delete",
"parameters": [
{
"name": "path",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Path"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
},
"get": {
"summary": "Proxy Get",
"operationId": "proxy_get__path__get",
"parameters": [
{
"name": "path",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Path"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
},
"post": {
"summary": "Proxy Post",
"operationId": "proxy_post__path__post",
"parameters": [
{
"name": "path",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Path"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
},
"put": {
"summary": "Proxy Put",
"operationId": "proxy_put__path__put",
"parameters": [
{
"name": "path",
"in": "path",
"required": true,
"schema": {
"type": "string",
"title": "Path"
}
}
],
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"ConfigEOS": {
"properties": {
"server_fastapi_host": {
"anyOf": [
{
"type": "string",
"format": "ipvanyaddress"
},
{
"type": "null"
}
],
"title": "Server Fastapi Host",
"description": "FastAPI server IP address.",
"default": "0.0.0.0"
},
"server_fastapi_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Server Fastapi Port",
"description": "FastAPI server IP port number.",
"default": 8503
},
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"server_fastapi_startup_server_fasthtml": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Server Fastapi Startup Server Fasthtml",
"description": "FastAPI server to startup application FastHTML server.",
"default": true
},
"server_fasthtml_host": {
"anyOf": [
{
"type": "string",
"format": "ipvanyaddress"
},
{
"type": "null"
}
],
"title": "Server Fasthtml Host",
"description": "FastHTML server IP address.",
"default": "0.0.0.0"
},
"server_fasthtml_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Server Fasthtml Port",
"description": "FastHTML server IP port number.",
"default": 8504
},
"weatherimport_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Weatherimport File Path",
"description": "Path to the file to import weather data from."
},
"weatherimport_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Weatherimport Json",
"description": "JSON string, dictionary of weather forecast value lists."
},
"weather_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Weather Provider",
"description": "Weather provider id of provider to be used."
},
"pvforecastimport_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Pvforecastimport File Path",
"description": "Path to the file to import pvforecast data from."
},
"pvforecastimport_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecastimport Json",
"description": "JSON string, dictionary of PV forecast float value lists.Keys are 'pvforecast_dc_power', 'pvforecast_ac_power'."
},
"pvforecast_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast Provider",
"description": "PVForecast provider id of provider to be used."
},
"pvforecast0_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast0_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast0_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast0_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast0_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast0_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
2024-12-11 10:29:15 +01:00
},
"pvforecast0_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Loss",
"description": "Sum of PV system losses in percent"
},
"pvforecast0_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast0 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.",
"default": 0
},
"pvforecast0_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast0_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast0_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast0_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast0_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast0_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast0_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast0_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"pvforecast1_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast1_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast1_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast1_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast1_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast1_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
},
"pvforecast1_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Loss",
"description": "Sum of PV system losses in percent",
"default": 0
},
"pvforecast1_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast1 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.",
"default": 0
},
"pvforecast1_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast1_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast1_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast1_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast1_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast1_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast1_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast1_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"pvforecast2_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast2_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast2_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast2_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast2_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast2_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
},
"pvforecast2_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Loss",
"description": "Sum of PV system losses in percent",
"default": 0
},
"pvforecast2_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast2 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.",
"default": 0
},
"pvforecast2_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast2_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast2_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast2_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast2_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast2_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast2_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast2_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"pvforecast3_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast3_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast3_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast3_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast3_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast3_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
},
"pvforecast3_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Loss",
"description": "Sum of PV system losses in percent",
"default": 0
},
"pvforecast3_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast3 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.",
"default": 0
},
"pvforecast3_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast3_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast3_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast3_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast3_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast3_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast3_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast3_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"pvforecast4_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast4_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast4_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast4_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast4_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast4_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
},
"pvforecast4_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Loss",
"description": "Sum of PV system losses in percent",
"default": 0
},
"pvforecast4_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast4 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.",
"default": 0
},
"pvforecast4_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast4_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast4_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast4_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast4_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast4_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast4_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast4_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"pvforecast5_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast5_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast5_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast5_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast5_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast5_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
},
"pvforecast5_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Loss",
"description": "Sum of PV system losses in percent",
"default": 0
},
"pvforecast5_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast5 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.",
"default": 0
},
"pvforecast5_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast5_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast5_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast5_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast5_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast5_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast5_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast5_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"load_import_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Load Import File Path",
"description": "Path to the file to import load data from."
},
"load_import_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Load Import Json",
"description": "JSON string, dictionary of load forecast value lists."
},
"loadakkudoktor_year_energy": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Loadakkudoktor Year Energy",
"description": "Yearly energy consumption (kWh)."
},
"load_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Load Provider",
"description": "Load provider id of provider to be used."
},
"load_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Load Name",
"description": "Name of the load source."
},
"elecpriceimport_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Elecpriceimport File Path",
"description": "Path to the file to import elecprice data from."
},
"elecpriceimport_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Elecpriceimport Json",
"description": "JSON string, dictionary of electricity price forecast value lists."
},
"elecprice_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Elecprice Provider",
"description": "Electicity price provider id of provider to be used."
},
"prediction_hours": {
"anyOf": [
{
"type": "integer",
"minimum": 0.0
},
{
"type": "null"
}
],
"title": "Prediction Hours",
"description": "Number of hours into the future for predictions",
"default": 48
},
"prediction_historic_hours": {
"anyOf": [
{
"type": "integer",
"minimum": 0.0
},
{
"type": "null"
}
],
"title": "Prediction Historic Hours",
"description": "Number of hours into the past for historical predictions data",
"default": 48
},
"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)"
},
"longitude": {
"anyOf": [
{
"type": "number",
"maximum": 180.0,
"minimum": -180.0
},
{
"type": "null"
}
],
"title": "Longitude",
"description": "Longitude in decimal degrees, within -180 to 180 (\u00b0)"
},
"optimization_hours": {
"anyOf": [
{
"type": "integer",
"minimum": 0.0
},
{
"type": "null"
}
],
"title": "Optimization Hours",
"description": "Number of hours into the future for optimizations.",
"default": 24
},
"optimization_penalty": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Optimization Penalty",
"description": "Penalty factor used in optimization.",
"default": 10
},
"optimization_ev_available_charge_rates_percent": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Optimization Ev Available Charge Rates Percent",
"description": "Charge rates available for the EV in percent of maximum charge.",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"default": [
0.0,
0.375,
0.5,
0.625,
0.75,
0.875,
1.0
]
},
"measurement_load0_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Measurement Load0 Name",
"description": "Name of the load0 source (e.g. 'Household', 'Heat Pump')"
},
"measurement_load1_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Measurement Load1 Name",
"description": "Name of the load1 source (e.g. 'Household', 'Heat Pump')"
},
"measurement_load2_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Measurement Load2 Name",
"description": "Name of the load2 source (e.g. 'Household', 'Heat Pump')"
},
"measurement_load3_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Measurement Load3 Name",
"description": "Name of the load3 source (e.g. 'Household', 'Heat Pump')"
},
"measurement_load4_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Measurement Load4 Name",
"description": "Name of the load4 source (e.g. 'Household', 'Heat Pump')"
},
"battery_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Battery Provider",
"description": "Id of Battery simulation provider."
},
"battery_capacity": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Battery Capacity",
"description": "Battery capacity [Wh]."
},
2024-12-19 14:50:19 +01:00
"battery_initial_soc": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Battery Initial Soc",
"description": "Battery initial state of charge [%]."
},
"battery_soc_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Battery Soc Min",
"description": "Battery minimum state of charge [%]."
},
"battery_soc_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Battery Soc Max",
"description": "Battery maximum state of charge [%]."
},
2024-12-19 14:50:19 +01:00
"battery_charging_efficiency": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Battery Charging Efficiency",
"description": "Battery charging efficiency [%]."
},
2024-12-19 14:50:19 +01:00
"battery_discharging_efficiency": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Battery Discharging Efficiency",
"description": "Battery discharging efficiency [%]."
},
2024-12-19 14:50:19 +01:00
"battery_max_charging_power": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Battery Max Charging Power",
"description": "Battery maximum charge power [W]."
},
"bev_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Bev Provider",
"description": "Id of Battery Electric Vehicle simulation provider."
},
"bev_capacity": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Bev Capacity",
"description": "Battery Electric Vehicle capacity [Wh]."
},
2024-12-19 14:50:19 +01:00
"bev_initial_soc": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Bev Initial Soc",
"description": "Battery Electric Vehicle initial state of charge [%]."
},
"bev_soc_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Bev Soc Max",
"description": "Battery Electric Vehicle maximum state of charge [%]."
},
2024-12-19 14:50:19 +01:00
"bev_charging_efficiency": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Bev Charging Efficiency",
"description": "Battery Electric Vehicle charging efficiency [%]."
},
2024-12-19 14:50:19 +01:00
"bev_discharging_efficiency": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Bev Discharging Efficiency",
"description": "Battery Electric Vehicle discharging efficiency [%]."
},
2024-12-19 14:50:19 +01:00
"bev_max_charging_power": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Bev Max Charging Power",
"description": "Battery Electric Vehicle maximum charge power [W]."
},
"dishwasher_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Dishwasher Provider",
"description": "Id of Dish Washer simulation provider."
},
"dishwasher_consumption": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Dishwasher Consumption",
"description": "Dish Washer energy consumption [Wh]."
},
"dishwasher_duration": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Dishwasher Duration",
"description": "Dish Washer usage duration [h]."
},
"inverter_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Inverter Provider",
"description": "Id of PV Inverter simulation provider."
},
"inverter_power_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Inverter Power Max",
"description": "Inverter maximum power [W]."
},
"data_folder_path": {
"anyOf": [
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Data Folder Path",
"description": "Path to EOS data directory."
},
"data_output_subpath": {
"anyOf": [
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Data Output Subpath",
"description": "Sub-path for the EOS output data directory.",
"default": "output"
},
"data_cache_subpath": {
"anyOf": [
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Data Cache Subpath",
"description": "Sub-path for the EOS cache data directory.",
"default": "cache"
},
"config_folder_path": {
"anyOf": [
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Config Folder Path",
"description": "Path to EOS configuration directory."
},
"config_file_path": {
"anyOf": [
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Config File Path",
"description": "Path to EOS configuration file."
},
"pvforecast_planes": {
"items": {
"type": "string"
},
"type": "array",
"title": "Pvforecast Planes",
"description": "Compute a list of active planes.",
"readOnly": true
},
"pvforecast_planes_peakpower": {
"items": {
"type": "number"
},
"type": "array",
"title": "Pvforecast Planes Peakpower",
"description": "Compute a list of the peak power per active planes.",
"readOnly": true
},
"pvforecast_planes_azimuth": {
"items": {
"type": "number"
},
"type": "array",
"title": "Pvforecast Planes Azimuth",
"description": "Compute a list of the azimuths per active planes.",
"readOnly": true
},
"pvforecast_planes_tilt": {
"items": {
"type": "number"
},
"type": "array",
"title": "Pvforecast Planes Tilt",
"description": "Compute a list of the tilts per active planes.",
"readOnly": true
},
"pvforecast_planes_userhorizon": {
"title": "Pvforecast Planes Userhorizon",
"description": "Compute a list of the user horizon per active planes.",
"readOnly": true
},
"pvforecast_planes_inverter_paco": {
"title": "Pvforecast Planes Inverter Paco",
"description": "Compute a list of the maximum power rating of the inverter per active planes.",
"readOnly": true
},
"timezone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Timezone",
"description": "Compute timezone based on latitude and longitude.",
"readOnly": true
},
"data_output_path": {
"anyOf": [
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Data Output Path",
"description": "Compute data_output_path based on data_folder_path.",
"readOnly": true
},
"data_cache_path": {
"anyOf": [
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Data Cache Path",
"description": "Compute data_cache_path based on data_folder_path.",
"readOnly": true
},
"config_default_file_path": {
"type": "string",
"format": "path",
"title": "Config Default File Path",
"description": "Compute the default config file path.",
"readOnly": true
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
},
"config_keys": {
"items": {
"type": "string"
},
"type": "array",
"title": "Config Keys",
"description": "Returns the keys of all fields in the configuration.",
"readOnly": true
}
},
"type": "object",
"required": [
"pvforecast_planes",
"pvforecast_planes_peakpower",
"pvforecast_planes_azimuth",
"pvforecast_planes_tilt",
"pvforecast_planes_userhorizon",
"pvforecast_planes_inverter_paco",
"timezone",
"data_output_path",
"data_cache_path",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"config_default_file_path",
"config_keys"
],
"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_DIR` environment variable.\n 2. A platform specific default directory for EOS.\n 3. The current working directory.\n - The first available configuration file found in these directories is loaded.\n - If no configuration file is found, a default configuration file is created in the platform\n specific default directory, and default settings are loaded into it.\n\nAttributes from the loaded configuration are accessible directly as instance attributes of\n`ConfigEOS`, providing a centralized, shared configuration object for EOS.\n\nSingleton Behavior:\n - This class uses the `SingletonMixin` to ensure that all requests for `ConfigEOS` return\n the same instance, which contains the most up-to-date configuration. Modifying the configuration\n in one part of the application reflects across all references to this class.\n\nAttributes:\n _settings (ClassVar[SettingsEOS]): Holds application-wide settings.\n _file_settings (ClassVar[SettingsEOS]): Stores configuration loaded from file.\n config_folder_path (Optional[Path]): Path to the configuration directory.\n config_file_path (Optional[Path]): Path to the configuration file.\n\nRaises:\n FileNotFoundError: If no configuration file is found, and creating a default configuration fails.\n\nExample:\n To initialize and access configuration attributes (only one instance is created):\n ```python\n config_eos = ConfigEOS() # Always returns the same instance\n print(config_eos.prediction_hours) # Access a setting from the loaded configuration\n ```"
},
2024-12-19 14:50:19 +01:00
"ElectricVehicleParameters": {
"properties": {
2024-12-19 14:50:19 +01:00
"capacity_wh": {
"type": "integer",
"exclusiveMinimum": 0.0,
2024-12-19 14:50:19 +01:00
"title": "Capacity Wh",
"description": "An integer representing the capacity of the battery in watt-hours."
},
2024-12-19 14:50:19 +01:00
"charging_efficiency": {
"type": "number",
"maximum": 1.0,
"exclusiveMinimum": 0.0,
2024-12-19 14:50:19 +01:00
"title": "Charging Efficiency",
"description": "A float representing the charging efficiency of the battery.",
"default": 0.88
},
2024-12-19 14:50:19 +01:00
"discharging_efficiency": {
"type": "number",
2024-12-19 14:50:19 +01:00
"title": "Discharging Efficiency",
"default": 1.0
},
2024-12-19 14:50:19 +01:00
"max_charge_power_w": {
"anyOf": [
{
"type": "number",
"exclusiveMinimum": 0.0
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Max Charge Power W",
"description": "Maximum charging power in watts.",
"default": 5000
},
2024-12-19 14:50:19 +01:00
"initial_soc_percentage": {
"type": "integer",
"maximum": 100.0,
"minimum": 0.0,
2024-12-19 14:50:19 +01:00
"title": "Initial Soc Percentage",
"description": "An integer representing the current state of charge (SOC) of the battery in percentage.",
"default": 0
},
2024-12-19 14:50:19 +01:00
"min_soc_percentage": {
"type": "integer",
"maximum": 100.0,
"minimum": 0.0,
2024-12-19 14:50:19 +01:00
"title": "Min Soc Percentage",
"description": "An integer representing the minimum state of charge (SOC) of the battery in percentage.",
"default": 0
},
2024-12-19 14:50:19 +01:00
"max_soc_percentage": {
"type": "integer",
"maximum": 100.0,
"minimum": 0.0,
2024-12-19 14:50:19 +01:00
"title": "Max Soc Percentage",
"description": "An integer representing the maximum state of charge (SOC) of the battery in percentage.",
"default": 100
}
},
"type": "object",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"required": [
"capacity_wh"
],
2024-12-19 14:50:19 +01:00
"title": "ElectricVehicleParameters",
"description": "Parameters specific to an electric vehicle (EV)."
},
2024-12-19 14:50:19 +01:00
"ElectricVehicleResult": {
"properties": {
"charge_array": {
"items": {
"type": "number"
},
"type": "array",
"title": "Charge Array",
2024-12-19 14:50:19 +01:00
"description": "Hourly charging status (0 for no charging, 1 for charging)."
},
"discharge_array": {
"items": {
"type": "integer"
},
"type": "array",
"title": "Discharge Array",
2024-12-19 14:50:19 +01:00
"description": "Hourly discharging status (0 for no discharging, 1 for discharging)."
},
2024-12-19 14:50:19 +01:00
"discharging_efficiency": {
"type": "number",
2024-12-19 14:50:19 +01:00
"title": "Discharging Efficiency",
"description": "The discharge efficiency as a float.."
},
"hours": {
"type": "integer",
"title": "Hours",
2024-12-19 14:50:19 +01:00
"description": "Number of hours in the simulation."
},
2024-12-19 14:50:19 +01:00
"capacity_wh": {
"type": "integer",
2024-12-19 14:50:19 +01:00
"title": "Capacity Wh",
"description": "Capacity of the EV\u2019s battery in watt-hours."
},
2024-12-19 14:50:19 +01:00
"charging_efficiency": {
"type": "number",
2024-12-19 14:50:19 +01:00
"title": "Charging Efficiency",
"description": "Charging efficiency as a float.."
},
2024-12-19 14:50:19 +01:00
"max_charge_power_w": {
"type": "integer",
2024-12-19 14:50:19 +01:00
"title": "Max Charge Power W",
"description": "Maximum charging power in watts."
},
"soc_wh": {
"type": "number",
"title": "Soc Wh",
2024-12-19 14:50:19 +01:00
"description": "State of charge of the battery in watt-hours at the start of the simulation."
},
2024-12-19 14:50:19 +01:00
"initial_soc_percentage": {
"type": "integer",
2024-12-19 14:50:19 +01:00
"title": "Initial Soc Percentage",
"description": "State of charge at the start of the simulation in percentage."
}
},
"type": "object",
"required": [
"charge_array",
"discharge_array",
2024-12-19 14:50:19 +01:00
"discharging_efficiency",
"hours",
2024-12-19 14:50:19 +01:00
"capacity_wh",
"charging_efficiency",
"max_charge_power_w",
"soc_wh",
2024-12-19 14:50:19 +01:00
"initial_soc_percentage"
],
2024-12-19 14:50:19 +01:00
"title": "ElectricVehicleResult",
"description": "Result class containing information related to the electric vehicle's charging and discharging behavior."
},
"EnergieManagementSystemParameters": {
"properties": {
"pv_prognose_wh": {
"items": {
"type": "number"
},
"type": "array",
"title": "Pv Prognose Wh",
"description": "An array of floats representing the forecasted photovoltaic output in watts for different time intervals."
},
"strompreis_euro_pro_wh": {
"items": {
"type": "number"
},
"type": "array",
"title": "Strompreis Euro Pro Wh",
"description": "An array of floats representing the electricity price in euros per watt-hour for different time intervals."
},
"einspeiseverguetung_euro_pro_wh": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "number"
}
],
"title": "Einspeiseverguetung Euro Pro Wh",
"description": "A float or array of floats representing the feed-in compensation in euros per watt-hour."
},
"preis_euro_pro_wh_akku": {
"type": "number",
"title": "Preis Euro Pro Wh Akku",
"description": "A float representing the cost of battery energy per watt-hour."
},
"gesamtlast": {
"items": {
"type": "number"
},
"type": "array",
"title": "Gesamtlast",
"description": "An array of floats representing the total load (consumption) in watts for different time intervals."
}
},
"type": "object",
"required": [
"pv_prognose_wh",
"strompreis_euro_pro_wh",
"einspeiseverguetung_euro_pro_wh",
"preis_euro_pro_wh_akku",
"gesamtlast"
],
"title": "EnergieManagementSystemParameters"
},
"ForecastResponse": {
"properties": {
"temperature": {
"items": {
"type": "number"
},
"type": "array",
"title": "Temperature"
},
"pvpower": {
"items": {
"type": "number"
},
"type": "array",
"title": "Pvpower"
}
},
"type": "object",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"required": [
"temperature",
"pvpower"
],
"title": "ForecastResponse"
},
"GesamtlastRequest": {
"properties": {
"year_energy": {
"type": "number",
"title": "Year Energy"
},
"measured_data": {
"items": {
"type": "object"
},
"type": "array",
"title": "Measured Data"
},
"hours": {
"type": "integer",
"title": "Hours"
}
},
"type": "object",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"required": [
"year_energy",
"measured_data",
"hours"
],
"title": "GesamtlastRequest"
},
"HTTPValidationError": {
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
},
"HomeApplianceParameters": {
"properties": {
"consumption_wh": {
"type": "integer",
"exclusiveMinimum": 0.0,
"title": "Consumption Wh",
"description": "An integer representing the energy consumption of a household device in watt-hours."
},
"duration_h": {
"type": "integer",
"exclusiveMinimum": 0.0,
"title": "Duration H",
"description": "An integer representing the usage duration of a household device in hours."
}
},
"type": "object",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"required": [
"consumption_wh",
"duration_h"
],
"title": "HomeApplianceParameters"
},
"InverterParameters": {
"properties": {
"max_power_wh": {
"type": "number",
"exclusiveMinimum": 0.0,
"title": "Max Power Wh",
"default": 10000
}
},
"type": "object",
"title": "InverterParameters"
},
"OptimizationParameters": {
"properties": {
"ems": {
"$ref": "#/components/schemas/EnergieManagementSystemParameters"
},
"pv_akku": {
2024-12-19 14:50:19 +01:00
"$ref": "#/components/schemas/SolarPanelBatteryParameters"
},
"inverter": {
"$ref": "#/components/schemas/InverterParameters",
"default": {
"max_power_wh": 10000.0
}
},
"eauto": {
"anyOf": [
{
2024-12-19 14:50:19 +01:00
"$ref": "#/components/schemas/ElectricVehicleParameters"
},
{
"type": "null"
}
]
},
"dishwasher": {
"anyOf": [
{
"$ref": "#/components/schemas/HomeApplianceParameters"
},
{
"type": "null"
}
]
},
"temperature_forecast": {
"anyOf": [
{
"items": {
"type": "number"
},
"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",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"required": [
"ems",
"pv_akku",
"eauto"
],
"title": "OptimizationParameters"
},
"OptimizeResponse": {
"properties": {
"ac_charge": {
"items": {
"type": "number"
},
"type": "array",
"title": "Ac Charge",
"description": "Array with AC charging values as relative power (0-1), 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)."
},
"eautocharge_hours_float": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Eautocharge Hours Float",
"description": "TBD"
},
"result": {
"$ref": "#/components/schemas/SimulationResult"
},
"eauto_obj": {
"anyOf": [
{
2024-12-19 14:50:19 +01:00
"$ref": "#/components/schemas/ElectricVehicleResult"
},
{
"type": "null"
}
]
},
"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)."
}
},
"type": "object",
"required": [
"ac_charge",
"dc_charge",
"discharge_allowed",
"eautocharge_hours_float",
"result",
"eauto_obj"
],
"title": "OptimizeResponse",
"description": "**Note**: The first value of \"Last_Wh_per_hour\", \"Netzeinspeisung_Wh_per_hour\", and \"Netzbezug_Wh_per_hour\", will be set to null in the JSON output and represented as NaN or None in the corresponding classes' data returns. This approach is adopted to ensure that the current hour's processing remains unchanged."
},
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"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 {\n \"start_datetime\": \"2024-01-01 00:00:00\", # optional\n \"interval\": \"1 Hour\", # optional\n \"load_mean\": [20.5, 21.0, 22.1],\n \"load_min\": [18.5, 19.0, 20.1]\n }"
},
"PydanticDateTimeDataFrame": {
"properties": {
"data": {
"additionalProperties": {
"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": {
"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."
},
"SettingsEOS": {
"properties": {
"server_fastapi_host": {
"anyOf": [
{
"type": "string",
"format": "ipvanyaddress"
},
{
"type": "null"
}
],
"title": "Server Fastapi Host",
"description": "FastAPI server IP address.",
"default": "0.0.0.0"
},
"server_fastapi_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Server Fastapi Port",
"description": "FastAPI server IP port number.",
"default": 8503
},
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"server_fastapi_startup_server_fasthtml": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Server Fastapi Startup Server Fasthtml",
"description": "FastAPI server to startup application FastHTML server.",
"default": true
},
"server_fasthtml_host": {
"anyOf": [
{
"type": "string",
"format": "ipvanyaddress"
},
{
"type": "null"
}
],
"title": "Server Fasthtml Host",
"description": "FastHTML server IP address.",
"default": "0.0.0.0"
},
"server_fasthtml_port": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Server Fasthtml Port",
"description": "FastHTML server IP port number.",
"default": 8504
},
"weatherimport_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Weatherimport File Path",
"description": "Path to the file to import weather data from."
},
"weatherimport_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Weatherimport Json",
"description": "JSON string, dictionary of weather forecast value lists."
},
"weather_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Weather Provider",
"description": "Weather provider id of provider to be used."
},
"pvforecastimport_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Pvforecastimport File Path",
"description": "Path to the file to import pvforecast data from."
},
"pvforecastimport_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecastimport Json",
"description": "JSON string, dictionary of PV forecast float value lists.Keys are 'pvforecast_dc_power', 'pvforecast_ac_power'."
},
"pvforecast_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast Provider",
"description": "PVForecast provider id of provider to be used."
},
"pvforecast0_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast0_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast0_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast0_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast0_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast0_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
},
"pvforecast0_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Loss",
"description": "Sum of PV system losses in percent"
},
"pvforecast0_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast0 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.",
"default": 0
},
"pvforecast0_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast0_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast0_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast0_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast0_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast0_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast0_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast0_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast0 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"pvforecast1_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast1_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast1_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast1_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast1_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast1_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
},
"pvforecast1_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Loss",
"description": "Sum of PV system losses in percent",
"default": 0
},
"pvforecast1_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast1 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.",
"default": 0
},
"pvforecast1_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast1_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast1_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast1_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast1_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast1_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast1_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast1_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast1 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"pvforecast2_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast2_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast2_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast2_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast2_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast2_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
},
"pvforecast2_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Loss",
"description": "Sum of PV system losses in percent",
"default": 0
},
"pvforecast2_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast2 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.",
"default": 0
},
"pvforecast2_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast2_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast2_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast2_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast2_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast2_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast2_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast2_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast2 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"pvforecast3_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast3_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast3_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast3_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast3_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast3_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
},
"pvforecast3_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Loss",
"description": "Sum of PV system losses in percent",
"default": 0
},
"pvforecast3_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast3 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.",
"default": 0
},
"pvforecast3_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast3_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast3_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast3_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast3_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast3_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast3_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast3_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast3 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"pvforecast4_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast4_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast4_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast4_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast4_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast4_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
},
"pvforecast4_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Loss",
"description": "Sum of PV system losses in percent",
"default": 0
},
"pvforecast4_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast4 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.",
"default": 0
},
"pvforecast4_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast4_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast4_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast4_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast4_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast4_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast4_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast4_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast4 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"pvforecast5_surface_tilt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Surface Tilt",
"description": "Tilt angle from horizontal plane. Ignored for two-axis tracking.",
"default": 0
},
"pvforecast5_surface_azimuth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Surface Azimuth",
"description": "Orientation (azimuth angle) of the (fixed) plane. Clockwise from north (north=0, east=90, south=180, west=270).",
"default": 180
},
"pvforecast5_userhorizon": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Userhorizon",
"description": "Elevation of horizon in degrees, at equally spaced azimuth clockwise from north."
},
"pvforecast5_peakpower": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Peakpower",
"description": "Nominal power of PV system in kW."
},
"pvforecast5_pvtechchoice": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Pvtechchoice",
"description": "PV technology. One of 'crystSi', 'CIS', 'CdTe', 'Unknown'.",
"default": "crystSi"
},
"pvforecast5_mountingplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Mountingplace",
"description": "Type of mounting for PV system. Options are 'free' for free-standing and 'building' for building-integrated.",
"default": "free"
},
"pvforecast5_loss": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Loss",
"description": "Sum of PV system losses in percent",
"default": 0
},
"pvforecast5_trackingtype": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast5 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.",
"default": 0
},
"pvforecast5_optimal_surface_tilt": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Optimal Surface Tilt",
"description": "Calculate the optimum tilt angle. Ignored for two-axis tracking.",
"default": false
},
"pvforecast5_optimalangles": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Optimalangles",
"description": "Calculate the optimum tilt and azimuth angles. Ignored for two-axis tracking.",
"default": false
},
"pvforecast5_albedo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Albedo",
"description": "Proportion of the light hitting the ground that it reflects back."
},
"pvforecast5_module_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Module Model",
"description": "Model of the PV modules of this plane."
},
"pvforecast5_inverter_model": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Inverter Model",
"description": "Model of the inverter of this plane."
},
"pvforecast5_inverter_paco": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Inverter Paco",
"description": "AC power rating of the inverter. [W]"
},
"pvforecast5_modules_per_string": {
"anyOf": [
{
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"type": "integer"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Modules Per String",
"description": "Number of the PV modules of the strings of this plane."
},
"pvforecast5_strings_per_inverter": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pvforecast5 Strings Per Inverter",
"description": "Number of the strings of the inverter of this plane."
},
"load_import_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Load Import File Path",
"description": "Path to the file to import load data from."
},
"load_import_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Load Import Json",
"description": "JSON string, dictionary of load forecast value lists."
},
"loadakkudoktor_year_energy": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Loadakkudoktor Year Energy",
"description": "Yearly energy consumption (kWh)."
},
"load_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Load Provider",
"description": "Load provider id of provider to be used."
},
"load_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Load Name",
"description": "Name of the load source."
},
"elecpriceimport_file_path": {
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Elecpriceimport File Path",
"description": "Path to the file to import elecprice data from."
},
"elecpriceimport_json": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Elecpriceimport Json",
"description": "JSON string, dictionary of electricity price forecast value lists."
},
"elecprice_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Elecprice Provider",
"description": "Electicity price provider id of provider to be used."
},
"prediction_hours": {
"anyOf": [
{
"type": "integer",
"minimum": 0.0
},
{
"type": "null"
}
],
"title": "Prediction Hours",
"description": "Number of hours into the future for predictions",
"default": 48
},
"prediction_historic_hours": {
"anyOf": [
{
"type": "integer",
"minimum": 0.0
},
{
"type": "null"
}
],
"title": "Prediction Historic Hours",
"description": "Number of hours into the past for historical predictions data",
"default": 48
},
"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)"
},
"longitude": {
"anyOf": [
{
"type": "number",
"maximum": 180.0,
"minimum": -180.0
},
{
"type": "null"
}
],
"title": "Longitude",
"description": "Longitude in decimal degrees, within -180 to 180 (\u00b0)"
},
"optimization_hours": {
"anyOf": [
{
"type": "integer",
"minimum": 0.0
},
{
"type": "null"
}
],
"title": "Optimization Hours",
"description": "Number of hours into the future for optimizations.",
"default": 24
},
"optimization_penalty": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Optimization Penalty",
"description": "Penalty factor used in optimization.",
"default": 10
},
"optimization_ev_available_charge_rates_percent": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Optimization Ev Available Charge Rates Percent",
"description": "Charge rates available for the EV in percent of maximum charge.",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"default": [
0.0,
0.375,
0.5,
0.625,
0.75,
0.875,
1.0
]
},
"measurement_load0_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Measurement Load0 Name",
"description": "Name of the load0 source (e.g. 'Household', 'Heat Pump')"
},
"measurement_load1_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Measurement Load1 Name",
"description": "Name of the load1 source (e.g. 'Household', 'Heat Pump')"
},
"measurement_load2_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Measurement Load2 Name",
"description": "Name of the load2 source (e.g. 'Household', 'Heat Pump')"
},
"measurement_load3_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Measurement Load3 Name",
"description": "Name of the load3 source (e.g. 'Household', 'Heat Pump')"
},
"measurement_load4_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Measurement Load4 Name",
"description": "Name of the load4 source (e.g. 'Household', 'Heat Pump')"
},
"battery_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Battery Provider",
"description": "Id of Battery simulation provider."
},
"battery_capacity": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Battery Capacity",
"description": "Battery capacity [Wh]."
},
2024-12-19 14:50:19 +01:00
"battery_initial_soc": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Battery Initial Soc",
"description": "Battery initial state of charge [%]."
},
"battery_soc_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Battery Soc Min",
"description": "Battery minimum state of charge [%]."
},
"battery_soc_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Battery Soc Max",
"description": "Battery maximum state of charge [%]."
},
2024-12-19 14:50:19 +01:00
"battery_charging_efficiency": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Battery Charging Efficiency",
"description": "Battery charging efficiency [%]."
},
2024-12-19 14:50:19 +01:00
"battery_discharging_efficiency": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Battery Discharging Efficiency",
"description": "Battery discharging efficiency [%]."
},
2024-12-19 14:50:19 +01:00
"battery_max_charging_power": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Battery Max Charging Power",
"description": "Battery maximum charge power [W]."
},
"bev_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Bev Provider",
"description": "Id of Battery Electric Vehicle simulation provider."
},
"bev_capacity": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Bev Capacity",
"description": "Battery Electric Vehicle capacity [Wh]."
},
2024-12-19 14:50:19 +01:00
"bev_initial_soc": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Bev Initial Soc",
"description": "Battery Electric Vehicle initial state of charge [%]."
},
"bev_soc_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Bev Soc Max",
"description": "Battery Electric Vehicle maximum state of charge [%]."
},
2024-12-19 14:50:19 +01:00
"bev_charging_efficiency": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Bev Charging Efficiency",
"description": "Battery Electric Vehicle charging efficiency [%]."
},
2024-12-19 14:50:19 +01:00
"bev_discharging_efficiency": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Bev Discharging Efficiency",
"description": "Battery Electric Vehicle discharging efficiency [%]."
},
2024-12-19 14:50:19 +01:00
"bev_max_charging_power": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
2024-12-19 14:50:19 +01:00
"title": "Bev Max Charging Power",
"description": "Battery Electric Vehicle maximum charge power [W]."
},
"dishwasher_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Dishwasher Provider",
"description": "Id of Dish Washer simulation provider."
},
"dishwasher_consumption": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Dishwasher Consumption",
"description": "Dish Washer energy consumption [Wh]."
},
"dishwasher_duration": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Dishwasher Duration",
"description": "Dish Washer usage duration [h]."
},
"inverter_provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Inverter Provider",
"description": "Id of PV Inverter simulation provider."
},
"inverter_power_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Inverter Power Max",
"description": "Inverter maximum power [W]."
},
"data_folder_path": {
"anyOf": [
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Data Folder Path",
"description": "Path to EOS data directory."
},
"data_output_subpath": {
"anyOf": [
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Data Output Subpath",
"description": "Sub-path for the EOS output data directory.",
"default": "output"
},
"data_cache_subpath": {
"anyOf": [
{
"type": "string",
"format": "path"
},
{
"type": "null"
}
],
"title": "Data Cache Subpath",
"description": "Sub-path for the EOS cache data directory.",
"default": "cache"
}
},
"type": "object",
"title": "SettingsEOS",
"description": "Settings for all EOS."
},
"SimulationResult": {
"properties": {
"Last_Wh_pro_Stunde": {
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"type": "array",
"title": "Last Wh Pro Stunde",
"description": "TBD"
},
"EAuto_SoC_pro_Stunde": {
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"type": "array",
"title": "Eauto Soc Pro Stunde",
"description": "The state of charge of the EV for each hour."
},
"Einnahmen_Euro_pro_Stunde": {
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"type": "array",
"title": "Einnahmen Euro Pro Stunde",
"description": "The revenue from grid feed-in or other sources in euros per hour."
},
"Gesamt_Verluste": {
"type": "number",
"title": "Gesamt Verluste",
"description": "The total losses in watt-hours over the entire period."
},
"Gesamtbilanz_Euro": {
"type": "number",
"title": "Gesamtbilanz Euro",
"description": "The total balance of revenues minus costs in euros."
},
"Gesamteinnahmen_Euro": {
"type": "number",
"title": "Gesamteinnahmen Euro",
"description": "The total revenues in euros."
},
"Gesamtkosten_Euro": {
"type": "number",
"title": "Gesamtkosten Euro",
"description": "The total costs in euros."
},
"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."
},
"Kosten_Euro_pro_Stunde": {
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"type": "array",
"title": "Kosten Euro Pro Stunde",
"description": "The costs in euros per hour."
},
"Netzbezug_Wh_pro_Stunde": {
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"type": "array",
"title": "Netzbezug Wh Pro Stunde",
"description": "The grid energy drawn in watt-hours per hour."
},
"Netzeinspeisung_Wh_pro_Stunde": {
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"type": "array",
"title": "Netzeinspeisung Wh Pro Stunde",
"description": "The energy fed into the grid in watt-hours per hour."
},
"Verluste_Pro_Stunde": {
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"type": "array",
"title": "Verluste Pro Stunde",
"description": "The losses in watt-hours per hour."
},
"akku_soc_pro_stunde": {
"items": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"type": "array",
"title": "Akku Soc Pro Stunde",
"description": "The state of charge of the battery (not the EV) in percentage per hour."
}
},
"type": "object",
"required": [
"Last_Wh_pro_Stunde",
"EAuto_SoC_pro_Stunde",
"Einnahmen_Euro_pro_Stunde",
"Gesamt_Verluste",
"Gesamtbilanz_Euro",
"Gesamteinnahmen_Euro",
"Gesamtkosten_Euro",
"Home_appliance_wh_per_hour",
"Kosten_Euro_pro_Stunde",
"Netzbezug_Wh_pro_Stunde",
"Netzeinspeisung_Wh_pro_Stunde",
"Verluste_Pro_Stunde",
"akku_soc_pro_stunde"
],
"title": "SimulationResult",
"description": "This object contains the results of the simulation and provides insights into various parameters over the entire forecast period."
},
2024-12-19 14:50:19 +01:00
"SolarPanelBatteryParameters": {
"properties": {
"capacity_wh": {
"type": "integer",
"exclusiveMinimum": 0.0,
"title": "Capacity Wh",
"description": "An integer representing the capacity of the battery in watt-hours."
},
"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
},
"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
},
"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
}
},
"type": "object",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"required": [
"capacity_wh"
],
2024-12-19 14:50:19 +01:00
"title": "SolarPanelBatteryParameters"
},
"ValidationError": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
}
}
}
Fix2 config and predictions revamp. (#281) measurement: - Add new measurement class to hold real world measurements. - Handles load meter readings, grid import and export meter readings. - Aggregates load meter readings aka. measurements to total load. - Can import measurements from files, pandas datetime series, pandas datetime dataframes, simple daetime arrays and programmatically. - Maybe expanded to other measurement values. - Should be used for load prediction adaptions by real world measurements. core/coreabc: - Add mixin class to access measurements core/pydantic: - Add pydantic models for pandas datetime series and dataframes. - Add pydantic models for simple datetime array core/dataabc: - Provide DataImport mixin class for generic import handling. Imports from JSON string and files. Imports from pandas datetime dataframes and simple datetime arrays. Signature of import method changed to allow import datetimes to be given programmatically and by data content. - Use pydantic models for datetime series, dataframes, arrays - Validate generic imports by pydantic models - Provide new attributes min_datetime and max_datetime for DataSequence. - Add parameter dropna to drop NAN/ None values when creating lists, pandas series or numpy array from DataSequence. config/config: - Add common settings for the measurement module. predictions/elecpriceakkudoktor: - Use mean values of last 7 days to fill prediction values not provided by akkudoktor.net (only provides 24 values). prediction/loadabc: - Extend the generic prediction keys by 'load_total_adjusted' for load predictions that adjust the predicted total load by measured load values. prediction/loadakkudoktor: - Extend the Akkudoktor load prediction by load adjustment using measured load values. prediction/load_aggregator: - Module removed. Load aggregation is now handled by the measurement module. prediction/load_corrector: - Module removed. Load correction (aka. adjustment of load prediction by measured load energy) is handled by the LoadAkkudoktor prediction and the generic 'load_mean_adjusted' prediction key. prediction/load_forecast: - Module removed. Functionality now completely handled by the LoadAkkudoktor prediction. utils/cacheutil: - Use pydantic. - Fix potential bug in ttl (time to live) duration handling. utils/datetimeutil: - Added missing handling of pendulum.DateTime and pendulum.Duration instances as input. Handled before as datetime.datetime and datetime.timedelta. utils/visualize: - Move main to generate_example_report() for better testing support. server/server: - Added new configuration option server_fastapi_startup_server_fasthtml to make startup of FastHTML server by FastAPI server conditional. server/fastapi_server: - Add APIs for measurements - Improve APIs to provide or take pandas datetime series and datetime dataframes controlled by pydantic model. - Improve APIs to provide or take simple datetime data arrays controlled by pydantic model. - Move fastAPI server API to v1 for new APIs. - Update pre v1 endpoints to use new prediction and measurement capabilities. - Only start FastHTML server if 'server_fastapi_startup_server_fasthtml' config option is set. tests: - Adapt import tests to changed import method signature - Adapt server test to use the v1 API - Extend the dataabc test to test for array generation from data with several data interval scenarios. - Extend the datetimeutil test to also test for correct handling of to_datetime() providing now(). - Adapt LoadAkkudoktor test for new adjustment calculation. - Adapt visualization test to use example report function instead of visualize.py run as process. - Removed test_load_aggregator. Functionality is now tested in test_measurement. - Added tests for measurement module docs: - Remove sphinxcontrib-openapi as it prevents build of documentation. "site-packages/sphinxcontrib/openapi/openapi31.py", line 305, in _get_type_from_schema for t in schema["anyOf"]: KeyError: 'anyOf'" Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
2024-12-29 18:42:49 +01:00
}