openstudio-ee 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/Rakefile +2 -0
  4. data/lib/measures/ImproveFanTotalEfficiencybyPercentage/measure.rb +333 -0
  5. data/lib/measures/ImproveFanTotalEfficiencybyPercentage/measure.xml +150 -0
  6. data/lib/measures/ReplaceFanTotalEfficiency/measure.rb +330 -0
  7. data/lib/measures/ReplaceFanTotalEfficiency/measure.xml +150 -0
  8. data/lib/measures/add_apszhp_to_each_zone/measure.rb +607 -0
  9. data/lib/measures/add_apszhp_to_each_zone/measure.xml +184 -0
  10. data/lib/measures/add_energy_recovery_ventilator/measure.rb +354 -0
  11. data/lib/measures/add_energy_recovery_ventilator/measure.xml +78 -0
  12. data/lib/measures/improve_simple_glazing_by_percentage/measure.rb +81 -0
  13. data/lib/measures/improve_simple_glazing_by_percentage/measure.xml +70 -0
  14. data/lib/measures/reduce_water_use_by_percentage/measure.rb +61 -0
  15. data/lib/measures/reduce_water_use_by_percentage/measure.xml +62 -0
  16. data/lib/measures/replace_hvac_with_gshp_and_doas/measure.rb +511 -0
  17. data/lib/measures/replace_hvac_with_gshp_and_doas/measure.xml +375 -0
  18. data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_AedgMeasures.rb +454 -0
  19. data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_Constructions.rb +221 -0
  20. data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_Geometry.rb +41 -0
  21. data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_HVAC.rb +1682 -0
  22. data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_HelperMethods.rb +114 -0
  23. data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_LightingAndEquipment.rb +99 -0
  24. data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_Schedules.rb +142 -0
  25. data/lib/measures/replace_simple_glazing/measure.rb +86 -0
  26. data/lib/measures/replace_simple_glazing/measure.xml +78 -0
  27. data/lib/measures/set_boiler_thermal_efficiency/measure.rb +520 -0
  28. data/lib/measures/set_boiler_thermal_efficiency/measure.xml +78 -0
  29. data/lib/measures/set_water_heater_efficiency_heat_lossand_peak_water_flow_rate/measure.rb +207 -0
  30. data/lib/measures/set_water_heater_efficiency_heat_lossand_peak_water_flow_rate/measure.xml +78 -0
  31. data/lib/measures/tenant_star_internal_loads/measure.rb +134 -0
  32. data/lib/measures/tenant_star_internal_loads/measure.xml +67 -0
  33. data/lib/measures/tenant_star_internal_loads/resources/os_lib_helper_methods.rb +401 -0
  34. data/lib/measures/vr_fwith_doas/measure.rb +468 -0
  35. data/lib/measures/vr_fwith_doas/measure.xml +298 -0
  36. data/lib/measures/vr_fwith_doas/resources/OsLib_AedgMeasures.rb +454 -0
  37. data/lib/measures/vr_fwith_doas/resources/OsLib_Constructions.rb +221 -0
  38. data/lib/measures/vr_fwith_doas/resources/OsLib_Geometry.rb +41 -0
  39. data/lib/measures/vr_fwith_doas/resources/OsLib_HVAC.rb +1516 -0
  40. data/lib/measures/vr_fwith_doas/resources/OsLib_HelperMethods.rb +114 -0
  41. data/lib/measures/vr_fwith_doas/resources/OsLib_LightingAndEquipment.rb +99 -0
  42. data/lib/measures/vr_fwith_doas/resources/OsLib_Schedules.rb +142 -0
  43. data/lib/openstudio/ee_measures/version.rb +1 -1
  44. data/openstudio-ee.gemspec +7 -5
  45. metadata +48 -9
@@ -0,0 +1,114 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OsLib_HelperMethods
4
+ # populate choice argument from model objects
5
+ def self.populateChoiceArgFromModelObjects(model, modelObject_args_hash, includeBuilding = nil)
6
+ # populate choice argument for constructions that are applied to surfaces in the model
7
+ modelObject_handles = OpenStudio::StringVector.new
8
+ modelObject_display_names = OpenStudio::StringVector.new
9
+
10
+ # looping through sorted hash of constructions
11
+ modelObject_args_hash.sort.map do |key, value|
12
+ modelObject_handles << value.handle.to_s
13
+ modelObject_display_names << key
14
+ end
15
+
16
+ if !includeBuilding.nil?
17
+ # add building to string vector with space type
18
+ building = model.getBuilding
19
+ modelObject_handles << building.handle.to_s
20
+ modelObject_display_names << includeBuilding
21
+ end
22
+
23
+ result = { 'modelObject_handles' => modelObject_handles, 'modelObject_display_names' => modelObject_display_names }
24
+ return result
25
+ end # end of OsLib_HelperMethods.populateChoiceArgFromModelObjects
26
+
27
+ # check choice argument made from model objects
28
+ def self.checkChoiceArgFromModelObjects(object, variableName, to_ObjectType, runner, user_arguments)
29
+ apply_to_building = false
30
+ modelObject = nil
31
+ if object.empty?
32
+ handle = runner.getStringArgumentValue(variableName, user_arguments)
33
+ if handle.empty?
34
+ runner.registerError("No #{variableName} was chosen.") # this logic makes this not work on an optional model object argument
35
+ else
36
+ runner.registerError("The selected #{variableName} with handle '#{handle}' was not found in the model. It may have been removed by another measure.")
37
+ end
38
+ return false
39
+ else
40
+ if !eval("object.get.#{to_ObjectType}").empty?
41
+ modelObject = eval("object.get.#{to_ObjectType}").get
42
+ elsif !object.get.to_Building.empty?
43
+ apply_to_building = true
44
+ else
45
+ runner.registerError("Script Error - argument not showing up as #{variableName}.")
46
+ return false
47
+ end
48
+ end # end of if construction.empty?
49
+
50
+ result = { 'modelObject' => modelObject, 'apply_to_building' => apply_to_building }
51
+ end # end of OsLib_HelperMethods.checkChoiceArgFromModelObjects
52
+
53
+ # check choice argument made from model objects
54
+ def self.checkOptionalChoiceArgFromModelObjects(object, variableName, to_ObjectType, runner, user_arguments)
55
+ apply_to_building = false
56
+ modelObject = nil
57
+ if object.empty?
58
+ handle = runner.getOptionalStringArgumentValue(variableName, user_arguments)
59
+ if handle.empty?
60
+ # do nothing, this is a valid option
61
+ modelObject = nil
62
+ apply_to_building = false
63
+ else
64
+ runner.registerError("The selected #{variableName} with handle '#{handle}' was not found in the model. It may have been removed by another measure.")
65
+ return false
66
+ end
67
+ else
68
+ if !eval("object.get.#{to_ObjectType}").empty?
69
+ modelObject = eval("object.get.#{to_ObjectType}").get
70
+ elsif !object.get.to_Building.empty?
71
+ apply_to_building = true
72
+ else
73
+ runner.registerError("Script Error - argument not showing up as #{variableName}.")
74
+ return false
75
+ end
76
+ end # end of if construction.empty?
77
+
78
+ result = { 'modelObject' => modelObject, 'apply_to_building' => apply_to_building }
79
+ end # end of OsLib_HelperMethods.checkChoiceArgFromModelObjects
80
+
81
+ # check value of double arguments
82
+ def self.checkDoubleArguments(runner, min, max, argumentHash)
83
+ # error flag
84
+ error = false
85
+
86
+ argumentHash.each do |display, argument|
87
+ if !min.nil?
88
+ if argument < min
89
+ runner.registerError("Please enter value between #{min} and #{max} for #{display}.") # add in argument display name
90
+ error = true
91
+ end
92
+ end
93
+ if !max.nil?
94
+ if argument > max
95
+ runner.registerError("Please enter value between #{min} and #{max} for #{display}.") # add in argument display name
96
+ error = true
97
+ end
98
+ end
99
+ end # end of argumentArray.each do
100
+
101
+ # check for any errors
102
+ if error
103
+ return false
104
+ else
105
+ return true
106
+ end
107
+ end # end of OsLib_HelperMethods.checkDoubleArguments
108
+
109
+ # OpenStudio has built in toNeatString method
110
+ # OpenStudio::toNeatString(double,2,true)# double,decimals, show commas
111
+
112
+ # OpenStudio has built in helper for unit conversion. That can be done using OpenStudio::convert() as shown below.
113
+ # OpenStudio::convert(double,"from unit string","to unit string").get
114
+ end
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "#{File.dirname(__FILE__)}/OsLib_Schedules"
4
+
5
+ # load OpenStudio measure libraries
6
+ module OsLib_LightingAndEquipment
7
+ include OsLib_Schedules
8
+
9
+ # return min ans max from array
10
+ def self.getExteriorLightsValue(model)
11
+ facility = model.getFacility
12
+ starting_exterior_lights_power = 0
13
+ starting_exterior_lights = facility.exteriorLights
14
+ starting_exterior_lights.each do |starting_exterior_light|
15
+ starting_exterior_light_multiplier = starting_exterior_light.multiplier
16
+ starting_exterior_light_def = starting_exterior_light.exteriorLightsDefinition
17
+ starting_exterior_light_base_power = starting_exterior_light_def.designLevel
18
+ starting_exterior_lights_power += starting_exterior_light_base_power * starting_exterior_light_multiplier
19
+ end
20
+
21
+ result = { 'exteriorLightingPower' => starting_exterior_lights_power, 'exteriorLights' => starting_exterior_lights }
22
+ return result
23
+ end # end of OsLib_LightingAndEquipment.getExteriorLightsValue
24
+
25
+ # return min ans max from array
26
+ def self.removeAllExteriorLights(model, runner)
27
+ facility = model.getFacility
28
+ lightsRemoved = false
29
+ starting_exterior_lights = facility.exteriorLights
30
+ starting_exterior_lights.each do |starting_exterior_light|
31
+ runner.registerInfo("Removed exterior light named #{starting_exterior_light.name}.")
32
+ starting_exterior_light.remove
33
+ lightsRemoved = true
34
+ end
35
+
36
+ result = lightsRemoved
37
+ return result
38
+ end # end of OsLib_LightingAndEquipment.removeAllExteriorLights
39
+
40
+ # return min ans max from array
41
+ def self.addExteriorLights(model, runner, options = {})
42
+ # set defaults to use if user inputs not passed in
43
+ defaults = {
44
+ 'name' => 'Exterior Light',
45
+ 'power' => 0,
46
+ 'subCategory' => 'Exterior Lighting',
47
+ 'controlOption' => 'AstronomicalClock',
48
+ 'setbackStartTime' => 0,
49
+ 'setbackEndTime' => 0,
50
+ 'setbackFraction' => 0.25
51
+ }
52
+
53
+ # merge user inputs with defaults
54
+ options = defaults.merge(options)
55
+
56
+ ext_lights_def = OpenStudio::Model::ExteriorLightsDefinition.new(model)
57
+ ext_lights_def.setName("#{options['name']} Definition")
58
+ runner.registerInfo("Setting #{ext_lights_def.name} to a design power of #{options['power']} Watts")
59
+ ext_lights_def.setDesignLevel(options['power'])
60
+
61
+ # creating schedule type limits for the exterior lights schedule
62
+ ext_lights_sch_type_limits = OpenStudio::Model::ScheduleTypeLimits.new(model)
63
+ ext_lights_sch_type_limits.setName("#{options['name']} Fractional")
64
+ ext_lights_sch_type_limits.setLowerLimitValue(0)
65
+ ext_lights_sch_type_limits.setUpperLimitValue(1)
66
+ ext_lights_sch_type_limits.setNumericType('Continuous')
67
+
68
+ # prepare values for profile
69
+ if options['setbackStartTime'] == 24
70
+ profile = { options['setbackEndTime'] => options['setbackFraction'], 24.0 => 1.0 }
71
+ elsif options['setbackStartTime'] == 0
72
+ profile = { options['setbackEndTime'] => options['setbackFraction'], 24.0 => 1.0 }
73
+ elsif options['setbackStartTime'] > options['setbackEndTime']
74
+ profile = { options['setbackEndTime'] => options['setbackFraction'], options['setbackStartTime'] => 1.0, 24.0 => options['setbackFraction'] }
75
+ else
76
+ profile = { options['setbackStartTime'] => 1.0, options['setbackEndTime'] => options['setbackFraction'] }
77
+ end
78
+
79
+ # inputs
80
+ createSimpleSchedule_inputs = {
81
+ 'name' => options['name'],
82
+ 'winterTimeValuePairs' => profile,
83
+ 'summerTimeValuePairs' => profile,
84
+ 'defaultTimeValuePairs' => profile
85
+ }
86
+
87
+ # create a ruleset schedule with a basic profile
88
+ ext_lights_sch = OsLib_Schedules.createSimpleSchedule(model, createSimpleSchedule_inputs)
89
+
90
+ # creating exterior lights object
91
+ ext_lights = OpenStudio::Model::ExteriorLights.new(ext_lights_def, ext_lights_sch)
92
+ ext_lights.setName("#{options['power']} w Exterior Light")
93
+ ext_lights.setControlOption(options['controlOption'])
94
+ ext_lights.setEndUseSubcategory(options['subCategory'])
95
+
96
+ result = ext_lights
97
+ return result
98
+ end # end of OsLib_LightingAndEquipment.addExteriorLights
99
+ end
@@ -0,0 +1,142 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OsLib_Schedules
4
+ # create a ruleset schedule with a basic profile
5
+ def self.createSimpleSchedule(model, options = {})
6
+ defaults = {
7
+ 'name' => nil,
8
+ 'winterTimeValuePairs' => { 24.0 => 0.0 },
9
+ 'summerTimeValuePairs' => { 24.0 => 1.0 },
10
+ 'defaultTimeValuePairs' => { 24.0 => 1.0 }
11
+ }
12
+
13
+ # merge user inputs with defaults
14
+ options = defaults.merge(options)
15
+
16
+ # ScheduleRuleset
17
+ sch_ruleset = OpenStudio::Model::ScheduleRuleset.new(model)
18
+ if name
19
+ sch_ruleset.setName(options['name'])
20
+ end
21
+
22
+ # Winter Design Day
23
+ winter_dsn_day = OpenStudio::Model::ScheduleDay.new(model)
24
+ sch_ruleset.setWinterDesignDaySchedule(winter_dsn_day)
25
+ winter_dsn_day = sch_ruleset.winterDesignDaySchedule
26
+ winter_dsn_day.setName("#{sch_ruleset.name} Winter Design Day")
27
+ options['winterTimeValuePairs'].each do |k, v|
28
+ hour = k.truncate
29
+ min = ((k - hour) * 60).to_i
30
+ winter_dsn_day.addValue(OpenStudio::Time.new(0, hour, min, 0), v)
31
+ end
32
+
33
+ # Summer Design Day
34
+ summer_dsn_day = OpenStudio::Model::ScheduleDay.new(model)
35
+ sch_ruleset.setSummerDesignDaySchedule(summer_dsn_day)
36
+ summer_dsn_day = sch_ruleset.summerDesignDaySchedule
37
+ summer_dsn_day.setName("#{sch_ruleset.name} Summer Design Day")
38
+ options['summerTimeValuePairs'].each do |k, v|
39
+ hour = k.truncate
40
+ min = ((k - hour) * 60).to_i
41
+ summer_dsn_day.addValue(OpenStudio::Time.new(0, hour, min, 0), v)
42
+ end
43
+
44
+ # All Days
45
+ week_day = sch_ruleset.defaultDaySchedule
46
+ week_day.setName("#{sch_ruleset.name} Schedule Week Day")
47
+ options['defaultTimeValuePairs'].each do |k, v|
48
+ hour = k.truncate
49
+ min = ((k - hour) * 60).to_i
50
+ week_day.addValue(OpenStudio::Time.new(0, hour, min, 0), v)
51
+ end
52
+
53
+ result = sch_ruleset
54
+ return result
55
+ end # end of OsLib_Schedules.createSimpleSchedule
56
+
57
+ # create a complex ruleset schedule
58
+ def self.createComplexSchedule(model, options = {})
59
+ defaults = {
60
+ 'name' => nil,
61
+ 'default_day' => ['always_on', [24.0, 1.0]]
62
+ }
63
+
64
+ # merge user inputs with defaults
65
+ options = defaults.merge(options)
66
+
67
+ # ScheduleRuleset
68
+ sch_ruleset = OpenStudio::Model::ScheduleRuleset.new(model)
69
+ if name
70
+ sch_ruleset.setName(options['name'])
71
+ end
72
+
73
+ # Winter Design Day
74
+ unless options['winter_design_day'].nil?
75
+ winter_dsn_day = OpenStudio::Model::ScheduleDay.new(model)
76
+ sch_ruleset.setWinterDesignDaySchedule(winter_dsn_day)
77
+ winter_dsn_day = sch_ruleset.winterDesignDaySchedule
78
+ winter_dsn_day.setName("#{sch_ruleset.name} Winter Design Day")
79
+ options['winter_design_day'].each do |data_pair|
80
+ hour = data_pair[0].truncate
81
+ min = ((data_pair[0] - hour) * 60).to_i
82
+ winter_dsn_day.addValue(OpenStudio::Time.new(0, hour, min, 0), data_pair[1])
83
+ end
84
+ end
85
+
86
+ # Summer Design Day
87
+ unless options['summer_design_day'].nil?
88
+ summer_dsn_day = OpenStudio::Model::ScheduleDay.new(model)
89
+ sch_ruleset.setSummerDesignDaySchedule(summer_dsn_day)
90
+ summer_dsn_day = sch_ruleset.summerDesignDaySchedule
91
+ summer_dsn_day.setName("#{sch_ruleset.name} Summer Design Day")
92
+ options['summer_design_day'].each do |data_pair|
93
+ hour = data_pair[0].truncate
94
+ min = ((data_pair[0] - hour) * 60).to_i
95
+ summer_dsn_day.addValue(OpenStudio::Time.new(0, hour, min, 0), data_pair[1])
96
+ end
97
+ end
98
+
99
+ # Default Day
100
+ default_day = sch_ruleset.defaultDaySchedule
101
+ default_day.setName("#{sch_ruleset.name} #{options['default_day'][0]}")
102
+ default_data_array = options['default_day']
103
+ default_data_array.delete_at(0)
104
+ default_data_array.each do |data_pair|
105
+ hour = data_pair[0].truncate
106
+ min = ((data_pair[0] - hour) * 60).to_i
107
+ default_day.addValue(OpenStudio::Time.new(0, hour, min, 0), data_pair[1])
108
+ end
109
+
110
+ # Rules
111
+ options['rules']&.each do |data_array|
112
+ rule = OpenStudio::Model::ScheduleRule.new(sch_ruleset)
113
+ rule.setName("#{sch_ruleset.name} #{data_array[0]} Rule")
114
+ date_range = data_array[1].split('-')
115
+ start_date = date_range[0].split('/')
116
+ end_date = date_range[1].split('/')
117
+ rule.setStartDate(model.getYearDescription.makeDate(start_date[0].to_i, start_date[1].to_i))
118
+ rule.setEndDate(model.getYearDescription.makeDate(end_date[0].to_i, end_date[1].to_i))
119
+ days = data_array[2].split('/')
120
+ rule.setApplySunday(true) if days.include? 'Sun'
121
+ rule.setApplyMonday(true) if days.include? 'Mon'
122
+ rule.setApplyTuesday(true) if days.include? 'Tue'
123
+ rule.setApplyWednesday(true) if days.include? 'Wed'
124
+ rule.setApplyThursday(true) if days.include? 'Thu'
125
+ rule.setApplyFriday(true) if days.include? 'Fri'
126
+ rule.setApplySaturday(true) if days.include? 'Sat'
127
+ day_schedule = rule.daySchedule
128
+ day_schedule.setName("#{sch_ruleset.name} #{data_array[0]}")
129
+ data_array.delete_at(0)
130
+ data_array.delete_at(0)
131
+ data_array.delete_at(0)
132
+ data_array.each do |data_pair|
133
+ hour = data_pair[0].truncate
134
+ min = ((data_pair[0] - hour) * 60).to_i
135
+ day_schedule.addValue(OpenStudio::Time.new(0, hour, min, 0), data_pair[1])
136
+ end
137
+ end
138
+
139
+ result = sch_ruleset
140
+ return result
141
+ end # end of OsLib_Schedules.createComplexSchedule
142
+ end
@@ -37,6 +37,6 @@
37
37
 
38
38
  module OpenStudio
39
39
  module EeMeasures
40
- VERSION = '0.2.0'.freeze
40
+ VERSION = '0.2.1'
41
41
  end
42
42
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require 'openstudio/ee_measures/version'
@@ -12,10 +14,10 @@ Gem::Specification.new do |spec|
12
14
  spec.summary = 'Library and measures for OpenStudio for energy efficiency use cases'
13
15
  spec.description = 'Library and measures for OpenStudio for energy efficiency use cases'
14
16
  spec.metadata = {
15
- 'bug_tracker_uri' => 'https://github.com/NREL/openstudio-ee-gem/issues',
16
- 'changelog_uri' => 'https://github.com/NREL/openstudio-ee-gem/blob/develop/CHANGELOG.md',
17
- # 'documentation_uri' => 'https://www.rubydoc.info/gems/openstudio-ee-gem/#{gem.version}',
18
- 'source_code_uri' => "https://github.com/NREL/openstudio-ee-gem/tree/v#{spec.version}"
17
+ 'bug_tracker_uri' => 'https://github.com/NREL/openstudio-ee-gem/issues',
18
+ 'changelog_uri' => 'https://github.com/NREL/openstudio-ee-gem/blob/develop/CHANGELOG.md',
19
+ # 'documentation_uri' => 'https://www.rubydoc.info/gems/openstudio-ee-gem/#{gem.version}',
20
+ 'source_code_uri' => "https://github.com/NREL/openstudio-ee-gem/tree/v#{spec.version}"
19
21
  }
20
22
 
21
23
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -28,7 +30,7 @@ Gem::Specification.new do |spec|
28
30
  spec.required_ruby_version = '~> 2.5.0'
29
31
 
30
32
  spec.add_dependency 'bundler', '~> 2.1'
31
- spec.add_dependency 'openstudio-extension', '~> 0.2.3'
33
+ spec.add_dependency 'openstudio-extension', '~> 0.2.5'
32
34
  spec.add_dependency 'openstudio-standards', '~> 0.2.11'
33
35
 
34
36
  spec.add_development_dependency 'rake', '~> 13.0'
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstudio-ee
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Goldwasser
8
8
  - Nicholas Long
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-05-12 00:00:00.000000000 Z
12
+ date: 2020-10-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -31,14 +31,14 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 0.2.3
34
+ version: 0.2.5
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 0.2.3
41
+ version: 0.2.5
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: openstudio-standards
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -158,6 +158,8 @@ files:
158
158
  - lib/measures/ImproveFanBeltEfficiency/README.md.erb
159
159
  - lib/measures/ImproveFanBeltEfficiency/measure.rb
160
160
  - lib/measures/ImproveFanBeltEfficiency/measure.xml
161
+ - lib/measures/ImproveFanTotalEfficiencybyPercentage/measure.rb
162
+ - lib/measures/ImproveFanTotalEfficiencybyPercentage/measure.xml
161
163
  - lib/measures/ImproveMotorEfficiency/LICENSE.md
162
164
  - lib/measures/ImproveMotorEfficiency/README.md
163
165
  - lib/measures/ImproveMotorEfficiency/README.md.erb
@@ -203,6 +205,12 @@ files:
203
205
  - lib/measures/ReduceVentilationByPercentage/README.md.erb
204
206
  - lib/measures/ReduceVentilationByPercentage/measure.rb
205
207
  - lib/measures/ReduceVentilationByPercentage/measure.xml
208
+ - lib/measures/ReplaceFanTotalEfficiency/measure.rb
209
+ - lib/measures/ReplaceFanTotalEfficiency/measure.xml
210
+ - lib/measures/add_apszhp_to_each_zone/measure.rb
211
+ - lib/measures/add_apszhp_to_each_zone/measure.xml
212
+ - lib/measures/add_energy_recovery_ventilator/measure.rb
213
+ - lib/measures/add_energy_recovery_ventilator/measure.xml
206
214
  - lib/measures/add_variable_speed_rtu_control_logic/LICENSE.md
207
215
  - lib/measures/add_variable_speed_rtu_control_logic/README.md
208
216
  - lib/measures/add_variable_speed_rtu_control_logic/README.md.erb
@@ -219,16 +227,47 @@ files:
219
227
  - lib/measures/fan_assist_night_ventilation/measure.rb
220
228
  - lib/measures/fan_assist_night_ventilation/measure.xml
221
229
  - lib/measures/fan_assist_night_ventilation/resources/FanAssistNightVentilationMeasureGuide.pdf
230
+ - lib/measures/improve_simple_glazing_by_percentage/measure.rb
231
+ - lib/measures/improve_simple_glazing_by_percentage/measure.xml
222
232
  - lib/measures/nze_hvac/LICENSE.md
223
233
  - lib/measures/nze_hvac/README.md
224
234
  - lib/measures/nze_hvac/README.md.erb
225
235
  - lib/measures/nze_hvac/measure.rb
226
236
  - lib/measures/nze_hvac/measure.xml
237
+ - lib/measures/reduce_water_use_by_percentage/measure.rb
238
+ - lib/measures/reduce_water_use_by_percentage/measure.xml
239
+ - lib/measures/replace_hvac_with_gshp_and_doas/measure.rb
240
+ - lib/measures/replace_hvac_with_gshp_and_doas/measure.xml
241
+ - lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_AedgMeasures.rb
242
+ - lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_Constructions.rb
243
+ - lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_Geometry.rb
244
+ - lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_HVAC.rb
245
+ - lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_HelperMethods.rb
246
+ - lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_LightingAndEquipment.rb
247
+ - lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_Schedules.rb
248
+ - lib/measures/replace_simple_glazing/measure.rb
249
+ - lib/measures/replace_simple_glazing/measure.xml
227
250
  - lib/measures/replace_water_heater_mixed_with_thermal_storage_chilled_water/LICENSE.md
228
251
  - lib/measures/replace_water_heater_mixed_with_thermal_storage_chilled_water/README.md
229
252
  - lib/measures/replace_water_heater_mixed_with_thermal_storage_chilled_water/README.md.erb
230
253
  - lib/measures/replace_water_heater_mixed_with_thermal_storage_chilled_water/measure.rb
231
254
  - lib/measures/replace_water_heater_mixed_with_thermal_storage_chilled_water/measure.xml
255
+ - lib/measures/set_boiler_thermal_efficiency/measure.rb
256
+ - lib/measures/set_boiler_thermal_efficiency/measure.xml
257
+ - lib/measures/set_water_heater_efficiency_heat_lossand_peak_water_flow_rate/measure.rb
258
+ - lib/measures/set_water_heater_efficiency_heat_lossand_peak_water_flow_rate/measure.xml
259
+ - lib/measures/tenant_star_internal_loads/measure.rb
260
+ - lib/measures/tenant_star_internal_loads/measure.xml
261
+ - lib/measures/tenant_star_internal_loads/resources/os_lib_helper_methods.rb
262
+ - lib/measures/vr_fwith_doas/measure.rb
263
+ - lib/measures/vr_fwith_doas/measure.xml
264
+ - lib/measures/vr_fwith_doas/resources/OsLib_AedgMeasures.rb
265
+ - lib/measures/vr_fwith_doas/resources/OsLib_Constructions.rb
266
+ - lib/measures/vr_fwith_doas/resources/OsLib_Geometry.rb
267
+ - lib/measures/vr_fwith_doas/resources/OsLib_HVAC.rb
268
+ - lib/measures/vr_fwith_doas/resources/OsLib_HelperMethods.rb
269
+ - lib/measures/vr_fwith_doas/resources/OsLib_LightingAndEquipment.rb
270
+ - lib/measures/vr_fwith_doas/resources/OsLib_Schedules.rb
232
271
  - lib/openstudio-ee-measures.rb
233
272
  - lib/openstudio/ee_measures.rb
234
273
  - lib/openstudio/ee_measures/extension.rb
@@ -239,8 +278,8 @@ licenses: []
239
278
  metadata:
240
279
  bug_tracker_uri: https://github.com/NREL/openstudio-ee-gem/issues
241
280
  changelog_uri: https://github.com/NREL/openstudio-ee-gem/blob/develop/CHANGELOG.md
242
- source_code_uri: https://github.com/NREL/openstudio-ee-gem/tree/v0.2.0
243
- post_install_message:
281
+ source_code_uri: https://github.com/NREL/openstudio-ee-gem/tree/v0.2.1
282
+ post_install_message:
244
283
  rdoc_options: []
245
284
  require_paths:
246
285
  - lib
@@ -255,9 +294,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
255
294
  - !ruby/object:Gem::Version
256
295
  version: '0'
257
296
  requirements: []
258
- rubyforge_project:
297
+ rubyforge_project:
259
298
  rubygems_version: 2.7.6.2
260
- signing_key:
299
+ signing_key:
261
300
  specification_version: 4
262
301
  summary: Library and measures for OpenStudio for energy efficiency use cases
263
302
  test_files: []