March 29, 2026
Generated lab notebook from daily_summary, plan_journal, plan_delivery_log, and setpoint audit data. It is intentionally chronological and may include in-progress cycles before validation.
🌅 Morning Cycle (6:07 PM) — iris-20260329-0000
validated
7/10
temp_high, mister_engage_kpa, mister_all_kpa, vpd_high, mister_pulse_gap_s, mister_pulse_on_s
Reflection
Validating previous cycle: iris-20260328-1200
Previous hypothesis: Extending aggressive misting settings 1h later (7PM MDT vs 6PM) will capture the late-afternoon VPD tail that often persists 1-2h after peak temp. Following Lesson #4 with 30s gap (not 45s) for tomorrow should show better VPD control than todays 25s gap which was untested. Result: 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. Score: 7/10
New finding: 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. → Added to Lessons Learned
Hypothesis
Conditions: 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. Testing: 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.
Setpoints
Saturday March 28
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 18:05 | high 82 | CRITICAL FIX: temp_high was 0, causing COOL_S3 at room temp. |
| 18:07 | low 60; hyst 0.3 | Backfilled core param for chart continuity |
| 19:00 | vpd_h 2 | Evening restore: normal all-zone threshold. |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 18:07 | d_cool 3; wt 1.5 | Backfilled core param for chart continuity |
| 19:00 | engage 1.6; all 2; gap 45 | Evening restore: normal all-zone threshold. |
Sunday March 29
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | vpd_h 1.6 | Sunday morning: all-zone rotation early for 7% RH conditions |
| 19:00 | vpd_h 2 | Sunday evening restore. |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | engage 1.3; all 1.6; pulse 60; gap 30 | Sunday morning: all-zone rotation early for 7% RH conditions |
| 19:00 | engage 1.6; all 2; gap 45 | Sunday evening restore. |
🌅 Morning Cycle (6:06 AM) — iris-20260329-0600
validated
6/10
mister_all_kpa, mister_pulse_gap_s, temp_high
Reflection
Validating previous cycle: iris-20260329-0000
Previous 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. Result: 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. Score: 6/10
New finding: 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. → Added to Lessons Learned
Hypothesis
Conditions: 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). Testing: 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.
Setpoints
Sunday March 29
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 06:02 | high 82 | Fix: failed to dispatch from iris-20260329-0000. Per Lesson |
| 06:03 | vpd_h 1.6 | Confirm engage=1.3 for dry day per Lesson #4. |
| 06:06 | low 58; hyst 0.3 | Backfilled core param for chart continuity |
| 19:00 | vpd_h 2 | Sunday evening restore. |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 06:02 | all 1.6; gap 30 | Fix: failed to dispatch from iris-20260329-0000. Per Lesson |
| 06:03 | engage 1.3 | Confirm engage=1.3 for dry day per Lesson #4. |
| 06:06 | d_cool 3; pulse 60; wt 1.5 | Backfilled core param for chart continuity |
| 19:00 | engage 1.6; all 2; gap 45 | Sunday evening restore. |
☀️ Midday Cycle (12:07 PM) — iris-20260329-1200
validated
4/10
mister_pulse_on_s, temp_high, vpd_high, mister_engage_kpa, mister_all_kpa, mister_pulse_gap_s
Reflection
Validating previous cycle: iris-20260329-0600
Previous 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. Result: 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. Score: 4/10
New finding: 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. → Added to Lessons Learned
Hypothesis
Conditions: 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. Testing: 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.
Setpoints
Sunday March 29
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 12:05 | high 82 | Override reactive 75s→60s. Lesson #4: 60s is the sweet spot |
| 12:07 | low 60; hyst 0.3 | Backfilled core param for chart continuity |
| 19:00 | vpd_h 2 | Sunday evening restore. |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 12:05 | pulse 60 | Override reactive 75s→60s. Lesson #4: 60s is the sweet spot |
| 12:07 | d_cool 3; wt 1.5 | Backfilled core param for chart continuity |
| 19:00 | engage 1.6; all 2; gap 45 | Sunday evening restore. |
Monday March 30
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | high 82; vpd_h 1.6 | Monday aggressive misting zone rotation. |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | engage 1.3; all 1.6; pulse 60; gap 30 | Monday aggressive misting zone rotation. |
🌆 Evening Cycle (6:05 PM) — iris-20260329-1800
validated
6/10
vpd_high, mister_engage_kpa, mister_all_kpa, mister_pulse_gap_s
Reflection
Validating previous cycle: iris-20260329-0600
Result: 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. Score: 6/10
New finding: 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. → Added to Lessons Learned
Hypothesis
Conditions: 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. Testing: 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).
Setpoints
Sunday March 29
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 18:00 | high 82; low 60; vpd_h 1.6; hyst 0.3 | Standard staging. |
| 19:00 | high 82; low 58; vpd_h 2; hyst 0.3 | COOL_S2 at 85°F. Standard staging. |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 18:00 | d_cool 3; engage 1.5; all 1.8; pulse 60; gap 45; wt 1.5 | Standard staging. |
| 19:00 | d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5 | COOL_S2 at 85°F. Standard staging. |
Monday March 30
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | high 82; low 60; vpd_h 1.6; hyst 0.3 | Standard. COOL_S2 at 85°F. |
| 19:00 | high 82; low 58; vpd_h 2; hyst 0.3 | Standard. |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | d_cool 3; engage 1.3; all 1.6; pulse 60; gap 30; wt 1.5 | Standard. COOL_S2 at 85°F. |
| 19:00 | d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5 | Standard. |
End-of-Day Summary
Climate
59.9–93.3°F; avg 72.0°F
0.38–3.89 kPa; avg 1.21 kPa
22.3–79.1%
Stress Hours
- Heat stress (>85°F): 15.0h
- VPD stress (>2.0 kPa): 15.2h
- Cold stress (<55°F): 5.1h
Economics
USD 1.68
USD 0.06
USD 1.120
USD 2.86
Equipment Runtimes
| Equipment | Runtime | Reading |
|---|---|---|
| Fan 1 | 427 min | Primary exhaust runtime. |
| Fan 2 | 422 min | Secondary exhaust runtime. |
| Vent | 459 min | Intake vent runtime. |
| Fog | 80 min | Fogger runtime. |
| Heat 1 electric | 6 min | Electric heater runtime. |
| Heat 2 gas | 6 min | Gas heater runtime. |
| Grow lights | 956 min | Supplemental lighting runtime. |
| Mister south | 0.45h | South mister runtime. |
| Mister west | 0.12h | West mister runtime. |
| Mister center | 0.66h | Center mister runtime. |
Water
- Total: 231 gal
- Mister: 39 gal
Hourly Pattern
| Hour | Temperature | VPD | RH |
|---|---|---|---|
| 12:00 | 79.0°F | 1.92 kPa | 43.3% |
| 13:00 | 83.0°F | 2.11 kPa | 45.5% |
| 14:00 | 82.9°F | 1.89 kPa | 51.5% |
| 15:00 | 81.0°F | 1.51 kPa | 58.2% |
| 16:00 | 76.4°F | 1.51 kPa | 51.4% |
| 17:00 | 78.0°F | 1.50 kPa | 53.9% |
| 18:00 | 75.6°F | 1.51 kPa | 50.0% |
| 19:00 | 74.8°F | 1.02 kPa | 65.4% |
| 20:00 | 71.6°F | 1.36 kPa | 48.1% |
| 21:00 | 70.4°F | 1.09 kPa | 56.9% |
| 22:00 | 70.3°F | 1.10 kPa | 56.4% |
| 23:00 | 69.0°F | 0.97 kPa | 60.1% |
| 00:00 | 67.0°F | 0.72 kPa | 68.2% |
| 01:00 | 65.5°F | 0.60 kPa | 71.9% |
| 02:00 | 64.2°F | 0.53 kPa | 74.0% |
| 03:00 | 63.3°F | 0.49 kPa | 75.5% |
| 04:00 | 62.4°F | 0.46 kPa | 76.3% |
| 05:00 | 61.3°F | 0.43 kPa | 76.9% |
| 06:00 | 61.4°F | 0.44 kPa | 76.7% |
| 07:00 | 61.4°F | 0.45 kPa | 76.0% |
| 08:00 | 63.6°F | 0.53 kPa | 73.7% |
| 09:00 | 66.7°F | 0.62 kPa | 72.4% |
| 10:00 | 78.6°F | 1.36 kPa | 60.3% |
| 11:00 | 78.8°F | 1.68 kPa | 50.3% |
7-Day Stress Context
| Date | Heat | VPD high | Cold |
|---|---|---|---|
| 2026-03-23 | 7.3h | 12.0h | 6.2h |
| 2026-03-24 | 15.0h | 12.5h | 5.6h |
| 2026-03-25 | 17.5h | 13.4h | 3.1h |
| 2026-03-26 | 14.5h | 14.2h | 1.6h |
| 2026-03-27 | 0.0h | 2.4h | 20.7h |
| 2026-03-28 | 11.0h | 12.2h | 11.0h |
| 2026-03-29 | 15.0h | 15.2h | 5.1h |