Released on xx/xx/xxxx.
The following changes are backwards-compatible and do not significantly change benchmark results:
- Add materials for RLEM23 workshop at
docs/workshops/RlemWorkshop_20231112
. This is for #585. - Change JModelica docker container address in
testing/Dockerfile
. This is for #590. - Specify the Python version (3.7) used for building the wrapper to execute the example JavaScript controllers in the unit test. This is for #594.
- Allow simulations and forecast to work across the end of the year to the next year. This is for #239.
- Pin base Docker image to
linux/x86_64
platform. This is for #608. - Correct typo in design documentation about connecting inputs to overwrite blocks in wrapper model. This is for #601.
Released on 10/04/2023.
The following changes are backwards-compatible and do not significantly change benchmark results:
- Add materials for BS2023 workshop at
docs/workshops/BS23Workshop_20230904
. This is for #552. - Allow forecast horizons of 0 to retrieve boundary condition data at current time like pricing or temperature setpoints. This is for #554.
- Update
docs/tutorials/tutorial1_developer
anddocs/workshops/BS21Workshop_20210831
. This is for #532. - In examples and unit test Python requests, use
json
attribute instead ofdata
. This is for #528. - In unit test checking fetching of single forecast variable, specify specific forecast point to check for each test case. This is for #529.
- Update
KPI_Calculator.get_computational_time_ratio
to returnNone
if no simulation steps have been processed. This is for #540. - Add
forecastParameters
to dashboard submission with empty dictionary and update url for submitting dashboard results. This is for #548. - Fix so that results can be submitted to dashboard if sitting at end of scenario time period instead of needing to try to advance one step past. This is for #546.
- Fix for just-in-time adding example python controller scripts to PYTHONPATH. This is for #565.
- Add an interface for interacting with a test case through BACnet. See new directory
bacnet
. This is for #547. - Update Flask API argument type for overwrite values in the
/advance
request to be float to prevent truncation. This is for #577.
The following changes are backwards-compatible, but might change benchmark results:
- Fix check on control input overwrite in
testcase.TestCase.advance
when overwriting a value of 0. This will change results if using BOPTEST-Service and delivering control input overwrites, with value of 0, in an /advance request using thejson
attribute with the python requests library. This is for #533.
The following changes are not backwards-compatible, but do not significantly change benchmark results:
- Update BOPTEST test case Docker container to use Python 3.10, pyfmi 2.11, and co-simulation FMUs. Also convert all test case FMUs to co-simulation. This is for #146.
- Non-backwards compatible due to stricter check by Flask REST API to require content as application/json. If using Python
requests
, use thejson
parameter instead ofdata
. - Tends to slightly speed up simulation time for simpler, single-zone models, while more significantly slowing simulation time for more complex, multi-zone models. Refer to this comment for some benchmarking.
- Non-backwards compatible due to stricter check by Flask REST API to require content as application/json. If using Python
Released on 03/21/2023.
The following changes are backwards-compatible and do not significantly change benchmark results:
- Use python arrays instead of numpy arrays for storage of data in
y_store
andu_store
intestcase.py
for more efficient memory utilization, resulting in more consistent computation time for each advance step and faster overall test simulations. This is for #520. - Specify version on master branch as
<latest release>-dev
instead of0.x.x
. This is for #516. - Update tutorial in
docs/workshops/BS21Workshop_20210831
to be compatible with BOPTEST v0.3.0 deployed in BOPTEST-Service. This is for #507. - Add
get_html_IO.py
to/data
folder and remove it from/testcases
folders to avoid code duplication. This is for #464. - Abstract the definition of input and output lists within if-else statements in the API unit tests in
utilities.py
to the setUp method in each test cases's specific testing filetest_<testcase>
, by introducing theinput
andmeasurement
attributes. This is for #463. - Add unit test reporting script to each individual unit test target in the
testing/makefile
. This is for #466. - Add error message in case testcase path does not exist in
testcase.py TestCase __Init__
method. This is for #475. - Update script
get_html_IO.py
to run with the latest API implementation by adding['payload']
. This is for #487. - Update
twozone_apartment_hydronic
documentation with reference to publication where envelope model was validated with experimental data. This is for #496. - Update
twozone_apartment_hydronic
weather.csv
andgenerate_data.py
by adding global horizontal radiationHGloHor
. This is for #499.
The following changes are not backwards-compatible but do not significantly change benchmark results:
- Change the PUT
forecast
API to accept lists of variable names with the parameterpoint_names
instead of returning data for all variables. Also add parametersinterval
andhorizon
to that API endpoint. Add API GETforecast_points
to return available forecast point names and metadata. Remove APIs GET and PUTforecast_parameters
. This is for #356. - Change the PUT
results
API to accept lists of variable names with the parameterpoint_names
instead of a single string variable namepoint_name
. This is for #398.
The following new test cases have been added:
twozone_apartment_hydronic
, a 2-zone apartment based on a real newly built building in Milan, Italy, served by an air-to-water heat pump coupled with a floor heating system. This is for #409.
Released on 07/27/2022.
The following changes are backwards-compatible and do not significantly change benchmark results:
- Clarify
README.md
instructions for the deployment of a test case. This for #451. - Split unit tests into parallel jobs on travis. This is for #450.
- Add simulation support for test case FMUs compiled using Spawn of EnergyPlus. Does not address workflows for the compiling process for test case FMUs using Spawn. This is for #406.
- New project home page launched at https://ibpsa.github.io/project1-boptest/. This is for #214.
- Add file exclusion list to
data_manager.py
when loading data from fmu resource directory. This is for #423. - Specify better command on
README.md
for specifying test case to deploy on Windows. This is for #419. - Remove dependency of example controllers on
pathlib
package. This is for #416. - Fix and clarify
README.md
for the/initialize
and other API end points. This is for #408.
The following changes are not backwards-compatible but do not significantly change benchmark results:
- Add the POST
submit
API to submit test results to the online dashboard under a user's account there. This is for #403. - Update API to standardize return package format and information about about errors and warnings. The new return package is in the form
{"status":<status_code_int>, "message":<message_str>, "payload":<relevant_return_data>}
. Status codes are: 200, successful with or without warning; 400, bad input; 500, internal error. Users should expect the data returned in"payload"
to be the same as the previous version API, which should facilitate the necessary code modifications to maintain compatibility with the new API. This is for #73.
The following new test cases have been added:
multizone_office_simple_air
, a 5-zone building based on the U.S. DOE medium office reference building located in Chicago, IL, USA, served by a single-duct Variable Air Volume (VAV) with terminal reheat, air-cooled chiller, and air-to-water heat pump. This is for #273.
The following new core KPIs have been added:
- Peak Electricity Demand (
pele_tot
in kW/m^2): The maximum 15-minute HVAC electrical demand over the test interval. Returnsnull
if test case has no electricity consumption. This is for #388. - Peak Gas Demand (
pgas_tot
in kW/m^2): The maximum 15-minute HVAC gas demand over the test interval. Returnsnull
if test case has no gas consumption. This is for #388. - Peak District Heating Demand (
pdih_tot
in kW/m^2): The maximum 15-minute HVAC district heating demand over the test interval. Returnsnull
if test case has no district heating consumption. This is for #388.
Released on 03/05/2022.
The following changes are backwards-compatible and do not significantly change benchmark results:
- Make the test case parser compatible wth python 3. This is for #404.
- Use
docker-compose
for building and running test case. Use ofmake build
andmake run
deprecated. SeeREADME.md
for new deployment instructions. This is for #365. - Posted developer tutorial given to IBPSA Project 1 WP1.2 during Rome expert meeting and updated for current version of BOPTEST. Located at
docs/tutorials/tutorial1_developer/BOPTEST_Tutorial1_developer_20220110.pdf
. This is for #358. - For
multizone_residential_hydronic
, correct one-port temperature sensors to two-port and update door models fromBuildings.Airflow.Multizone.DoorDiscretizedOperable
toBuildings.Airflow.Multizone.DoorDiscretizedOpen
. This is for #384. - Refactor python-based example tests to utilize a single BOPTEST interface script. This is for #279.
- Fix
data/data_generator
to produce correct set points for defined occupied and unnoccupied times. This is for #368. - Freeze IBPSA Modelica library version in creation of
jm
image for unit testing. This is for #371. - Update test cases to use Buildings v8.0.0 and IDEAS v2.2.1 commit f1fdd8b. This is for #362 and #364.
- Add content to
/docs/workshops
for workshop at IBPSA Building Simulation 2021 Conference. This is for #348 and #374. - Update README.md to add links to
boptest-service
andboptest-gym
. This is for #353. - Fix path for documentation images for bestest_hydronic_heat_pump test case. This is for #351.
The following changes are backwards-compatible but do change benchmark results:
- Correct calculation of mix day scenario in
/data/find_days.py
. This changes the reference day for the mix day scenario time period for thebestest_air
test case. This is for #381.
The following changes are not backwards-compatible but do not significantly change benchmark results:
- Fix so that data returned through the API using
/results
and/advance
for<control_signal_name>_u
represents the "current value" of the control signal utilized within the emulator. It is equal to the baseline controller value if not being overwritten and the overwritten value otherwise. While this change does not change benchmark results, it is not backward compatible since the measurement signals available in some test cases that reported such "current values" (e.g.reaTSetHea_y
inbestest_hydronic
) have been removed. Users should instead request data for the control signal<control_signal_name>_u
(e.g.oveTSetHea_u
inbestest_hydronic
). This is for #364.
The following new test cases have been added:
singlezone_commercial_hydronic
, a single-zone commercial hydronic model with district heating source, zone radiator, and air handling unit providing fresh air with CO2 control and heat recovery. This is for #162.
Released on 07/13/2021.
This is an initial development release.