honeybee-openstudio 2.38.8 → 2.38.9
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/honeybee-openstudio.gemspec +1 -1
- data/lib/to_openstudio/hvac/radiant.rb +11 -112
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2f2bfb60c9779aff40ac4d86c6d2d3416fd1c34722b5378874b6b85cceaf8cd
|
4
|
+
data.tar.gz: e1638526a3701c0035efdb8695fdbb026364ecc85c42a38e262de43e9beb729f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 619bfa717c81e91aea5f481a6f86f538fb7c1cb4a508b4e8fa1695826096bde37e892de9fae98b3df71036c295b1ba2aed9f5f008a154e8ecfee2b6643e8b9e8
|
7
|
+
data.tar.gz: 22b5002543933e86a89192ae2fb6e0780306ca94308fd808651c93135f0f9f67145894e04f6188ac330d4345fb13ea49c8709dff26869af4eb6ea08548d77267
|
data/honeybee-openstudio.gemspec
CHANGED
@@ -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.38.
|
7
|
+
spec.version = '2.38.9'
|
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
|
|
@@ -128,20 +128,12 @@ class OpenStudio::Model::Model
|
|
128
128
|
end
|
129
129
|
|
130
130
|
# get the various controls for the radiant system
|
131
|
-
if rad_props[:minimum_operation_time]
|
132
|
-
minimum_operation = rad_props[:minimum_operation_time]
|
133
|
-
else
|
134
|
-
minimum_operation = 1
|
135
|
-
end
|
136
131
|
if rad_props[:switch_over_time]
|
137
132
|
switch_over_time = rad_props[:switch_over_time]
|
138
133
|
else
|
139
134
|
switch_over_time = 24
|
140
135
|
end
|
141
136
|
|
142
|
-
# get the start and end hour from the input zones
|
143
|
-
start_hour, end_hour = start_end_hour_from_zones_occupancy(zones)
|
144
|
-
|
145
137
|
# add radiant system to the conditioned zones
|
146
138
|
include_carpet = false
|
147
139
|
control_strategy = 'proportional_control'
|
@@ -162,9 +154,6 @@ class OpenStudio::Model::Model
|
|
162
154
|
radiant_type: radiant_type,
|
163
155
|
control_strategy: control_strategy,
|
164
156
|
include_carpet: include_carpet,
|
165
|
-
model_occ_hr_start: start_hour,
|
166
|
-
model_occ_hr_end: end_hour,
|
167
|
-
minimum_operation: minimum_operation,
|
168
157
|
switch_over_time: switch_over_time,
|
169
158
|
cz_mult: cz_mult)
|
170
159
|
|
@@ -175,93 +164,6 @@ class OpenStudio::Model::Model
|
|
175
164
|
|
176
165
|
end
|
177
166
|
|
178
|
-
# get the start and end hour from the occupancy schedules of thermal zones
|
179
|
-
def start_end_hour_from_zones_occupancy(thermal_zones, threshold: 0.1)
|
180
|
-
# set the default start and end hour in the event there's no occupancy
|
181
|
-
start_hour = 12
|
182
|
-
end_hour = 12
|
183
|
-
# loop through the occupancy schedules and get the lowest start hour; highest end hour
|
184
|
-
thermal_zones.each do |zone|
|
185
|
-
zone.spaces.each do |space|
|
186
|
-
# gather all of the people objects assigned to the sapce
|
187
|
-
peoples = []
|
188
|
-
unless space.spaceType.empty?
|
189
|
-
space_type = space.spaceType.get
|
190
|
-
unless space_type.people.empty?
|
191
|
-
space_type.people.each do |ppl|
|
192
|
-
peoples << ppl
|
193
|
-
end
|
194
|
-
end
|
195
|
-
end
|
196
|
-
space.people.each do |ppl|
|
197
|
-
peoples << ppl
|
198
|
-
end
|
199
|
-
# loop through the pople and gather all occupancy schedules
|
200
|
-
peoples.each do |people|
|
201
|
-
occupancy_sch_opt = people.numberofPeopleSchedule
|
202
|
-
unless occupancy_sch_opt.empty?
|
203
|
-
occupancy_sch = occupancy_sch_opt.get
|
204
|
-
if occupancy_sch.to_ScheduleRuleset.is_initialized
|
205
|
-
occupancy_sch = occupancy_sch.to_ScheduleRuleset.get
|
206
|
-
# gather all of the day schedules across the schedule ruleset
|
207
|
-
schedule_days, day_ids = [], []
|
208
|
-
required_days = [
|
209
|
-
occupancy_sch.defaultDaySchedule,
|
210
|
-
occupancy_sch.summerDesignDaySchedule,
|
211
|
-
occupancy_sch.winterDesignDaySchedule,
|
212
|
-
occupancy_sch.holidaySchedule
|
213
|
-
]
|
214
|
-
required_days.each do |day_sch|
|
215
|
-
unless day_ids.include? day_sch.nameString
|
216
|
-
schedule_days << day_sch
|
217
|
-
day_ids << day_sch.nameString
|
218
|
-
end
|
219
|
-
end
|
220
|
-
occupancy_sch.scheduleRules.each do |schedule_rule|
|
221
|
-
day_sch = schedule_rule.daySchedule
|
222
|
-
unless day_ids.include? day_sch.nameString
|
223
|
-
schedule_days << day_sch
|
224
|
-
day_ids << day_sch.nameString
|
225
|
-
end
|
226
|
-
end
|
227
|
-
# loop through the day schedules and see if the start and end hours should be changed
|
228
|
-
schedule_days.each do |day_sch|
|
229
|
-
time_until = [1]
|
230
|
-
day_sch.times.each do |time|
|
231
|
-
time_until << time.hours
|
232
|
-
end
|
233
|
-
final_time = time_until[-2]
|
234
|
-
day_sch.values.zip(time_until).each do |value, time|
|
235
|
-
if value > threshold
|
236
|
-
if time < start_hour
|
237
|
-
start_hour = time
|
238
|
-
end
|
239
|
-
if time > end_hour
|
240
|
-
end_hour = time
|
241
|
-
end
|
242
|
-
if time == final_time
|
243
|
-
start_hour = 1
|
244
|
-
end_hour = 24
|
245
|
-
end
|
246
|
-
end
|
247
|
-
end
|
248
|
-
end
|
249
|
-
end
|
250
|
-
end
|
251
|
-
end
|
252
|
-
end
|
253
|
-
end
|
254
|
-
|
255
|
-
# if no values were set, just set the system to be on all of the time
|
256
|
-
if start_hour == 12 or start_hour == 0
|
257
|
-
start_hour = 1
|
258
|
-
end
|
259
|
-
if end_hour == 12
|
260
|
-
end_hour = 24
|
261
|
-
end
|
262
|
-
return start_hour, end_hour
|
263
|
-
end
|
264
|
-
|
265
167
|
def model_add_low_temp_radiant(std,
|
266
168
|
thermal_zones,
|
267
169
|
hot_water_loop,
|
@@ -273,9 +175,6 @@ class OpenStudio::Model::Model
|
|
273
175
|
model_occ_hr_end: 24.0,
|
274
176
|
control_strategy: 'proportional_control',
|
275
177
|
proportional_gain: 0.3,
|
276
|
-
minimum_operation: 1,
|
277
|
-
weekend_temperature_reset: 2,
|
278
|
-
early_reset_out_arg: 20,
|
279
178
|
switch_over_time: 24.0,
|
280
179
|
cz_mult: 4)
|
281
180
|
|
@@ -598,18 +497,18 @@ class OpenStudio::Model::Model
|
|
598
497
|
# rename nodes before adding EMS code
|
599
498
|
std.rename_plant_loop_nodes(self)
|
600
499
|
|
500
|
+
# TODO: Un-comment this once these controls are fixed (Matt made a lot of changes for OpenStudio 3.8)
|
601
501
|
# set radiant loop controls
|
602
|
-
if control_strategy == 'proportional_control'
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
end
|
502
|
+
#if control_strategy == 'proportional_control'
|
503
|
+
# std.model_add_radiant_proportional_controls(self, zone, radiant_loop,
|
504
|
+
# radiant_temperature_control_type: 'SurfaceFaceTemperature',
|
505
|
+
# use_zone_occupancy_for_control: true,
|
506
|
+
# occupied_percentage_threshold: 0.10,
|
507
|
+
# model_occ_hr_start: model_occ_hr_start,
|
508
|
+
# model_occ_hr_end: model_occ_hr_end,
|
509
|
+
# proportional_gain: proportional_gain,
|
510
|
+
# switch_over_time: switch_over_time)
|
511
|
+
#end
|
613
512
|
end
|
614
513
|
|
615
514
|
return radiant_loops
|
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.38.
|
4
|
+
version: 2.38.9
|
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: 2024-
|
14
|
+
date: 2024-05-24 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: json_pure
|