March 28, 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:05 PM) — iris-20260328-0000
validated
3/10
mister_pulse_gap_s, set_vpd_high_kpa, temp_low, vpd_mister_all_kpa, vpd_mister_engage_kpa
Reflection
Validating previous cycle: iris-20260327-0000
Previous hypothesis: (not recorded) Result: Accuracy: 0%, MAE: 2.53 Score: 3/10
Hypothesis
Conditions: Frost protection: 30F forecast at 7AM. Raise floor 2F for earlier heater engagement. Gas fires at 57F.
Setpoints
Friday March 27
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 18:05 | high 82; hyst 0.3 | Backfilled core param for chart continuity |
| 18:30 | low 60 | Frost protection: 30F forecast at 7AM. Raise floor 2F for ea |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 18:05 | d_cool 3; pulse 90; wt 2 | Backfilled core param for chart continuity |
Saturday March 28
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | vpd_h 1.6 | Aggressive all-zone rotation at 1.5 kPa for 8% RH day. Satur |
| 08:00 | low 58 | Frost risk passed by 8AM — outdoor warming through 35F. Rest |
| 18:00 | vpd_h 2 | Evening relaxation: restore normal all-zone threshold. |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | engage 1.2; all 1.5 | Aggressive all-zone rotation at 1.5 kPa for 8% RH day. Satur |
| 10:00 | gap 25 | Peak dry hours 10AM-3PM: tighten gap from 30 to 25s. More ev |
| 16:00 | gap 45 | Post-peak 4PM: relax gap. VPD easing, reduce water usage and |
| 18:00 | engage 1.6; all 2 | Evening relaxation: restore normal all-zone threshold. |
🌅 Morning Cycle (6:05 AM) — iris-20260328-0600
validated
5/10
mister_pulse_on_s, mister_vpd_weight
Reflection
Validating previous cycle: iris-20260328-0000
Result: PARTIALLY CONFOUNDED: Pulse params (60s/1.5x) were correct all morning, but vpd_high/engage/all thresholds were wrong names until 11:44 AM fix (iris-fix-20260328). Morning VPD rose from 0.48→1.50 avg by noon. South zone hit 2.14 kPa. Only 1.07h VPD-high stress so far — mostly because morning was cool (56-58°F until 10 AM). Clouds suppressed temps vs forecast clear. Cannot cleanly compare vs 3/25 baseline — different weather + naming bug. Mister_state shows 0.0 at noon despite VPD above engage — possible the naming fix at 11:44 just arrived. Score: 5/10
New finding: Param naming mismatches silently break experiments. Always verify ESP32 /setpoints output after plan dispatch. → Added to Lessons Learned
Hypothesis
Conditions: Outdoor 30F-82F swing, 8-11% RH at peak, gusts 20-28mph. Indoor 56.8F, VPD 0.48, HEAT_S1. Testing: Compare VPD-high stress hours and water usage today (60s/1.5x) vs 3/25 baseline (120s/2.0x) at similar outdoor conditions. Expected outcome: Less than 12h VPD-high stress AND less than 50 gal misting water.
Setpoints
Saturday March 28
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 06:05 | high 82; low 60; vpd_h 1.6; hyst 0.3 | Backfilled core param for chart continuity |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | pulse 60; wt 1.5 | Restore 60s sweet spot from 3/25 tuning. 120s causes pooling |
| 06:05 | d_cool 3; engage 1.5; all 1.8; gap 45 | Backfilled core param for chart continuity |
☀️ Midday Cycle (12:05 PM) — iris-20260328-1200
validated
4/10
vpd_mister_engage_kpa, vpd_mister_all_kpa, vpd_high, mister_pulse_gap_s
Reflection
Validating previous cycle: iris-20260328-0000
Result: Afternoon VPD-high zone-hours (noon-7PM MDT): south 7.1h, north 13.5h, east 4.3h, west 7.3h = 32.1 total zone-hours. Misting was active but outdoor RH 7-14% overwhelmed evaporative capacity. 100% cloud cover moderated temps (83F peak vs 90F+ expected) but VPD remained extreme due to bone-dry air. Extended misting window to 7PM helped — VPD was still 1.77 avg at 6PM with north at 2.0. ALSO FOUND: temp_high=0 on ESP32 causing COOL_S3 state at 74F — fans/vent running unnecessarily at moderate temps. Critical fix needed. Score: 4/10
New finding: temp_high=0 causes COOL_S3 at any temperature — must explicitly set temp_high=82 in plans. The planner has never set temp_high, relying on a default that didnt persist. → Added to Lessons Learned
Hypothesis
Conditions: Sat noon: 74F/48%RH indoor, VPD 1.50 rising. Outdoor warming through 80F peak at 2PM with 9-14% RH. South VPD 2.14, east 1.64. Afternoon peak incoming. 100% cloud cover moderating solar load — peak indoor likely 85-90F not 95F+. Overnight mild: 59F low. No frost risk. Testing: Evening restore delayed from 6PM→7PM MDT to test if extended misting window reduces afternoon VPD stress by 1-2 zone-hours. Sunday: pulse_gap=30s per Lesson #4 validated data (0.42 kPa drop). Expected outcome: Saturday afternoon: <3h additional VPD-high zone-hours between noon-7PM. Sunday: repeat comparison — VPD-high stress <10h with 30s gap setting.
Setpoints
Saturday March 28
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 12:04 | high 82; low 58; 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 |
|---|---|---|
| 12:04 | d_cool 3; pulse 60; 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 dry conditions. |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | engage 1.3; all 1.6; gap 30 | Sunday morning: all-zone rotation early for dry conditions. |
End-of-Day Summary
Climate
54.8–86.8°F; avg 67.4°F
0.32–2.77 kPa; avg 0.99 kPa
30.9–79.5%
Stress Hours
- Heat stress (>85°F): 11.0h
- VPD stress (>2.0 kPa): 12.2h
- Cold stress (<55°F): 11.0h
Economics
USD 2.15
USD 0.87
USD 0.570
USD 3.59
Equipment Runtimes
| Equipment | Runtime | Reading |
|---|---|---|
| Fan 1 | 252 min | Primary exhaust runtime. |
| Fan 2 | 256 min | Secondary exhaust runtime. |
| Vent | 293 min | Intake vent runtime. |
| Fog | 37 min | Fogger runtime. |
| Heat 1 electric | 0 min | Electric heater runtime. |
| Heat 2 gas | 84 min | Gas heater runtime. |
| Grow lights | 1470 min | Supplemental lighting runtime. |
| Mister south | 0.26h | South mister runtime. |
| Mister west | 0.07h | West mister runtime. |
| Mister center | 0.26h | Center mister runtime. |
Water
- Total: 118 gal
- Mister: 12 gal
Hourly Pattern
| Hour | Temperature | VPD | RH |
|---|---|---|---|
| 12:00 | 64.2°F | 0.57 kPa | 72.3% |
| 13:00 | 66.2°F | 0.64 kPa | 70.7% |
| 14:00 | 69.8°F | 0.80 kPa | 68.1% |
| 15:00 | 72.2°F | 0.92 kPa | 66.1% |
| 16:00 | 69.9°F | 0.80 kPa | 67.9% |
| 17:00 | 69.5°F | 0.78 kPa | 68.6% |
| 18:00 | 60.4°F | 0.91 kPa | 49.5% |
| 19:00 | 57.4°F | 0.51 kPa | 68.3% |
| 20:00 | 56.0°F | 0.40 kPa | 73.8% |
| 21:00 | 55.6°F | 0.59 kPa | 60.7% |
| 22:00 | 56.7°F | 0.62 kPa | 60.8% |
| 23:00 | 56.7°F | 0.49 kPa | 68.8% |
| 00:00 | 56.9°F | 0.47 kPa | 70.1% |
| 01:00 | 56.3°F | 0.45 kPa | 71.1% |
| 02:00 | 57.1°F | 0.47 kPa | 70.8% |
| 03:00 | 56.4°F | 0.45 kPa | 70.9% |
| 04:00 | 56.6°F | 0.48 kPa | 69.8% |
| 05:00 | 56.8°F | 0.48 kPa | 69.5% |
| 06:00 | 56.2°F | 0.37 kPa | 76.3% |
| 07:00 | 56.9°F | 0.40 kPa | 75.1% |
| 08:00 | 56.7°F | 0.40 kPa | 74.2% |
| 09:00 | 58.6°F | 0.44 kPa | 74.0% |
| 10:00 | 65.6°F | 0.67 kPa | 69.6% |
| 11:00 | 74.3°F | 1.50 kPa | 48.3% |
7-Day Stress Context
| Date | Heat | VPD high | Cold |
|---|---|---|---|
| 2026-03-22 | 16.8h | 26.3h | 5.3h |
| 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 |