All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Extend Validation to EnergyManagement Systems. #1356
- Fixed handling of
CongestionResult.InputModelTypeinEntityProcessor#1325 - Fixed em fields in input models #1331
- Fixed valid fields for
EmInput#1360
- Updated dependabot workflow and added CODEOWNERS #1328
- Extend azimuth angle range to [-180°, 180°] for PV inputs #1330
- Improved error messages when reading and validating an invalid grid #1354
- Changed
SubgridContainerto represent galvanically seperated grids #1226
7.0.0 - 2025-05-08
- Implemented GitHub Actions for automatic code integration. #1237
- Added
CopyBuilderstoLine-/Transformer2W-/Tranformer3WTypeInput#1275 - Implementing auto-merge for dependabot PRs #1299
- Fixed SonarQube junit path issue in GitHub Actions #1284
- Fixed no errors thrown in
getMapping()inTimeSeriesMappingSource#1287
- Replaced
return thiswithreturn thisInstancein CopyBuilders #1250 - Removed Jenkinsfile #1315
- Updated readthedocs config #1317
- Updated gradle to v8.14
- Updated PSU to 3.1.0
6.0.0 - 2025-02-27
- Enhance
TimeSeriesSourcewith method to retrieve all time keys after a given key #543 - Enhance
WeatherSourcewith method to retrieve all time keys after a given key #572 - Adding timeseries for voltage values #1128
- Added Staudt to list of reviewers #1190
- Extend ValidationUtils for validating ThermalGrids #1216
- Enhance
TimeSeriesSourcewith method to retrieve the previous value before a given key #1182 - Added
BdewLoadProfileTimeSeries#1230 - Added
RandomLoadProfileTimeSeries#1232 - Attribute
pThermalRatedforThermalStorages #679 - Attributes
housingTypeandnumberInhabitantsforThermalHouses #1253 - Added domestic hot water storage model #1257
- Validation for BDEW load profile values #1243
- Added load profiles sources #1106
- Add
v2gSupportparameter to documentation ofEvcsModel#1278
- Removing opened
SwitchInputduring connectivity check #1221 - Fixed example in ReadTheDocs #1244
- Remove double test in ThermalValidationUtils #1260]
- Storage minimum level parameter removed from cylindrical thermal storage #1123
- Converted eval-rst to myst syntax in ReadTheDocs, fixed line wrapping and widths #1137
- Improving usage of streams on sql fetches #827
- Improving error message when using the outdated csv format #1112
- Changed ThermalUnitValidation: Ensure that thermal boundaries of thermal house are not the same #1186
- Converted
MappingEntryinto a normal class #1087 - Renamed timeseries mapping
participantcolumn toasset#1191 - Removed attribute
dsmfromLoadInput#1195 - Fix spotless deprecations #1123
- Refactored
CongestionResult, removedModelResultEntity#1234 - Replaced
LoadProfileInputwithLoadProfileTimeSeries#1228 - Enhance
CsvDataSource#1246 - Updated
_joint_gridcsv files from simona #750
- Updated gradle to v8.13 #1264
5.1.0 - 2024-06-24
- Enhancing
VoltageLevelwithequalsmethod #1063 ConnectorValidationUtilschecks if parallel devices is > 0 #1077GridContainerValidationUtilschecks the connectivity for all defined operation time intervals #1091- Implemented a
CongestionResult#1097
- Fixed
MappingEntryiesnot getting processed by addingGettermethods for record fields #1084 - Fixed "depth of discharge" in documentation #872
- Fixed project being build twice in CI #994
- Improvements to the search for corner points in
IdCoordinateSource#1016 - Refactor
CsvFileConnectorandCsvDataSource#1007 - Make
EntitySourcecompletely static #975 - Abstract commonly used functionality from
EntitySource#981
5.0.1 - 2024-03-07
- Fixed
equalsofResultEntityandTimeSeriesEntry#1037
5.0.0 - 2024-03-06
- Formatting Spotless Groovy import order #960
- Implementing missing typical methods in
Try#970 - Added log warning when using
SwitchInputswithparallelDevicesparameter #840 - Validation for
EvcsInput#1000 - Scaling method in system participant copy builders #1011
- Added separate field for maximum power limit for DC to evtype #876
- Added test for invalid input data in
CsvRawGridSource#1021 - Added
CsvThermalGridSource#1009 - Enhance documentation for CSV timeseries #825
- Fixed Couchbase integration tests that randomly failed #755
- Fixed hyperlink in line documentation #965
- Fixed some tests no failing when they should #958
- Fixed thermal-house-documentation #873
- Fixed ElectricVehicle Documentation #875
- Fixed Equal behavior of
ConnectorResult#1001 - Fixed test for invalid input data in
CsvGraphicSource#1022
- Changing from comparing strings to comparing uuids in
EntitySource.findFirstEntityByUuid#829 - Adding JavaDoc to
EntitySource.safeMapGet#828 - Abstracting some methods in
ValidationUtils#852 - Changes to Energy Management inputs:
- Enhancing the error message for coordinate sources with invalid column names #670
- Allowing for additional unused columns in sources #839
- Improving column name validation to only run once per source #849
- Refactored and abstracted
EntitySources andEntityDatacreation #969 - Updated contributing.md #737
- Don't throw exceptions for not yet implemented validations #879
CsvDataSourcethrows exceptions on error #954- Removing
uuidas required column from input and result time series #826 - Removing the support for the old csv format that was marked
deprecatedback in version1.1.0#795 - BREAKING: Updating PowerSystemUtils dependency to 2.2 #1006
4.1.0 - 2023-11-02
SqlIdCoordinateSource.createCooridinateValuenow throws an exception when the coordinate can not be built #911- CleanUp
BufferedCsvWriterTestonly after all tests are completed #809 - Update gradle to version 8.4 #891
4.0.0 - 2023-08-01
- Copy methods for container classes #726
- Allow hierarchic grid structure for JointGridContainer #768
- Adding SQL id coordinate sources (
IdCoordinateSource) #689 - Added some standard asset types to documentation #642
- Fixed wrong rated power unit hint #804
- Fixed wrong hash code generation of ConnectorResult #817
- Fixed wrong path for timeSeriesMapping #886
- Removing deprecated classes and methods #540
- Refactor CSV data sources #716
- Deleted parameter initFiles, set parameter append to false by default #791
- Use nio paths instead of strings for file path #723
- Data source will throw an exceptions instead of returning an empty optionals #707
- Improving
ValidationUtils#758 - conversion from rst to markdown myst#979
3.0.0 - 2023-02-16
- SQL time series sources (
SqlTimeSeriesSourceandSqlTimeSeriesMappingSource) #467 - SQL time series have a different structure than CSV counterparts #545
- Graph with impedance weighted edges including facilities to create it #440
TimeSeriesMetaInformationSourceproviding a source for the mapping of time series uuids to column schemes (previously provided byTimeSeriesMappingSource) #515TemperatureDependantLoadProfiles for depiction of profile behavior of night storage heating and heat pumps #601ThermalUnitsas a container to hold all thermal units #134ThermalInputas a distinct abstract class for all thermal modelsThermalGridas a container for a completely connected thermal gridEmResultandFlexOptionsResultfor Energy Management Systems #651EvcsInputnow has a parameter for enabling and disabling vehicle to grid support #681- Added Dependabot updates to sphinx/readthedocs dependencies #735
- Created convenience function for JointGridContainer from CSV #502
- Added CSV grid IO integration test #586
- Reduced code smells #492
- Protected constructors for abstract classes
- Use pattern matching
- Remove unused imports
- Use enhanced switch statements
- Replace lambdas with method references
- Use
Stream#toList - Adapt visibility for JUnit 5
- More code smell fixing #633
- Use
List#of - Use direct assignment with switch/case structures
- Turn some classes into records
- Making abstract classes' constructor protected
- Improving some RegExs
- Replacing
filter(Optional::isPresent).map(Optional::get)on streams withflatMap(Optional::stream) - instanceof variable declarations
- Removing unnecessary parentheses
- Miscellaneous code smells
- Use
- Fix JavaDoc creation
- Create JavaDoc with java 17 instead of java 8
- Let JavDoc pass, if there are warnings ATTENTION: Should be removed, when JavaDoc is fixed! (cf. Issue #494)
BufferedCsvWriterwrites columns in the order, that the headline elements are defined #434- Cleaned up
IndividualTimeSeriesMetaInformation-related methods inCsvFileConnector#544 - Fixed spotlessApply handling for
.groovyfiles #637 - Re-using SQL connection per default #653
- Persisting EmInputs #665
- Charging point type parsing now works with more id definitions #686
- Fix
EvResult.toString#690
- BREAKING: PvInput Model parameter name height changed to elevationAngle #393
⚠️ - BREAKING: Transformer's no load susceptance needs to be zero or negative to pass model validation #378
- All input data sets for version < 3.0.0 need to be altered!
- Deprecating (as part of #513):
edu.ie3.datamodel.io.csv.timeseries.ColumnSchemeedu.ie3.datamodel.io.csv.FileNameMetaInformationedu.ie3.datamodel.io.csv.timeseries.IndividualTimeSeriesMetaInformationedu.ie3.datamodel.io.csv.timeseries.LoadProfileTimeSeriesMetaInformationedu.ie3.datamodel.io.connectors.CsvFileConnector.CsvIndividualTimeSeriesMetaInformation- and related methods
- BREAKING: Comprehensive harmonization around weather sources #267
- Adapted the expected column scheme
- General weather model
coordinatetocoordinateid
- DWD COSMO model
diffuseirradiationtodiffuseirradiancedirectirradiationtodirectirradiance
- ICON model:
"datum"to"time"
- General weather model
- Force user to provide time stamp pattern to
CouchbaseWeatherSourceto ensure harmonized querying
- Adapted the expected column scheme
- BREAKING: Updating PowerSystemUtils dependency to 2.0-SNAPSHOT #595
- BREAKING: Generified the
LoadInputattributestandardLoadProfiletoloadProfileas it should also address the newly addedTemperatureDependantLoadProfiles #601 - Adapted to new double converters in PSU #705
- Setting fixed groovy version and updating groovy #788
2.1.0 - 2022-01-05
- added
EvcsLocationTypesupport inEvcsInputandEvcsInputFactory#406 - Opportunity to close writer in
CsvFileSink - Generified SQL data sources for future extensions
- adapted
LineInputconstructor to convert line length toStandardUnits.LINE_LENGTH#412
- Writers used to write time series are closed right away
- Changed class name in FlexOptionsResult.toString #693
- Deleted parameter decimalPlaces and changed naming of serialization method #710
- Changed switch result documentation according to the implementation #757
- Added documentation for EmResult and FlexOptionResult #656
- Added method that checks if the transformer nodes are located on the correct voltage side #803
2.0.1 - 2021-07-08
- fix CHANGELOG.md
- replace
LogManagercalls withLogFactoryfor facade logging support
2.0.0 - 2021-05-21
- added
ResultEntitySourceinterface - added
CsvResultEntitySourceimplementation to readResultEntityinstances from .csv files - added target temperature including tolerance boundaries to
ThermalHouseInput
- separated entity and file naming and introduced a new FileNamingStrategy taking an EntityNamingStrategy and a FileHierarchy as arguments
CsvSystemParticipantSource#getSystemParticipants()now correctly returns electric vehicle charging station input models PR#370
2.0.0 - 2021-05-21
- definition for a default input file directory structure
- tarball utils to extract and compress files
- added electric vehicle charging station implementation
EvcsInput - reading time series from csv files (including a container object to hold the different types of time series)
- reading mapping from participant uuid to time series uuid including a mapping object for easy access to time series
- Couchbase, SQL and CSV connectors and sources for weather data
- added validation utils that can be used to check whether objects have valid values (no usage implemented yet)
- added
SystemParticipantWithHeatResultwith thermal power variable to be used by heat plant result models
- BREAKING: replaced Unit API 1.0 (JSR 363, tec.uom.se) with Unit API 2.0 (JSR 385, tech.units.indriya)
- added possibility to allow
nullvalues in time series for missing values (e.g. if some measure data points from real world data time series are missing) - moved api docs to own branch incl. automated api-docs deployment
- added methods for nearest and all coordinates to IdCoordinateSource
- utilize factory in IdCoordinateSource to maintain highest possible flexibility
- added coordinate distance sort method to GridAndGeoUtils
- BREAKING: Harmonized field naming for time information
- BREAKING: Properly applying snake case to result file names
- deprecated
TarballUtils - updated Indriya to version 2.1.2 to include fixes for serialization
- Reworking the time series source (one source per time series, distinct mapping source, factory pattern)
- BREAKING: Moved methods
buildSafe{Coord,Point,LineString,LineStringBetweenCoords,LineStringBetweenPoints},totalLengthOfLineStringfromGridAndGeoUtilstoGeoUtilsin PowerSystemUtils - BREAKING: Moved
CoordinateDistanceto PowerSystemUtils - Factory methods for
SubGridGate - BREAKING: Inheritance hierarchy of exceptions all around entity validation
- BREAKING: Removed deprecated code parts
- Intermingled builder pattern and constructors in
SubGridGate TarballUtilsthat have been transferred toFileIOUtilsin PowerSystemUtilsFileNamingStrategythat has been transferred toEntityPersistenceNamingStrategyEvCharacteristicInputandTimeSeriesContainerthat shouldn't be used anymore
- Intermingled builder pattern and constructors in
- InfluxDbConnector now keeps session instead of creating a new one each call (resolves #247 and #248)
- BREAKING: fix invalid application of solar irradiance / irradiation (#266)
- BREAKING: deleted
IrradiationValueas it is invalid and no longer required - added copy builder implementations for thermal input models
CylindricalStorageInput,ThermalBusInputandThermalHouseInput - the sample code for reading and writing model data from respectively to csv files documented in the Sphinx documentation is fixed
1.1.0 - 2020-09-15
- Headline in csv files is now mandatory. CsvDataSource checks for existing field
uuidin first row of .csv file - Minor logging improvements
- New constructor in
Transformer3WInputthat allows the internal node to be marked as slack - Method in
ContainerUtilsto modify a providedSubGridContainerwith slack nodes and make it usable for most of the commonly known power flow calculations - gradle task to create JavaDoc HTML files in the folder 'docs/javadoc'
- added missing
HpResultmodel - Implementation of
DataConnector,WeatherSourceandDataSinkfor InfluxDB - Introduction of a
IdCoordinateSourceand implementation of corresponding csv source for ID to coordinate mapping - Factory for
TimeBasedValues<WeatherValue> - Documentation with Sphinx / ReadTheDocs: https://powersystemdatamodel.readthedocs.io/en/latest/
- Introduction of
SwitchResultFactoryto build adaptedSwitchResultentities - Copy method for all
RawGridElementsandSystemParticipantsinput entities which allow an easy to use entity copy with altered field values distanceBetweenNodes(NodeInput nodeA, NodeInput nodeB)inGridAndGeoUtils- Additional constructors based on lists of entities in
RawGridElements,SystemParticipantsandGraphicElements - Added
DistanceWeightedGraph+ corresponding utility method to generate a graph topology whose vertices areNodeInputentities and its edges are weighted with the distance between the vertices in meter - Added
ContainerNodeUpdateUtilto support updating nested nodes inGridContainerinstances - Gradle task
gradle finalizePRto format and test the code as well as generate JavaDoc
- Disabled concurrent writing in
CsvFileSink.persistJointGrid()as this caused concurrency issues - Modifications in
LineInputandGraphicInputconstructors to makeLineStringswith two exactly equal coordinates or multiple exactly equal coordinates possible - Extended functionality of
GridAndGeoUtils CsvFileConnectoris now set up to process either UniqueEntities or only by file nameSwitchResultsuperclass changed fromConnectorResulttoResultEntityCsvDataSourcenow parses valid RFC 4180 rows correctly (invalid, old syntax is still supported but deprecated!)- Consolidate test tasks.
gradle allTestsis now replaced bygradle test. Only unit tests can be run withgradle unitTest. - Changed projects toString() methods for readability/completeness
- Adapted to changes in PowerSystemUnits in PowerSystemUtils #631
- CsvDataSource now stops trying to get an operator for empty operator uuid field in entities
- CsvDataSource now parsing multiple geoJson strings correctly