April 16, 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:26 AM) — iris-20260416-0621
validated
4/10
none recorded
Result: Phase 1 (Thu dry day): Outdoor peaked 74.4°F/17% RH — less extreme than forecast 76°F/7% but still challenging. Indoor peaked 86.4°F at 2 PM. VPD compliance 68.7% (good for 17% RH day — misting strategy worked). Temp compliance 15.7% (terrible — crop band 63.6-69.3°F too narrow for 60-86°F indoor range). Combined compliance 10%. Heat stress 2.0h, VPD-high 1.33h, VPD-low 1.9h. Cost USD 3.23 (excellent). 273 gal mister water. Two ESP32 reboots. South probe offline all day. 15+ leak_detected alerts (all self-resolved — pattern concerning). Phase 1 transitioned to cold front as expected. The score is structurally limited by narrow crop band vs physical reality on warm days — planner actions were appropriate.
Reflection
Validating previous cycle: iris-20260415-1939
Previous hypothesis: Three-phase plan: (1) Tonight clear/cold overnight, standard heating posture. (2) Thursday extreme dry day (77°F/7% RH) — maximum misting aggression with fog_esc 0.4 as the ultimate experiment test. If fog_esc 0.4 holds combined VPD stress under 8h on 7% RH, it’s confirmed as all-conditions default. (3) Friday cold front with snow, hard freeze to 27°F Saturday — full heating pivot, bias_heat +5, no cooling/misting needed. The score will be structurally limited by band-driven cold stress on morning ramps (lesson #91) regardless of planner actions. Result: Phase 1 (Thu dry day): Outdoor peaked 74.4°F/17% RH — less extreme than forecast 76°F/7% but still challenging. Indoor peaked 86.4°F at 2 PM. VPD compliance 68.7% (good for 17% RH day — misting strategy worked). Temp compliance 15.7% (terrible — crop band 63.6-69.3°F too narrow for 60-86°F indoor range). Combined compliance 10%. Heat stress 2.0h, VPD-high 1.33h, VPD-low 1.9h. Cost USD 3.23 (excellent). 273 gal mister water. Two ESP32 reboots. South probe offline all day. 15+ leak_detected alerts (all self-resolved — pattern concerning). Phase 1 transitioned to cold front as expected. The score is structurally limited by narrow crop band vs physical reality on warm days — planner actions were appropriate. Score: 4/10
New finding: On warm-to-hot days (outdoor 70°F+), the narrow crop band (63.6-69.3°F) guarantees low temp compliance regardless of planner actions. The greenhouse physically cannot stay below 69°F with solar gain when outdoor exceeds 65°F. VPD compliance is the meaningful metric to optimize on these days. Consider whether the crop band needs seasonal adjustment or whether planner score should weight VPD more heavily on days where temp compliance is physics-limited. → Added to Lessons Learned
Hypothesis
Testing: vpd_watch_dwell_s reduced to 30s during peak stress (noon-3 PM) vs usual 60s. Hypothesis: faster SEALED_MIST entry reduces VPD overshoot on extreme dry days. Success criteria: VPD-high stress < 6h on a 76°F/7% RH day. Expected outcome: Thursday: compliance 25-35% (physics-limited by extreme dry + heat), VPD-high 4-7h, heat_stress 2-4h, water 300-450 gal, cost USD 8-12. Friday: heating-dominated, compliance 30-50%, cold_stress 4-8h (slab lag + band alignment), cost USD 10-15 (gas-heavy). Saturday: warming rebound, compliance 40-60%, cost USD 5-8. 72h total cost USD 25-35.
Setpoints
Thursday April 16
Primary crop-band changes:
Dawn. Outdoor 44°F/37% RH rising. Pre-condition with engage
Morning ramp. Outdoor RH dropping below 20%. Tighten hystere
Peak stress onset. Outdoor 71°F/14% RH. Maximum aggression:
Peak heat 75-76°F outdoor, 7-8% RH, 15 mph wind. Hold max ag
Evening transition. Fog window closed. Outdoor 73°F dropping
Night. Outdoor 62→55°F. Cold front approaching. bias_heat +3
Tactical tunable changes:
Dawn. Outdoor 44°F/37% RH rising. Pre-condition with engage
Morning ramp. Outdoor RH dropping below 20%. Tighten hystere
Peak stress onset. Outdoor 71°F/14% RH. Maximum aggression:
Peak heat 75-76°F outdoor, 7-8% RH, 15 mph wind. Hold max ag
Evening transition. Fog window closed. Outdoor 73°F dropping
Night. Outdoor 62→55°F. Cold front approaching. bias_heat +3
Friday April 17
Primary crop-band changes:
Cold front arrival. Outdoor 55→50°F. Heavy heating. bias_hea
Friday dawn. Outdoor 38°F, rain/snow possible. Full heating.
Friday evening into freeze night. Outdoor 45→28°F. Maintain
Tactical tunable changes:
Cold front arrival. Outdoor 55→50°F. Heavy heating. bias_hea
Friday dawn. Outdoor 38°F, rain/snow possible. Full heating.
Friday evening into freeze night. Outdoor 45→28°F. Maintain
Saturday April 18
Primary crop-band changes:
Saturday dawn. Outdoor 41°F, clear. Freeze recovery. Solar g
Saturday midday. Clear sky, outdoor 53°F/12% RH. Dry rebound
Tactical tunable changes:
Saturday dawn. Outdoor 41°F, clear. Freeze recovery. Solar g
Saturday midday. Clear sky, outdoor 53°F/12% RH. Dry rebound
Changed secondary parameters:
initial 2
initial 0
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 900
initial 90
initial 15
initial 45
initial 500
initial 60
60 → 45
60 → 45
45 → 30
2 → 3
0 → 1
0.4 → 0.5
45 → 60
900 → 600
30 → 60
3 → 4
1 → 3
0.5 → 0.6
4 → 5
3 → 4
0.6 → 0.8
4 → 5
5 → 4
5 → 4
0.8 → 0.6
4 → 3
4 → 2
0.6 → 0.5
Full secondary parameter dump
Value 2.
Value 0.
Value 1.
Value -2.
Value 0.4.
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 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 2.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 45.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 2.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 45.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 3.
Value 1.
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.6.
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.8.
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 5.
Value 1.
Value -2.
Value 0.8.
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 5.
Value 1.
Value -2.
Value 0.8.
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.6.
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 3.
Value 2.
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.
🌆 Evening Cycle (7:43 PM) — iris-20260416-1940
validated
2/10
none recorded
Result: [backfill] avg compliance 14.1% (stress 1.9 h) over plan window 2026-04-17 01:43 → 2026-04-18 12:22
Reflection
Validating previous cycle: iris-20260416-0621
Previous hypothesis: Three-phase 72h: (1) Thursday extreme dry (76°F/7% RH) — maximum misting aggression, fog_esc 0.4 ultimate stress test Day 5. engage 1.3, gap 15s at peak, 900s sealed vent, dwell 30s for faster mist response. Accept heat stress as physics-limited. (2) Thursday night through Saturday AM — cold front then hard freeze (28°F). Full heating posture, bias_heat +5, bias_cool +5, slab pre-warming. Gas heater primary per cost lesson. (3) Saturday midday — dry rebound, moderate misting returns. Experiment: vpd_watch_dwell_s 30s during peak stress (normally 60s) to test if faster SEALED_MIST entry improves VPD compliance without oscillation. Result: [backfill] avg compliance 14.1% (stress 1.9 h) over plan window 2026-04-17 01:43 → 2026-04-18 12:22 Score: 2/10
Hypothesis
Testing: Slab thermal mass pre-charging: start aggressive heating 12h before freeze nadir (Friday 5 PM → Saturday 5 AM). Hypothesis: building slab temp during the cheaper cloudy afternoon reduces total gas usage during the freeze vs reactive heating. Success criteria: indoor temp stays above 55°F through 24°F nadir without heat2 running >80% duty cycle. Expected outcome: Tonight (Thu→Fri AM): indoor holds 59-62°F against 38°F outdoor, cold stress 3-5h from band alignment. Friday: heating-dominated, low stress (cloudy = no heat/VPD stress), cost USD 6-9 (gas-heavy). Saturday AM: indoor holds 55-62°F through 24°F freeze, gas heater dominant. Saturday PM: transition to extreme dry conditions, VPD-high stress 3-5h (physics-limited at 12% RH). 72h total cost USD 18-25 (gas-heavy). No frost damage.
Setpoints
Thursday April 16
Primary crop-band changes:
Evening settle — outdoor 63°F dropping, transition to heatin
Tactical tunable changes:
Evening settle — outdoor 63°F dropping, transition to heatin
Friday April 17
Primary crop-band changes:
Midnight — outdoor 56°F, slab still warm from today's 91°F p
Pre-dawn Friday — outdoor 40°F, first night's coldest. bias_
Friday midday — outdoor 43°F, overcast 100%, 54% RH (unusual
CRITICAL: Friday pre-freeze slab charging begins. Outdoor 46
Tactical tunable changes:
Midnight — outdoor 56°F, slab still warm from today's 91°F p
Pre-dawn Friday — outdoor 40°F, first night's coldest. bias_
Friday midday — outdoor 43°F, overcast 100%, 54% RH (unusual
CRITICAL: Friday pre-freeze slab charging begins. Outdoor 46
Saturday April 18
Primary crop-band changes:
Saturday midnight — outdoor 31°F, deep freeze approaching. B
FREEZE NADIR — outdoor 24°F. Heat loss: ~480 BTU/hr/°F × ~40
Saturday late morning — outdoor 49°F, warming fast, clear sk
Saturday evening — outdoor 55°F, settling. Revert misting to
Tactical tunable changes:
Saturday midnight — outdoor 31°F, deep freeze approaching. B
FREEZE NADIR — outdoor 24°F. Heat loss: ~480 BTU/hr/°F × ~40
Saturday late morning — outdoor 49°F, warming fast, clear sk
Saturday evening — outdoor 55°F, settling. Revert misting to
Changed secondary parameters:
initial 4
initial 2
initial 1
initial -2
initial 0.6
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 60
4 → 5
2 → 3
0.6 → 0.8
120 → 150
3 → 4
150 → 180
5 → 3
4 → 2
0.8 → 0.6
180 → 120
3 → 5
2 → 5
1 → 2
0.6 → 0.8
300 → 240
120 → 180
5 → 3
5 → 2
2 → 1
0.8 → 0.5
240 → 300
180 → 120
600 → 900
3 → 4
2 → 3
0.5 → 0.6
900 → 600
Full secondary parameter dump
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.6.
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.8.
Value 60.
Value 60.
Value 300.
Value 150.
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.8.
Value 60.
Value 60.
Value 300.
Value 180.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 2.
Value 1.
Value -2.
Value 0.6.
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 5.
Value 2.
Value -2.
Value 0.8.
Value 60.
Value 60.
Value 240.
Value 180.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 5.
Value 5.
Value 2.
Value -2.
Value 0.8.
Value 60.
Value 60.
Value 240.
Value 180.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 5.
Value 5.
Value 2.
Value -2.
Value 0.8.
Value 60.
Value 60.
Value 240.
Value 180.
Value 60.
Value 60.
Value 600.
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 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 3.
Value 1.
Value -2.
Value 0.6.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
End-of-Day Summary
Climate
59.1–91.2°F; avg 68.8°F
0.32–2.79 kPa; avg 0.82 kPa
32.3–83.2%
Stress Hours
- Heat stress (>85°F): 7.2h
- VPD stress (>2.0 kPa): 5.9h
- Cold stress (<55°F): 10.6h
Economics
USD 0.14
USD 0.55
USD 0.410
USD 1.10
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: 489 gal
- Mister: 273 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 the background look generally okay, but lighting is poor.
Hanging orchids appear stable, though difficult to assess fully in IR light.
Seedlings appear healthy, but difficult to see clearly.
Pepper seedlings look relatively healthy but could benefit from more light.
Seedlings appear small, difficult to assess health.
Hourly Pattern
RH 67.3%.
RH 50.1%.
RH 64.2%.
RH 50.4%.
RH 68.5%.
RH 63.6%.
RH 50.6%.
RH 54.0%.
RH 55.4%.
RH 74.9%.
RH 75.5%.
RH 76.7%.
RH 76.4%.
RH 75.5%.
RH 74.1%.
RH 73.2%.
RH 73.3%.
RH 72.1%.
RH 69.3%.
RH 67.6%.
RH 66.4%.
RH 66.9%.
RH 64.5%.
RH 66.2%.
7-Day Stress Context
Cold stress 1.1h.
Cold stress 2.6h.
Cold stress 4.3h.
Cold stress 1.1h.
Cold stress 11.6h.
Cold stress 13.8h.
Cold stress 10.6h.