Skip to content

Commit

Permalink
Merge pull request #59 from NREL/develop
Browse files Browse the repository at this point in the history
Version 0.10.0
  • Loading branch information
kflemin authored Jul 12, 2024
2 parents 9a508b9 + b706ef8 commit 55f7e95
Show file tree
Hide file tree
Showing 9 changed files with 49 additions and 37 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# OpenStudio(R) EE Gem

## Version 0.10.0
* Support for OpenStudio 3.8 (upgrade to standards gem 0.6.0, extension gem 0.8.0)
* Support Ruby 3.2.2

## Version 0.9.0
* Support for OpenStudio 3.7 (upgrade to standards gem 0.5.0, extension gem 0.7.0)
* Fix fuel type for GLHEProExportLoadsforGroundHeatExchangerSizing
Expand Down
7 changes: 5 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@ gemspec
allow_local = ENV['FAVOR_LOCAL_GEMS']

# Delete when these branchesa are merged and released
#gem 'openstudio-extension', github: 'NREL/OpenStudio-extension-gem', branch: 'v0.6.0-rc1'
#gem 'openstudio-standards', '= 0.2.17.rc1', :github => 'NREL/openstudio-standards', :ref => '3.5.0_changes'
#gem 'openstudio-extension', github: 'NREL/OpenStudio-extension-gem', branch: 'wenyi-fix-build-temp', ref: "34a39a24aee2259de"
#gem 'openstudio-standards', github: 'NREL/openstudio-standards', tag: 'v0.6.0.rc2', ref: "1c42110"
#gem 'openstudio_measure_tester', :git => 'https://github.com/NREL/OpenStudio-measure-tester-gem.git', :branch => 'wenyi-dependencies-update'
#gem 'openstudio-workflow', :git => 'https://github.com/NREL/OpenStudio-workflow-gem.git', :branch => 'develop', ref: "32126e9b9f6"
#gem 'bcl', :git => 'https://github.com/wenyikuang/bcl-gem.git', :branch => 'develop'


# uncomment when you want CI to use develop branch of extension gem
Expand Down
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//Jenkins pipelines are stored in shared libraries. Please see: https://github.com/NREL/cbci_jenkins_libs

@Library('cbci_shared_libs') _
@Library('cbci_shared_libs@developExtension') _

// Build for PR to develop branch only.
if ((env.CHANGE_ID) && (env.CHANGE_TARGET) ) { // check if set
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Or install it yourself as:

|OpenStudio EE Gem|OpenStudio|Ruby|
|:--------------:|:----------:|:--------:|
| 0.10.0 | 3.8 | 3.2.2 |
| 0.9.0 | 3.7 | 2.7 |
| 0.8.0 | 3.6 | 2.7 |
| 0.7.0 | 3.5 | 2.7 |
Expand Down
10 changes: 5 additions & 5 deletions lib/measures/nze_hvac/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -345,8 +345,8 @@ def run(model, runner, user_arguments)
# exclude plenum zones, zones without thermostats, and zones with no floor area
conditioned_zones = []
model.getThermalZones.each do |zone|
next if std.thermal_zone_plenum?(zone)
next if !std.thermal_zone_heated?(zone) && !std.thermal_zone_cooled?(zone)
next if OpenstudioStandards::ThermalZone.thermal_zone_plenum?(zone)
next if !OpenstudioStandards::ThermalZone.thermal_zone_heated?(zone) && !OpenstudioStandards::ThermalZone.thermal_zone_cooled?(zone)
conditioned_zones << zone
end

Expand All @@ -356,7 +356,7 @@ def run(model, runner, user_arguments)
when 'Automatic Partition'
# group zones by occupancy type (residential/nonresidential)
# split non-dominant groups if their total area exceeds 20,000 ft2.
sys_groups = std.model_group_zones_by_type(model, OpenStudio.convert(20000, 'ft^2', 'm^2').get)
sys_groups = OpenstudioStandards::Geometry.model_group_thermal_zones_by_occupancy_type(model, min_area_m2: OpenStudio.convert(20000, 'ft^2', 'm^2').get)

# assume secondary system type is PSZ-AC for VAV Reheat otherwise assume same hvac system type
sec_sys_type = hvac_system_type # same as primary system type
Expand All @@ -381,13 +381,13 @@ def run(model, runner, user_arguments)
add_system_to_zones(model, runner, hvac_system_type, conditioned_zones, std, doas_dcv: doas_dcv)

when 'One System Per Building Story'
story_groups = std.model_group_zones_by_story(model, conditioned_zones)
story_groups = OpenstudioStandards::Geometry.model_group_thermal_zones_by_building_story(model, conditioned_zones)
story_groups.each do |story_zones|
add_system_to_zones(model, runner, hvac_system_type, story_zones, std, doas_dcv: doas_dcv)
end

when 'One System Per Building Type'
system_groups = std.model_group_zones_by_building_type(model, 0.0)
system_groups = OpenstudioStandards::Geometry.model_group_thermal_zones_by_building_type(model, min_area_m2: 0.0)
system_groups.each do |system_group|
add_system_to_zones(model, runner, hvac_system_type, system_group['zones'], std, doas_dcv: doas_dcv)
end
Expand Down
12 changes: 6 additions & 6 deletions lib/measures/nze_hvac/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>nze_hvac</name>
<uid>f060dff2-b28d-4194-a6af-e66d88ddb33c</uid>
<version_id>30f88170-8790-4a5b-a7a2-75840782b1f7</version_id>
<version_modified>2023-11-30T22:42:51Z</version_modified>
<version_id>b44fd444-f022-4409-af31-2b29e9603e31</version_id>
<version_modified>2024-05-09T20:11:49Z</version_modified>
<xml_checksum>0E5E4776</xml_checksum>
<class_name>NzeHvac</class_name>
<display_name>NZEHVAC</display_name>
Expand Down Expand Up @@ -252,19 +252,19 @@
<file>
<version>
<software_program>OpenStudio</software_program>
<identifier>2.9.0</identifier>
<min_compatible>3.3.0</min_compatible>
<identifier>3.8.0</identifier>
<min_compatible>3.8.0</min_compatible>
</version>
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>1711274D</checksum>
<checksum>7EAD5ED0</checksum>
</file>
<file>
<filename>NZEHVAC_Test.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>B2D92497</checksum>
<checksum>90B2A846</checksum>
</file>
<file>
<filename>USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw</filename>
Expand Down
32 changes: 16 additions & 16 deletions lib/measures/nze_hvac/tests/NZEHVAC_Test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,9 @@ def run_nze_hvac_measure_test(test_name, osm_path, epw_path,

# test for unmet hours
errs = []
unmet_heating_hrs = std.model_annual_occupied_unmet_heating_hours(model)
unmet_cooling_hrs = std.model_annual_occupied_unmet_cooling_hours(model)
unmet_hrs = std.model_annual_occupied_unmet_hours(model)
unmet_heating_hrs = OpenstudioStandards::SqlFile.model_get_annual_occupied_unmet_heating_hours(model)
unmet_cooling_hrs = OpenstudioStandards::SqlFile.model_get_annual_occupied_unmet_cooling_hours(model)
unmet_hrs = OpenstudioStandards::SqlFile.model_get_annual_occupied_unmet_hours(model)
if unmet_hrs
if unmet_hrs > max_unmet_hrs
errs << "For #{test_name} there were #{unmet_heating_hrs.round(1)} unmet occupied heating hours and #{unmet_cooling_hrs.round(1)} unmet occupied cooling hours (total: #{unmet_hrs.round(1)}), more than the limit of #{max_unmet_hrs}." if unmet_hrs > max_unmet_hrs
Expand All @@ -160,21 +160,21 @@ def run_nze_hvac_measure_test(test_name, osm_path, epw_path,
end

# calculate EUIs to determine if HVAC EUI is appropriate
annual_eui = std.model_annual_eui_kbtu_per_ft2(model)
int_lighting_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Interior Lighting').round(1)
ext_lighting_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Exterior Lighting').round(1)
int_equipment_elec_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Interior Equipment').round(1)
int_equipment_gas_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Natural Gas', 'Interior Equipment').round(1)
annual_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2(model)
int_lighting_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Interior Lighting').round(1)
ext_lighting_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Exterior Lighting').round(1)
int_equipment_elec_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Interior Equipment').round(1)
int_equipment_gas_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Natural Gas', 'Interior Equipment').round(1)
int_equipment_eui = (int_equipment_elec_eui + int_equipment_gas_eui).round(1)
refrigeration_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Refrigeration').round(1)
shw_elec_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Water Systems').round(1)
shw_gas_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Natural Gas', 'Water Systems').round(1)
refrigeration_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Refrigeration').round(1)
shw_elec_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Water Systems').round(1)
shw_gas_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Natural Gas', 'Water Systems').round(1)
shw_eui = (shw_elec_eui + shw_gas_eui).round(1)
fan_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Fans').round(1)
pump_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Pumps').round(1)
cooling_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Cooling').round(1)
heating_elec_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Heating').round(1)
heating_gas_eui = std.model_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Natural Gas', 'Heating').round(1)
fan_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Fans').round(1)
pump_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Pumps').round(1)
cooling_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Cooling').round(1)
heating_elec_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Electricity', 'Heating').round(1)
heating_gas_eui = OpenstudioStandards::SqlFile.model_get_annual_eui_kbtu_per_ft2_by_fuel_and_enduse(model, 'Natural Gas', 'Heating').round(1)
heating_eui = (heating_elec_eui + heating_gas_eui).round(1)
hvac_eui = (fan_eui + pump_eui + cooling_eui + heating_eui).round(1)
puts "Annual EUI (kBtu/ft^2): #{annual_eui.round(1)}, split:"
Expand Down
2 changes: 1 addition & 1 deletion lib/openstudio/ee_measures/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@

module OpenStudio
module EeMeasures
VERSION = '0.9.0'
VERSION = '0.10.0'
end
end
16 changes: 10 additions & 6 deletions openstudio-ee.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,20 @@ Gem::Specification.new do |spec|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
f.match(%r{^(test|lib.measures.*tests|spec|features)/})
end
spec.bindir = 'exe'
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.bindir = 'exe'
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ['lib']

spec.required_ruby_version = '~> 2.7.0'
spec.required_ruby_version = '~> 3.2.2'

spec.add_dependency 'bundler', '~> 2.1'
spec.add_dependency 'openstudio-extension', '~> 0.7.0'
spec.add_dependency 'openstudio-standards', '~> 0.5.0'
spec.add_dependency 'bundler', '~> 2.4.10'
spec.add_dependency 'openstudio-extension', '~> 0.8.0'
spec.add_dependency 'openstudio-standards', '0.6.1'
spec.add_dependency 'multipart-post', '2.4.0'
spec.add_dependency 'regexp_parser', '2.9.0'
spec.add_dependency 'addressable', '2.8.1'

spec.add_development_dependency 'rake', '~> 13.0'
spec.add_development_dependency 'rspec', '~> 3.9'
spec.add_development_dependency 'octokit', '4.18.0' # for change logs
end

0 comments on commit 55f7e95

Please sign in to comment.