honeybee-openstudio 2.16.3 → 2.16.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66ae9758cba208e8afec207691b30cbb6a04609dae3bec493012d80c4cac90ea
4
- data.tar.gz: 2c1855d1205a09c4ec772ed387e4faaf70ed50d608502f1a239b41a12fe1d744
3
+ metadata.gz: e5c7f24a5cabc1503d8ca2554090bd86f18e0b8f220f76a409180eabf479dfe5
4
+ data.tar.gz: 9b8122f9901c3c1826fa3cbc28b9823237bee21c9d70b624daf0f45c2d02571b
5
5
  SHA512:
6
- metadata.gz: e777c64f22ee4219970724d5ab904361707eb8fdff93578bfb627dee782cc518c57a7bab963b04fdd92d72638be0897f742f2e05a5b658ef62537a880a1343e1
7
- data.tar.gz: 3c469b7d70a7c9ee1375b3781a92f13ec4f66b1a1af860dfa4b8f5839db9194281e61159f0b7e6de00b067f539eedbb052941e66d0f142e8bea08e34eeb20e7a
6
+ metadata.gz: 595a41baccd1114bb189c6b2b2f86177f6ddfd8a77ffcae98b3e8036261c7ddea21ab18cdfd999cc5161a6bcaa970f3efc4557fc349a37f672f90b538eedf8b1
7
+ data.tar.gz: 3fad7990f9b68bb7f8caddbfc318946aa62fe14a4fdfde0f9747c20a4d6ff162073b36d4539284757aab92252d5f004aa72a61b38d72ef53a7c160de580420d8
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'honeybee-openstudio'
7
- spec.version = '2.16.3'
7
+ spec.version = '2.16.4'
8
8
  spec.authors = ['Tanushree Charan', 'Dan Macumber', 'Chris Mackey', 'Mostapha Sadeghipour Roudsari']
9
9
  spec.email = ['tanushree.charan@nrel.gov', 'chris@ladybug.tools']
10
10
 
@@ -3,7 +3,7 @@
3
3
  "servers": [],
4
4
  "info": {
5
5
  "description": "Honeybee model schema.",
6
- "version": "1.42.2",
6
+ "version": "1.43.0",
7
7
  "title": "Honeybee Model Schema",
8
8
  "contact": {
9
9
  "name": "Ladybug Tools",
@@ -265,9 +265,9 @@
265
265
  "description": "<SchemaDefinition schemaRef=\"#/components/schemas/FCUEquipmentType\" />\n"
266
266
  },
267
267
  {
268
- "name": "fcuwithdoas_model",
269
- "x-displayName": "FCUwithDOAS",
270
- "description": "<SchemaDefinition schemaRef=\"#/components/schemas/FCUwithDOAS\" />\n"
268
+ "name": "fcuwithdoasabridged_model",
269
+ "x-displayName": "FCUwithDOASAbridged",
270
+ "description": "<SchemaDefinition schemaRef=\"#/components/schemas/FCUwithDOASAbridged\" />\n"
271
271
  },
272
272
  {
273
273
  "name": "fcuwithdoasequipmenttype_model",
@@ -755,9 +755,9 @@
755
755
  "description": "<SchemaDefinition schemaRef=\"#/components/schemas/VRFEquipmentType\" />\n"
756
756
  },
757
757
  {
758
- "name": "vrfwithdoas_model",
759
- "x-displayName": "VRFwithDOAS",
760
- "description": "<SchemaDefinition schemaRef=\"#/components/schemas/VRFwithDOAS\" />\n"
758
+ "name": "vrfwithdoasabridged_model",
759
+ "x-displayName": "VRFwithDOASAbridged",
760
+ "description": "<SchemaDefinition schemaRef=\"#/components/schemas/VRFwithDOASAbridged\" />\n"
761
761
  },
762
762
  {
763
763
  "name": "vrfwithdoasequipmenttype_model",
@@ -825,9 +825,9 @@
825
825
  "description": "<SchemaDefinition schemaRef=\"#/components/schemas/WSHPEquipmentType\" />\n"
826
826
  },
827
827
  {
828
- "name": "wshpwithdoas_model",
829
- "x-displayName": "WSHPwithDOAS",
830
- "description": "<SchemaDefinition schemaRef=\"#/components/schemas/WSHPwithDOAS\" />\n"
828
+ "name": "wshpwithdoasabridged_model",
829
+ "x-displayName": "WSHPwithDOASAbridged",
830
+ "description": "<SchemaDefinition schemaRef=\"#/components/schemas/WSHPwithDOASAbridged\" />\n"
831
831
  },
832
832
  {
833
833
  "name": "wshpwithdoasequipmenttype_model",
@@ -943,7 +943,7 @@
943
943
  "facetype_model",
944
944
  "fcu_model",
945
945
  "fcuequipmenttype_model",
946
- "fcuwithdoas_model",
946
+ "fcuwithdoasabridged_model",
947
947
  "fcuwithdoasequipmenttype_model",
948
948
  "floorconstructionset_model",
949
949
  "floorconstructionsetabridged_model",
@@ -1045,7 +1045,7 @@
1045
1045
  "void_model",
1046
1046
  "vrf_model",
1047
1047
  "vrfequipmenttype_model",
1048
- "vrfwithdoas_model",
1048
+ "vrfwithdoasabridged_model",
1049
1049
  "vrfwithdoasequipmenttype_model",
1050
1050
  "wallconstructionset_model",
1051
1051
  "wallconstructionsetabridged_model",
@@ -1059,7 +1059,7 @@
1059
1059
  "windowconstructionshadeabridged_model",
1060
1060
  "wshp_model",
1061
1061
  "wshpequipmenttype_model",
1062
- "wshpwithdoas_model",
1062
+ "wshpwithdoasabridged_model",
1063
1063
  "wshpwithdoasequipmenttype_model"
1064
1064
  ]
1065
1065
  }
@@ -6069,10 +6069,13 @@
6069
6069
  "title": "AllAirEconomizerType",
6070
6070
  "description": "An enumeration.",
6071
6071
  "enum": [
6072
- "Inferred",
6073
6072
  "NoEconomizer",
6074
6073
  "DifferentialDryBulb",
6075
- "DifferentialEnthalpy"
6074
+ "DifferentialEnthalpy",
6075
+ "DifferentialDryBulbAndEnthalpy",
6076
+ "FixedDryBulb",
6077
+ "FixedEnthalpy",
6078
+ "ElectronicEnthalpy"
6076
6079
  ],
6077
6080
  "type": "string"
6078
6081
  },
@@ -6125,8 +6128,8 @@
6125
6128
  ]
6126
6129
  },
6127
6130
  "economizer_type": {
6128
- "description": "Text to indicate the type of air-side economizer used on the system (from the AllAirEconomizerType enumeration). If Inferred, the economizer will be set to whatever is recommended for the given vintage.",
6129
- "default": "Inferred",
6131
+ "description": "Text to indicate the type of air-side economizer used on the system (from the AllAirEconomizerType enumeration).",
6132
+ "default": "NoEconomizer",
6130
6133
  "allOf": [
6131
6134
  {
6132
6135
  "$ref": "#/components/schemas/AllAirEconomizerType"
@@ -6135,39 +6138,27 @@
6135
6138
  },
6136
6139
  "sensible_heat_recovery": {
6137
6140
  "title": "Sensible Heat Recovery",
6138
- "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6139
- "default": {
6140
- "type": "Autosize"
6141
- },
6142
- "anyOf": [
6143
- {
6144
- "$ref": "#/components/schemas/Autosize"
6145
- },
6146
- {
6147
- "type": "number",
6148
- "minimum": 0,
6149
- "maximum": 1,
6150
- "format": "double"
6151
- }
6152
- ]
6141
+ "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system.",
6142
+ "default": 0,
6143
+ "minimum": 0,
6144
+ "maximum": 1,
6145
+ "type": "number",
6146
+ "format": "double"
6153
6147
  },
6154
6148
  "latent_heat_recovery": {
6155
6149
  "title": "Latent Heat Recovery",
6156
- "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6157
- "default": {
6158
- "type": "Autosize"
6159
- },
6160
- "anyOf": [
6161
- {
6162
- "$ref": "#/components/schemas/Autosize"
6163
- },
6164
- {
6165
- "type": "number",
6166
- "minimum": 0,
6167
- "maximum": 1,
6168
- "format": "double"
6169
- }
6170
- ]
6150
+ "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system.",
6151
+ "default": 0,
6152
+ "minimum": 0,
6153
+ "maximum": 1,
6154
+ "type": "number",
6155
+ "format": "double"
6156
+ },
6157
+ "demand_controlled_ventilation": {
6158
+ "title": "Demand Controlled Ventilation",
6159
+ "description": "Boolean to note whether demand controlled ventilation should be used on the system, which will vary the amount of ventilation air according to the occupancy schedule of the Rooms.",
6160
+ "default": false,
6161
+ "type": "boolean"
6171
6162
  },
6172
6163
  "type": {
6173
6164
  "title": "Type",
@@ -6230,8 +6221,8 @@
6230
6221
  ]
6231
6222
  },
6232
6223
  "economizer_type": {
6233
- "description": "Text to indicate the type of air-side economizer used on the system (from the AllAirEconomizerType enumeration). If Inferred, the economizer will be set to whatever is recommended for the given vintage.",
6234
- "default": "Inferred",
6224
+ "description": "Text to indicate the type of air-side economizer used on the system (from the AllAirEconomizerType enumeration).",
6225
+ "default": "NoEconomizer",
6235
6226
  "allOf": [
6236
6227
  {
6237
6228
  "$ref": "#/components/schemas/AllAirEconomizerType"
@@ -6240,39 +6231,27 @@
6240
6231
  },
6241
6232
  "sensible_heat_recovery": {
6242
6233
  "title": "Sensible Heat Recovery",
6243
- "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6244
- "default": {
6245
- "type": "Autosize"
6246
- },
6247
- "anyOf": [
6248
- {
6249
- "$ref": "#/components/schemas/Autosize"
6250
- },
6251
- {
6252
- "type": "number",
6253
- "minimum": 0,
6254
- "maximum": 1,
6255
- "format": "double"
6256
- }
6257
- ]
6234
+ "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system.",
6235
+ "default": 0,
6236
+ "minimum": 0,
6237
+ "maximum": 1,
6238
+ "type": "number",
6239
+ "format": "double"
6258
6240
  },
6259
6241
  "latent_heat_recovery": {
6260
6242
  "title": "Latent Heat Recovery",
6261
- "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6262
- "default": {
6263
- "type": "Autosize"
6264
- },
6265
- "anyOf": [
6266
- {
6267
- "$ref": "#/components/schemas/Autosize"
6268
- },
6269
- {
6270
- "type": "number",
6271
- "minimum": 0,
6272
- "maximum": 1,
6273
- "format": "double"
6274
- }
6275
- ]
6243
+ "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system.",
6244
+ "default": 0,
6245
+ "minimum": 0,
6246
+ "maximum": 1,
6247
+ "type": "number",
6248
+ "format": "double"
6249
+ },
6250
+ "demand_controlled_ventilation": {
6251
+ "title": "Demand Controlled Ventilation",
6252
+ "description": "Boolean to note whether demand controlled ventilation should be used on the system, which will vary the amount of ventilation air according to the occupancy schedule of the Rooms.",
6253
+ "default": false,
6254
+ "type": "boolean"
6276
6255
  },
6277
6256
  "type": {
6278
6257
  "title": "Type",
@@ -6350,8 +6329,8 @@
6350
6329
  ]
6351
6330
  },
6352
6331
  "economizer_type": {
6353
- "description": "Text to indicate the type of air-side economizer used on the system (from the AllAirEconomizerType enumeration). If Inferred, the economizer will be set to whatever is recommended for the given vintage.",
6354
- "default": "Inferred",
6332
+ "description": "Text to indicate the type of air-side economizer used on the system (from the AllAirEconomizerType enumeration).",
6333
+ "default": "NoEconomizer",
6355
6334
  "allOf": [
6356
6335
  {
6357
6336
  "$ref": "#/components/schemas/AllAirEconomizerType"
@@ -6360,39 +6339,27 @@
6360
6339
  },
6361
6340
  "sensible_heat_recovery": {
6362
6341
  "title": "Sensible Heat Recovery",
6363
- "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6364
- "default": {
6365
- "type": "Autosize"
6366
- },
6367
- "anyOf": [
6368
- {
6369
- "$ref": "#/components/schemas/Autosize"
6370
- },
6371
- {
6372
- "type": "number",
6373
- "minimum": 0,
6374
- "maximum": 1,
6375
- "format": "double"
6376
- }
6377
- ]
6342
+ "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system.",
6343
+ "default": 0,
6344
+ "minimum": 0,
6345
+ "maximum": 1,
6346
+ "type": "number",
6347
+ "format": "double"
6378
6348
  },
6379
6349
  "latent_heat_recovery": {
6380
6350
  "title": "Latent Heat Recovery",
6381
- "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6382
- "default": {
6383
- "type": "Autosize"
6384
- },
6385
- "anyOf": [
6386
- {
6387
- "$ref": "#/components/schemas/Autosize"
6388
- },
6389
- {
6390
- "type": "number",
6391
- "minimum": 0,
6392
- "maximum": 1,
6393
- "format": "double"
6394
- }
6395
- ]
6351
+ "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system.",
6352
+ "default": 0,
6353
+ "minimum": 0,
6354
+ "maximum": 1,
6355
+ "type": "number",
6356
+ "format": "double"
6357
+ },
6358
+ "demand_controlled_ventilation": {
6359
+ "title": "Demand Controlled Ventilation",
6360
+ "description": "Boolean to note whether demand controlled ventilation should be used on the system, which will vary the amount of ventilation air according to the occupancy schedule of the Rooms.",
6361
+ "default": false,
6362
+ "type": "boolean"
6396
6363
  },
6397
6364
  "type": {
6398
6365
  "title": "Type",
@@ -6460,51 +6427,6 @@
6460
6427
  }
6461
6428
  ]
6462
6429
  },
6463
- "economizer_type": {
6464
- "description": "Text to indicate the type of air-side economizer used on the system (from the AllAirEconomizerType enumeration). If Inferred, the economizer will be set to whatever is recommended for the given vintage.",
6465
- "default": "Inferred",
6466
- "allOf": [
6467
- {
6468
- "$ref": "#/components/schemas/AllAirEconomizerType"
6469
- }
6470
- ]
6471
- },
6472
- "sensible_heat_recovery": {
6473
- "title": "Sensible Heat Recovery",
6474
- "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6475
- "default": {
6476
- "type": "Autosize"
6477
- },
6478
- "anyOf": [
6479
- {
6480
- "$ref": "#/components/schemas/Autosize"
6481
- },
6482
- {
6483
- "type": "number",
6484
- "minimum": 0,
6485
- "maximum": 1,
6486
- "format": "double"
6487
- }
6488
- ]
6489
- },
6490
- "latent_heat_recovery": {
6491
- "title": "Latent Heat Recovery",
6492
- "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6493
- "default": {
6494
- "type": "Autosize"
6495
- },
6496
- "anyOf": [
6497
- {
6498
- "$ref": "#/components/schemas/Autosize"
6499
- },
6500
- {
6501
- "type": "number",
6502
- "minimum": 0,
6503
- "maximum": 1,
6504
- "format": "double"
6505
- }
6506
- ]
6507
- },
6508
6430
  "type": {
6509
6431
  "title": "Type",
6510
6432
  "default": "PTAC",
@@ -6562,8 +6484,8 @@
6562
6484
  ]
6563
6485
  },
6564
6486
  "economizer_type": {
6565
- "description": "Text to indicate the type of air-side economizer used on the system (from the AllAirEconomizerType enumeration). If Inferred, the economizer will be set to whatever is recommended for the given vintage.",
6566
- "default": "Inferred",
6487
+ "description": "Text to indicate the type of air-side economizer used on the system (from the AllAirEconomizerType enumeration).",
6488
+ "default": "NoEconomizer",
6567
6489
  "allOf": [
6568
6490
  {
6569
6491
  "$ref": "#/components/schemas/AllAirEconomizerType"
@@ -6572,39 +6494,27 @@
6572
6494
  },
6573
6495
  "sensible_heat_recovery": {
6574
6496
  "title": "Sensible Heat Recovery",
6575
- "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6576
- "default": {
6577
- "type": "Autosize"
6578
- },
6579
- "anyOf": [
6580
- {
6581
- "$ref": "#/components/schemas/Autosize"
6582
- },
6583
- {
6584
- "type": "number",
6585
- "minimum": 0,
6586
- "maximum": 1,
6587
- "format": "double"
6588
- }
6589
- ]
6497
+ "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system.",
6498
+ "default": 0,
6499
+ "minimum": 0,
6500
+ "maximum": 1,
6501
+ "type": "number",
6502
+ "format": "double"
6590
6503
  },
6591
6504
  "latent_heat_recovery": {
6592
6505
  "title": "Latent Heat Recovery",
6593
- "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6594
- "default": {
6595
- "type": "Autosize"
6596
- },
6597
- "anyOf": [
6598
- {
6599
- "$ref": "#/components/schemas/Autosize"
6600
- },
6601
- {
6602
- "type": "number",
6603
- "minimum": 0,
6604
- "maximum": 1,
6605
- "format": "double"
6606
- }
6607
- ]
6506
+ "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system.",
6507
+ "default": 0,
6508
+ "minimum": 0,
6509
+ "maximum": 1,
6510
+ "type": "number",
6511
+ "format": "double"
6512
+ },
6513
+ "demand_controlled_ventilation": {
6514
+ "title": "Demand Controlled Ventilation",
6515
+ "description": "Boolean to note whether demand controlled ventilation should be used on the system, which will vary the amount of ventilation air according to the occupancy schedule of the Rooms.",
6516
+ "default": false,
6517
+ "type": "boolean"
6608
6518
  },
6609
6519
  "type": {
6610
6520
  "title": "Type",
@@ -6653,8 +6563,8 @@
6653
6563
  ],
6654
6564
  "type": "string"
6655
6565
  },
6656
- "FCUwithDOAS": {
6657
- "title": "FCUwithDOAS",
6566
+ "FCUwithDOASAbridged": {
6567
+ "title": "FCUwithDOASAbridged",
6658
6568
  "description": "Fan Coil Unit (FCU) with DOAS HVAC system.",
6659
6569
  "type": "object",
6660
6570
  "properties": {
@@ -6681,44 +6591,39 @@
6681
6591
  },
6682
6592
  "sensible_heat_recovery": {
6683
6593
  "title": "Sensible Heat Recovery",
6684
- "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6685
- "default": {
6686
- "type": "Autosize"
6687
- },
6688
- "anyOf": [
6689
- {
6690
- "$ref": "#/components/schemas/Autosize"
6691
- },
6692
- {
6693
- "type": "number",
6694
- "minimum": 0,
6695
- "maximum": 1,
6696
- "format": "double"
6697
- }
6698
- ]
6594
+ "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system.",
6595
+ "default": 0,
6596
+ "minimum": 0,
6597
+ "maximum": 1,
6598
+ "type": "number",
6599
+ "format": "double"
6699
6600
  },
6700
6601
  "latent_heat_recovery": {
6701
6602
  "title": "Latent Heat Recovery",
6702
- "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6703
- "default": {
6704
- "type": "Autosize"
6705
- },
6706
- "anyOf": [
6707
- {
6708
- "$ref": "#/components/schemas/Autosize"
6709
- },
6710
- {
6711
- "type": "number",
6712
- "minimum": 0,
6713
- "maximum": 1,
6714
- "format": "double"
6715
- }
6716
- ]
6603
+ "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system.",
6604
+ "default": 0,
6605
+ "minimum": 0,
6606
+ "maximum": 1,
6607
+ "type": "number",
6608
+ "format": "double"
6609
+ },
6610
+ "demand_controlled_ventilation": {
6611
+ "title": "Demand Controlled Ventilation",
6612
+ "description": "Boolean to note whether demand controlled ventilation should be used on the system, which will vary the amount of ventilation air according to the occupancy schedule of the Rooms.",
6613
+ "default": false,
6614
+ "type": "boolean"
6615
+ },
6616
+ "doas_availability_schedule": {
6617
+ "title": "Doas Availability Schedule",
6618
+ "description": "An optional On/Off discrete schedule to set when the dedicated outdoor air system (DOAS) shuts off. This will not only prevent any outdoor air from flowing thorough the system but will also shut off the fans, which can result in more energy savings when spaces served by the DOAS are completely unoccupied. If None, the DOAS will be always on.",
6619
+ "maxLength": 100,
6620
+ "minLength": 1,
6621
+ "type": "string"
6717
6622
  },
6718
6623
  "type": {
6719
6624
  "title": "Type",
6720
- "default": "FCUwithDOAS",
6721
- "pattern": "^FCUwithDOAS$",
6625
+ "default": "FCUwithDOASAbridged",
6626
+ "pattern": "^FCUwithDOASAbridged$",
6722
6627
  "type": "string",
6723
6628
  "readOnly": true
6724
6629
  },
@@ -6748,8 +6653,8 @@
6748
6653
  ],
6749
6654
  "type": "string"
6750
6655
  },
6751
- "WSHPwithDOAS": {
6752
- "title": "WSHPwithDOAS",
6656
+ "WSHPwithDOASAbridged": {
6657
+ "title": "WSHPwithDOASAbridged",
6753
6658
  "description": "Water Source Heat Pump (WSHP) with DOAS HVAC system.",
6754
6659
  "type": "object",
6755
6660
  "properties": {
@@ -6776,44 +6681,39 @@
6776
6681
  },
6777
6682
  "sensible_heat_recovery": {
6778
6683
  "title": "Sensible Heat Recovery",
6779
- "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6780
- "default": {
6781
- "type": "Autosize"
6782
- },
6783
- "anyOf": [
6784
- {
6785
- "$ref": "#/components/schemas/Autosize"
6786
- },
6787
- {
6788
- "type": "number",
6789
- "minimum": 0,
6790
- "maximum": 1,
6791
- "format": "double"
6792
- }
6793
- ]
6684
+ "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system.",
6685
+ "default": 0,
6686
+ "minimum": 0,
6687
+ "maximum": 1,
6688
+ "type": "number",
6689
+ "format": "double"
6794
6690
  },
6795
6691
  "latent_heat_recovery": {
6796
6692
  "title": "Latent Heat Recovery",
6797
- "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6798
- "default": {
6799
- "type": "Autosize"
6800
- },
6801
- "anyOf": [
6802
- {
6803
- "$ref": "#/components/schemas/Autosize"
6804
- },
6805
- {
6806
- "type": "number",
6807
- "minimum": 0,
6808
- "maximum": 1,
6809
- "format": "double"
6810
- }
6811
- ]
6693
+ "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system.",
6694
+ "default": 0,
6695
+ "minimum": 0,
6696
+ "maximum": 1,
6697
+ "type": "number",
6698
+ "format": "double"
6699
+ },
6700
+ "demand_controlled_ventilation": {
6701
+ "title": "Demand Controlled Ventilation",
6702
+ "description": "Boolean to note whether demand controlled ventilation should be used on the system, which will vary the amount of ventilation air according to the occupancy schedule of the Rooms.",
6703
+ "default": false,
6704
+ "type": "boolean"
6705
+ },
6706
+ "doas_availability_schedule": {
6707
+ "title": "Doas Availability Schedule",
6708
+ "description": "An optional On/Off discrete schedule to set when the dedicated outdoor air system (DOAS) shuts off. This will not only prevent any outdoor air from flowing thorough the system but will also shut off the fans, which can result in more energy savings when spaces served by the DOAS are completely unoccupied. If None, the DOAS will be always on.",
6709
+ "maxLength": 100,
6710
+ "minLength": 1,
6711
+ "type": "string"
6812
6712
  },
6813
6713
  "type": {
6814
6714
  "title": "Type",
6815
- "default": "WSHPwithDOAS",
6816
- "pattern": "^WSHPwithDOAS$",
6715
+ "default": "WSHPwithDOASAbridged",
6716
+ "pattern": "^WSHPwithDOASAbridged$",
6817
6717
  "type": "string",
6818
6718
  "readOnly": true
6819
6719
  },
@@ -6840,8 +6740,8 @@
6840
6740
  ],
6841
6741
  "type": "string"
6842
6742
  },
6843
- "VRFwithDOAS": {
6844
- "title": "VRFwithDOAS",
6743
+ "VRFwithDOASAbridged": {
6744
+ "title": "VRFwithDOASAbridged",
6845
6745
  "description": "Variable Refrigerant Flow (VRF) with DOAS HVAC system.",
6846
6746
  "type": "object",
6847
6747
  "properties": {
@@ -6868,44 +6768,39 @@
6868
6768
  },
6869
6769
  "sensible_heat_recovery": {
6870
6770
  "title": "Sensible Heat Recovery",
6871
- "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6872
- "default": {
6873
- "type": "Autosize"
6874
- },
6875
- "anyOf": [
6876
- {
6877
- "$ref": "#/components/schemas/Autosize"
6878
- },
6879
- {
6880
- "type": "number",
6881
- "minimum": 0,
6882
- "maximum": 1,
6883
- "format": "double"
6884
- }
6885
- ]
6771
+ "description": "A number between 0 and 1 for the effectiveness of sensible heat recovery within the system.",
6772
+ "default": 0,
6773
+ "minimum": 0,
6774
+ "maximum": 1,
6775
+ "type": "number",
6776
+ "format": "double"
6886
6777
  },
6887
6778
  "latent_heat_recovery": {
6888
6779
  "title": "Latent Heat Recovery",
6889
- "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage.",
6890
- "default": {
6891
- "type": "Autosize"
6892
- },
6893
- "anyOf": [
6894
- {
6895
- "$ref": "#/components/schemas/Autosize"
6896
- },
6897
- {
6898
- "type": "number",
6899
- "minimum": 0,
6900
- "maximum": 1,
6901
- "format": "double"
6902
- }
6903
- ]
6780
+ "description": "A number between 0 and 1 for the effectiveness of latent heat recovery within the system.",
6781
+ "default": 0,
6782
+ "minimum": 0,
6783
+ "maximum": 1,
6784
+ "type": "number",
6785
+ "format": "double"
6786
+ },
6787
+ "demand_controlled_ventilation": {
6788
+ "title": "Demand Controlled Ventilation",
6789
+ "description": "Boolean to note whether demand controlled ventilation should be used on the system, which will vary the amount of ventilation air according to the occupancy schedule of the Rooms.",
6790
+ "default": false,
6791
+ "type": "boolean"
6792
+ },
6793
+ "doas_availability_schedule": {
6794
+ "title": "Doas Availability Schedule",
6795
+ "description": "An optional On/Off discrete schedule to set when the dedicated outdoor air system (DOAS) shuts off. This will not only prevent any outdoor air from flowing thorough the system but will also shut off the fans, which can result in more energy savings when spaces served by the DOAS are completely unoccupied. If None, the DOAS will be always on.",
6796
+ "maxLength": 100,
6797
+ "minLength": 1,
6798
+ "type": "string"
6904
6799
  },
6905
6800
  "type": {
6906
6801
  "title": "Type",
6907
- "default": "VRFwithDOAS",
6908
- "pattern": "^VRFwithDOAS$",
6802
+ "default": "VRFwithDOASAbridged",
6803
+ "pattern": "^VRFwithDOASAbridged$",
6909
6804
  "type": "string",
6910
6805
  "readOnly": true
6911
6806
  },
@@ -8641,13 +8536,13 @@
8641
8536
  "$ref": "#/components/schemas/ForcedAirFurnace"
8642
8537
  },
8643
8538
  {
8644
- "$ref": "#/components/schemas/FCUwithDOAS"
8539
+ "$ref": "#/components/schemas/FCUwithDOASAbridged"
8645
8540
  },
8646
8541
  {
8647
- "$ref": "#/components/schemas/WSHPwithDOAS"
8542
+ "$ref": "#/components/schemas/WSHPwithDOASAbridged"
8648
8543
  },
8649
8544
  {
8650
- "$ref": "#/components/schemas/VRFwithDOAS"
8545
+ "$ref": "#/components/schemas/VRFwithDOASAbridged"
8651
8546
  },
8652
8547
  {
8653
8548
  "$ref": "#/components/schemas/FCU"
@@ -11470,7 +11365,7 @@
11470
11365
  "version": {
11471
11366
  "title": "Version",
11472
11367
  "description": "Text string for the current version of the schema.",
11473
- "default": "1.42.2",
11368
+ "default": "1.43.0",
11474
11369
  "pattern": "([0-9]+)\\.([0-9]+)\\.([0-9]+)",
11475
11370
  "type": "string",
11476
11371
  "readOnly": true
@@ -36,7 +36,7 @@ module Honeybee
36
36
  attr_reader :errors, :warnings
37
37
 
38
38
  @@all_air_types = ['VAV', 'PVAV', 'PSZ', 'PTAC', 'ForcedAirFurnace']
39
- @@doas_types = ['FCUwithDOAS', 'WSHPwithDOAS', 'VRFwithDOAS']
39
+ @@doas_types = ['FCUwithDOASAbridged', 'WSHPwithDOASAbridged', 'VRFwithDOASAbridged']
40
40
  @@heat_cool_types = ['FCU', 'WSHP', 'VRF', 'Baseboard', 'EvaporativeCooler',
41
41
  'Residential', 'WindowAC', 'GasUnitHeater']
42
42
  @@types = @@all_air_types + @@doas_types + @@heat_cool_types
@@ -91,6 +91,7 @@ module Honeybee
91
91
  os_air_loop = os_air_loop_opt.get
92
92
  loop_name = os_air_loop.name
93
93
  unless loop_name.empty?
94
+ # set the name of the air loop to align with the HVAC name
94
95
  if @hash[:display_name]
95
96
  clean_name = @hash[:display_name].to_s.gsub(/[^.A-Za-z0-9_-] /, " ")
96
97
  os_air_loop.setName(clean_name + ' - ' + loop_name.get)
@@ -101,17 +102,17 @@ module Honeybee
101
102
  end
102
103
 
103
104
  # assign the economizer type if there's an air loop and the economizer is specified
104
- if @hash[:economizer_type] && @hash[:economizer_type] != 'Inferred' && os_air_loop
105
+ if @hash[:economizer_type] && os_air_loop
105
106
  oasys = os_air_loop.airLoopHVACOutdoorAirSystem
106
107
  unless oasys.empty?
107
- os_oasys = oasys.get
108
- oactrl = os_oasys.getControllerOutdoorAir
109
- oactrl.setEconomizerControlType(@hash[:economizer_type])
108
+ os_oasys = oasys.get
109
+ oactrl = os_oasys.getControllerOutdoorAir
110
+ oactrl.setEconomizerControlType(@hash[:economizer_type])
110
111
  end
111
112
  end
112
113
 
113
114
  # set the sensible heat recovery if there's an air loop and the heat recovery is specified
114
- if @hash[:sensible_heat_recovery] && @hash[:sensible_heat_recovery] != {:type => 'Autosize'} && os_air_loop
115
+ if @hash[:sensible_heat_recovery] && @hash[:sensible_heat_recovery] != 0 && os_air_loop
115
116
  erv = get_existing_erv(os_air_loop)
116
117
  unless erv
117
118
  erv = create_erv(openstudio_model, os_air_loop)
@@ -124,7 +125,7 @@ module Honeybee
124
125
  end
125
126
 
126
127
  # set the latent heat recovery if there's an air loop and the heat recovery is specified
127
- if @hash[:latent_heat_recovery] && @hash[:latent_heat_recovery] != {:type => 'Autosize'} && os_air_loop
128
+ if @hash[:latent_heat_recovery] && @hash[:latent_heat_recovery] != 0 && os_air_loop
128
129
  erv = get_existing_erv(os_air_loop)
129
130
  unless erv
130
131
  erv = create_erv(openstudio_model, os_air_loop)
@@ -136,6 +137,60 @@ module Honeybee
136
137
  erv.setLatentEffectivenessat75HeatingAirFlow(@hash[:latent_heat_recovery])
137
138
  end
138
139
 
140
+ # assign demand controlled ventilation if there's an air loop
141
+ if @hash[:demand_controlled_ventilation] && os_air_loop
142
+ oasys = os_air_loop.airLoopHVACOutdoorAirSystem
143
+ unless oasys.empty?
144
+ os_oasys = oasys.get
145
+ oactrl = os_oasys.getControllerOutdoorAir
146
+ vent_ctrl = oactrl.controllerMechanicalVentilation
147
+ vent_ctrl.setDemandControlledVentilationNoFail(true)
148
+ oactrl.resetMinimumFractionofOutdoorAirSchedule
149
+ end
150
+ end
151
+
152
+ # assign the DOAS availability schedule if there's an air loop and it is specified
153
+ if @hash[:doas_availability_schedule] && os_air_loop
154
+ schedule = openstudio_model.getScheduleByName(@hash[:doas_availability_schedule])
155
+ unless schedule.empty?
156
+ avail_sch = schedule.get
157
+ os_air_loop.setAvailabilitySchedule(avail_sch)
158
+ end
159
+ end
160
+
161
+ # set the outdoor air controller to respect room-level ventilation schedules if they exist
162
+ if os_air_loop
163
+ oasys = os_air_loop.airLoopHVACOutdoorAirSystem
164
+ unless oasys.empty?
165
+ os_oasys = oasys.get
166
+ oactrl = os_oasys.getControllerOutdoorAir
167
+ oa_sch, oa_sch_name = nil, nil
168
+ zones.each do |zone|
169
+ oa_spec = zone.spaces[0].designSpecificationOutdoorAir
170
+ unless oa_spec.empty?
171
+ oa_spec = oa_spec.get
172
+ space_oa_sch = oa_spec.outdoorAirFlowRateFractionSchedule
173
+ unless space_oa_sch.empty?
174
+ space_oa_sch = space_oa_sch.get
175
+ space_oa_sch_name = space_oa_sch.name
176
+ unless space_oa_sch_name.empty?
177
+ space_oa_sch_name = space_oa_sch_name.get
178
+ if oa_sch_name.nil? || space_oa_sch_name == oa_sch_name
179
+ oa_sch, oa_sch_name = space_oa_sch, space_oa_sch_name
180
+ else
181
+ oa_sch = nil
182
+ end
183
+ end
184
+ end
185
+ end
186
+ end
187
+ if oa_sch
188
+ oactrl.resetMinimumFractionofOutdoorAirSchedule
189
+ oactrl.setMinimumOutdoorAirSchedule(oa_sch)
190
+ end
191
+ end
192
+ end
193
+
139
194
  # if the systems are PTAC and there is ventilation, ensure the system includes it
140
195
  if equipment_type.include?('PTAC') || equipment_type.include?('PTHP')
141
196
  always_on = openstudio_model.getScheduleByName('Always On').get
@@ -172,6 +227,20 @@ module Honeybee
172
227
  end
173
228
  end
174
229
 
230
+ # assign an electric humidifier if there's an air loop and the zones have a humidistat
231
+ if os_air_loop
232
+ humidistat_exists = false
233
+ zones.each do |zone|
234
+ h_stat = zone.zoneControlHumidistat
235
+ unless h_stat.empty?
236
+ humidistat_exists = true
237
+ end
238
+ end
239
+ if humidistat_exists
240
+ humidifier = create_humidifier(openstudio_model, os_air_loop)
241
+ end
242
+ end
243
+
175
244
  # set all plants to non-coincident sizing to avoid simualtion control issues on design days
176
245
  openstudio_model.getPlantLoops.each do |loop|
177
246
  sizing = loop.sizingPlant
@@ -217,5 +286,20 @@ module Honeybee
217
286
  heat_ex
218
287
  end
219
288
 
289
+ def create_humidifier(model, os_air_loop)
290
+ # create an electric humidifier
291
+ humidifier = OpenStudio::Model::HumidifierSteamElectric.new(model)
292
+ humidifier.setName(@hash[:identifier] + '_Humidifier Unit')
293
+ humid_controller = OpenStudio::Model::SetpointManagerMultiZoneHumidityMinimum.new(model)
294
+ humid_controller.setName(@hash[:identifier] + '_Humidifier Controller')
295
+
296
+ # add the humidifier to the air loop
297
+ supply_node = os_air_loop.supplyOutletNode
298
+ humidifier.addToNode(supply_node)
299
+ humid_controller.addToNode(supply_node)
300
+
301
+ humidifier
302
+ end
303
+
220
304
  end #TemplateHVAC
221
305
  end #Honeybee
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeybee-openstudio
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.16.3
4
+ version: 2.16.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanushree Charan
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2021-04-29 00:00:00.000000000 Z
14
+ date: 2021-05-05 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: json_pure