Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Issue 273 add roundtrip efficiency to scheduler (#291)
Rewrite our generic device scheduler to: - Deal with asymmetric efficiency losses of individual devices. - Deal with asymmetric up and down prices for deviating from previous commitments. Also allow round-trip efficiency to be communicated as a new optional field when POSTing UDI Events, with efficiency losses being assigned equally to charging and discharging. * Query TimedBelief rather than Power in api v1.3 tests Signed-off-by: F.N. Claessen <felix@seita.nl> * Query TimedBelief rather than Power in api v1.3 implementations Signed-off-by: F.N. Claessen <felix@seita.nl> * Query TimedBelief rather than Power in user services tests Signed-off-by: F.N. Claessen <felix@seita.nl> * Query TimedBelief rather than Power in query tests Signed-off-by: F.N. Claessen <felix@seita.nl> * Query TimedBelief rather than Power in forecasting tests Signed-off-by: F.N. Claessen <felix@seita.nl> * Query TimedBelief rather than Power in scheduling tests Signed-off-by: F.N. Claessen <felix@seita.nl> * Query TimedBelief rather than Power in api v1 tests Signed-off-by: F.N. Claessen <felix@seita.nl> * Simplify data deletion, like, by a lot Signed-off-by: F.N. Claessen <felix@seita.nl> * Count ex-ante TimedBeliefs after populating time series forecasts Signed-off-by: F.N. Claessen <felix@seita.nl> * Query TimedBelief rather than Price in api v1_1 tests Signed-off-by: F.N. Claessen <felix@seita.nl> * Query TimedBelief rather than Power/Price/Weather in Resource.load_sensor_data Signed-off-by: F.N. Claessen <felix@seita.nl> * Query TimedBelief rather than Power/Price/Weather in api v2.0 tests Signed-off-by: F.N. Claessen <felix@seita.nl> * Refactor: simplify duplicate query construction Signed-off-by: F.N. Claessen <felix@seita.nl> * Add custom join target to get rid of SA warning Signed-off-by: F.N. Claessen <felix@seita.nl> * Filter criteria should work for both TimedBeliefs and TimedValues Signed-off-by: F.N. Claessen <felix@seita.nl> * Clarify docstring Signed-off-by: F.N. Claessen <felix@seita.nl> * Query TimedBelief rather than Power in api v1 implementations Signed-off-by: F.N. Claessen <felix@seita.nl> * Schedules should contain one deterministic belief per event Signed-off-by: F.N. Claessen <felix@seita.nl> * Fix type annotation Signed-off-by: F.N. Claessen <felix@seita.nl> * flake8 Signed-off-by: F.N. Claessen <felix@seita.nl> * Query TimedBelief rather than Price/Weather for analytics Signed-off-by: F.N. Claessen <felix@seita.nl> * Query deterministic TimedBelief rather than Price for planning queries Signed-off-by: F.N. Claessen <felix@seita.nl> * Forecast TimedBelief rather than Power/Price/Weather Signed-off-by: F.N. Claessen <felix@seita.nl> * Schedule TimedBelief rather than Power Signed-off-by: F.N. Claessen <felix@seita.nl> * Apparently, to initialize a TimedBelief is to save a TimedBelief, too Signed-off-by: F.N. Claessen <felix@seita.nl> * Create TimedBelief rather than Power/Price/Weather in data generation script Signed-off-by: F.N. Claessen <felix@seita.nl> * Bump timely-beliefs dependency Signed-off-by: F.N. Claessen <felix@seita.nl> * Fix latest state query Signed-off-by: F.N. Claessen <felix@seita.nl> * Revert "Apparently, to initialize a TimedBelief is to save a TimedBelief, too" This reverts commit fb58ec7. * Prevent saving TimedBelief to session upon updating Sensor or Source Signed-off-by: F.N. Claessen <felix@seita.nl> * Create only TimedBeliefs in conftests Signed-off-by: F.N. Claessen <felix@seita.nl> * Use session.add_all calls instead of session.bulk_save_objects or individual session.add calls Signed-off-by: F.N. Claessen <felix@seita.nl> * API directly creates TimedBeliefs Signed-off-by: F.N. Claessen <felix@seita.nl> * CLI uses TimedBeliefs only Signed-off-by: F.N. Claessen <felix@seita.nl> * Data scripts use TimedBeliefs only Signed-off-by: F.N. Claessen <felix@seita.nl> * One more conftest switched to creating TimedBeliefs instead of Weather objects Signed-off-by: F.N. Claessen <felix@seita.nl> * Expand docstring note on forbidden replacements Signed-off-by: F.N. Claessen <felix@seita.nl> * Clarify docstring note on saving changed beliefs only Signed-off-by: F.N. Claessen <felix@seita.nl> * Remove redundant flush Signed-off-by: F.N. Claessen <felix@seita.nl> * Catch forbidden belief replacements with more specific exception Signed-off-by: F.N. Claessen <felix@seita.nl> * Rename variable Signed-off-by: F.N. Claessen <felix@seita.nl> * One transaction per request Signed-off-by: F.N. Claessen <felix@seita.nl> * Only enqueue forecasting jobs upon successfully saving new data Signed-off-by: F.N. Claessen <felix@seita.nl> * Flush instead of commit Signed-off-by: F.N. Claessen <felix@seita.nl> * Expand test for forbidden data replacement Signed-off-by: F.N. Claessen <felix@seita.nl> * Simplify play mode excemption for replacing beliefs Signed-off-by: F.N. Claessen <felix@seita.nl> * Add note about potential session rollback Signed-off-by: F.N. Claessen <felix@seita.nl> * Typo Signed-off-by: F.N. Claessen <felix@seita.nl> * Move UniqueViolation catching logic to error handler Signed-off-by: F.N. Claessen <felix@seita.nl> * flake8 Signed-off-by: F.N. Claessen <felix@seita.nl> * Rewrite solver to deal with asymmetry in up and down commitment prices Signed-off-by: F.N. Claessen <felix@seita.nl> * Add optional roundtrip_efficiency field to UDI events, and use it to scale prices Signed-off-by: F.N. Claessen <felix@seita.nl> * Add test cases for various round-trip efficiencies Signed-off-by: F.N. Claessen <felix@seita.nl> * Add changelog entries Signed-off-by: F.N. Claessen <felix@seita.nl> * Add documentation for the new API field Signed-off-by: F.N. Claessen <felix@seita.nl> * Grammar corrections Signed-off-by: F.N. Claessen <felix@seita.nl> * Fix return value for empty EMS Signed-off-by: F.N. Claessen <felix@seita.nl> * Allow efficiencies per device for multi-device EMS, by stopping the application of round-trip efficiency as price scalars and modeling device flows in more detail Signed-off-by: F.N. Claessen <felix@seita.nl> * Relax tests using some tolerance Signed-off-by: F.N. Claessen <felix@seita.nl> * Fix mistake Signed-off-by: F.N. Claessen <felix@seita.nl> * Add test docstring Signed-off-by: F.N. Claessen <felix@seita.nl> * Check round-trip efficiency for acceptable range Signed-off-by: F.N. Claessen <felix@seita.nl> * Expand docstring Signed-off-by: F.N. Claessen <felix@seita.nl>
- Loading branch information