Skip to content

Releases: hongyuanjia/eplusr

eplusr v0.16.2

26 Aug 14:22
Compare
Choose a tag to compare

Bug fixes

  • Support design condition specs from ASHRAE HOF 2021 (#571).
  • Use NA_character_ instead of NA for numeric_version() (#572).

New features

  • Update weather database for OneBuilding (#574).

eplusr v0.16.1

19 Jun 15:40
e45e843
Compare
Choose a tag to compare

Bug fixes

  • Fix edge cases of IDF/IDD parsing (#566).

Internal refactor

  • Use character input for numeric_version() (#565).
  • Skips tests that need IDD downloading on CRAN (#561).

eplusr v0.16.0

17 May 13:01
Compare
Choose a tag to compare

New features

  • Add support for EnergyPlus v22.1 (#517).
  • Add support for EnergyPlus v22.2 (#530).
  • Add support for EnergyPlus v23.1 (#548).
  • Update weather database (#519).
  • Add support Space in IdfGeometry. Results from IdfGeometry$area(), IdfGeometry$tilt() and IdfGeometry$azimuth() now include a new column space indicating the spaces where the surfaces are attached to. IdfGeometry$view() and IdfViewer$show() now can render by spaces (#535).

Bug fixes

  • IdfGeometry$convert() now work for EnergyPlus v9.6 and above (#536).
  • Now IMF files can be handled correctly (#537).
  • Now idf$add(), idf$set() and other methods accept any list inputs on the
    RHS instead of explicitly restricting to list() (#545).

Internal refactor

  • Use testthat 3rd edition for parallel testing (#478).
  • Update minimal {data.table} version requirement to 1.14.6 to fix (#415).
  • Remove {crayon} and {progress} dependencies (#432).
  • Move {hms} to Suggest (#557).

eplusr v0.15.3

21 Nov 01:16
Compare
Choose a tag to compare

Bug fixes

  • Fix EPW parsing error due to an update of lubridate (#532).

eplusr v0.15.2

19 Aug 10:59
Compare
Choose a tag to compare

New features

  • A new encoding parameter has been added in read_idf(), use_idd() and
    read_epw(). The default value is unknown which indicates that the input
    file is native encoded (#515).
  • Now validate_level option is respected when parsing EPW files. This makes it
    possible to parse EPW files with non-standard EPW header values, which is
    useful when only the core EPW data is needed (#520). E.g:
    with_option(list(validate_level = "none"), read_epw(YOUR_EPW_PATH))
    

Bug fixes

  • Now IdfGeometry$coord_system() can correctly work. The coordinate system
    type can also be "world". "absolute" input now is automatically converted
    to "world" to be compatible with EnergyPlus. IdfGeometry$coord_system()
    now returns itself by default, instead of the parent Idf object. This
    enables to check the modified coordinate systems by printing the IdfGeometry
    (#506 #507).
  • Fix Idf$load() when input is a single string without any new line (\n)
    (#510).
  • Fix IdfViewer$snapshot() for PNG output. A new parameter webshot has been
    added in IdfViewer$snapshot() with default value being FALSE (#509).
  • Now IdfSchedule$... <- val works (#512).
  • Fix the error of invalid datetime in Epw$data() when data of Feb 28 is from
    a leap year while the EPW did not contain any leap year data (#522).

Documentation

  • Regenerate package documentation to fix CRAN NOTES on HTML manuals (#525).

eplusr v0.15.1

21 Jan 08:55
Compare
Choose a tag to compare

Bug fixes

  • Fix ParametricJob$cases() when multiple objects are specified on the LHS in ParametricJob$param() (#492).
  • Fix install_eplus(9.1) on Linux (#494, #495).
  • Now ParametricJob$run() can correctly use weather file when only one parametric model exists (#497).

Minor changes

  • Compatibility changes for incoming {units} v0.8 (#499).

eplusr v0.15.0

18 Nov 00:50
Compare
Choose a tag to compare

New features

  • Idd$path() is added to show the path of IDD parsed (#442).

  • Add epw data sources from climate.onebuilding.org for download_weather(). type will always be "all" for those sources (#453).

  • Add a new "stat" option in type in download_weather() (#453).

  • Idf$is_valid_id() and Idf$is_valid_name() gain a new argument named class defaulting to NULL to check the validity of object IDs and names again a specific class.

  • Add support for EnergyPlus v9.5 (#438).

  • Add support for EnergyPlus v9.6 (#460).

  • Internal function locate_eplus() has been exported to enable user to find all available EnergyPlus without restarting R (#477).

  • uninstall_eplus() has been added to enable uninstall EnergyPlus from R on all platform (#477).

  • Now force re-installation of EnergyPlus install_eplus(force = TRUE) has been updated to support all platforms, including macOS (#477).

  • install_eplus() has been updated to behave smarter on macOS (#477).

  • run_idf() and run_multi() have been refactored to mimick the Epl-run.bat procedure. It supports to call the Basement and Slab processors. Now the requirement of EnergyPlus >=v8.3 for running simulations has been droppped Now simulations with FMU, including obFMU are supported. (#467).

  • HVAC-Diagram will be called when running simulations to make sure the svg output of HVAC diagram can be generated. Therefore, hvac_diagram() has been deprecated and will be removed in next major version (#467).

  • Functions path_eplus() and path_eplus_*() have been added to help specify file paths under EnergyPlus installation directory (#467).

  • A new Idf method $external_deps() is added to extra any external file resources specified in the IDF that are needed for simulation, e.g. schedule files (#467).

  • Now Idf$save(external = TRUE) and Idf$run(copy_external) save external file dependencies based on the results of Idf$external_deps() (#467).

  • A new EplusJob method $list_files() is added to list all inputs and output files for current simulation (#467).

  • A new argument readvars can be specified in EplusJob$run() and EplusGroupJob$run(). Setting it to FALSE will disable to run ReadVarsESO post-processor and thus no CSVs will be generated for Report variables and meters. This can speed up simulations significantly if there are hundreds of outputs in the model. Setting it to FALSE will not affect any data extraction functionalities in eplusr, as it uses the SQLite output instead of the CSVs (#467).

  • Now .() can also be used as an alias as list() in Idf$add() and Idf$set() (#445).

    idf$add(Output_Variable = .("*", "zone mean air temperature"))
    # is equivalent to
    idf$add(Output_Variable = list("*", "zone mean air temperature"))
  • A new argument names can be specified in ParametricJob$models() to rename the parametric models created (#487).

  • A new interface for creating parametric models has been introduced using ParametricJob$param(). It takes parameter definitions in list format, which is similar to Idf$set() except that each field is not assigned with a single value, but a vector of any length, indicating the levels of each parameter. For example, the code block below defines 3 parameters (#487):

    • Field Fan Total Efficiency in object named Supply Fan 1 in class Fan:VariableVolume class, with 10 levels being 0.1 to 1.0 with a 0.1 step.
    • Field Thickness in all objects in class Material, with 10 levels being 0.01 to 0.1 m with a 0.1 m step.
    • Field Conductivity in all objects in class Material, with 10 levels being 0.1 to 1.0 W/m-K with a 0.1 W/m-K step.
    param$param(
        `Supply Fan 1` = list(Fan_Total_Efficiency = seq(0.1, 1.0, 0.1)),
        Material := list(Thickness = seq(0.01, 0.1, 0.1), Conductivity = seq(0.1, 1.0, 0.1))
    )
    
  • ParametricJob$cases() is added to get a summary of parametric models and parameter values. It returns a data.table giving you the indices and names of the parametric models, and all parameter values used to create those models.For parametric models created using ParametricJob$param(), the column names will be the same as what you specified in .names. For the case of ParametricJob$apply_measure(), this will be the argument names of the measure functions (#487).

  • Now .names in ParametricJob$apply_measure() can be a single character. In this case, it will be used as the prefix of all parametric models. The models will be named in the pattern .names_X where X is the model index (#487).

Break changes

  • hvac_diagram() has been deprecated as HVAC-Diagram will always be called after EnergyPlus simulation. If you still want to generate HVAC svg diagram manually, please use HVAC_Diagram() instead (#467).

Minor changes

  • When type is "all" in download_weather(), the ZIP file will be downloaded instead of downloading both EPW and DDY files (#453).
  • EplusJob$output_dir() now use backslash in the returned path on Windows (#467).
  • Better error message when no arguments are given to the measure function in ParametricJob$apply_measure() (#487).

Bug fixes

  • Fix the year value calculation when first day of a run period is holiday (#450).
  • Fix download_weather() file downloading URL (#452).
  • Fix EplusSql$report_data(..., wide = TRUE) when Do HVAC Sizing Simulation for Sizing Periods is set to Yes in SimulationControl (#461).
  • Now read_idf() and other functions that read files from disk can use stringi::stri_enc_detect() to fix encoding issue (#467).
  • Now ParametricJob$run(dir = NULL) will always use the seed model directory (#483).

eplusr v0.14.2

26 May 00:52
Compare
Choose a tag to compare

New features

  • IddObject$output() is added to extract all possible outputs of current class. All outputs are extracted from the LaTeX source file of "Input Output Reference" for EnergyPlus v8.5.0 and later. So empty result will always be returned for Idd version lower than v8.5. It is possible that there are some mistakes introduced when extracting the output variables. Also, some outputs are only available if certain fields are set. Even they are listed in the results, it does not mean that the Idf can report all of them. It is strongly suggested to check the RDD and MDD file for correctness (#427). Example:

    idd <- use_idd(8.8)
    idd$Lights$outputs()

Break changes

  • Autocompletion is enabled by registering a S3 .DollarNames method. Option autocomplete is deprecated. A warning is issued if you try to set it in eplusr_option(). Also, with_speed() is deprecated and falls back to without_checking() when called (#417).

Bug fixes

  • Fixed wrong transition of FuelFactors from v9.2 to v9.3 (#420).
  • Fixed Idf$del error when both sources and referees are given (#433).

Minor changes

  • Better error and verbose messages (#422, #423).

eplusr v0.14.1

26 Feb 05:59
Compare
Choose a tag to compare

Minor changes

  • Compatible changes for units v0.7-0 (#410).

eplusr v0.14.0

19 Jan 07:16
Compare
Choose a tag to compare

New features

  • Epw$save() gets a new option format_digit. If TRUE, the trailing digits
    in EPW data will be formatted in the same way as Weather Converter (#323).
  • Add EnergyPlus v9.3 and v9.4 support (#343, #347, #369).
  • Now ParametricJob$apply_measure() will give a nice progress bar when
    parametric models are creating (#378).
  • A new argument separate is added in EplusGroupJob$run() and
    ParametricJob$run() with default value being TRUE. If set to FALSE, all
    models are saved in dir when simulation, instead of creating a folder for
    each model and running simulation there (#381).
  • When extracting grouped simulation results using $report_data_dict(),
    $report_data() and etc in EplusGroupJob and ParametricJob class, a new
    column index is added which contains the indices of simulated models (#388).
    This is because when the same model runs with different weather files, the
    original case column cannot be used as an identifier.

Major changes

  • Now eplusr will always use the SQLite output for data extraction instead of
    using the CSV output. In EnergyPlus v9.3 and above, ReadVarsESO is deprecated
    and EnergyPlus itself will generate CSV directly. CSVs for variables and
    meters are always separated in this way. Together with the newly introduced
    Output:Control:Files which can be set to disable CSV output, it becomes
    very cumbersome to continuously support the CSV for data extraction (#307).

Minor changes

  • Now rgl and decido package has been moved from Imports to Suggests, since
    they are only used in the IdfViewer class for 3D visualization which is not
    the main focus of this package (368).
  • run_multi() now gets a new argument expand_obj to control whether
    ExpandObjects should be called before simulation or not. Because there is a
    known issue of ExpandObjects on Linux system
    (NREL/EnergyPlus#8376), here we want to avoid
    unnecessary calls of ExpandObjects as possible. Also, EplusJob$run() and
    EplusGroupJob$run() now will detect if there are any HVACTemplate:*
    objects and set the expand_obj flag properly (#377).

Bug fixes

  • When .empty is FALSE, Idf$set() and Idf$update() will keep fields if
    there are not the last fields (#310).
  • Year fields are correctly calculated for EnergyPlus v9.1 and above (#312).
  • Fix coordinate system alignment in IdfGeometry class (#314).
  • Fix time matching in EplusSql$report_data() (#315).
  • EPW COMMENT1 and COMMENT2 are now parsed as a single string (#318).
  • Preserve input year values in Epw$set() (#322).
  • Additional columns in Epw$set() and Epw$add() input are now removed
    (#320).
  • Now Epw$abnormal_data() can keep columns that contains abnormal data when
    keep_all is FALSE (#326).
  • Epw$save() now formats the header in the same way as Weather Converter
    (#328).
  • Epw$comment1() and Epw$comment2() now accepts NULL as input, which will
    remove the comments. And NULL is returned if no comments are found (#330).
  • Fix the error when the first field is not in the input in Idf$update() (#332).
  • Fix the error in EplusJob$report_data() caused by incomplete
    EnvironmentPeriods table in EnergyPlus SQL output (#336).
  • Make sure Day of Week for Start Day is reset to empty if UseWeatherFile
    was used in transition from v8.9 to v9.0 (#338).
  • Fix the error in EplusJob$report_data() when multiple reporting frequencies
    exist in the CSV output (#340).
  • Fix simulation error when FMU files are given in relative paths (#344). Now
    all objects that reference to external files can be correctly copied into
    output directory when copy_external is set to TRUE.
  • Fix the error when using an Idf as input in Idf$insert() (#348).
  • Sub-hourly EPW files are supported (#351).
  • Fix invalid references introduced by setting field values to empty (#355).
  • Fix the error message in EplusGroupJob when no CSV output was found (#357).
  • Fix false positive warnings when resolving IDF external file dependencies
    (#366).
  • Empty string input, e.g. " " in Idf$add() and Idf$set() are now
    correctly converted to NAs (#370).
  • Now empty comments are kept in IdfObject$comment() (#372).
  • Fix IdfGeometry$print() when no building object exists (#395).
  • Now IdfGeometry$round_digits() also applies to Zone class (#397).
  • read_epw() now accepts date rewind in TYPICAL/EXTREME PERIODS header
    (#401).
  • Fix c.EpwDate() error (#403).
  • Fix IdfScheduleCompact$set() evaluate issue when called in nested
    environment (#405).
  • Now IdfScheduleCompact$type_limits() works properly when setting new type
    limits (#407).