honeybee-schema 1.59.1__py3-none-any.whl
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.
- honeybee_schema/__init__.py +1 -0
- honeybee_schema/__main__.py +4 -0
- honeybee_schema/_base.py +42 -0
- honeybee_schema/altnumber.py +18 -0
- honeybee_schema/boundarycondition.py +81 -0
- honeybee_schema/cli.py +115 -0
- honeybee_schema/comparison.py +208 -0
- honeybee_schema/doe2/__init__.py +0 -0
- honeybee_schema/doe2/properties.py +75 -0
- honeybee_schema/energy/__init__.py +0 -0
- honeybee_schema/energy/_base.py +64 -0
- honeybee_schema/energy/construction.py +324 -0
- honeybee_schema/energy/constructionset.py +359 -0
- honeybee_schema/energy/daylight.py +62 -0
- honeybee_schema/energy/designday.py +212 -0
- honeybee_schema/energy/generator.py +140 -0
- honeybee_schema/energy/global_constructionset.py +129 -0
- honeybee_schema/energy/hvac/__init__.py +0 -0
- honeybee_schema/energy/hvac/_template.py +38 -0
- honeybee_schema/energy/hvac/allair.py +257 -0
- honeybee_schema/energy/hvac/detailed.py +20 -0
- honeybee_schema/energy/hvac/doas.py +248 -0
- honeybee_schema/energy/hvac/heatcool.py +309 -0
- honeybee_schema/energy/hvac/idealair.py +107 -0
- honeybee_schema/energy/internalmass.py +25 -0
- honeybee_schema/energy/load.py +627 -0
- honeybee_schema/energy/material.py +949 -0
- honeybee_schema/energy/programtype.py +117 -0
- honeybee_schema/energy/properties.py +382 -0
- honeybee_schema/energy/schedule.py +350 -0
- honeybee_schema/energy/shw.py +53 -0
- honeybee_schema/energy/simulation.py +440 -0
- honeybee_schema/energy/ventcool.py +337 -0
- honeybee_schema/geometry.py +161 -0
- honeybee_schema/model.py +473 -0
- honeybee_schema/projectinfo.py +94 -0
- honeybee_schema/radiance/__init__.py +0 -0
- honeybee_schema/radiance/_base.py +22 -0
- honeybee_schema/radiance/asset.py +191 -0
- honeybee_schema/radiance/global_modifierset.py +92 -0
- honeybee_schema/radiance/modifier.py +373 -0
- honeybee_schema/radiance/modifierset.py +296 -0
- honeybee_schema/radiance/properties.py +149 -0
- honeybee_schema/radiance/state.py +69 -0
- honeybee_schema/updater/__init__.py +0 -0
- honeybee_schema/updater/version_1_39_12.py +14 -0
- honeybee_schema/updater/version_1_40_1.py +153 -0
- honeybee_schema/updater/version_1_43_1.py +18 -0
- honeybee_schema/updater/version_1_43_2.py +12 -0
- honeybee_schema/updater/version_1_43_5.py +11 -0
- honeybee_schema/validation.py +205 -0
- honeybee_schema-1.59.1.dist-info/METADATA +108 -0
- honeybee_schema-1.59.1.dist-info/RECORD +57 -0
- honeybee_schema-1.59.1.dist-info/WHEEL +5 -0
- honeybee_schema-1.59.1.dist-info/entry_points.txt +2 -0
- honeybee_schema-1.59.1.dist-info/licenses/LICENSE +23 -0
- honeybee_schema-1.59.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,257 @@
|
|
1
|
+
"""All-air HVAC systems, providing ventilation and meeting thermal demand with air."""
|
2
|
+
from pydantic import Field, constr
|
3
|
+
from enum import Enum
|
4
|
+
|
5
|
+
from ._template import _TemplateSystem
|
6
|
+
|
7
|
+
|
8
|
+
class AllAirEconomizerType(str, Enum):
|
9
|
+
no_economizer = 'NoEconomizer'
|
10
|
+
differential_dry_bulb = 'DifferentialDryBulb'
|
11
|
+
differential_enthalpy = 'DifferentialEnthalpy'
|
12
|
+
differential_dry_bulb_and_enthalpy = 'DifferentialDryBulbAndEnthalpy'
|
13
|
+
fixed_dry_bulb = 'FixedDryBulb'
|
14
|
+
fixed_enthalpy = 'FixedEnthalpy'
|
15
|
+
electronic_enthalpy = 'ElectronicEnthalpy'
|
16
|
+
|
17
|
+
|
18
|
+
class _AllAirBase(_TemplateSystem):
|
19
|
+
"""Base class for all-air systems.
|
20
|
+
|
21
|
+
All-air systems provide both ventilation and heating + cooling demand with
|
22
|
+
the same stream of warm/cool air. As such, they often grant tight control
|
23
|
+
over zone humidity. However, because such systems often involve the
|
24
|
+
cooling of air only to reheat it again, they are often more energy intensive
|
25
|
+
than systems that separate ventilation from the meeting of thermal loads.
|
26
|
+
"""
|
27
|
+
|
28
|
+
economizer_type: AllAirEconomizerType = Field(
|
29
|
+
AllAirEconomizerType.no_economizer,
|
30
|
+
description='Text to indicate the type of air-side economizer used on '
|
31
|
+
'the system (from the AllAirEconomizerType enumeration).'
|
32
|
+
)
|
33
|
+
|
34
|
+
sensible_heat_recovery: float = Field(
|
35
|
+
0,
|
36
|
+
ge=0,
|
37
|
+
le=1,
|
38
|
+
description='A number between 0 and 1 for the effectiveness of sensible '
|
39
|
+
'heat recovery within the system.'
|
40
|
+
)
|
41
|
+
|
42
|
+
latent_heat_recovery: float = Field(
|
43
|
+
0,
|
44
|
+
ge=0,
|
45
|
+
le=1,
|
46
|
+
description='A number between 0 and 1 for the effectiveness of latent '
|
47
|
+
'heat recovery within the system.'
|
48
|
+
)
|
49
|
+
|
50
|
+
demand_controlled_ventilation: bool = Field(
|
51
|
+
False,
|
52
|
+
description='Boolean to note whether demand controlled ventilation should be '
|
53
|
+
'used on the system, which will vary the amount of ventilation air according '
|
54
|
+
'to the occupancy schedule of the Rooms.'
|
55
|
+
)
|
56
|
+
|
57
|
+
|
58
|
+
class VAVEquipmentType(str, Enum):
|
59
|
+
vav_chill_gbr = 'VAV_Chiller_Boiler'
|
60
|
+
vav_chill_ashp = 'VAV_Chiller_ASHP'
|
61
|
+
vav_chill_dhw = 'VAV_Chiller_DHW'
|
62
|
+
vav_chill_pfp = 'VAV_Chiller_PFP'
|
63
|
+
vav_chill_gcr = 'VAV_Chiller_GasCoil'
|
64
|
+
vav_ac_chill_gbr = 'VAV_ACChiller_Boiler'
|
65
|
+
vav_ac_chill_ashp = 'VAV_ACChiller_ASHP'
|
66
|
+
vav_ac_chill_dhw = 'VAV_ACChiller_DHW'
|
67
|
+
vav_ac_chill_pfp = 'VAV_ACChiller_PFP'
|
68
|
+
vav_ac_chill_gcr = 'VAV_ACChiller_GasCoil'
|
69
|
+
vav_dcw_gbr = 'VAV_DCW_Boiler'
|
70
|
+
vav_dcw_ashp = 'VAV_DCW_ASHP'
|
71
|
+
vav_dcw_dhw = 'VAV_DCW_DHW'
|
72
|
+
vav_dcw_pfp = 'VAV_DCW_PFP'
|
73
|
+
vav_dcw_gcr = 'VAV_DCW_GasCoil'
|
74
|
+
|
75
|
+
|
76
|
+
class PVAVEquipmentType(str, Enum):
|
77
|
+
pvav_gbr = 'PVAV_Boiler'
|
78
|
+
pvav_ashp = 'PVAV_ASHP'
|
79
|
+
pvav_dhw = 'PVAV_DHW'
|
80
|
+
pvav_pfp = 'PVAV_PFP'
|
81
|
+
pvav_ger = 'PVAV_BoilerElectricReheat'
|
82
|
+
|
83
|
+
|
84
|
+
class PSZEquipmentType(str, Enum):
|
85
|
+
psz_e_base = 'PSZAC_ElectricBaseboard'
|
86
|
+
psz_gb_base = 'PSZAC_BoilerBaseboard'
|
87
|
+
psz_dhw_base = 'PSZAC_DHWBaseboard'
|
88
|
+
psz_guh = 'PSZAC_GasHeaters'
|
89
|
+
psz_ec = 'PSZAC_ElectricCoil'
|
90
|
+
psz_gc = 'PSZAC_GasCoil'
|
91
|
+
psz_gb = 'PSZAC_Boiler'
|
92
|
+
psz_ashp = 'PSZAC_ASHP'
|
93
|
+
psz_dhw = 'PSZAC_DHW'
|
94
|
+
psz_ac = 'PSZAC'
|
95
|
+
psz_dcw_e_base = 'PSZAC_DCW_ElectricBaseboard'
|
96
|
+
psz_dcw_gb_base = 'PSZAC_DCW_BoilerBaseboard'
|
97
|
+
psz_dcw_guh = 'PSZAC_DCW_GasHeaters'
|
98
|
+
psz_dcw_ec = 'PSZAC_DCW_ElectricCoil'
|
99
|
+
psz_dcw_gc = 'PSZAC_DCW_GasCoil'
|
100
|
+
psz_dcw_gb = 'PSZAC_DCW_Boiler'
|
101
|
+
psz_dcw_ashp = 'PSZAC_DCW_ASHP'
|
102
|
+
psz_dcw_dhw = 'PSZAC_DCW_DHW'
|
103
|
+
psz_dcw_ac = 'PSZAC_DCW'
|
104
|
+
psz_hp = 'PSZHP'
|
105
|
+
|
106
|
+
|
107
|
+
class PTACEquipmentType(str, Enum):
|
108
|
+
ptac_e_base = 'PTAC_ElectricBaseboard'
|
109
|
+
ptac_gb_base = 'PTAC_BoilerBaseboard'
|
110
|
+
ptac_dhw_base = 'PTAC_DHWBaseboard'
|
111
|
+
ptac_guh = 'PTAC_GasHeaters'
|
112
|
+
ptac_ec = 'PTAC_ElectricCoil'
|
113
|
+
ptac_gc = 'PTAC_GasCoil'
|
114
|
+
ptac_gb = 'PTAC_Boiler'
|
115
|
+
ptac_ashp = 'PTAC_ASHP'
|
116
|
+
ptac_dhw = 'PTAC_DHW'
|
117
|
+
ptac = 'PTAC'
|
118
|
+
pthp = 'PTHP'
|
119
|
+
|
120
|
+
|
121
|
+
class FurnaceEquipmentType(str, Enum):
|
122
|
+
furnace = 'Furnace'
|
123
|
+
furnace_electric = 'Furnace_Electric'
|
124
|
+
|
125
|
+
|
126
|
+
class VAV(_AllAirBase):
|
127
|
+
"""Variable Air Volume (VAV) HVAC system (aka. System 7 or 8).
|
128
|
+
|
129
|
+
All rooms/zones are connected to a central air loop that is kept at a constant
|
130
|
+
central temperature of 12.8C (55F). The central temperature is maintained by a
|
131
|
+
cooling coil, which runs whenever the combination of return air and fresh outdoor
|
132
|
+
air is greater than 12.8C, as well as a heating coil, which runs whenever
|
133
|
+
the combination of return air and fresh outdoor air is less than 12.8C.
|
134
|
+
|
135
|
+
Each air terminal for the connected rooms/zones contains its own reheat coil,
|
136
|
+
which runs whenever the room is not in need of the cooling supplied by the 12.8C
|
137
|
+
central air.
|
138
|
+
|
139
|
+
The central cooling coil is always a chilled water coil, which is connected to a
|
140
|
+
chilled water loop operating at 6.7C (44F). All heating coils are hot water coils
|
141
|
+
except when Gas Coil equipment_type is used (in which case coils are gas)
|
142
|
+
or when Parallel Fan-Powered (PFP) boxes equipment_type is used (in which case
|
143
|
+
coils are electric resistance). Hot water temperature is 82C (180F) for
|
144
|
+
boiler/district heating and 49C (120F) when ASHP is used.
|
145
|
+
|
146
|
+
VAV systems are the traditional baseline system for commercial buildings
|
147
|
+
taller than 5 stories or larger than 14,000 m2 (150,000 ft2) of floor area.
|
148
|
+
"""
|
149
|
+
|
150
|
+
type: constr(regex='^VAV$') = 'VAV'
|
151
|
+
|
152
|
+
equipment_type: VAVEquipmentType = Field(
|
153
|
+
VAVEquipmentType.vav_chill_gbr,
|
154
|
+
description='Text for the specific type of system equipment from the '
|
155
|
+
'VAVEquipmentType enumeration.'
|
156
|
+
)
|
157
|
+
|
158
|
+
|
159
|
+
class PVAV(_AllAirBase):
|
160
|
+
"""Packaged Variable Air Volume (PVAV) HVAC system (aka. System 5 or 6).
|
161
|
+
|
162
|
+
All rooms/zones are connected to a central air loop that is kept at a constant
|
163
|
+
central temperature of 12.8C (55F). The central temperature is maintained by a
|
164
|
+
cooling coil, which runs whenever the combination of return air and fresh outdoor
|
165
|
+
air is greater than 12.8C, as well as a heating coil, which runs whenever
|
166
|
+
the combination of return air and fresh outdoor air is less than 12.8C.
|
167
|
+
|
168
|
+
Each air terminal for the connected rooms/zones contains its own reheat coil,
|
169
|
+
which runs whenever the room is not in need of the cooling supplied by the 12.8C
|
170
|
+
central air.
|
171
|
+
|
172
|
+
The central cooling coil is always a two-speed direct expansion (DX) coil.
|
173
|
+
All heating coils are hot water coils except when Gas Coil equipment_type is
|
174
|
+
used (in which case the central coil is gas and all reheat is electric)
|
175
|
+
or when Parallel Fan-Powered (PFP) boxes equipment_type is used (in which case
|
176
|
+
coils are electric resistance). Hot water temperature is 82C (180F) for
|
177
|
+
boiler/district heating and 49C (120F) when ASHP is used.
|
178
|
+
|
179
|
+
PVAV systems are the traditional baseline system for commercial buildings
|
180
|
+
with than 4-5 stories or between 2,300 m2 and 14,000 m2 (25,000 ft2 and
|
181
|
+
150,000 ft2) of floor area.
|
182
|
+
"""
|
183
|
+
|
184
|
+
type: constr(regex='^PVAV$') = 'PVAV'
|
185
|
+
|
186
|
+
equipment_type: PVAVEquipmentType = Field(
|
187
|
+
PVAVEquipmentType.pvav_gbr,
|
188
|
+
description='Text for the specific type of system equipment from the '
|
189
|
+
'VAVEquipmentType enumeration.'
|
190
|
+
)
|
191
|
+
|
192
|
+
|
193
|
+
class PSZ(_AllAirBase):
|
194
|
+
"""Packaged Single-Zone (PSZ) HVAC system (aka. System 3 or 4).
|
195
|
+
|
196
|
+
Each room/zone receives its own air loop with its own single-speed direct expansion
|
197
|
+
(DX) cooling coil, which will condition the supply air to a value in between
|
198
|
+
12.8C (55F) and 50C (122F) depending on the heating/cooling needs of the room/zone.
|
199
|
+
As long as a Baseboard equipment_type is NOT selected, heating will be supplied
|
200
|
+
by a heating coil in the air loop. Otherwise, heating is accomplished with
|
201
|
+
baseboards and the air loop only supplies cooling and ventilation air.
|
202
|
+
Fans are constant volume.
|
203
|
+
|
204
|
+
PSZ systems are the traditional baseline system for commercial buildings
|
205
|
+
with less than 4 stories or less than 2,300 m2 (25,000 ft2) of floor area.
|
206
|
+
They are also the default for all retail with less than 3 stories and all public
|
207
|
+
assembly spaces.
|
208
|
+
"""
|
209
|
+
|
210
|
+
type: constr(regex='^PSZ$') = 'PSZ'
|
211
|
+
|
212
|
+
equipment_type: PSZEquipmentType = Field(
|
213
|
+
PSZEquipmentType.psz_e_base,
|
214
|
+
description='Text for the specific type of system equipment from the '
|
215
|
+
'PVAVEquipmentType enumeration.'
|
216
|
+
)
|
217
|
+
|
218
|
+
|
219
|
+
class PTAC(_TemplateSystem):
|
220
|
+
"""Packaged Terminal Air Conditioning (PTAC/HP) HVAC system. (aka. System 1 or 2).
|
221
|
+
|
222
|
+
Each room/zone receives its own packaged unit that supplies heating, cooling
|
223
|
+
and ventilation. Cooling is always done via a single-speed direct expansion (DX)
|
224
|
+
cooling coil. Heating can be done via a heating coil in the unit or via an
|
225
|
+
external baseboard. Fans are constant volume.
|
226
|
+
|
227
|
+
PTAC/HP systems are the traditional baseline system for residential buildings.
|
228
|
+
"""
|
229
|
+
|
230
|
+
type: constr(regex='^PTAC$') = 'PTAC'
|
231
|
+
|
232
|
+
equipment_type: PTACEquipmentType = Field(
|
233
|
+
PTACEquipmentType.ptac_e_base,
|
234
|
+
description='Text for the specific type of system equipment from the '
|
235
|
+
'PTACEquipmentType enumeration.'
|
236
|
+
)
|
237
|
+
|
238
|
+
|
239
|
+
class ForcedAirFurnace(_TemplateSystem):
|
240
|
+
"""Forced Air Furnace HVAC system (aka. System 9 or 10).
|
241
|
+
|
242
|
+
Forced air furnaces are intended only for spaces only requiring heating and
|
243
|
+
ventilation. Each room/zone receives its own air loop with its own gas heating
|
244
|
+
coil, which will supply air at a temperature up to 50C (122F) to meet the
|
245
|
+
heating needs of the room/zone. Fans are constant volume.
|
246
|
+
|
247
|
+
ForcedAirFurnace systems are the traditional baseline system for storage
|
248
|
+
spaces that only require heating.
|
249
|
+
"""
|
250
|
+
|
251
|
+
type: constr(regex='^ForcedAirFurnace$') = 'ForcedAirFurnace'
|
252
|
+
|
253
|
+
equipment_type: FurnaceEquipmentType = Field(
|
254
|
+
FurnaceEquipmentType.furnace,
|
255
|
+
description='Text for the specific type of system equipment from the '
|
256
|
+
'FurnaceEquipmentType enumeration.'
|
257
|
+
)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"""Detailed HVAC system schema defined using Ironbug."""
|
2
|
+
from pydantic import Field, constr
|
3
|
+
from .._base import IDdEnergyBaseModel
|
4
|
+
|
5
|
+
|
6
|
+
class DetailedHVAC(IDdEnergyBaseModel):
|
7
|
+
"""Detailed HVAC system object defined using IronBug or OpenStudio .NET bindings."""
|
8
|
+
|
9
|
+
type: constr(regex='^DetailedHVAC$') = 'DetailedHVAC'
|
10
|
+
|
11
|
+
specification: dict = Field(
|
12
|
+
...,
|
13
|
+
description='A JSON-serializable dictionary representing the full '
|
14
|
+
'specification of the detailed system. This can be obtained by calling '
|
15
|
+
'the ToJson() method on any IronBug HVAC system and then serializing '
|
16
|
+
'the resulting JSON string into a Python dictionary using the native '
|
17
|
+
'Python json package. Note that the Rooms that the HVAC is assigned to '
|
18
|
+
'must be specified as ThermalZones under this specification in order '
|
19
|
+
'for the resulting Model this HVAC is a part of to be valid.'
|
20
|
+
)
|
@@ -0,0 +1,248 @@
|
|
1
|
+
"""HVAC systems with DOAS, separating ventilation and meeting thermal demand."""
|
2
|
+
from pydantic import Field, constr
|
3
|
+
from enum import Enum
|
4
|
+
|
5
|
+
from ._template import _TemplateSystem, RadiantFaceTypes
|
6
|
+
|
7
|
+
|
8
|
+
class _DOASBase(_TemplateSystem):
|
9
|
+
"""Base class for Dedicated Outdoor Air System (DOAS) HVACs.
|
10
|
+
|
11
|
+
DOAS systems separate minimum ventilation supply from the satisfaction of heating
|
12
|
+
+ cooling demand. Ventilation air tends to be supplied at neutral temperatures
|
13
|
+
(close to room air temperature) and heating / cooling loads are met with additional
|
14
|
+
pieces of zone equipment (eg. Fan Coil Units (FCUs)).
|
15
|
+
|
16
|
+
Because DOAS systems only have to cool down and re-heat the minimum ventilation air,
|
17
|
+
they tend to use less energy than all-air systems. They also tend to use less energy
|
18
|
+
to distribute heating + cooling by pumping around hot/cold water or refrigerant
|
19
|
+
instead of blowing hot/cold air. However, they do not provide as good of control
|
20
|
+
over humidity and so they may not be appropriate for rooms with high latent loads
|
21
|
+
like auditoriums, kitchens, laundromats, etc.
|
22
|
+
"""
|
23
|
+
|
24
|
+
sensible_heat_recovery: float = Field(
|
25
|
+
0,
|
26
|
+
ge=0,
|
27
|
+
le=1,
|
28
|
+
description='A number between 0 and 1 for the effectiveness of sensible '
|
29
|
+
'heat recovery within the system.'
|
30
|
+
)
|
31
|
+
|
32
|
+
latent_heat_recovery: float = Field(
|
33
|
+
0,
|
34
|
+
ge=0,
|
35
|
+
le=1,
|
36
|
+
description='A number between 0 and 1 for the effectiveness of latent '
|
37
|
+
'heat recovery within the system.'
|
38
|
+
)
|
39
|
+
|
40
|
+
demand_controlled_ventilation: bool = Field(
|
41
|
+
False,
|
42
|
+
description='Boolean to note whether demand controlled ventilation should be '
|
43
|
+
'used on the system, which will vary the amount of ventilation air according '
|
44
|
+
'to the occupancy schedule of the Rooms.'
|
45
|
+
)
|
46
|
+
|
47
|
+
doas_availability_schedule: str = Field(
|
48
|
+
None,
|
49
|
+
min_length=1,
|
50
|
+
max_length=100,
|
51
|
+
description='An optional On/Off discrete schedule to set when the dedicated '
|
52
|
+
'outdoor air system (DOAS) shuts off. This will not only prevent any outdoor '
|
53
|
+
'air from flowing thorough the system but will also shut off the fans, which '
|
54
|
+
'can result in more energy savings when spaces served by the DOAS are '
|
55
|
+
'completely unoccupied. If None, the DOAS will be always on.'
|
56
|
+
)
|
57
|
+
|
58
|
+
|
59
|
+
class FCUwithDOASEquipmentType(str, Enum):
|
60
|
+
fcu_chill_gb = 'DOAS_FCU_Chiller_Boiler'
|
61
|
+
fcu_chill_ashp = 'DOAS_FCU_Chiller_ASHP'
|
62
|
+
fcu_chill_dhw = 'DOAS_FCU_Chiller_DHW'
|
63
|
+
fcu_chill_base = 'DOAS_FCU_Chiller_ElectricBaseboard'
|
64
|
+
fcu_chill_guh = 'DOAS_FCU_Chiller_GasHeaters'
|
65
|
+
fcu_chill = 'DOAS_FCU_Chiller'
|
66
|
+
fcu_ac_chill_gb = 'DOAS_FCU_ACChiller_Boiler'
|
67
|
+
fcu_ac_chill_ashp = 'DOAS_FCU_ACChiller_ASHP'
|
68
|
+
fcu_ac_chill_dhw = 'DOAS_FCU_ACChiller_DHW'
|
69
|
+
fcu_ac_chill_base = 'DOAS_FCU_ACChiller_ElectricBaseboard'
|
70
|
+
fcu_ac_chill_guh = 'DOAS_FCU_ACChiller_GasHeaters'
|
71
|
+
fcu_ac_chill = 'DOAS_FCU_ACChiller'
|
72
|
+
fcu_dcw_gb = 'DOAS_FCU_DCW_Boiler'
|
73
|
+
fcu_dcw_ashp = 'DOAS_FCU_DCW_ASHP'
|
74
|
+
fcu_dcw_dhw = 'DOAS_FCU_DCW_DHW'
|
75
|
+
fcu_dcw_base = 'DOAS_FCU_DCW_ElectricBaseboard'
|
76
|
+
fcu_dcw_guh = 'DOAS_FCU_DCW_GasHeaters'
|
77
|
+
fcu_dcw = 'DOAS_FCU_DCW'
|
78
|
+
|
79
|
+
|
80
|
+
class WSHPwithDOASEquipmentType(str, Enum):
|
81
|
+
wshp_fc_gb = 'DOAS_WSHP_FluidCooler_Boiler'
|
82
|
+
wshp_ct_gb = 'DOAS_WSHP_CoolingTower_Boiler'
|
83
|
+
wshp_gshp = 'DOAS_WSHP_GSHP'
|
84
|
+
wshp_dcw_dhw = 'DOAS_WSHP_DCW_DHW'
|
85
|
+
|
86
|
+
|
87
|
+
class VRFwithDOASEquipmentType(str, Enum):
|
88
|
+
vrf = 'DOAS_VRF'
|
89
|
+
|
90
|
+
|
91
|
+
class RadiantwithDOASEquipmentType(str, Enum):
|
92
|
+
radiant_chill_gb = 'DOAS_Radiant_Chiller_Boiler'
|
93
|
+
radiant_chill_ashp = 'DOAS_Radiant_Chiller_ASHP'
|
94
|
+
radiant_chill_dhw = 'DOAS_Radiant_Chiller_DHW'
|
95
|
+
radiant_ac_chill_gb = 'DOAS_Radiant_ACChiller_Boiler'
|
96
|
+
radiant_ac_chill_ashp = 'DOAS_Radiant_ACChiller_ASHP'
|
97
|
+
radiant_ac_chill_dhw = 'DOAS_Radiant_ACChiller_DHW'
|
98
|
+
radiant_dcw_gb = 'DOAS_Radiant_DCW_Boiler'
|
99
|
+
radiant_dcw_ashp = 'DOAS_Radiant_DCW_ASHP'
|
100
|
+
radiant_dcw_dhw = 'DOAS_Radiant_DCW_DHW'
|
101
|
+
|
102
|
+
|
103
|
+
class FCUwithDOASAbridged(_DOASBase):
|
104
|
+
"""Fan Coil Unit (FCU) with DOAS HVAC system.
|
105
|
+
|
106
|
+
All rooms/zones in the system are connected to a Dedicated Outdoor Air System
|
107
|
+
(DOAS) that supplies a constant volume of ventilation air at the same temperature
|
108
|
+
to all rooms/zones. The ventilation air temperature will vary from 21.1C (70F)
|
109
|
+
to 15.5C (60F) depending on the outdoor air temperature (the DOAS supplies cooler air
|
110
|
+
when outdoor conditions are warmer). The ventilation air temperature is maintained
|
111
|
+
by a chilled water cooling coil and a heating coil. The heating coil is a hot
|
112
|
+
water coil except when electric baseboards or gas heaters are specified, in
|
113
|
+
which case the heating coil is a single-speed direct expansion (DX) heat pump
|
114
|
+
with a backup electrical resistance coil.
|
115
|
+
|
116
|
+
Each room/zone also receives its own Fan Coil Unit (FCU), which meets the heating
|
117
|
+
and cooling loads of the space. The cooling coil in the FCU is always chilled
|
118
|
+
water cooling coil, which is connected to a chilled water loop operating
|
119
|
+
at 6.7C (44F). The heating coil is a hot water coil except when when electric
|
120
|
+
baseboards or gas heaters are specified. Hot water temperature is 82C (180F) for
|
121
|
+
boiler/district heating and 49C (120F) when ASHP is used.
|
122
|
+
|
123
|
+
The FCU with DOAS template is relatively close in performance to active chilled
|
124
|
+
beams (ACBs). When using this template to represent ACBs, care must be taken
|
125
|
+
to ensure that the DOAS ventilation air requirement is sufficient to extract
|
126
|
+
the heating cooling from the ACB. If so, then this FCUwithDOAS template can be
|
127
|
+
used but with the energy use of the FCU fans ignored.
|
128
|
+
"""
|
129
|
+
|
130
|
+
type: constr(regex='^FCUwithDOASAbridged$') = 'FCUwithDOASAbridged'
|
131
|
+
|
132
|
+
equipment_type: FCUwithDOASEquipmentType = Field(
|
133
|
+
FCUwithDOASEquipmentType.fcu_chill_gb,
|
134
|
+
description='Text for the specific type of system equipment from the '
|
135
|
+
'FCUwithDOASEquipmentType enumeration.'
|
136
|
+
)
|
137
|
+
|
138
|
+
|
139
|
+
class WSHPwithDOASAbridged(_DOASBase):
|
140
|
+
"""Water Source Heat Pump (WSHP) with DOAS HVAC system.
|
141
|
+
|
142
|
+
All rooms/zones in the system are connected to a Dedicated Outdoor Air System
|
143
|
+
(DOAS) that supplies a constant volume of ventilation air at the same temperature
|
144
|
+
to all rooms/zones. The ventilation air temperature will vary from 21.1C (70F)
|
145
|
+
to 15.5C (60F) depending on the outdoor air temperature (the DOAS supplies cooler air
|
146
|
+
when outdoor conditions are warmer). The ventilation air temperature is maintained
|
147
|
+
by a chilled water cooling coil and a hot water heating coil except when the
|
148
|
+
ground source heat pump (GSHP) option is selected. In this case, the ventilation
|
149
|
+
air temperature is maintained by a two-speed direct expansion (DX) cooling coil
|
150
|
+
and a single-speed DX heating coil with backup electrical resistance heat.
|
151
|
+
|
152
|
+
Each room/zone also receives its own Water Source Heat Pump (WSHP), which meets
|
153
|
+
the heating and cooling loads of the space. All WSHPs are connected to the
|
154
|
+
same water condenser loop, which has its temperature maintained by the
|
155
|
+
equipment_type (eg. Boiler with Cooling Tower).
|
156
|
+
"""
|
157
|
+
|
158
|
+
type: constr(regex='^WSHPwithDOASAbridged$') = 'WSHPwithDOASAbridged'
|
159
|
+
|
160
|
+
equipment_type: WSHPwithDOASEquipmentType = Field(
|
161
|
+
WSHPwithDOASEquipmentType.wshp_fc_gb,
|
162
|
+
description='Text for the specific type of system equipment from the '
|
163
|
+
'WSHPwithDOASEquipmentType enumeration.'
|
164
|
+
)
|
165
|
+
|
166
|
+
|
167
|
+
class VRFwithDOASAbridged(_DOASBase):
|
168
|
+
"""Variable Refrigerant Flow (VRF) with DOAS HVAC system.
|
169
|
+
|
170
|
+
All rooms/zones in the system are connected to a Dedicated Outdoor Air System
|
171
|
+
(DOAS) that supplies a constant volume of ventilation air at the same temperature
|
172
|
+
to all rooms/zones. The ventilation air temperature will vary from 21.1C (70F)
|
173
|
+
to 15.5C (60F) depending on the outdoor air temperature (the DOAS supplies cooler air
|
174
|
+
when outdoor conditions are warmer). The ventilation air temperature is maintained
|
175
|
+
by a single speed direct expansion (DX) cooling coil along with a single-speed
|
176
|
+
direct expansion (DX) heat pump with a backup electrical resistance coil.
|
177
|
+
|
178
|
+
Each room/zone also receives its own Variable Refrigerant Flow (VRF) terminal,
|
179
|
+
which meets the heating and cooling loads of the space. All room/zone terminals
|
180
|
+
are connected to the same outdoor unit, meaning that either all rooms must be
|
181
|
+
in cooling or heating mode together.
|
182
|
+
"""
|
183
|
+
|
184
|
+
type: constr(regex='^VRFwithDOASAbridged$') = 'VRFwithDOASAbridged'
|
185
|
+
|
186
|
+
equipment_type: VRFwithDOASEquipmentType = Field(
|
187
|
+
VRFwithDOASEquipmentType.vrf,
|
188
|
+
description='Text for the specific type of system equipment from the '
|
189
|
+
'VRFwithDOASEquipmentType enumeration.'
|
190
|
+
)
|
191
|
+
|
192
|
+
|
193
|
+
class RadiantwithDOASAbridged(_DOASBase):
|
194
|
+
"""Low Temperature Radiant with DOAS HVAC system.
|
195
|
+
|
196
|
+
This HVAC template will change the floor and/or ceiling constructions
|
197
|
+
of the Rooms that it is applied to, replacing them with a construction that
|
198
|
+
aligns with the radiant_type property (eg. CeilingMetalPanel).
|
199
|
+
|
200
|
+
All rooms/zones in the system are connected to a Dedicated Outdoor Air System
|
201
|
+
(DOAS) that supplies a constant volume of ventilation air at the same temperature
|
202
|
+
to all rooms/zones. The ventilation air temperature will vary from 21.1C (70F)
|
203
|
+
to 15.5C (60F) depending on the outdoor air temperature (the DOAS supplies cooler air
|
204
|
+
when outdoor conditions are warmer). The ventilation air temperature is maintained
|
205
|
+
by a two-speed direct expansion (DX) cooling coil and a single-speed DX
|
206
|
+
heating coil with backup electrical resistance heat.
|
207
|
+
|
208
|
+
The heating and cooling needs of the space are met with the radiant constructions,
|
209
|
+
which use chilled water at 12.8C (55F) and a hot water temperature somewhere
|
210
|
+
between 32.2C (90F) and 49C (120F) (warmer temperatures are used in colder
|
211
|
+
climate zones).
|
212
|
+
|
213
|
+
Note that radiant systems are particularly limited in cooling capacity and
|
214
|
+
using them may result in many unmet hours. To reduce unmet hours, one can
|
215
|
+
remove carpets, reduce internal loads, reduce solar and envelope gains during
|
216
|
+
peak times, add thermal mass, and use an expanded comfort range.
|
217
|
+
"""
|
218
|
+
|
219
|
+
type: constr(regex='^RadiantwithDOASAbridged$') = 'RadiantwithDOASAbridged'
|
220
|
+
|
221
|
+
equipment_type: RadiantwithDOASEquipmentType = Field(
|
222
|
+
RadiantwithDOASEquipmentType.radiant_chill_gb,
|
223
|
+
description='Text for the specific type of system equipment from the '
|
224
|
+
'RadiantwithDOASEquipmentType enumeration.'
|
225
|
+
)
|
226
|
+
|
227
|
+
radiant_face_type: RadiantFaceTypes = Field(
|
228
|
+
RadiantFaceTypes.floor,
|
229
|
+
description='Text to indicate which faces are thermally active by default. '
|
230
|
+
'Note that this property has no effect when the rooms to which the HVAC '
|
231
|
+
'system is assigned have constructions with internal source materials. '
|
232
|
+
'In this case, those constructions will dictate the thermally active '
|
233
|
+
'surfaces.'
|
234
|
+
)
|
235
|
+
|
236
|
+
minimum_operation_time: float = Field(
|
237
|
+
1.0,
|
238
|
+
gt=0,
|
239
|
+
description='A number for the minimum number of hours of operation '
|
240
|
+
'for the radiant system before it shuts off.'
|
241
|
+
)
|
242
|
+
|
243
|
+
switch_over_time: float = Field(
|
244
|
+
24.0,
|
245
|
+
gt=0,
|
246
|
+
description='A number for the minimum number of hours for when the system '
|
247
|
+
'can switch between heating and cooling.'
|
248
|
+
)
|