diff --git a/CHANGELOG.md b/CHANGELOG.md
index a7d083a..467ed64 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -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
diff --git a/Gemfile b/Gemfile
index 333f583..94e04e4 100644
--- a/Gemfile
+++ b/Gemfile
@@ -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
diff --git a/Jenkinsfile b/Jenkinsfile
index 007e87d..8a8cb14 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -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
diff --git a/README.md b/README.md
index 2f8e2e3..86f6527 100644
--- a/README.md
+++ b/README.md
@@ -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 |
diff --git a/lib/measures/nze_hvac/measure.rb b/lib/measures/nze_hvac/measure.rb
index a9adefb..bfce711 100644
--- a/lib/measures/nze_hvac/measure.rb
+++ b/lib/measures/nze_hvac/measure.rb
@@ -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
@@ -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
@@ -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
diff --git a/lib/measures/nze_hvac/measure.xml b/lib/measures/nze_hvac/measure.xml
index cd3017b..0df3500 100644
--- a/lib/measures/nze_hvac/measure.xml
+++ b/lib/measures/nze_hvac/measure.xml
@@ -3,8 +3,8 @@
3.1
nze_hvac
f060dff2-b28d-4194-a6af-e66d88ddb33c
- 30f88170-8790-4a5b-a7a2-75840782b1f7
- 2023-11-30T22:42:51Z
+ b44fd444-f022-4409-af31-2b29e9603e31
+ 2024-05-09T20:11:49Z
0E5E4776
NzeHvac
NZEHVAC
@@ -252,19 +252,19 @@
OpenStudio
- 2.9.0
- 3.3.0
+ 3.8.0
+ 3.8.0
measure.rb
rb
script
- 1711274D
+ 7EAD5ED0
NZEHVAC_Test.rb
rb
test
- B2D92497
+ 90B2A846
USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw
diff --git a/lib/measures/nze_hvac/tests/NZEHVAC_Test.rb b/lib/measures/nze_hvac/tests/NZEHVAC_Test.rb
index c67720f..3816dfa 100644
--- a/lib/measures/nze_hvac/tests/NZEHVAC_Test.rb
+++ b/lib/measures/nze_hvac/tests/NZEHVAC_Test.rb
@@ -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
@@ -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:"
diff --git a/lib/openstudio/ee_measures/version.rb b/lib/openstudio/ee_measures/version.rb
index bf6ef29..5b103d9 100644
--- a/lib/openstudio/ee_measures/version.rb
+++ b/lib/openstudio/ee_measures/version.rb
@@ -7,6 +7,6 @@
module OpenStudio
module EeMeasures
- VERSION = '0.9.0'
+ VERSION = '0.10.0'
end
end
diff --git a/openstudio-ee.gemspec b/openstudio-ee.gemspec
index 3121dd2..feef9e6 100644
--- a/openstudio-ee.gemspec
+++ b/openstudio-ee.gemspec
@@ -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