July 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.
8
3
4
0
| Event | Delivered | Type | Status | Note |
|---|---|---|---|---|
| End-of-day review and reset | 00:15 | MIDNIGHT | plan_written | Wrote public plan iris-20260719-0015. Resolved 00:17 MDT. |
| Morning planning cycle | 05:48 | SUNRISE | plan_written | Wrote public plan iris-20260719-0548. Resolved 05:50 MDT. |
| Solar peak planning checkpoint | 13:07 | SOLAR_MAX | action_completed | Delivery recorded without a public plan write. Resolved 13:08 MDT. |
| Peak Stress | 15:07 | TRANSITION | acked | Acknowledged: Peak-stress transition checked: live greenhouse is in expected dual-axis hot/dry stress, but the active plan and current setpoints are already in maximum compliance-first posture. Temp 86.4F is above the 84F high edge and VPD 1.63 kPa is above the 1.22 high edge, with healthy dew margin 12.9F. Controller is VENTILATE with vent, both fans, fog, and mister active; wet/fog path is allowed and serving. Tactical settings are already more aggressive than the morning plan targets: fog_escalation_kpa 0... Resolved 15:08 MDT. |
| Forecast deviation | 18:05 | FORECAST_DEVIATION | acked | Acknowledged: FORECAST_DEVIATION reviewed: observed VPD is lower than raw forecast in the same direction as the known positive VPD forecast bias, while live controller already has vent, both fans, and fog assist active with dew margin safe. No tuning change needed. Resolved 18:05 MDT. |
| Decline | 19:27 | TRANSITION | acked | Acknowledged: TRANSITION decline no tunable change: current temp 82.7F is inside/near served sunset band, VPD 1.32 kPa remains above vpd_high 1.22 with east/west dry outliers, dew margin is safe at 12.6F and equipment is already sealed/off after recent fog. The active plan already contains an evening taper waypoint at 21:30; raising mist/fog thresholds now would prematurely close wet assist during live VPD-high recovery before observed VPD is below band. No Slack post required because no changes were made. Resolved 19:27 MDT. |
| Forecast deviation | 19:50 | FORECAST_DEVIATION | acked | Acknowledged: FORECAST_DEVIATION assessed: observed cloud cover is much higher than the stale 0% point forecast, but live climate is safe (81.1F, VPD 1.06 kPa, RH 71%, dew margin 10.2F), temp is below the 84F high edge, average VPD is below the 1.22 kPa high edge, and all relays/wet actuators are currently off. Forecast now shows 100/82/90% cloud cover for 20:00-22:00, so this is a near-term forecast/cloud timing error catching up rather than an equipment issue or a hotter/humid regime requiring tactical tuning... Resolved 19:50 MDT. |
| Evening planning cycle | 20:27 | SUNSET | plan_written | Wrote public plan iris-20260719-2027. Resolved 20:28 MDT. |
🌅 Morning Cycle (12:17 AM) — iris-20260719-0015
validated
4/10
band_track_fraction, cold_vent_guard_delta_f, cool_exit_hysteresis_f, cool_stage2_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 ...
Reflection
Validating previous cycle: iris-20260718-0547
Previous hypothesis: SUNRISE plan for Saturday 2026-07-18. Yesterday scored 67.2, above the 7-day average 64.2, but it remained strongly VPD/heat limited: temp compliance 48.4%, VPD compliance 35.1%, 10.69h heat stress and 14.53h VPD-high stress, no cold or VPD-low stress, and dew safety held at dp_margin_min 8.8F / dp_risk_hours 0.0. Water was 350 gal versus 343 gal 7-day average, with 143 gal misting-only; resource cost terms are incomplete, so today’s resource constraint is water/wear, not trusted energy cost. I evaluated the completed sunset plan iris-20260717-2028 at 4/10; plan_evaluate returned anchor 2 because 408 guardrail events and 360 held-guardrail events mean that plan was materially reshaped. I accept the anchor warning: recent plans are safe severity-reduction attempts, not clean recovery experiments. Current house is safe and in the low-side morning corridor at about 70.1F, VPD 0… Result: Validated during the SUNSET cycle using the scoped window scorecard. The midnight reset preserved safety but did not materially recover the crop corridor: scoped window score/compliance was 68.3 with temp compliance 48.9% and VPD compliance 36.5%; stress during governance was about 2.00h heat and 2.72h VPD-high with 0.0h cold and 0.0h VPD-low. Dew safety remained good with dp_margin_min_f about 9.1F and 0.0 dp-risk hours. The forecast/stress diagnosis for an extreme hot-dry sequence was right, but the wet/fog posture should be treated as guardrail-shaped severity mitigation rather than a clean recovery experiment; repeated missed/guardrailed values mean future plans should request bounded ClimateIntent values that materialize cleanly and avoid relying on dispatcher correction. Score: 4/10
Hypothesis
Testing: Guardrail-compatible extreme hot-dry severity mitigation: request band-coupled wet/fog assist values directly and judge success by VPD-high hours versus the recent July baseline, not by target-line hugging. Expected outcome: For the new day, keep dew-risk hours at 0 and VPD-low stress at 0 while accepting structural heat stress; reduce VPD-high severity versus the last 7-day pattern if live dew margin remains above 8F, and avoid another plan dominated by guardrail-held wet-assist materializations.
Conditions
99.0°F
14.0%
889.0 W/m²
12.0%
extreme July hot-dry sequence; forecast VPD is positively biased but corrected priors remain far above the crop corridor, dew margin is currently safe, and recent plans were guardrail-shaped severity mitigation rather than clean recovery
Expected stress windows
guardrail-compatible band-coupled wet assist: engage near vpd_high+0.05, all-zone near +0.20 to +0.25, daylight fog escalation near 0.15, low resource sensitivity while dew margin is safe
early thermal lead and solar precooling, all fans at high, preserve vent-mist/fog assist, and accept structural peak heat rather than target hugging
repeat compliance-first wet assist for the hotter Monday ramp; do not unwind until measured VPD is below the served high edge
expect physics-limited heat near 102F outdoors; prioritize safety, VPD severity reduction, and stable relay behavior
taper wet/fog intensity and raise dew margin caution as late Tuesday forecast RH rises toward the Wednesday cool/humid handoff
Parameter rationale
keep S1 wet assist available at the band edge during safe dry stress without relying on guardrail correction
allow all-zone escalation near vpd_high+0.20 during hot-dry ventilation while preserving the wider deadband for zone spread
enable daylight vent-fog assist before severe VPD-high error accumulates
maintain useful wet duty during peak ventilation, then taper after sunset to avoid water and relay churn
avoid budget-limited VPD recovery during safe extreme dry stress while conserving with tapering rather than a lower cap
permit bounded evening dry-edge recovery through 22:00 when dew margin remains above 8F
Setpoints
Sunday July 19
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:15 | hyst 0.1875 | post-midnight state is safe with dew margin 15F but VPD near |
| 03:30 | hyst 0.1875 | pre-dawn taper while solar is absent and forecast VPD dips; |
| 06:15 | hyst 0.1825 | sunrise handoff before the clear dry ramp; reopen band-coupl |
| 08:30 | hyst 0.1725 | morning VPD ramp begins; compliance-first wet assist should |
| 12:30 | hyst 0.16749999999999998 | peak heat and solar are physics-limited; keep moisture assis |
| 17:30 | hyst 0.1825 | fog window has ended but outdoor heat and dry air persist; k |
| 21:30 | hyst 0.1875 | late evening taper after the recovery window; avoid low-valu |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:15 | s2 1.76; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.7 | post-midnight state is safe with dew margin 15F but VPD near |
| 03:30 | s2 1.795; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.7 | pre-dawn taper while solar is absent and forecast VPD dips; |
| 06:15 | s2 1.58; cool_exit 1.51; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.44; pulse 41.25; gap 22.5; wt 1.8333333333333335 | sunrise handoff before the clear dry ramp; reopen band-coupl |
| 08:30 | s2 1.5125; cool_exit 1.33; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.42; pulse 45; gap 18.75; wt 1.9 | morning VPD ramp begins; compliance-first wet assist should |
| 12:30 | s2 1.5125; cool_exit 1.24; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.42; pulse 48.75; gap 18.75; wt 1.9333333333333331 | peak heat and solar are physics-limited; keep moisture assis |
| 17:30 | s2 1.665; cool_exit 1.51; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.44; pulse 41.25; gap 26.25; wt 1.7999999999999998 | fog window has ended but outdoor heat and dry air persist; k |
| 21:30 | s2 1.83; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.7 | late evening taper after the recovery window; avoid low-valu |
Monday July 20
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 05:30 | hyst 0.1825 | Monday pre-ramp is even hotter and dry; reopen compliance-fi |
| 10:30 | hyst 0.16749999999999998 | Monday peak forecast near 102F is structural heat stress; ke |
| 17:30 | hyst 0.1875 | Monday evening remains hot and dry after fog cutoff; continu |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 05:30 | s2 1.615; cool_exit 1.51; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.44; pulse 41.25; gap 22.5; wt 1.8333333333333335 | Monday pre-ramp is even hotter and dry; reopen compliance-fi |
| 10:30 | s2 1.5125; cool_exit 1.24; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.42; pulse 48.75; gap 18.75; wt 1.9333333333333331 | Monday peak forecast near 102F is structural heat stress; ke |
| 17:30 | s2 1.715; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.47; pulse 41.25; gap 30; wt 1.7666666666666666 | Monday evening remains hot and dry after fog cutoff; continu |
Tuesday July 21
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 05:30 | hyst 0.1875 | Tuesday remains dry but may become stormier late; use a firm |
| 10:30 | hyst 0.1775 | Tuesday hot-dry afternoon still needs compliance-first wet a |
| 20:30 | hyst 0.1875 | late Tuesday forecast turns cooler and more humid; taper wet |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 05:30 | s2 1.645; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 21; engage 1.27; all 1.47; pulse 37.5; gap 30; wt 1.7333333333333334 | Tuesday remains dry but may become stormier late; use a firm |
| 10:30 | s2 1.5625; cool_exit 1.42; all_fans 0; dw_stress 1; dw_until 21; engage 1.27; all 1.44; pulse 45; gap 22.5; wt 1.8666666666666667 | Tuesday hot-dry afternoon still needs compliance-first wet a |
| 20:30 | s2 1.8475; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 20; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.7 | late Tuesday forecast turns cooler and more humid; taper wet |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 00:15 | band_track_fraction | initial 0 |
| 00:15 | cold_vent_guard_delta_f | initial 8 |
| 00:15 | cool_stage2_exit_hysteresis_f | initial 1 |
| 00:15 | direct_wet_stress_min_dew_margin_f | initial 8 |
| 00:15 | direct_wet_stress_vpd_margin_kpa | initial 0.05 |
| 00:15 | dwell_gate_ms | initial 210000 |
| 00:15 | enthalpy_close | initial 1 |
| 00:15 | enthalpy_open | initial -2 |
| 00:15 | fog_escalation_kpa | initial 0.25 |
| 00:15 | heat_hysteresis | initial 1 |
| 00:15 | min_fog_off_s | initial 72 |
| 00:15 | min_fog_on_s | initial 59.25 |
| 00:15 | mist_backoff_s | initial 600 |
| 00:15 | mist_max_closed_vent_s | initial 600 |
| 00:15 | mist_thermal_relief_s | initial 90 |
| 00:15 | mister_all_delay_s | initial 75 |
| 00:15 | mister_engage_delay_s | initial 37.5 |
| 00:15 | mister_water_budget_gal | initial 300 |
| 00:15 | night_vpd_bias_kpa | initial 0 |
| 00:15 | outdoor_staleness_max_s | initial 600 |
| 00:15 | sw_dwell_gate_enabled | initial 1 |
| 00:15 | sw_fog_closes_vent | initial 1 |
| 00:15 | sw_mister_closes_vent | initial 0 |
| 00:15 | sw_summer_vent_enabled | initial 1 |
| 00:15 | temp_hysteresis | initial 1.6 |
| 00:15 | vent_exchange_fraction | initial 0.3 |
| 00:15 | vent_prefer_dp_delta_f | initial 3 |
| 00:15 | vent_prefer_temp_delta_f | initial 4 |
| 00:15 | vpd_watch_dwell_s | initial 52.5 |
| 06:15 | dwell_gate_ms | 210000 → 195000 |
| 06:15 | fog_escalation_kpa | 0.25 → 0.15 |
| 06:15 | min_fog_off_s | 72 → 42 |
| 06:15 | min_fog_on_s | 59.25 → 70.5 |
| 06:15 | mister_all_delay_s | 75 → 70.5 |
| 06:15 | mister_engage_delay_s | 37.5 → 35.25 |
| 06:15 | temp_hysteresis | 1.6 → 1.51 |
| 06:15 | vpd_watch_dwell_s | 52.5 → 48.75 |
| 08:30 | dwell_gate_ms | 195000 → 165000 |
| 08:30 | min_fog_off_s | 42 → 36 |
| 08:30 | min_fog_on_s | 70.5 → 72.75 |
| 08:30 | mister_all_delay_s | 70.5 → 61.5 |
| 08:30 | mister_engage_delay_s | 35.25 → 30.75 |
| 08:30 | temp_hysteresis | 1.51 → 1.33 |
| 08:30 | vpd_watch_dwell_s | 48.75 → 41.25 |
| 12:30 | dwell_gate_ms | 165000 → 150000 |
| 12:30 | mister_all_delay_s | 61.5 → 60 |
| 12:30 | mister_engage_delay_s | 30.75 → 30 |
| 12:30 | temp_hysteresis | 1.33 → 1.24 |
| 12:30 | vpd_watch_dwell_s | 41.25 → 37.5 |
| 17:30 | dwell_gate_ms | 150000 → 195000 |
| 17:30 | fog_escalation_kpa | 0.15 → 0.2 |
| 17:30 | min_fog_off_s | 36 → 48 |
| 17:30 | min_fog_on_s | 72.75 → 68.25 |
| 17:30 | mister_all_delay_s | 60 → 70.5 |
| 17:30 | mister_engage_delay_s | 30 → 35.25 |
| 17:30 | temp_hysteresis | 1.24 → 1.51 |
| 17:30 | vpd_watch_dwell_s | 37.5 → 48.75 |
| 21:30 | dwell_gate_ms | 195000 → 210000 |
| 21:30 | fog_escalation_kpa | 0.2 → 0.25 |
| 21:30 | min_fog_off_s | 48 → 72 |
| 21:30 | min_fog_on_s | 68.25 → 59.25 |
| 21:30 | mister_all_delay_s | 70.5 → 75 |
| 21:30 | mister_engage_delay_s | 35.25 → 37.5 |
| 21:30 | temp_hysteresis | 1.51 → 1.6 |
| 21:30 | vpd_watch_dwell_s | 48.75 → 52.5 |
| 05:30 | dwell_gate_ms | 210000 → 195000 |
| 05:30 | fog_escalation_kpa | 0.25 → 0.15 |
| 05:30 | min_fog_off_s | 72 → 42 |
| 05:30 | min_fog_on_s | 59.25 → 70.5 |
| 05:30 | mister_all_delay_s | 75 → 70.5 |
| 05:30 | mister_engage_delay_s | 37.5 → 35.25 |
| 05:30 | temp_hysteresis | 1.6 → 1.51 |
| 05:30 | vpd_watch_dwell_s | 52.5 → 48.75 |
| 10:30 | dwell_gate_ms | 195000 → 150000 |
| 10:30 | min_fog_off_s | 42 → 36 |
| 10:30 | min_fog_on_s | 70.5 → 72.75 |
| 10:30 | mister_all_delay_s | 70.5 → 60 |
| 10:30 | mister_engage_delay_s | 35.25 → 30 |
| 10:30 | temp_hysteresis | 1.51 → 1.24 |
| 10:30 | vpd_watch_dwell_s | 48.75 → 37.5 |
| 17:30 | dwell_gate_ms | 150000 → 210000 |
| 17:30 | fog_escalation_kpa | 0.15 → 0.2 |
| 17:30 | min_fog_off_s | 36 → 54 |
| 17:30 | min_fog_on_s | 72.75 → 66 |
| 17:30 | mister_all_delay_s | 60 → 75 |
| 17:30 | mister_engage_delay_s | 30 → 37.5 |
| 17:30 | temp_hysteresis | 1.24 → 1.6 |
| 17:30 | vpd_watch_dwell_s | 37.5 → 52.5 |
| 05:30 | fog_escalation_kpa | 0.2 → 0.18 |
| 10:30 | dwell_gate_ms | 210000 → 180000 |
| 10:30 | fog_escalation_kpa | 0.18 → 0.15 |
| 10:30 | min_fog_off_s | 54 → 42 |
| 10:30 | min_fog_on_s | 66 → 70.5 |
| 10:30 | mister_all_delay_s | 75 → 66 |
| 10:30 | mister_engage_delay_s | 37.5 → 33 |
| 10:30 | temp_hysteresis | 1.6 → 1.42 |
| 10:30 | vpd_watch_dwell_s | 52.5 → 45 |
| 20:30 | direct_wet_stress_min_dew_margin_f | 8 → 10 |
| 20:30 | dwell_gate_ms | 180000 → 210000 |
| 20:30 | fog_escalation_kpa | 0.15 → 0.25 |
| 20:30 | min_fog_off_s | 42 → 72 |
| 20:30 | min_fog_on_s | 70.5 → 59.25 |
| 20:30 | mister_all_delay_s | 66 → 75 |
| 20:30 | mister_engage_delay_s | 33 → 37.5 |
| 20:30 | temp_hysteresis | 1.42 → 1.6 |
| 20:30 | vpd_watch_dwell_s | 45 → 52.5 |
🌅 Morning Cycle (5:50 AM) — iris-20260719-0548
validated
4/10
band_track_fraction, cold_vent_guard_delta_f, cool_exit_hysteresis_f, cool_stage2_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 ...
Reflection
Validating previous cycle: iris-20260718-2029
Previous hypothesis: SUNSET overnight plan for Saturday 2026-07-18. Today scored 66.4, slightly above the 7-day average 65.7, but VPD remained the bottleneck: temp compliance 50.0% vs VPD compliance 38.7%, with 11.23h VPD-high stress and 8.51h heat stress, no cold or VPD-low stress, and dew safety intact at dp_margin_min 8.8F / dp_risk_hours 0.0. Resource cost terms are unavailable, so I am reading water/wear instead: total water was 329 gal vs 345 gal 7-day average, while fog ran 6.34h and water-flow cycling was high. The completed midnight reset iris-20260718-0017 was evaluated at 5/10; plan_evaluate anchored it at 3 because 763 guardrail events and 735 held-by-guardrail events show it was a safe guardrail-shaped handoff rather than a clean recovery experiment. Current house is safe at 81.1F, VPD 1.10 kPa, RH 71%, dew margin 10.5F, IDLE, but east remains the dry outlier near 1… Result: Validated at MIDNIGHT using the scoped window scorecard for 2026-07-19. The forecast diagnosis was directionally right: outdoor temp peaked 98.7F versus 98F predicted, solar was even harsher at 1024 W/m2 versus 886 predicted, and the dominant stress types matched the hypothesis. Safety goals were met: 0.0h cold stress, 0.0h VPD-low stress, dp_margin_min_f 9.1F, and 0.0 dp-risk hours. The plan missed the recovery goal: the governed window scored 58.0 with temp compliance 38.4% and VPD compliance 28.9%, with 5.71h heat stress and 7.43h VPD-high stress. Daily score was 69.8, slightly above 7-day average, but water was high at 403 gal total and 196 gal misting-only, while VPD remained the bottleneck. Rationale grading: band-coupled mist/fog values preserved safety but did not overcome extreme solar/heat capacity limits; fog/mist assist acted as severity mitigation, not clean corridor recovery. The Monday-forward stress windows remain valid, but the previous values were repeatedly guardrail-shaped and should be requested through bounded ClimateIntent values that materialize cleanly instead of relying on correction. Score: 4/10
New finding: On extreme July hot-dry days with solar near or above 1000 W/m2 and outdoor highs near 100F, band-coupled mist/fog assist with fog escalation near 0.15 and short pulse gaps should be treated as severity mitigation unless the scoped window shows VPD compliance improvement; safety may hold while corridor recovery still fails, especially when guardrails materially reshape requested wet-assist values. → Added to Lessons Learned
Hypothesis
Testing: Guardrail-compatible extreme hot-dry severity mitigation: request wet/fog assist values directly inside bounded ClimateIntent and judge success by VPD-high hours below the recent 14h July baseline with dew-risk remaining zero. Expected outcome: Today should preserve dew safety at 0 dp-risk hours, avoid cold and VPD-low stress, and reduce VPD-high severity versus recent hot-dry baseline if fog/mist assist materializes; heat stress will likely remain structural around peak outdoor 98F.
Conditions
98.0°F
15.0%
886.0 W/m²
24.0%
extreme July hot-dry day; raw VPD forecast is positively biased but corrected priors and recent history still indicate severe VPD-high plus physics-limited heat stress; dew margin is currently safe
Expected stress windows
keep wet assist band-coupled near the VPD high edge, use all-zone escalation near +0.20 to +0.25 kPa, daylight fog escalation near 0.15 kPa, and keep resource sensitivity low while dew margin stays healthy
early thermal lead and solar precooling with vent/fan cooling plus vent-mist/fog assist; accept structural peak heat instead of chasing target-line errors
repeat compliance-first wet assist for Monday extreme heat, low resource sensitivity, no clock-only unwind before observed VPD recovery
taper wet/fog intensity and raise dew margin caution as forecast shifts toward cloudy/humid overnight conditions
Parameter rationale
keep S1 wet assist available near vpd_high+0.05 without relying on dispatcher guardrail correction
make all-zone rotation available near vpd_high+0.20 during hot-dry ventilation
enable daylight vent-fog assist before severe VPD-high error accumulates
increase useful wet duty during VENTILATE without changing crop bands, then taper at night
avoid budget-limited recovery on a safe extreme dry day while conserving by evening taper rather than lowering the cap
permit bounded evening dry-edge recovery through 22:00 if dew margin remains above 8F and verify materialization
Setpoints
Sunday July 19
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 05:48 | hyst 0.1925 | Dawn is safe but forecast dry ramp starts early; pre-stage g |
| 08:00 | hyst 0.1925 | Morning solar/VPD ramp begins; open band-coupled wet/fog sur |
| 12:30 | hyst 0.1875 | Peak solar and hot-dry ventilation: compliance-first wet ass |
| 16:30 | hyst 0.19749999999999998 | Solar is declining but outdoor air remains very dry/hot; kee |
| 21:30 | hyst 0.2125 | Evening recovery window: keep bounded wetting available unti |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 05:48 | s2 1.5475; cool_exit 1.69; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.47; pulse 37.5; gap 30; wt 1.7333333333333334 | Dawn is safe but forecast dry ramp starts early; pre-stage g |
| 08:00 | s2 1.4300000000000002; cool_exit 1.69; all_fans 1; dw_stress 1; dw_until 22; engage 1.27; all 1.42; pulse 41.25; gap 22.5; wt 1.8333333333333335 | Morning solar/VPD ramp begins; open band-coupled wet/fog sur |
| 12:30 | s2 1.3275; cool_exit 1.6; all_fans 1; dw_stress 1; dw_until 22; engage 1.27; all 1.42; pulse 45; gap 18.75; wt 1.9 | Peak solar and hot-dry ventilation: compliance-first wet ass |
| 16:30 | s2 1.5325; cool_exit 1.78; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.47; pulse 41.25; gap 26.25; wt 1.7999999999999998 | Solar is declining but outdoor air remains very dry/hot; kee |
| 21:30 | s2 1.7675; cool_exit 2.05; all_fans 0; dw_stress 0; dw_until 22; engage 1.32; all 1.52; pulse 30; gap 41.25; wt 1.5666666666666669 | Evening recovery window: keep bounded wetting available unti |
Monday July 20
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 05:30 | hyst 0.1925 | Monday is forecast hotter than Sunday; reopen compliance-fir |
| 12:30 | hyst 0.1875 | Monday peak is near 101F with RH near 15%; maintain maximum |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 05:30 | s2 1.4300000000000002; cool_exit 1.69; all_fans 1; dw_stress 1; dw_until 22; engage 1.27; all 1.42; pulse 41.25; gap 22.5; wt 1.8333333333333335 | Monday is forecast hotter than Sunday; reopen compliance-fir |
| 12:30 | s2 1.3275; cool_exit 1.6; all_fans 1; dw_stress 1; dw_until 22; engage 1.27; all 1.42; pulse 45; gap 18.75; wt 1.9 | Monday peak is near 101F with RH near 15%; maintain maximum |
Tuesday July 21
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 20:30 | hyst 0.22249999999999998 | Late Tuesday forecast turns cloudier/humid with precipitatio |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 20:30 | s2 1.8625; cool_exit 2.23; all_fans 0; dw_stress 0; dw_until 20; engage 1.3699999999999999; all 1.5699999999999998; pulse 30; gap 52.5; wt 1.4133333333333333 | Late Tuesday forecast turns cloudier/humid with precipitatio |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 05:48 | band_track_fraction | initial 0 |
| 05:48 | cold_vent_guard_delta_f | initial 8 |
| 05:48 | cool_stage2_exit_hysteresis_f | initial 1 |
| 05:48 | direct_wet_stress_min_dew_margin_f | initial 8 |
| 05:48 | direct_wet_stress_vpd_margin_kpa | initial 0.05 |
| 05:48 | dwell_gate_ms | initial 225000 |
| 05:48 | enthalpy_close | initial 1 |
| 05:48 | enthalpy_open | initial -2 |
| 05:48 | fog_escalation_kpa | initial 0.2 |
| 05:48 | heat_hysteresis | initial 1 |
| 05:48 | min_fog_off_s | initial 54 |
| 05:48 | min_fog_on_s | initial 66 |
| 05:48 | mist_backoff_s | initial 600 |
| 05:48 | mist_max_closed_vent_s | initial 600 |
| 05:48 | mist_thermal_relief_s | initial 90 |
| 05:48 | mister_all_delay_s | initial 79.5 |
| 05:48 | mister_engage_delay_s | initial 39.75 |
| 05:48 | mister_water_budget_gal | initial 300 |
| 05:48 | night_vpd_bias_kpa | initial 0 |
| 05:48 | outdoor_staleness_max_s | initial 600 |
| 05:48 | sw_dwell_gate_enabled | initial 1 |
| 05:48 | sw_fog_closes_vent | initial 1 |
| 05:48 | sw_mister_closes_vent | initial 0 |
| 05:48 | sw_summer_vent_enabled | initial 1 |
| 05:48 | temp_hysteresis | initial 1.69 |
| 05:48 | vent_exchange_fraction | initial 0.3 |
| 05:48 | vent_prefer_dp_delta_f | initial 3 |
| 05:48 | vent_prefer_temp_delta_f | initial 4 |
| 05:48 | vpd_watch_dwell_s | initial 56.25 |
| 08:00 | fog_escalation_kpa | 0.2 → 0.15 |
| 08:00 | min_fog_off_s | 54 → 42 |
| 08:00 | min_fog_on_s | 66 → 70.5 |
| 12:30 | dwell_gate_ms | 225000 → 210000 |
| 12:30 | min_fog_off_s | 42 → 36 |
| 12:30 | min_fog_on_s | 70.5 → 72.75 |
| 12:30 | mister_all_delay_s | 79.5 → 75 |
| 12:30 | mister_engage_delay_s | 39.75 → 37.5 |
| 12:30 | temp_hysteresis | 1.69 → 1.6 |
| 12:30 | vpd_watch_dwell_s | 56.25 → 52.5 |
| 16:30 | dwell_gate_ms | 210000 → 240000 |
| 16:30 | fog_escalation_kpa | 0.15 → 0.2 |
| 16:30 | min_fog_off_s | 36 → 48 |
| 16:30 | min_fog_on_s | 72.75 → 68.25 |
| 16:30 | mister_all_delay_s | 75 → 84 |
| 16:30 | mister_engage_delay_s | 37.5 → 42 |
| 16:30 | temp_hysteresis | 1.6 → 1.78 |
| 16:30 | vpd_watch_dwell_s | 52.5 → 60 |
| 21:30 | direct_wet_stress_vpd_margin_kpa | 0.05 → 0.1 |
| 21:30 | dwell_gate_ms | 240000 → 285000 |
| 21:30 | fog_escalation_kpa | 0.2 → 0.3 |
| 21:30 | min_fog_off_s | 48 → 72 |
| 21:30 | min_fog_on_s | 68.25 → 59.25 |
| 21:30 | mister_all_delay_s | 84 → 97.5 |
| 21:30 | mister_engage_delay_s | 42 → 48.75 |
| 21:30 | temp_hysteresis | 1.78 → 2.05 |
| 21:30 | vpd_watch_dwell_s | 60 → 71.25 |
| 05:30 | direct_wet_stress_vpd_margin_kpa | 0.1 → 0.05 |
| 05:30 | dwell_gate_ms | 285000 → 225000 |
| 05:30 | fog_escalation_kpa | 0.3 → 0.15 |
| 05:30 | min_fog_off_s | 72 → 42 |
| 05:30 | min_fog_on_s | 59.25 → 70.5 |
| 05:30 | mister_all_delay_s | 97.5 → 79.5 |
| 05:30 | mister_engage_delay_s | 48.75 → 39.75 |
| 05:30 | temp_hysteresis | 2.05 → 1.69 |
| 05:30 | vpd_watch_dwell_s | 71.25 → 56.25 |
| 12:30 | dwell_gate_ms | 225000 → 210000 |
| 12:30 | min_fog_off_s | 42 → 36 |
| 12:30 | min_fog_on_s | 70.5 → 72.75 |
| 12:30 | mister_all_delay_s | 79.5 → 75 |
| 12:30 | mister_engage_delay_s | 39.75 → 37.5 |
| 12:30 | temp_hysteresis | 1.69 → 1.6 |
| 12:30 | vpd_watch_dwell_s | 56.25 → 52.5 |
| 20:30 | direct_wet_stress_min_dew_margin_f | 8 → 10 |
| 20:30 | direct_wet_stress_vpd_margin_kpa | 0.05 → 0.15 |
| 20:30 | dwell_gate_ms | 210000 → 315000 |
| 20:30 | fog_escalation_kpa | 0.15 → 0.35 |
| 20:30 | min_fog_off_s | 36 → 90 |
| 20:30 | min_fog_on_s | 72.75 → 52.5 |
| 20:30 | mister_all_delay_s | 75 → 106.5 |
| 20:30 | mister_engage_delay_s | 37.5 → 53.25 |
| 20:30 | mister_water_budget_gal | 300 → 220 |
| 20:30 | temp_hysteresis | 1.6 → 2.23 |
| 20:30 | vpd_watch_dwell_s | 52.5 → 78.75 |
🌆 Evening Cycle (8:28 PM) — iris-20260719-2027
validated
7/10
band_track_fraction, cold_vent_guard_delta_f, cool_exit_hysteresis_f, cool_stage2_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 ...
Reflection
Validating previous cycle: iris-20260719-0548
Previous hypothesis: SUNRISE plan for Sunday 2026-07-19. Yesterday scored 65.6, essentially flat against the 7-day average 65.7, but remained dual-axis limited: VPD was the bottleneck at 36.6% compliance versus 47.4% temp compliance, with 14.13h VPD-high stress and 11.09h heat stress. Dew safety held at dp_margin_min_f 8.8F and 0.0 dp-risk hours, so the correct response is not moisture suppression. I evaluated the completed sunset plan iris-20260718-2029 at 4/10; plan_evaluate anchored it at 2 because 602 VPD-high guardrail events and 568 held-by-guardrail events show the plan was materially guardrail-shaped. The self-score is higher than the anchor only because the plan preserved safety, not because it recovered the corridor. Current state is safe and low-side: 70.5F, VPD 0.88 kPa, RH 66%, dew margin 12F, IDLE, all relays off. Today is forecast extreme hot/dry: 98F raw high, RH 15-16%, raw VPD up to 5… Result: Weekly review evaluation using the available scoped window row before superseding with the weekly plan. The plan governed about 0.160 day overnight and currently shows a strong scoped score/compliance of 95.9, with only about 0.15h heat stress and 0.17h VPD-high stress, 0.0h cold stress, 0.0h VPD-low stress, and dew safety preserved. This is a short overnight window, so it is not proof that the daytime wet/fog posture recovers the corridor; it does validate that tapering overnight did not create condensation or low-VPD overshoot before Monday’s severe ramp. Current partial Monday data remains dominated by upcoming forecast risk, so keep the lesson narrow. Score: 7/10
New finding: On warm dry overnight handoffs before an extreme hot-dry day, a tapered moisture posture can preserve dew safety and avoid VPD-low overshoot, but a short high-scoring overnight window should not be extrapolated to daytime corridor recovery. → Added to Lessons Learned
Hypothesis
Testing: Dew-safe sunset taper before extreme Monday: reduce overnight water/churn without losing east dry-edge recovery, then reopen band-coupled wet/fog assist before sunrise. Expected outcome: Overnight dew-risk remains 0h, VPD-low remains 0h, and Monday pre-ramp wet assist materializes without the large VPD-high guardrail held pattern seen in iris-20260719-0015.
Conditions
102.0°F
15.0%
885.0 W/m²
18.0%
warm dry evening with safe dew margin after VPD-high and heat dominated Sunday; Monday is forecast extreme hot-dry with raw VPD positively biased but corrected priors still severe
Expected stress windows
keep band-coupled wet assist available through the evening dry-edge recovery window while dew margin remains above 8F
taper duty and raise resource/churn caution overnight; humidity should hold better without solar, but raw outdoor VPD remains dry
reopen compliance-first wet assist before the ramp: engage near vpd_high+0.05, all-zone near +0.20 to +0.25, daylight fog escalation near 0.15, low resource sensitivity while dew margin is safe
use thermal lead and solar precooling, all-fans cooling posture, and vent-mist/fog assist; accept structural peak heat rather than chasing target-line errors
Parameter rationale
preserve dry-edge recovery tonight and keep S1 wet assist available near vpd_high+0.05 before Monday's ramp
allow all-zone recovery when the dry edge is meaningful while tapering duty after solar is gone
reduce low-value overnight churn while preserving a lower effective gap again at pre-dawn/morning ramp
enable daylight vent-fog assist before severe VPD-high error accumulates
avoid budget-limited recovery during safe extreme dry stress while conserving overnight by duty posture rather than lowering the cap
Setpoints
Sunday July 19
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 20:25 | hyst 0.1875 | evening_settle: safe dew margin but east remains dry; keep b |
| 22:30 | hyst 0.1875 | late_evening_taper: no solar and fog window closed; humidity |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 20:25 | s2 1.825; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.7 | evening_settle: safe dew margin but east remains dry; keep b |
| 22:30 | s2 1.825; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.7 | late_evening_taper: no solar and fog window closed; humidity |
Monday July 20
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | hyst 0.1875 | midnight_posture: avoid low-value mist/fog churn while outdo |
| 05:30 | hyst 0.1875 | pre_dawn: Monday dry ramp starts early; reopen band-coupled |
| 08:00 | hyst 0.1875 | morning_ramp_failsafe: if SUNRISE handoff is delayed, keep c |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | s2 1.825; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.7 | midnight_posture: avoid low-value mist/fog churn while outdo |
| 05:30 | s2 1.615; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.7 | pre_dawn: Monday dry ramp starts early; reopen band-coupled |
| 08:00 | s2 1.5175; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; engage 1.27; all 1.42; pulse 37.5; gap 30; wt 1.7333333333333334 | morning_ramp_failsafe: if SUNRISE handoff is delayed, keep c |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 20:25 | band_track_fraction | initial 0 |
| 20:25 | cold_vent_guard_delta_f | initial 9 |
| 20:25 | cool_stage2_exit_hysteresis_f | initial 1 |
| 20:25 | direct_wet_stress_min_dew_margin_f | initial 8 |
| 20:25 | direct_wet_stress_vpd_margin_kpa | initial 0.05 |
| 20:25 | dwell_gate_ms | initial 210000 |
| 20:25 | enthalpy_close | initial 1 |
| 20:25 | enthalpy_open | initial -2 |
| 20:25 | fog_escalation_kpa | initial 0.25 |
| 20:25 | heat_hysteresis | initial 1 |
| 20:25 | min_fog_off_s | initial 72 |
| 20:25 | min_fog_on_s | initial 59.25 |
| 20:25 | mist_backoff_s | initial 600 |
| 20:25 | mist_max_closed_vent_s | initial 600 |
| 20:25 | mist_thermal_relief_s | initial 90 |
| 20:25 | mister_all_delay_s | initial 75 |
| 20:25 | mister_engage_delay_s | initial 37.5 |
| 20:25 | mister_water_budget_gal | initial 300 |
| 20:25 | night_vpd_bias_kpa | initial 0 |
| 20:25 | outdoor_staleness_max_s | initial 600 |
| 20:25 | sw_dwell_gate_enabled | initial 1 |
| 20:25 | sw_fog_closes_vent | initial 1 |
| 20:25 | sw_mister_closes_vent | initial 0 |
| 20:25 | sw_summer_vent_enabled | initial 1 |
| 20:25 | temp_hysteresis | initial 1.6 |
| 20:25 | vent_exchange_fraction | initial 0.3 |
| 20:25 | vent_prefer_dp_delta_f | initial 4 |
| 20:25 | vent_prefer_temp_delta_f | initial 5 |
| 20:25 | vpd_watch_dwell_s | initial 52.5 |
| 22:30 | direct_wet_stress_min_dew_margin_f | 8 → 9 |
| 05:30 | cold_vent_guard_delta_f | 9 → 8 |
| 05:30 | direct_wet_stress_min_dew_margin_f | 9 → 8 |
| 05:30 | fog_escalation_kpa | 0.25 → 0.18 |
| 05:30 | vent_prefer_dp_delta_f | 4 → 3 |
| 05:30 | vent_prefer_temp_delta_f | 5 → 4 |
| 08:00 | fog_escalation_kpa | 0.18 → 0.15 |
| 08:00 | min_fog_off_s | 72 → 54 |
| 08:00 | min_fog_on_s | 59.25 → 66 |
End-of-Day Summary
Climate
70.5–89.4°F; avg 78.4°F
0.82–2.02 kPa; avg 1.24 kPa
55.3–73.8%
Interior Light Evidence
- Crop DLI: unavailable
- Reason:
source_reading_missing - Provenance:
legacy_invalid_exterior_proxy_plus_fixture_estimate - Validity:
dli-validity-v1; 2024-01-01T00:00:00+00:00 → open - Qualified-light minutes and photoperiod remain independent of unavailable DLI.
Stress Hours
- Heat stress (>85°F): 4.6h
- VPD stress (>2.0 kPa): 10.3h
- Cold stress (<55°F): 7.3h
Economics
USD —
USD 0.00
USD 1.950
USD —
Equipment Runtimes
| Equipment | Runtime | Reading |
|---|---|---|
| Fan 1 | 850 min | Primary exhaust runtime. |
| Fan 2 | 845 min | Secondary exhaust runtime. |
| Vent | 922 min | Intake vent runtime. |
| Fog | 441 min | Fogger runtime. |
| Heat 1 electric | 0 min | Electric heater runtime. |
| Heat 2 gas | 0 min | Gas heater runtime. |
| Grow lights | 780 min | Supplemental lighting runtime. |
| Mister south | 0.00h | South mister runtime. |
| Mister west | 0.00h | West mister runtime. |
| Mister center | 2.01h | Center mister runtime. |
Water
- Total: 403 gal
- Mister: 196 gal
Hourly Pattern
| Hour | Temperature | VPD | RH |
|---|---|---|---|
| 12:00 | 82.6°F | 1.28 kPa | 66.8% |
| 13:00 | 83.9°F | 1.39 kPa | 66.8% |
| 14:00 | 84.9°F | 1.43 kPa | 68.2% |
| 15:00 | 86.0°F | 1.51 kPa | 67.8% |
| 16:00 | 86.6°F | 1.68 kPa | 63.9% |
| 17:00 | 84.2°F | 1.43 kPa | 66.5% |
| 18:00 | 83.8°F | 1.40 kPa | 65.3% |
| 19:00 | 82.2°F | 1.23 kPa | 67.7% |
| 20:00 | 80.3°F | 1.17 kPa | 67.5% |
| 21:00 | 78.3°F | 1.25 kPa | 62.5% |
| 22:00 | 75.8°F | 1.23 kPa | 60.0% |
| 23:00 | 74.7°F | 1.22 kPa | 58.9% |
| 00:00 | 73.6°F | 1.17 kPa | 59.0% |
| 01:00 | 73.2°F | 1.19 kPa | 57.7% |
| 02:00 | 72.7°F | 1.18 kPa | 57.1% |
| 03:00 | 72.2°F | 1.19 kPa | 56.0% |
| 04:00 | 71.4°F | 1.14 kPa | 56.6% |
| 05:00 | 70.7°F | 1.00 kPa | 61.2% |
| 06:00 | 71.9°F | 0.85 kPa | 68.5% |
| 07:00 | 73.9°F | 0.89 kPa | 69.1% |
| 08:00 | 75.8°F | 0.97 kPa | 68.3% |
| 09:00 | 78.3°F | 1.09 kPa | 67.2% |
| 10:00 | 79.6°F | 1.11 kPa | 67.9% |
| 11:00 | 81.0°F | 1.16 kPa | 68.0% |
7-Day Stress Context
| Date | Heat | VPD high | Cold |
|---|---|---|---|
| 2026-07-13 | 4.5h | 9.2h | 9.3h |
| 2026-07-14 | 4.5h | 9.9h | 8.8h |
| 2026-07-15 | 4.2h | 9.6h | 8.8h |
| 2026-07-16 | 3.2h | 10.0h | 7.8h |
| 2026-07-17 | 4.0h | 9.6h | 8.3h |
| 2026-07-18 | 4.4h | 10.0h | 7.4h |
| 2026-07-19 | 4.6h | 10.3h | 7.3h |