May 31, 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
4
4
0
| Event | Delivered | Type | Status | Note |
|---|---|---|---|---|
| End-of-day review and reset | 00:15 | MIDNIGHT | plan_written | Wrote public plan iris-20260531-0015. Resolved 00:17 MDT. |
| Morning planning cycle | 05:34 | SUNRISE | plan_written | Wrote public plan iris-20260531-0534. Resolved 05:37 MDT. |
| Forecast deviation | 05:49 | FORECAST_DEVIATION | acked | Acknowledged: FORECAST_DEVIATION no tuning: climate reading that shows outdoor temp 65.7F vs forecast 51.3F is stale by about 10h, climate action proof is stale, and equipment is coherently idle. Treat as telemetry/data freshness gap or stale deviation basis, not a live weather miss. Existing SUNRISE plan already carries band-coupled dry-ramp moisture posture for the forecasted hot/dry day. Resolved 05:50 MDT. |
| Forecast deviation | 06:50 | FORECAST_DEVIATION | acked | Acknowledged: FORECAST_DEVIATION temp_f observed 65.7F vs forecast 50.7F was assessed with climate/equipment checks. Live climate context is degraded: climate row is ~39759s old and climate action proof is stale, while forecast data itself is fresh. Equipment reports all climate relays off/IDLE and the active SUNRISE dry-ramp plan is already in a compliance-first hot-dry posture... Resolved 06:50 MDT. |
| Solar peak planning checkpoint | 12:59 | SOLAR_MAX | plan_written | Wrote non-archive plan iris-oneshot-20260531-1300. Resolved 13:00 MDT. |
| Peak Stress | 14:58 | TRANSITION | acked | Acknowledged: Peak-stress transition checked live climate, equipment, active plan, setpoints, and relevant hot-dry lessons. Conditions are tracking the current SUNRISE plan: greenhouse is in VENTILATE at 85.6F, only 0.6F above temp_high, VPD 1.29 kPa is still below the 1.38 kPa high edge with 11.2F dew margin, both fans plus vent are active, and fog assist is already on. Existing posture is already band-coupled/aggressive for the dry peak (fog_escalation_kpa 0.15, mister_pulse_gap_s 20, mister_all_kpa 1... Resolved 14:59 MDT. |
| Decline | 19:23 | TRANSITION | acked | Acknowledged: Decline checkpoint reviewed with fresh climate/equipment/plan/setpoint data. No tunable change: house is still VPD-high and slightly hot in VENTILATE (76.9F, VPD 1.76 vs high 1.24, dew margin 23F, vent+fan1 on), with no VPD-low/dew risk. Retrieved lessons support not unwinding by clock while observed VPD remains above band with healthy dew margin. Existing plan already carries dry-tail recovery and a later 21:30 unwind, so conditions are tracking the intended posture. Resolved 19:24 MDT. |
| Evening planning cycle | 20:23 | SUNSET | plan_written | Wrote public plan iris-20260531-2023. Resolved 20:26 MDT. |
🌅 Morning Cycle (12:17 AM) — iris-20260531-0015
validated
5/10
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-20260530-0535
Previous hypothesis: SUNRISE plan for Saturday 2026-05-30. Yesterday closed at 57.3 score with 51.5% both-axis compliance; temperature was the bottleneck at 59.2% versus VPD 76.5%, and heat stress dominated at 9.68h. VPD-high still reached 3.85h and the anchor-aligned evaluation for iris-20260529-0535 is 2/10 because 10 VPD-high moisture guardrail events occurred, 9 held, plus evening VENTILATE no-moisture-assist alerts. Cost was efficient at USD 2.91 versus USD 4.21 7d average, driven by electric+water and no gas; dew safety held at 0 dp-risk hours. Current dawn is safe but low-side: 63.1F, VPD 0.44 below the 0.62-1.18 band, RH 78%, dew margin 7F, IDLE/heat1. Today flips from humid dawn into a clear dry high-solar ramp: outdoor RH falls to 12-18%, VPD 2.3-2.8 kPa, peak temp near 79F, solar near 880 W/m2… Result: MIDNIGHT plan window evaluation for 2026-05-31. Window scorecard: score 54.0, both-axis compliance 50.8%, temp compliance 73.0%, VPD compliance 57.4%, heat stress 0.67h, cold stress 0.00h, VPD-high 1.01h, VPD-low 0.04h, cost about USD 1.11, and dp-risk stayed 0h. The plan preserved safety and avoided VPD-low carryover, and its dry-ramp handoff kept water headroom available. It was not clean enough to score as a strong success: several rows were guardrailed/held or missed, and the day still ended with VPD-high plus VENTILATE no-moisture-assist alerts. Treat it as a safety-preserving partial success rather than proof that the evening unwind was solved. Score: 5/10
New finding: A midnight reset after failed dry-day unwind can preserve dew safety and avoid VPD-low, but if the next day ends with VPD-high guardrail holds or no-moisture-assist alerts, the sunset plan must keep a short band-coupled recovery shoulder before any conservative overnight unwind. → Added to Lessons Learned
Hypothesis
Testing: Test whether a MIDNIGHT reset that is guardrail-clean immediately, conservative only during the cool pre-dawn window, and explicitly band-coupled before the dry ramp can reduce VPD-high guardrail holds while avoiding new VPD-low/dew carryover despite degraded telemetry. Expected outcome: By the next review: climate telemetry freshness restored or platform issue flagged; dp-risk remains 0h; Sunday VPD-high guardrail held events are materially lower than the 83 held events from iris-20260530-2023; VPD-high stress is under 3h if telemetry recovers; cost stays near or below USD 5.50 unless fog is needed for confirmed VPD-high recovery; no new VPD-high no-moisture-assist alerts after 08:00.
Conditions
82.0°F
11.0%
929.0 W/m²
26.0%
Midnight context is degraded/stale but last reported indoor state was VPD-high with healthy dew margin. Sunday forecast is clear, dry, high-solar, RH 11-17%, VPD 2.6-3.3 kPa. Prior plan anchor 1/score 2 due 177 VPD-high guardrail events.
Expected stress windows
Keep immediate moisture thresholds guardrail-clean and band-coupled because stale last climate was still dry-side and guardrail holds persisted.
High dew-margin floor and resource-sensitive low duty while outdoor VPD is 0.5-0.7 kPa; dispatcher guardrail may still hold if observed VPD remains high.
Band-coupled moisture: engage near vpd_high+0.05, all-zone near +0.25, fog escalation 0.15-0.20, short gaps, 300 gal budget, dew floor 8F.
Earlier fan2/all-fan cooling readiness with solar lead while accepting structural cooling limits if exhaust cooling saturates.
Parameter rationale
Stop adding conservative moisture rows that the VPD-high guardrail must hold or clamp.
Keep distributed mist available during whole-house dry stress instead of forcing fog alone to carry recovery.
Allow PR-A vent-fog assist during peak VPD-high before VPD drifts far above band.
Reduce VPD-high stress without increasing pulse length first.
Keep dawn condensation protected while not blocking dry-ramp recovery unnecessarily.
Bring fan2 and all-fan readiness close to the high edge before peak solar.
Prevent water budget from limiting VPD recovery during peak and evening dry windows.
Setpoints
Sunday May 31
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:20 | hyst 0.1875 | Immediate midnight reset: last climate is stale but reported |
| 02:30 | hyst 0.1875 | Pre-dawn cool window: forecast outdoor VPD is low-to-moderat |
| 06:30 | hyst 0.1875 | Sunrise ramp handoff: dry air arrives after 08:00, so restor |
| 08:00 | hyst 0.1875 | Dry ramp begins: forecast VPD crosses 1.2 kPa by 08:00 and s |
| 10:30 | hyst 0.1825 | Late-morning peak preparation: RH falls below 25%, VPD appro |
| 13:00 | hyst 0.1775 | Peak hot-dry stress: forecast VPD 2.9-3.3 kPa with solar nea |
| 17:30 | hyst 0.1875 | Evening dry tail: solar declines but forecast VPD remains ne |
| 21:30 | hyst 0.1875 | Late evening conditional unwind: keep enough direct-wet reco |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:20 | s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 19; fog_stress 1; fog_until 19; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.7666666666666666 | Immediate midnight reset: last climate is stale but reported |
| 02:30 | s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 19; fog_stress 1; fog_until 19; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.7 | Pre-dawn cool window: forecast outdoor VPD is low-to-moderat |
| 06:30 | s2 1.68; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.85 | Sunrise ramp handoff: dry air arrives after 08:00, so restor |
| 08:00 | s2 1.3025000000000002; cool_exit 1.6; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.47; pulse 60; gap 30; wt 2.4333333333333336 | Dry ramp begins: forecast VPD crosses 1.2 kPa by 08:00 and s |
| 10:30 | s2 1.1050000000000002; cool_exit 1.51; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.47; pulse 71.25; gap 22.5; wt 2.7666666666666666 | Late-morning peak preparation: RH falls below 25%, VPD appro |
| 13:00 | s2 0.9525; cool_exit 1.42; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.47; pulse 78.75; gap 18.75; wt 2.8666666666666663 | Peak hot-dry stress: forecast VPD 2.9-3.3 kPa with solar nea |
| 17:30 | s2 1.5999999999999999; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.47; pulse 56.25; gap 33.75; wt 2.45 | Evening dry tail: solar declines but forecast VPD remains ne |
| 21:30 | s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.47; pulse 33.75; gap 41.25; wt 1.85 | Late evening conditional unwind: keep enough direct-wet reco |
Monday June 01
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | hyst 0.1875 | Missed-SUNRISE fallback for Monday: another clear dry ramp i |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | s2 1.68; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.47; pulse 41.25; gap 41.25; wt 2 | Missed-SUNRISE fallback for Monday: another clear dry ramp i |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 00:20 | cold_vent_guard_delta_f | initial 12 |
| 00:20 | direct_wet_stress_min_dew_margin_f | initial 12 |
| 00:20 | direct_wet_stress_vpd_margin_kpa | initial 0.05 |
| 00:20 | dwell_gate_ms | initial 210000 |
| 00:20 | enthalpy_close | initial 1 |
| 00:20 | enthalpy_open | initial -2 |
| 00:20 | fog_escalation_kpa | initial 0.25 |
| 00:20 | fog_stress_min_dew_margin_f | initial 12 |
| 00:20 | heat_hysteresis | initial 1.1 |
| 00:20 | min_fog_off_s | initial 72 |
| 00:20 | min_fog_on_s | initial 59.25 |
| 00:20 | mist_backoff_s | initial 600 |
| 00:20 | mist_max_closed_vent_s | initial 120 |
| 00:20 | mist_thermal_relief_s | initial 90 |
| 00:20 | mister_all_delay_s | initial 75 |
| 00:20 | mister_engage_delay_s | initial 37.5 |
| 00:20 | mister_water_budget_gal | initial 160 |
| 00:20 | outdoor_staleness_max_s | initial 600 |
| 00:20 | sw_dwell_gate_enabled | initial 1 |
| 00:20 | sw_fog_closes_vent | initial 1 |
| 00:20 | sw_mister_closes_vent | initial 0 |
| 00:20 | sw_summer_vent_enabled | initial 1 |
| 00:20 | temp_hysteresis | initial 1.6 |
| 00:20 | vent_prefer_dp_delta_f | initial 12 |
| 00:20 | vent_prefer_temp_delta_f | initial 8 |
| 00:20 | vpd_watch_dwell_s | initial 52.5 |
| 02:30 | cold_vent_guard_delta_f | 12 → 14 |
| 02:30 | mister_water_budget_gal | 160 → 120 |
| 02:30 | vent_prefer_temp_delta_f | 8 → 10 |
| 06:30 | cold_vent_guard_delta_f | 14 → 10 |
| 06:30 | direct_wet_stress_min_dew_margin_f | 12 → 10 |
| 06:30 | fog_stress_min_dew_margin_f | 12 → 10 |
| 06:30 | mister_water_budget_gal | 120 → 220 |
| 06:30 | vent_prefer_dp_delta_f | 12 → 10 |
| 06:30 | vent_prefer_temp_delta_f | 10 → 6 |
| 08:00 | cold_vent_guard_delta_f | 10 → 8 |
| 08:00 | direct_wet_stress_min_dew_margin_f | 10 → 8 |
| 08:00 | fog_escalation_kpa | 0.25 → 0.2 |
| 08:00 | fog_stress_min_dew_margin_f | 10 → 8 |
| 08:00 | min_fog_off_s | 72 → 54 |
| 08:00 | min_fog_on_s | 59.25 → 66 |
| 08:00 | mister_water_budget_gal | 220 → 300 |
| 08:00 | vent_prefer_temp_delta_f | 6 → 4 |
| 10:30 | cold_vent_guard_delta_f | 8 → 7 |
| 10:30 | dwell_gate_ms | 210000 → 195000 |
| 10:30 | fog_escalation_kpa | 0.2 → 0.15 |
| 10:30 | min_fog_off_s | 54 → 42 |
| 10:30 | min_fog_on_s | 66 → 75 |
| 10:30 | mister_all_delay_s | 75 → 70.5 |
| 10:30 | mister_engage_delay_s | 37.5 → 35.25 |
| 10:30 | temp_hysteresis | 1.6 → 1.51 |
| 10:30 | vent_prefer_dp_delta_f | 10 → 12 |
| 10:30 | vent_prefer_temp_delta_f | 4 → 3 |
| 10:30 | vpd_watch_dwell_s | 52.5 → 48.75 |
| 13:00 | dwell_gate_ms | 195000 → 180000 |
| 13:00 | min_fog_off_s | 42 → 36 |
| 13:00 | mister_all_delay_s | 70.5 → 66 |
| 13:00 | mister_engage_delay_s | 35.25 → 33 |
| 13:00 | temp_hysteresis | 1.51 → 1.42 |
| 13:00 | vpd_watch_dwell_s | 48.75 → 45 |
| 17:30 | cold_vent_guard_delta_f | 7 → 9 |
| 17:30 | dwell_gate_ms | 180000 → 210000 |
| 17:30 | fog_escalation_kpa | 0.15 → 0.2 |
| 17:30 | min_fog_off_s | 36 → 60 |
| 17:30 | min_fog_on_s | 75 → 69.375 |
| 17:30 | mister_all_delay_s | 66 → 75 |
| 17:30 | mister_engage_delay_s | 33 → 37.5 |
| 17:30 | mister_water_budget_gal | 300 → 260 |
| 17:30 | temp_hysteresis | 1.42 → 1.6 |
| 17:30 | vent_prefer_temp_delta_f | 3 → 5 |
| 17:30 | vpd_watch_dwell_s | 45 → 52.5 |
| 21:30 | cold_vent_guard_delta_f | 9 → 11 |
| 21:30 | direct_wet_stress_min_dew_margin_f | 8 → 10 |
| 21:30 | fog_escalation_kpa | 0.2 → 0.25 |
| 21:30 | fog_stress_min_dew_margin_f | 8 → 10 |
| 21:30 | min_fog_off_s | 60 → 72 |
| 21:30 | min_fog_on_s | 69.375 → 59.25 |
| 21:30 | mister_water_budget_gal | 260 → 200 |
| 21:30 | vent_prefer_temp_delta_f | 5 → 7 |
| 06:00 | cold_vent_guard_delta_f | 11 → 9 |
| 06:00 | mister_water_budget_gal | 200 → 240 |
| 06:00 | vent_prefer_dp_delta_f | 12 → 10 |
| 06:00 | vent_prefer_temp_delta_f | 7 → 5 |
🌅 Morning Cycle (5:37 AM) — iris-20260531-0534
validated
1/10
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-20260530-2023
Previous hypothesis: SUNSET overnight plan for Saturday 2026-05-30. Today scored poorly at 42.4 versus 58.8 7d average, with 33.6% both-axis compliance. Temperature was not the binding axis (90.4% compliance); VPD was the bottleneck at 36.5%, dominated by 9.63h VPD-low, with 2.75h VPD-high and 1.53h heat. Cost was acceptable at USD 3.37, below the USD 3.67 7d average, driven mostly by runtime-modeled electricity (USD 2.79) plus modest gas (USD 0.35) and water (USD 0.23); water use was much lower than the 162 gal 7d average. I evaluated iris-20260530-0016 at 5/10 versus anchor 3: safe but low-VPD, no deviation warning. I evaluated iris-20260530-0535 at 4/10 versus anchor 1; the gap is because I gave credit for dp-risk 0h, cost under target, and VPD-high just under the stated 3h target, while the deterministic anchor correctly punished 311 guardrail events and 11 VPD-high guardrail events… Result: REVISED anchor-aligned SUNRISE plan evaluation for 2026-05-31. My initial 4/10 gave too much credit for dp-risk 0h, VPD-low near zero, and water/cost headroom. The deterministic anchor is the stricter and more appropriate score because the plan produced 843 guardrail events, 123 held guardrail events, and 131 VPD-high guardrail events, while the plan-window scorecard stayed poor: score 47.3, 40.7% both-axis compliance, 54.6% temp compliance, 48.7% VPD compliance, 3.47h heat, and 4.25h VPD-high. The forecast stress windows were directionally right, but the materialized tactics still fought the dispatcher moisture guardrail and did not deliver the expected dry-ramp recovery. Treat this as a failed/guardrail-dirty plan with only safety preserved, not as a partial climate success. Score: 1/10
Hypothesis
Testing: Severe dry-ramp plan with telemetry-degraded guardrails: keep moisture fully band-coupled through observed dry stress, use low resource sensitivity during peak VPD, and do not clock-unwind while telemetry/guardrail evidence says VPD-high may remain unrecovered. Expected outcome: Target for Sunday: dp-risk 0h, VPD-high under 3h if telemetry recovers, VPD-low under 3h, both-axis compliance above Saturday’s 33.6%, cost under USD 5.50 unless confirmed fog is needed, and no new VPD-high no-moisture-assist alerts after the morning ramp. Critical watch: climate telemetry freshness and setpoint confirmation alerts must recover or remain operator-visible.
Conditions
82.0°F
11.0%
934.0 W/m²
24.0%
Severe dry clear Sunday with stale indoor telemetry; corrected VPD still points to 2.6+ kPa during peak and the last indoor state was VPD-high with healthy dew margin. Monday remains hotter and dry, so no strong overnight humid unwind is planned before the next review.
Expected stress windows
Band-coupled moisture all day: engage near vpd_high+0.05, all-zone near +0.20-0.25, fog escalation 0.15-0.20, high water headroom, and direct-wet/fog stress coverage through the dry tail while dew margin is safe.
Use high solar precool gain and all-fan readiness close to the high edge, while accepting any physically-unachievable hot misses if outdoor air is as hot/dry as forecast.
Carry Monday fallback band-coupled dry-ramp posture because Monday is forecast hotter and similarly dry; sunset/midnight can unwind if observed recovery is proven.
Parameter rationale
Avoid conservative thresholds that trigger VPD-high moisture guardrail holds and keep S1 mist eligible during VENTILATE assist.
Escalate distributed mist sooner during peak dry stress rather than relying on one zone or fog alone.
Allow PR-A vent-fog assist before VPD drifts far above band while firmware RH/temp/dew gates remain active.
Reduce VPD-high hours versus Saturday without increasing pulse length blindly outside the peak window.
Prevent water budgeting from limiting VPD recovery during the severe dry window.
Keep fog assist available in hot-dry VENTILATE instead of waiting through long off dwells.
Bring fan2/all-fan readiness closer to the high edge before heat pressure compounds dry-air stress.
Keep dry-ramp wet recovery available without sacrificing the 0h dp-risk target.
Cover the evening dry tail if observed VPD remains high, while later reviews can unwind after recovery is proven.
Setpoints
Sunday May 31
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 05:45 | hyst 0.1875 | Telemetry is degraded but the last indoor state was dry-side |
| 08:00 | hyst 0.1875 | Outdoor RH is forecast below 30% and VPD 1.5+ kPa by 08:00; |
| 10:30 | hyst 0.1825 | High-solar dry ramp begins; lessons call for all-zone mist n |
| 13:30 | hyst 0.1775 | Peak dry heat: VPD near 3 kPa and solar near 900 W/m2; prior |
| 17:30 | hyst 0.1875 | Evening remains very dry; do not repeat Saturday's blind clo |
| 21:30 | hyst 0.1875 | Night remains dry but fog is time-window blocked; taper duty |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 05:45 | s2 1.8175000000000001; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 19; fog_stress 1; fog_until 19; engage 1.27; all 1.47; pulse 41.25; gap 41.25; wt 1.9166666666666665 | Telemetry is degraded but the last indoor state was dry-side |
| 08:00 | s2 1.5625; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 21; fog_stress 1; fog_until 21; engage 1.27; all 1.47; pulse 56.25; gap 33.75; wt 2.283333333333333 | Outdoor RH is forecast below 30% and VPD 1.5+ kPa by 08:00; |
| 10:30 | s2 1.3074999999999999; cool_exit 1.51; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.42; pulse 67.5; gap 26.25; wt 2.6166666666666663 | High-solar dry ramp begins; lessons call for all-zone mist n |
| 13:30 | s2 1.155; cool_exit 1.42; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.42; pulse 75; gap 22.5; wt 2.8 | Peak dry heat: VPD near 3 kPa and solar near 900 W/m2; prior |
| 17:30 | s2 1.585; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.47; pulse 60; gap 30; wt 2.5166666666666666 | Evening remains very dry; do not repeat Saturday's blind clo |
| 21:30 | s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.47; pulse 41.25; gap 41.25; wt 1.9166666666666665 | Night remains dry but fog is time-window blocked; taper duty |
Monday June 01
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | hyst 0.1875 | Missed-next-review fallback: Monday starts another dry ramp, |
| 13:00 | hyst 0.1775 | Monday fallback peak is hotter and dry; keep compliance-firs |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 06:00 | s2 1.615; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.47; pulse 56.25; gap 33.75; wt 2.283333333333333 | Missed-next-review fallback: Monday starts another dry ramp, |
| 13:00 | s2 1.1050000000000002; cool_exit 1.42; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.27; all 1.42; pulse 78.75; gap 22.5; wt 2.833333333333333 | Monday fallback peak is hotter and dry; keep compliance-firs |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 05:45 | cold_vent_guard_delta_f | initial 12 |
| 05:45 | direct_wet_stress_min_dew_margin_f | initial 12 |
| 05:45 | direct_wet_stress_vpd_margin_kpa | initial 0.05 |
| 05:45 | dwell_gate_ms | initial 210000 |
| 05:45 | enthalpy_close | initial 1 |
| 05:45 | enthalpy_open | initial -2 |
| 05:45 | fog_escalation_kpa | initial 0.2 |
| 05:45 | fog_stress_min_dew_margin_f | initial 12 |
| 05:45 | heat_hysteresis | initial 1.1 |
| 05:45 | min_fog_off_s | initial 72 |
| 05:45 | min_fog_on_s | initial 59.25 |
| 05:45 | mist_backoff_s | initial 600 |
| 05:45 | mist_max_closed_vent_s | initial 120 |
| 05:45 | mist_thermal_relief_s | initial 90 |
| 05:45 | mister_all_delay_s | initial 75 |
| 05:45 | mister_engage_delay_s | initial 37.5 |
| 05:45 | mister_water_budget_gal | initial 250 |
| 05:45 | outdoor_staleness_max_s | initial 600 |
| 05:45 | sw_dwell_gate_enabled | initial 1 |
| 05:45 | sw_fog_closes_vent | initial 1 |
| 05:45 | sw_mister_closes_vent | initial 0 |
| 05:45 | sw_summer_vent_enabled | initial 1 |
| 05:45 | temp_hysteresis | initial 1.6 |
| 05:45 | vent_prefer_dp_delta_f | initial 10 |
| 05:45 | vent_prefer_temp_delta_f | initial 8 |
| 05:45 | vpd_watch_dwell_s | initial 52.5 |
| 08:00 | cold_vent_guard_delta_f | 12 → 10 |
| 08:00 | direct_wet_stress_min_dew_margin_f | 12 → 10 |
| 08:00 | fog_escalation_kpa | 0.2 → 0.18 |
| 08:00 | fog_stress_min_dew_margin_f | 12 → 10 |
| 08:00 | min_fog_off_s | 72 → 60 |
| 08:00 | min_fog_on_s | 59.25 → 63.75 |
| 08:00 | mister_water_budget_gal | 250 → 300 |
| 08:00 | vent_prefer_dp_delta_f | 10 → 11 |
| 08:00 | vent_prefer_temp_delta_f | 8 → 6 |
| 10:30 | cold_vent_guard_delta_f | 10 → 8 |
| 10:30 | direct_wet_stress_min_dew_margin_f | 10 → 8 |
| 10:30 | dwell_gate_ms | 210000 → 195000 |
| 10:30 | fog_escalation_kpa | 0.18 → 0.15 |
| 10:30 | fog_stress_min_dew_margin_f | 10 → 8 |
| 10:30 | min_fog_off_s | 60 → 48 |
| 10:30 | min_fog_on_s | 63.75 → 69.375 |
| 10:30 | mister_all_delay_s | 75 → 70.5 |
| 10:30 | mister_engage_delay_s | 37.5 → 35.25 |
| 10:30 | temp_hysteresis | 1.6 → 1.51 |
| 10:30 | vent_prefer_dp_delta_f | 11 → 12 |
| 10:30 | vent_prefer_temp_delta_f | 6 → 4 |
| 10:30 | vpd_watch_dwell_s | 52.5 → 48.75 |
| 13:30 | cold_vent_guard_delta_f | 8 → 7 |
| 13:30 | dwell_gate_ms | 195000 → 180000 |
| 13:30 | min_fog_off_s | 48 → 42 |
| 13:30 | min_fog_on_s | 69.375 → 75 |
| 13:30 | mister_all_delay_s | 70.5 → 66 |
| 13:30 | mister_engage_delay_s | 35.25 → 33 |
| 13:30 | temp_hysteresis | 1.51 → 1.42 |
| 13:30 | vent_prefer_temp_delta_f | 4 → 3 |
| 13:30 | vpd_watch_dwell_s | 48.75 → 45 |
| 17:30 | cold_vent_guard_delta_f | 7 → 9 |
| 17:30 | dwell_gate_ms | 180000 → 210000 |
| 17:30 | fog_escalation_kpa | 0.15 → 0.2 |
| 17:30 | min_fog_off_s | 42 → 54 |
| 17:30 | min_fog_on_s | 75 → 69.375 |
| 17:30 | mister_all_delay_s | 66 → 75 |
| 17:30 | mister_engage_delay_s | 33 → 37.5 |
| 17:30 | temp_hysteresis | 1.42 → 1.6 |
| 17:30 | vent_prefer_temp_delta_f | 3 → 5 |
| 17:30 | vpd_watch_dwell_s | 45 → 52.5 |
| 21:30 | cold_vent_guard_delta_f | 9 → 12 |
| 21:30 | direct_wet_stress_min_dew_margin_f | 8 → 10 |
| 21:30 | fog_escalation_kpa | 0.2 → 0.25 |
| 21:30 | fog_stress_min_dew_margin_f | 8 → 10 |
| 21:30 | min_fog_off_s | 54 → 72 |
| 21:30 | min_fog_on_s | 69.375 → 59.25 |
| 21:30 | mister_water_budget_gal | 300 → 220 |
| 21:30 | vent_prefer_temp_delta_f | 5 → 8 |
| 06:00 | cold_vent_guard_delta_f | 12 → 10 |
| 06:00 | fog_escalation_kpa | 0.25 → 0.18 |
| 06:00 | min_fog_off_s | 72 → 60 |
| 06:00 | min_fog_on_s | 59.25 → 63.75 |
| 06:00 | mister_water_budget_gal | 220 → 300 |
| 06:00 | vent_prefer_dp_delta_f | 12 → 11 |
| 06:00 | vent_prefer_temp_delta_f | 8 → 6 |
| 13:00 | cold_vent_guard_delta_f | 10 → 7 |
| 13:00 | direct_wet_stress_min_dew_margin_f | 10 → 8 |
| 13:00 | dwell_gate_ms | 210000 → 180000 |
| 13:00 | fog_escalation_kpa | 0.18 → 0.15 |
| 13:00 | fog_stress_min_dew_margin_f | 10 → 8 |
| 13:00 | min_fog_off_s | 60 → 42 |
| 13:00 | min_fog_on_s | 63.75 → 75 |
| 13:00 | mister_all_delay_s | 75 → 66 |
| 13:00 | mister_engage_delay_s | 37.5 → 33 |
| 13:00 | temp_hysteresis | 1.6 → 1.42 |
| 13:00 | vent_prefer_dp_delta_f | 11 → 12 |
| 13:00 | vent_prefer_temp_delta_f | 6 → 3 |
| 13:00 | vpd_watch_dwell_s | 52.5 → 45 |
🌆 Evening Cycle (8:26 PM) — iris-20260531-2023
validated
9/10
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-20260531-0534
Previous hypothesis: SUNRISE plan for Sunday 2026-05-31. I evaluated Saturday SUNRISE at 4/10 while the deterministic anchor was 1; the gap is intentional but important: I gave limited credit for dp-risk 0h, cost below the 7d average, and VPD-high just under the 3h target, while the anchor correctly punished 316 guardrail events and poor both-axis compliance. Treat the anchor as the stricter operational truth today. Yesterday’s score was 42.4 with 33.6% both-axis compliance; VPD was the bottleneck at 36.5% versus 90.4% temp compliance, and VPD-low dominated at 9.63h. Cost was controlled at USD 3.37 versus USD 3.67 7d average, with water far below average, so the miss was timing and guardrail cleanliness, not resource spend. Current context is degraded: climate telemetry is about 9.8h stale and climate action proof is stale; the last reported house state was safe but dry-side at 74.6F, VPD 1… Result: SUNSET plan-window evaluation for 2026-05-31 20:26 through the morning handoff. Window scorecard was excellent: planner_score 98.5, both-axis compliance 98.1%, temp compliance 98.1%, VPD compliance 99.0%, heat stress 0.02h, VPD-high 0.01h, VPD-low 0.00h, dp-risk 0h, and essentially no window cost. The prior hypothesis was to keep a short band-coupled recovery shoulder while VPD was still high, then unwind gradually overnight as observed VPD recovered and restore dry-ramp readiness before Monday. That worked for the overnight/recovery window: VPD recovered below band without VPD-low or dew-risk carryover. This is a strong window success, but it does not erase the poor full-day score before sunset: 44.3 score, 38.1% both-axis compliance, 6.70h heat and 8.23h VPD-high. Score: 9/10
Hypothesis
Testing: Test whether a short sunset recovery shoulder followed by gradual overnight unwind reduces VPD-high carryover without adding VPD-low/dew-risk, while preserving Monday dry-ramp readiness. Expected outcome: By sunrise: dp-risk 0h, VPD-low under 0.5h, no cold stress, and VPD-high trending down from the 20:23 value. By Monday sunset: fewer VPD-high/no-moisture-assist alerts than today and VPD-high stress under 4h if forecast dry ramp materializes.
Conditions
84.0°F
16.0%
941.0 W/m²
54.0%
Sunset starts hot/dry inside: 74.6F, VPD 1.70 kPa, dew margin 24F, VENTILATE, east VPD about 2.17. Forecast remains dry overnight but cools to 58-65F, then Monday ramps to 84F, RH 16-18%, VPD 3.2 kPa raw / about 2.5 kPa bias-corrected, and high solar near 900+ W/m2.
Expected stress windows
Keep a short band-coupled recovery shoulder while dew margin is healthy; do not unwind by clock while live VPD-high and no-moisture-assist alerts remain.
Gradually reduce wet duty and raise fog threshold after the dry shoulder, because outdoor VPD declines but remains dry enough that a hard wet shutoff is not needed.
Morning handoff restores band-coupled moisture: engage near vpd_high+0.05, all-zone near +0.25, fog escalation 0.20, strong mist duty, high water headroom, and wet coverage through the dry tail.
Use solar-aware cooling lead and all-fan readiness while accepting physically limited hot misses if outside air is as hot and dry as forecast.
Parameter rationale
Keep the immediate recovery shoulder eligible for wet assist instead of asking the VPD-high guardrail to fix a conservative threshold.
Keep distributed mist available during the recovery shoulder without relying only on one zone or fog.
Prevent VPD-low and dew-risk overnight while preserving a short immediate recovery window.
Suppress heavy fog overnight while still allowing light mist recovery if VPD stays high.
Keep dp-risk at 0h while allowing only bounded dry-stress wetting.
Have cooling and wet assist ready before heat and VPD-high pair in VENTILATE.
Avoid water-budget clipping during Monday's peak dry window while tonight's budget remains moderate.
Setpoints
Sunday May 31
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 20:25 | hyst 0.1875 | evening_settle: live VPD-high and VENTILATE persist with hea |
| 22:30 | hyst 0.1875 | midnight_posture: after the recovery shoulder, outdoor VPD d |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 20:25 | s2 1.825; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.26; all 1.46; pulse 41.25; gap 33.75; wt 2.0666666666666664 | evening_settle: live VPD-high and VENTILATE persist with hea |
| 22:30 | s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.26; all 1.46; pulse 33.75; gap 41.25; wt 1.7666666666666666 | midnight_posture: after the recovery shoulder, outdoor VPD d |
Monday June 01
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 03:30 | hyst 0.1875 | pre_dawn: cool dry dawn is not cold enough for gas-driven po |
| 06:30 | hyst 0.1875 | morning_handoff: Monday dry ramp begins after sunrise and in |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 03:30 | s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.26; all 1.46; pulse 33.75; gap 41.25; wt 1.7 | pre_dawn: cool dry dawn is not cold enough for gas-driven po |
| 06:30 | s2 1.2; cool_exit 1.6; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.26; all 1.46; pulse 48.75; gap 33.75; wt 2.3 | morning_handoff: Monday dry ramp begins after sunrise and in |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 20:25 | cold_vent_guard_delta_f | initial 10 |
| 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.2 |
| 20:25 | fog_stress_min_dew_margin_f | initial 8 |
| 20:25 | heat_hysteresis | initial 1.1 |
| 20:25 | min_fog_off_s | initial 60 |
| 20:25 | min_fog_on_s | initial 63.75 |
| 20:25 | mist_backoff_s | initial 600 |
| 20:25 | mist_max_closed_vent_s | initial 120 |
| 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 260 |
| 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_prefer_dp_delta_f | initial 12 |
| 20:25 | vent_prefer_temp_delta_f | initial 6 |
| 20:25 | vpd_watch_dwell_s | initial 52.5 |
| 22:30 | cold_vent_guard_delta_f | 10 → 11 |
| 22:30 | direct_wet_stress_min_dew_margin_f | 8 → 10 |
| 22:30 | fog_stress_min_dew_margin_f | 8 → 10 |
| 22:30 | min_fog_off_s | 60 → 72 |
| 22:30 | min_fog_on_s | 63.75 → 59.25 |
| 22:30 | mister_water_budget_gal | 260 → 150 |
| 22:30 | vent_prefer_temp_delta_f | 6 → 7 |
| 03:30 | cold_vent_guard_delta_f | 11 → 12 |
| 03:30 | direct_wet_stress_min_dew_margin_f | 10 → 11 |
| 03:30 | fog_stress_min_dew_margin_f | 10 → 11 |
| 03:30 | mister_water_budget_gal | 150 → 120 |
| 03:30 | vent_prefer_temp_delta_f | 7 → 8 |
| 06:30 | cold_vent_guard_delta_f | 12 → 8 |
| 06:30 | direct_wet_stress_min_dew_margin_f | 11 → 8 |
| 06:30 | fog_stress_min_dew_margin_f | 11 → 8 |
| 06:30 | min_fog_off_s | 72 → 60 |
| 06:30 | min_fog_on_s | 59.25 → 63.75 |
| 06:30 | mister_water_budget_gal | 120 → 300 |
| 06:30 | vent_prefer_temp_delta_f | 8 → 4 |
End-of-Day Summary
Climate
67.2–88.4°F; avg 77.5°F
0.70–1.96 kPa; avg 1.40 kPa
38.0–80.2%
Stress Hours
- Heat stress (>85°F): 6.7h
- VPD stress (>2.0 kPa): 8.2h
- Cold stress (<55°F): 0.0h
Economics
USD 3.42
USD 0.00
USD 1.230
USD 4.65
Equipment Runtimes
| Equipment | Runtime | Reading |
|---|---|---|
| Fan 1 | 439 min | Primary exhaust runtime. |
| Fan 2 | 422 min | Secondary exhaust runtime. |
| Vent | 605 min | Intake vent runtime. |
| Fog | 117 min | Fogger runtime. |
| Heat 1 electric | 0 min | Electric heater runtime. |
| Heat 2 gas | 0 min | Gas heater runtime. |
| Grow lights | 2222 min | Supplemental lighting runtime. |
| Mister south | 0.32h | South mister runtime. |
| Mister west | 0.00h | West mister runtime. |
| Mister center | 1.28h | Center mister runtime. |
Water
- Total: 255 gal
- Mister: 142 gal
Crop Health (Gemini Vision)
| Crop | Zone | Health | Observations | Note |
|---|---|---|---|---|
| Vanda Orchids | center | 82% | 5 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
| lettuce | east | 80% | 4 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
| pepper | east | 78% | 4 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
| strawberry | east | 80% | 4 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
Vision observation notes
Hanging orchids appear healthy with no visible signs of stress.
Seedlings appear healthy and are establishing well in the hydroponic system.
Seedlings look generally healthy, but some slight variation in size.
Seedlings are developing normally in the hydroponic setup.
Hourly Pattern
| Hour | Temperature | VPD | RH |
|---|---|---|---|
| 12:00 | 81.2°F | 1.24 kPa | 66.6% |
| 13:00 | 79.0°F | 1.01 kPa | 70.4% |
| 14:00 | 78.1°F | 1.12 kPa | 66.3% |
| 15:00 | 79.3°F | 1.20 kPa | 65.4% |
| 16:00 | 85.0°F | 1.36 kPa | 67.4% |
| 17:00 | 81.9°F | 1.19 kPa | 68.3% |
| 18:00 | 79.9°F | 2.04 kPa | 41.5% |
| 19:00 | 75.4°F | 1.62 kPa | 46.2% |
| 08:00 | 70.5°F | 1.23 kPa | 52.0% |
| 09:00 | 71.1°F | 1.17 kPa | 55.7% |
| 10:00 | 74.4°F | 1.12 kPa | 61.8% |
| 11:00 | 78.0°F | 1.24 kPa | 62.4% |
7-Day Stress Context
| Date | Heat | VPD high | Cold |
|---|---|---|---|
| 2026-05-25 | 11.4h | 7.5h | 0.0h |
| 2026-05-26 | 10.3h | 6.0h | 0.0h |
| 2026-05-27 | 4.8h | 2.4h | 0.1h |
| 2026-05-28 | 11.0h | 6.2h | 0.0h |
| 2026-05-29 | 9.7h | 3.9h | 0.0h |
| 2026-05-30 | 1.5h | 2.8h | 0.4h |
| 2026-05-31 | 6.7h | 8.2h | 0.0h |