March 29, 2026
Generated lab notebook from daily_summary, plan_journal, 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
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.
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:
CRITICAL FIX: temp_high was 0, causing COOL_S3 at room temp.
Backfilled core param for chart continuity
Evening restore: normal all-zone threshold.
Tactical tunable changes:
Backfilled core param for chart continuity
Evening restore: normal all-zone threshold.
Sunday March 29
Primary crop-band changes:
Sunday morning: all-zone rotation early for 7% RH conditions
Sunday evening restore.
Tactical tunable changes:
Sunday morning: all-zone rotation early for 7% RH conditions
Sunday evening restore.
🌅 Morning Cycle (6:06 AM) — iris-20260329-0600
validated
6/10
mister_all_kpa, mister_pulse_gap_s, temp_high
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.
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:
Fix: failed to dispatch from iris-20260329-0000. Per Lesson
Confirm engage=1.3 for dry day per Lesson #4.
Backfilled core param for chart continuity
Sunday evening restore.
Tactical tunable changes:
Fix: failed to dispatch from iris-20260329-0000. Per Lesson
Confirm engage=1.3 for dry day per Lesson #4.
Backfilled core param for chart continuity
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
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.
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:
Override reactive 75s→60s. Lesson #4: 60s is the sweet spot
Backfilled core param for chart continuity
Sunday evening restore.
Tactical tunable changes:
Override reactive 75s→60s. Lesson #4: 60s is the sweet spot
Backfilled core param for chart continuity
Sunday evening restore.
Monday March 30
Primary crop-band changes:
Monday aggressive misting zone rotation.
Tactical tunable changes:
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
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.
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: 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:
Standard staging.
COOL_S2 at 85°F. Standard staging.
Tactical tunable changes:
Standard staging.
COOL_S2 at 85°F. Standard staging.
Monday March 30
Primary crop-band changes:
Standard. COOL_S2 at 85°F.
Standard.
Tactical tunable changes:
Standard. COOL_S2 at 85°F.
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 0.29
USD 0.06
USD 1.130
USD 1.48
Equipment Runtimes
Primary exhaust runtime.
Secondary exhaust runtime.
Intake vent runtime.
Fogger runtime.
Electric heater runtime.
Gas heater runtime.
Supplemental lighting runtime.
South mister runtime.
West mister runtime.
Center mister runtime.
Water
- Total: 231 gal
- Mister: 39 gal
Hourly Pattern
RH 43.3%.
RH 45.5%.
RH 51.5%.
RH 58.2%.
RH 51.4%.
RH 53.9%.
RH 50.0%.
RH 65.4%.
RH 48.1%.
RH 56.9%.
RH 56.4%.
RH 60.1%.
RH 68.2%.
RH 71.9%.
RH 74.0%.
RH 75.5%.
RH 76.3%.
RH 76.9%.
RH 76.7%.
RH 76.0%.
RH 73.7%.
RH 72.4%.
RH 60.3%.
RH 50.3%.
7-Day Stress Context
Cold stress 6.2h.
Cold stress 5.6h.
Cold stress 3.1h.
Cold stress 1.6h.
Cold stress 20.7h.
Cold stress 11.0h.
Cold stress 5.1h.