May 27, 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

10

Plan writes

3

No-change acknowledgements

7

Pending

0

EventDeliveredTypeStatusNote
End-of-day review and reset00:16MIDNIGHTplan_writtenWrote public plan iris-20260527-0016. Resolved 00:18 MDT.
Morning planning cycle05:37SUNRISEplan_writtenWrote public plan iris-20260527-0537. Resolved 05:39 MDT.
Forecast deviation11:53FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed: solar/cloud forecast missed clear-sky break, but current climate remains inside band (77.2F vs 72-78F, VPD 0.83 vs 0.75-1.30, dew margin 8.6F) with ESP32 IDLE and all climate relays off. Existing active plan already has band-coupled dry-ramp moisture/cooling readiness, so no immediate tunable change is warranted. Resolved 11:54 MDT.
Solar peak planning checkpoint12:59SOLAR_MAXackedAcknowledged: SOLAR_MAX checked live climate, forecast, active plan, and setpoints. Solar is above the current overcast forecast, but indoor average VPD is still below the 1.30 kPa high edge at 1.03 kPa with healthy 11.2F dew margin; temperature is only slightly above the 78F high edge and controller is already in VENTILATE with the active plan's cooling/moisture posture loaded (all-fans enabled, fog_escalation_kpa 0.20, band-coupled mister thresholds, short mist gap)... Resolved 12:59 MDT.
Peak Stress14:58TRANSITIONackedAcknowledged: Peak-stress transition checked: greenhouse is tracking the active SUNRISE dry-ramp plan. Current climate is inside the dispatcher-owned band (77.3F vs 72-78F, VPD 1.09 vs 0.68-1.23 kPa), ESP32 is IDLE with all climate relays off, dew margin is safe at 12.1F, and active setpoints already hold band-coupled wet assist for the dry-ramp window. No tactical tunable change warranted. Resolved 14:59 MDT.
Forecast deviation15:24FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION reviewed: cloud-cover forecast missed clear/bright sky, but live climate is stable enough and current plan already carries guardrail-aware band-coupled moisture/cooling posture. Temp is only slightly above band in VENTILATE, VPD is below high edge, dew margin is safe, and equipment state matches controller intent; no tactical tunable change warranted. Resolved 15:24 MDT.
Forecast deviation16:39FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION vpd_kpa was lower/more humid than forecast, matching known positive VPD forecast bias. Live house is in band (73.5F, VPD 0.80 kPa vs 0.58-1.13 band), dew margin is safe at 9.5F, controller is IDLE, and all climate relays are off. No tunable change warranted. Resolved 16:40 MDT.
Decline19:20TRANSITIONackedAcknowledged: TRANSITION Decline checked: current house climate is tracking the active plan with temp 68.3F just inside the 68.4F high edge, VPD 0.76 kPa below the 0.96 high edge, dew margin 10.6F, no wet/fog demand, and only the vent open for temperature trim. Existing 19:30/22:00 waypoints already unwind toward wider mist gaps and higher fog escalation for the humid evening/overnight window, so no tactical tunable change is warranted. Resolved 19:21 MDT.
Forecast deviation19:26FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed: precipitation forecast called for 0.14 in/h but observed precipitation is 0. Current greenhouse climate is stable for this event: 68.6F, VPD 0.70 kPa within the active band, RH 71%, dew margin 9.9F. Equipment state shows only vent open with fans, fog, misters, and heat off; no relay anomaly. Diagnosis is a near-term precipitation forecast miss/weather-model error, not equipment failure and not a live climate miss requiring tactical tuning. Resolved 19:26 MDT.
Evening planning cycle20:21SUNSETplan_writtenWrote public plan iris-20260527-2021. Resolved 20:23 MDT.

🌅 Morning Cycle (12:18 AM) — iris-20260527-0016

Status

validated

Outcome score

6/10

Changed parameters

cold_vent_guard_delta_f, cool_exit_hysteresis_f, cool_stage2_over_high_f, direct_wet_stress_latest_hour, direct_wet_stress_min_dew_margin_f, direct_wet_stress_vpd_margin_kpa, dwell_gate_ms, enthalpy_close ...

Reflection

Validating previous cycle: iris-20260526-0537

Previous hypothesis: SUNRISE plan for Tuesday 2026-05-26. Yesterday scored 54.9 with 50.0% both-axis compliance; temperature was the tighter individual axis at 51.8% versus VPD 67.2%, and heat stress dominated at 11.37h with material VPD-high at 7.45h. Cost was acceptable at USD 3.81, below the USD 6.77 7-day average, but electric and water use were above trend (11.47 kWh and 213 gal vs 4.0 kWh and 110 gal), showing the day was cooling/mist/fog driven rather than gas driven. I revised the sunset plan evaluation to 6/10 vs anchor 5: climate outcome was good overnight, but 327 VPD-high guardrail events mean it still fought the dispatcher, so this plan must stay cleanly band-coupled rather than relying on clamps. Current dawn is humid and safe but near dew caution: 64.6F, VPD 0.44, RH 79%, dew margin 6.8F, IDLE/heat1. Today’s forecast is cloudy but dry by midday: 82F, RH 19%, VPD near 3… Result: MIDNIGHT reset protected the humid pre-dawn reasonably but was only partly successful. The plan-window evidence shows about 75.1% both-axis compliance, 81.9% temp compliance, 82.8% VPD compliance, low cost around USD 0.22, dew safety intact, and no major climate excursion. It correctly suppressed wet carryover into the humid overnight period, but still accumulated some cold/VPD-low/VPD-high stress and had one missed transition detail, so I am not scoring it as excellent. It did not create the same severe guardrail problem as earlier sunset plans, but the day still needed the SUNRISE plan for the dry-ramp handoff. Score: 6/10

New finding: Humid midnight reset plans can safely suppress wet carryover when dew margin is adequate, but they should keep the next-day dry-ramp handoff explicit and band-coupled because the pre-dawn climate score alone does not cover the later solar/VPD stress. → Added to Lessons Learned

Hypothesis

Testing: Guardrail-clean midnight reset: keep humid pre-dawn suppressed, then request band-coupled daytime moisture directly during the dry ramp; success is >70% Wednesday both-axis compliance, VPD-high under 3h, dp-risk 0h, VPD-low under 1h before sunset, and materially fewer VPD-high moisture guardrail holds than iris-20260526-2020. Expected outcome: By Wednesday sunset: no dew-risk hours, VPD-low under 1h before the humid night, VPD-high below 3h despite the overcast dry ramp, cost under USD 5 unless fog/cooling is required for compliance, and reduced guardrail holds versus the prior sunset plan.

Setpoints

Wednesday May 27

Primary crop-band changes:

TimeValuesNote
00:25hyst 0.2025Post-midnight is safe but VPD is still near the high edge; k
03:30hyst 0.20750000000000002Pre-dawn forecast cools and humidifies; suppress wet/fog car
06:00hyst 0.2025Sunrise starts humid/overcast; wait for live VPD ramp confir
09:00hyst 0.18250000000000002Dry-ramp handoff: raw VPD rises above band by late morning;
13:00hyst 0.17750000000000002Wednesday dry peak: forecast VPD near 1.7-1.9 kPa raw, so pr
18:30hyst 0.1975Evening shoulder remains guardrail-safe while VPD is forecas
21:30hyst 0.21250000000000002Forecast shifts humid/rainy with VPD falling below target ov

Tactical tunable changes:

TimeValuesNote
00:25s2 1.945; cool_exit 1.87; all_fans 0; dw_stress 0; dw_until 19; fog_stress 0; fog_until 19; engage 0.8500000000000001; all 1.05; pulse 30; gap 56.25; wt 1.5166666666666666Post-midnight is safe but VPD is still near the high edge; k
03:30s2 2.025; cool_exit 1.96; all_fans 0; dw_stress 0; dw_until 17; fog_stress 0; fog_until 17; engage 1; all 1.25; pulse 30; gap 60; wt 1.2Pre-dawn forecast cools and humidifies; suppress wet/fog car
06:00s2 1.9425000000000001; cool_exit 1.87; all_fans 0; dw_stress 0; dw_until 18; fog_stress 0; fog_until 18; engage 0.9500000000000001; all 1.2000000000000002; pulse 30; gap 60; wt 1.3Sunrise starts humid/overcast; wait for live VPD ramp confir
09:00s2 1.585; cool_exit 1.51; all_fans 0; dw_stress 1; dw_until 19; fog_stress 1; fog_until 19; engage 0.8500000000000001; all 1.05; pulse 41.25; gap 33.75; wt 2.0666666666666664Dry-ramp handoff: raw VPD rises above band by late morning;
13:00s2 1.5150000000000001; cool_exit 1.42; all_fans 0; dw_stress 1; dw_until 19; fog_stress 1; fog_until 19; engage 0.8500000000000001; all 1; pulse 48.75; gap 30; wt 2.25Wednesday dry peak: forecast VPD near 1.7-1.9 kPa raw, so pr
18:30s2 1.8800000000000001; cool_exit 1.78; all_fans 0; dw_stress 1; dw_until 20; fog_stress 1; fog_until 20; engage 0.8500000000000001; all 1.05; pulse 33.75; gap 48.75; wt 1.7000000000000002Evening shoulder remains guardrail-safe while VPD is forecas
21:30s2 2.055; cool_exit 2.05; all_fans 0; dw_stress 0; dw_until 17; fog_stress 0; fog_until 17; engage 1.05; all 1.35; pulse 30; gap 60; wt 1.1Forecast shifts humid/rainy with VPD falling below target ov

Thursday May 28

Primary crop-band changes:

TimeValuesNote
05:30hyst 0.21250000000000002Thursday pre-dawn VPD-low risk is high (forecast RH 92-95%,
12:30hyst 0.18250000000000002Fallback for Thursday solar/dry rebound if later cycles are

Tactical tunable changes:

TimeValuesNote
05:30s2 2.02; cool_exit 2.05; all_fans 0; dw_stress 0; dw_until 17; fog_stress 0; fog_until 17; engage 1.1; all 1.4; pulse 30; gap 60; wt 1.1Thursday pre-dawn VPD-low risk is high (forecast RH 92-95%,
12:30s2 1.505; cool_exit 1.51; all_fans 0; dw_stress 1; dw_until 20; fog_stress 1; fog_until 20; engage 0.8500000000000001; all 1.05; pulse 41.25; gap 33.75; wt 2.0666666666666664Fallback for Thursday solar/dry rebound if later cycles are

Changed secondary parameters:

TimeParameterChange
00:25cold_vent_guard_delta_finitial 8
00:25direct_wet_stress_min_dew_margin_finitial 12
00:25direct_wet_stress_vpd_margin_kpainitial 0.05
00:25dwell_gate_msinitial 255000
00:25enthalpy_closeinitial 1
00:25enthalpy_openinitial -2
00:25fog_escalation_kpainitial 0.25
00:25fog_stress_min_dew_margin_finitial 12
00:25heat_hysteresisinitial 1.1
00:25min_fog_off_sinitial 96
00:25min_fog_on_sinitial 50.25
00:25mist_backoff_sinitial 600
00:25mist_max_closed_vent_sinitial 120
00:25mist_thermal_relief_sinitial 90
00:25mister_all_delay_sinitial 88.5
00:25mister_engage_delay_sinitial 44.25
00:25mister_water_budget_galinitial 180
00:25outdoor_staleness_max_sinitial 600
00:25sw_dwell_gate_enabledinitial 1
00:25sw_fog_closes_ventinitial 1
00:25sw_mister_closes_ventinitial 0
00:25sw_summer_vent_enabledinitial 1
00:25temp_hysteresisinitial 1.87
00:25vent_prefer_dp_delta_finitial 4
00:25vent_prefer_temp_delta_finitial 4
00:25vpd_watch_dwell_sinitial 63.75
03:30cold_vent_guard_delta_f8 → 9
03:30direct_wet_stress_vpd_margin_kpa0.05 → 0.2
03:30dwell_gate_ms255000 → 270000
03:30fog_escalation_kpa0.25 → 0.5
03:30min_fog_off_s96 → 120
03:30min_fog_on_s50.25 → 41.25
03:30mister_all_delay_s88.5 → 93
03:30mister_engage_delay_s44.25 → 46.5
03:30mister_water_budget_gal180 → 140
03:30temp_hysteresis1.87 → 1.96
03:30vent_prefer_dp_delta_f4 → 7
03:30vent_prefer_temp_delta_f4 → 5
03:30vpd_watch_dwell_s63.75 → 67.5
06:00direct_wet_stress_vpd_margin_kpa0.2 → 0.15
06:00dwell_gate_ms270000 → 255000
06:00fog_escalation_kpa0.5 → 0.4
06:00min_fog_off_s120 → 108
06:00min_fog_on_s41.25 → 45.75
06:00mister_all_delay_s93 → 88.5
06:00mister_engage_delay_s46.5 → 44.25
06:00mister_water_budget_gal140 → 160
06:00temp_hysteresis1.96 → 1.87
06:00vent_prefer_dp_delta_f7 → 6
06:00vpd_watch_dwell_s67.5 → 63.75
09:00cold_vent_guard_delta_f9 → 7
09:00direct_wet_stress_min_dew_margin_f12 → 10
09:00direct_wet_stress_vpd_margin_kpa0.15 → 0.05
09:00dwell_gate_ms255000 → 195000
09:00fog_escalation_kpa0.4 → 0.2
09:00fog_stress_min_dew_margin_f12 → 10
09:00min_fog_off_s108 → 60
09:00min_fog_on_s45.75 → 63.75
09:00mister_all_delay_s88.5 → 70.5
09:00mister_engage_delay_s44.25 → 35.25
09:00mister_water_budget_gal160 → 220
09:00temp_hysteresis1.87 → 1.51
09:00vent_prefer_dp_delta_f6 → 5
09:00vent_prefer_temp_delta_f5 → 3
09:00vpd_watch_dwell_s63.75 → 48.75
13:00dwell_gate_ms195000 → 180000
13:00min_fog_off_s60 → 54
13:00min_fog_on_s63.75 → 66
13:00mister_all_delay_s70.5 → 66
13:00mister_engage_delay_s35.25 → 33
13:00temp_hysteresis1.51 → 1.42
13:00vpd_watch_dwell_s48.75 → 45
18:30cold_vent_guard_delta_f7 → 8
18:30direct_wet_stress_min_dew_margin_f10 → 12
18:30dwell_gate_ms180000 → 240000
18:30fog_escalation_kpa0.2 → 0.3
18:30fog_stress_min_dew_margin_f10 → 12
18:30min_fog_off_s54 → 84
18:30min_fog_on_s66 → 54.75
18:30mister_all_delay_s66 → 84
18:30mister_engage_delay_s33 → 42
18:30mister_water_budget_gal220 → 200
18:30temp_hysteresis1.42 → 1.78
18:30vent_prefer_dp_delta_f5 → 6
18:30vent_prefer_temp_delta_f3 → 4
18:30vpd_watch_dwell_s45 → 60
21:30cold_vent_guard_delta_f8 → 10
21:30direct_wet_stress_min_dew_margin_f12 → 14
21:30direct_wet_stress_vpd_margin_kpa0.05 → 0.25
21:30dwell_gate_ms240000 → 285000
21:30fog_escalation_kpa0.3 → 0.5
21:30fog_stress_min_dew_margin_f12 → 14
21:30min_fog_off_s84 → 132
21:30min_fog_on_s54.75 → 36.75
21:30mister_all_delay_s84 → 97.5
21:30mister_engage_delay_s42 → 48.75
21:30mister_water_budget_gal200 → 120
21:30temp_hysteresis1.78 → 2.05
21:30vent_prefer_dp_delta_f6 → 8
21:30vent_prefer_temp_delta_f4 → 6
21:30vpd_watch_dwell_s60 → 71.25
05:30direct_wet_stress_vpd_margin_kpa0.25 → 0.3
12:30cold_vent_guard_delta_f10 → 7
12:30direct_wet_stress_min_dew_margin_f14 → 10
12:30direct_wet_stress_vpd_margin_kpa0.3 → 0.05
12:30dwell_gate_ms285000 → 195000
12:30fog_escalation_kpa0.5 → 0.2
12:30fog_stress_min_dew_margin_f14 → 10
12:30min_fog_off_s132 → 60
12:30min_fog_on_s36.75 → 63.75
12:30mister_all_delay_s97.5 → 70.5
12:30mister_engage_delay_s48.75 → 35.25
12:30mister_water_budget_gal120 → 220
12:30temp_hysteresis2.05 → 1.51
12:30vent_prefer_dp_delta_f8 → 5
12:30vent_prefer_temp_delta_f6 → 3
12:30vpd_watch_dwell_s71.25 → 48.75

🌅 Morning Cycle (5:39 AM) — iris-20260527-0537

Status

validated

Outcome score

3/10

Changed parameters

cold_vent_guard_delta_f, cool_exit_hysteresis_f, cool_stage2_over_high_f, direct_wet_stress_latest_hour, direct_wet_stress_min_dew_margin_f, direct_wet_stress_vpd_margin_kpa, dwell_gate_ms, enthalpy_close ...

Reflection

Validating previous cycle: iris-20260526-2020

Previous hypothesis: SUNSET overnight plan for Tuesday 2026-05-26. Today scored 61.2 with 57.0% both-axis compliance, below the 7-day 65.4/66.7 trend. Temperature was the bottleneck at 64.9% compliance versus VPD 73.2%; heat stress dominated at 7.00h, with VPD-high still material at 4.77h. Cost was acceptable at USD 3.32, below the 7-day USD 6.00 average, driven by electric cooling/fog and water rather than gas: 5.56 kWh, 179 gal total, 48 gal misting, and 0 therms. Prior SUNRISE plan iris-20260526-0537 is now revised to 1/10 to match anchor 1 because guardrail scoring found 85 VPD-high moisture-guardrail events and 81 held events; the gap from my first 5/10 read was that climate-window metrics alone understated how much the plan fought dispatcher moisture policy. Current conditions are still temperature-high in VENTILATE with safe dew margin (~11F) and localized east VPD high… Result: SUNRISE 2026-05-27 daily outcome: planner_score 75.3, both-axis compliance 73.7%, temp compliance 79.4%, VPD compliance 85.7%. Temperature was the bottleneck and heat stress dominated at 4.78h, followed by VPD-high 2.42h, VPD-low 0.98h, and cold 0.12h. Cost was efficient at USD 2.72 versus 7d USD 5.19, mostly electric cooling/lights with minimal gas and low water. The plan protected climate reasonably and dew safety held (dp-risk 0h), but structured forecast missed actual solar badly (forecast 403 W/m2 vs observed about 1090 W/m2) and the plan still depended on dispatcher moisture guardrails/missed 09:00 rows rather than cleanly requesting the full band-coupled posture. Score follows the deterministic guardrail-aware anchor rather than the superficial daily climate score. Score: 3/10

Hypothesis

Testing: Guardrail-clean overcast dry-ramp posture: suppress wet at humid dawn, then request band-coupled moisture directly during the dry ramp and compare clamp/hold counts against yesterday. Expected outcome: Before sunset: >70% both-axis compliance, VPD-high under 3h, heat stress under 4h, VPD-low under 1h, dp-risk 0h, cost under USD 4.50, and materially fewer VPD-high moisture guardrail holds than iris-20260526-0537.

Conditions

Outdoor peak

73.0°F

RH minimum

35.0%

Solar peak

403.0 W/m²

Cloud average

99.0%

Humid in-band dawn with low dew margin buffer, then overcast but moderate-dry VPD ramp to about 1.6-1.7 kPa; evening turns humid again. Thursday fallback is warmer/drier with higher solar and VPD above 2 kPa.

Expected stress windows

vpd_highmedium · 2026-05-27T09:00:00-06:00 to 2026-05-27T18:30:00-06:00

Live-confirmed guardrail-clean band-coupled moisture: mister_engage near vpd_high+0.05, mister_all near +0.25, fog_escalation near 0.20 while fog gates and dew margin allow.

vpd_lowlow · 2026-05-27T21:00:00-06:00 to 2026-05-28T08:30:00-06:00

Suppress wet/fog, raise dew margin floor, and keep high resource sensitivity through humid overcast night.

vpd_highhigh · 2026-05-28T10:00:00-06:00 to 2026-05-28T20:00:00-06:00

Fallback if next cycles are missed: stronger cooling lead and band-coupled wet assist for warmer high-solar dry ramp.

Parameter rationale

mister_engage_kpa1.0 → 0.84; Today VPD rises from 0.36 at dawn to 1.6-1.7 kPa from 11:00-17:00 while lessons 118/125 warn against conservative guardrail-clamped thresholds.

Make S1 moisture eligible near the active VPD high edge during the dry ramp and reduce VPD-high guardrail holds versus yesterday.

mister_all_kpa1.25 → 1.04; Whole-house dry ramp is moderate today and stronger Thursday; east crops and center orchids cannot be protected by south-only moisture.

Allow distributed all-zone rotation without forcing fog to carry the whole humidity correction.

fog_escalation_kpa0.5 → 0.2; Dry ramp overlaps the 07:00-17:00 fog window and dew margin should widen once temperature rises.

Use PR-A vent-fog assist for stubborn VPD-high during VENTILATE without waiting until far beyond band.

mister_pulse_gap_s60.0 → 30.0; Yesterday lost 5.98h to VPD-high and today still has 7-9h of dry forecast pressure despite clouds.

Maintain humidity between pulses during dry-ramp stress while avoiding dawn over-wet.

direct_wet_stress_min_dew_margin_f12.0 → 15.0; Evening and overnight RH forecast reaches 71-80% with VPD 0.28-0.58 kPa.

Block unnecessary wetting after the ramp and keep dp-risk at 0h.

min_fog_off_s120.0 → 60.0; Fog is the heavy path for stubborn VPD-high and yesterday's guardrail holds show overly conservative fog timing fought recovery.

Allow useful fog cycling during safe dry-ramp windows, then unwind at night through the later humid transition.

cool_stage2_over_high_f2.025 → 0.8; Yesterday's overcast forecast missed actual solar badly and heat stress dominated at 10.32h.

Improve cooling readiness if solar breaks through without changing crop-owned temperature bands.

Setpoints

Wednesday May 27

Primary crop-band changes:

TimeValuesNote
06:00hyst 0.20750000000000002Humid in-band dawn with 5.5F dew margin: hold wet assist con
09:00hyst 0.1925Morning ramp forecast reaches ~1.0 kPa VPD; start moving tow
11:00hyst 0.18250000000000002Forecast dry peak begins: write guardrail-clean band-coupled
15:00hyst 0.1875Afternoon VPD remains around 1.6-1.7 kPa; keep moisture band
19:30hyst 0.2025Evening decline should bring VPD toward band; preserve a sho
22:00hyst 0.21750000000000003Humid overcast night: suppress wet/fog and prioritize dew sa

Tactical tunable changes:

TimeValuesNote
06:00s2 1.9525000000000001; cool_exit 1.96; all_fans 0; dw_stress 0; dw_until 17; fog_stress 0; fog_until 17; engage 0.99; all 1.24; pulse 30; gap 60; wt 1.1666666666666665Humid in-band dawn with 5.5F dew margin: hold wet assist con
09:00s2 1.6225; cool_exit 1.69; all_fans 0; dw_stress 0; dw_until 19; fog_stress 0; fog_until 19; engage 0.87; all 1.09; pulse 30; gap 48.75; wt 1.6666666666666665Morning ramp forecast reaches ~1.0 kPa VPD; start moving tow
11:00s2 1.425; cool_exit 1.51; all_fans 1; dw_stress 1; dw_until 19; fog_stress 1; fog_until 19; engage 0.8400000000000001; all 1.04; pulse 41.25; gap 33.75; wt 2.0666666666666664Forecast dry peak begins: write guardrail-clean band-coupled
15:00s2 1.665; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 20; fog_stress 1; fog_until 20; engage 0.8400000000000001; all 1.04; pulse 37.5; gap 37.5; wt 2Afternoon VPD remains around 1.6-1.7 kPa; keep moisture band
19:30s2 1.965; cool_exit 1.87; all_fans 0; dw_stress 0; dw_until 20; fog_stress 0; fog_until 20; engage 0.89; all 1.1400000000000001; pulse 30; gap 56.25; wt 1.4Evening decline should bring VPD toward band; preserve a sho
22:00s2 2.0700000000000003; cool_exit 2.14; all_fans 0; dw_stress 0; dw_until 17; fog_stress 0; fog_until 17; engage 1.09; all 1.3900000000000001; pulse 30; gap 60; wt 1.0666666666666667Humid overcast night: suppress wet/fog and prioritize dew sa

Thursday May 28

Primary crop-band changes:

TimeValuesNote
10:00hyst 0.1875Thursday fallback: VPD rises again with stronger solar; reop
13:00hyst 0.18250000000000002Thursday peak fallback: forecast 75-79F, VPD near/above 2 kP

Tactical tunable changes:

TimeValuesNote
10:00s2 1.4025; cool_exit 1.6; all_fans 1; dw_stress 1; dw_until 20; fog_stress 1; fog_until 20; engage 0.8500000000000001; all 1.04; pulse 37.5; gap 37.5; wt 1.9166666666666665Thursday fallback: VPD rises again with stronger solar; reop
13:00s2 1.17; cool_exit 1.51; all_fans 1; dw_stress 1; dw_until 20; fog_stress 1; fog_until 20; engage 0.8400000000000001; all 1.01; pulse 48.75; gap 26.25; wt 2.283333333333333Thursday peak fallback: forecast 75-79F, VPD near/above 2 kP

Changed secondary parameters:

TimeParameterChange
06:00cold_vent_guard_delta_finitial 9
06:00direct_wet_stress_min_dew_margin_finitial 14
06:00direct_wet_stress_vpd_margin_kpainitial 0.2
06:00dwell_gate_msinitial 270000
06:00enthalpy_closeinitial 1
06:00enthalpy_openinitial -2
06:00fog_escalation_kpainitial 0.5
06:00fog_stress_min_dew_margin_finitial 14
06:00heat_hysteresisinitial 1.1
06:00min_fog_off_sinitial 126
06:00min_fog_on_sinitial 39
06:00mist_backoff_sinitial 600
06:00mist_max_closed_vent_sinitial 120
06:00mist_thermal_relief_sinitial 90
06:00mister_all_delay_sinitial 93
06:00mister_engage_delay_sinitial 46.5
06:00mister_water_budget_galinitial 120
06:00outdoor_staleness_max_sinitial 600
06:00sw_dwell_gate_enabledinitial 1
06:00sw_fog_closes_ventinitial 1
06:00sw_mister_closes_ventinitial 0
06:00sw_summer_vent_enabledinitial 1
06:00temp_hysteresisinitial 1.96
06:00vent_prefer_dp_delta_finitial 6
06:00vent_prefer_temp_delta_finitial 5
06:00vpd_watch_dwell_sinitial 67.5
09:00cold_vent_guard_delta_f9 → 8
09:00direct_wet_stress_min_dew_margin_f14 → 10
09:00direct_wet_stress_vpd_margin_kpa0.2 → 0.08
09:00dwell_gate_ms270000 → 225000
09:00fog_escalation_kpa0.5 → 0.25
09:00fog_stress_min_dew_margin_f14 → 10
09:00min_fog_off_s126 → 84
09:00min_fog_on_s39 → 54.75
09:00mister_all_delay_s93 → 79.5
09:00mister_engage_delay_s46.5 → 39.75
09:00mister_water_budget_gal120 → 160
09:00temp_hysteresis1.96 → 1.69
09:00vent_prefer_dp_delta_f6 → 5
09:00vent_prefer_temp_delta_f5 → 4
09:00vpd_watch_dwell_s67.5 → 56.25
11:00cold_vent_guard_delta_f8 → 7
11:00direct_wet_stress_min_dew_margin_f10 → 8
11:00direct_wet_stress_vpd_margin_kpa0.08 → 0.05
11:00dwell_gate_ms225000 → 195000
11:00fog_escalation_kpa0.25 → 0.2
11:00fog_stress_min_dew_margin_f10 → 8
11:00min_fog_off_s84 → 60
11:00min_fog_on_s54.75 → 63.75
11:00mister_all_delay_s79.5 → 70.5
11:00mister_engage_delay_s39.75 → 35.25
11:00mister_water_budget_gal160 → 180
11:00temp_hysteresis1.69 → 1.51
11:00vent_prefer_dp_delta_f5 → 4
11:00vent_prefer_temp_delta_f4 → 3
11:00vpd_watch_dwell_s56.25 → 48.75
15:00dwell_gate_ms195000 → 210000
15:00min_fog_off_s60 → 66
15:00min_fog_on_s63.75 → 61.5
15:00mister_all_delay_s70.5 → 75
15:00mister_engage_delay_s35.25 → 37.5
15:00temp_hysteresis1.51 → 1.6
15:00vpd_watch_dwell_s48.75 → 52.5
19:30cold_vent_guard_delta_f7 → 9
19:30direct_wet_stress_min_dew_margin_f8 → 12
19:30direct_wet_stress_vpd_margin_kpa0.05 → 0.1
19:30dwell_gate_ms210000 → 255000
19:30fog_escalation_kpa0.2 → 0.35
19:30fog_stress_min_dew_margin_f8 → 12
19:30min_fog_off_s66 → 96
19:30min_fog_on_s61.5 → 50.25
19:30mister_all_delay_s75 → 88.5
19:30mister_engage_delay_s37.5 → 44.25
19:30mister_water_budget_gal180 → 150
19:30temp_hysteresis1.6 → 1.87
19:30vent_prefer_dp_delta_f4 → 6
19:30vent_prefer_temp_delta_f3 → 5
19:30vpd_watch_dwell_s52.5 → 63.75
22:00cold_vent_guard_delta_f9 → 11
22:00direct_wet_stress_min_dew_margin_f12 → 15
22:00direct_wet_stress_vpd_margin_kpa0.1 → 0.3
22:00dwell_gate_ms255000 → 300000
22:00fog_escalation_kpa0.35 → 0.5
22:00fog_stress_min_dew_margin_f12 → 15
22:00min_fog_off_s96 → 138
22:00min_fog_on_s50.25 → 34.5
22:00mister_all_delay_s88.5 → 102
22:00mister_engage_delay_s44.25 → 51
22:00mister_water_budget_gal150 → 100
22:00temp_hysteresis1.87 → 2.14
22:00vent_prefer_dp_delta_f6 → 8
22:00vent_prefer_temp_delta_f5 → 7
22:00vpd_watch_dwell_s63.75 → 75
10:00cold_vent_guard_delta_f11 → 8
10:00direct_wet_stress_min_dew_margin_f15 → 9
10:00direct_wet_stress_vpd_margin_kpa0.3 → 0.06
10:00dwell_gate_ms300000 → 210000
10:00fog_escalation_kpa0.5 → 0.2
10:00fog_stress_min_dew_margin_f15 → 9
10:00min_fog_off_s138 → 66
10:00min_fog_on_s34.5 → 61.5
10:00mister_all_delay_s102 → 75
10:00mister_engage_delay_s51 → 37.5
10:00mister_water_budget_gal100 → 220
10:00temp_hysteresis2.14 → 1.6
10:00vent_prefer_dp_delta_f8 → 4
10:00vent_prefer_temp_delta_f7 → 4
10:00vpd_watch_dwell_s75 → 52.5
13:00cold_vent_guard_delta_f8 → 7
13:00direct_wet_stress_min_dew_margin_f9 → 8
13:00direct_wet_stress_vpd_margin_kpa0.06 → 0.05
13:00dwell_gate_ms210000 → 195000
13:00fog_escalation_kpa0.2 → 0.15
13:00fog_stress_min_dew_margin_f9 → 8
13:00min_fog_off_s66 → 48
13:00min_fog_on_s61.5 → 68.25
13:00mister_all_delay_s75 → 70.5
13:00mister_engage_delay_s37.5 → 35.25
13:00mister_water_budget_gal220 → 240
13:00temp_hysteresis1.6 → 1.51
13:00vent_prefer_temp_delta_f4 → 3
13:00vpd_watch_dwell_s52.5 → 48.75

🌆 Evening Cycle (8:23 PM) — iris-20260527-2021

Status

validated

Outcome score

1/10

Changed parameters

cold_vent_guard_delta_f, cool_exit_hysteresis_f, cool_stage2_over_high_f, direct_wet_stress_latest_hour, direct_wet_stress_min_dew_margin_f, direct_wet_stress_vpd_margin_kpa, dwell_gate_ms, enthalpy_close ...

Reflection

Validating previous cycle: iris-20260527-0537

Previous hypothesis: SUNRISE plan for Wednesday 2026-05-27. Yesterday scored 55.6 with 49.6% both-axis compliance; temperature was the bottleneck at 56.5% versus VPD 72.4%, with 10.32h heat stress and 5.98h VPD-high. Cost stayed acceptable at USD 3.08, below the USD 6.00 7-day average, driven by electric cooling/fog and water, not gas. I evaluated iris-20260526-0537 at 1/10 against anchor 2 because 85 VPD-high moisture guardrail events and 81 held events show the plan still fought dispatcher policy, and the overcast forecast missed actual solar badly. Today starts humid, safe, and in-band: 63.9F, VPD 0.36 kPa, RH 82%, dp margin 5.5F, all relays off, IDLE. The 18h forecast is fully overcast but still has a dry ramp: outdoor VPD rises to about 1.6-1.7 kPa late morning through afternoon, then falls humid again after 19:00… Result: Revised to align with deterministic anchor 1. Important nuance: this is not evidence of climate harm or guardrail failure. The guardrail scorecard is clean (0 guardrail events/holds), current climate is safe and in band at 63.9F/VPD 0.40 with 6.2F dew margin, and equipment is IDLE/off. The anchor is low because the completed prior-local-day evaluation window for this SUNSET plan is too short/partial at the midnight boundary and the provided window scorecard reports 0% compliance/score 20 rather than a meaningful full overnight result. Treat this as an incomplete midnight-boundary grade; re-evaluate the overnight hypothesis after dawn if the plan remains relevant. For the new MIDNIGHT plan, do not copy the 10:30 fallback blindly; replace it with an explicit humid pre-dawn to high-solar dry-ramp plan. Score: 1/10

Hypothesis

Testing: Test a clean humid-night unwind after observed VPD recovery, with an explicit missed-SUNRISE band-coupled dry-ramp fallback; success means dp-risk 0h, overnight VPD-low under 1.5h, and no new overnight VPD-high guardrail clamps before the morning ramp. Expected outcome: By 08:30: dew-risk 0h, minimum dew margin above 5F, overnight cost below USD 1.50, no material heater-to-vent oscillation, and additional VPD-low under 1.5h. If the 10:30 fallback governs because SUNRISE is missed, target VPD-high under 2h and fewer guardrail holds than iris-20260527-0537.

Conditions

Outdoor peak

78.0°F

RH minimum

34.0%

Solar peak

900.0 W/m²

Cloud average

91.0%

Sunset starts temp-high but VPD recovered. Overnight is saturated 52-59F and VPD 0.05-0.25, then Thursday has a dry solar ramp to about 78F, RH mid-30s, and VPD near 2.1 kPa if SUNRISE is missed.

Expected stress windows

heatlow · 2026-05-27T20:20:00-06:00 to 2026-05-27T22:00:00-06:00

Use outdoor cooling advantage and stable dwell to finish the evening settle without adding wet assist because house VPD is already below the high band.

vpd_lowhigh · 2026-05-27T22:00:00-06:00 to 2026-05-28T08:30:00-06:00

Suppress mist/fog overnight with high dew floor, long mist gaps, high resource sensitivity, and ventilation/dehumidification only when dewpoint advantage is safe.

vpd_highmedium · 2026-05-28T10:30:00-06:00 to 2026-05-28T20:00:00-06:00

Missed-SUNRISE fallback reopens guardrail-clean band-coupled moisture: engage near vpd_high+0.05, all-zone near +0.25, fog escalation near 0.20, and stronger cooling lead.

Parameter rationale

mister_engage_kpa0.89 → 1.17; Overnight outdoor VPD falls to 0.05-0.25 kPa and RH reaches 85-96%; current average VPD is recovered below high band.

Prevent unnecessary overnight S1 misting and keep additional VPD-low under 1h while preserving a band-coupled morning fallback.

mister_all_kpa1.14 → 1.42; Humid saturated night does not need all-zone rotation; prior guardrail evidence only applies once VPD is live above band.

Avoid all-zone wet carryover during the humid night without blocking tomorrow's explicit fallback waypoint.

fog_escalation_kpa0.35 → 0.5; Fog is blocked overnight by normal window and should remain conservative during the saturated pre-dawn.

Avoid fog-driven VPD-low/dew risk overnight; reopen to 0.20 only in the missed-SUNRISE dry-ramp fallback.

mister_pulse_gap_s56.25 → 60.0; Humidity should hold naturally overnight as outdoor RH climbs above 90% and solar is zero.

Reduce water use and VPD-low risk while keeping dew margin above 5F.

direct_wet_stress_min_dew_margin_f12.0 → 14.0; Dew margin is safe now but overnight RH is forecast to approach saturation.

Block marginal wetting when condensation risk rises and keep dp-risk at 0h.

cool_stage2_over_high_f1.965 → 0.8; Thursday forecast can reach 900 W/m2 solar and 1.5-2.1 kPa VPD; recent cloud forecasts missed solar badly.

If SUNRISE is missed, improve cooling readiness before heat and dry ventilation pair again.

Setpoints

Wednesday May 27

Primary crop-band changes:

TimeValuesNote
20:25hyst 0.2175evening_settle: finish current temp-high ventilation while V
22:00hyst 0.22249999999999998humid_night_unwind: outdoor RH 85-90% and VPD around 0.15-0.

Tactical tunable changes:

TimeValuesNote
20:25s2 1.99; cool_exit 2.14; all_fans 0; dw_stress 0; dw_until 20; fog_stress 0; fog_until 20; engage 1.02; all 1.27; pulse 30; gap 60; wt 1.1666666666666665evening_settle: finish current temp-high ventilation while V
22:00s2 2.0700000000000003; cool_exit 2.23; all_fans 0; dw_stress 0; dw_until 20; fog_stress 0; fog_until 20; engage 1.17; all 1.42; pulse 30; gap 60; wt 1.0666666666666667humid_night_unwind: outdoor RH 85-90% and VPD around 0.15-0.

Thursday May 28

Primary crop-band changes:

TimeValuesNote
00:30hyst 0.22749999999999998midnight_posture: saturated cool overnight segment; prioriti
05:30hyst 0.2175pre_dawn: still humid and overcast; keep wetting suppressed
10:30hyst 0.1925missed_sunrise_dry_ramp_fallback: if no SUNRISE plan lands,

Tactical tunable changes:

TimeValuesNote
00:30s2 2.085; cool_exit 2.3200000000000003; all_fans 0; dw_stress 0; dw_until 20; fog_stress 0; fog_until 20; engage 1.22; all 1.47; pulse 30; gap 60; wt 1.0333333333333334midnight_posture: saturated cool overnight segment; prioriti
05:30s2 1.9675000000000002; cool_exit 2.14; all_fans 0; dw_stress 0; dw_until 20; fog_stress 0; fog_until 20; engage 1.17; all 1.42; pulse 30; gap 60; wt 1.1pre_dawn: still humid and overcast; keep wetting suppressed
10:30s2 1.2874999999999999; cool_exit 1.69; all_fans 1; dw_stress 1; dw_until 20; fog_stress 1; fog_until 20; engage 0.87; all 1.0699999999999998; pulse 41.25; gap 33.75; wt 2.1500000000000004missed_sunrise_dry_ramp_fallback: if no SUNRISE plan lands,

Changed secondary parameters:

TimeParameterChange
20:25cold_vent_guard_delta_finitial 7
20:25direct_wet_stress_min_dew_margin_finitial 12
20:25direct_wet_stress_vpd_margin_kpainitial 0.2
20:25dwell_gate_msinitial 300000
20:25enthalpy_closeinitial 1
20:25enthalpy_openinitial -2
20:25fog_escalation_kpainitial 0.5
20:25fog_stress_min_dew_margin_finitial 12
20:25heat_hysteresisinitial 1.1
20:25min_fog_off_sinitial 126
20:25min_fog_on_sinitial 39
20:25mist_backoff_sinitial 600
20:25mist_max_closed_vent_sinitial 120
20:25mist_thermal_relief_sinitial 90
20:25mister_all_delay_sinitial 102
20:25mister_engage_delay_sinitial 51
20:25mister_water_budget_galinitial 120
20:25outdoor_staleness_max_sinitial 600
20:25sw_dwell_gate_enabledinitial 1
20:25sw_fog_closes_ventinitial 1
20:25sw_mister_closes_ventinitial 0
20:25sw_summer_vent_enabledinitial 1
20:25temp_hysteresisinitial 2.14
20:25vent_prefer_dp_delta_finitial 8
20:25vent_prefer_temp_delta_finitial 3
20:25vpd_watch_dwell_sinitial 75
22:00cold_vent_guard_delta_f7 → 9
22:00direct_wet_stress_min_dew_margin_f12 → 14
22:00direct_wet_stress_vpd_margin_kpa0.2 → 0.35
22:00dwell_gate_ms300000 → 315000
22:00fog_stress_min_dew_margin_f12 → 14
22:00min_fog_off_s126 → 138
22:00min_fog_on_s39 → 34.5
22:00mister_all_delay_s102 → 106.5
22:00mister_engage_delay_s51 → 53.25
22:00mister_water_budget_gal120 → 110
22:00temp_hysteresis2.14 → 2.23
22:00vent_prefer_dp_delta_f8 → 3
22:00vent_prefer_temp_delta_f3 → 5
22:00vpd_watch_dwell_s75 → 78.75
00:30cold_vent_guard_delta_f9 → 10
00:30direct_wet_stress_min_dew_margin_f14 → 15
00:30direct_wet_stress_vpd_margin_kpa0.35 → 0.4
00:30dwell_gate_ms315000 → 330000
00:30fog_stress_min_dew_margin_f14 → 15
00:30min_fog_off_s138 → 144
00:30min_fog_on_s34.5 → 32.25
00:30mister_all_delay_s106.5 → 111
00:30mister_engage_delay_s53.25 → 55.5
00:30mister_water_budget_gal110 → 100
00:30temp_hysteresis2.23 → 2.3200000000000003
00:30vent_prefer_temp_delta_f5 → 6
00:30vpd_watch_dwell_s78.75 → 82.5
05:30direct_wet_stress_min_dew_margin_f15 → 14
05:30direct_wet_stress_vpd_margin_kpa0.4 → 0.35
05:30dwell_gate_ms330000 → 300000
05:30fog_stress_min_dew_margin_f15 → 14
05:30min_fog_off_s144 → 132
05:30min_fog_on_s32.25 → 36.75
05:30mister_all_delay_s111 → 102
05:30mister_engage_delay_s55.5 → 51
05:30mister_water_budget_gal100 → 110
05:30temp_hysteresis2.3200000000000003 → 2.14
05:30vpd_watch_dwell_s82.5 → 75
10:30cold_vent_guard_delta_f10 → 8
10:30direct_wet_stress_min_dew_margin_f14 → 8
10:30direct_wet_stress_vpd_margin_kpa0.35 → 0.05
10:30dwell_gate_ms300000 → 225000
10:30fog_escalation_kpa0.5 → 0.2
10:30fog_stress_min_dew_margin_f14 → 8
10:30min_fog_off_s132 → 60
10:30min_fog_on_s36.75 → 63.75
10:30mister_all_delay_s102 → 79.5
10:30mister_engage_delay_s51 → 39.75
10:30mister_water_budget_gal110 → 180
10:30temp_hysteresis2.14 → 1.69
10:30vent_prefer_dp_delta_f3 → 5
10:30vent_prefer_temp_delta_f6 → 4
10:30vpd_watch_dwell_s75 → 56.25

End-of-Day Summary

Climate

Temperature

63.7–78.5°F; avg 68.8°F

VPD

0.35–1.42 kPa; avg 0.73 kPa

Relative humidity

58.1–82.7%

Stress Hours

  • Heat stress (>85°F): 4.8h
  • VPD stress (>2.0 kPa): 2.4h
  • Cold stress (<55°F): 0.1h

Economics

Electric

USD 2.45

Gas

USD 0.10

Water

USD 0.170

Total

USD 2.72

Equipment Runtimes

EquipmentRuntimeReading
Fan 1350 minPrimary exhaust runtime.
Fan 2345 minSecondary exhaust runtime.
Vent641 minIntake vent runtime.
Fog14 minFogger runtime.
Heat 1 electric105 minElectric heater runtime.
Heat 2 gas9 minGas heater runtime.
Grow lights1522 minSupplemental lighting runtime.
Mister south0.05hSouth mister runtime.
Mister west0.03hWest mister runtime.
Mister center0.10hCenter mister runtime.

Water

  • Total: 36 gal
  • Mister: 3 gal

Crop Health (Gemini Vision)

CropZoneHealthObservationsNote
Canna Liliessouth58%4Observation notes are collapsed below to avoid publishing partial vision snippets.
Vanda Orchidscenter76%9Observation notes are collapsed below to avoid publishing partial vision snippets.
lettuceeast70%4Observation notes are collapsed below to avoid publishing partial vision snippets.
peppereast68%4Observation notes are collapsed below to avoid publishing partial vision snippets.
strawberryeast73%4Observation notes are collapsed below to avoid publishing partial vision snippets.
Vision observation notes
Canna LiliesGemini Vision notes

Canna Lilies on the south floor look generally healthy, though soil moisture is reported as 0.0%.

Vanda OrchidsGemini Vision notes

Hanging basket visible, but plant details are obscured by darkness and shadow.

lettuceGemini Vision notes

Seedlings appear healthy and are establishing well.

pepperGemini Vision notes

Seedlings appear healthy, but image is blurry.

strawberryGemini Vision notes

Seedlings appear healthy, but image is blurry.

Hourly Pattern

HourTemperatureVPDRH
12:0077.4°F1.19 kPa64.3%
13:0077.8°F1.21 kPa63.7%
14:0079.9°F1.31 kPa63.4%
15:0079.5°F1.24 kPa64.7%
16:0075.7°F1.10 kPa64.6%
17:0075.4°F1.08 kPa64.6%
18:0073.4°F0.99 kPa65.1%
19:0070.7°F0.91 kPa64.9%
20:0068.2°F0.78 kPa67.0%
21:0067.3°F0.78 kPa66.2%
22:0066.1°F0.76 kPa65.2%
23:0065.0°F0.79 kPa62.4%
00:0064.1°F0.68 kPa67.1%
01:0064.1°F0.47 kPa77.3%
02:0064.2°F0.42 kPa79.7%
03:0063.9°F0.39 kPa81.1%
04:0063.8°F0.37 kPa81.8%
05:0063.9°F0.36 kPa82.3%
06:0064.5°F0.55 kPa74.0%
07:0064.7°F0.73 kPa65.4%
08:0066.3°F0.85 kPa62.2%
09:0067.5°F0.93 kPa60.2%
10:0074.0°F1.03 kPa64.6%
11:0075.4°F0.74 kPa76.4%

7-Day Stress Context

DateHeatVPD highCold
2026-05-212.7h2.1h1.0h
2026-05-224.3h3.7h1.1h
2026-05-238.9h6.4h0.8h
2026-05-249.5h8.3h0.0h
2026-05-2511.4h7.5h0.0h
2026-05-2610.3h6.0h0.0h
2026-05-274.8h2.4h0.1h