April 20, 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:20 AM) β iris-20260420-0615
Daily Summary So Far
not validated yet
none recorded
Reflection
Daily Summary So Far β this cycle will be validated at the next planning cycle.
Hypothesis
Testing: Compare Monday overcast-to-clear transition (13:00 clearing) vs Tuesday all-day clear to measure cloud coverβs effect on VPD stress onset timing and water consumption. Hypothesis: Mondayβs overcast morning delays VPD stress onset by 2-3 hours and reduces water usage by 20-30% vs Tuesday. Expected outcome: Monday: compliance 15-25% (tight bands), heat_stress 3-5h, vpd_high 4-6h, water 250-350 gal, cost USD 7-9. Tuesday: compliance 10-20%, heat_stress 5-7h, vpd_high 6-8h, water 350-450 gal, cost USD 8-11. Wednesday: compliance 25-35%, heat_stress 3-4h, vpd_high 3-5h, water 150-250 gal, cost USD 5-7. 72h total: USD 20-27.
Setpoints
Monday April 20
Primary crop-band changes:
Morning hold β overcast, outdoor 36-55F. bias_cool +4 delays
Pre-noon ramp β still overcast but outdoor RH dropping fast
PEAK STRESS β clouds clearing (100β0%), solar 800+ W/mΒ², out
Late afternoon decline β solar dropping but still dry (6% RH
Evening β outdoor 66F, 8% RH, sunset. Conservative misting,
Tactical tunable changes:
Morning hold β overcast, outdoor 36-55F. bias_cool +4 delays
Pre-noon ramp β still overcast but outdoor RH dropping fast
PEAK STRESS β clouds clearing (100β0%), solar 800+ W/mΒ², out
Late afternoon decline β solar dropping but still dry (6% RH
Evening β outdoor 66F, 8% RH, sunset. Conservative misting,
Tuesday April 21
Primary crop-band changes:
Tuesday dawn β worst day. Clear sky, 48F, 12% RH. Pre-positi
Tuesday peak β MAXIMUM AGGRESSION. Clear sky all day, 83F pe
Tuesday evening β same wind-down pattern. High bias_cool pre
Tactical tunable changes:
Tuesday dawn β worst day. Clear sky, 48F, 12% RH. Pre-positi
Tuesday peak β MAXIMUM AGGRESSION. Clear sky all day, 83F pe
Tuesday evening β same wind-down pattern. High bias_cool pre
Changed secondary parameters:
initial 4
initial 4
initial 1
initial -2
initial 0.5
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 300
initial 90
initial 15
initial 45
initial 500
initial 60
4 β 3
4 β 0
0.5 β 0.4
300 β 600
60 β 45
3 β 0
0.4 β 0.3
600 β 900
90 β 60
0 β 2
0.3 β 0.4
900 β 600
60 β 90
45 β 60
2 β 4
0 β 3
0.4 β 0.5
600 β 300
4 β 3
0.5 β 0.4
300 β 600
60 β 45
3 β 0
3 β 0
0.4 β 0.3
600 β 900
90 β 60
0 β 4
0 β 3
0.3 β 0.5
900 β 300
60 β 90
45 β 60
Full secondary parameter dump
Value 4.
Value 4.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 60.
Value 15.
Value 45.
Value 500.
Value 45.
Value 2.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 3.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 60.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
π
Morning Cycle (8:45 AM) β iris-20260420-0842
Daily Summary So Far
not validated yet
none recorded
Reflection
Daily Summary So Far β this cycle will be validated at the next planning cycle.
Hypothesis
Testing: Modified overcast-to-clear experiment: Monday now clears at 10 AM (3h overcast) vs Tuesday all-day clear. Smaller differential than originally planned but still measurable. Compare VPD stress onset time and water usage 10 AM-2 PM window on both days. Expected outcome: Monday: compliance 12-20% (tight bands + earlier clearing), heat_stress 3-5h, vpd_high 5-7h (was 4-6h before reforecast), water 300-400 gal, cost USD 7-10. Tuesday: compliance 10-18%, heat_stress 5-7h, vpd_high 6-9h, water 350-450 gal, cost USD 8-11. Wednesday: compliance 8-15% (worst day β 86F + wind), heat_stress 5-8h, vpd_high 5-8h, water 250-350 gal, cost USD 6-9. 72h total: USD 21-30.
Setpoints
Monday April 20
Primary crop-band changes:
Clearing at 10 AM β 3h earlier than previous plan. Maximum m
Evening taper β solar dropping, VPD easing. Moderate posture
Night β clouds return (76-100%), 60-67Β°F outdoor. Pre-heat b
Tactical tunable changes:
Clearing at 10 AM β 3h earlier than previous plan. Maximum m
Evening taper β solar dropping, VPD easing. Moderate posture
Night β clouds return (76-100%), 60-67Β°F outdoor. Pre-heat b
Tuesday April 21
Primary crop-band changes:
Tuesday dawn β clear sky, 48Β°F outdoor. Maintain heat bias.
Tuesday all-day clear β hardest day. 66Β°F/14% RH by 9 AM. Fu
Tuesday night β overcast returns, 67-78Β°F outdoor. Pre-heat
Tactical tunable changes:
Tuesday dawn β clear sky, 48Β°F outdoor. Maintain heat bias.
Tuesday all-day clear β hardest day. 66Β°F/14% RH by 9 AM. Fu
Tuesday night β overcast returns, 67-78Β°F outdoor. Pre-heat
Wednesday April 22
Primary crop-band changes:
Wednesday morning β overcast, 53Β°F, 41% RH. Much more humidi
Wednesday midday β clears, peaks 86Β°F. 27-37 mph wind makes
Wednesday evening β temp crashes to 55Β°F with clearing + str
Tactical tunable changes:
Wednesday morning β overcast, 53Β°F, 41% RH. Much more humidi
Wednesday midday β clears, peaks 86Β°F. 27-37 mph wind makes
Wednesday evening β temp crashes to 55Β°F with clearing + str
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.3
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 900
initial 90
initial 15
initial 45
initial 500
initial 60
0 β 2
0.3 β 0.4
900 β 600
2 β 4
0 β 3
0.4 β 0.5
600 β 300
4 β 3
0.5 β 0.4
300 β 600
3 β 0
3 β 0
0.4 β 0.3
600 β 900
0 β 4
0 β 3
0.3 β 0.5
900 β 300
4 β 3
3 β 2
0.5 β 0.4
300 β 600
3 β 0
2 β 0
0.4 β 0.3
600 β 480
0 β 3
0 β 2
0.3 β 0.5
480 β 300
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 2.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 3.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 480.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 2.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
π
Morning Cycle (8:57 AM) β iris-20260420-0850
validated
3/10
none recorded
Result: Score 16.6, compliance 11.6% (temp 17.2%, VPD 28.6%). Heat stress 15.82h dominated β largely structural from tight crop band (temp_high ~67.5Β°F overnight while slab held greenhouse at 70-72Β°F). VPD high 16.97h from extreme dry outdoor air (11-14% RH). Cold stress 4.0h (morning band ramp, structural). Peak temp 90.4Β°F, peak VPD 3.04. Cost USD 9.51 (USD 5.60 gas, USD 2.23 electric, USD 1.68 water). Heat1 had 53 transitions (oscillation), heat2 17 transitions. 4 ESP32 reboots (guru/panic + task wdt). vpd_target_center unconfirmed alerts persisted for hours (validates platform lesson). Multiple firmware relief ceiling and vent latch alerts during afternoon peak. Leak alerts during misting. Water 348 gal (238 mister).
Reflection
Validating previous cycle: iris-20260419-1903
Previous hypothesis: Late-day catch-up plan β previous plan iris-20260419-0022 ran unmodified for 18+ hours with no intraday replanning. Todayβs scorecard: 25.5 score, 17.8% compliance, 14.4h cold stress (structural β crop band alignment on spring mornings per lesson #6), 4.2h heat stress, 4.5h VPD high stress. Peak reached 85.6Β°F/2.02 VPD at 2 PM MDT β better than forecast predicted but still 4+ hours outside band. Evening vpd_high=0.60 was too aggressive β drove south zone to 0.08 VPD (near condensation). This plan corrects the evening posture immediately and covers Mon-Wed.
Monday is the second extreme dry day: overcast morning (100% cloud until 14:00, then clearing to 8%), 82Β°F peak outdoor, 4% RH. The overcast morning is an advantage β slower heating ramp gives more time before misting is needed. But afternoon clearing will bring a fast spike. Tuesday is the worst day: clear skies, 83Β°F peak, 9-10% RH, earliest VPD ramp. Wednesday brings relief β overcast with 40-48% RH overnight.
Strategy: (1) Relax evening posture now β VPD 0.52 at 67Β°F is fine, stop all humidification. (2) Monday overcast morning = delayed aggression, start misting ramp at 10:00 not 06:00. (3) Monday/Tuesday afternoon = maximum misting with fog_esc 0.3, sealed vent 900s, accept heat stress above 85Β°F per lesson #5. (4) Wednesday = lightest touch as moisture returns.
{"conditions": [{"day": "Sunday evening", "outdoor_high_f": 69, "outdoor_low_f": 61, "outdoor_rh_pct": 14, "cloud_pct": 0, "severity": "dry_cooling"}, {"day": "Monday", "outdoor_high_f": 82, "outdoor_low_f": 42, "outdoor_rh_pct": 5, "cloud_pct": 60, "severity": "extreme_dry_hot"}, {"day": "Tuesday", "outdoor_high_f": 83, "outdoor_low_f": 48, "outdoor_rh_pct": 10, "cloud_pct": 30, "severity": "extreme_dry_hot"}, {"day": "Wednesday", "outdoor_high_f": 84, "outdoor_low_f": 53, "outdoor_rh_pct": 30, "cloud_pct": 75, "severity": "hot_drying"}], "stress_windows": [{"day": "Monday", "type": "cold", "hours": "04:00-09:00", "mitigation": "bias_heat +4, gas heater stages below 55F"}, {"day": "Monday", "type": "vpd_high+heat", "hours": "13:00-19:00", "mitigation": "fog_esc 0.3, gap 20s, sealed 900s, accept heat above 85F"}, {"day": "Tuesday", "type": "vpd_high+heat", "hours": "10:00-19:00", "mitigation": "fog_esc 0.3, gap 20s, sealed 900s, earliest engage at 1.3 kPa"}, {"day": "Wednesday", "type": "vpd_high", "hours": "12:00-18:00", "mitigation": "moderate misting, humidity recovery expected PM"}], "rationale": "Catch-up from stale plan. Evening posture was over-aggressive (vpd_high 0.60 drove south to 0.08 VPD). Three consecutive extreme dry days with escalating severity. Physics-limited cooling per lesson #5. Monday overcast AM delays the stress window β use it. Tuesday clear sky means earliest ramp. Wednesday moisture returns."}Result: Score 16.6, compliance 11.6% (temp 17.2%, VPD 28.6%). Heat stress 15.82h dominated β largely structural from tight crop band (temp_high ~67.5Β°F overnight while slab held greenhouse at 70-72Β°F). VPD high 16.97h from extreme dry outdoor air (11-14% RH). Cold stress 4.0h (morning band ramp, structural). Peak temp 90.4Β°F, peak VPD 3.04. Cost USD 9.51 (USD 5.60 gas, USD 2.23 electric, USD 1.68 water). Heat1 had 53 transitions (oscillation), heat2 17 transitions. 4 ESP32 reboots (guru/panic + task wdt). vpd_target_center unconfirmed alerts persisted for hours (validates platform lesson). Multiple firmware relief ceiling and vent latch alerts during afternoon peak. Leak alerts during misting. Water 348 gal (238 mister). Score: 3/10
New finding: Heat stress hours are heavily inflated by tight nighttime crop band (temp_high ~67.5Β°F) while slab thermal mass holds greenhouse at 70-72Β°F overnight. Of 15.82h heat stress, estimated 8-10h are structural overnight band misalignment, not actual overheating. Heater oscillation (53 transitions) suggests the controller is fighting to maintain temp_low while simultaneously being above temp_high β an impossible band situation. The 4.5Β°F nighttime band (63-67.5Β°F) with slab retention of 70Β°F+ guarantees continuous out-of-band readings regardless of control strategy. β Added to Lessons Learned
Hypothesis
Testing: Mon/Tue overcast-to-clear paired comparison preserved (Mon clears 10 AM vs Tue all-day clear). Compare VPD stress onset and water usage 10 AM-2 PM both days. Expected outcome: Mon: compliance 12-20%, vpd_high 5-7h, cost USD 7-10. Tue: compliance 10-18%, vpd_high 6-9h, cost USD 8-11. Wed: 8-15% (worst), cost USD 6-9. Thu: 40-60%, cost USD 3-5. Fri: 50-70%, cost USD 4-7. Sat: 30-50%, cold_stress 4-6h, cost USD 6-10 (gas). Sun: 35-55%, cost USD 5-8. 7-day total: USD 39-60.
Setpoints
Monday April 20
Primary crop-band changes:
Mon morning overcast β moderate posture before clearing at 1
Tactical tunable changes:
Mon morning overcast β moderate posture before clearing at 1
Clouds clear 10 AM. Aggressive misting. Outdoor RH 15% dropp
Peak solar 78Β°F/6% outdoor. Tightest gap, longest sealed win
Solar dropping. Taper misting.
SUNSET Mon. Night posture.
Tuesday April 21
Primary crop-band changes:
SUNRISE Tue. All-day clear β hardest hot day. Full param sta
Tactical tunable changes:
SUNRISE Tue. All-day clear β hardest hot day. Full param sta
Dawn-clear 66Β°F/14%. Aggressive posture 90 min early.
Peak ramp 80Β°F/9% outdoor. Tightest pulses.
Absolute peak 83Β°F/8%. Maximum aggression.
Evening taper. Solar down.
SUNSET Tue. Night posture.
Wednesday April 22
Primary crop-band changes:
MIDNIGHT Wed. Overnight 60Β°F β 53Β°F, RH rising to 41%.
SUNRISE Wed. 86Β°F + wind day. Full param state. Budget reset
Tactical tunable changes:
SUNRISE Wed. 86Β°F + wind day. Full param state. Budget reset
Clearing + wind. Shorter sealed windows.
Peak 84Β°F/6% + 27-37 mph wind. Worst day.
Wind easing, dramatic evening cool-down.
SUNSET Wed. Weather shift begins. Transition to cold bias.
Thursday April 23
Primary crop-band changes:
SUNRISE Thu. Overcast, max 64Β°F. Full param state. Lower bud
Midday Thu. 63Β°F/15% overcast. Hold morning state.
Tactical tunable changes:
SUNRISE Thu. Overcast, max 64Β°F. Full param state. Lower bud
SUNSET Thu. Cold night: 45Β°F β 35Β°F. Heating priority. Longe
Friday April 24
Primary crop-band changes:
SUNRISE Fri. 34Β°F/79%. Full param state. Heating priority. L
Tactical tunable changes:
SUNRISE Fri. 34Β°F/79%. Full param state. Heating priority. L
Saturday April 25
Primary crop-band changes:
SUNRISE Sat. 32Β°F/96%. Full param state. Pure heating day. M
Tactical tunable changes:
SUNRISE Sat. 32Β°F/96%. Full param state. Pure heating day. M
Sunday April 26
Primary crop-band changes:
SUNRISE Sun. 34Β°F/86%. Full param state. Cold but warming tr
Tactical tunable changes:
SUNRISE Sun. 34Β°F/86%. Full param state. Cold but warming tr
Monday April 27
Primary crop-band changes:
SUNRISE Mon Apr 27. Jason home. Full param state. Normal pla
Tactical tunable changes:
SUNRISE Mon Apr 27. Jason home. Full param state. Normal pla
Changed secondary parameters:
initial 4
initial 4
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 300
initial 90
initial 15
initial 45
initial 700
initial 60
4 β 3
4 β 5
0.4 β 0.3
300 β 600
600 β 700
3 β 4
0.3 β 0.4
700 β 300
4 β 5
5 β 4
0.4 β 0.5
5 β 4
0.5 β 0.4
4 β 3
4 β 5
0.4 β 0.3
300 β 600
600 β 700
700 β 600
3 β 4
0.3 β 0.4
600 β 300
4 β 5
5 β 4
0.4 β 0.5
5 β 4
0.5 β 0.4
4 β 3
4 β 5
0.4 β 0.3
300 β 480
3 β 4
0.3 β 0.4
480 β 300
4 β 5
5 β 3
0.4 β 0.5
120 β 180
700 β 500
5 β 6
3 β 2
180 β 300
500 β 300
300 β 200
6 β 5
2 β 3
300 β 180
200 β 400
Full secondary parameter dump
Value 4.
Value 4.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 700.
Value 60.
Value 3.
Value 5.
Value 0.3.
Value 600.
Value 700.
Value 4.
Value 0.4.
Value 300.
Value 5.
Value 4.
Value 0.5.
Value 300.
Value 5.
Value 4.
Value 300.
Value 120.
Value 4.
Value 4.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 700.
Value 60.
Value 3.
Value 5.
Value 0.3.
Value 600.
Value 700.
Value 600.
Value 4.
Value 0.4.
Value 300.
Value 5.
Value 4.
Value 0.5.
Value 300.
Value 5.
Value 4.
Value 4.
Value 4.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 700.
Value 60.
Value 3.
Value 5.
Value 0.3.
Value 480.
Value 480.
Value 4.
Value 0.4.
Value 300.
Value 5.
Value 3.
Value 0.5.
Value 5.
Value 3.
Value 180.
Value 5.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 180.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 6.
Value 2.
Value 300.
Value 6.
Value 2.
Value 300.
Value 300.
Value 6.
Value 2.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 300.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 300.
Value 60.
Value 6.
Value 2.
Value 300.
Value 300.
Value 6.
Value 2.
Value 300.
Value 6.
Value 2.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 300.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 200.
Value 60.
Value 6.
Value 2.
Value 2.
Value 300.
Value 6.
Value 2.
Value 300.
Value 6.
Value 2.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 300.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 200.
Value 60.
Value 5.
Value 2.
Value 5.
Value 2.
Value 5.
Value 2.
Value 300.
Value 5.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 180.
Value 60.
Value 60.
Value 300.
Value 90.
Value 15.
Value 45.
Value 400.
Value 60.
Value 5.
Value 3.
π Evening Cycle (7:50 PM) β iris-20260420-1945
validated
5/10
none recorded
Result: Evaluated overnight window only (8 PM Apr 20 β 6 AM Apr 21) β plan replaced at sunrise before daytime predictions could be tested. Overnight temps held 62-65Β°F (hypothesis predicted 65-70Β°F from slab retention β 3-5Β°F optimistic). VPD dipped to 0.40 kPa at 2 AM and hit 0.26 kPa during reboot cluster, triggering vpd_extreme warnings β not anticipated by hypothesis. 5 ESP32 reboots between 1:30-2:26 AM (guru/panic + task wdt) disrupted control continuity. bias_cool +5 successfully prevented vent oscillation during heating cycles β heat1 transitions appear reduced vs previous night (53β~30 est). Heat2 ran 2.69h for gas heating. Evening alerts included firmware vent latch and relief ceiling events from daytime carry-over (10-11 PM). Overall: adequate overnight management, slab prediction slightly optimistic, VPD low risk in the 1-3 AM window needs attention in future overnight plans.
Reflection
Validating previous cycle: iris-20260420-0850
Previous hypothesis: JASON-AWAY CONSERVATIVE STAY-IN-BAND: 7-day coverage through Sunday Apr 27. Two distinct regimes:
PHASE 1 (Mon-Wed): Extreme dry-hot. Outdoor 81-86Β°F, 5-8% RH, VPD 3.0-4.0 kPa. Conservative-aggressive misting: lower engage thresholds (1.3 kPa), generous water budgets (700 gal/day), moderate sealed windows (600s vs 900s β safer without Jason to catch thermal traps). Accept physics-limited heat stress but buy every VPD minute we can. Wednesday worst: 86Β°F + 27-37 mph wind, shortened sealed windows (480s).
PHASE 2 (Thu): Transition. Overcast, 64Β°F peak. Minimal intervention needed.
PHASE 3 (Fri-Sun): Cold front. 32-56Β°F outdoor, 50-97% RH. Full heating regime. Gas heater primary for efficiency. Minimal misting β ambient humidity keeps VPD naturally low. Dehumid may trigger on Sat/Sun (outdoor RH 80-97%). Greenhouse will never freeze (80K BTU combined + slab mass retains 7-8Β°F above outdoor).
Conservative philosophy: favor band compliance over optimization. Wider misting engagement, generous budgets, shorter sealed windows, longer heat cycles. Accept higher utility cost for safer autonomous operation. Every sunrise waypoint carries full parameter state for reboot resilience.
{"conditions": [{"day": "Monday", "outdoor_high_f": 81, "outdoor_low_f": 48, "outdoor_rh_pct": 5, "cloud_pct": 15, "severity": "extreme_dry_hot"}, {"day": "Tuesday", "outdoor_high_f": 83, "outdoor_low_f": 48, "outdoor_rh_pct": 8, "cloud_pct": 0, "severity": "extreme_dry_hot"}, {"day": "Wednesday", "outdoor_high_f": 86, "outdoor_low_f": 53, "outdoor_rh_pct": 5, "cloud_pct": 60, "severity": "extreme_dry_hot_windy"}, {"day": "Thursday", "outdoor_high_f": 64, "outdoor_low_f": 46, "outdoor_rh_pct": 40, "cloud_pct": 100, "severity": "mild_overcast"}, {"day": "Friday", "outdoor_high_f": 57, "outdoor_low_f": 35, "outdoor_rh_pct": 78, "cloud_pct": 100, "severity": "cold_wet"}, {"day": "Saturday", "outdoor_high_f": 42, "outdoor_low_f": 32, "outdoor_rh_pct": 96, "cloud_pct": 100, "severity": "cold_wet_freezing"}, {"day": "Sunday", "outdoor_high_f": 52, "outdoor_low_f": 32, "outdoor_rh_pct": 86, "cloud_pct": 100, "severity": "cold_wet"}], "stress_windows": [{"kind": "vpd_high", "start": "2026-04-20T10:00-06:00", "end": "2026-04-20T19:00-06:00", "severity": "high", "mitigation": "aggressive misting engage 1.3, gap 20-25s, fog_esc 0.3"}, {"kind": "vpd_high", "start": "2026-04-21T09:30-06:00", "end": "2026-04-21T19:00-06:00", "severity": "extreme", "mitigation": "maximum aggression β gap 15s at peak, 700 gal budget"}, {"kind": "vpd_high", "start": "2026-04-22T10:00-06:00", "end": "2026-04-22T18:00-06:00", "severity": "extreme", "mitigation": "shortened sealed 480s β wind makes sealing less effective"}, {"kind": "heat_stress", "start": "2026-04-22T14:00-06:00", "end": "2026-04-22T18:00-06:00", "severity": "extreme", "mitigation": "86F + wind β accept"}, {"kind": "cold_stress", "start": "2026-04-25T00:00-06:00", "end": "2026-04-26T12:00-06:00", "severity": "moderate", "mitigation": "gas heater primary, 80K BTU, slab buffer"}, {"kind": "vpd_low", "start": "2026-04-25T06:00-06:00", "end": "2026-04-26T10:00-06:00", "severity": "low", "mitigation": "fans dehumid if VPD < 0.35"}], "rationale": [{"parameter": "mister_engage_kpa", "old_value": 1.6, "new_value": 1.3, "forecast_anchor": "away-plan: compliance over optimization", "expected_effect": "Earlier misting reduces peak VPD 0.3-0.5 kPa, +20% water"}, {"parameter": "mist_max_closed_vent_s", "old_value": 900, "new_value": 600, "forecast_anchor": "No human oversight for thermal trap", "expected_effect": "Less thermal risk, slightly less retention"}, {"parameter": "mister_water_budget_gal", "old_value": 500, "new_value": 700, "forecast_anchor": "Apr 13 budget exhaustion lesson", "expected_effect": "40% headroom. FW-9 still backstops VPD>3.0"}]}Result: Evaluated overnight window only (8 PM Apr 20 β 6 AM Apr 21) β plan replaced at sunrise before daytime predictions could be tested. Overnight temps held 62-65Β°F (hypothesis predicted 65-70Β°F from slab retention β 3-5Β°F optimistic). VPD dipped to 0.40 kPa at 2 AM and hit 0.26 kPa during reboot cluster, triggering vpd_extreme warnings β not anticipated by hypothesis. 5 ESP32 reboots between 1:30-2:26 AM (guru/panic + task wdt) disrupted control continuity. bias_cool +5 successfully prevented vent oscillation during heating cycles β heat1 transitions appear reduced vs previous night (53β~30 est). Heat2 ran 2.69h for gas heating. Evening alerts included firmware vent latch and relief ceiling events from daytime carry-over (10-11 PM). Overall: adequate overnight management, slab prediction slightly optimistic, VPD low risk in the 1-3 AM window needs attention in future overnight plans. Score: 5/10
New finding: Overnight slab retention in spring with outdoor 50-60Β°F delivers 62-65Β°F, not 65-70Β°F as commonly predicted. Use 62-66Β°F as the overnight slab equilibrium range when outdoor is 48-55Β°F. VPD can dip below 0.35 kPa between 1-3 AM when RH climbs above 75% β consider whether vpd_low should be relaxed overnight to avoid unnecessary dehumid cycling. β Added to Lessons Learned
Hypothesis
Testing: Tue vs Wed paired comparison under near-identical heat/dryness (84Β°F/6% vs 85Β°F/5%) but different cloud profiles (Tue clear AM/variable PM vs Wed overcast AM/clearing PM) and wind (Tue light vs Wed 20+ mph). Compare: (1) VPD stress onset time, (2) fog activation count, (3) water usage, (4) whether Wed wind improves or degrades compliance vs Tue calm. Expected outcome: Tuesday: compliance 10-15%, heat_stress 6-9h (structural band + physics), vpd_high 8-12h, water 300-450 gal, cost USD 7-11. Wednesday: compliance 12-18% (cloudier morning delays onset), heat_stress 5-8h, vpd_high 7-10h, water 250-400 gal, cost USD 6-9. Thursday: compliance 25-35% (much milder), heat_stress 0-2h, vpd_high 2-4h, cost USD 4-7 (higher gas from cold overnight). 72h total: USD 17-27.
Setpoints
Monday April 20
Primary crop-band changes:
Evening settle β outdoor 68Β°F/11% dropping. Anti-oscillation
Tactical tunable changes:
Evening settle β outdoor 68Β°F/11% dropping. Anti-oscillation
Tuesday April 21
Primary crop-band changes:
Midnight β outdoor 55Β°F/17%. Slab holds ~68Β°F. Heaters inter
Pre-dawn β coldest point 50Β°F outdoor. bias_heat +4 pre-warm
Sunrise β begin loosening mist thresholds. VPD weight 2.5 fo
VPD assault β outdoor 68Β°F/16% and climbing fast. Max aggres
Peak heat β 81-84Β°F outdoor, 7-8% RH, solar 803-852 W/mΒ². Sh
Sustained peak β 83-84Β°F, variable clouds (31-63%). Solar re
Evening β solar fading but outdoor still 82Β°F/6%. Relax mist
Tue sunset β outdoor 79Β°F/6% dropping to 72 by 8 PM. Anti-os
Tactical tunable changes:
Midnight β outdoor 55Β°F/17%. Slab holds ~68Β°F. Heaters inter
Pre-dawn β coldest point 50Β°F outdoor. bias_heat +4 pre-warm
Sunrise β begin loosening mist thresholds. VPD weight 2.5 fo
VPD assault β outdoor 68Β°F/16% and climbing fast. Max aggres
Peak heat β 81-84Β°F outdoor, 7-8% RH, solar 803-852 W/mΒ². Sh
Sustained peak β 83-84Β°F, variable clouds (31-63%). Solar re
Evening β solar fading but outdoor still 82Β°F/6%. Relax mist
Tue sunset β outdoor 79Β°F/6% dropping to 72 by 8 PM. Anti-os
Wednesday April 22
Primary crop-band changes:
Wed midnight β outdoor 60Β°F/13%, milder than Mon night. Slab
Wed sunrise β 100% overcast morning, slower ramp than Tue. M
Wed morning assault β clouds clearing, VPD climbing. 74Β°F/14
Wed peak β 85Β°F/6%, very windy (20 mph). Wind aids fan cooli
Wed evening β cool front pushing through. Outdoor dropping 7
Wed sunset β cool front arrived. Outdoor 55Β°F/37% by 9 PM. A
Tactical tunable changes:
Wed midnight β outdoor 60Β°F/13%, milder than Mon night. Slab
Wed sunrise β 100% overcast morning, slower ramp than Tue. M
Wed morning assault β clouds clearing, VPD climbing. 74Β°F/14
Wed peak β 85Β°F/6%, very windy (20 mph). Wind aids fan cooli
Wed evening β cool front pushing through. Outdoor dropping 7
Wed sunset β cool front arrived. Outdoor 55Β°F/37% by 9 PM. A
Thursday April 23
Primary crop-band changes:
Thu midnight β cold front. Outdoor 46Β°F/39%. bias_heat +4 fo
Thu sunrise β 47Β°F/31% outdoor, overcast. Cool day ahead. Co
Thu midday β 62Β°F/11% outdoor, overcast, windy. Much milder
Thu sunset β 60Β°F/20% outdoor. Standard overnight posture. C
Tactical tunable changes:
Thu midnight β cold front. Outdoor 46Β°F/39%. bias_heat +4 fo
Thu sunrise β 47Β°F/31% outdoor, overcast. Cool day ahead. Co
Thu midday β 62Β°F/11% outdoor, overcast, windy. Much milder
Thu sunset β 60Β°F/20% outdoor. Standard overnight posture. C
Changed secondary parameters:
initial 5
initial 3
initial 1
initial -2
initial 0.5
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 60
3 β 4
5 β 4
0.5 β 0.4
600 β 480
60 β 45
4 β 0
4 β 0
-2 β -3
0.4 β 0.3
60 β 45
60 β 45
60 β 45
60 β 45
90 β 60
45 β 30
45 β 30
480 β 420
420 β 480
0 β 4
-3 β -2
0.3 β 0.4
45 β 60
45 β 60
45 β 60
45 β 60
480 β 600
60 β 90
30 β 45
30 β 60
4 β 5
0 β 3
0.4 β 0.5
5 β 4
0.5 β 0.4
600 β 480
60 β 45
4 β 0
3 β 0
-2 β -3
0.4 β 0.3
60 β 45
60 β 45
60 β 45
60 β 45
90 β 60
45 β 30
45 β 30
480 β 420
0 β 4
-3 β -2
0.3 β 0.4
45 β 60
45 β 60
45 β 60
45 β 60
420 β 600
60 β 90
30 β 45
30 β 60
4 β 5
0 β 3
0.4 β 0.5
3 β 4
0.5 β 0.4
5 β 2
4 β 0
2 β 5
0 β 3
0.4 β 0.5
Full secondary parameter dump
Value 5.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 5.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 5.
Value 4.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 4.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 480.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 45.
Value 45.
Value 300.
Value 120.
Value 45.
Value 45.
Value 480.
Value 60.
Value 15.
Value 30.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 45.
Value 45.
Value 300.
Value 120.
Value 45.
Value 45.
Value 420.
Value 60.
Value 15.
Value 30.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 45.
Value 45.
Value 300.
Value 120.
Value 45.
Value 45.
Value 480.
Value 60.
Value 15.
Value 30.
Value 500.
Value 30.
Value 4.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 5.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 5.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 3.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 480.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 45.
Value 45.
Value 300.
Value 120.
Value 45.
Value 45.
Value 480.
Value 60.
Value 15.
Value 30.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 45.
Value 45.
Value 300.
Value 120.
Value 45.
Value 45.
Value 420.
Value 60.
Value 15.
Value 30.
Value 500.
Value 30.
Value 4.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 5.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 5.
Value 4.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 5.
Value 4.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 2.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 5.
Value 3.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Daily Summary So Far
Climate
59.1β91.9Β°F; avg 74.0Β°F
0.23β3.12 kPa; avg 1.18 kPa
25.8β88.6%
Stress Hours
- Heat stress (>85Β°F): 17.7h
- VPD stress (>2.0 kPa): 17.4h
- Cold stress (<55Β°F): 1.0h
Economics
USD 0.31
USD 5.36
USD 0.140
USD 5.81
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: 565 gal
- Mister: 133 gal
Crop Health (Gemini Vision)
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Vision observation notes
Canna lilies in pots on the floor appear generally healthy, though some lower leaves might be slightly yellow.
Hanging orchids appear healthy with extensive root systems visible.
Seedlings appear healthy and are establishing well.
Seedlings look generally healthy, but some minor variation in size.
Seedlings are green and appear to be growing normally.
Hourly Pattern
RH 63.0%.
RH 56.0%.
RH 56.8%.
RH 49.0%.
RH 47.9%.
RH 68.4%.
RH 74.0%.
RH 62.2%.
RH 70.9%.
RH 73.2%.
RH 47.0%.
RH 47.9%.
RH 58.6%.
RH 58.4%.
RH 58.2%.
RH 59.9%.
RH 57.7%.
RH 57.3%.
RH 58.3%.
RH 60.8%.
RH 64.9%.
RH 64.6%.
RH 67.7%.
RH 67.6%.
7-Day Stress Context
Cold stress 11.6h.
Cold stress 13.8h.
Cold stress 10.6h.
Cold stress 18.3h.
Cold stress 12.7h.
Cold stress 14.0h.
Cold stress 1.0h.