openstudio-ee 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/Rakefile +2 -0
- data/lib/measures/ImproveFanTotalEfficiencybyPercentage/measure.rb +333 -0
- data/lib/measures/ImproveFanTotalEfficiencybyPercentage/measure.xml +150 -0
- data/lib/measures/ReplaceFanTotalEfficiency/measure.rb +330 -0
- data/lib/measures/ReplaceFanTotalEfficiency/measure.xml +150 -0
- data/lib/measures/add_apszhp_to_each_zone/measure.rb +607 -0
- data/lib/measures/add_apszhp_to_each_zone/measure.xml +184 -0
- data/lib/measures/add_energy_recovery_ventilator/measure.rb +354 -0
- data/lib/measures/add_energy_recovery_ventilator/measure.xml +78 -0
- data/lib/measures/improve_simple_glazing_by_percentage/measure.rb +81 -0
- data/lib/measures/improve_simple_glazing_by_percentage/measure.xml +70 -0
- data/lib/measures/reduce_water_use_by_percentage/measure.rb +61 -0
- data/lib/measures/reduce_water_use_by_percentage/measure.xml +62 -0
- data/lib/measures/replace_hvac_with_gshp_and_doas/measure.rb +511 -0
- data/lib/measures/replace_hvac_with_gshp_and_doas/measure.xml +375 -0
- data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_AedgMeasures.rb +454 -0
- data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_Constructions.rb +221 -0
- data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_Geometry.rb +41 -0
- data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_HVAC.rb +1682 -0
- data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_HelperMethods.rb +114 -0
- data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_LightingAndEquipment.rb +99 -0
- data/lib/measures/replace_hvac_with_gshp_and_doas/resources/OsLib_Schedules.rb +142 -0
- data/lib/measures/replace_simple_glazing/measure.rb +86 -0
- data/lib/measures/replace_simple_glazing/measure.xml +78 -0
- data/lib/measures/set_boiler_thermal_efficiency/measure.rb +520 -0
- data/lib/measures/set_boiler_thermal_efficiency/measure.xml +78 -0
- data/lib/measures/set_water_heater_efficiency_heat_lossand_peak_water_flow_rate/measure.rb +207 -0
- data/lib/measures/set_water_heater_efficiency_heat_lossand_peak_water_flow_rate/measure.xml +78 -0
- data/lib/measures/tenant_star_internal_loads/measure.rb +134 -0
- data/lib/measures/tenant_star_internal_loads/measure.xml +67 -0
- data/lib/measures/tenant_star_internal_loads/resources/os_lib_helper_methods.rb +401 -0
- data/lib/measures/vr_fwith_doas/measure.rb +468 -0
- data/lib/measures/vr_fwith_doas/measure.xml +298 -0
- data/lib/measures/vr_fwith_doas/resources/OsLib_AedgMeasures.rb +454 -0
- data/lib/measures/vr_fwith_doas/resources/OsLib_Constructions.rb +221 -0
- data/lib/measures/vr_fwith_doas/resources/OsLib_Geometry.rb +41 -0
- data/lib/measures/vr_fwith_doas/resources/OsLib_HVAC.rb +1516 -0
- data/lib/measures/vr_fwith_doas/resources/OsLib_HelperMethods.rb +114 -0
- data/lib/measures/vr_fwith_doas/resources/OsLib_LightingAndEquipment.rb +99 -0
- data/lib/measures/vr_fwith_doas/resources/OsLib_Schedules.rb +142 -0
- data/lib/openstudio/ee_measures/version.rb +1 -1
- data/openstudio-ee.gemspec +7 -5
- 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
|
data/openstudio-ee.gemspec
CHANGED
@@ -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
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
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.
|
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.
|
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-
|
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.
|
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.
|
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.
|
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: []
|