openstudio-load-flexibility-measures 0.4.0 → 0.5.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.
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'