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.
- 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: []
|