openstudio-load-flexibility-measures 0.10.1 → 0.11.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/.github/workflows/test-measures.yml +107 -0
- data/.gitignore +5 -0
- data/.secrets.example +27 -0
- data/CHANGELOG.md +13 -0
- data/Jenkinsfile +1 -1
- data/LICENSE.md +1 -1
- data/README.md +8 -1
- data/docs/LOCAL_TESTING.md +119 -0
- data/lib/measures/PeakPeriodSchedulesShift/LICENSE.md +1 -1
- data/lib/measures/PeakPeriodSchedulesShift/measure.rb +16 -16
- data/lib/measures/PeakPeriodSchedulesShift/measure.xml +5 -5
- data/lib/measures/PeakPeriodSchedulesShift/tests/PeakPeriodSchedulesShift_Test.rb +10 -10
- data/lib/measures/ShiftScheduleByType/LICENSE.md +1 -1
- data/lib/measures/ShiftScheduleByType/measure.rb +30 -29
- data/lib/measures/ShiftScheduleByType/measure.xml +5 -5
- data/lib/measures/ShiftScheduleByType/tests/ShiftScheduleByType_Test.rb +5 -5
- data/lib/measures/add_central_ice_storage/LICENSE.md +1 -1
- data/lib/measures/add_central_ice_storage/measure.xml +3 -3
- data/lib/measures/add_hpwh/LICENSE.md +1 -1
- data/lib/measures/add_hpwh/measure.rb +25 -25
- data/lib/measures/add_hpwh/measure.xml +4 -4
- data/lib/measures/add_packaged_ice_storage/LICENSE.md +1 -1
- data/lib/measures/add_packaged_ice_storage/measure.xml +4 -4
- data/lib/measures/add_packaged_ice_storage/tests/add_packaged_ice_storage_test.rb +9 -9
- data/lib/openstudio/load_flexibility_measures/version.rb +1 -1
- data/openstudio-load-flexibility-measures.gemspec +9 -7
- metadata +39 -50
@@ -10,7 +10,7 @@
|
|
10
10
|
# http://openstudio.nrel.gov/sites/openstudio.nrel.gov/files/nv_data/cpp_documentation_it/model/html/namespaces.html
|
11
11
|
|
12
12
|
# This measure was created as an adaptation of the "ShiftScheduleProfileTime" common
|
13
|
-
# measure. This measure adds the ability to choose types (Cooling/Heating) of
|
13
|
+
# measure. This measure adds the ability to choose types (Cooling/Heating) of
|
14
14
|
# schedules to shift instead of choosing all schedules or one schedule.
|
15
15
|
|
16
16
|
# Start the measure
|
@@ -43,7 +43,7 @@ class ShiftScheduleByType < OpenStudio::Measure::ModelMeasure
|
|
43
43
|
|
44
44
|
# Argument to choose which schedules will be shifted
|
45
45
|
choices = OpenStudio::StringVector.new
|
46
|
-
choices << 'Cooling'
|
46
|
+
choices << 'Cooling'
|
47
47
|
choices << 'Heating'
|
48
48
|
choices << 'CoolHeat'
|
49
49
|
schedchoice = OpenStudio::Measure::OSArgument.makeChoiceArgument('schedchoice', choices)
|
@@ -62,10 +62,10 @@ class ShiftScheduleByType < OpenStudio::Measure::ModelMeasure
|
|
62
62
|
if !runner.validateUserArguments(arguments(model), user_arguments)
|
63
63
|
return false
|
64
64
|
end
|
65
|
-
|
65
|
+
|
66
66
|
# Export CSV file with Schedule setpoints before schedule shifts
|
67
|
-
#model1 = runner.lastOpenStudioModel
|
68
|
-
#model = model1.get
|
67
|
+
# model1 = runner.lastOpenStudioModel
|
68
|
+
# model = model1.get
|
69
69
|
interval = 60
|
70
70
|
header = []
|
71
71
|
header << 'Time'
|
@@ -89,7 +89,7 @@ class ShiftScheduleByType < OpenStudio::Measure::ModelMeasure
|
|
89
89
|
|
90
90
|
time += dt
|
91
91
|
end
|
92
|
-
|
92
|
+
|
93
93
|
runner.registerInfo("Writing CSV report 'schedulereportbefore.csv'")
|
94
94
|
File.open('schedulereportbefore.csv', 'w') do |file|
|
95
95
|
file.puts header.join(',')
|
@@ -97,7 +97,7 @@ class ShiftScheduleByType < OpenStudio::Measure::ModelMeasure
|
|
97
97
|
file.puts row.join(',')
|
98
98
|
end
|
99
99
|
end
|
100
|
-
|
100
|
+
|
101
101
|
# populate choice argument for schedules that are applied to surfaces in the model
|
102
102
|
schedule_handles = OpenStudio::StringVector.new
|
103
103
|
schedule_display_names = OpenStudio::StringVector.new
|
@@ -137,7 +137,7 @@ class ShiftScheduleByType < OpenStudio::Measure::ModelMeasure
|
|
137
137
|
raw_schedules.each do |raw_schedule|
|
138
138
|
raw_schedules_hash[raw_schedule.name.to_s] = raw_schedule
|
139
139
|
end
|
140
|
-
|
140
|
+
|
141
141
|
# Looping through sorted hash of schedules
|
142
142
|
raw_schedules_hash.sort.map do |name, value|
|
143
143
|
# Only include if the schedule is used in the model
|
@@ -145,25 +145,26 @@ class ShiftScheduleByType < OpenStudio::Measure::ModelMeasure
|
|
145
145
|
schedule_handles << value.handle.to_s
|
146
146
|
schedule_display_names << name
|
147
147
|
runner.registerInfo("Searching Schedule: #{name}")
|
148
|
-
if !name.downcase.include?(
|
149
|
-
|
150
|
-
|
148
|
+
if !name.downcase.include?('setback')
|
149
|
+
case schedchoice
|
150
|
+
when 'Cool' # Cooling and Air Only
|
151
|
+
if name.to_s.include?('CLG') || name.to_s.include?('Air')
|
151
152
|
# ADD v to Cooling list
|
152
153
|
schedules << value
|
153
154
|
runner.registerInfo("Schedule #{name} does contain 'CLG' or 'Air'")
|
154
155
|
else
|
155
156
|
runner.registerInfo("Schedule #{name} does not contain 'CLG' or 'Air'")
|
156
157
|
end
|
157
|
-
|
158
|
-
if
|
158
|
+
when 'Heat' # Heating and Air Only
|
159
|
+
if name.to_s.include?('HTG') || name.to_s.include?('Air')
|
159
160
|
# ADD v to Heating list
|
160
161
|
schedules << value
|
161
162
|
runner.registerInfo("Schedule #{name} does contain 'HTG' or 'Air'")
|
162
163
|
else
|
163
164
|
runner.registerInfo("Schedule #{name} does not contain 'HTG' or 'Air'")
|
164
165
|
end
|
165
|
-
|
166
|
-
if
|
166
|
+
when 'CoolHeat' # Cooling, Heating, and Air
|
167
|
+
if name.to_s.include?('CLG') || name.to_s.include?('HTG') || name.to_s.include?('Air')
|
167
168
|
# ADD v to Cooling/Heating list
|
168
169
|
schedules << value
|
169
170
|
runner.registerInfo("Schedule #{name} does contain 'CLG' or 'HTG' or 'Air'")
|
@@ -171,7 +172,7 @@ class ShiftScheduleByType < OpenStudio::Measure::ModelMeasure
|
|
171
172
|
runner.registerInfo("Schedule #{name} does not contain 'CLG' or 'HTG' or 'Air'")
|
172
173
|
end
|
173
174
|
else
|
174
|
-
runner.registerError(
|
175
|
+
runner.registerError("Unexpected value of schedchoice: #{schedchoice}.")
|
175
176
|
return false
|
176
177
|
end
|
177
178
|
end
|
@@ -259,28 +260,28 @@ class ShiftScheduleByType < OpenStudio::Measure::ModelMeasure
|
|
259
260
|
|
260
261
|
if values.length == 2
|
261
262
|
timeschg = values.length - 2
|
262
|
-
else
|
263
|
+
else
|
263
264
|
timeschg = values.length - 3
|
264
265
|
end
|
265
266
|
|
266
267
|
# Count number of arrays
|
267
|
-
for i in 0..timeschg
|
268
|
+
for i in 0..timeschg
|
268
269
|
new_time = times[i] + shift_time
|
269
270
|
# Adjust wrap around times for times that are t > 24 or t < 0
|
270
271
|
if new_time < time_0
|
271
|
-
new_time
|
272
|
+
new_time += time_24
|
272
273
|
values.rotate(1) # Move first value to last value in array
|
273
|
-
runner.registerWarning(
|
274
|
+
runner.registerWarning('Times adjusted for wrap around due to new time < 0.')
|
274
275
|
elsif new_time > time_24
|
275
|
-
new_time
|
276
|
+
new_time -= time_24
|
276
277
|
values.rotate(-1) # Move last value to first value in array
|
277
|
-
runner.registerWarning(
|
278
|
+
runner.registerWarning('Times adjusted for wrap around due to new time > 24.')
|
278
279
|
else # If 0 < new_time < 24
|
279
280
|
new_time = new_time
|
280
281
|
end
|
281
282
|
# Make new values
|
282
283
|
new_times = times.insert(i, new_time)
|
283
|
-
new_times.delete_at(i+1)
|
284
|
+
new_times.delete_at(i + 1)
|
284
285
|
end
|
285
286
|
|
286
287
|
new_values = values # Set new values equal to original schedule values
|
@@ -294,7 +295,7 @@ class ShiftScheduleByType < OpenStudio::Measure::ModelMeasure
|
|
294
295
|
timeschg = values.length - 2
|
295
296
|
end
|
296
297
|
|
297
|
-
for i in 0..
|
298
|
+
for i in 0..timeschg
|
298
299
|
day_sch.addValue(new_times[i], new_values[i])
|
299
300
|
end
|
300
301
|
runner.registerInfo("New day_sch: #{day_sch}")
|
@@ -307,12 +308,12 @@ class ShiftScheduleByType < OpenStudio::Measure::ModelMeasure
|
|
307
308
|
if apply_to_all_schedules
|
308
309
|
runner.registerFinalCondition('Shifted time for all profiles for all schedules.')
|
309
310
|
else
|
310
|
-
runner.registerFinalCondition(
|
311
|
+
runner.registerFinalCondition('Shifted time for all profiles used by this schedule.')
|
311
312
|
end
|
312
|
-
|
313
|
+
|
313
314
|
# Export CSV file with Schedule setpoints after schedule shifts
|
314
|
-
#model = runner.lastOpenStudioModel
|
315
|
-
#model = model.get
|
315
|
+
# model = runner.lastOpenStudioModel
|
316
|
+
# model = model.get
|
316
317
|
interval = 60
|
317
318
|
|
318
319
|
header = []
|
@@ -346,7 +347,7 @@ class ShiftScheduleByType < OpenStudio::Measure::ModelMeasure
|
|
346
347
|
file.puts row.join(',')
|
347
348
|
end
|
348
349
|
end
|
349
|
-
|
350
|
+
|
350
351
|
return true
|
351
352
|
end
|
352
353
|
end
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<schema_version>3.1</schema_version>
|
4
4
|
<name>shift_schedule_by_type</name>
|
5
5
|
<uid>1c642348-f074-4ad1-98ee-2208ddc89ac7</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
6
|
+
<version_id>180bef26-d4cb-49fe-9b6e-ed1802cc099d</version_id>
|
7
|
+
<version_modified>2025-08-01T16:03:33Z</version_modified>
|
8
8
|
<xml_checksum>B6CD1F98</xml_checksum>
|
9
9
|
<class_name>ShiftScheduleByType</class_name>
|
10
10
|
<display_name>ShiftScheduleByType</display_name>
|
@@ -74,7 +74,7 @@
|
|
74
74
|
<filename>LICENSE.md</filename>
|
75
75
|
<filetype>md</filetype>
|
76
76
|
<usage_type>license</usage_type>
|
77
|
-
<checksum>
|
77
|
+
<checksum>BFFB1AA6</checksum>
|
78
78
|
</file>
|
79
79
|
<file>
|
80
80
|
<filename>README.md</filename>
|
@@ -97,7 +97,7 @@
|
|
97
97
|
<filename>measure.rb</filename>
|
98
98
|
<filetype>rb</filetype>
|
99
99
|
<usage_type>script</usage_type>
|
100
|
-
<checksum>
|
100
|
+
<checksum>C6E2ADAC</checksum>
|
101
101
|
</file>
|
102
102
|
<file>
|
103
103
|
<filename>3Story2Space.osm</filename>
|
@@ -109,7 +109,7 @@
|
|
109
109
|
<filename>ShiftScheduleByType_Test.rb</filename>
|
110
110
|
<filetype>rb</filetype>
|
111
111
|
<usage_type>test</usage_type>
|
112
|
-
<checksum>
|
112
|
+
<checksum>85D219FF</checksum>
|
113
113
|
</file>
|
114
114
|
</files>
|
115
115
|
</measure>
|
@@ -7,7 +7,7 @@ require 'openstudio'
|
|
7
7
|
require 'openstudio/measure/ShowRunnerOutput'
|
8
8
|
require 'fileutils'
|
9
9
|
|
10
|
-
require_relative '../measure
|
10
|
+
require_relative '../measure'
|
11
11
|
require 'minitest/autorun'
|
12
12
|
|
13
13
|
class ShiftScheduleByType_Test < Minitest::Test
|
@@ -20,7 +20,7 @@ class ShiftScheduleByType_Test < Minitest::Test
|
|
20
20
|
|
21
21
|
# load the test model
|
22
22
|
translator = OpenStudio::OSVersion::VersionTranslator.new
|
23
|
-
path = OpenStudio::Path.new(File.dirname(__FILE__)
|
23
|
+
path = OpenStudio::Path.new("#{File.dirname(__FILE__)}/3Story2Space.osm")
|
24
24
|
model = translator.loadModel(path)
|
25
25
|
assert(!model.empty?)
|
26
26
|
model = model.get
|
@@ -58,7 +58,7 @@ class ShiftScheduleByType_Test < Minitest::Test
|
|
58
58
|
|
59
59
|
# load the test model
|
60
60
|
translator = OpenStudio::OSVersion::VersionTranslator.new
|
61
|
-
path = OpenStudio::Path.new(File.dirname(__FILE__)
|
61
|
+
path = OpenStudio::Path.new("#{File.dirname(__FILE__)}/3Story2Space.osm")
|
62
62
|
model = translator.loadModel(path)
|
63
63
|
assert(!model.empty?)
|
64
64
|
model = model.get
|
@@ -96,7 +96,7 @@ class ShiftScheduleByType_Test < Minitest::Test
|
|
96
96
|
|
97
97
|
# load the test model
|
98
98
|
translator = OpenStudio::OSVersion::VersionTranslator.new
|
99
|
-
path = OpenStudio::Path.new(File.dirname(__FILE__)
|
99
|
+
path = OpenStudio::Path.new("#{File.dirname(__FILE__)}/3Story2Space.osm")
|
100
100
|
model = translator.loadModel(path)
|
101
101
|
assert(!model.empty?)
|
102
102
|
model = model.get
|
@@ -134,7 +134,7 @@ class ShiftScheduleByType_Test < Minitest::Test
|
|
134
134
|
|
135
135
|
# load the test model
|
136
136
|
translator = OpenStudio::OSVersion::VersionTranslator.new
|
137
|
-
path = OpenStudio::Path.new(File.dirname(__FILE__)
|
137
|
+
path = OpenStudio::Path.new("#{File.dirname(__FILE__)}/3Story2Space.osm")
|
138
138
|
model = translator.loadModel(path)
|
139
139
|
assert(!model.empty?)
|
140
140
|
model = model.get
|
@@ -1,4 +1,4 @@
|
|
1
|
-
OpenStudio(R), Copyright (c) 2008,
|
1
|
+
OpenStudio(R), Copyright (c) 2008, 2023 Alliance for Sustainable Energy, LLC.
|
2
2
|
|
3
3
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
4
4
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<schema_version>3.1</schema_version>
|
4
4
|
<name>add_central_ice_storage</name>
|
5
5
|
<uid>48f37812-0cb6-4770-b695-beb8d8a5660d</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
6
|
+
<version_id>799eb5a6-d860-416d-88cf-a3c4ca8c2eb8</version_id>
|
7
|
+
<version_modified>2025-08-01T16:03:35Z</version_modified>
|
8
8
|
<xml_checksum>6394841D</xml_checksum>
|
9
9
|
<class_name>AddCentralIceStorage</class_name>
|
10
10
|
<display_name>Add Central Ice Storage</display_name>
|
@@ -450,7 +450,7 @@
|
|
450
450
|
<filename>LICENSE.md</filename>
|
451
451
|
<filetype>md</filetype>
|
452
452
|
<usage_type>license</usage_type>
|
453
|
-
<checksum>
|
453
|
+
<checksum>BFFB1AA6</checksum>
|
454
454
|
</file>
|
455
455
|
<file>
|
456
456
|
<filename>README.md</filename>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
OpenStudio(R), Copyright (c) 2008,
|
1
|
+
OpenStudio(R), Copyright (c) 2008, 2023 Alliance for Sustainable Energy, LLC.
|
2
2
|
|
3
3
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
4
4
|
|
@@ -515,33 +515,33 @@ class AddHpwh < OpenStudio::Measure::ModelMeasure
|
|
515
515
|
if type != 'Simplified'
|
516
516
|
# convert zone name from STRING into OS model OBJECT
|
517
517
|
hpwh = OpenstudioStandards::ServiceWaterHeating.create_heatpump_water_heater(model, # model
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
518
|
+
heat_pump_type: type, # type
|
519
|
+
water_heater_capacity: (cap * 1000 / cop), # water_heater_capacity
|
520
|
+
electric_backup_capacity: (bu_cap * 1000), # electric_backup_capacity
|
521
|
+
water_heater_volume: v.to_f, # water_heater_volume
|
522
|
+
service_water_temperature: OpenStudio.convert(140.0, 'F', 'C').get, # service_water_temperature
|
523
|
+
on_cycle_parasitic_fuel_consumption_rate: 3.0, # parasitic_fuel_consumption_rate
|
524
|
+
off_cycle_parasitic_fuel_consumption_rate: 3.0, # parasitic_fuel_consumption_rate
|
525
|
+
service_water_temperature_schedule: sched, # swh_temp_sch
|
526
|
+
coefficient_of_performance: cop, # cop
|
527
|
+
set_peak_use_flowrate: false, # set_peak_use_flowrate
|
528
|
+
peak_flowrate: 0.0, # peak_flowrate
|
529
|
+
flowrate_schedule: nil, # flowrate_schedule
|
530
|
+
water_heater_thermal_zone: zone) # water_heater_thermal_zone
|
531
531
|
else
|
532
532
|
hpwh = OpenstudioStandards::ServiceWaterHeating.create_water_heater(model, # model
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
533
|
+
water_heater_capacity: (cap * 1000), # water_heater_capacity
|
534
|
+
water_heater_volume: v.to_f, # water_heater_volume
|
535
|
+
water_heater_fuel: 'HeatPump', # water_heater_fuel
|
536
|
+
service_water_temperature: OpenStudio.convert(140.0, 'F', 'C').to_f, # service_water_temperature
|
537
|
+
on_cycle_parasitic_fuel_consumption_rate: 3.0, # parasitic_fuel_consumption_rate
|
538
|
+
off_cycle_parasitic_fuel_consumption_rate: 3.0, # parasitic_fuel_consumption_rate
|
539
|
+
service_water_temperature_schedule: sched, # swh_temp_sch
|
540
|
+
set_peak_use_flowrate: false, # set_peak_use_flowrate
|
541
|
+
peak_flowrate: 0.0, # peak_flowrate
|
542
|
+
flowrate_schedule: nil, # flowrate_schedule
|
543
|
+
water_heater_thermal_zone: model.getThermalZones[0], # water_heater_thermal_zone
|
544
|
+
number_of_water_heaters: 1) # number_water_heaters
|
545
545
|
# set COP in PLF curve
|
546
546
|
cop_curve = hpwh.partLoadFactorCurve.get
|
547
547
|
cop_curve.setName(cop_curve.name.get.gsub('2.8', cop.to_s))
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<schema_version>3.1</schema_version>
|
4
4
|
<name>add_hpwh</name>
|
5
5
|
<uid>518cde6f-1806-4b9a-bee9-ccaac49c7a53</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
6
|
+
<version_id>16fb393e-5e8c-4b3d-b06a-108604427285</version_id>
|
7
|
+
<version_modified>2025-08-01T16:03:35Z</version_modified>
|
8
8
|
<xml_checksum>A374667A</xml_checksum>
|
9
9
|
<class_name>AddHpwh</class_name>
|
10
10
|
<display_name>Add HPWH for Domestic Hot Water</display_name>
|
@@ -355,7 +355,7 @@ The flexibility of the system is based on user-defined temperatures and times, w
|
|
355
355
|
<filename>LICENSE.md</filename>
|
356
356
|
<filetype>md</filetype>
|
357
357
|
<usage_type>license</usage_type>
|
358
|
-
<checksum>
|
358
|
+
<checksum>BFFB1AA6</checksum>
|
359
359
|
</file>
|
360
360
|
<file>
|
361
361
|
<filename>README.md</filename>
|
@@ -384,7 +384,7 @@ The flexibility of the system is based on user-defined temperatures and times, w
|
|
384
384
|
<filename>measure.rb</filename>
|
385
385
|
<filetype>rb</filetype>
|
386
386
|
<usage_type>script</usage_type>
|
387
|
-
<checksum>
|
387
|
+
<checksum>28362851</checksum>
|
388
388
|
</file>
|
389
389
|
<file>
|
390
390
|
<filename>SmallHotel-2A.osm</filename>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
OpenStudio(R), Copyright (c) 2008,
|
1
|
+
OpenStudio(R), Copyright (c) 2008, 2023 Alliance for Sustainable Energy, LLC.
|
2
2
|
|
3
3
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
4
4
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<schema_version>3.1</schema_version>
|
4
4
|
<name>add_packaged_ice_storage</name>
|
5
5
|
<uid>2aa8c128-53b9-49fd-9aaf-9253a1f05936</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
6
|
+
<version_id>e658eefe-c363-48d5-a4b8-cf361bb14e72</version_id>
|
7
|
+
<version_modified>2025-08-01T16:03:35Z</version_modified>
|
8
8
|
<xml_checksum>2617824F</xml_checksum>
|
9
9
|
<class_name>AddPackagedIceStorage</class_name>
|
10
10
|
<display_name>Add Packaged Ice Storage</display_name>
|
@@ -204,7 +204,7 @@ If 'AutoSize' is selected for ice capacity, these inputs set an ice capacity siz
|
|
204
204
|
<filename>LICENSE.md</filename>
|
205
205
|
<filetype>md</filetype>
|
206
206
|
<usage_type>license</usage_type>
|
207
|
-
<checksum>
|
207
|
+
<checksum>BFFB1AA6</checksum>
|
208
208
|
</file>
|
209
209
|
<file>
|
210
210
|
<filename>README.md</filename>
|
@@ -245,7 +245,7 @@ If 'AutoSize' is selected for ice capacity, these inputs set an ice capacity siz
|
|
245
245
|
<filename>add_packaged_ice_storage_test.rb</filename>
|
246
246
|
<filetype>rb</filetype>
|
247
247
|
<usage_type>test</usage_type>
|
248
|
-
<checksum>
|
248
|
+
<checksum>BCA2B133</checksum>
|
249
249
|
</file>
|
250
250
|
<file>
|
251
251
|
<filename>single_speed_dx_350.osm</filename>
|
@@ -49,7 +49,7 @@ class AddPackagedIceStorageTest < MiniTest::Test
|
|
49
49
|
ep_path = OpenStudio.getEnergyPlusExecutable
|
50
50
|
|
51
51
|
puts "EnergyPlus is: #{ep_path}"
|
52
|
-
job = "energyplus -w #{epw_path
|
52
|
+
job = "energyplus -w #{epw_path} -d #{run_dir} #{idf_path}"
|
53
53
|
puts job
|
54
54
|
system(job)
|
55
55
|
|
@@ -114,7 +114,7 @@ class AddPackagedIceStorageTest < MiniTest::Test
|
|
114
114
|
end
|
115
115
|
|
116
116
|
return true
|
117
|
-
end
|
117
|
+
end
|
118
118
|
|
119
119
|
def test_good_argument_values
|
120
120
|
# create an instance of the measure
|
@@ -155,9 +155,9 @@ class AddPackagedIceStorageTest < MiniTest::Test
|
|
155
155
|
|
156
156
|
# run the annual simulation
|
157
157
|
# commented out for now E+ run in test doesn't function on CI yet
|
158
|
-
#output_file_path = "#{File.dirname(__FILE__)}/output/test_good_argument_values"
|
159
|
-
#sim_results = self.model_run_simulation_and_log_errors(model, workspace, output_file_path)
|
160
|
-
#assert(sim_results)
|
158
|
+
# output_file_path = "#{File.dirname(__FILE__)}/output/test_good_argument_values"
|
159
|
+
# sim_results = self.model_run_simulation_and_log_errors(model, workspace, output_file_path)
|
160
|
+
# assert(sim_results)
|
161
161
|
|
162
162
|
result = runner.result
|
163
163
|
assert_equal('Success', result.value.valueName)
|
@@ -192,7 +192,7 @@ class AddPackagedIceStorageTest < MiniTest::Test
|
|
192
192
|
|
193
193
|
# create hash of argument values
|
194
194
|
args_hash = {}
|
195
|
-
#args_hash['ice_cap'] = '40,50'
|
195
|
+
# args_hash['ice_cap'] = '40,50'
|
196
196
|
|
197
197
|
# populate argument with specified has value if set
|
198
198
|
arguments.each do |arg|
|
@@ -206,9 +206,9 @@ class AddPackagedIceStorageTest < MiniTest::Test
|
|
206
206
|
|
207
207
|
# run the annual simulation
|
208
208
|
# commented out for now E+ run in test doesn't function on CI yet
|
209
|
-
#output_file_path = "#{File.dirname(__FILE__)}/output/single_speed_dx"
|
210
|
-
#sim_results = self.model_run_simulation_and_log_errors(model, workspace, output_file_path)
|
211
|
-
#assert(sim_results)
|
209
|
+
# output_file_path = "#{File.dirname(__FILE__)}/output/single_speed_dx"
|
210
|
+
# sim_results = self.model_run_simulation_and_log_errors(model, workspace, output_file_path)
|
211
|
+
# assert(sim_results)
|
212
212
|
|
213
213
|
result = runner.result
|
214
214
|
assert_equal('Success', result.value.valueName)
|
@@ -24,15 +24,17 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.required_ruby_version = '~> 3.2.2'
|
25
25
|
|
26
26
|
spec.add_dependency 'bundler', '~> 2.4.10'
|
27
|
-
spec.add_dependency 'openstudio-extension', '~> 0.
|
28
|
-
spec.add_dependency 'openstudio-standards', '0.
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
spec.add_dependency 'octokit', '4.18.0' # for change logs
|
27
|
+
spec.add_dependency 'openstudio-extension', '~> 0.9.3'
|
28
|
+
spec.add_dependency 'openstudio-standards', '0.8.2'
|
29
|
+
|
30
|
+
# if we need the following dependencies pinned,
|
31
|
+
# let's set them in extension-gem for next release
|
33
32
|
spec.add_dependency 'multipart-post', '2.4.0'
|
34
|
-
spec.add_dependency 'parallel', '1.19.1'
|
35
33
|
|
36
34
|
spec.add_development_dependency 'rake', '~> 13.0'
|
37
35
|
spec.add_development_dependency 'rspec', '~> 3.9'
|
36
|
+
spec.add_development_dependency 'rubocop', '1.50'
|
37
|
+
spec.add_development_dependency 'rubocop-checkstyle_formatter', '0.6.0'
|
38
|
+
spec.add_development_dependency 'rubocop-performance', '1.20.0'
|
39
|
+
spec.add_development_dependency 'simplecov', '0.22.0'
|
38
40
|
end
|