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