openstudio-calibration 0.4.0 → 0.6.0
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/.gitignore +1 -0
- data/.rubocop.yml +3 -1
- data/CHANGELOG.md +13 -0
- data/Jenkinsfile +4 -3
- data/README.md +20 -4
- data/lib/measures/CalibrationReports/measure.xml +0 -1
- data/lib/measures/ExteriorWallThermalPropertiesMultiplier/measure.xml +3 -4
- data/lib/measures/ExteriorWallThermalPropertiesPercentChange/measure.xml +3 -4
- data/lib/measures/HardSizeHvac/measure.rb +8 -6
- data/lib/measures/HardSizeHvac/measure.xml +16 -4
- data/lib/measures/RoofThermalPropertiesMultiplier/measure.xml +3 -4
- data/lib/measures/RoofThermalPropertiesPercentChange/measure.xml +3 -4
- data/lib/measures/TimeseriesObjectiveFunction/README.md +171 -5
- data/lib/measures/TimeseriesObjectiveFunction/measure.rb +1 -1
- data/lib/measures/TimeseriesObjectiveFunction/measure.xml +10 -85
- data/lib/measures/TimeseriesPlot/README.md +35 -5
- data/lib/measures/TimeseriesPlot/measure.rb +1 -1
- data/lib/measures/TimeseriesPlot/measure.xml +10 -25
- data/lib/measures/inspect_and_edit_parametric_schedules/measure.xml +0 -6
- data/lib/measures/shift_hours_of_operation/README.md +13 -0
- data/lib/measures/shift_hours_of_operation/measure.rb +20 -8
- data/lib/measures/shift_hours_of_operation/measure.xml +41 -22
- data/lib/openstudio/calibration/version.rb +1 -1
- data/openstudio-calibration.gemspec +2 -2
- metadata +7 -8
- data/lib/measures/inspect_and_edit_parametric_schedules/docs/.gitkeep +0 -0
@@ -1,11 +1,10 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
2
|
<measure>
|
3
3
|
<schema_version>3.0</schema_version>
|
4
|
-
<error>wrong number of arguments (given 1, expected 0)</error>
|
5
4
|
<name>timeseries_objective_function</name>
|
6
5
|
<uid>6804217d-4737-45f3-82df-b81393c29ce3</uid>
|
7
|
-
<version_id>
|
8
|
-
<version_modified>
|
6
|
+
<version_id>300a1bda-e79c-4290-bbd9-bd1fe843264a</version_id>
|
7
|
+
<version_modified>20220223T012006Z</version_modified>
|
9
8
|
<xml_checksum>FFE04372</xml_checksum>
|
10
9
|
<class_name>TimeseriesObjectiveFunction</class_name>
|
11
10
|
<display_name>TimeSeries Objective Function</display_name>
|
@@ -17,43 +16,33 @@
|
|
17
16
|
<display_name>Path to CSV file for the metered data</display_name>
|
18
17
|
<description>Path to CSV file including file name.</description>
|
19
18
|
<type>String</type>
|
20
|
-
<units></units>
|
21
19
|
<required>true</required>
|
22
20
|
<model_dependent>false</model_dependent>
|
23
21
|
<default_value>../../../lib/resources/mtr.csv</default_value>
|
24
|
-
<min_value></min_value>
|
25
|
-
<max_value></max_value>
|
26
22
|
</argument>
|
27
23
|
<argument>
|
28
24
|
<name>csv_time_header</name>
|
29
25
|
<display_name>CSV Time Header</display_name>
|
30
26
|
<description>CSV Time Header Value. Used to determine the timestamp column in the CSV file</description>
|
31
27
|
<type>String</type>
|
32
|
-
<units></units>
|
33
28
|
<required>true</required>
|
34
29
|
<model_dependent>false</model_dependent>
|
35
30
|
<default_value>Date/Time</default_value>
|
36
|
-
<min_value></min_value>
|
37
|
-
<max_value></max_value>
|
38
31
|
</argument>
|
39
32
|
<argument>
|
40
33
|
<name>csv_var</name>
|
41
34
|
<display_name>CSV variable name</display_name>
|
42
35
|
<description>CSV variable name. Used to determine the variable column in the CSV file</description>
|
43
36
|
<type>String</type>
|
44
|
-
<units></units>
|
45
37
|
<required>true</required>
|
46
38
|
<model_dependent>false</model_dependent>
|
47
39
|
<default_value>Whole Building:Facility Total Electric Demand Power [W](TimeStep)</default_value>
|
48
|
-
<min_value></min_value>
|
49
|
-
<max_value></max_value>
|
50
40
|
</argument>
|
51
41
|
<argument>
|
52
42
|
<name>convert_data</name>
|
53
43
|
<display_name>Convert Units</display_name>
|
54
44
|
<description>Convert Units in Metered Data</description>
|
55
45
|
<type>Choice</type>
|
56
|
-
<units></units>
|
57
46
|
<required>true</required>
|
58
47
|
<model_dependent>false</model_dependent>
|
59
48
|
<default_value>None</default_value>
|
@@ -79,27 +68,21 @@
|
|
79
68
|
<display_name>None</display_name>
|
80
69
|
</choice>
|
81
70
|
</choices>
|
82
|
-
<min_value></min_value>
|
83
|
-
<max_value></max_value>
|
84
71
|
</argument>
|
85
72
|
<argument>
|
86
73
|
<name>csv_var_dn</name>
|
87
74
|
<display_name>CSV variable display name</display_name>
|
88
75
|
<description>CSV variable display name. Not yet Implemented</description>
|
89
76
|
<type>String</type>
|
90
|
-
<units></units>
|
91
77
|
<required>true</required>
|
92
78
|
<model_dependent>false</model_dependent>
|
93
79
|
<default_value></default_value>
|
94
|
-
<min_value></min_value>
|
95
|
-
<max_value></max_value>
|
96
80
|
</argument>
|
97
81
|
<argument>
|
98
82
|
<name>year</name>
|
99
83
|
<display_name>Year in csv data timestamp</display_name>
|
100
84
|
<description>Is the Year in the csv data timestamp => mm:dd:yy or mm:dd (true/false)</description>
|
101
85
|
<type>Boolean</type>
|
102
|
-
<units></units>
|
103
86
|
<required>true</required>
|
104
87
|
<model_dependent>false</model_dependent>
|
105
88
|
<default_value>true</default_value>
|
@@ -113,15 +96,12 @@
|
|
113
96
|
<display_name>false</display_name>
|
114
97
|
</choice>
|
115
98
|
</choices>
|
116
|
-
<min_value></min_value>
|
117
|
-
<max_value></max_value>
|
118
99
|
</argument>
|
119
100
|
<argument>
|
120
101
|
<name>seconds</name>
|
121
102
|
<display_name>Seconds in csv data timestamp</display_name>
|
122
103
|
<description>Is the Seconds in the csv data timestamp => hh:mm:ss or hh:mm (true/false)</description>
|
123
104
|
<type>Boolean</type>
|
124
|
-
<units></units>
|
125
105
|
<required>true</required>
|
126
106
|
<model_dependent>false</model_dependent>
|
127
107
|
<default_value>true</default_value>
|
@@ -135,42 +115,32 @@
|
|
135
115
|
<display_name>false</display_name>
|
136
116
|
</choice>
|
137
117
|
</choices>
|
138
|
-
<min_value></min_value>
|
139
|
-
<max_value></max_value>
|
140
118
|
</argument>
|
141
119
|
<argument>
|
142
120
|
<name>key_value</name>
|
143
121
|
<display_name>SQL key value</display_name>
|
144
122
|
<description>SQL key value for the SQL query to find the variable in the SQL file</description>
|
145
123
|
<type>String</type>
|
146
|
-
<units></units>
|
147
124
|
<required>true</required>
|
148
125
|
<model_dependent>false</model_dependent>
|
149
126
|
<default_value></default_value>
|
150
|
-
<min_value></min_value>
|
151
|
-
<max_value></max_value>
|
152
127
|
</argument>
|
153
128
|
<argument>
|
154
129
|
<name>timeseries_name</name>
|
155
130
|
<display_name>TimeSeries Name</display_name>
|
156
131
|
<description>TimeSeries Name for the SQL query to find the variable in the SQL file</description>
|
157
132
|
<type>String</type>
|
158
|
-
<units></units>
|
159
133
|
<required>true</required>
|
160
134
|
<model_dependent>false</model_dependent>
|
161
135
|
<default_value>Facility Total Electric Demand Power</default_value>
|
162
|
-
<min_value></min_value>
|
163
|
-
<max_value></max_value>
|
164
136
|
</argument>
|
165
137
|
<argument>
|
166
138
|
<name>reporting_frequency</name>
|
167
139
|
<display_name>Reporting Frequency</display_name>
|
168
140
|
<description>Reporting Frequency for SQL Query</description>
|
169
141
|
<type>Choice</type>
|
170
|
-
<units></units>
|
171
142
|
<required>true</required>
|
172
143
|
<model_dependent>false</model_dependent>
|
173
|
-
<default_value></default_value>
|
174
144
|
<choices>
|
175
145
|
<choice>
|
176
146
|
<value>Detailed</value>
|
@@ -197,51 +167,39 @@
|
|
197
167
|
<display_name>RunPeriod</display_name>
|
198
168
|
</choice>
|
199
169
|
</choices>
|
200
|
-
<min_value></min_value>
|
201
|
-
<max_value></max_value>
|
202
170
|
</argument>
|
203
171
|
<argument>
|
204
172
|
<name>environment_period</name>
|
205
173
|
<display_name>Environment Period</display_name>
|
206
174
|
<description>Environment Period for SQL query</description>
|
207
175
|
<type>String</type>
|
208
|
-
<units></units>
|
209
176
|
<required>true</required>
|
210
177
|
<model_dependent>false</model_dependent>
|
211
178
|
<default_value>RUN PERIOD 1</default_value>
|
212
|
-
<min_value></min_value>
|
213
|
-
<max_value></max_value>
|
214
179
|
</argument>
|
215
180
|
<argument>
|
216
181
|
<name>norm</name>
|
217
182
|
<display_name>Norm of the difference of csv and sql</display_name>
|
218
183
|
<description>Norm of the difference of csv and sql. 1 is absolute value. 2 is euclidean distance. 3 is raw difference.</description>
|
219
184
|
<type>Double</type>
|
220
|
-
<units></units>
|
221
185
|
<required>true</required>
|
222
186
|
<model_dependent>false</model_dependent>
|
223
187
|
<default_value>1</default_value>
|
224
|
-
<min_value></min_value>
|
225
|
-
<max_value></max_value>
|
226
188
|
</argument>
|
227
189
|
<argument>
|
228
190
|
<name>scale</name>
|
229
191
|
<display_name>Scale factor to apply to the difference</display_name>
|
230
192
|
<description>Scale factor to apply to the difference (1 is no scale)</description>
|
231
193
|
<type>Double</type>
|
232
|
-
<units></units>
|
233
194
|
<required>true</required>
|
234
195
|
<model_dependent>false</model_dependent>
|
235
196
|
<default_value>1</default_value>
|
236
|
-
<min_value></min_value>
|
237
|
-
<max_value></max_value>
|
238
197
|
</argument>
|
239
198
|
<argument>
|
240
199
|
<name>find_avail</name>
|
241
200
|
<display_name>Find Available data in the SQL file</display_name>
|
242
201
|
<description>Will RegisterInfo all the 'EnvPeriod', 'ReportingFrequencies', 'VariableNames', 'KeyValues' in the SQL file. Useful for debugging SQL issues.</description>
|
243
202
|
<type>Boolean</type>
|
244
|
-
<units></units>
|
245
203
|
<required>true</required>
|
246
204
|
<model_dependent>false</model_dependent>
|
247
205
|
<default_value>true</default_value>
|
@@ -255,15 +213,12 @@
|
|
255
213
|
<display_name>false</display_name>
|
256
214
|
</choice>
|
257
215
|
</choices>
|
258
|
-
<min_value></min_value>
|
259
|
-
<max_value></max_value>
|
260
216
|
</argument>
|
261
217
|
<argument>
|
262
218
|
<name>algorithm_download</name>
|
263
219
|
<display_name>algorithm_download</display_name>
|
264
220
|
<description>Make JSON data available for algorithm_download (true/false)</description>
|
265
221
|
<type>Boolean</type>
|
266
|
-
<units></units>
|
267
222
|
<required>true</required>
|
268
223
|
<model_dependent>false</model_dependent>
|
269
224
|
<default_value>false</default_value>
|
@@ -277,15 +232,12 @@
|
|
277
232
|
<display_name>false</display_name>
|
278
233
|
</choice>
|
279
234
|
</choices>
|
280
|
-
<min_value></min_value>
|
281
|
-
<max_value></max_value>
|
282
235
|
</argument>
|
283
236
|
<argument>
|
284
237
|
<name>plot_flag</name>
|
285
238
|
<display_name>plot_flag timeseries data</display_name>
|
286
239
|
<description>Create plot of timeseries data (true/false)</description>
|
287
240
|
<type>Boolean</type>
|
288
|
-
<units></units>
|
289
241
|
<required>true</required>
|
290
242
|
<model_dependent>false</model_dependent>
|
291
243
|
<default_value>true</default_value>
|
@@ -299,27 +251,21 @@
|
|
299
251
|
<display_name>false</display_name>
|
300
252
|
</choice>
|
301
253
|
</choices>
|
302
|
-
<min_value></min_value>
|
303
|
-
<max_value></max_value>
|
304
254
|
</argument>
|
305
255
|
<argument>
|
306
256
|
<name>plot_name</name>
|
307
257
|
<display_name>Plot name</display_name>
|
308
258
|
<description>Name to include in reporting file name.</description>
|
309
259
|
<type>String</type>
|
310
|
-
<units></units>
|
311
260
|
<required>true</required>
|
312
261
|
<model_dependent>false</model_dependent>
|
313
262
|
<default_value></default_value>
|
314
|
-
<min_value></min_value>
|
315
|
-
<max_value></max_value>
|
316
263
|
</argument>
|
317
264
|
<argument>
|
318
265
|
<name>verbose_messages</name>
|
319
266
|
<display_name>verbose_messages</display_name>
|
320
267
|
<description>verbose messages. Useful for debugging but MAJOR Performance Hit.</description>
|
321
268
|
<type>Boolean</type>
|
322
|
-
<units></units>
|
323
269
|
<required>true</required>
|
324
270
|
<model_dependent>false</model_dependent>
|
325
271
|
<default_value>false</default_value>
|
@@ -333,15 +279,12 @@
|
|
333
279
|
<display_name>false</display_name>
|
334
280
|
</choice>
|
335
281
|
</choices>
|
336
|
-
<min_value></min_value>
|
337
|
-
<max_value></max_value>
|
338
282
|
</argument>
|
339
283
|
<argument>
|
340
284
|
<name>warning_messages</name>
|
341
285
|
<display_name>warning_messages</display_name>
|
342
286
|
<description>Warn on missing data.</description>
|
343
287
|
<type>Boolean</type>
|
344
|
-
<units></units>
|
345
288
|
<required>true</required>
|
346
289
|
<model_dependent>false</model_dependent>
|
347
290
|
<default_value>true</default_value>
|
@@ -355,15 +298,12 @@
|
|
355
298
|
<display_name>false</display_name>
|
356
299
|
</choice>
|
357
300
|
</choices>
|
358
|
-
<min_value></min_value>
|
359
|
-
<max_value></max_value>
|
360
301
|
</argument>
|
361
302
|
<argument>
|
362
303
|
<name>add_first_zero_for_plots</name>
|
363
304
|
<display_name>add_first_zero_for_plots</display_name>
|
364
305
|
<description>Add a point of zero value to the plot at the beginning of the runperiod.</description>
|
365
306
|
<type>Boolean</type>
|
366
|
-
<units></units>
|
367
307
|
<required>true</required>
|
368
308
|
<model_dependent>false</model_dependent>
|
369
309
|
<default_value>false</default_value>
|
@@ -377,15 +317,12 @@
|
|
377
317
|
<display_name>false</display_name>
|
378
318
|
</choice>
|
379
319
|
</choices>
|
380
|
-
<min_value></min_value>
|
381
|
-
<max_value></max_value>
|
382
320
|
</argument>
|
383
321
|
<argument>
|
384
322
|
<name>add_last_zero_for_plots</name>
|
385
323
|
<display_name>add_last_zero_for_plots</display_name>
|
386
324
|
<description>Add a point of zero value to the plot at the end of the runperiod.</description>
|
387
325
|
<type>Boolean</type>
|
388
|
-
<units></units>
|
389
326
|
<required>true</required>
|
390
327
|
<model_dependent>false</model_dependent>
|
391
328
|
<default_value>false</default_value>
|
@@ -399,8 +336,6 @@
|
|
399
336
|
<display_name>false</display_name>
|
400
337
|
</choice>
|
401
338
|
</choices>
|
402
|
-
<min_value></min_value>
|
403
|
-
<max_value></max_value>
|
404
339
|
</argument>
|
405
340
|
</arguments>
|
406
341
|
<outputs>
|
@@ -408,45 +343,35 @@
|
|
408
343
|
<name>diff</name>
|
409
344
|
<display_name>diff</display_name>
|
410
345
|
<short_name>diff</short_name>
|
411
|
-
<description></description>
|
412
346
|
<type>Double</type>
|
413
|
-
<units></units>
|
414
347
|
<model_dependent>false</model_dependent>
|
415
348
|
</output>
|
416
349
|
<output>
|
417
350
|
<name>simdata</name>
|
418
351
|
<display_name>simdata</display_name>
|
419
352
|
<short_name>simdata</short_name>
|
420
|
-
<description></description>
|
421
353
|
<type>Double</type>
|
422
|
-
<units></units>
|
423
354
|
<model_dependent>false</model_dependent>
|
424
355
|
</output>
|
425
356
|
<output>
|
426
357
|
<name>csvdata</name>
|
427
358
|
<display_name>csvdata</display_name>
|
428
359
|
<short_name>csvdata</short_name>
|
429
|
-
<description></description>
|
430
360
|
<type>Double</type>
|
431
|
-
<units></units>
|
432
361
|
<model_dependent>false</model_dependent>
|
433
362
|
</output>
|
434
363
|
<output>
|
435
364
|
<name>cvrmse</name>
|
436
365
|
<display_name>cvrmse</display_name>
|
437
366
|
<short_name>cvrmse</short_name>
|
438
|
-
<description></description>
|
439
367
|
<type>Double</type>
|
440
|
-
<units></units>
|
441
368
|
<model_dependent>false</model_dependent>
|
442
369
|
</output>
|
443
370
|
<output>
|
444
371
|
<name>nmbe</name>
|
445
372
|
<display_name>nmbe</display_name>
|
446
373
|
<short_name>nmbe</short_name>
|
447
|
-
<description></description>
|
448
374
|
<type>Double</type>
|
449
|
-
<units></units>
|
450
375
|
<model_dependent>false</model_dependent>
|
451
376
|
</output>
|
452
377
|
</outputs>
|
@@ -478,12 +403,6 @@
|
|
478
403
|
<usage_type>readmeerb</usage_type>
|
479
404
|
<checksum>703C9964</checksum>
|
480
405
|
</file>
|
481
|
-
<file>
|
482
|
-
<filename>README.md</filename>
|
483
|
-
<filetype>md</filetype>
|
484
|
-
<usage_type>readme</usage_type>
|
485
|
-
<checksum>7DE1F2CF</checksum>
|
486
|
-
</file>
|
487
406
|
<file>
|
488
407
|
<filename>LICENSE.md</filename>
|
489
408
|
<filetype>md</filetype>
|
@@ -499,13 +418,19 @@
|
|
499
418
|
<filename>measure.rb</filename>
|
500
419
|
<filetype>rb</filetype>
|
501
420
|
<usage_type>script</usage_type>
|
502
|
-
<checksum>
|
421
|
+
<checksum>70C9D9FB</checksum>
|
422
|
+
</file>
|
423
|
+
<file>
|
424
|
+
<filename>README.md</filename>
|
425
|
+
<filetype>md</filetype>
|
426
|
+
<usage_type>readme</usage_type>
|
427
|
+
<checksum>3F176FE0</checksum>
|
503
428
|
</file>
|
504
429
|
<file>
|
505
430
|
<filename>report.html.erb</filename>
|
506
431
|
<filetype>erb</filetype>
|
507
432
|
<usage_type>resource</usage_type>
|
508
|
-
<checksum>
|
433
|
+
<checksum>4D36345D</checksum>
|
509
434
|
</file>
|
510
435
|
</files>
|
511
436
|
</measure>
|
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
###### (Automatically generated documentation)
|
4
4
|
|
5
|
-
#
|
5
|
+
# Timeseries Plot
|
6
6
|
|
7
7
|
## Description
|
8
|
-
|
8
|
+
Creates an interactive timeseries plot of selected variable.
|
9
9
|
|
10
10
|
## Modeler Description
|
11
|
-
|
11
|
+
NOTE: This will load and respond slowly in the OS app, especially if you select * on a variable with many possible keys or you select timestep data. Suggest you open it in a web browser like Chrome instead.
|
12
12
|
|
13
13
|
## Measure Type
|
14
|
-
|
14
|
+
ReportingMeasure
|
15
15
|
|
16
16
|
## Taxonomy
|
17
17
|
|
@@ -19,8 +19,38 @@ ModelMeasure
|
|
19
19
|
## Arguments
|
20
20
|
|
21
21
|
|
22
|
+
### Enter Variable Name.
|
23
|
+
Valid values can be found in the eplusout.rdd file after a simulation is run.
|
24
|
+
**Name:** variable_name,
|
25
|
+
**Type:** String,
|
26
|
+
**Units:** ,
|
27
|
+
**Required:** true,
|
28
|
+
**Model Dependent:** false
|
29
|
+
|
30
|
+
### Reporting Frequency.
|
31
|
+
|
32
|
+
**Name:** reporting_frequency,
|
33
|
+
**Type:** Choice,
|
34
|
+
**Units:** ,
|
35
|
+
**Required:** true,
|
36
|
+
**Model Dependent:** false
|
37
|
+
|
38
|
+
### Enter Key Name.
|
39
|
+
Enter * for all objects or the full name of a specific object to.
|
40
|
+
**Name:** key_value,
|
41
|
+
**Type:** String,
|
42
|
+
**Units:** ,
|
43
|
+
**Required:** true,
|
44
|
+
**Model Dependent:** false
|
45
|
+
|
46
|
+
### availableEnvPeriods
|
47
|
+
availableEnvPeriods
|
48
|
+
**Name:** env,
|
49
|
+
**Type:** String,
|
50
|
+
**Units:** ,
|
51
|
+
**Required:** true,
|
52
|
+
**Model Dependent:** false
|
22
53
|
|
23
54
|
|
24
|
-
This measure does not have any user arguments
|
25
55
|
|
26
56
|
|
@@ -56,7 +56,7 @@ class TimeseriesPlot < OpenStudio::Measure::ReportingMeasure
|
|
56
56
|
end
|
57
57
|
|
58
58
|
# define the arguments that the user will input
|
59
|
-
def arguments
|
59
|
+
def arguments(model = nil)
|
60
60
|
args = OpenStudio::Measure::OSArgumentVector.new
|
61
61
|
|
62
62
|
# make an argument for the variable name
|
@@ -1,11 +1,10 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
2
|
<measure>
|
3
3
|
<schema_version>3.0</schema_version>
|
4
|
-
<error>wrong number of arguments (given 1, expected 0)</error>
|
5
4
|
<name>timeseries_plot</name>
|
6
5
|
<uid>6804217d-4737-45f3-82df-b81393c29ce7</uid>
|
7
|
-
<version_id>
|
8
|
-
<version_modified>
|
6
|
+
<version_id>f98dc824-7042-4ea0-be6d-200a24b5757e</version_id>
|
7
|
+
<version_modified>20220223T012006Z</version_modified>
|
9
8
|
<xml_checksum>FFE04372</xml_checksum>
|
10
9
|
<class_name>TimeseriesPlot</class_name>
|
11
10
|
<display_name>Timeseries Plot</display_name>
|
@@ -17,19 +16,13 @@
|
|
17
16
|
<display_name>Enter Variable Name.</display_name>
|
18
17
|
<description>Valid values can be found in the eplusout.rdd file after a simulation is run.</description>
|
19
18
|
<type>String</type>
|
20
|
-
<units></units>
|
21
19
|
<required>true</required>
|
22
20
|
<model_dependent>false</model_dependent>
|
23
|
-
<default_value></default_value>
|
24
|
-
<min_value></min_value>
|
25
|
-
<max_value></max_value>
|
26
21
|
</argument>
|
27
22
|
<argument>
|
28
23
|
<name>reporting_frequency</name>
|
29
24
|
<display_name>Reporting Frequency.</display_name>
|
30
|
-
<description></description>
|
31
25
|
<type>Choice</type>
|
32
|
-
<units></units>
|
33
26
|
<required>true</required>
|
34
27
|
<model_dependent>false</model_dependent>
|
35
28
|
<default_value>Hourly</default_value>
|
@@ -63,32 +56,24 @@
|
|
63
56
|
<display_name>Runperiod</display_name>
|
64
57
|
</choice>
|
65
58
|
</choices>
|
66
|
-
<min_value></min_value>
|
67
|
-
<max_value></max_value>
|
68
59
|
</argument>
|
69
60
|
<argument>
|
70
61
|
<name>key_value</name>
|
71
62
|
<display_name>Enter Key Name.</display_name>
|
72
63
|
<description>Enter * for all objects or the full name of a specific object to.</description>
|
73
64
|
<type>String</type>
|
74
|
-
<units></units>
|
75
65
|
<required>true</required>
|
76
66
|
<model_dependent>false</model_dependent>
|
77
67
|
<default_value>*</default_value>
|
78
|
-
<min_value></min_value>
|
79
|
-
<max_value></max_value>
|
80
68
|
</argument>
|
81
69
|
<argument>
|
82
70
|
<name>env</name>
|
83
71
|
<display_name>availableEnvPeriods</display_name>
|
84
72
|
<description>availableEnvPeriods</description>
|
85
73
|
<type>String</type>
|
86
|
-
<units></units>
|
87
74
|
<required>true</required>
|
88
75
|
<model_dependent>false</model_dependent>
|
89
76
|
<default_value>RUN PERIOD 1</default_value>
|
90
|
-
<min_value></min_value>
|
91
|
-
<max_value></max_value>
|
92
77
|
</argument>
|
93
78
|
</arguments>
|
94
79
|
<outputs />
|
@@ -120,12 +105,6 @@
|
|
120
105
|
<usage_type>readmeerb</usage_type>
|
121
106
|
<checksum>703C9964</checksum>
|
122
107
|
</file>
|
123
|
-
<file>
|
124
|
-
<filename>README.md</filename>
|
125
|
-
<filetype>md</filetype>
|
126
|
-
<usage_type>readme</usage_type>
|
127
|
-
<checksum>0B68E96D</checksum>
|
128
|
-
</file>
|
129
108
|
<file>
|
130
109
|
<filename>LICENSE.md</filename>
|
131
110
|
<filetype>md</filetype>
|
@@ -141,13 +120,19 @@
|
|
141
120
|
<filename>measure.rb</filename>
|
142
121
|
<filetype>rb</filetype>
|
143
122
|
<usage_type>script</usage_type>
|
144
|
-
<checksum>
|
123
|
+
<checksum>210E98F2</checksum>
|
124
|
+
</file>
|
125
|
+
<file>
|
126
|
+
<filename>README.md</filename>
|
127
|
+
<filetype>md</filetype>
|
128
|
+
<usage_type>readme</usage_type>
|
129
|
+
<checksum>A3A04D6D</checksum>
|
145
130
|
</file>
|
146
131
|
<file>
|
147
132
|
<filename>report.html.erb</filename>
|
148
133
|
<filetype>erb</filetype>
|
149
134
|
<usage_type>resource</usage_type>
|
150
|
-
<checksum>
|
135
|
+
<checksum>279ABA14</checksum>
|
151
136
|
</file>
|
152
137
|
</files>
|
153
138
|
</measure>
|
@@ -74,12 +74,6 @@
|
|
74
74
|
</attribute>
|
75
75
|
</attributes>
|
76
76
|
<files>
|
77
|
-
<file>
|
78
|
-
<filename>.gitkeep</filename>
|
79
|
-
<filetype>gitkeep</filetype>
|
80
|
-
<usage_type>doc</usage_type>
|
81
|
-
<checksum>00000000</checksum>
|
82
|
-
</file>
|
83
77
|
<file>
|
84
78
|
<filename>example_parametric_model.osm</filename>
|
85
79
|
<filetype>osm</filetype>
|
@@ -118,6 +118,19 @@ This determine what fraction of occupancy be considered operating conditions. Th
|
|
118
118
|
|
119
119
|
|
120
120
|
|
121
|
+
### Hours of Operation Variable Method for Scheudle Profile Formula.
|
122
|
+
If dynamically generate parametric schedules from current ruleset scheudles is selected ,this argument is used to determine if the schedule profile formulas define time of points in a profile as a a specific delta from the star, middle, or end of the horus of operation, or if the delta is fractaionl percentate of the horus fo operation ro non-operation/vacant time.
|
123
|
+
**Name:** hoo_var_method,
|
124
|
+
**Type:** Choice,
|
125
|
+
**Units:** ,
|
126
|
+
**Required:** true,
|
127
|
+
**Model Dependent:** false
|
128
|
+
|
129
|
+
|
130
|
+
**Choice Display Names** ["fractional", "hours"]
|
131
|
+
|
132
|
+
|
133
|
+
|
121
134
|
### Use model hours of operation as target
|
122
135
|
The default behavior is for this to be false. This can not be used unless Dynamically generate parametric schedules from current ruleset schedules is set to false and if the schedules in the model already have parametric profiles. When changed to true all of the hours of operation start and duration values will be ignored as the bool to treat those values as relative or absolute. Instead the hours of operation schedules for the model will be used.
|
123
136
|
**Name:** target_hoo_from_model,
|
@@ -143,6 +143,16 @@ class ShiftHoursOfOperation < OpenStudio::Measure::ModelMeasure
|
|
143
143
|
fraction_of_daily_occ_range.setUnits('Hours')
|
144
144
|
args << fraction_of_daily_occ_range
|
145
145
|
|
146
|
+
# argument to choose hour of operation variable method
|
147
|
+
choices = OpenStudio::StringVector.new
|
148
|
+
choices << 'fractional'
|
149
|
+
choices << 'hours'
|
150
|
+
hoo_var_method = OpenStudio::Measure::OSArgument.makeChoiceArgument('hoo_var_method', choices, true)
|
151
|
+
hoo_var_method.setDisplayName('Hours of Operation Variable Method for Scheudle Profile Formula.')
|
152
|
+
hoo_var_method.setDescription('If dynamically generate parametric schedules from current ruleset scheudles is selected ,this argument is used to determine if the schedule profile formulas define time of points in a profile as a a specific delta from the star, middle, or end of the horus of operation, or if the delta is fractaionl percentate of the horus fo operation ro non-operation/vacant time.')
|
153
|
+
hoo_var_method.setDefaultValue('fractional')
|
154
|
+
args << hoo_var_method
|
155
|
+
|
146
156
|
# make an argument for target_hoo_from_model
|
147
157
|
# Should only be true when infer_parametric_schedules is false
|
148
158
|
target_hoo_from_model = OpenStudio::Measure::OSArgument.makeBoolArgument('target_hoo_from_model', true)
|
@@ -359,10 +369,13 @@ class ShiftHoursOfOperation < OpenStudio::Measure::ModelMeasure
|
|
359
369
|
end
|
360
370
|
else
|
361
371
|
new_hoo_start = hoo_start_dows
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
372
|
+
target_dur = hoo_dur_dows
|
373
|
+
if new_hoo_start + target_dur < 24.0
|
374
|
+
new_hoo_end = new_hoo_start + target_dur
|
375
|
+
elsif new_hoo_start + target_dur == 24.0
|
376
|
+
new_hoo_end = 0.0
|
377
|
+
else # greater than 24
|
378
|
+
new_hoo_end = new_hoo_start + target_dur - 24.0
|
366
379
|
end
|
367
380
|
end
|
368
381
|
|
@@ -443,11 +456,10 @@ class ShiftHoursOfOperation < OpenStudio::Measure::ModelMeasure
|
|
443
456
|
end
|
444
457
|
|
445
458
|
# model_setup_parametric_schedules
|
446
|
-
|
447
|
-
standard.model_setup_parametric_schedules(model, gather_data_only: false)
|
459
|
+
standard.model_setup_parametric_schedules(model, gather_data_only: false, hoo_var_method: args['hoo_var_method'])
|
448
460
|
end
|
449
461
|
|
450
|
-
# report
|
462
|
+
# report initial condition of model
|
451
463
|
hoo_summary_hash = hoo_summary(model, runner, standard)
|
452
464
|
if !hoo_summary_hash[:zero_hoo].empty?
|
453
465
|
runner.registerInitialCondition("Across the building the non-zero hours of operation range from #{hoo_summary_hash[:final_hoo_dur_range].min} hours to #{hoo_summary_hash[:final_hoo_dur_range].max} hours. Start of hours of operation range from #{hoo_summary_hash[:final_hoo_start_range].min} to #{hoo_summary_hash[:final_hoo_start_range].max}. One or more hours of operation schedules used contain a profile with 0 hours of operation.")
|
@@ -497,7 +509,7 @@ class ShiftHoursOfOperation < OpenStudio::Measure::ModelMeasure
|
|
497
509
|
runner.registerFinalCondition("Across the building the hours of operation range from #{hoo_summary_hash[:final_hoo_dur_range].min} hours to #{hoo_summary_hash[:final_hoo_dur_range].max} hours. Start of hours of operation range from #{hoo_summary_hash[:final_hoo_start_range].min} to #{hoo_summary_hash[:final_hoo_start_range].max}.")
|
498
510
|
end
|
499
511
|
|
500
|
-
# get log messages (if
|
512
|
+
# get log messages (if debug in setup is true this will fail for error)
|
501
513
|
OsLib_HelperMethods.log_msgs
|
502
514
|
|
503
515
|
# TODO: - adding hours of operation to a schedule that doesn't have them to start with, like a sunday, can be problematic
|