diff --git a/src/zepben/eas/client/eas_client.py b/src/zepben/eas/client/eas_client.py index dab957f..04e5b5b 100644 --- a/src/zepben/eas/client/eas_client.py +++ b/src/zepben/eas/client/eas_client.py @@ -986,12 +986,29 @@ async def async_run_opendss_export(self, config: OpenDssConfig): }, "modulesConfiguration": { "common": { - "timeZone": config.time_zone.__str__(), - **({"fixedTime": config.load_time.time.isoformat()} - if isinstance(config.load_time, FixedTime) else {}), + **({ "loadTime": config.load_time.time.isoformat(), + "overrides": config.load_time.load_overrides and [ + { + "loadId": key, + "loadWattsOverride": value.load_watts, + "genWattsOverride": value.gen_watts, + "loadVarOverride": value.load_var, + "genVarOverride": value.gen_var, + } for key, value in config.load_time.load_overrides.items() + ] + } if isinstance(config.load_time, FixedTime) else {}), **({"timePeriod": { - "start": config.load_time.start_time.isoformat(), - "end": config.load_time.end_time.isoformat(), + "startTime": config.load_time.start_time.isoformat(), + "endTime": config.load_time.end_time.isoformat(), + "overrides": config.load_time.load_overrides and [ + { + "loadId": key, + "loadWattsOverride": value.load_watts, + "genWattsOverride": value.gen_watts, + "loadVarOverride": value.load_var, + "genVarOverride": value.gen_var, + } for key, value in config.load_time.load_overrides.items() + ] }} if isinstance(config.load_time, TimePeriod) else {}) }, **({"generator": { @@ -1145,9 +1162,26 @@ async def async_get_paged_opendss_models( } modulesConfiguration { common { + fixedTime{ + loadTime + overrides { + loadId + loadWattsOverride + genWattsOverride + loadVarOverride + genVarOverride + } + } timePeriod { - start - end + startTime + endTime + overrides { + loadId + loadWattsOverride + genWattsOverride + loadVarOverride + genVarOverride + } } } generator { diff --git a/src/zepben/eas/client/opendss.py b/src/zepben/eas/client/opendss.py index ae21075..91838f7 100644 --- a/src/zepben/eas/client/opendss.py +++ b/src/zepben/eas/client/opendss.py @@ -25,7 +25,6 @@ class OpenDssConfig: scenario: str year: int feeder: str - time_zone: tzinfo load_time: Union[TimePeriod, FixedTime] generator_config: Optional[GeneratorConfig] = None model_name: Optional[str] = None diff --git a/test/test_eas_client.py b/test/test_eas_client.py index 035b713..0392ba7 100644 --- a/test/test_eas_client.py +++ b/test/test_eas_client.py @@ -780,10 +780,16 @@ def run_opendss_export_request_handler(request): }, "modulesConfiguration": { "common": { - "timeZone": "UTC+10:00", "timePeriod": { - "start": "2022-04-01T00:00:00", - "end": "2023-04-01T00:00:00", + "startTime": "2022-04-01T00:00:00", + "endTime": "2023-04-01T00:00:00", + "overrides": [{ + 'loadId': 'meter1', + 'loadWattsOverride': [1.0], + 'genWattsOverride': [2.0], + 'loadVarOverride': [3.0], + 'genVarOverride': [4.0] + }] } }, "generator": { @@ -879,10 +885,10 @@ def run_opendss_export_request_handler(request): scenario="scenario1", year=2024, feeder="feeder1", - time_zone=timezone(timedelta(hours=10)), load_time=TimePeriod( datetime(2022, 4, 1), - datetime(2023, 4, 1) + datetime(2023, 4, 1), + {"meter1": TimePeriodLoadOverride([1.0], [2.0], [3.0], [4.0])} ), model_name="TEST OPENDSS MODEL 1", generator_config=GeneratorConfig( @@ -1028,9 +1034,26 @@ def test_run_opendss_export_valid_certificate_success(ca: trustme.CA, httpserver } modulesConfiguration { common { + fixedTime{ + loadTime + overrides { + loadId + loadWattsOverride + genWattsOverride + loadVarOverride + genVarOverride + } + } timePeriod { - start - end + startTime + endTime + overrides { + loadId + loadWattsOverride + genWattsOverride + loadVarOverride + genVarOverride + } } } generator {