honeybee-energy 1.116.106__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.
Files changed (162) hide show
  1. honeybee_energy/__init__.py +24 -0
  2. honeybee_energy/__main__.py +4 -0
  3. honeybee_energy/_extend_honeybee.py +145 -0
  4. honeybee_energy/altnumber.py +21 -0
  5. honeybee_energy/baseline/__init__.py +2 -0
  6. honeybee_energy/baseline/create.py +608 -0
  7. honeybee_energy/baseline/data/__init__.py +1 -0
  8. honeybee_energy/baseline/data/constructions.csv +64 -0
  9. honeybee_energy/baseline/data/fen_ratios.csv +15 -0
  10. honeybee_energy/baseline/data/lpd_building.csv +21 -0
  11. honeybee_energy/baseline/data/pci_2016.csv +22 -0
  12. honeybee_energy/baseline/data/pci_2019.csv +22 -0
  13. honeybee_energy/baseline/data/pci_2022.csv +22 -0
  14. honeybee_energy/baseline/data/shw.csv +21 -0
  15. honeybee_energy/baseline/pci.py +512 -0
  16. honeybee_energy/baseline/result.py +371 -0
  17. honeybee_energy/boundarycondition.py +128 -0
  18. honeybee_energy/cli/__init__.py +69 -0
  19. honeybee_energy/cli/baseline.py +475 -0
  20. honeybee_energy/cli/edit.py +327 -0
  21. honeybee_energy/cli/lib.py +1154 -0
  22. honeybee_energy/cli/result.py +810 -0
  23. honeybee_energy/cli/setconfig.py +124 -0
  24. honeybee_energy/cli/settings.py +569 -0
  25. honeybee_energy/cli/simulate.py +380 -0
  26. honeybee_energy/cli/translate.py +1714 -0
  27. honeybee_energy/cli/validate.py +224 -0
  28. honeybee_energy/config.json +11 -0
  29. honeybee_energy/config.py +842 -0
  30. honeybee_energy/construction/__init__.py +1 -0
  31. honeybee_energy/construction/_base.py +374 -0
  32. honeybee_energy/construction/air.py +325 -0
  33. honeybee_energy/construction/dictutil.py +89 -0
  34. honeybee_energy/construction/dynamic.py +607 -0
  35. honeybee_energy/construction/opaque.py +460 -0
  36. honeybee_energy/construction/shade.py +319 -0
  37. honeybee_energy/construction/window.py +1096 -0
  38. honeybee_energy/construction/windowshade.py +847 -0
  39. honeybee_energy/constructionset.py +1655 -0
  40. honeybee_energy/dictutil.py +56 -0
  41. honeybee_energy/generator/__init__.py +5 -0
  42. honeybee_energy/generator/loadcenter.py +204 -0
  43. honeybee_energy/generator/pv.py +535 -0
  44. honeybee_energy/hvac/__init__.py +21 -0
  45. honeybee_energy/hvac/_base.py +124 -0
  46. honeybee_energy/hvac/_template.py +270 -0
  47. honeybee_energy/hvac/allair/__init__.py +22 -0
  48. honeybee_energy/hvac/allair/_base.py +349 -0
  49. honeybee_energy/hvac/allair/furnace.py +168 -0
  50. honeybee_energy/hvac/allair/psz.py +131 -0
  51. honeybee_energy/hvac/allair/ptac.py +163 -0
  52. honeybee_energy/hvac/allair/pvav.py +109 -0
  53. honeybee_energy/hvac/allair/vav.py +128 -0
  54. honeybee_energy/hvac/detailed.py +337 -0
  55. honeybee_energy/hvac/doas/__init__.py +28 -0
  56. honeybee_energy/hvac/doas/_base.py +345 -0
  57. honeybee_energy/hvac/doas/fcu.py +127 -0
  58. honeybee_energy/hvac/doas/radiant.py +329 -0
  59. honeybee_energy/hvac/doas/vrf.py +81 -0
  60. honeybee_energy/hvac/doas/wshp.py +91 -0
  61. honeybee_energy/hvac/heatcool/__init__.py +23 -0
  62. honeybee_energy/hvac/heatcool/_base.py +177 -0
  63. honeybee_energy/hvac/heatcool/baseboard.py +61 -0
  64. honeybee_energy/hvac/heatcool/evapcool.py +72 -0
  65. honeybee_energy/hvac/heatcool/fcu.py +92 -0
  66. honeybee_energy/hvac/heatcool/gasunit.py +53 -0
  67. honeybee_energy/hvac/heatcool/radiant.py +269 -0
  68. honeybee_energy/hvac/heatcool/residential.py +77 -0
  69. honeybee_energy/hvac/heatcool/vrf.py +54 -0
  70. honeybee_energy/hvac/heatcool/windowac.py +70 -0
  71. honeybee_energy/hvac/heatcool/wshp.py +62 -0
  72. honeybee_energy/hvac/idealair.py +699 -0
  73. honeybee_energy/internalmass.py +310 -0
  74. honeybee_energy/lib/__init__.py +1 -0
  75. honeybee_energy/lib/_loadconstructions.py +194 -0
  76. honeybee_energy/lib/_loadconstructionsets.py +117 -0
  77. honeybee_energy/lib/_loadmaterials.py +83 -0
  78. honeybee_energy/lib/_loadprogramtypes.py +125 -0
  79. honeybee_energy/lib/_loadschedules.py +87 -0
  80. honeybee_energy/lib/_loadtypelimits.py +64 -0
  81. honeybee_energy/lib/constructions.py +207 -0
  82. honeybee_energy/lib/constructionsets.py +95 -0
  83. honeybee_energy/lib/materials.py +67 -0
  84. honeybee_energy/lib/programtypes.py +125 -0
  85. honeybee_energy/lib/schedules.py +61 -0
  86. honeybee_energy/lib/scheduletypelimits.py +31 -0
  87. honeybee_energy/load/__init__.py +1 -0
  88. honeybee_energy/load/_base.py +190 -0
  89. honeybee_energy/load/daylight.py +397 -0
  90. honeybee_energy/load/dictutil.py +47 -0
  91. honeybee_energy/load/equipment.py +771 -0
  92. honeybee_energy/load/hotwater.py +543 -0
  93. honeybee_energy/load/infiltration.py +460 -0
  94. honeybee_energy/load/lighting.py +480 -0
  95. honeybee_energy/load/people.py +497 -0
  96. honeybee_energy/load/process.py +472 -0
  97. honeybee_energy/load/setpoint.py +816 -0
  98. honeybee_energy/load/ventilation.py +550 -0
  99. honeybee_energy/material/__init__.py +1 -0
  100. honeybee_energy/material/_base.py +166 -0
  101. honeybee_energy/material/dictutil.py +59 -0
  102. honeybee_energy/material/frame.py +367 -0
  103. honeybee_energy/material/gas.py +1087 -0
  104. honeybee_energy/material/glazing.py +854 -0
  105. honeybee_energy/material/opaque.py +1351 -0
  106. honeybee_energy/material/shade.py +1360 -0
  107. honeybee_energy/measure.py +472 -0
  108. honeybee_energy/programtype.py +723 -0
  109. honeybee_energy/properties/__init__.py +1 -0
  110. honeybee_energy/properties/aperture.py +333 -0
  111. honeybee_energy/properties/door.py +342 -0
  112. honeybee_energy/properties/extension.py +244 -0
  113. honeybee_energy/properties/face.py +274 -0
  114. honeybee_energy/properties/model.py +2640 -0
  115. honeybee_energy/properties/room.py +1747 -0
  116. honeybee_energy/properties/shade.py +314 -0
  117. honeybee_energy/properties/shademesh.py +262 -0
  118. honeybee_energy/reader.py +48 -0
  119. honeybee_energy/result/__init__.py +1 -0
  120. honeybee_energy/result/colorobj.py +648 -0
  121. honeybee_energy/result/emissions.py +290 -0
  122. honeybee_energy/result/err.py +101 -0
  123. honeybee_energy/result/eui.py +100 -0
  124. honeybee_energy/result/generation.py +160 -0
  125. honeybee_energy/result/loadbalance.py +890 -0
  126. honeybee_energy/result/match.py +202 -0
  127. honeybee_energy/result/osw.py +90 -0
  128. honeybee_energy/result/rdd.py +59 -0
  129. honeybee_energy/result/zsz.py +190 -0
  130. honeybee_energy/run.py +1577 -0
  131. honeybee_energy/schedule/__init__.py +1 -0
  132. honeybee_energy/schedule/day.py +626 -0
  133. honeybee_energy/schedule/dictutil.py +59 -0
  134. honeybee_energy/schedule/fixedinterval.py +1012 -0
  135. honeybee_energy/schedule/rule.py +619 -0
  136. honeybee_energy/schedule/ruleset.py +1867 -0
  137. honeybee_energy/schedule/typelimit.py +310 -0
  138. honeybee_energy/shw.py +315 -0
  139. honeybee_energy/simulation/__init__.py +1 -0
  140. honeybee_energy/simulation/control.py +214 -0
  141. honeybee_energy/simulation/daylightsaving.py +185 -0
  142. honeybee_energy/simulation/dictutil.py +51 -0
  143. honeybee_energy/simulation/output.py +646 -0
  144. honeybee_energy/simulation/parameter.py +606 -0
  145. honeybee_energy/simulation/runperiod.py +443 -0
  146. honeybee_energy/simulation/shadowcalculation.py +295 -0
  147. honeybee_energy/simulation/sizing.py +546 -0
  148. honeybee_energy/ventcool/__init__.py +5 -0
  149. honeybee_energy/ventcool/_crack_data.py +91 -0
  150. honeybee_energy/ventcool/afn.py +289 -0
  151. honeybee_energy/ventcool/control.py +269 -0
  152. honeybee_energy/ventcool/crack.py +126 -0
  153. honeybee_energy/ventcool/fan.py +493 -0
  154. honeybee_energy/ventcool/opening.py +365 -0
  155. honeybee_energy/ventcool/simulation.py +314 -0
  156. honeybee_energy/writer.py +1078 -0
  157. honeybee_energy-1.116.106.dist-info/METADATA +113 -0
  158. honeybee_energy-1.116.106.dist-info/RECORD +162 -0
  159. honeybee_energy-1.116.106.dist-info/WHEEL +5 -0
  160. honeybee_energy-1.116.106.dist-info/entry_points.txt +2 -0
  161. honeybee_energy-1.116.106.dist-info/licenses/LICENSE +661 -0
  162. honeybee_energy-1.116.106.dist-info/top_level.txt +1 -0
@@ -0,0 +1,269 @@
1
+ # coding=utf-8
2
+ """Low temperature radiant system."""
3
+ from __future__ import division
4
+
5
+ from ._base import _HeatCoolBase
6
+
7
+ from honeybee._lockable import lockable
8
+ from honeybee.typing import float_positive, valid_string
9
+
10
+
11
+ @lockable
12
+ class Radiant(_HeatCoolBase):
13
+ """Low temperature radiant HVAC system.
14
+
15
+ This HVAC template will change the floor and/or ceiling constructions
16
+ of the Rooms that it is applied to, replacing them with a construction that
17
+ aligns with the radiant_type property (eg. CeilingMetalPanel).
18
+
19
+ The heating and cooling needs of the space are met with the radiant constructions,
20
+ which use chilled water at 12.8C (55F) and a hot water temperature somewhere
21
+ between 32.2C (90F) and 49C (120F) (warmer temperatures are used in colder
22
+ climate zones).
23
+
24
+ Note that radiant systems are particularly limited in cooling capacity and
25
+ using them may result in many unmet hours. To reduce unmet hours, one can
26
+ remove carpets, reduce internal loads, reduce solar and envelope gains during
27
+ peak times, add thermal mass, and use an expanded comfort range.
28
+
29
+ Args:
30
+ identifier: Text string for system identifier. Must be < 100 characters
31
+ and not contain any EnergyPlus special characters. This will be used to
32
+ identify the object across a model and in the exported IDF.
33
+ vintage: Text for the vintage of the template system. This will be used
34
+ to set efficiencies for various pieces of equipment within the system.
35
+ Choose from the following.
36
+
37
+ * DOE_Ref_Pre_1980
38
+ * DOE_Ref_1980_2004
39
+ * ASHRAE_2004
40
+ * ASHRAE_2007
41
+ * ASHRAE_2010
42
+ * ASHRAE_2013
43
+ * ASHRAE_2016
44
+ * ASHRAE_2019
45
+
46
+ equipment_type: Text for the specific type of the system and equipment. (Default:
47
+ the first option below) Choose from.
48
+
49
+ * Radiant_Chiller_Boiler
50
+ * Radiant_Chiller_ASHP
51
+ * Radiant_Chiller_DHW
52
+ * Radiant_ACChiller_Boiler
53
+ * Radiant_ACChiller_ASHP
54
+ * Radiant_ACChiller_DHW
55
+ * Radiant_DCW_Boiler
56
+ * Radiant_DCW_ASHP
57
+ * Radiant_DCW_DHW
58
+
59
+ radiant_type: Text to indicate which faces are thermally active. Note
60
+ that systems are assumed to be embedded in concrete slabs unless
61
+ CeilingMetalPanel or FloorWithHardwood is specified. Choose from the
62
+ following. (Default: Floor).
63
+
64
+ * Floor
65
+ * Ceiling
66
+ * FloorWithCarpet
67
+ * CeilingMetalPanel
68
+ * FloorWithHardwood
69
+
70
+ minimum_operation_time: A number for the minimum number of hours of operation
71
+ for the radiant system before it shuts off. Note that this has no effect
72
+ if the radiant_type is not in a slab. (Default: 1).
73
+ switch_over_time: A number for the minimum number of hours for when the system
74
+ can switch between heating and cooling. Note that this has no effect
75
+ if the radiant_type is not in a slab. (Default: 24).
76
+
77
+ Properties:
78
+ * identifier
79
+ * display_name
80
+ * vintage
81
+ * equipment_type
82
+ * radiant_type
83
+ * minimum_operation_time
84
+ * switch_over_time
85
+ * schedules
86
+ * has_district_heating
87
+ * has_district_cooling
88
+ * user_data
89
+ * properties
90
+ """
91
+ __slots__ = ('_radiant_type', '_minimum_operation_time', '_switch_over_time')
92
+
93
+ EQUIPMENT_TYPES = (
94
+ 'Radiant_Chiller_Boiler',
95
+ 'Radiant_Chiller_ASHP',
96
+ 'Radiant_Chiller_DHW',
97
+ 'Radiant_ACChiller_Boiler',
98
+ 'Radiant_ACChiller_ASHP',
99
+ 'Radiant_ACChiller_DHW',
100
+ 'Radiant_DCW_Boiler',
101
+ 'Radiant_DCW_ASHP',
102
+ 'Radiant_DCW_DHW'
103
+ )
104
+
105
+ radiant_typeS = ('Floor', 'Ceiling', 'FloorWithCarpet',
106
+ 'CeilingMetalPanel', 'FloorWithHardwood')
107
+
108
+ def __init__(self, identifier, vintage='ASHRAE_2019', equipment_type=None,
109
+ radiant_type='Floor', minimum_operation_time=1,
110
+ switch_over_time=24):
111
+ """Initialize HVACSystem."""
112
+ # initialize base HVAC system properties
113
+ _HeatCoolBase.__init__(self, identifier, vintage, equipment_type)
114
+
115
+ # set the main features of the HVAC system
116
+ self.radiant_type = radiant_type
117
+ self.minimum_operation_time = minimum_operation_time
118
+ self.switch_over_time = switch_over_time
119
+
120
+ @property
121
+ def radiant_type(self):
122
+ """Get or set text to indicate the type of radiant system."""
123
+ return self._radiant_type
124
+
125
+ @radiant_type.setter
126
+ def radiant_type(self, value):
127
+ clean_input = valid_string(value).lower()
128
+ for key in self.radiant_typeS:
129
+ if key.lower() == clean_input:
130
+ value = key
131
+ break
132
+ else:
133
+ raise ValueError(
134
+ 'radiant_type {} is not recognized.\nChoose from the '
135
+ 'following:\n{}'.format(value, self.radiant_typeS))
136
+ self._radiant_type = value
137
+
138
+ @property
139
+ def minimum_operation_time(self):
140
+ """Get or set a the minimum hours of operation before the system shuts off."""
141
+ return self._minimum_operation_time
142
+
143
+ @minimum_operation_time.setter
144
+ def minimum_operation_time(self, value):
145
+ self._minimum_operation_time = \
146
+ float_positive(value, 'hvac minimum operation time')
147
+
148
+ @property
149
+ def switch_over_time(self):
150
+ """Get or set the minimum hours the system can switch between heating/cooling."""
151
+ return self._switch_over_time
152
+
153
+ @switch_over_time.setter
154
+ def switch_over_time(self, value):
155
+ self._switch_over_time = float_positive(value, 'hvac switch over time')
156
+
157
+ @classmethod
158
+ def from_dict(cls, data):
159
+ """Create a HVAC object from a dictionary.
160
+
161
+ Args:
162
+ data: A dictionary in following the format below.
163
+
164
+ .. code-block:: python
165
+
166
+ {
167
+ "type": "", # text for the class name of the HVAC
168
+ "identifier": "Classroom1_System", # identifier for the HVAC
169
+ "display_name": "Standard System", # name for the HVAC
170
+ "vintage": "ASHRAE_2019", # text for the vintage of the template
171
+ "equipment_type": "", # text for the HVAC equipment type
172
+ "radiant_type": "Ceiling",
173
+ "minimum_operation_time": 1,
174
+ "switch_over_time": 24
175
+ }
176
+ """
177
+ assert data['type'] == cls.__name__, \
178
+ 'Expected {} dictionary. Got {}.'.format(cls.__name__, data['type'])
179
+ # extract the key features and properties of the HVAC
180
+ f_type, mot, sot = cls._radiant_properties_from_dict(data)
181
+ new_obj = cls(data['identifier'], data['vintage'], data['equipment_type'],
182
+ f_type, mot, sot)
183
+ if 'display_name' in data and data['display_name'] is not None:
184
+ new_obj.display_name = data['display_name']
185
+ if 'user_data' in data and data['user_data'] is not None:
186
+ new_obj.user_data = data['user_data']
187
+ return new_obj
188
+
189
+ @classmethod
190
+ def from_dict_abridged(cls, data, schedule_dict):
191
+ """Create a HVAC object from an abridged dictionary.
192
+
193
+ Args:
194
+ data: An abridged dictionary in following the format below.
195
+ schedule_dict: A dictionary with schedule identifiers as keys and honeybee
196
+ schedule objects as values (either ScheduleRuleset or
197
+ ScheduleFixedInterval). These will be used to assign the schedules
198
+ to the Setpoint object.
199
+
200
+ .. code-block:: python
201
+
202
+ {
203
+ "type": "", # text for the class name of the HVAC
204
+ "identifier": "Classroom1_System", # identifier for the HVAC
205
+ "display_name": "Standard System", # name for the HVAC
206
+ "vintage": "ASHRAE_2019", # text for the vintage of the template
207
+ "equipment_type": "", # text for the HVAC equipment type
208
+ "radiant_type": "Ceiling",
209
+ "minimum_operation_time": 1,
210
+ "switch_over_time": 24
211
+ }
212
+ """
213
+ # this is the same as the from_dict method for as long as there are not schedules
214
+ return cls.from_dict(data)
215
+
216
+ def to_dict(self, abridged=False):
217
+ """Radiant system dictionary representation.
218
+
219
+ Args:
220
+ abridged: Boolean to note whether the full dictionary describing the
221
+ object should be returned (False) or just an abridged version (True).
222
+ This input currently has no effect but may eventually have one if
223
+ schedule-type properties are exposed on this template.
224
+ """
225
+ base = {'type': self.__class__.__name__}
226
+ base['identifier'] = self.identifier
227
+ base['vintage'] = self.vintage
228
+ base['equipment_type'] = self.equipment_type
229
+ base['radiant_type'] = self.radiant_type
230
+ base['minimum_operation_time'] = self.minimum_operation_time
231
+ base['switch_over_time'] = self.switch_over_time
232
+ if self._display_name is not None:
233
+ base['display_name'] = self.display_name
234
+ if self._user_data is not None:
235
+ base['user_data'] = self.user_data
236
+ return base
237
+
238
+ @staticmethod
239
+ def _radiant_properties_from_dict(data):
240
+ """Extract basic radiant properties from a dictionary and assign defaults."""
241
+ mot = data['minimum_operation_time'] if 'minimum_operation_time' in data else 1
242
+ sot = data['switch_over_time'] if 'switch_over_time' in data else 24
243
+ rad_type = data['radiant_type'] if 'radiant_type' in data and \
244
+ data['radiant_type'] is not None else 'Floor'
245
+ return rad_type, mot, sot
246
+
247
+ def __copy__(self):
248
+ new_obj = self.__class__(
249
+ self._identifier, self._vintage, self._equipment_type,
250
+ self._radiant_type, self._minimum_operation_time,
251
+ self._switch_over_time)
252
+ new_obj._display_name = self._display_name
253
+ new_obj._user_data = None if self._user_data is None else self._user_data.copy()
254
+ return new_obj
255
+
256
+ def __key(self):
257
+ """A tuple based on the object properties, useful for hashing."""
258
+ return (self._identifier, self._vintage, self._equipment_type,
259
+ self._radiant_type, self._minimum_operation_time,
260
+ self._switch_over_time)
261
+
262
+ def __hash__(self):
263
+ return hash(self.__key())
264
+
265
+ def __eq__(self, other):
266
+ return isinstance(other, self.__class__) and self.__key() == other.__key()
267
+
268
+ def __ne__(self, other):
269
+ return not self.__eq__(other)
@@ -0,0 +1,77 @@
1
+ # coding=utf-8
2
+ """Residential Air Conditioning, Heat Pump or Furnace system."""
3
+ from __future__ import division
4
+
5
+ from ._base import _HeatCoolBase
6
+
7
+ from honeybee._lockable import lockable
8
+
9
+
10
+ @lockable
11
+ class Residential(_HeatCoolBase):
12
+ """Residential Air Conditioning, Heat Pump or Furnace system.
13
+
14
+ Residential HVAC systems are intended primarily for single-family homes and
15
+ include a wide variety of options. In all cases, each room/zone will receive
16
+ its own air loop WITHOUT an outdoor air inlet (air is simply being recirculated
17
+ through the loop). Residential air conditioning (AC) systems are modeled
18
+ using a unitary system with a single-speed direct expansion (DX) cooling
19
+ coil in the loop. Residential heat pump (HP) systems use a single-speed DX
20
+ heating coil in the unitary system and the residential furnace option uses
21
+ a gas coil in the unitary system. In all cases, the properties of these coils
22
+ are set to reflect a typical residential system.
23
+
24
+ Args:
25
+ identifier: Text string for system identifier. Must be < 100 characters
26
+ and not contain any EnergyPlus special characters. This will be used to
27
+ identify the object across a model and in the exported IDF.
28
+ vintage: Text for the vintage of the template system. This will be used
29
+ to set efficiencies for various pieces of equipment within the system.
30
+ Choose from the following.
31
+
32
+ * DOE_Ref_Pre_1980
33
+ * DOE_Ref_1980_2004
34
+ * ASHRAE_2004
35
+ * ASHRAE_2007
36
+ * ASHRAE_2010
37
+ * ASHRAE_2013
38
+ * ASHRAE_2016
39
+ * ASHRAE_2019
40
+
41
+ equipment_type: Text for the specific type of the system and equipment. (Default:
42
+ the first option below) Choose from.
43
+
44
+ * ResidentialAC_ElectricBaseboard
45
+ * ResidentialAC_BoilerBaseboard
46
+ * ResidentialAC_ASHPBaseboard
47
+ * ResidentialAC_DHWBaseboard
48
+ * ResidentialAC_ResidentialFurnace
49
+ * ResidentialAC
50
+ * ResidentialHP
51
+ * ResidentialHPNoCool
52
+ * ResidentialFurnace
53
+
54
+ Properties:
55
+ * identifier
56
+ * display_name
57
+ * vintage
58
+ * equipment_type
59
+ * schedules
60
+ * has_district_heating
61
+ * has_district_cooling
62
+ * user_data
63
+ * properties
64
+ """
65
+ __slots__ = ()
66
+
67
+ EQUIPMENT_TYPES = (
68
+ 'ResidentialAC_ElectricBaseboard',
69
+ 'ResidentialAC_BoilerBaseboard',
70
+ 'ResidentialAC_ASHPBaseboard',
71
+ 'ResidentialAC_DHWBaseboard',
72
+ 'ResidentialAC_ResidentialFurnace',
73
+ 'ResidentialAC',
74
+ 'ResidentialHP',
75
+ 'ResidentialHPNoCool',
76
+ 'ResidentialFurnace'
77
+ )
@@ -0,0 +1,54 @@
1
+ # coding=utf-8
2
+ """Variable Refrigerant Flow (VRF) heating/cooling system (with no ventilation)."""
3
+ from __future__ import division
4
+
5
+ from ._base import _HeatCoolBase
6
+
7
+ from honeybee._lockable import lockable
8
+
9
+
10
+ @lockable
11
+ class VRF(_HeatCoolBase):
12
+ """Variable Refrigerant Flow (VRF) heating/cooling system (with no ventilation).
13
+
14
+ Each room/zone receives its own Variable Refrigerant Flow (VRF) terminal,
15
+ which meets the heating and cooling loads of the space. All room/zone terminals
16
+ are connected to the same outdoor unit, meaning that either all rooms must be
17
+ in cooling or heating mode together.
18
+
19
+ Args:
20
+ identifier: Text string for system identifier. Must be < 100 characters
21
+ and not contain any EnergyPlus special characters. This will be used to
22
+ identify the object across a model and in the exported IDF.
23
+ vintage: Text for the vintage of the template system. This will be used
24
+ to set efficiencies for various pieces of equipment within the system.
25
+ Choose from the following.
26
+
27
+ * DOE_Ref_Pre_1980
28
+ * DOE_Ref_1980_2004
29
+ * ASHRAE_2004
30
+ * ASHRAE_2007
31
+ * ASHRAE_2010
32
+ * ASHRAE_2013
33
+ * ASHRAE_2016
34
+ * ASHRAE_2019
35
+
36
+ equipment_type: Text for the specific type of the system and equipment. (Default:
37
+ the first option below) Choose from.
38
+
39
+ * VRF
40
+
41
+ Properties:
42
+ * identifier
43
+ * display_name
44
+ * vintage
45
+ * equipment_type
46
+ * schedules
47
+ * has_district_heating
48
+ * has_district_cooling
49
+ * user_data
50
+ * properties
51
+ """
52
+ __slots__ = ()
53
+
54
+ EQUIPMENT_TYPES = ('VRF',)
@@ -0,0 +1,70 @@
1
+ # coding=utf-8
2
+ """Window Air Conditioning cooling system (with optional heating)."""
3
+ from __future__ import division
4
+
5
+ from ._base import _HeatCoolBase
6
+
7
+ from honeybee._lockable import lockable
8
+
9
+
10
+ @lockable
11
+ class WindowAC(_HeatCoolBase):
12
+ """Window Air Conditioning cooling system (with optional heating).
13
+
14
+ Each room/zone will receive its own Packaged Terminal Air Conditioner (PTAC)
15
+ with properties set to reflect a typical window air conditioning (AC) unit.
16
+ No ventilation air is supplied by the unit and the cooling coil within the
17
+ unit is a single-speed direct expansion (DX) cooling coil. Heating loads
18
+ can be met with various options, including several types of baseboards,
19
+ a furnace, or gas unit heaters.
20
+
21
+ Args:
22
+ identifier: Text string for system identifier. Must be < 100 characters
23
+ and not contain any EnergyPlus special characters. This will be used to
24
+ identify the object across a model and in the exported IDF.
25
+ vintage: Text for the vintage of the template system. This will be used
26
+ to set efficiencies for various pieces of equipment within the system.
27
+ Choose from the following.
28
+
29
+ * DOE_Ref_Pre_1980
30
+ * DOE_Ref_1980_2004
31
+ * ASHRAE_2004
32
+ * ASHRAE_2007
33
+ * ASHRAE_2010
34
+ * ASHRAE_2013
35
+ * ASHRAE_2016
36
+ * ASHRAE_2019
37
+
38
+ equipment_type: Text for the specific type of the system and equipment. (Default:
39
+ the first option below) Choose from.
40
+
41
+ * WindowAC_ElectricBaseboard
42
+ * WindowAC_BoilerBaseboard
43
+ * WindowAC_ASHPBaseboard
44
+ * WindowAC_DHWBaseboard
45
+ * WindowAC_Furnace
46
+ * WindowAC_GasHeaters
47
+ * WindowAC
48
+
49
+ Properties:
50
+ * identifier
51
+ * display_name
52
+ * vintage
53
+ * equipment_type
54
+ * schedules
55
+ * has_district_heating
56
+ * has_district_cooling
57
+ * user_data
58
+ * properties
59
+ """
60
+ __slots__ = ()
61
+
62
+ EQUIPMENT_TYPES = (
63
+ 'WindowAC_ElectricBaseboard',
64
+ 'WindowAC_BoilerBaseboard',
65
+ 'WindowAC_ASHPBaseboard',
66
+ 'WindowAC_DHWBaseboard',
67
+ 'WindowAC_Furnace',
68
+ 'WindowAC_GasHeaters',
69
+ 'WindowAC'
70
+ )
@@ -0,0 +1,62 @@
1
+ # coding=utf-8
2
+ """Water Source Heat Pump (WSHP) heating/cooling system (with no ventilation)."""
3
+ from __future__ import division
4
+
5
+ from ._base import _HeatCoolBase
6
+
7
+ from honeybee._lockable import lockable
8
+
9
+
10
+ @lockable
11
+ class WSHP(_HeatCoolBase):
12
+ """Water Source Heat Pump (WSHP) heating/cooling system (with no ventilation).
13
+
14
+ Each room/zone receives its own Water Source Heat Pump (WSHP), which meets
15
+ the heating and cooling loads of the space. All WSHPs are connected to the
16
+ same water condenser loop, which has its temperature maintained by the
17
+ equipment_type (eg. Boiler with Cooling Tower).
18
+
19
+ Args:
20
+ identifier: Text string for system identifier. Must be < 100 characters
21
+ and not contain any EnergyPlus special characters. This will be used to
22
+ identify the object across a model and in the exported IDF.
23
+ vintage: Text for the vintage of the template system. This will be used
24
+ to set efficiencies for various pieces of equipment within the system.
25
+ Choose from the following.
26
+
27
+ * DOE_Ref_Pre_1980
28
+ * DOE_Ref_1980_2004
29
+ * ASHRAE_2004
30
+ * ASHRAE_2007
31
+ * ASHRAE_2010
32
+ * ASHRAE_2013
33
+ * ASHRAE_2016
34
+ * ASHRAE_2019
35
+
36
+ equipment_type: Text for the specific type of the system and equipment. (Default:
37
+ the first option below) Choose from.
38
+
39
+ * WSHP_FluidCooler_Boiler
40
+ * WSHP_CoolingTower_Boiler
41
+ * WSHP_GSHP
42
+ * WSHP_DCW_DHW
43
+
44
+ Properties:
45
+ * identifier
46
+ * display_name
47
+ * vintage
48
+ * equipment_type
49
+ * schedules
50
+ * has_district_heating
51
+ * has_district_cooling
52
+ * user_data
53
+ * properties
54
+ """
55
+ __slots__ = ()
56
+
57
+ EQUIPMENT_TYPES = (
58
+ 'WSHP_FluidCooler_Boiler',
59
+ 'WSHP_CoolingTower_Boiler',
60
+ 'WSHP_GSHP',
61
+ 'WSHP_DCW_DHW'
62
+ )