June 24, 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.
9
5
4
0
| Event | Delivered | Type | Status | Note |
|---|---|---|---|---|
| End-of-day review and reset | 00:20 | MIDNIGHT | plan_written | Wrote public plan iris-20260624-0020. Resolved 00:22 MDT. |
| Morning planning cycle | 05:37 | SUNRISE | plan_written | Wrote public plan iris-20260624-0537. Resolved 05:39 MDT. |
| Forecast deviation | 12:32 | FORECAST_DEVIATION | plan_written | Wrote non-archive plan iris-oneshot-20260624-1232. Resolved 12:32 MDT. |
| Solar peak planning checkpoint | 13:07 | SOLAR_MAX | acked | Acknowledged: SOLAR_MAX no-action: live solar is below/near the bias-corrected forecast peak, indoor temp and VPD are inside the dispatcher band (81.2F, VPD 1.09 vs vpd_high 1.22), dew margin is safe at 10.8F, and the active SUNRISE plan already has band-coupled wet/fog posture staged for the afternoon dry ramp. No tunable change needed. Resolved 13:08 MDT. |
| Forecast deviation | 14:39 | FORECAST_DEVIATION | acked | Acknowledged: FORECAST_DEVIATION assessed: observed solar is far below prior forecast due to cloud/thunderstorm nowcast shift, in the same broad direction as the known positive solar/VPD forecast bias but much larger. Live greenhouse is not in a control miss: 83.3F, VPD 1.13 kPa below vpd_high 1.21, RH 72%, dew margin 10.2F, ESP32 IDLE, all climate relays/wet assist off by demand. Forecast freshness is good, so this is weather/forecast error rather than an ingest gap or equipment issue... Resolved 14:39 MDT. |
| Peak Stress | 15:04 | TRANSITION | acked | Acknowledged: Peak-stress transition reviewed with live climate/equipment/plan/setpoints. Current conditions are tracking/recovered: 82.3F below temp_high 85.1, house VPD 0.96 below vpd_high 1.20, dew margin 8.5F, controller IDLE, all climate/wet relays off. Active plan already has compliance-first wet assist available (mister_engage_kpa 0.95, mister_all_kpa 1.12, fog_escalation_kpa 0.15, direct-wet stress override enabled) and upcoming taper waypoints. No concrete signal to tighten mist/fog further. Resolved 15:04 MDT. |
| Decline | 19:36 | TRANSITION | plan_written | Wrote non-archive plan iris-oneshot-20260624-1937. Resolved 19:37 MDT. |
| Evening planning cycle | 20:35 | SUNSET | plan_written | Wrote public plan iris-20260624-2035. Resolved 20:37 MDT. |
| Forecast deviation | 21:04 | FORECAST_DEVIATION | acked | Acknowledged: FORECAST_DEVIATION precip-only miss: forecast expected 0.44 in/h precipitation but observed 0. Live greenhouse is stable and in IDLE at 76.2F, VPD 0.77 kPa, RH 75%, dew margin 8.3F; all climate equipment is off. No temp/VPD band error or equipment issue requiring tuning; treated as precipitation forecast error, not a climate-control regime change. Resolved 21:05 MDT. |
🌅 Morning Cycle (12:22 AM) — iris-20260624-0020
validated
5/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-20260623-0537
Previous hypothesis: SUNRISE plan 2026-06-23. Previous plan iris-20260623-0136 evaluated 4/10 vs anchor 3: safe but too wet at dawn, and daytime dry-ramp response was not yet validated. Yesterday scored 72.5: temp 91.9%, VPD 70.9%, stress 8.7h dominated by 6.8h VPD-high plus 1.9h heat, cost USD 3.13 vs 7d USD 3.84. Retrieval degraded: knowledge_search and lessons_search failed for missing OPENAI_API_KEY; validate-plan-coverage and static site context are missing. Plan: dry out the orchid zone first, then use validated hot-dry mist/fog lessons during the 85F / VPD 2.8 / 868 W/m2 dry ramp. Result: SUNRISE partial-window evaluation before replacement. From 00:22-05:37 MDT the humid pre-dawn safety portion mostly succeeded: live climate is safe at about 68.3F, VPD 0.55 kPa, RH 77%, dew margin 7.6F, IDLE, no equipment running, and dp-risk remains 0h. However the window scorecard still shows low score/compliance so far (planner score 55.9, temp compliance 70.2%, VPD compliance 61.1%, 0.47h VPD-high and 0.36h heat in the scoped window), and several resolved setpoint confirmation plus vent_vpd_moisture_gap alerts indicate the moisture path was not consistently realized overnight. The main afternoon hot-dry hypothesis has not run yet, so this score is intentionally a partial pre-dawn grade. Yesterday’s complete-day score was 66.5 with temp compliance 99.9%, VPD compliance 66.2%, 7.93h VPD-high, 0.03h heat, 0h VPD-low/cold, dp-risk 0h, and cost USD 4.88 driven by water and electric; VPD-high remained the bottleneck despite safe dew margin. Score: 5/10
New finding: When a pre-dawn taper is safe but setpoint confirmations and vent-mist realization alerts appear before a hot-dry ramp, the next sunrise plan should keep the same dry-out-then-ramp strategy but make realization proof a primary success criterion; do not score biological success from intended thresholds alone. → Added to Lessons Learned
Hypothesis
Testing: Midnight dry-out then live-confirmed VPD recovery: protect the Vanda/orchid zone through humid pre-dawn, then restore wet/fog assist for the afternoon hot-dry ramp while watching realization alerts. Expected outcome: Today: dp-risk remains 0h, no cold/heat stress before sunrise, afternoon VPD-high stress under 5h if wet-assist realization succeeds, and total cost below USD 5.50 despite compliance-first water use.
Conditions
89.0°F
26.0%
825.0 W/m²
48.0%
Humid pre-dawn then hot dry afternoon; forecast VPD has positive bias, so escalate from live VPD confirmation.
Expected stress windows
Keep wet assist conservative and dew margin floor high for orchid safety.
Reopen band-coupled mist/fog after live VPD rise; use fog while the window allows.
Solar precool and vent-mist assist; accept physically limited heat near 89F.
Cold humid front: suppress wet assist and keep dew margin discipline.
Return to aggressive band-coupled wet/fog posture for the stronger Friday dry ramp.
Parameter rationale
Avoid needless orchid-zone wetting before sunrise.
Restore first-stage wet assist near the VPD high edge.
Escalate beyond south-only pulses during dry stress.
Reduce VPD-high hours without adding dew risk.
Use the 7x fog path when misters cannot hold VPD.
Prevent budget clipping during afternoon recovery.
Setpoints
Wednesday June 24
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | hyst 0.1875 | Post-midnight: safe but near VPD-high; avoid fully closing m |
| 03:00 | hyst 0.22250000000000003 | Humid pre-dawn: suppress wet assist and protect orchid dew m |
| 06:30 | hyst 0.1875 | Sunrise ramp: dry out gently until live VPD confirms afterno |
| 10:30 | hyst 0.1875 | Late morning: reopen band-coupled moisture as VPD approaches |
| 12:30 | hyst 0.1875 | Hot-dry peak: compliance-first wet/fog assist with healthy d |
| 16:30 | hyst 0.1875 | Late dry ramp: keep recovery active until observed VPD retur |
| 20:30 | hyst 0.1875 | Evening taper: reduce water/churn while allowing dew-safe re |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 19; engage 0.81; all 1.01; pulse 33.75; gap 41.25; wt 2.2666666666666666 | Post-midnight: safe but near VPD-high; avoid fully closing m |
| 03:00 | s2 2.04; cool_exit 2.23; all_fans 0; dw_stress 1; dw_until 17; engage 0.96; all 1.21; pulse 30; gap 60; wt 1.7999999999999998 | Humid pre-dawn: suppress wet assist and protect orchid dew m |
| 06:30 | s2 1.8175000000000001; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 19; engage 0.81; all 1.01; pulse 33.75; gap 41.25; wt 2.2666666666666666 | Sunrise ramp: dry out gently until live VPD confirms afterno |
| 10:30 | s2 1.715; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 21; engage 0.81; all 1.01; pulse 45; gap 37.5; wt 2.3999999999999995 | Late morning: reopen band-coupled moisture as VPD approaches |
| 12:30 | s2 1.5825; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 21; engage 0.81; all 1; pulse 60; gap 26.25; wt 2.6333333333333337 | Hot-dry peak: compliance-first wet/fog assist with healthy d |
| 16:30 | s2 1.685; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 21; engage 0.81; all 1; pulse 56.25; gap 30; wt 2.5666666666666664 | Late dry ramp: keep recovery active until observed VPD retur |
| 20:30 | s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 21; engage 0.81; all 1.01; pulse 33.75; gap 41.25; wt 2.2666666666666666 | Evening taper: reduce water/churn while allowing dew-safe re |
Thursday June 25
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | hyst 0.22250000000000003 | Cold humid/rainy front: suppress wet assist and prioritize d |
| 14:00 | hyst 0.1875 | Thursday mild dry blip: modest band-coupled moisture, not a |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | s2 2.055; cool_exit 2.23; all_fans 0; dw_stress 1; dw_until 17; engage 0.96; all 1.21; pulse 30; gap 60; wt 1.7666666666666666 | Cold humid/rainy front: suppress wet assist and prioritize d |
| 14:00 | s2 1.8525; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 19; engage 0.81; all 1.01; pulse 33.75; gap 41.25; wt 2.2666666666666666 | Thursday mild dry blip: modest band-coupled moisture, not a |
Friday June 26
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 07:00 | hyst 0.1875 | Friday morning: start live-confirmed dry-ramp recovery early |
| 11:00 | hyst 0.1875 | Friday extreme hot-dry: maximum safe wet/fog posture, cost s |
| 14:30 | hyst 0.1875 | Friday storms/cooldown risk: taper wet assist after frontal |
| 21:00 | hyst 0.1875 | Friday night: conservative wet posture and dew margin protec |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 07:00 | s2 1.7500000000000002; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 21; engage 0.81; all 1.01; pulse 41.25; gap 37.5; wt 2.3666666666666663 | Friday morning: start live-confirmed dry-ramp recovery early |
| 11:00 | s2 1.5675000000000001; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 21; engage 0.81; all 1; pulse 63.75; gap 22.5; wt 2.7 | Friday extreme hot-dry: maximum safe wet/fog posture, cost s |
| 14:30 | s2 1.835; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 20; engage 0.81; all 1.01; pulse 33.75; gap 41.25; wt 2.2666666666666666 | Friday storms/cooldown risk: taper wet assist after frontal |
| 21:00 | s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 19; engage 0.81; all 1.01; pulse 33.75; gap 41.25; wt 2.2666666666666666 | Friday night: conservative wet posture and dew margin protec |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 00:30 | band_track_fraction | initial 0.25 |
| 00:30 | cold_vent_guard_delta_f | initial 9 |
| 00:30 | cool_stage2_exit_hysteresis_f | initial 1 |
| 00:30 | direct_wet_stress_min_dew_margin_f | initial 10 |
| 00:30 | direct_wet_stress_vpd_margin_kpa | initial 0.05 |
| 00:30 | dwell_gate_ms | initial 210000 |
| 00:30 | enthalpy_close | initial 1 |
| 00:30 | enthalpy_open | initial -2 |
| 00:30 | fog_escalation_kpa | initial 0.25 |
| 00:30 | heat_hysteresis | initial 1.1 |
| 00:30 | min_fog_off_s | initial 72 |
| 00:30 | min_fog_on_s | initial 75 |
| 00:30 | mist_backoff_s | initial 600 |
| 00:30 | mist_max_closed_vent_s | initial 120 |
| 00:30 | mist_thermal_relief_s | initial 90 |
| 00:30 | mister_all_delay_s | initial 75 |
| 00:30 | mister_engage_delay_s | initial 37.5 |
| 00:30 | mister_water_budget_gal | initial 160 |
| 00:30 | night_vpd_bias_kpa | initial 0 |
| 00:30 | outdoor_staleness_max_s | initial 600 |
| 00:30 | sw_dwell_gate_enabled | initial 1 |
| 00:30 | sw_fog_closes_vent | initial 1 |
| 00:30 | sw_mister_closes_vent | initial 0 |
| 00:30 | sw_summer_vent_enabled | initial 1 |
| 00:30 | temp_hysteresis | initial 1.6 |
| 00:30 | vent_exchange_fraction | initial 0.3 |
| 00:30 | vent_prefer_dp_delta_f | initial 4 |
| 00:30 | vent_prefer_temp_delta_f | initial 5 |
| 00:30 | vpd_watch_dwell_s | initial 52.5 |
| 03:00 | direct_wet_stress_min_dew_margin_f | 10 → 11 |
| 03:00 | direct_wet_stress_vpd_margin_kpa | 0.05 → 0.2 |
| 03:00 | dwell_gate_ms | 210000 → 315000 |
| 03:00 | fog_escalation_kpa | 0.25 → 0.45 |
| 03:00 | min_fog_off_s | 72 → 126 |
| 03:00 | mister_all_delay_s | 75 → 106.5 |
| 03:00 | mister_engage_delay_s | 37.5 → 53.25 |
| 03:00 | mister_water_budget_gal | 160 → 120 |
| 03:00 | temp_hysteresis | 1.6 → 2.23 |
| 03:00 | vpd_watch_dwell_s | 52.5 → 78.75 |
| 06:30 | direct_wet_stress_min_dew_margin_f | 11 → 10 |
| 06:30 | direct_wet_stress_vpd_margin_kpa | 0.2 → 0.05 |
| 06:30 | dwell_gate_ms | 315000 → 210000 |
| 06:30 | fog_escalation_kpa | 0.45 → 0.25 |
| 06:30 | min_fog_off_s | 126 → 72 |
| 06:30 | mister_all_delay_s | 106.5 → 75 |
| 06:30 | mister_engage_delay_s | 53.25 → 37.5 |
| 06:30 | mister_water_budget_gal | 120 → 140 |
| 06:30 | temp_hysteresis | 2.23 → 1.6 |
| 06:30 | vpd_watch_dwell_s | 78.75 → 52.5 |
| 10:30 | cold_vent_guard_delta_f | 9 → 8 |
| 10:30 | direct_wet_stress_min_dew_margin_f | 10 → 8 |
| 10:30 | min_fog_off_s | 72 → 66 |
| 10:30 | mister_water_budget_gal | 140 → 220 |
| 10:30 | vent_prefer_dp_delta_f | 4 → 3 |
| 10:30 | vent_prefer_temp_delta_f | 5 → 4 |
| 12:30 | fog_escalation_kpa | 0.25 → 0.15 |
| 12:30 | min_fog_off_s | 66 → 48 |
| 12:30 | mister_water_budget_gal | 220 → 260 |
| 16:30 | fog_escalation_kpa | 0.15 → 0.18 |
| 16:30 | min_fog_off_s | 48 → 54 |
| 20:30 | cold_vent_guard_delta_f | 8 → 9 |
| 20:30 | direct_wet_stress_min_dew_margin_f | 8 → 10 |
| 20:30 | fog_escalation_kpa | 0.18 → 0.25 |
| 20:30 | min_fog_off_s | 54 → 72 |
| 20:30 | mister_water_budget_gal | 260 → 160 |
| 20:30 | vent_prefer_dp_delta_f | 3 → 4 |
| 20:30 | vent_prefer_temp_delta_f | 4 → 5 |
| 00:30 | direct_wet_stress_min_dew_margin_f | 10 → 11 |
| 00:30 | direct_wet_stress_vpd_margin_kpa | 0.05 → 0.2 |
| 00:30 | dwell_gate_ms | 210000 → 315000 |
| 00:30 | fog_escalation_kpa | 0.25 → 0.45 |
| 00:30 | min_fog_off_s | 72 → 132 |
| 00:30 | mister_all_delay_s | 75 → 106.5 |
| 00:30 | mister_engage_delay_s | 37.5 → 53.25 |
| 00:30 | mister_water_budget_gal | 160 → 120 |
| 00:30 | temp_hysteresis | 1.6 → 2.23 |
| 00:30 | vpd_watch_dwell_s | 52.5 → 78.75 |
| 14:00 | direct_wet_stress_min_dew_margin_f | 11 → 9 |
| 14:00 | direct_wet_stress_vpd_margin_kpa | 0.2 → 0.05 |
| 14:00 | dwell_gate_ms | 315000 → 210000 |
| 14:00 | fog_escalation_kpa | 0.45 → 0.25 |
| 14:00 | min_fog_off_s | 132 → 72 |
| 14:00 | mister_all_delay_s | 106.5 → 75 |
| 14:00 | mister_engage_delay_s | 53.25 → 37.5 |
| 14:00 | mister_water_budget_gal | 120 → 160 |
| 14:00 | temp_hysteresis | 2.23 → 1.6 |
| 14:00 | vpd_watch_dwell_s | 78.75 → 52.5 |
| 07:00 | cold_vent_guard_delta_f | 9 → 8 |
| 07:00 | direct_wet_stress_min_dew_margin_f | 9 → 8 |
| 07:00 | min_fog_off_s | 72 → 66 |
| 07:00 | mister_water_budget_gal | 160 → 240 |
| 07:00 | vent_prefer_dp_delta_f | 4 → 3 |
| 07:00 | vent_prefer_temp_delta_f | 5 → 4 |
| 11:00 | fog_escalation_kpa | 0.25 → 0.15 |
| 11:00 | min_fog_off_s | 66 → 42 |
| 11:00 | mister_water_budget_gal | 240 → 300 |
| 14:30 | cold_vent_guard_delta_f | 8 → 9 |
| 14:30 | direct_wet_stress_min_dew_margin_f | 8 → 10 |
| 14:30 | fog_escalation_kpa | 0.15 → 0.25 |
| 14:30 | min_fog_off_s | 42 → 72 |
| 14:30 | mister_water_budget_gal | 300 → 180 |
| 14:30 | vent_prefer_dp_delta_f | 3 → 4 |
| 14:30 | vent_prefer_temp_delta_f | 4 → 5 |
| 21:00 | mister_water_budget_gal | 180 → 140 |
🌅 Morning Cycle (5:39 AM) — iris-20260624-0537
validated
5/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-20260623-2042
Previous hypothesis: SUNSET overnight plan for Tuesday 2026-06-23. I evaluated iris-20260623-0537 at 5/10 while the deterministic anchor was 2; the +3 gap is intentional because biological safety and some compliance value were real (no dew-risk, no VPD-low/cold stress, safe handoff), while the anchor correctly penalized 872 guardrail events, 30 held events, 17 dispatched guardrail events, and 47 VPD-high guardrail events. Today’s bottleneck was VPD-high, not temperature: score 68.1, temp compliance 99.8%, VPD compliance 68.7%, 6.25h VPD-high, cost USD 5.13 vs 7d USD 3.36 driven mostly by total water. Tonight’s forecast flips to humid/cool: raw outdoor VPD 0.16-0.28 kPa from midnight to dawn, RH 85-92%, and current dew margin 8.9F… Result: SUNSET evaluation for the 2026-06-24 sunrise plan. The realization-gated dry-out-then-ramp hypothesis was partly successful but not clean. Today’s scorecard improved to 74.1 vs 7d 64.6, with temp compliance 91.5%, VPD compliance 76.4%, total stress 6.30h, and VPD-high still the main bottleneck at 4.63h plus 1.67h heat. Cost was controlled at USD 2.56 vs 7d USD 3.60, driven by electric USD 2.20 and water USD 0.36, with no gas; mister water was only 30 gal. Dew safety succeeded: dp_margin_min 6.9F and dp_risk 0h. The plan’s measurable target of VPD-high below 6h and dp-risk 0h was met on the daily view, but the scoped window scorecard remained weaker (planner 64.7, temp 75.6%, VPD 63.2%, heat 0.86h, VPD-high 2.38h), and many setpoint_unconfirmed/readback/missed transition alerts show the wet/fog realization proof criterion was not consistently met. Forecast conditions also differed from prediction: actual temperature was cooler and indoor humidity higher than predicted while solar was higher, so some success likely came from weather, not just tuning. Score: 5/10
New finding: On humid/cloudy recovery days after repeated hot-dry VPD-high stress, a plan can meet daily VPD-high and dew-safety targets while still failing the realization criterion because setpoint readbacks and guardrail/missed transition events prevent requested wet/fog posture from being reliably delivered. Score these plans as partial success and make readback/action-proof cleanup part of the next posture before increasing biological confidence. → Added to Lessons Learned
Hypothesis
Testing: Realization-gated dry-out-then-ramp: today’s test is whether reopening band-coupled wet/fog assist after live VPD rises reduces VPD-high hours below 6 while keeping dp-risk at 0h; success requires setpoint confirmations and no recurring vent_vpd_moisture_gap alerts, not just plan intent. Expected outcome: By sunset: dp-risk remains 0h, VPD-low stays near 0h, VPD-high stress improves from yesterday’s 7.93h toward under 6h despite the hot/dry ramp, heat stress stays below 2h unless physics-limited by 85-86F outdoor air, and total cost stays near or below USD 5.50 unless wet-assist realization requires more water.
Conditions
86.0°F
30.0%
820.0 W/m²
54.0%
Humid sunrise, then hot dry afternoon with thunder/cloud uncertainty; forecast VPD has positive bias but live VPD should cross high edge late morning.
Expected stress windows
Band-coupled mist/fog after live dry ramp; verify wet/fog realization.
Solar precool, fan staging, and vent-mist assist; accept physics limit near 86F.
Suppress wet assist, hold dew floor high, and preserve churn discipline.
Aggressive band-coupled wet/fog for stronger Friday dry ramp.
Parameter rationale
Open S1 wet assist near the high edge without dawn wetting.
Escalate beyond south-only pulses during dry stress.
Reduce VPD-high hours while dew margin stays above 5F.
Use the 7x fog path when misters lag in VENTILATE.
Avoid clipping afternoon VPD recovery.
Setpoints
Wednesday June 24
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 06:15 | hyst 0.21750000000000003 | Humid dawn and Vanda/orchid dew protection; avoid unnecessar |
| 10:30 | hyst 0.1975 | Dry ramp preparation: reopen wet assist after confirmation w |
| 12:30 | hyst 0.1925 | Peak hot-dry window: VPD compliance is the bottleneck; use b |
| 16:30 | hyst 0.1975 | Late hot/dry and thunder uncertainty: keep recovery wet assi |
| 20:30 | hyst 0.21250000000000002 | Evening taper after dry peak; preserve bounded recovery thro |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 06:15 | s2 1.92; cool_exit 2.14; all_fans 0; dw_stress 0; dw_until 17; engage 1.15; all 1.35; pulse 30; gap 60; wt 1.4 | Humid dawn and Vanda/orchid dew protection; avoid unnecessar |
| 10:30 | s2 1.73; cool_exit 1.78; all_fans 0; dw_stress 1; dw_until 21; engage 0.98; all 1.2; pulse 41.25; gap 41.25; wt 1.8333333333333335 | Dry ramp preparation: reopen wet assist after confirmation w |
| 12:30 | s2 1.6500000000000001; cool_exit 1.69; all_fans 0; dw_stress 1; dw_until 21; engage 0.9500000000000001; all 1.12; pulse 56.25; gap 30; wt 2.0666666666666664 | Peak hot-dry window: VPD compliance is the bottleneck; use b |
| 16:30 | s2 1.735; cool_exit 1.78; all_fans 0; dw_stress 1; dw_until 21; engage 0.9500000000000001; all 1.15; pulse 56.25; gap 33.75; wt 2.033333333333333 | Late hot/dry and thunder uncertainty: keep recovery wet assi |
| 20:30 | s2 1.9125; cool_exit 2.05; all_fans 0; dw_stress 0; dw_until 21; engage 1.05; all 1.25; pulse 33.75; gap 56.25; wt 1.6333333333333333 | Evening taper after dry peak; preserve bounded recovery thro |
Thursday June 25
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | hyst 0.22250000000000003 | Cool humid/rainy Thursday front: protect orchid dew margin a |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | s2 2.04; cool_exit 2.23; all_fans 0; dw_stress 0; dw_until 17; engage 1.25; all 1.4; pulse 30; gap 60; wt 1.1666666666666665 | Cool humid/rainy Thursday front: protect orchid dew margin a |
Friday June 26
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 07:00 | hyst 0.1975 | Friday fast dry ramp begins after humid night; pre-stage ban |
| 11:00 | hyst 0.1925 | Friday extreme hot-dry stress: compliance-first wet/fog assi |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 07:00 | s2 1.7; cool_exit 1.78; all_fans 0; dw_stress 1; dw_until 22; engage 0.98; all 1.15; pulse 45; gap 33.75; wt 1.9333333333333331 | Friday fast dry ramp begins after humid night; pre-stage ban |
| 11:00 | s2 1.5675000000000001; cool_exit 1.69; all_fans 0; dw_stress 1; dw_until 22; engage 0.9500000000000001; all 1.1; pulse 60; gap 22.5; wt 2.166666666666667 | Friday extreme hot-dry stress: compliance-first wet/fog assi |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 06:15 | band_track_fraction | initial 0.25 |
| 06:15 | cold_vent_guard_delta_f | initial 8 |
| 06:15 | cool_stage2_exit_hysteresis_f | initial 1 |
| 06:15 | direct_wet_stress_min_dew_margin_f | initial 10 |
| 06:15 | direct_wet_stress_vpd_margin_kpa | initial 0.25 |
| 06:15 | dwell_gate_ms | initial 300000 |
| 06:15 | enthalpy_close | initial 1 |
| 06:15 | enthalpy_open | initial -2 |
| 06:15 | fog_escalation_kpa | initial 0.45 |
| 06:15 | heat_hysteresis | initial 1.1 |
| 06:15 | min_fog_off_s | initial 120 |
| 06:15 | min_fog_on_s | initial 41.25 |
| 06:15 | mist_backoff_s | initial 600 |
| 06:15 | mist_max_closed_vent_s | initial 120 |
| 06:15 | mist_thermal_relief_s | initial 90 |
| 06:15 | mister_all_delay_s | initial 102 |
| 06:15 | mister_engage_delay_s | initial 51 |
| 06:15 | mister_water_budget_gal | initial 120 |
| 06:15 | night_vpd_bias_kpa | initial 0 |
| 06:15 | outdoor_staleness_max_s | initial 600 |
| 06:15 | sw_dwell_gate_enabled | initial 1 |
| 06:15 | sw_fog_closes_vent | initial 1 |
| 06:15 | sw_mister_closes_vent | initial 0 |
| 06:15 | sw_summer_vent_enabled | initial 1 |
| 06:15 | temp_hysteresis | initial 2.14 |
| 06:15 | vent_exchange_fraction | initial 0.3 |
| 06:15 | vent_prefer_dp_delta_f | initial 3 |
| 06:15 | vent_prefer_temp_delta_f | initial 4 |
| 06:15 | vpd_watch_dwell_s | initial 75 |
| 10:30 | direct_wet_stress_min_dew_margin_f | 10 → 8 |
| 10:30 | direct_wet_stress_vpd_margin_kpa | 0.25 → 0.08 |
| 10:30 | dwell_gate_ms | 300000 → 240000 |
| 10:30 | fog_escalation_kpa | 0.45 → 0.25 |
| 10:30 | min_fog_off_s | 120 → 72 |
| 10:30 | min_fog_on_s | 41.25 → 59.25 |
| 10:30 | mister_all_delay_s | 102 → 84 |
| 10:30 | mister_engage_delay_s | 51 → 42 |
| 10:30 | mister_water_budget_gal | 120 → 220 |
| 10:30 | temp_hysteresis | 2.14 → 1.78 |
| 10:30 | vpd_watch_dwell_s | 75 → 60 |
| 12:30 | cold_vent_guard_delta_f | 8 → 9 |
| 12:30 | direct_wet_stress_vpd_margin_kpa | 0.08 → 0.05 |
| 12:30 | dwell_gate_ms | 240000 → 225000 |
| 12:30 | fog_escalation_kpa | 0.25 → 0.15 |
| 12:30 | min_fog_off_s | 72 → 54 |
| 12:30 | min_fog_on_s | 59.25 → 66 |
| 12:30 | mister_all_delay_s | 84 → 79.5 |
| 12:30 | mister_engage_delay_s | 42 → 39.75 |
| 12:30 | mister_water_budget_gal | 220 → 260 |
| 12:30 | temp_hysteresis | 1.78 → 1.69 |
| 12:30 | vent_prefer_temp_delta_f | 4 → 5 |
| 12:30 | vpd_watch_dwell_s | 60 → 56.25 |
| 16:30 | dwell_gate_ms | 225000 → 240000 |
| 16:30 | fog_escalation_kpa | 0.15 → 0.18 |
| 16:30 | min_fog_off_s | 54 → 60 |
| 16:30 | min_fog_on_s | 66 → 63.75 |
| 16:30 | mister_all_delay_s | 79.5 → 84 |
| 16:30 | mister_engage_delay_s | 39.75 → 42 |
| 16:30 | temp_hysteresis | 1.69 → 1.78 |
| 16:30 | vpd_watch_dwell_s | 56.25 → 60 |
| 20:30 | cold_vent_guard_delta_f | 9 → 8 |
| 20:30 | direct_wet_stress_min_dew_margin_f | 8 → 9 |
| 20:30 | direct_wet_stress_vpd_margin_kpa | 0.05 → 0.15 |
| 20:30 | dwell_gate_ms | 240000 → 285000 |
| 20:30 | fog_escalation_kpa | 0.18 → 0.35 |
| 20:30 | min_fog_off_s | 60 → 96 |
| 20:30 | min_fog_on_s | 63.75 → 50.25 |
| 20:30 | mister_all_delay_s | 84 → 97.5 |
| 20:30 | mister_engage_delay_s | 42 → 48.75 |
| 20:30 | mister_water_budget_gal | 260 → 220 |
| 20:30 | temp_hysteresis | 1.78 → 2.05 |
| 20:30 | vent_prefer_temp_delta_f | 5 → 4 |
| 20:30 | vpd_watch_dwell_s | 60 → 71.25 |
| 00:30 | direct_wet_stress_min_dew_margin_f | 9 → 10 |
| 00:30 | direct_wet_stress_vpd_margin_kpa | 0.15 → 0.35 |
| 00:30 | dwell_gate_ms | 285000 → 315000 |
| 00:30 | fog_escalation_kpa | 0.35 → 0.5 |
| 00:30 | min_fog_off_s | 96 → 126 |
| 00:30 | min_fog_on_s | 50.25 → 39 |
| 00:30 | mister_all_delay_s | 97.5 → 106.5 |
| 00:30 | mister_engage_delay_s | 48.75 → 53.25 |
| 00:30 | mister_water_budget_gal | 220 → 120 |
| 00:30 | temp_hysteresis | 2.05 → 2.23 |
| 00:30 | vpd_watch_dwell_s | 71.25 → 78.75 |
| 07:00 | cold_vent_guard_delta_f | 8 → 9 |
| 07:00 | direct_wet_stress_min_dew_margin_f | 10 → 8 |
| 07:00 | direct_wet_stress_vpd_margin_kpa | 0.35 → 0.08 |
| 07:00 | dwell_gate_ms | 315000 → 240000 |
| 07:00 | fog_escalation_kpa | 0.5 → 0.2 |
| 07:00 | min_fog_off_s | 126 → 60 |
| 07:00 | min_fog_on_s | 39 → 63.75 |
| 07:00 | mister_all_delay_s | 106.5 → 84 |
| 07:00 | mister_engage_delay_s | 53.25 → 42 |
| 07:00 | mister_water_budget_gal | 120 → 260 |
| 07:00 | temp_hysteresis | 2.23 → 1.78 |
| 07:00 | vent_prefer_temp_delta_f | 4 → 5 |
| 07:00 | vpd_watch_dwell_s | 78.75 → 60 |
| 11:00 | direct_wet_stress_vpd_margin_kpa | 0.08 → 0.05 |
| 11:00 | dwell_gate_ms | 240000 → 225000 |
| 11:00 | fog_escalation_kpa | 0.2 → 0.15 |
| 11:00 | min_fog_off_s | 60 → 42 |
| 11:00 | min_fog_on_s | 63.75 → 70.5 |
| 11:00 | mister_all_delay_s | 84 → 79.5 |
| 11:00 | mister_engage_delay_s | 42 → 39.75 |
| 11:00 | mister_water_budget_gal | 260 → 300 |
| 11:00 | temp_hysteresis | 1.78 → 1.69 |
| 11:00 | vpd_watch_dwell_s | 60 → 56.25 |
🌆 Evening Cycle (8:37 PM) — iris-20260624-2035
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-20260624-0537
Previous hypothesis: SUNRISE plan 2026-06-24. I evaluated the active midnight plan iris-20260624-0020 at 5/10 while the deterministic anchor was 1. The +4 gap is deliberate but cautionary: biological safety was real in the pre-dawn window (68.3F, VPD 0.55 kPa, RH 77%, dew margin 7.6F, IDLE, no equipment running, dp-risk 0h), but the anchor correctly penalized 542 guardrail events, 231 held guardrail events, 16 dispatched guardrail events, and 247 VPD-high guardrail events. I am therefore treating realization proof, not just requested posture, as today’s success criterion. Yesterday’s full-day score was 66.5: temperature was excellent at 99.9% compliance, but VPD was the bottleneck at 66.2% with 7.93h VPD-high and only 0.03h heat; cost was USD 4.88 vs 7d USD 3.36, driven by water and electric, not gas… Result: Midnight evaluation of the 2026-06-24 SUNSET humid-night taper. Daily 2026-06-24 score finished at 77.6 with temp compliance 92.8%, VPD compliance 79.5%, VPD-high 4.77h, heat 1.67h, VPD-low/cold 0h, dp_margin_min 6.9F, dp-risk 0h, cost USD 2.29, water 75 gal and mister water 30 gal. The specific sunset-to-midnight window was safe and cheap (window cost about USD 0.156, no heat/cold/VPD-high/VPD-low stress), current live state is IDLE at 69.8F, VPD 0.49 kPa, RH 80%, dew margin 6.3F, with all climate relays off. The dew-safety and wet-suppression parts of the hypothesis were directionally met: no fog/mister overshoot and no condensation-risk hours. However the scoped scorecard reports 0% compliance / planner score 20 for the short window, the house_band_drift alert is open for too-wet/orchid-drying risk, and there are open setpoint_unconfirmed alerts plus multiple missed transition proofs. The Friday hot-dry fail-safe has not run. Score 4/10: biological safety succeeded, but target tracking and realization proof remain weak. Score: 4/10
Hypothesis
Testing: Humid-night taper after a VPD-high day: suppress wet assist overnight while dew margin is safe, then keep an offline Friday dry-ramp fail-safe. Expected outcome: Overnight dp-risk remains 0h, no VPD-low stress accrues from added moisture, water stays below the 7d trend, and tomorrow’s sunrise cycle can reopen moisture if live VPD rises.
Conditions
67.0°F
66.0%
518.0 W/m²
82.0%
Humid cool overnight and Thursday: outdoor VPD 0.09-0.27 kPa through morning, RH 85-95%, current dew margin 9.4F; Friday hot-dry ramp is the offline fail-safe concern.
Expected stress windows
Suppress wet assist, keep dew margin floor high, and allow only safety/controller dehumidification rather than adding moisture.
Offline fail-safe reopens band-coupled mist/fog before Friday dry heat if sunrise cycles miss.
Parameter rationale
Avoid needless orchid wetting and hold dp-risk at 0h.
Prevent all-zone wetting while VPD is below target.
Cut water/churn without worsening VPD-high.
Avoid fog overshoot during humid recovery.
Avoid water waste overnight, then future plan can reopen for Friday.
Setpoints
Wednesday June 24
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 20:45 | hyst 0.2125 | evening_settle: VPD is in band, dew margin is safe, and fore |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 20:45 | s2 2.025; cool_exit 2.05; all_fans 0; dw_stress 0; dw_until 21; engage 1.24; all 1.39; pulse 30; gap 60; wt 1.22 | evening_settle: VPD is in band, dew margin is safe, and fore |
Thursday June 25
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:00 | hyst 0.2175 | midnight_posture: outdoor VPD forecast near 0.09-0.23 with R |
| 05:30 | hyst 0.2175 | pre_dawn: continue humid-night taper; avoid dawn wetting whi |
| 09:00 | hyst 0.2125 | humid_day_hold: Thursday stays cool/cloudy with low outdoor |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:00 | s2 2.055; cool_exit 2.14; all_fans 0; dw_stress 0; dw_until 19; engage 1.29; all 1.44; pulse 30; gap 60; wt 1.1333333333333333 | midnight_posture: outdoor VPD forecast near 0.09-0.23 with R |
| 05:30 | s2 2.0225; cool_exit 2.14; all_fans 0; dw_stress 0; dw_until 19; engage 1.24; all 1.39; pulse 30; gap 60; wt 1.1866666666666665 | pre_dawn: continue humid-night taper; avoid dawn wetting whi |
| 09:00 | s2 1.9575; cool_exit 2.05; all_fans 0; dw_stress 0; dw_until 19; engage 1.19; all 1.3399999999999999; pulse 30; gap 60; wt 1.28 | humid_day_hold: Thursday stays cool/cloudy with low outdoor |
Friday June 26
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 07:00 | hyst 0.19749999999999998 | offline_fail_safe_friday_dry_ramp: if no later planner repla |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 07:00 | s2 1.695; cool_exit 1.78; all_fans 0; dw_stress 1; dw_until 22; engage 0.99; all 1.19; pulse 48.75; gap 41.25; wt 1.7333333333333334 | offline_fail_safe_friday_dry_ramp: if no later planner repla |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 20:45 | band_track_fraction | initial 0.25 |
| 20:45 | cold_vent_guard_delta_f | initial 9 |
| 20:45 | cool_stage2_exit_hysteresis_f | initial 1 |
| 20:45 | direct_wet_stress_min_dew_margin_f | initial 10 |
| 20:45 | direct_wet_stress_vpd_margin_kpa | initial 0.3 |
| 20:45 | dwell_gate_ms | initial 285000 |
| 20:45 | enthalpy_close | initial 1 |
| 20:45 | enthalpy_open | initial -2 |
| 20:45 | fog_escalation_kpa | initial 0.45 |
| 20:45 | heat_hysteresis | initial 1.1 |
| 20:45 | min_fog_off_s | initial 120 |
| 20:45 | min_fog_on_s | initial 41.25 |
| 20:45 | mist_backoff_s | initial 600 |
| 20:45 | mist_max_closed_vent_s | initial 120 |
| 20:45 | mist_thermal_relief_s | initial 90 |
| 20:45 | mister_all_delay_s | initial 97.5 |
| 20:45 | mister_engage_delay_s | initial 48.75 |
| 20:45 | mister_water_budget_gal | initial 120 |
| 20:45 | night_vpd_bias_kpa | initial 0 |
| 20:45 | outdoor_staleness_max_s | initial 600 |
| 20:45 | sw_dwell_gate_enabled | initial 1 |
| 20:45 | sw_fog_closes_vent | initial 1 |
| 20:45 | sw_mister_closes_vent | initial 0 |
| 20:45 | sw_summer_vent_enabled | initial 1 |
| 20:45 | temp_hysteresis | initial 2.05 |
| 20:45 | vent_exchange_fraction | initial 0.3 |
| 20:45 | vent_prefer_dp_delta_f | initial 4 |
| 20:45 | vent_prefer_temp_delta_f | initial 5 |
| 20:45 | vpd_watch_dwell_s | initial 71.25 |
| 00:00 | direct_wet_stress_min_dew_margin_f | 10 → 11 |
| 00:00 | direct_wet_stress_vpd_margin_kpa | 0.3 → 0.35 |
| 00:00 | dwell_gate_ms | 285000 → 300000 |
| 00:00 | fog_escalation_kpa | 0.45 → 0.5 |
| 00:00 | min_fog_off_s | 120 → 132 |
| 00:00 | min_fog_on_s | 41.25 → 36.75 |
| 00:00 | mister_all_delay_s | 97.5 → 102 |
| 00:00 | mister_engage_delay_s | 48.75 → 51 |
| 00:00 | temp_hysteresis | 2.05 → 2.14 |
| 00:00 | vpd_watch_dwell_s | 71.25 → 75 |
| 05:30 | direct_wet_stress_min_dew_margin_f | 11 → 10 |
| 05:30 | direct_wet_stress_vpd_margin_kpa | 0.35 → 0.3 |
| 05:30 | fog_escalation_kpa | 0.5 → 0.45 |
| 05:30 | min_fog_off_s | 132 → 126 |
| 05:30 | min_fog_on_s | 36.75 → 39 |
| 09:00 | direct_wet_stress_vpd_margin_kpa | 0.3 → 0.25 |
| 09:00 | dwell_gate_ms | 300000 → 285000 |
| 09:00 | fog_escalation_kpa | 0.45 → 0.4 |
| 09:00 | min_fog_off_s | 126 → 114 |
| 09:00 | min_fog_on_s | 39 → 43.5 |
| 09:00 | mister_all_delay_s | 102 → 97.5 |
| 09:00 | mister_engage_delay_s | 51 → 48.75 |
| 09:00 | mister_water_budget_gal | 120 → 140 |
| 09:00 | temp_hysteresis | 2.14 → 2.05 |
| 09:00 | vpd_watch_dwell_s | 75 → 71.25 |
| 07:00 | cold_vent_guard_delta_f | 9 → 8 |
| 07:00 | direct_wet_stress_min_dew_margin_f | 10 → 8 |
| 07:00 | direct_wet_stress_vpd_margin_kpa | 0.25 → 0.05 |
| 07:00 | dwell_gate_ms | 285000 → 240000 |
| 07:00 | fog_escalation_kpa | 0.4 → 0.18 |
| 07:00 | min_fog_off_s | 114 → 72 |
| 07:00 | min_fog_on_s | 43.5 → 59.25 |
| 07:00 | mister_all_delay_s | 97.5 → 84 |
| 07:00 | mister_engage_delay_s | 48.75 → 42 |
| 07:00 | mister_water_budget_gal | 140 → 260 |
| 07:00 | temp_hysteresis | 2.05 → 1.78 |
| 07:00 | vent_prefer_dp_delta_f | 4 → 3 |
| 07:00 | vent_prefer_temp_delta_f | 5 → 4 |
| 07:00 | vpd_watch_dwell_s | 71.25 → 60 |
End-of-Day Summary
Climate
67.6–84.6°F; avg 75.9°F
0.51–1.56 kPa; avg 0.88 kPa
60.1–79.0%
Stress Hours
- Heat stress (>85°F): 1.7h
- VPD stress (>2.0 kPa): 4.8h
- Cold stress (<55°F): 0.0h
Economics
USD 1.93
USD 0.00
USD 0.360
USD 2.29
Equipment Runtimes
| Equipment | Runtime | Reading |
|---|---|---|
| Fan 1 | 339 min | Primary exhaust runtime. |
| Fan 2 | 345 min | Secondary exhaust runtime. |
| Vent | 409 min | Intake vent runtime. |
| Fog | 49 min | Fogger runtime. |
| Heat 1 electric | 0 min | Electric heater runtime. |
| Heat 2 gas | 0 min | Gas heater runtime. |
| Grow lights | 1264 min | Supplemental lighting runtime. |
| Mister south | 0.29h | South mister runtime. |
| Mister west | 0.08h | West mister runtime. |
| Mister center | 0.25h | Center mister runtime. |
Water
- Total: 75 gal
- Mister: 30 gal
Hourly Pattern
| Hour | Temperature | VPD | RH |
|---|---|---|---|
| 12:00 | 80.9°F | 1.15 kPa | 68.5% |
| 13:00 | 81.9°F | 1.17 kPa | 68.9% |
| 14:00 | 83.2°F | 1.29 kPa | 67.4% |
| 15:00 | 84.3°F | 1.33 kPa | 68.2% |
| 16:00 | 83.4°F | 1.26 kPa | 68.6% |
| 17:00 | 82.8°F | 1.22 kPa | 68.5% |
| 18:00 | 81.7°F | 0.97 kPa | 74.1% |
| 19:00 | 81.7°F | 0.94 kPa | 74.9% |
| 20:00 | 78.4°F | 0.91 kPa | 73.2% |
| 21:00 | 76.5°F | 0.83 kPa | 73.6% |
| 22:00 | 75.3°F | 0.83 kPa | 72.4% |
| 23:00 | 73.3°F | 0.91 kPa | 67.7% |
| 00:00 | 71.4°F | 0.80 kPa | 69.7% |
| 01:00 | 70.6°F | 0.74 kPa | 71.2% |
| 02:00 | 69.9°F | 0.74 kPa | 70.3% |
| 03:00 | 68.7°F | 0.78 kPa | 67.6% |
| 04:00 | 67.9°F | 0.71 kPa | 69.5% |
| 05:00 | 68.2°F | 0.57 kPa | 75.9% |
| 06:00 | 69.6°F | 0.56 kPa | 77.6% |
| 07:00 | 71.6°F | 0.62 kPa | 76.9% |
| 08:00 | 74.1°F | 0.72 kPa | 75.4% |
| 09:00 | 76.7°F | 0.88 kPa | 72.3% |
| 10:00 | 78.6°F | 1.09 kPa | 67.7% |
| 11:00 | 79.7°F | 1.09 kPa | 68.6% |
7-Day Stress Context
| Date | Heat | VPD high | Cold |
|---|---|---|---|
| 2026-06-18 | 0.2h | 11.4h | 0.0h |
| 2026-06-19 | 0.1h | 10.4h | 0.0h |
| 2026-06-20 | 0.1h | 6.7h | 0.0h |
| 2026-06-21 | 0.4h | 5.9h | 0.0h |
| 2026-06-22 | 1.9h | 6.8h | 0.0h |
| 2026-06-23 | 0.0h | 7.9h | 0.0h |
| 2026-06-24 | 1.7h | 4.8h | 0.0h |