March 29, 2026
🌅 Morning Cycle (18:07 MDT) — iris-20260329-0000
Observations
Sat evening 6PM: 74F/37% RH indoor, VPD 1.83 avg (north 2.03 worst). ESP32 in COOL_S3_HUM_IDLE — CRITICAL: temp_high=0 causing premature cooling staging. Overnight mild (55-61F, no frost). Sunday forecast: 55F→81F outdoor, 7-10% RH at peak, 93% avg cloud, VPD outdoor 3.0+ kPa. Very similar to Saturday but slightly cooler peak.
Hypothesis & Experiment
Hypothesis: Fixing temp_high=0→82 will eliminate COOL_S3 at room temp, saving fan energy overnight and enabling proper staging. Sunday VPD stress should improve vs Saturday due to: (1) proper COOL staging letting fans+vent activate only when temp actually warrants it, (2) Lesson #4 misting settings applied cleanly from 6AM, (3) mister engage at 1.3 + 30s gap validated settings.
Test: temp_high=0→82 fix: compare overnight fan runtime tonight vs last night (should drop 80%+). Sunday: clean test of Lesson #4 misting (engage 1.3, gap 30s, pulse 60s) with correct cooling staging — first time all params correct simultaneously.
Expected outcome: Overnight fan runtime <1h (vs current ~5h/day). Sunday VPD-high zone-hours <25 (vs Saturday 32.1). Cooling stages properly: COOL_S1 at 82F, S2 at 85F, S3 at 87F.
Setpoint Waypoints
Saturday March 28
| Time | high | low | vpd_h | hyst | d_cool | engage | all | pulse | gap | wt | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 18:05 | 82 | · | · | · | · | · | · | · | · | · | CRITICAL FIX: temp_high was 0, causing C |
| 18:07 | · | 60 | · | 0.3 | 3 | · | · | · | · | 1.5 | Backfilled core param for chart continui |
| 19:00 | · | · | 2 | · | · | 1.6 | 2 | · | 45 | · | Evening restore: normal all-zone thresho |
Sunday March 29
| Time | high | low | vpd_h | hyst | d_cool | engage | all | pulse | gap | wt | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 06:00 | · | · | 1.6 | · | · | 1.3 | 1.6 | 60 | 30 | · | Sunday morning: all-zone rotation early |
| 19:00 | · | · | 2 | · | · | 1.6 | 2 | · | 45 | · | Sunday evening restore. |
Parameters changed: temp_high,mister_engage_kpa,mister_all_kpa,vpd_high,mister_pulse_gap_s,mister_pulse_on_s
Outcome
Score: 7/10
temp_high=82 fix confirmed working: fans OFF since 10:46 PM MDT Sat (7+ hours). Indoor held 60-63F overnight with no heater activation, no cooling waste. 6AM aggressive misting waypoints partially dispatched (3/5 params made it: engage=1.3, vpd_high=1.6, pulse_on=60s. BUT mister_all_kpa and mister_pulse_gap_s failed to dispatch — still at evening-restore values 2.0 and 45s respectively). Sunday daytime misting test cannot be scored yet.
Lesson: Dispatcher does not reliably push all waypoints in a batch. Always verify /setpoints output for ALL params after a plan dispatch window. Two of 5 params at 6AM were silently missed.
🌅 Morning Cycle (06:06 MDT) — iris-20260329-0600
Observations
Sunday 6AM: 61F indoor, VPD 0.43, RH 77%. Outdoor ~50F. Forecast: 80F peak, 7-10% RH afternoon, 97% cloud cover midday (diffused solar reduces peak temps). VPD ramp 9AM-1PM from 1.6→3.0 kPa outdoor. System health 99/100. temp_high=82 fix confirmed overnight (no fan waste).
Hypothesis & Experiment
Hypothesis: With temp_high=82 now correct, cooling stages properly: COOL_S1 at 82F (fans), COOL_S2 at 85F (both fans), COOL_S3 at 87F (fog). Combined with Lesson #4 aggressive misting (engage 1.3, gap 30s, pulse 60s), the misting and cooling systems will work cooperatively instead of fighting. High cloud cover (97%) should limit peak indoor to ~88-90F vs 95F+ on clear days. Key difference vs yesterday: fans wont exhaust humid air until temp actually warrants it.
Test: Fix 2 dropped params (mister_all_kpa 2.0→1.6, gap 45→30) that the 6AM dispatch missed. First clean full-parameter test of Lesson #4 misting with correct cooling staging under cloudy-dry conditions.
Expected outcome: VPD-high zone-hours <20 (vs Sat 24.9h). Fan runtime < 4h (only daytime, not overnight). Overnight Sat fan runtime was 0h — validated. Sunday should be physics-limited by 80F/7% RH, but clouds help.
Setpoint Waypoints
Sunday March 29
| Time | high | low | vpd_h | hyst | d_cool | engage | all | pulse | gap | wt | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 06:02 | 82 | · | · | · | · | · | 1.6 | · | 30 | · | Fix: failed to dispatch from iris-202603 |
| 06:03 | · | · | 1.6 | · | · | 1.3 | · | · | · | · | Confirm engage=1.3 for dry day per Lesso |
| 06:06 | · | 58 | · | 0.3 | 3 | · | · | 60 | · | 1.5 | Backfilled core param for chart continui |
| 19:00 | · | · | 2 | · | · | 1.6 | 2 | · | 45 | · | Sunday evening restore. |
Parameters changed: mister_all_kpa,mister_pulse_gap_s,temp_high
Outcome
Score: 6/10
Partially achieved. temp_high=82 staging works correctly — fans only ran during daytime peaks (3.7h fan1, 3.75h fan2). Overnight fan runtime confirmed 0h. But reactive planner intervened at 11:11 AM pushing vpd_high=1.4 and pulse_on=75s, overriding the planned 1.6/60s. VPD-high zone-hours at noon: south 3.0h, north 2.8h, east 0.1h, west 0.4h = 6.3 total in first 6h. On pace for ~12-15 for full day (target was <20). North zone unexpectedly high VPD (2.13 at noon) despite house buffering. Clean Lesson #4 test confounded by reactive override.
Lesson: Reactive planner can override regular plan mid-cycle. Need to either disable reactive during clean experiments or have regular planner set guard rails the reactive cannot exceed.
☀️ Midday Cycle (12:07 MDT) — iris-20260329-1200
Observations
Sunday noon: 78.6F avg, VPD 1.67 (moderate), outdoor 76F/18% RH. Zone VPD: north 2.13 (highest), south 1.71, west 1.72, east 1.34. Clear sky. Reactive planner pushed vpd_high=1.4 and pulse_on=75s at 11:11 AM. Monday forecast: overcast 100%, high ~77F, outdoor RH 10-14%. Stress so far today: south 3.0h VPD-high, north 2.8h.
Hypothesis & Experiment
Hypothesis: Reverting reactive overrides (pulse_on back to 60s) combined with continued Lesson #4 misting params will reduce afternoon VPD stress while maintaining the 60s pulse sweet spot. North zone VPD is high (2.13) likely due to house thermal mass retaining morning heat — misters cant reach north effectively. Monday overcast will cut solar gain but outdoor RH still bone-dry, so VPD stress will persist.
Test: Revert reactive mister_pulse_on_s 75→60s immediately. Test whether 60s (validated sweet spot) outperforms reactives 75s for VPD control this afternoon. Compare afternoon VPD-high zone-hours with 60s vs the mornings 75s.
Expected outcome: Afternoon VPD-high zone-hours (12PM-7PM): south <4h, total <12h. If 60s pulse resumes superior VPD drops, consider adding a constraint to prevent reactive planner from overriding pulse_on_s.
Setpoint Waypoints
Sunday March 29
| Time | high | low | vpd_h | hyst | d_cool | engage | all | pulse | gap | wt | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 12:05 | 82 | · | · | · | · | · | · | 60 | · | · | Override reactive 75s→60s. Lesson #4: 60 |
| 12:07 | · | 60 | · | 0.3 | 3 | · | · | · | · | 1.5 | Backfilled core param for chart continui |
| 19:00 | · | · | 2 | · | · | 1.6 | 2 | · | 45 | · | Sunday evening restore. |
Monday March 30
| Time | high | low | vpd_h | hyst | d_cool | engage | all | pulse | gap | wt | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 06:00 | 82 | · | 1.6 | · | · | 1.3 | 1.6 | 60 | 30 | · | Monday aggressive misting zone rotation. |
Parameters changed: mister_pulse_on_s,temp_high,vpd_high,mister_engage_kpa,mister_all_kpa,mister_pulse_gap_s
Outcome
Score: 4/10
VPD spiked to 3.10-3.25 avg at 3-4PM (south 3.60 at 4PM). Reverted pulse_on from 75→60s at noon, but outdoor RH 9-11% with 87°F+ indoor made VPD control impossible. 10h heat stress, 47.4h VPD zone-hours for the day. 60s pulse is still the validated sweet spot, but marginal vs 75s on a day this extreme.
Lesson: On days with outdoor RH <15% and peak indoor >87°F, VPD >3.0 kPa at peak is structural regardless of pulse tuning. The 60s vs 75s choice is marginal — shade cloth is the only real fix for peak VPD on extreme dry days.
🌆 Evening Cycle (18:05 MDT) — iris-20260329-1800
Observations
Sunday 6PM: 80°F avg, VPD 2.29 (falling), RH 36%. Today was hot+dry — 89°F/3.25 kPa peak afternoon. 10h heat stress, 47.4h VPD zone-hours. Tomorrow: overcast (89-95% clouds) but still bone-dry (9-12% outdoor RH). Forecast high 78°F outdoor (+3°F bias → 81°F). Indoor peak likely 82-88°F (clouds cut solar gain). Precip prob 7-13% — not enough to help RH.
Hypothesis & Experiment
Hypothesis: Overcast sky will cut solar heat gain by 40-60% vs clear, reducing indoor peak temps by 5-10°F. However, outdoor RH remains extremely low (9-12%), so VPD stress will persist despite lower temps. Lesson #7 misting (engage 1.3, gap 30s) should be more effective at lower temps because misters can influence a smaller thermal load.
Test: First clean test of Lesson #7 misting on an overcast-but-dry day. Engage 1.3 + gap 30s starts 6AM Monday. Compare Monday VPD zone-hours vs today (47.4h) with similar outdoor RH but lower temps from clouds.
Expected outcome: Monday VPD-high zone-hours < 30 (vs 47.4 today). Peak indoor temp < 88°F (vs 89°F today). Grow lights extend 3-4h for DLI compensation (overcast alert).
Setpoint Waypoints
Sunday March 29
| Time | high | low | vpd_h | hyst | d_cool | engage | all | pulse | gap | wt | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 18:00 | 82 | 60 | 1.6 | 0.3 | 3 | 1.5 | 1.8 | 60 | 45 | 1.5 | Standard staging. |
| 19:00 | 82 | 58 | 2 | 0.3 | 3 | 1.6 | 2 | 60 | 45 | 1.5 | COOL_S2 at 85°F. Standard staging. |
Monday March 30
| Time | high | low | vpd_h | hyst | d_cool | engage | all | pulse | gap | wt | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 06:00 | 82 | 60 | 1.6 | 0.3 | 3 | 1.3 | 1.6 | 60 | 30 | 1.5 | Standard. COOL_S2 at 85°F. |
| 19:00 | 82 | 58 | 2 | 0.3 | 3 | 1.6 | 2 | 60 | 45 | 1.5 | Standard. |
Parameters changed: vpd_high,mister_engage_kpa,mister_all_kpa,mister_pulse_gap_s
Outcome
Score: 6/10
Overnight Sun→Mon was mild and stress-free (VPD <1.0, temp 61-70°F). Monday morning at 9:26AM: 70.4°F, VPD 0.81, RH 68.4%. Only 2h VPD stress accumulated (from late Sunday carry-over, not Monday). The experimental conditions changed dramatically: forecast predicted 9-12% outdoor RH for Monday, but a cold front arrived bringing 68%+ RH and a 17°F temp drop. Misters never engaged because VPD stayed well below engage threshold. The Lesson #7 misting experiment (engage 1.3, gap 30s) is a wash — conditions never triggered it.
Lesson: Forecasts can shift overnight. Evening plans that set aggressive misting for next-day dry conditions may waste a plan cycle when weather changes. Consider: morning plans should re-evaluate evening assumptions before committing to experimental misting postures.
7-Day Stress Context
| Date | Heat (h) | VPD High (h) | Cold (h) |
|---|---|---|---|
| 2026-03-23 | 1.8 | 6.6 | 0.0 |
| 2026-03-24 | 3.6 | 8.4 | 0.0 |
| 2026-03-25 | 8.7 | 14.2 | 0.0 |
| 2026-03-26 | 3.5 | 9.9 | 0.0 |
| 2026-03-27 | 0.0 | 0.0 | 0.0 |
| 2026-03-28 | 0.6 | 3.0 | 0.0 |
| 2026-03-29 | 5.5 | 8.6 | 0.0 |
End-of-Day Summary
Climate
| Metric | Min | Avg | Max |
|---|---|---|---|
| Temperature (°F) | 59.9 | 72.0 | 93.3 |
| VPD (kPa) | 0.38 | 1.21 | 3.89 |
| Relative Humidity (%) | 22.3 | — | 79.1 |
Stress Hours
- Heat stress (>85°F): 5.5h
- VPD stress (>2.0 kPa): 8.6h
- Cold stress (<55°F): 0.0h
Economics
| Electric | Gas | Water | Total |
|---|---|---|---|
| $1.68 | $0.06 | $1.130 | $2.87 |
Equipment Runtimes
| Equipment | Runtime |
|---|---|
| Fan 1 | 427 min |
| Fan 2 | 422 min |
| Vent | 459 min |
| Fog | 80 min |
| Heat 1 (electric) | 6 min |
| Heat 2 (gas) | 6 min |
| Grow lights | 956 min |
| Mister south | 0.45h |
| Mister west | 0.12h |
| Mister center | 0.66h |
Water
- Total: 233 gal
- Mister: 39 gal
Hourly Pattern
| Hour | Temp °F | VPD kPa | RH % |
|---|---|---|---|
| 12:00 | 79.0 | 1.92 | 43.3 |
| 13:00 | 83.0 | 2.11 | 45.5 |
| 14:00 | 82.9 | 1.89 | 51.5 |
| 15:00 | 81.0 | 1.51 | 58.2 |
| 16:00 | 76.4 | 1.51 | 51.4 |
| 17:00 | 78.0 | 1.50 | 53.9 |
| 18:00 | 75.6 | 1.51 | 50.0 |
| 19:00 | 74.8 | 1.02 | 65.4 |
| 20:00 | 71.6 | 1.36 | 48.1 |
| 21:00 | 70.4 | 1.09 | 56.9 |
| 22:00 | 70.3 | 1.10 | 56.4 |
| 23:00 | 69.0 | 0.97 | 60.1 |
| 00:00 | 67.0 | 0.72 | 68.2 |
| 01:00 | 65.5 | 0.60 | 71.9 |
| 02:00 | 64.2 | 0.53 | 74.0 |
| 03:00 | 63.3 | 0.49 | 75.5 |
| 04:00 | 62.4 | 0.46 | 76.3 |
| 05:00 | 61.3 | 0.43 | 76.9 |
| 06:00 | 61.4 | 0.44 | 76.7 |
| 07:00 | 61.4 | 0.45 | 76.0 |
| 08:00 | 63.6 | 0.53 | 73.7 |
| 09:00 | 66.7 | 0.62 | 72.4 |
| 10:00 | 78.6 | 1.36 | 60.3 |
| 11:00 | 78.8 | 1.68 | 50.3 |