openstudio-common-measures 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +44 -0
  3. data/Rakefile +3 -0
  4. data/lib/measures/ChangeBuildingLocation/measure.xml +11 -11
  5. data/lib/measures/ExportScheduleCSV/measure.rb +1 -1
  6. data/lib/measures/ExportScheduleCSV/measure.xml +16 -15
  7. data/lib/measures/ImportEnvelopeAndInternalLoadsFromIdf/measure.xml +7 -6
  8. data/lib/measures/MeterFlodPlot/measure.rb +1 -1
  9. data/lib/measures/MeterFlodPlot/measure.xml +16 -15
  10. data/lib/measures/ReportModelChanges/measure.xml +2 -2
  11. data/lib/measures/RunPeriodMultiple/measure.xml +12 -11
  12. data/lib/measures/ServerDirectoryCleanup/README.md +97 -3
  13. data/lib/measures/ServerDirectoryCleanup/measure.rb +1 -1
  14. data/lib/measures/ServerDirectoryCleanup/measure.xml +10 -59
  15. data/lib/measures/UnmetLoadHoursTroubleshooting/README.md +9 -3
  16. data/lib/measures/UnmetLoadHoursTroubleshooting/measure.rb +1 -1
  17. data/lib/measures/UnmetLoadHoursTroubleshooting/measure.xml +66 -17
  18. data/lib/measures/VentilationQAQC/README.md +9 -3
  19. data/lib/measures/VentilationQAQC/measure.rb +52 -45
  20. data/lib/measures/VentilationQAQC/measure.xml +25 -30
  21. data/lib/measures/ZoneReport/README.md +2 -2
  22. data/lib/measures/ZoneReport/measure.rb +1 -1
  23. data/lib/measures/ZoneReport/measure.xml +10 -11
  24. data/lib/measures/add_ems_to_control_ev_charging/LICENSE.MD.txt +15 -0
  25. data/lib/measures/{AddDaylightSensors → add_ems_to_control_ev_charging}/LICENSE.md +0 -0
  26. data/lib/measures/add_ems_to_control_ev_charging/ReadMe.MD +29 -0
  27. data/lib/measures/add_ems_to_control_ev_charging/measure.rb +288 -0
  28. data/lib/measures/add_ems_to_control_ev_charging/measure.xml +87 -0
  29. data/lib/measures/add_ev_load/LICENSE.MD.txt +15 -0
  30. data/lib/measures/{EnableDemandControlledVentilation → add_ev_load}/LICENSE.md +0 -0
  31. data/lib/measures/add_ev_load/ReadMe.MD +34 -0
  32. data/lib/measures/add_ev_load/measure.rb +328 -0
  33. data/lib/measures/add_ev_load/measure.xml +153 -0
  34. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/PSN_BuildingKey.csv +104 -0
  35. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/PSN_BuildingKey_v2.csv +104 -0
  36. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg1_dow1_flex1.csv +96 -0
  37. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg1_dow1_flex2.csv +96 -0
  38. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg1_dow1_flex3.csv +96 -0
  39. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg1_dow2_flex1.csv +96 -0
  40. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg1_dow2_flex2.csv +96 -0
  41. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg1_dow2_flex3.csv +96 -0
  42. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg1_dow3_flex1.csv +96 -0
  43. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg1_dow3_flex2.csv +96 -0
  44. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg1_dow3_flex3.csv +96 -0
  45. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg2_dow1_flex1.csv +96 -0
  46. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg2_dow1_flex2.csv +96 -0
  47. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg2_dow1_flex3.csv +96 -0
  48. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg2_dow2_flex1.csv +96 -0
  49. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg2_dow2_flex2.csv +96 -0
  50. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg2_dow2_flex3.csv +96 -0
  51. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg2_dow3_flex1.csv +96 -0
  52. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg2_dow3_flex2.csv +96 -0
  53. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg2_dow3_flex3.csv +96 -0
  54. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg3_dow1_flex1.csv +96 -0
  55. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg3_dow1_flex2.csv +96 -0
  56. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg3_dow1_flex3.csv +96 -0
  57. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg3_dow2_flex1.csv +96 -0
  58. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg3_dow2_flex2.csv +96 -0
  59. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg3_dow2_flex3.csv +96 -0
  60. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg3_dow3_flex1.csv +96 -0
  61. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg3_dow3_flex2.csv +96 -0
  62. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/chg3_dow3_flex3.csv +96 -0
  63. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/fast_charge_15min_Saturday.csv +96 -0
  64. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/fast_charge_15min_Sunday.csv +96 -0
  65. data/lib/measures/add_ev_load/resources/EV_Load_Profiles/fast_charge_15min_Weekday.csv +96 -0
  66. data/lib/measures/envelope_and_internal_load_breakdown/README.md +4 -3
  67. data/lib/measures/envelope_and_internal_load_breakdown/measure.rb +7 -4
  68. data/lib/measures/envelope_and_internal_load_breakdown/measure.xml +16 -17
  69. data/lib/measures/envelope_and_internal_load_breakdown/resources/report.html.erb +1 -0
  70. data/lib/measures/example_report/README.md +27 -5
  71. data/lib/measures/example_report/measure.rb +7 -4
  72. data/lib/measures/example_report/measure.xml +16 -29
  73. data/lib/measures/example_report/resources/report.html.erb +1 -0
  74. data/lib/measures/gem_env_report/measure.xml +1 -1
  75. data/lib/measures/generic_qaqc/README.md +187 -5
  76. data/lib/measures/generic_qaqc/measure.rb +1 -1
  77. data/lib/measures/generic_qaqc/measure.xml +15 -85
  78. data/lib/measures/generic_qaqc/resources/report.html.erb +1 -0
  79. data/lib/measures/hvac_psychrometric_chart/README.md +11 -5
  80. data/lib/measures/hvac_psychrometric_chart/measure.rb +1 -1
  81. data/lib/measures/hvac_psychrometric_chart/measure.xml +13 -18
  82. data/lib/measures/hvac_psychrometric_chart/resources/report.html.erb +1 -0
  83. data/lib/measures/inject_idf_objects/measure.xml +25 -24
  84. data/lib/measures/openstudio_results/README.md +195 -5
  85. data/lib/measures/openstudio_results/measure.rb +2 -2
  86. data/lib/measures/openstudio_results/measure.xml +30 -154
  87. data/lib/measures/openstudio_results/resources/report.html.erb +1 -0
  88. data/lib/measures/set_run_period/measure.xml +2 -2
  89. data/lib/measures/{EnableEconomizerControl → view_data}/LICENSE.md +0 -0
  90. data/lib/measures/view_data/README.md +64 -0
  91. data/lib/measures/{AddDaylightSensors → view_data}/README.md.erb +0 -0
  92. data/lib/measures/view_data/measure.rb +454 -0
  93. data/lib/measures/view_data/measure.xml +159 -0
  94. data/lib/measures/view_data/resources/report.html.in +2881 -0
  95. data/lib/measures/view_data/resources/va3c.rb +1021 -0
  96. data/lib/measures/{ImproveFanBeltEfficiency → view_model}/LICENSE.md +0 -0
  97. data/lib/measures/view_model/README.md +26 -0
  98. data/lib/measures/{EnableDemandControlledVentilation → view_model}/README.md.erb +0 -0
  99. data/lib/measures/view_model/measure.rb +146 -0
  100. data/lib/measures/view_model/measure.xml +98 -0
  101. data/lib/measures/view_model/resources/report.html.in +2881 -0
  102. data/lib/measures/view_model/resources/va3c.rb +1021 -0
  103. data/lib/openstudio/common_measures/version.rb +1 -1
  104. data/openstudio-common-measures.gemspec +1 -1
  105. metadata +61 -71
  106. data/lib/measures/AddDaylightSensors/README.md +0 -136
  107. data/lib/measures/AddDaylightSensors/measure.rb +0 -521
  108. data/lib/measures/AddDaylightSensors/measure.xml +0 -233
  109. data/lib/measures/EnableDemandControlledVentilation/README.md +0 -32
  110. data/lib/measures/EnableDemandControlledVentilation/measure.rb +0 -154
  111. data/lib/measures/EnableDemandControlledVentilation/measure.xml +0 -99
  112. data/lib/measures/EnableEconomizerControl/README.md +0 -48
  113. data/lib/measures/EnableEconomizerControl/README.md.erb +0 -42
  114. data/lib/measures/EnableEconomizerControl/measure.rb +0 -172
  115. data/lib/measures/EnableEconomizerControl/measure.xml +0 -124
  116. data/lib/measures/ImproveFanBeltEfficiency/README.md +0 -104
  117. data/lib/measures/ImproveFanBeltEfficiency/README.md.erb +0 -42
  118. data/lib/measures/ImproveFanBeltEfficiency/measure.rb +0 -366
  119. data/lib/measures/ImproveFanBeltEfficiency/measure.xml +0 -185
  120. data/lib/measures/ImproveMotorEfficiency/LICENSE.md +0 -27
  121. data/lib/measures/ImproveMotorEfficiency/README.md +0 -104
  122. data/lib/measures/ImproveMotorEfficiency/README.md.erb +0 -42
  123. data/lib/measures/ImproveMotorEfficiency/measure.rb +0 -365
  124. data/lib/measures/ImproveMotorEfficiency/measure.xml +0 -182
  125. data/lib/measures/IncreaseInsulationRValueForExteriorWalls/LICENSE.md +0 -27
  126. data/lib/measures/IncreaseInsulationRValueForExteriorWalls/README.md +0 -64
  127. data/lib/measures/IncreaseInsulationRValueForExteriorWalls/README.md.erb +0 -42
  128. data/lib/measures/IncreaseInsulationRValueForExteriorWalls/measure.rb +0 -422
  129. data/lib/measures/IncreaseInsulationRValueForExteriorWalls/measure.xml +0 -150
  130. data/lib/measures/IncreaseInsulationRValueForRoofs/LICENSE.md +0 -27
  131. data/lib/measures/IncreaseInsulationRValueForRoofs/README.md +0 -64
  132. data/lib/measures/IncreaseInsulationRValueForRoofs/README.md.erb +0 -42
  133. data/lib/measures/IncreaseInsulationRValueForRoofs/measure.rb +0 -422
  134. data/lib/measures/IncreaseInsulationRValueForRoofs/measure.xml +0 -143
  135. data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/LICENSE.md +0 -27
  136. data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/README.md +0 -97
  137. data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/README.md.erb +0 -42
  138. data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/measure.rb +0 -450
  139. data/lib/measures/ReduceElectricEquipmentLoadsByPercentage/measure.xml +0 -186
  140. data/lib/measures/ReduceLightingLoadsByPercentage/LICENSE.md +0 -27
  141. data/lib/measures/ReduceLightingLoadsByPercentage/README.md +0 -96
  142. data/lib/measures/ReduceLightingLoadsByPercentage/README.md.erb +0 -42
  143. data/lib/measures/ReduceLightingLoadsByPercentage/measure.rb +0 -513
  144. data/lib/measures/ReduceLightingLoadsByPercentage/measure.xml +0 -191
  145. data/lib/measures/ReduceSpaceInfiltrationByPercentage/LICENSE.md +0 -27
  146. data/lib/measures/ReduceSpaceInfiltrationByPercentage/README.md +0 -104
  147. data/lib/measures/ReduceSpaceInfiltrationByPercentage/README.md.erb +0 -42
  148. data/lib/measures/ReduceSpaceInfiltrationByPercentage/measure.rb +0 -349
  149. data/lib/measures/ReduceSpaceInfiltrationByPercentage/measure.xml +0 -181
  150. data/lib/measures/ReduceVentilationByPercentage/LICENSE.md +0 -27
  151. data/lib/measures/ReduceVentilationByPercentage/README.md +0 -40
  152. data/lib/measures/ReduceVentilationByPercentage/README.md.erb +0 -42
  153. data/lib/measures/ReduceVentilationByPercentage/measure.rb +0 -291
  154. data/lib/measures/ReduceVentilationByPercentage/measure.xml +0 -96
  155. data/lib/measures/VentilationQAQC/ExampleModel.osm +0 -28468
  156. data/lib/measures/create_variable_speed_rtu/LICENSE.md +0 -27
  157. data/lib/measures/create_variable_speed_rtu/README.md +0 -120
  158. data/lib/measures/create_variable_speed_rtu/README.md.erb +0 -42
  159. data/lib/measures/create_variable_speed_rtu/measure.rb +0 -539
  160. data/lib/measures/create_variable_speed_rtu/measure.xml +0 -207
  161. data/lib/measures/radiant_slab_with_doas/LICENSE.md +0 -27
  162. data/lib/measures/radiant_slab_with_doas/README.md +0 -156
  163. data/lib/measures/radiant_slab_with_doas/README.md.erb +0 -42
  164. data/lib/measures/radiant_slab_with_doas/measure.rb +0 -403
  165. data/lib/measures/radiant_slab_with_doas/measure.xml +0 -345
@@ -63,7 +63,7 @@ class ServerDirectoryCleanup < OpenStudio::Measure::ReportingMeasure
63
63
  end
64
64
 
65
65
  # define the arguments that the user will input
66
- def arguments
66
+ def arguments(model = nil)
67
67
  args = OpenStudio::Measure::OSArgumentVector.new
68
68
 
69
69
  # loop through file types and make arguments
@@ -3,8 +3,8 @@
3
3
  <schema_version>3.0</schema_version>
4
4
  <name>server_directory_cleanup</name>
5
5
  <uid>ec7d04ad-0b7b-495b-825a-e1b6d28d1d3f</uid>
6
- <version_id>d590e5c9-2b25-4dbb-8b22-bc267550b89b</version_id>
7
- <version_modified>20200509T041911Z</version_modified>
6
+ <version_id>95fce446-c6c5-4594-9332-6e3332b81ab1</version_id>
7
+ <version_modified>20200605T185057Z</version_modified>
8
8
  <xml_checksum>5BFE84C4</xml_checksum>
9
9
  <class_name>ServerDirectoryCleanup</class_name>
10
10
  <display_name>Server Directory Cleanup</display_name>
@@ -14,9 +14,7 @@
14
14
  <argument>
15
15
  <name>sql</name>
16
16
  <display_name>Remove sql files from run directory</display_name>
17
- <description></description>
18
17
  <type>Boolean</type>
19
- <units></units>
20
18
  <required>true</required>
21
19
  <model_dependent>false</model_dependent>
22
20
  <default_value>true</default_value>
@@ -30,15 +28,11 @@
30
28
  <display_name>false</display_name>
31
29
  </choice>
32
30
  </choices>
33
- <min_value></min_value>
34
- <max_value></max_value>
35
31
  </argument>
36
32
  <argument>
37
33
  <name>eso</name>
38
34
  <display_name>Remove eso files from run directory</display_name>
39
- <description></description>
40
35
  <type>Boolean</type>
41
- <units></units>
42
36
  <required>true</required>
43
37
  <model_dependent>false</model_dependent>
44
38
  <default_value>true</default_value>
@@ -52,15 +46,11 @@
52
46
  <display_name>false</display_name>
53
47
  </choice>
54
48
  </choices>
55
- <min_value></min_value>
56
- <max_value></max_value>
57
49
  </argument>
58
50
  <argument>
59
51
  <name>audit</name>
60
52
  <display_name>Remove audit files from run directory</display_name>
61
- <description></description>
62
53
  <type>Boolean</type>
63
- <units></units>
64
54
  <required>true</required>
65
55
  <model_dependent>false</model_dependent>
66
56
  <default_value>true</default_value>
@@ -74,15 +64,11 @@
74
64
  <display_name>false</display_name>
75
65
  </choice>
76
66
  </choices>
77
- <min_value></min_value>
78
- <max_value></max_value>
79
67
  </argument>
80
68
  <argument>
81
69
  <name>osm</name>
82
70
  <display_name>Remove osm files from run directory</display_name>
83
- <description></description>
84
71
  <type>Boolean</type>
85
- <units></units>
86
72
  <required>true</required>
87
73
  <model_dependent>false</model_dependent>
88
74
  <default_value>true</default_value>
@@ -96,15 +82,11 @@
96
82
  <display_name>false</display_name>
97
83
  </choice>
98
84
  </choices>
99
- <min_value></min_value>
100
- <max_value></max_value>
101
85
  </argument>
102
86
  <argument>
103
87
  <name>idf</name>
104
88
  <display_name>Remove idf files from run directory</display_name>
105
- <description></description>
106
89
  <type>Boolean</type>
107
- <units></units>
108
90
  <required>true</required>
109
91
  <model_dependent>false</model_dependent>
110
92
  <default_value>true</default_value>
@@ -118,15 +100,11 @@
118
100
  <display_name>false</display_name>
119
101
  </choice>
120
102
  </choices>
121
- <min_value></min_value>
122
- <max_value></max_value>
123
103
  </argument>
124
104
  <argument>
125
105
  <name>bnd</name>
126
106
  <display_name>Remove bnd files from run directory</display_name>
127
- <description></description>
128
107
  <type>Boolean</type>
129
- <units></units>
130
108
  <required>true</required>
131
109
  <model_dependent>false</model_dependent>
132
110
  <default_value>true</default_value>
@@ -140,15 +118,11 @@
140
118
  <display_name>false</display_name>
141
119
  </choice>
142
120
  </choices>
143
- <min_value></min_value>
144
- <max_value></max_value>
145
121
  </argument>
146
122
  <argument>
147
123
  <name>eio</name>
148
124
  <display_name>Remove eio files from run directory</display_name>
149
- <description></description>
150
125
  <type>Boolean</type>
151
- <units></units>
152
126
  <required>true</required>
153
127
  <model_dependent>false</model_dependent>
154
128
  <default_value>true</default_value>
@@ -162,15 +136,11 @@
162
136
  <display_name>false</display_name>
163
137
  </choice>
164
138
  </choices>
165
- <min_value></min_value>
166
- <max_value></max_value>
167
139
  </argument>
168
140
  <argument>
169
141
  <name>shd</name>
170
142
  <display_name>Remove shd files from run directory</display_name>
171
- <description></description>
172
143
  <type>Boolean</type>
173
- <units></units>
174
144
  <required>true</required>
175
145
  <model_dependent>false</model_dependent>
176
146
  <default_value>true</default_value>
@@ -184,15 +154,11 @@
184
154
  <display_name>false</display_name>
185
155
  </choice>
186
156
  </choices>
187
- <min_value></min_value>
188
- <max_value></max_value>
189
157
  </argument>
190
158
  <argument>
191
159
  <name>mdd</name>
192
160
  <display_name>Remove mdd files from run directory</display_name>
193
- <description></description>
194
161
  <type>Boolean</type>
195
- <units></units>
196
162
  <required>true</required>
197
163
  <model_dependent>false</model_dependent>
198
164
  <default_value>true</default_value>
@@ -206,15 +172,11 @@
206
172
  <display_name>false</display_name>
207
173
  </choice>
208
174
  </choices>
209
- <min_value></min_value>
210
- <max_value></max_value>
211
175
  </argument>
212
176
  <argument>
213
177
  <name>rdd</name>
214
178
  <display_name>Remove rdd files from run directory</display_name>
215
- <description></description>
216
179
  <type>Boolean</type>
217
- <units></units>
218
180
  <required>true</required>
219
181
  <model_dependent>false</model_dependent>
220
182
  <default_value>true</default_value>
@@ -228,15 +190,11 @@
228
190
  <display_name>false</display_name>
229
191
  </choice>
230
192
  </choices>
231
- <min_value></min_value>
232
- <max_value></max_value>
233
193
  </argument>
234
194
  <argument>
235
195
  <name>csv</name>
236
196
  <display_name>Remove csv files from run directory</display_name>
237
- <description></description>
238
197
  <type>Boolean</type>
239
- <units></units>
240
198
  <required>true</required>
241
199
  <model_dependent>false</model_dependent>
242
200
  <default_value>true</default_value>
@@ -250,15 +208,11 @@
250
208
  <display_name>false</display_name>
251
209
  </choice>
252
210
  </choices>
253
- <min_value></min_value>
254
- <max_value></max_value>
255
211
  </argument>
256
212
  <argument>
257
213
  <name>Sizing Run Directories</name>
258
214
  <display_name>Remove Sizing Run Directories files from run directory</display_name>
259
- <description></description>
260
215
  <type>Boolean</type>
261
- <units></units>
262
216
  <required>true</required>
263
217
  <model_dependent>false</model_dependent>
264
218
  <default_value>true</default_value>
@@ -272,8 +226,6 @@
272
226
  <display_name>false</display_name>
273
227
  </choice>
274
228
  </choices>
275
- <min_value></min_value>
276
- <max_value></max_value>
277
229
  </argument>
278
230
  </arguments>
279
231
  <outputs />
@@ -318,6 +270,12 @@
318
270
  <usage_type>readmeerb</usage_type>
319
271
  <checksum>703C9964</checksum>
320
272
  </file>
273
+ <file>
274
+ <filename>ServerDirectoryCleanup_test.rb</filename>
275
+ <filetype>rb</filetype>
276
+ <usage_type>test</usage_type>
277
+ <checksum>7278D224</checksum>
278
+ </file>
321
279
  <file>
322
280
  <version>
323
281
  <software_program>OpenStudio</software_program>
@@ -327,20 +285,13 @@
327
285
  <filename>measure.rb</filename>
328
286
  <filetype>rb</filetype>
329
287
  <usage_type>script</usage_type>
330
- <checksum>1B545F6C</checksum>
288
+ <checksum>2997E130</checksum>
331
289
  </file>
332
290
  <file>
333
291
  <filename>README.md</filename>
334
292
  <filetype>md</filetype>
335
293
  <usage_type>readme</usage_type>
336
- <checksum>0B68E96D</checksum>
337
- </file>
338
- <file>
339
- <filename>ServerDirectoryCleanup_test.rb</filename>
340
- <filetype>rb</filetype>
341
- <usage_type>test</usage_type>
342
- <checksum>7278D224</checksum>
294
+ <checksum>4910D396</checksum>
343
295
  </file>
344
296
  </files>
345
297
  </measure>
346
- <error>wrong number of arguments (given 1, expected 0)</error>
@@ -2,7 +2,7 @@
2
2
 
3
3
  ###### (Automatically generated documentation)
4
4
 
5
- #
5
+ # Unmet Load Hours Troubleshooting
6
6
 
7
7
  ## Description
8
8
 
@@ -11,7 +11,7 @@
11
11
 
12
12
 
13
13
  ## Measure Type
14
- ModelMeasure
14
+ ReportingMeasure
15
15
 
16
16
  ## Taxonomy
17
17
 
@@ -19,8 +19,14 @@ ModelMeasure
19
19
  ## Arguments
20
20
 
21
21
 
22
+ ### Pick a Zone (or all Zones)
23
+
24
+ **Name:** measure_zone,
25
+ **Type:** Choice,
26
+ **Units:** ,
27
+ **Required:** true,
28
+ **Model Dependent:** false
22
29
 
23
30
 
24
- This measure does not have any user arguments
25
31
 
26
32
 
@@ -58,7 +58,7 @@ class UnmetLoadHoursTroubleshooting < OpenStudio::Measure::ReportingMeasure
58
58
  return requested_args
59
59
  end
60
60
 
61
- def arguments
61
+ def arguments(model = nil)
62
62
  args = OpenStudio::Measure::OSArgumentVector.new
63
63
 
64
64
  # Future functionality
@@ -3,22 +3,74 @@
3
3
  <schema_version>3.0</schema_version>
4
4
  <name>unmet_load_hours_troubleshooting</name>
5
5
  <uid>edf8fc3a-5607-4e0f-9dd2-4a1e1545433b</uid>
6
- <version_id>b9d5c4d9-f049-4b5c-aed9-e4acc594856b</version_id>
7
- <version_modified>20200509T041912Z</version_modified>
6
+ <version_id>8caa6e6d-dfa8-49d2-a1dc-8c6a5872ad33</version_id>
7
+ <version_modified>20200605T185058Z</version_modified>
8
8
  <xml_checksum>5BFE84C4</xml_checksum>
9
9
  <class_name>UnmetLoadHoursTroubleshooting</class_name>
10
10
  <display_name>Unmet Load Hours Troubleshooting</display_name>
11
- <description>Unmet load hours are any hours of operation when conditioned spaces are outside the throttling range for heating or cooling controls. That is, they are the hours in a year that the HVAC system serving a space cannot maintain space setpoint. This measure performs a series of checks against various model input variables and when applicable informs the user of possible sources of unmet cooling and heating hours. The measure also creates a dynamic time series plot of unmet cooling and heating hours, by zone - whose patterns may be interpreted to assist in troubleshooting unmet cooling and heating hours. Prior to running this measure, users will need to add the following output variables to their model: 1) Zone Mean Air Temperature,hourly 2) Zone Thermostat Heating Setpoint Temperature, hourly 3) Zone Thermostat Cooling Setpoint Temperature, hourly 4) Zone People Occupant Count, hourly using the AddOutputVariable OS measure, or the add output variables screen in the OpenStudio application.
11
+ <description>Unmet load hours are any hours of operation when conditioned spaces are outside the throttling range for heating or cooling controls. That is, they are the hours in a year that the HVAC system serving a space cannot maintain space setpoint. This measure performs a series of checks against various model input variables and when applicable informs the user of possible sources of unmet cooling and heating hours. The measure also creates a dynamic time series plot of unmet cooling and heating hours, by zone - whose patterns may be interpreted to assist in troubleshooting unmet cooling and heating hours. Prior to running this measure, users will need to add the following output variables to their model: 1) Zone Mean Air Temperature,hourly 2) Zone Thermostat Heating Setpoint Temperature, hourly 3) Zone Thermostat Cooling Setpoint Temperature, hourly 4) Zone People Occupant Count, hourly using the AddOutputVariable OS measure, or the add output variables screen in the OpenStudio application.
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
12
39
  </description>
13
- <modeler_description>This measure performs a series of logic checks against model inputs for diagnosing common issues responsible for unmet cooling and heating hours. The measure will also create a time series interactive chart (using dygraph libraries) to provide a visual inspection of when unmet heating and cooling hours are occurring.
40
+ <modeler_description>This measure performs a series of logic checks against model inputs for diagnosing common issues responsible for unmet cooling and heating hours. The measure will also create a time series interactive chart (using dygraph libraries) to provide a visual inspection of when unmet heating and cooling hours are occurring.
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
14
68
  </modeler_description>
15
69
  <arguments>
16
70
  <argument>
17
71
  <name>measure_zone</name>
18
72
  <display_name>Pick a Zone (or all Zones)</display_name>
19
- <description></description>
20
73
  <type>Choice</type>
21
- <units></units>
22
74
  <required>true</required>
23
75
  <model_dependent>false</model_dependent>
24
76
  <default_value>All Zones</default_value>
@@ -28,8 +80,6 @@
28
80
  <display_name>All Zones</display_name>
29
81
  </choice>
30
82
  </choices>
31
- <min_value></min_value>
32
- <max_value></max_value>
33
83
  </argument>
34
84
  </arguments>
35
85
  <outputs />
@@ -92,6 +142,12 @@
92
142
  <usage_type>license</usage_type>
93
143
  <checksum>E0468DD6</checksum>
94
144
  </file>
145
+ <file>
146
+ <filename>UnmetLoadHoursTroubleshooting_Test.rb</filename>
147
+ <filetype>rb</filetype>
148
+ <usage_type>test</usage_type>
149
+ <checksum>0D74ED36</checksum>
150
+ </file>
95
151
  <file>
96
152
  <version>
97
153
  <software_program>OpenStudio</software_program>
@@ -101,20 +157,13 @@
101
157
  <filename>measure.rb</filename>
102
158
  <filetype>rb</filetype>
103
159
  <usage_type>script</usage_type>
104
- <checksum>3109FCD4</checksum>
105
- </file>
106
- <file>
107
- <filename>UnmetLoadHoursTroubleshooting_Test.rb</filename>
108
- <filetype>rb</filetype>
109
- <usage_type>test</usage_type>
110
- <checksum>0D74ED36</checksum>
160
+ <checksum>62E8155A</checksum>
111
161
  </file>
112
162
  <file>
113
163
  <filename>README.md</filename>
114
164
  <filetype>md</filetype>
115
165
  <usage_type>readme</usage_type>
116
- <checksum>0B68E96D</checksum>
166
+ <checksum>5C03BFC2</checksum>
117
167
  </file>
118
168
  </files>
119
169
  </measure>
120
- <error>wrong number of arguments (given 1, expected 0)</error>
@@ -2,7 +2,7 @@
2
2
 
3
3
  ###### (Automatically generated documentation)
4
4
 
5
- #
5
+ # Ventilation Report
6
6
 
7
7
  ## Description
8
8
 
@@ -11,7 +11,7 @@
11
11
 
12
12
 
13
13
  ## Measure Type
14
- ModelMeasure
14
+ ReportingMeasure
15
15
 
16
16
  ## Taxonomy
17
17
 
@@ -19,8 +19,14 @@ ModelMeasure
19
19
  ## Arguments
20
20
 
21
21
 
22
+ ### Pick a Zone (or all Zones)
23
+
24
+ **Name:** measure_zone,
25
+ **Type:** Choice,
26
+ **Units:** ,
27
+ **Required:** true,
28
+ **Model Dependent:** false
22
29
 
23
30
 
24
- This measure does not have any user arguments
25
31
 
26
32
 
@@ -70,7 +70,7 @@ class VentilationQAQC < OpenStudio::Measure::ReportingMeasure
70
70
  # note - there is no 'model' argument provided here. This may cause an issue.
71
71
  #
72
72
 
73
- def arguments
73
+ def arguments(model = nil)
74
74
  args = OpenStudio::Measure::OSArgumentVector.new
75
75
 
76
76
  # Future functionality
@@ -159,63 +159,70 @@ class VentilationQAQC < OpenStudio::Measure::ReportingMeasure
159
159
 
160
160
  zone_infiltration_vals = getTimeSeries('Zone Infiltration Air Change Rate', zone_name.upcase, annEnvPd, 'Hourly', runner)
161
161
 
162
- puts('Get Occupant')
163
-
164
162
  zone_occupant_vals = getTimeSeries('Zone People Occupant Count', zone_name.upcase, annEnvPd, 'Hourly', runner)
165
163
  zone_occupant_max = !zone_occupant_vals.nil? ? zone_occupant_vals.max : 0
166
164
 
167
- zone_occupant_normalized = zone_occupant_vals.map { |v| v / zone_occupant_max }
165
+ # stop here if zone_occupant_max is 0 is don't divide by 0 and catch zone_occupant_vals when nil before .map
166
+ if zone_occupant_max == 0
167
+ runner.registerInfo("Skipping #{zone_name}, can't noramlize occupancy with max of 0.")
168
+ else
169
+
170
+ zone_occupant_normalized = zone_occupant_vals.map { |v| v / zone_occupant_max }
168
171
 
169
- unoccupied = 0
170
- lightly_occupied = 0
172
+ unoccupied = 0
173
+ lightly_occupied = 0
171
174
 
172
- coordinated = zone_occupant_normalized.zip(zone_mechanical_ventilation_vals)
175
+ coordinated = zone_occupant_normalized.zip(zone_mechanical_ventilation_vals)
173
176
 
174
- coordinated.each do |vals|
175
- normalized_occupancy = vals[0]
176
- zone_mech_vent = vals[1]
177
+ coordinated.each do |vals|
178
+ normalized_occupancy = vals[0]
179
+ zone_mech_vent = vals[1]
177
180
 
178
- if normalized_occupancy == 0 && zone_mech_vent > 0
179
- unoccupied += 1
180
- end
181
+ if normalized_occupancy == 0 && zone_mech_vent > 0
182
+ unoccupied += 1
183
+ end
181
184
 
182
- if normalized_occupancy < 0.05 && zone_mech_vent > 20
183
- lightly_occupied += 1
185
+ if normalized_occupancy < 0.05 && zone_mech_vent > 20
186
+ lightly_occupied += 1
187
+ end
184
188
  end
185
- end
186
189
 
187
- puts "Unoccupied: #{unoccupied}, Lightly Occupied: #{lightly_occupied}"
190
+ puts "Unoccupied: #{unoccupied}, Lightly Occupied: #{lightly_occupied}"
188
191
 
189
- if unoccupied > 10
190
- warnings.push("Thermal Zone <strong>#{zone_name}</strong> appears to have mechanical ventilation during periods when the zone is unoccupied, resulting in potentially unnecessary ventilation energy. This occurs <strong>#{unoccupied}</strong> hours per run period. Please ensure this is a correct representation of the modeling scenario. Minimum fraction OA schedules may need adjusting.")
191
- end
192
+ if unoccupied > 10
193
+ warnings.push("Thermal Zone <strong>#{zone_name}</strong> appears to have mechanical ventilation during periods when the zone is unoccupied, resulting in potentially unnecessary ventilation energy. This occurs <strong>#{unoccupied}</strong> hours per run period. Please ensure this is a correct representation of the modeling scenario. Minimum fraction OA schedules may need adjusting.")
194
+ end
195
+
196
+ if lightly_occupied > 1500
197
+ warnings.push("Thermal Zone <strong>#{zone_name}</strong> appears to have mechanical ventilation during periods when the zone is lightly occupied, resulting in potentially unnecessary ventilation energy. This occurs <strong>#{lightly_occupied}</strong> hours per run period. Please ensure this is a correct representation of the modeling scenario.")
198
+ end
192
199
 
193
- if lightly_occupied > 1500
194
- warnings.push("Thermal Zone <strong>#{zone_name}</strong> appears to have mechanical ventilation during periods when the zone is lightly occupied, resulting in potentially unnecessary ventilation energy. This occurs <strong>#{lightly_occupied}</strong> hours per run period. Please ensure this is a correct representation of the modeling scenario.")
195
200
  end
196
201
 
197
- times = getTimesForSeries('Zone People Occupant Count', zone_name.upcase, annEnvPd, 'Hourly', runner)
198
- js_date_times = times.map { |t| to_JSTime(t) }
202
+ times = getTimesForSeries('Zone Infiltration Air Change Rate', zone_name.upcase, annEnvPd, 'Hourly', runner)
203
+ if !times.nil?
204
+ js_date_times = times.map { |t| to_JSTime(t) }
199
205
 
200
- # Create an array of arrays [timestamp, zone_mechanical_ventilation_vals, zone_infiltration_vals]
201
- if zone_infiltration_vals
202
- hourly_vals = js_date_times.zip(zone_infiltration_vals)
203
- else
204
- hourly_vals = nil
205
- end
206
+ # Create an array of arrays [timestamp, zone_mechanical_ventilation_vals, zone_infiltration_vals]
207
+ if zone_infiltration_vals
208
+ hourly_vals = js_date_times.zip(zone_infiltration_vals)
209
+ else
210
+ hourly_vals = nil
211
+ end
206
212
 
207
- # Add the hourly load data to JSON for the report.html
208
- graph = {}
209
- graph['title'] = "#{zone_name} - Hourly Infiltration"
210
- graph['xaxislabel'] = 'Time'
211
- graph['yaxislabel'] = 'Infiltration (ACH)'
212
- graph['labels'] = ['Date', 'Infiltration (ACH)']
213
- graph['colors'] = ['#FF5050', '#0066FF']
214
- graph['timeseries'] = hourly_vals
215
-
216
- # This measure requires ruby 2.0.0 to create the JSON for the report graph
217
- if RUBY_VERSION >= '2.0.0'
218
- annualGraphData << graph
213
+ # Add the hourly load data to JSON for the report.html
214
+ graph = {}
215
+ graph['title'] = "#{zone_name} - Hourly Infiltration"
216
+ graph['xaxislabel'] = 'Time'
217
+ graph['yaxislabel'] = 'Infiltration (ACH)'
218
+ graph['labels'] = ['Date', 'Infiltration (ACH)']
219
+ graph['colors'] = ['#FF5050', '#0066FF']
220
+ graph['timeseries'] = hourly_vals
221
+
222
+ # This measure requires ruby 2.0.0 to create the JSON for the report graph
223
+ if RUBY_VERSION >= '2.0.0'
224
+ annualGraphData << graph
225
+ end
219
226
  end
220
227
 
221
228
  zoneMetrics = {}
@@ -236,10 +243,10 @@ class VentilationQAQC < OpenStudio::Measure::ReportingMeasure
236
243
  spec = space.designSpecificationOutdoorAir.get
237
244
 
238
245
  # spaceMetrics[:specMethod] = spec.outdoorAirMethod
239
- spaceMetrics[:specOutdoorAirFlowperPerson] = spec.getOutdoorAirFlowperPerson.value
240
- spaceMetrics[:specOutdoorAirFlowperFloorArea] = spec.getOutdoorAirFlowperFloorArea.value
246
+ spaceMetrics[:specOutdoorAirFlowperPerson] = spec.outdoorAirFlowperPerson
247
+ spaceMetrics[:specOutdoorAirFlowperFloorArea] = spec.outdoorAirFlowperFloorArea
241
248
  spaceMetrics[:specOutdoorAirFlowRate] = spec.outdoorAirFlowRate
242
- spaceMetrics[:specOutdoorAirFlowAirChangesperHour] = spec.getOutdoorAirFlowAirChangesperHour.value
249
+ spaceMetrics[:specOutdoorAirFlowAirChangesperHour] = spec.outdoorAirFlowAirChangesperHour
243
250
 
244
251
  # Outdoor Air Method
245
252
  # Outdoor Air Flow per Person {m3/s-person}