openstudio-load-flexibility-measures 0.4.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +8 -0
  4. data/LICENSE.md +27 -0
  5. data/README.md +9 -5
  6. data/doc_templates/LICENSE.md +1 -1
  7. data/doc_templates/copyright_erb.txt +1 -1
  8. data/doc_templates/copyright_js.txt +1 -1
  9. data/doc_templates/copyright_ruby.txt +1 -1
  10. data/lib/measures/ShiftScheduleByType/LICENSE.md +27 -0
  11. data/lib/measures/ShiftScheduleByType/README.md +40 -0
  12. data/lib/measures/ShiftScheduleByType/README.md.erb +42 -0
  13. data/lib/measures/ShiftScheduleByType/measure.rb +385 -0
  14. data/lib/measures/ShiftScheduleByType/measure.xml +115 -0
  15. data/lib/measures/ShiftScheduleByType/tests/3Story2Space.osm +3030 -0
  16. data/lib/measures/ShiftScheduleByType/tests/ShiftScheduleByType_Test.rb +193 -0
  17. data/lib/measures/add_central_ice_storage/LICENSE.md +1 -1
  18. data/lib/measures/add_central_ice_storage/measure.rb +1 -1
  19. data/lib/measures/add_central_ice_storage/measure.xml +11 -11
  20. data/lib/measures/add_central_ice_storage/resources/OsLib_Schedules.rb +1 -1
  21. data/lib/measures/add_central_ice_storage/tests/add_central_ice_storage_test.rb +1 -1
  22. data/lib/measures/add_hpwh/LICENSE.md +1 -1
  23. data/lib/measures/add_hpwh/measure.rb +15 -4
  24. data/lib/measures/add_hpwh/measure.xml +10 -10
  25. data/lib/measures/add_hpwh/tests/add_hpwh_test.rb +104 -4
  26. data/lib/measures/add_packaged_ice_storage/LICENSE.md +1 -1
  27. data/lib/measures/add_packaged_ice_storage/measure.rb +1 -1
  28. data/lib/measures/add_packaged_ice_storage/measure.xml +10 -10
  29. data/lib/measures/add_packaged_ice_storage/tests/add_packaged_ice_storage_test.rb +1 -1
  30. data/lib/openstudio/load_flexibility_measures/version.rb +2 -2
  31. data/lib/openstudio/load_flexibility_measures.rb +1 -1
  32. data/openstudio-load-flexibility-measures.gemspec +1 -1
  33. metadata +12 -4
@@ -0,0 +1,193 @@
1
+ # *******************************************************************************
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
+ # All rights reserved.
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
6
+ #
7
+ # (1) Redistributions of source code must retain the above copyright notice,
8
+ # this list of conditions and the following disclaimer.
9
+ #
10
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
11
+ # this list of conditions and the following disclaimer in the documentation
12
+ # and/or other materials provided with the distribution.
13
+ #
14
+ # (3) Neither the name of the copyright holder nor the names of any contributors
15
+ # may be used to endorse or promote products derived from this software without
16
+ # specific prior written permission from the respective party.
17
+ #
18
+ # (4) Other than as required in clauses (1) and (2), distributions in any form
19
+ # of modifications or other derivative works may not use the "OpenStudio"
20
+ # trademark, "OS", "os", or any other confusingly similar designation without
21
+ # specific prior written permission from Alliance for Sustainable Energy, LLC.
22
+ #
23
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
24
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
25
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
27
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
28
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
30
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ # *******************************************************************************
35
+
36
+ require 'openstudio'
37
+ require 'openstudio/measure/ShowRunnerOutput'
38
+ require 'fileutils'
39
+
40
+ require_relative '../measure.rb'
41
+ require 'minitest/autorun'
42
+
43
+ class ShiftScheduleByType_Test < Minitest::Test
44
+ def test_ShiftScheduleByType_a
45
+ # create an instance of the measure
46
+ measure = ShiftScheduleByType.new
47
+
48
+ # create an instance of a runner
49
+ runner = OpenStudio::Measure::OSRunner.new(OpenStudio::WorkflowJSON.new)
50
+
51
+ # load the test model
52
+ translator = OpenStudio::OSVersion::VersionTranslator.new
53
+ path = OpenStudio::Path.new(File.dirname(__FILE__) + '/3Story2Space.osm')
54
+ model = translator.loadModel(path)
55
+ assert(!model.empty?)
56
+ model = model.get
57
+
58
+ # set argument values to good values and run the measure on model with spaces
59
+ arguments = measure.arguments(model)
60
+ argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)
61
+
62
+ shift_value = arguments[0].clone
63
+ assert(shift_value.setValue(1.5))
64
+ argument_map['shift_value'] = shift_value
65
+
66
+ schedchoice = arguments[1].clone
67
+ assert(schedchoice.setValue('CoolHeat'))
68
+ argument_map['schedchoice'] = schedchoice
69
+
70
+ measure.run(model, runner, argument_map)
71
+ result = runner.result
72
+ show_output(result)
73
+ assert(result.value.valueName == 'Success')
74
+ assert(result.warnings.empty?)
75
+ # assert(result.info.size == 5)
76
+
77
+ # save the model
78
+ # output_file_path = OpenStudio::Path.new('C:\SVN_Utilities\OpenStudio\measures\test.osm')
79
+ # model.save(output_file_path,true)
80
+ end
81
+
82
+ def test_ShiftScheduleByType_b
83
+ # create an instance of the measure
84
+ measure = ShiftScheduleByType.new
85
+
86
+ # create an instance of a runner
87
+ runner = OpenStudio::Measure::OSRunner.new(OpenStudio::WorkflowJSON.new)
88
+
89
+ # load the test model
90
+ translator = OpenStudio::OSVersion::VersionTranslator.new
91
+ path = OpenStudio::Path.new(File.dirname(__FILE__) + '/3Story2Space.osm')
92
+ model = translator.loadModel(path)
93
+ assert(!model.empty?)
94
+ model = model.get
95
+
96
+ # set argument values to good values and run the measure on model with spaces
97
+ arguments = measure.arguments(model)
98
+ argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)
99
+
100
+ shift_value = arguments[0].clone
101
+ assert(shift_value.setValue(-6.0))
102
+ argument_map['shift_value'] = shift_value
103
+
104
+ schedchoice = arguments[1].clone
105
+ assert(schedchoice.setValue('CoolHeat'))
106
+ argument_map['schedchoice'] = schedchoice
107
+
108
+ measure.run(model, runner, argument_map)
109
+ result = runner.result
110
+ show_output(result)
111
+ assert(result.value.valueName == 'Success')
112
+ assert(result.warnings.empty?)
113
+ # assert(result.info.size == 5)
114
+
115
+ # save the model
116
+ # output_file_path = OpenStudio::Path.new('C:\SVN_Utilities\OpenStudio\measures\test.osm')
117
+ # model.save(output_file_path,true)
118
+ end
119
+
120
+ def test_ShiftScheduleByType_all_schedules
121
+ # create an instance of the measure
122
+ measure = ShiftScheduleByType.new
123
+
124
+ # create an instance of a runner
125
+ runner = OpenStudio::Measure::OSRunner.new(OpenStudio::WorkflowJSON.new)
126
+
127
+ # load the test model
128
+ translator = OpenStudio::OSVersion::VersionTranslator.new
129
+ path = OpenStudio::Path.new(File.dirname(__FILE__) + '/3Story2Space.osm')
130
+ model = translator.loadModel(path)
131
+ assert(!model.empty?)
132
+ model = model.get
133
+
134
+ # set argument values to good values and run the measure on model with spaces
135
+ arguments = measure.arguments(model)
136
+ argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)
137
+
138
+ shift_value = arguments[0].clone
139
+ assert(shift_value.setValue(-6.0))
140
+ argument_map['shift_value'] = shift_value
141
+
142
+ schedchoice = arguments[1].clone
143
+ assert(schedchoice.setValue('CoolHeat'))
144
+ argument_map['schedchoice'] = schedchoice
145
+
146
+ measure.run(model, runner, argument_map)
147
+ result = runner.result
148
+ show_output(result)
149
+ assert(result.value.valueName == 'Success')
150
+ # assert(result.warnings.size == 0)
151
+ # assert(result.info.size == 5)
152
+
153
+ # save the model
154
+ # output_file_path = OpenStudio::Path.new('C:\SVN_Utilities\OpenStudio\measures\test.osm')
155
+ # model.save(output_file_path,true)
156
+ end
157
+
158
+ def test_ShiftScheduleByType_NA
159
+ # create an instance of the measure
160
+ measure = ShiftScheduleByType.new
161
+
162
+ # create an instance of a runner
163
+ runner = OpenStudio::Measure::OSRunner.new(OpenStudio::WorkflowJSON.new)
164
+
165
+ # load the test model
166
+ translator = OpenStudio::OSVersion::VersionTranslator.new
167
+ path = OpenStudio::Path.new(File.dirname(__FILE__) + '/3Story2Space.osm')
168
+ model = translator.loadModel(path)
169
+ assert(!model.empty?)
170
+ model = model.get
171
+
172
+ # set argument values to good values and run the measure on model with spaces
173
+ arguments = measure.arguments(model)
174
+ argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)
175
+
176
+ shift_value = arguments[0].clone
177
+ assert(shift_value.setValue(24))
178
+ argument_map['shift_value'] = shift_value
179
+
180
+ schedchoice = arguments[1].clone
181
+ assert(schedchoice.setValue('CoolHeat'))
182
+ argument_map['schedchoice'] = schedchoice
183
+
184
+ measure.run(model, runner, argument_map)
185
+ result = runner.result
186
+ show_output(result)
187
+ assert(result.value.valueName == 'NA')
188
+
189
+ # save the model
190
+ # output_file_path = OpenStudio::Path.new('C:\SVN_Utilities\OpenStudio\measures\test.osm')
191
+ # model.save(output_file_path,true)
192
+ end
193
+ end
@@ -1,4 +1,4 @@
1
- OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
1
+ OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC. All rights reserved.
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without modification, are permitted
4
4
  provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -3,8 +3,8 @@
3
3
  <schema_version>3.0</schema_version>
4
4
  <name>add_central_ice_storage</name>
5
5
  <uid>48f37812-0cb6-4770-b695-beb8d8a5660d</uid>
6
- <version_id>9f1db6c9-821d-4074-808f-f99782d223e9</version_id>
7
- <version_modified>20211110T211234Z</version_modified>
6
+ <version_id>25303cd9-74a2-451a-bf78-b4e03d2bd1a7</version_id>
7
+ <version_modified>20221011T225330Z</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>
@@ -464,29 +464,29 @@
464
464
  <usage_type>doc</usage_type>
465
465
  <checksum>090841B0</checksum>
466
466
  </file>
467
- <file>
468
- <filename>LICENSE.md</filename>
469
- <filetype>md</filetype>
470
- <usage_type>license</usage_type>
471
- <checksum>E0468DD6</checksum>
472
- </file>
473
467
  <file>
474
468
  <filename>README.md</filename>
475
469
  <filetype>md</filetype>
476
470
  <usage_type>readme</usage_type>
477
471
  <checksum>962B1D2E</checksum>
478
472
  </file>
473
+ <file>
474
+ <filename>LICENSE.md</filename>
475
+ <filetype>md</filetype>
476
+ <usage_type>license</usage_type>
477
+ <checksum>64FFEBDE</checksum>
478
+ </file>
479
479
  <file>
480
480
  <filename>OsLib_Schedules.rb</filename>
481
481
  <filetype>rb</filetype>
482
482
  <usage_type>resource</usage_type>
483
- <checksum>3E001F89</checksum>
483
+ <checksum>0582294E</checksum>
484
484
  </file>
485
485
  <file>
486
486
  <filename>add_central_ice_storage_test.rb</filename>
487
487
  <filetype>rb</filetype>
488
488
  <usage_type>test</usage_type>
489
- <checksum>10164E33</checksum>
489
+ <checksum>B4007921</checksum>
490
490
  </file>
491
491
  <file>
492
492
  <version>
@@ -497,7 +497,7 @@
497
497
  <filename>measure.rb</filename>
498
498
  <filetype>rb</filetype>
499
499
  <usage_type>script</usage_type>
500
- <checksum>C16EDFB8</checksum>
500
+ <checksum>554632ED</checksum>
501
501
  </file>
502
502
  </files>
503
503
  </measure>
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,4 +1,4 @@
1
- OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
1
+ OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC. All rights reserved.
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without modification, are permitted
4
4
  provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -94,6 +94,7 @@ class AddHpwh < OpenStudio::Measure::ModelMeasure
94
94
 
95
95
  # find available water heaters and get default volume
96
96
  default_vol = 80.0 # gallons
97
+ wheaters = []
97
98
  wh_names = ['All Water Heaters (Simplified Only)']
98
99
  if !model.getWaterHeaterMixeds.empty?
99
100
  wheaters = model.getWaterHeaterMixeds
@@ -283,6 +284,18 @@ class AddHpwh < OpenStudio::Measure::ModelMeasure
283
284
  db_temp = runner.getDoubleArgumentValue('db_temp', user_arguments)
284
285
  sched = runner.getStringArgumentValue('sched', user_arguments)
285
286
 
287
+ # get zone of one was selected
288
+ if zone.to_s != 'N/A - Simplified'
289
+ if model.getThermalZoneByName(zone).is_initialized
290
+ zone = model.getThermalZoneByName(zone).get
291
+ else
292
+ runner.registerError("Could not find zone named #{zone} in the moodel")
293
+ return false
294
+ end
295
+ else
296
+ zone = 'N/A - Simplified'
297
+ end
298
+
286
299
  4.times do |n|
287
300
  flex << runner.getStringArgumentValue("flex#{n}", user_arguments)
288
301
  flex_hrs << runner.getStringArgumentValue("flex_hrs#{n}", user_arguments)
@@ -531,12 +544,11 @@ class AddHpwh < OpenStudio::Measure::ModelMeasure
531
544
  # => openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb
532
545
  if type != 'Simplified'
533
546
  # convert zone name from STRING into OS model OBJECT
534
- zone = model.getThermalZoneByName(zone).get
535
547
  hpwh = std.model_add_heatpump_water_heater(model, # model
536
548
  type: type, # type
537
549
  water_heater_capacity: (cap * 1000 / cop), # water_heater_capacity
538
550
  electric_backup_capacity: (bu_cap * 1000), # electric_backup_capacity
539
- water_heater_volume: v, # water_heater_volume
551
+ water_heater_volume: v.to_f, # water_heater_volume
540
552
  service_water_temperature: OpenStudio.convert(140.0, 'F', 'C').get, # service_water_temperature
541
553
  parasitic_fuel_consumption_rate: 3.0, # parasitic_fuel_consumption_rate
542
554
  swh_temp_sch: sched, # swh_temp_sch
@@ -548,7 +560,6 @@ class AddHpwh < OpenStudio::Measure::ModelMeasure
548
560
  flowrate_schedule: nil, # flowrate_schedule
549
561
  water_heater_thermal_zone: zone) # water_heater_thermal_zone
550
562
  else
551
- # zone = whtr.ambientTemperatureThermalZone.get
552
563
  hpwh = std.model_add_water_heater(model, # model
553
564
  (cap * 1000), # water_heater_capacity
554
565
  v.to_f, # water_heater_volume
@@ -3,8 +3,8 @@
3
3
  <schema_version>3.0</schema_version>
4
4
  <name>add_hpwh</name>
5
5
  <uid>518cde6f-1806-4b9a-bee9-ccaac49c7a53</uid>
6
- <version_id>daec8b02-d60d-467c-bdea-201f81f56b8c</version_id>
7
- <version_modified>20211110T211234Z</version_modified>
6
+ <version_id>5f32552c-4726-4ed6-b89a-a991afaecd60</version_id>
7
+ <version_modified>20221011T225330Z</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>
@@ -363,12 +363,6 @@ The flexibility of the system is based on user-defined temperatures and times, w
363
363
  <usage_type>test</usage_type>
364
364
  <checksum>EB637B7E</checksum>
365
365
  </file>
366
- <file>
367
- <filename>LICENSE.md</filename>
368
- <filetype>md</filetype>
369
- <usage_type>license</usage_type>
370
- <checksum>E0468DD6</checksum>
371
- </file>
372
366
  <file>
373
367
  <filename>Flexible Domestic Hot Water Implementation Guide.pdf</filename>
374
368
  <filetype>pdf</filetype>
@@ -381,6 +375,12 @@ The flexibility of the system is based on user-defined temperatures and times, w
381
375
  <usage_type>readme</usage_type>
382
376
  <checksum>5E6E20CF</checksum>
383
377
  </file>
378
+ <file>
379
+ <filename>LICENSE.md</filename>
380
+ <filetype>md</filetype>
381
+ <usage_type>license</usage_type>
382
+ <checksum>64FFEBDE</checksum>
383
+ </file>
384
384
  <file>
385
385
  <version>
386
386
  <software_program>OpenStudio</software_program>
@@ -390,13 +390,13 @@ The flexibility of the system is based on user-defined temperatures and times, w
390
390
  <filename>measure.rb</filename>
391
391
  <filetype>rb</filetype>
392
392
  <usage_type>script</usage_type>
393
- <checksum>B90CA863</checksum>
393
+ <checksum>BDB9B944</checksum>
394
394
  </file>
395
395
  <file>
396
396
  <filename>add_hpwh_test.rb</filename>
397
397
  <filetype>rb</filetype>
398
398
  <usage_type>test</usage_type>
399
- <checksum>35D3782E</checksum>
399
+ <checksum>85B7D1A6</checksum>
400
400
  </file>
401
401
  </files>
402
402
  </measure>
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -85,12 +85,12 @@ class AddHpwhTest < Minitest::Test
85
85
  measure.run(model, runner, argument_map)
86
86
  result = runner.result
87
87
 
88
- # assert that it ran correctly
89
- assert_equal('Success', result.value.valueName)
90
-
91
88
  # show the output
92
89
  show_output(result)
93
90
 
91
+ # assert that it ran correctly
92
+ assert_equal('Success', result.value.valueName)
93
+
94
94
  # save the model to test output directory
95
95
  output_file_path = "#{File.dirname(__FILE__)}//output/test_output.osm"
96
96
  model.save(output_file_path, true)
@@ -134,4 +134,104 @@ class AddHpwhTest < Minitest::Test
134
134
  assert_equal('Fail', result.value.valueName)
135
135
  assert(result.errors.size == 1)
136
136
  end
137
+
138
+ def test_custom_args_PumpedCondenser_specific_zone
139
+ # create an instance of the measure
140
+ measure = AddHpwh.new
141
+
142
+ # create runner with empty OSW
143
+ osw = OpenStudio::WorkflowJSON.new
144
+ runner = OpenStudio::Measure::OSRunner.new(osw)
145
+
146
+ # load the test model
147
+ translator = OpenStudio::OSVersion::VersionTranslator.new
148
+ path = "#{File.dirname(__FILE__)}/SmallHotel-2A.osm"
149
+ model = translator.loadModel(path)
150
+ assert(!model.empty?)
151
+ model = model.get
152
+
153
+ # get arguments
154
+ arguments = measure.arguments(model)
155
+ argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)
156
+
157
+ # create hash of argument values.
158
+ # If the argument has a default that you want to use, you don't need it in the hash
159
+ args_hash = {}
160
+ args_hash['zone'] = 'FrontOfficeFlr1 ZN'
161
+ args_hash['type'] = 'PumpedCondenser'
162
+ # using defaults values from measure.rb for other arguments
163
+
164
+ # populate argument with specified hash value if specified
165
+ arguments.each do |arg|
166
+ temp_arg_var = arg.clone
167
+ if args_hash.key?(arg.name)
168
+ assert(temp_arg_var.setValue(args_hash[arg.name]))
169
+ end
170
+ argument_map[arg.name] = temp_arg_var
171
+ end
172
+
173
+ # run the measure
174
+ measure.run(model, runner, argument_map)
175
+ result = runner.result
176
+
177
+ # show the output
178
+ show_output(result)
179
+
180
+ # assert that it ran correctly
181
+ assert_equal('Success', result.value.valueName)
182
+
183
+ # save the model to test output directory
184
+ output_file_path = "#{File.dirname(__FILE__)}//output/test_output.osm"
185
+ model.save(output_file_path, true)
186
+ end
187
+
188
+ def test_custom_args_WrappedCondenser_specific_zone
189
+ # create an instance of the measure
190
+ measure = AddHpwh.new
191
+
192
+ # create runner with empty OSW
193
+ osw = OpenStudio::WorkflowJSON.new
194
+ runner = OpenStudio::Measure::OSRunner.new(osw)
195
+
196
+ # load the test model
197
+ translator = OpenStudio::OSVersion::VersionTranslator.new
198
+ path = "#{File.dirname(__FILE__)}/SmallHotel-2A.osm"
199
+ model = translator.loadModel(path)
200
+ assert(!model.empty?)
201
+ model = model.get
202
+
203
+ # get arguments
204
+ arguments = measure.arguments(model)
205
+ argument_map = OpenStudio::Measure.convertOSArgumentVectorToMap(arguments)
206
+
207
+ # create hash of argument values.
208
+ # If the argument has a default that you want to use, you don't need it in the hash
209
+ args_hash = {}
210
+ args_hash['zone'] = 'FrontOfficeFlr1 ZN'
211
+ args_hash['type'] = 'WrappedCondenser'
212
+ # using defaults values from measure.rb for other arguments
213
+
214
+ # populate argument with specified hash value if specified
215
+ arguments.each do |arg|
216
+ temp_arg_var = arg.clone
217
+ if args_hash.key?(arg.name)
218
+ assert(temp_arg_var.setValue(args_hash[arg.name]))
219
+ end
220
+ argument_map[arg.name] = temp_arg_var
221
+ end
222
+
223
+ # run the measure
224
+ measure.run(model, runner, argument_map)
225
+ result = runner.result
226
+
227
+ # show the output
228
+ show_output(result)
229
+
230
+ # assert that it ran correctly
231
+ assert_equal('Success', result.value.valueName)
232
+
233
+ # save the model to test output directory
234
+ output_file_path = "#{File.dirname(__FILE__)}//output/test_output.osm"
235
+ model.save(output_file_path, true)
236
+ end
137
237
  end
@@ -1,4 +1,4 @@
1
- OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
1
+ OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC. All rights reserved.
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without modification, are permitted
4
4
  provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -3,8 +3,8 @@
3
3
  <schema_version>3.0</schema_version>
4
4
  <name>add_packaged_ice_storage</name>
5
5
  <uid>2aa8c128-53b9-49fd-9aaf-9253a1f05936</uid>
6
- <version_id>e2b362ea-1e2a-44b0-8f2b-add4d320b86d</version_id>
7
- <version_modified>20211110T211235Z</version_modified>
6
+ <version_id>12ace3fc-b9d5-4236-9087-9c2fb61ec8c2</version_id>
7
+ <version_modified>20221011T225330Z</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>
@@ -212,23 +212,23 @@ If 'AutoSize' is selected for ice capacity, these inputs set an ice capacity siz
212
212
  <usage_type>test</usage_type>
213
213
  <checksum>DC0DCC4B</checksum>
214
214
  </file>
215
- <file>
216
- <filename>LICENSE.md</filename>
217
- <filetype>md</filetype>
218
- <usage_type>license</usage_type>
219
- <checksum>E0468DD6</checksum>
220
- </file>
221
215
  <file>
222
216
  <filename>README.md</filename>
223
217
  <filetype>md</filetype>
224
218
  <usage_type>readme</usage_type>
225
219
  <checksum>E6FBC489</checksum>
226
220
  </file>
221
+ <file>
222
+ <filename>LICENSE.md</filename>
223
+ <filetype>md</filetype>
224
+ <usage_type>license</usage_type>
225
+ <checksum>64FFEBDE</checksum>
226
+ </file>
227
227
  <file>
228
228
  <filename>add_packaged_ice_storage_test.rb</filename>
229
229
  <filetype>rb</filetype>
230
230
  <usage_type>test</usage_type>
231
- <checksum>B73245BC</checksum>
231
+ <checksum>F32CF657</checksum>
232
232
  </file>
233
233
  <file>
234
234
  <version>
@@ -239,7 +239,7 @@ If 'AutoSize' is selected for ice capacity, these inputs set an ice capacity siz
239
239
  <filename>measure.rb</filename>
240
240
  <filetype>rb</filetype>
241
241
  <usage_type>script</usage_type>
242
- <checksum>4AE2C2E6</checksum>
242
+ <checksum>85F2A9C5</checksum>
243
243
  </file>
244
244
  </files>
245
245
  </measure>
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -35,6 +35,6 @@
35
35
 
36
36
  module OpenStudio
37
37
  module LoadFlexibilityMeasures
38
- VERSION = '0.4.0'.freeze
38
+ VERSION = '0.5.1'.freeze
39
39
  end
40
40
  end
@@ -1,5 +1,5 @@
1
1
  # *******************************************************************************
2
- # OpenStudio(R), Copyright (c) 2008-2021, Alliance for Sustainable Energy, LLC.
2
+ # OpenStudio(R), Copyright (c) 2008-2022, Alliance for Sustainable Energy, LLC.
3
3
  # All rights reserved.
4
4
  # Redistribution and use in source and binary forms, with or without
5
5
  # modification, are permitted provided that the following conditions are met:
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_dependency 'bundler', '~> 2.1'
27
27
  spec.add_dependency 'openstudio-extension', '~> 0.5.1'
28
- spec.add_dependency 'openstudio-standards', '~> 0.2.15'
28
+ spec.add_dependency 'openstudio-standards', '~> 0.2.16'
29
29
 
30
30
  spec.add_development_dependency 'rake', '~> 13.0'
31
31
  spec.add_development_dependency 'rspec', '~> 3.9'