April 19, 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.

Planner Execution Ledger

Planner checkpoints can acknowledge that the active plan is still suitable without writing a new public plan ID. Those no-change decisions are part of the audit trail.

Delivery events

8

Plan writes

1

No-change acknowledgements

0

Pending

0

EventDeliveredTypeStatusResultResolvedNote
Decline18:44TRANSITIONplan_writteniris-20260419-190319:06Wrote public plan iris-20260419-1903. Resolved 19:06 MDT.
New forecast data19:32FORECASTtimed_out-unknownDelivery recorded without a public plan write.
Evening planning cycle19:44SUNSETtimed_out-unknownDelivery recorded without a public plan write.
New forecast data20:31FORECASTtimed_out-unknownDelivery recorded without a public plan write.
Evening Settle20:44TRANSITIONtimed_out-unknownDelivery recorded without a public plan write.
New forecast data21:36FORECASTtimed_out-unknownDelivery recorded without a public plan write.
New forecast data22:37FORECASTtimed_out-unknownDelivery recorded without a public plan write.
New forecast data23:36FORECASTtimed_out-unknownDelivery recorded without a public plan write.

🌅 Morning Cycle (12:25 AM) — iris-20260419-0022

Status

validated

Outcome score

3/10

Changed parameters

none recorded

Reflection

Validating previous cycle: iris-20260418-0929

Previous hypothesis: Forecast update — Monday coverage gap. Current plan ends Mon 00:00 with overnight defaults, but Monday is the hardest day: 80°F/8% RH outdoor (VPD 3.21 kPa at 3 PM). Worse than Sunday’s 71°F/5%. Saturday and Sunday posture retained from iris-20260418-0618 (including Sunday fog_esc=0.3 experiment). Sunday freeze protection moved 1h earlier (05:00 vs 06:00) for 32°F nadir margin. Monday gets maximum misting aggression matching Sunday’s experimental posture — fog_esc 0.3, gap 15s, 900s sealed vent — providing a second data point under even more extreme conditions. Tuesday overnight is warmer (53-58°F, 26-32% RH) — lightest bias needed. Result: Plan ran unmodified 18+ hours (00:22 → 19:06 MDT) with no intraday replanning. Scorecard: 25.5 score, 17.8% compliance, 14.4h cold stress (structural — crop band alignment per lesson #6), 4.2h heat stress, 4.5h VPD high stress. Cost USD 6.53 (above 7d avg USD 6.07). Evening vpd_high=0.60 proved too aggressive — drove south zone to 0.08 VPD near condensation risk. DP margin min was 4.3°F (below 5°F target). Leak alerts fired multiple times during afternoon misting. Setpoint unconfirmed alerts for vpd_target params persisted for hours — indicates ESP32 was not accepting zone-specific VPD targets pushed by the planner. Score: 3/10

New finding: Zone-specific VPD target setpoints (vpd_target_south, vpd_target_west, vpd_target_center, vpd_target_east) generate persistent unconfirmed alerts when pushed — the ESP32 firmware may not support these as writable parameters. The planner should avoid pushing zone-specific VPD targets until the firmware is confirmed to accept them. Use mister_engage_kpa and mister_vpd_weight to control zone prioritization instead. → Added to Lessons Learned

Hypothesis

Testing: Three-day paired fog_escalation_kpa=0.3 test across escalating thermal regimes: Sunday 72°F/5%, Monday 81°F/5%, Tuesday 84°F/8%. Compare VPD compliance, fog activation frequency, and water usage across all three days to characterize fog effectiveness vs outdoor temperature. Expected outcome: Sunday: compliance 25-35%, heat_stress 2-4h, vpd_high 3-5h, water 300-450 gal, cost USD 6-10. Monday: compliance 15-25%, heat_stress 4-6h, vpd_high 5-8h, water 350-500 gal, cost USD 8-12. Tuesday (worst): compliance 10-20%, heat_stress 5-8h, vpd_high 6-9h, water 400-500 gal, cost USD 8-14. 72h total: USD 22-36. Tuesday morning gap 20s (vs 25s Sun/Mon) should show whether tighter morning misting reduces VPD ramp overshoot on fast-heating days.

Setpoints

Sunday April 19

Primary crop-band changes:

TimeValuesNote
05:00hyst 0.3Frost protection — 33°F outdoor nadir. bias_heat +4 shifts f
09:00hyst 0.2Morning ramp — clouds clearing, outdoor 48°F/20% by 9 AM. Lo
13:00hyst 0.2Peak dry — outdoor 67°F/6%, clear sky, 865 W/m². Max aggress
19:00hyst 0.3Evening — solar dropping fast after 7 PM. Revert to conserva

Tactical tunable changes:

TimeValuesNote
05:00d_cool 3; engage 1.6; all 1.9; pulse 60; gap 45; wt 2.5Frost protection — 33°F outdoor nadir. bias_heat +4 shifts f
09:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 25; wt 2.5Morning ramp — clouds clearing, outdoor 48°F/20% by 9 AM. Lo
13:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 15; wt 2.5Peak dry — outdoor 67°F/6%, clear sky, 865 W/m². Max aggress
19:00d_cool 3; engage 1.6; all 1.9; pulse 60; gap 45; wt 2.5Evening — solar dropping fast after 7 PM. Revert to conserva

Monday April 20

Primary crop-band changes:

TimeValuesNote
00:00hyst 0.4Monday overnight — 44-47°F outdoor, clear. Wider hysteresis
10:00hyst 0.2Monday morning — variable clouds but heating fast (59°F/9% b
13:00hyst 0.2Monday peak — 78°F/5% outdoor, 871 W/m². Max aggression. fog
19:00hyst 0.3Monday evening — 72°F/14% outdoor, still dry. Warmer overnig

Tactical tunable changes:

TimeValuesNote
00:00d_cool 3; engage 1.6; all 1.9; pulse 60; gap 45; wt 2.5Monday overnight — 44-47°F outdoor, clear. Wider hysteresis
10:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 25; wt 2.5Monday morning — variable clouds but heating fast (59°F/9% b
13:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 15; wt 2.5Monday peak — 78°F/5% outdoor, 871 W/m². Max aggression. fog
19:00d_cool 3; engage 1.6; all 1.9; pulse 60; gap 35; wt 2.5Monday evening — 72°F/14% outdoor, still dry. Warmer overnig

Tuesday April 21

Primary crop-band changes:

TimeValuesNote
00:00hyst 0.3Tuesday overnight — warm 55-57°F, 23-27% RH. Mild conditions
09:00hyst 0.2Tuesday morning — fastest ramp of the 3 days. 69°F/18% outdo
13:00hyst 0.2Tuesday peak — WORST DAY: 81°F/8% outdoor, 901 W/m² solar. f
19:00hyst 0.3Tuesday evening — overcast, 74°F/17% outdoor. Warmer than Su

Tactical tunable changes:

TimeValuesNote
00:00d_cool 3; engage 1.6; all 1.9; pulse 60; gap 45; wt 2.5Tuesday overnight — warm 55-57°F, 23-27% RH. Mild conditions
09:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 20; wt 2.5Tuesday morning — fastest ramp of the 3 days. 69°F/18% outdo
13:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 15; wt 2.5Tuesday peak — WORST DAY: 81°F/8% outdoor, 901 W/m² solar. f
19:00d_cool 3; engage 1.6; all 1.9; pulse 60; gap 35; wt 2.5Tuesday evening — overcast, 74°F/17% outdoor. Warmer than Su

Wednesday April 22

Primary crop-band changes:

TimeValuesNote
00:00hyst 0.3Wednesday overnight anchor — 60°F/31% outdoor, overcast, pos

Tactical tunable changes:

TimeValuesNote
00:00d_cool 3; engage 1.6; all 1.9; pulse 60; gap 45; wt 2.5Wednesday overnight anchor — 60°F/31% outdoor, overcast, pos

Changed secondary parameters:

TimeParameterChange
05:00bias_coolinitial 4
05:00bias_heatinitial 4
05:00enthalpy_closeinitial 1
05:00enthalpy_openinitial -2
05:00fog_escalation_kpainitial 0.8
05:00min_fog_off_sinitial 60
05:00min_fog_on_sinitial 60
05:00min_heat_off_sinitial 300
05:00min_heat_on_sinitial 120
05:00min_vent_off_sinitial 60
05:00min_vent_on_sinitial 60
05:00mist_max_closed_vent_sinitial 600
05:00mist_thermal_relief_sinitial 90
05:00mist_vent_close_lead_sinitial 15
05:00mist_vent_reopen_delay_sinitial 45
05:00mister_water_budget_galinitial 500
05:00vpd_watch_dwell_sinitial 60
09:00bias_cool4 → 1
09:00bias_heat4 → 0
09:00fog_escalation_kpa0.8 → 0.4
09:00mist_max_closed_vent_s600 → 900
13:00bias_cool1 → 0
13:00fog_escalation_kpa0.4 → 0.3
19:00bias_cool0 → 3
19:00bias_heat0 → 2
19:00fog_escalation_kpa0.3 → 0.8
19:00mist_max_closed_vent_s900 → 600
10:00bias_cool3 → 1
10:00bias_heat2 → 0
10:00fog_escalation_kpa0.8 → 0.4
10:00mist_max_closed_vent_s600 → 900
13:00bias_cool1 → 0
13:00fog_escalation_kpa0.4 → 0.3
19:00bias_cool0 → 2
19:00bias_heat0 → 1
19:00fog_escalation_kpa0.3 → 0.5
19:00mist_max_closed_vent_s900 → 600
00:00fog_escalation_kpa0.5 → 0.8
09:00bias_cool2 → 1
09:00bias_heat1 → 0
09:00fog_escalation_kpa0.8 → 0.4
09:00mist_max_closed_vent_s600 → 900
13:00bias_cool1 → 0
13:00fog_escalation_kpa0.4 → 0.3
19:00bias_cool0 → 1
19:00fog_escalation_kpa0.3 → 0.5
19:00mist_max_closed_vent_s900 → 600
00:00fog_escalation_kpa0.5 → 0.8

🌆 Evening Cycle (7:06 PM) — iris-20260419-1903

Status

validated

Outcome score

4/10

Changed parameters

none recorded

Reflection

Validating previous cycle: iris-20260419-0022

Previous hypothesis: Forecast update — extending coverage through Tuesday, which is now the hardest day in the window (84°F/8% outdoor, VPD 3.57 kPa). Sunday and Monday postures largely retained from iris-20260418-1943 — both days validated as well-calibrated for extreme dry conditions. Sunday: frost protection pre-dawn (33°F nadir), then clear-sky maximum misting aggression. Monday: similar but hotter (81°F/5%) with variable clouds. Tuesday: worst day — 84°F peak, 8-9% RH, clear AM then overcast PM. Maximum aggression with fog_esc=0.3 continued as third data point for the paired experiment (Sunday 72°F/5%, Monday 81°F/5%, Tuesday 84°F/8%). Wednesday overnight anchor at mild 60°F/31% — lightest bias needed… Result: Plan covered 7 PM Apr 19 → 6 AM Apr 20 (~11h). Apr 19 full-day scorecard: score 27.4, compliance 17.8%, temp_compliance 22.4% (bottleneck), vpd_compliance 79.1% (good), heat_stress 2.57h, vpd_high 3.57h, vpd_low 1.93h, cost USD 5.16. VPD management was better than expected (79.1% vs hypothesis 20-30% compliance). The evening correction to stop over-aggressive VPD targeting was appropriate — vpd_low_stress was only 1.93h. Overnight: greenhouse held 68-73°F, VPD 0.8-1.2, RH 56-65% — mechanically stable. However, the Apr 20 partial scorecard (6 PM→6 AM window) shows 9.279 therms gas (USD 7.70) and 30.8h cumulative zone-stress — the tight crop band (63.5-68.9°F, VPD 0.4-0.7) is structurally penalizing: the greenhouse at 72°F and 1.0 VPD registers as double-stressed despite being perfectly healthy for the plants. Cost is running 2x the 7-day average primarily from gas heating against the tight band. Score: 4/10

New finding: Crop bands (63.5-68.9°F temp, 0.4-0.7 VPD) are structurally too tight for spring conditions. A 5.4°F temp band and 0.3 kPa VPD band guarantee low compliance — healthy overnight conditions (72°F, 1.0 VPD) register as double-failure. This is a band alignment problem, not a control problem. Heater oscillation to maintain 67.5°F+ drives USD 7+ overnight gas costs. Need to revisit crop profile bands or accept structural scoring penalty. → Added to Lessons Learned

Hypothesis

Testing: Continued fog_escalation_kpa=0.3 test on Mon/Tue. Compare Monday (overcast AM → clearing PM, 82F peak) vs Tuesday (clear all day, 83F peak) to isolate cloud-cover effect on VPD ramp timing and misting water usage. Wednesday serves as humidity-recovery baseline. Expected outcome: Monday: compliance 20-30%, heat_stress 3-5h, vpd_high 4-6h (overcast delays ramp), water 300-400 gal, cost USD 6-9. Tuesday: compliance 15-25%, heat_stress 5-7h, vpd_high 5-8h (clear sky = early ramp), water 350-450 gal, cost USD 7-10. Wednesday: compliance 30-40% (humidity relief), heat_stress 3-5h, vpd_high 3-5h, water 200-300 gal, cost USD 5-7. 72h total: USD 18-26.

Setpoints

Sunday April 19

Primary crop-band changes:

TimeValuesNote
19:10vpd_h 1.2; hyst 0.3Evening wind-down. VPD 0.52 at 67F is healthy — relax vpd_hi

Tactical tunable changes:

TimeValuesNote
19:10engage 1.6; all 1.9; gap 45Evening wind-down. VPD 0.52 at 67F is healthy — relax vpd_hi

Monday April 20

Primary crop-band changes:

TimeValuesNote
00:00vpd_h 1.4Monday overnight. Outdoor dropping to 42F. Bias_heat +2 for
06:00vpd_h 1.2Pre-dawn Monday. Outdoor 42F, 100% cloud. Extra heating bias
10:00vpd_h 0.8Monday morning ramp. Still overcast (100% cloud) but outdoor
13:00vpd_h 0.7Monday peak stress. Clouds clearing (74%), 79F outdoor, 6% R
19:00vpd_h 1.2Monday evening. Outdoor cooling to 68F. Relax misting, shift

Tactical tunable changes:

TimeValuesNote
00:00engage 1.6Monday overnight. Outdoor dropping to 42F. Bias_heat +2 for
06:00engage 1.6Pre-dawn Monday. Outdoor 42F, 100% cloud. Extra heating bias
10:00engage 1.3; all 1.6; gap 30Monday morning ramp. Still overcast (100% cloud) but outdoor
13:00engage 1.2; all 1.5; gap 20Monday peak stress. Clouds clearing (74%), 79F outdoor, 6% R
19:00engage 1.6; all 1.9; gap 45Monday evening. Outdoor cooling to 68F. Relax misting, shift

Tuesday April 21

Primary crop-band changes:

TimeValuesNote
00:00vpd_h 1.4Tuesday overnight. Outdoor 54F dropping to 48F. Moderate hea
09:00vpd_h 0.8Tuesday early ramp. Clear sky, 66F/11% outdoor by 9 AM — fas
13:00vpd_h 0.7Tuesday peak stress. 82F/10% outdoor, clear → some cloud PM.
19:00vpd_h 1.2Tuesday evening. Outdoor 76F dropping — warmer evening than

Tactical tunable changes:

TimeValuesNote
00:00engage 1.6Tuesday overnight. Outdoor 54F dropping to 48F. Moderate hea
09:00engage 1.3; all 1.6; gap 25Tuesday early ramp. Clear sky, 66F/11% outdoor by 9 AM — fas
13:00engage 1.2; all 1.5; gap 20Tuesday peak stress. 82F/10% outdoor, clear → some cloud PM.
19:00engage 1.6; all 1.9; gap 45Tuesday evening. Outdoor 76F dropping — warmer evening than

Wednesday April 22

Primary crop-band changes:

TimeValuesNote
00:00vpd_h 1.4Wednesday overnight anchor. Moisture arriving — 40-48% outdo

Tactical tunable changes:

TimeValuesNote
00:00engage 1.4; gap 35Wednesday overnight anchor. Moisture arriving — 40-48% outdo

Changed secondary parameters:

TimeParameterChange
19:10bias_coolinitial 0
19:10bias_heatinitial 0
19:10fog_escalation_kpainitial 0.5
19:10mist_max_closed_vent_sinitial 300
19:10mister_water_budget_galinitial 500
00:00bias_heat0 → 2
06:00bias_heat2 → 4
10:00bias_cool0 → 2
10:00bias_heat4 → 0
10:00fog_escalation_kpa0.5 → 0.3
10:00mist_max_closed_vent_s300 → 900
13:00bias_cool2 → 3
19:00bias_cool3 → 0
19:00bias_heat0 → 2
19:00fog_escalation_kpa0.3 → 0.5
19:00mist_max_closed_vent_s900 → 300
09:00bias_cool0 → 2
09:00bias_heat2 → 0
09:00fog_escalation_kpa0.5 → 0.3
09:00mist_max_closed_vent_s300 → 900
13:00bias_cool2 → 3
19:00bias_cool3 → 0
19:00bias_heat0 → 1
19:00fog_escalation_kpa0.3 → 0.5
19:00mist_max_closed_vent_s900 → 300
00:00bias_heat1 → 0
00:00fog_escalation_kpa0.5 → 0.4
00:00mist_max_closed_vent_s300 → 600

End-of-Day Summary

Climate

Temperature

53.6–90.4°F; avg 68.1°F

VPD

0.23–3.04 kPa; avg 0.93 kPa

Relative humidity

22.2–85.7%

Stress Hours

  • Heat stress (>85°F): 6.8h
  • VPD stress (>2.0 kPa): 9.0h
  • Cold stress (<55°F): 14.0h

Economics

Electric

USD 2.33

Gas

USD 2.45

Water

USD 2.430

Total

USD 7.21

Equipment Runtimes

EquipmentRuntimeReading
Fan 1189 minPrimary exhaust runtime.
Fan 2211 minSecondary exhaust runtime.
Vent289 minIntake vent runtime.
Fog98 minFogger runtime.
Heat 1 electric714 minElectric heater runtime.
Heat 2 gas236 minGas heater runtime.
Grow lights0 minSupplemental lighting runtime.
Mister south1.74hSouth mister runtime.
Mister west0.65hWest mister runtime.
Mister center2.08hCenter mister runtime.

Water

  • Total: 502 gal
  • Mister: 238 gal

Crop Health (Gemini Vision)

CropZoneHealthObservationsNote
Canna Liliessouth70%4Observation notes are collapsed below to avoid publishing partial vision snippets.
Vanda Orchidscenter60%4Observation notes are collapsed below to avoid publishing partial vision snippets.
lettuceeast60%4Observation notes are collapsed below to avoid publishing partial vision snippets.
peppereast58%4Observation notes are collapsed below to avoid publishing partial vision snippets.
strawberryeast63%4Observation notes are collapsed below to avoid publishing partial vision snippets.
Vision observation notes
Canna LiliesGemini Vision notes

Canna Lilies look generally healthy, though lighting makes detailed assessment difficult.

Vanda OrchidsGemini Vision notes

Hanging orchids appear generally healthy, though some lower leaves look slightly pale.

lettuceGemini Vision notes

Seedlings appear small but generally healthy, though hard to see clearly due to image quality.

pepperGemini Vision notes

Difficult to assess health accurately due to distance and image clarity.

strawberryGemini Vision notes

Difficult to assess health accurately due to distance and image clarity.

Hourly Pattern

HourTemperatureVPDRH
12:0077.0°F1.20 kPa62.4%
13:0079.4°F1.26 kPa63.6%
14:0081.8°F1.93 kPa47.2%
15:0084.8°F1.74 kPa56.7%
16:0076.3°F1.35 kPa57.2%
17:0071.7°F0.86 kPa67.7%
18:0067.5°F0.57 kPa75.5%
19:0064.9°F0.46 kPa78.5%
20:0061.3°F0.43 kPa77.0%
21:0060.7°F0.42 kPa77.3%
22:0060.8°F0.47 kPa74.4%
23:0060.7°F0.53 kPa70.9%
00:0060.4°F0.50 kPa72.0%
01:0060.4°F0.54 kPa70.1%
02:0060.3°F0.53 kPa70.5%
03:0060.3°F0.54 kPa70.1%
04:0060.2°F0.54 kPa69.6%
05:0060.0°F0.53 kPa70.1%
06:0062.8°F0.63 kPa67.9%
07:0065.8°F0.73 kPa66.3%
08:0068.2°F0.86 kPa63.2%
09:0067.8°F0.84 kPa64.0%
10:0071.6°F1.03 kPa61.8%
11:0075.0°F1.07 kPa64.5%

7-Day Stress Context

DateHeatVPD highCold
2026-04-139.2h5.4h1.1h
2026-04-140.8h2.2h11.6h
2026-04-156.6h7.6h13.8h
2026-04-167.3h5.9h10.6h
2026-04-170.1h2.9h18.3h
2026-04-184.2h4.6h12.7h
2026-04-196.8h9.0h14.0h