May 23, 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.
12
4
8
0
| Event | Delivered | Type | Status | Note |
|---|---|---|---|---|
| End-of-day review and reset | 00:17 | MIDNIGHT | plan_written | Wrote public plan iris-20260523-0027. Resolved 00:22 MDT. |
| Morning planning cycle | 05:39 | SUNRISE | plan_written | Wrote public plan iris-20260523-0539. Resolved 05:42 MDT. |
| Solar peak planning checkpoint | 12:57 | SOLAR_MAX | acked | Acknowledged: SOLAR_MAX reviewed: live solar 1005 W/m2 is high but within the severe-day forecast envelope after calibration; greenhouse is already in VENTILATE with average VPD 1.08 kPa below active vpd_high 1.30, dew margin 11.1F, and the active SUNRISE plan already has fully band-coupled peak moisture posture in place (mister_engage_kpa 1.0, mister_all_kpa 1.2, 30/60s delays, 20s gap, fog_escalation_kpa 0.15, min_fog_off_s 45, mist_max_closed_vent_s 180, mist_backoff_s 600)... Resolved 12:58 MDT. |
| Peak Stress | 14:57 | TRANSITION | acked | Acknowledged: Peak-stress transition checked. Live house is in VENTILATE at 80.5F and VPD 1.44 kPa with healthy 13.9F dew margin; vent, fan1, fan2, fog, and center mister are active. The active SUNRISE plan is already in the intended severe dry-day posture: mister_engage_kpa 1.0, mister_all_kpa 1.2, 30/60s delays, 20s pulse gap, fog_escalation_kpa 0.15, min_fog_off_s 45, mist_max_closed_vent_s 180, and mist_backoff_s 600... Resolved 14:58 MDT. |
| Forecast deviation | 15:09 | FORECAST_DEVIATION | acked | Acknowledged: FORECAST_DEVIATION assessed: observed wind is much lower than forecast, but live greenhouse response is consistent with the active hot-dry VENTILATE posture. Current climate is 80.1F, VPD 1.19 kPa, RH 68%, dew margin 11.6F; equipment is vent + fan1 + fan2 with heat off and wetting/fog currently off after recent cycles. Diagnosis is forecast wind error / local wind lull, not equipment fault or new regime... Resolved 15:09 MDT. |
| Forecast deviation | 15:23 | FORECAST_DEVIATION | acked | Acknowledged: FORECAST_DEVIATION reviewed: observed solar 260 W/m2 vs forecast 959 and cloud 82% vs 9% is a weather/forecast cloud miss in the same solar-overforecast direction as recent calibration, not equipment failure. Live greenhouse is VENTILATE at 78.0F, VPD 1.10 kPa, RH 67%, dew margin 11.8F; vent and fan2 are active, heaters/fog/misters off. Existing severe-dry posture is already at the aggressive guardrail-aligned floor for moisture (mister_engage 1.0, all 1.2, gap 20, fog_escalation 0... Resolved 15:23 MDT. |
| Forecast deviation | 15:38 | FORECAST_DEVIATION | acked | Acknowledged: FORECAST_DEVIATION assessed: wind_gust forecast was much higher than observed, but this matches recent forecast-over-wind bias rather than a greenhouse/equipment regime change. Live house is VENTILATE at 81.1F, VPD 1.45 kPa, RH 61%, dew margin 14.9F; vent, fan1, fan2, fog, and center mister are already active. Current moisture posture is already guardrail-aligned/aggressive (fog_escalation 0.15, min_fog_off 45, engage 1.0, all 1.2, gap 20), so no additional tunable change is warranted. Resolved 15:39 MDT. |
| Forecast deviation | 16:09 | FORECAST_DEVIATION | acked | Acknowledged: FORECAST_DEVIATION assessed: observed VPD is lower/more humid than forecast, matching recent forecast-overdry/solar-miss pattern rather than an equipment fault. Current climate is 75.0F, VPD 0.98 kPa, RH 68%, dew margin 11.1F, mode VENTILATE. Equipment state is consistent with cooling: vent and fan1 on, fan2/fog/misters/heaters off. Active posture is already aggressively band-coupled for the dry window, and live VPD is in/near band with safe dew margin, so no tunable change warranted. Resolved 16:09 MDT. |
| Forecast deviation | 16:24 | FORECAST_DEVIATION | plan_written | Wrote non-archive plan iris-oneshot-20260523-1625. Resolved 16:25 MDT. |
| Decline | 19:17 | TRANSITION | acked | Acknowledged: Decline checkpoint no-change: live house is tracking the active dry-evening posture. Greenhouse VPD is at the high band (0.97 vs vpd_high 0.96) with VENTILATE and fans active, dew margin is safe at 12.3F, fog is already time-window blocked/off, and east remains dry at 1.57 kPa while outdoor air is still dry (~25% RH). The existing plan already schedules unwind waypoints at 21:30 and 00:30, so changing tunables now would risk under-supporting the remaining dry evening rather than preventing overnight V... Resolved 19:17 MDT. |
| Evening planning cycle | 20:17 | SUNSET | plan_written | Wrote public plan iris-20260523-2017. Resolved 20:20 MDT. |
| Forecast deviation | 21:42 | FORECAST_DEVIATION | acked | Acknowledged: FORECAST_DEVIATION assessed: observed VPD is much lower/more humid than forecast (0.82 kPa live vs 1.64 kPa trigger forecast), opposite the recent small VPD forecast bias. Climate is not in VPD-low stress: house 66.2F, RH 65%, VPD 0.82 near the 0.80 high band, dew margin 11.9F. Equipment state matches a mild thermal/economiser response, with vent open and fan2 on, fog and misters off... Resolved 21:43 MDT. |
🌅 Morning Cycle (12:22 AM) — iris-20260523-0027
validated
5/10
bias_cool, bias_heat, d_cool_stage_2, d_heat_stage_2, dwell_gate_ms, enthalpy_close, enthalpy_open, fog_escalation_kpa ...
Reflection
Validating previous cycle: iris-20260522-0540
Previous hypothesis: SUNRISE plan for Friday 2026-05-22. Yesterday improved to 73.8 but still missed target: both-axis compliance 77.6%, temp 84.6%, VPD 87.6%, with heat stress 2.72h and VPD-high 2.10h as the main misses. The evaluated sunset plan scored 8/10 versus anchor 6: it protected VPD and dew safety overnight, but the anchor penalized 14 guardrail events, so today’s plan must stop fighting the moisture guardrail during dry ventilation. Current house is IDLE with heat1 on, 65.4F, VPD 0.56, RH 74%, dew margin 8.6F, and outdoor air is cold/saturated. Forecast shifts to a dry afternoon: Friday outdoor RH falls to 21-28%, VPD 1.5-1.8 kPa, solar peaks near 817 W/m2; Saturday fallback is severe with RH near 9%, VPD near 3.0 kPa, and solar near 900 W/m2… Result: MIDNIGHT plan window was safe but only partially effective. Window metrics: score 60.0, both-axis compliance 59.4%, temp compliance 61.2%, VPD compliance 78.4%, stress about 1.48h during its governed interval with cold about 0.87h, VPD-low about 1.24h, VPD-high negligible about 0.04h, and cost about USD 0.22. The saturated pre-dawn suppression protected dew safety and avoided VPD-high, but the house still spent meaningful time below the VPD band and had some crop-band cold scoring. The severe dry-ramp fallback was superseded by the later SUNRISE plan, so this score is mainly for the overnight reset posture and plan-contract coverage. Score: 5/10
Hypothesis
Testing: Replace incomplete/guardrailed carryover with complete Tier-1 waypoints and a severe-day posture that is fully band-coupled before the dry ramp, then delay the unwind until observed/forecast VPD pressure weakens. Expected outcome: For Saturday: dp_risk_hours 0, pre-dawn VPD-low under 1h, daytime VPD-high lower than Friday despite worse dry air, fewer or no VPD-high moisture-guardrail events, and both-axis compliance at least 65% unless structural heat/temperature-band limits dominate. Cost/water may rise, intentionally, to prevent water budget from bottlenecking severe VPD recovery.
Conditions
77.0°F
10.0%
932.0 W/m²
35.0%
Cold saturated pre-dawn around 42-50F and 84-92% RH with indoor VPD 0.37 and dew margin 5.6F, followed by a severe clear dry ramp from late morning through evening: RH 10-24%, outdoor VPD about 1.8-2.9 kPa, solar corrected peak near 890-930 W/m2. Sunday fallback remains dry and warmer by late morning.
Expected stress windows
High thresholds 2.45/2.5 overnight, long delays, 55-60s gaps, fog_escalation 0.9-1.0, short 120s sealed residence, bias_cool +4 and modest heat support.
Fully band-coupled moisture before the VPD ramp: engage 1.0-1.1, all 1.2-1.3, 30/60s delays, 20-25s gaps, fog_escalation 0.15-0.20, min_fog_off 45-60, 180s sealed cap, and 600s backoff.
Earlier ventilation support with bias_cool 0-1, d_cool_stage_2 2, temp_hysteresis 1.4-1.5, while VENTILATE mist/fog assist protects VPD.
After outdoor VPD falls below about 1 kPa, unwind toward engage 2.2, all 2.5, 55-60s gaps, fog_escalation 0.9, and short sealed residence.
Parameter rationale
Avoid repeated moisture-guardrail rewrites and keep VPD-high stress lower than Friday despite worse dry-air pressure.
Allow all-zone assist during severe dry ventilation instead of waiting far above the crop band.
Catch stubborn VPD-high while firmware RH/temp/time gates and short sealed caps protect condensation and heat.
Prevent humidity collapse between pulses during VENTILATE assist.
Start physical pulses promptly once humidity demand exists.
Permit an effective fog cadence during the fog window without relying on longer sealed cycles.
Reduce heat stress while moisture assist prevents VPD from being abandoned during venting.
Prevent planner-imposed budget exhaustion during the severe dry ramp.
Setpoints
Saturday May 23
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:27 | hyst 0.5 | Post-midnight reset: safe but humid house; suppress added mo |
| 04:30 | hyst 0.5 | Pre-dawn cold saturated window: keep moisture suppressed, ga |
| 08:30 | hyst 0.5 | Sunrise ramp still starts humid/cool; lower thresholds only |
| 10:30 | hyst 0.45 | Dry ramp begins; switch to guardrail-aware band-coupled mois |
| 12:30 | hyst 0.45 | Severe dry/solar peak: fully band-coupled VENTILATE moisture |
| 15:30 | hyst 0.45 | Peak dry continuation: hold aggressive moisture because RH i |
| 18:30 | hyst 0.45 | Dry evening is not recovered yet; keep band-coupled mister s |
| 21:30 | hyst 0.5 | Delayed evening unwind: outdoor air is still dry but solar i |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:27 | engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | Post-midnight reset: safe but humid house; suppress added mo |
| 04:30 | engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | Pre-dawn cold saturated window: keep moisture suppressed, ga |
| 08:30 | engage 1.9; all 2.2; pulse 60; gap 45; wt 2.2 | Sunrise ramp still starts humid/cool; lower thresholds only |
| 10:30 | engage 1.1; all 1.3; pulse 60; gap 25; wt 2.5 | Dry ramp begins; switch to guardrail-aware band-coupled mois |
| 12:30 | engage 1; all 1.2; pulse 60; gap 20; wt 2.8 | Severe dry/solar peak: fully band-coupled VENTILATE moisture |
| 15:30 | engage 1; all 1.2; pulse 60; gap 20; wt 2.8 | Peak dry continuation: hold aggressive moisture because RH i |
| 18:30 | engage 1.05; all 1.25; pulse 60; gap 25; wt 2.6 | Dry evening is not recovered yet; keep band-coupled mister s |
| 21:30 | engage 1.35; all 1.65; pulse 60; gap 40; wt 2.2 | Delayed evening unwind: outdoor air is still dry but solar i |
Sunday May 24
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | hyst 0.5 | Overnight reset and missed-SUNRISE fallback base: moisture m |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | engage 2.2; all 2.5; pulse 60; gap 55; wt 2 | Overnight reset and missed-SUNRISE fallback base: moisture m |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 00:27 | bias_cool | initial 4 |
| 00:27 | bias_heat | initial 1.5 |
| 00:27 | d_cool_stage_2 | initial 3 |
| 00:27 | d_heat_stage_2 | initial 3 |
| 00:27 | dwell_gate_ms | initial 300000 |
| 00:27 | enthalpy_close | initial 1 |
| 00:27 | enthalpy_open | initial -2 |
| 00:27 | fog_escalation_kpa | initial 0.5 |
| 00:27 | heat_hysteresis | initial 1.5 |
| 00:27 | min_fog_off_s | initial 180 |
| 00:27 | min_fog_on_s | initial 45 |
| 00:27 | min_heat_off_s | initial 180 |
| 00:27 | min_heat_on_s | initial 120 |
| 00:27 | min_vent_off_s | initial 60 |
| 00:27 | min_vent_on_s | initial 60 |
| 00:27 | mist_backoff_s | initial 1800 |
| 00:27 | mist_max_closed_vent_s | initial 120 |
| 00:27 | mist_thermal_relief_s | initial 90 |
| 00:27 | mister_all_delay_s | initial 600 |
| 00:27 | mister_engage_delay_s | initial 300 |
| 00:27 | mister_water_budget_gal | initial 300 |
| 00:27 | outdoor_staleness_max_s | initial 600 |
| 00:27 | sw_dwell_gate_enabled | initial 1 |
| 00:27 | sw_fog_closes_vent | initial 1 |
| 00:27 | sw_fsm_controller_enabled | initial 1 |
| 00:27 | sw_mister_closes_vent | initial 1 |
| 00:27 | sw_summer_vent_enabled | initial 1 |
| 00:27 | temp_hysteresis | initial 1.7 |
| 00:27 | vent_prefer_dp_delta_f | initial 5 |
| 00:27 | vent_prefer_temp_delta_f | initial 5 |
| 00:27 | vpd_watch_dwell_s | initial 60 |
| 04:30 | bias_heat | 1.5 → 2 |
| 08:30 | bias_cool | 4 → 3 |
| 08:30 | bias_heat | 2 → 0.8 |
| 08:30 | fog_escalation_kpa | 0.5 → 0.7 |
| 08:30 | min_fog_off_s | 180 → 120 |
| 08:30 | mist_backoff_s | 1800 → 1200 |
| 08:30 | mist_max_closed_vent_s | 120 → 150 |
| 08:30 | mister_all_delay_s | 600 → 240 |
| 08:30 | mister_engage_delay_s | 300 → 120 |
| 08:30 | mister_water_budget_gal | 300 → 600 |
| 08:30 | temp_hysteresis | 1.7 → 1.6 |
| 10:30 | bias_cool | 3 → 1 |
| 10:30 | bias_heat | 0.8 → 0 |
| 10:30 | d_cool_stage_2 | 3 → 2 |
| 10:30 | fog_escalation_kpa | 0.7 → 0.2 |
| 10:30 | heat_hysteresis | 1.5 → 1.3 |
| 10:30 | min_fog_off_s | 120 → 60 |
| 10:30 | mist_backoff_s | 1200 → 600 |
| 10:30 | mist_max_closed_vent_s | 150 → 180 |
| 10:30 | mister_all_delay_s | 240 → 60 |
| 10:30 | mister_engage_delay_s | 120 → 30 |
| 10:30 | temp_hysteresis | 1.6 → 1.5 |
| 10:30 | vpd_watch_dwell_s | 60 → 45 |
| 12:30 | bias_cool | 1 → 0 |
| 12:30 | fog_escalation_kpa | 0.2 → 0.15 |
| 12:30 | heat_hysteresis | 1.3 → 1.2 |
| 12:30 | min_fog_off_s | 60 → 45 |
| 12:30 | temp_hysteresis | 1.5 → 1.4 |
| 18:30 | bias_cool | 0 → 1 |
| 18:30 | fog_escalation_kpa | 0.15 → 0.25 |
| 18:30 | heat_hysteresis | 1.2 → 1.3 |
| 18:30 | min_fog_off_s | 45 → 60 |
| 18:30 | temp_hysteresis | 1.4 → 1.5 |
| 18:30 | vpd_watch_dwell_s | 45 → 60 |
| 21:30 | bias_cool | 1 → 3 |
| 21:30 | bias_heat | 0 → 0.5 |
| 21:30 | d_cool_stage_2 | 2 → 3 |
| 21:30 | fog_escalation_kpa | 0.25 → 0.7 |
| 21:30 | heat_hysteresis | 1.3 → 1.5 |
| 21:30 | min_fog_off_s | 60 → 120 |
| 21:30 | mist_backoff_s | 600 → 1200 |
| 21:30 | mist_max_closed_vent_s | 180 → 150 |
| 21:30 | mister_all_delay_s | 60 → 120 |
| 21:30 | mister_engage_delay_s | 30 → 60 |
| 21:30 | temp_hysteresis | 1.5 → 1.6 |
| 00:30 | bias_cool | 3 → 4 |
| 00:30 | bias_heat | 0.5 → 1.2 |
| 00:30 | fog_escalation_kpa | 0.7 → 0.9 |
| 00:30 | min_fog_off_s | 120 → 180 |
| 00:30 | mist_backoff_s | 1200 → 1800 |
| 00:30 | mist_max_closed_vent_s | 150 → 120 |
| 00:30 | mister_all_delay_s | 120 → 360 |
| 00:30 | mister_engage_delay_s | 60 → 180 |
| 00:30 | temp_hysteresis | 1.6 → 1.7 |
🌅 Morning Cycle (5:42 AM) — iris-20260523-0539
validated
1/10
bias_cool, bias_heat, d_cool_stage_2, d_heat_stage_2, dwell_gate_ms, enthalpy_close, enthalpy_open, fog_escalation_kpa ...
Reflection
Validating previous cycle: iris-20260522-2016
Previous hypothesis: SUNSET overnight plan for Friday 2026-05-22. Today scored 63.9, below the 7-day 70.6, with heat stress and VPD-high both meaningful; the reviewed sunrise plan was revised to 2/10 after anchor comparison because 55 VPD-high moisture-guardrail events showed it still fought the firmware guardrail. Tonight’s immediate challenge is cold saturated outdoor air, not dry stress: outdoor falls to 43F with RH near 90%, while current indoor dew margin is safe at 9.6F. I am suppressing mist/fog, keeping sealed-mist residence short, and using bias_cool +4 plus modest bias_heat to prevent heater-to-vent oscillation. A late-morning missed-SUNRISE fallback is included because Saturday becomes severe dry VPD pressure: RH 9-15%, solar near 900-1000 W/m2, and outdoor VPD near 2.5-2.9 kPa. Result: Revised after anchor comparison. The score must align downward because deterministic guardrail evidence is stronger than my initial plan-window climate impression: 1107 guardrail events, 24 held guardrail events, 17 dispatched guardrail events, 41 VPD-high guardrail events, and a guardrail penalty of 3 show the plan still fought or depended on dispatcher moisture policy during the dry-day window. Window scorecard was poor: score 50.6, both-axis compliance 50.1%, temp compliance 51.6%, VPD compliance 66.1%, VPD-high about 2.01h, and active evening alerts showed VENTILATE VPD-high with no moisture assist. Dew safety and low VPD-low stress were positives, but execution quality failed the policy contract and did not keep both axes in band. The next plan must stop unwinding while VPD-high/VENTILATE remains active and must include an observed-recovery shoulder before overnight suppression. Score: 1/10
Hypothesis
Testing: Test whether a fully band-coupled severe-day posture that starts before the VPD ramp and delays evening unwind until VPD weakens can reduce VPD-high guardrail events and keep dp-risk at 0h without creating overnight VPD-low. Expected outcome: Target both-axis compliance above 75% for the daylight-to-overnight window, VPD-high stress below 2.5h despite forecast VPD near 2.9 kPa, VPD-low below 1.0h, dew-risk 0h, and total utility cost below the 7-day average while accepting some structural heat/crop-band temperature stress.
Conditions
77.0°F
11.0%
932.0 W/m²
35.0%
Cool saturated dawn around 43-50F and 78-89% RH, indoor VPD 0.46 and dew margin 6.9F, followed by severe dry pressure from late morning through evening: RH 11-21%, VPD 2.1-2.9 kPa, solar roughly 600-930 W/m2 corrected. Forecast solar has overestimated recently but today’s clear morning and retrieved lessons support pre-positioning by 10:30 rather than waiting for stress.
Expected stress windows
High dawn thresholds, long delays, 55s gaps, fog_escalation 0.9, vpd_hysteresis 0.5, short sealed residence, bias_cool +4, and modest heat support while dew margin is safe but not wide.
Fully band-coupled moisture before and through the dry ramp: engage 1.0-1.05, all 1.2-1.25, 30/60s delays, 20s gaps, fog_escalation 0.15, min_fog_off 45 during the fog window, 180s sealed cap, 600s backoff, and no early evening unwind while forecast VPD remains >1.5 kPa.
Earlier ventilation posture with bias_cool 0, d_cool_stage_2 2, temp_hysteresis 1.3-1.4, and short sealed-mist residence so VENTILATE can preempt while fog/mist assist protects VPD.
Only after outdoor VPD falls toward 1.0 kPa or lower, return to high thresholds, long gaps/delays, fog_escalation 0.9, and bias_cool +4 with modest heat support.
Parameter rationale
Avoid VPD-high guardrail rewrites and keep VPD-high stress materially below Friday despite worse dry-air pressure.
Permit all-zone support during severe dry ventilation instead of waiting far above the active band.
Catch stubborn VPD-high during VENTILATE assist without extending sealed heat traps.
Prevent humidity collapse between pulses during VENTILATE assist.
Start physical pulses promptly once humidity demand exists.
Reduce time above the VPD band and avoid held guardrail events.
Permit effective fog cadence during the fog window while firmware RH/temp/time gates protect condensation.
Reduce heat-stress accumulation while moisture assist prevents VPD from being abandoned during venting.
Allow repeated bounded humidity recovery while preserving THERMAL_RELIEF/VENTILATE preemption.
Keep water budget from limiting VPD recovery while scoring whether water spend buys compliance.
Setpoints
Saturday May 23
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 05:45 | hyst 0.5 | Saturated dawn protection: current VPD 0.46, RH 79%, dew mar |
| 08:30 | hyst 0.5 | Morning ramp: outdoor VPD still low but solar rising. Begin |
| 10:30 | hyst 0.45 | Pre-ramp handoff: forecast VPD crosses 1 kPa by 11:00 and so |
| 12:00 | hyst 0.45 | Peak solar and dry-air onset: RH drops below 30%, VPD near 1 |
| 15:00 | hyst 0.45 | Severe dry peak: RH around 11%, VPD near 2.8, wind rising. K |
| 18:30 | hyst 0.45 | Late dry evening: fog window has closed but outdoor VPD rema |
| 21:30 | hyst 0.5 | Dry pressure declining but not gone: outdoor VPD still aroun |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 05:45 | engage 2.35; all 2.5; pulse 60; gap 55; wt 2 | Saturated dawn protection: current VPD 0.46, RH 79%, dew mar |
| 08:30 | engage 1.8; all 2.1; pulse 60; gap 40; wt 2.2 | Morning ramp: outdoor VPD still low but solar rising. Begin |
| 10:30 | engage 1.05; all 1.25; pulse 60; gap 20; wt 2.8 | Pre-ramp handoff: forecast VPD crosses 1 kPa by 11:00 and so |
| 12:00 | engage 1; all 1.2; pulse 60; gap 20; wt 3 | Peak solar and dry-air onset: RH drops below 30%, VPD near 1 |
| 15:00 | engage 1; all 1.2; pulse 60; gap 20; wt 3 | Severe dry peak: RH around 11%, VPD near 2.8, wind rising. K |
| 18:30 | engage 1; all 1.2; pulse 60; gap 20; wt 2.8 | Late dry evening: fog window has closed but outdoor VPD rema |
| 21:30 | engage 1.2; all 1.5; pulse 60; gap 30; wt 2.4 | Dry pressure declining but not gone: outdoor VPD still aroun |
Sunday May 24
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | hyst 0.5 | Overnight suppression after outdoor VPD falls near 1.0 and t |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:30 | engage 2.2; all 2.5; pulse 60; gap 55; wt 2 | Overnight suppression after outdoor VPD falls near 1.0 and t |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 05:45 | bias_cool | initial 4 |
| 05:45 | bias_heat | initial 1.8 |
| 05:45 | d_cool_stage_2 | initial 3 |
| 05:45 | d_heat_stage_2 | initial 3 |
| 05:45 | dwell_gate_ms | initial 300000 |
| 05:45 | enthalpy_close | initial 1 |
| 05:45 | enthalpy_open | initial -2 |
| 05:45 | fog_escalation_kpa | initial 0.5 |
| 05:45 | heat_hysteresis | initial 1.5 |
| 05:45 | min_fog_off_s | initial 180 |
| 05:45 | min_fog_on_s | initial 45 |
| 05:45 | min_heat_off_s | initial 180 |
| 05:45 | min_heat_on_s | initial 120 |
| 05:45 | min_vent_off_s | initial 60 |
| 05:45 | min_vent_on_s | initial 60 |
| 05:45 | mist_backoff_s | initial 1800 |
| 05:45 | mist_max_closed_vent_s | initial 120 |
| 05:45 | mist_thermal_relief_s | initial 90 |
| 05:45 | mister_all_delay_s | initial 600 |
| 05:45 | mister_engage_delay_s | initial 300 |
| 05:45 | mister_water_budget_gal | initial 300 |
| 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_fsm_controller_enabled | initial 1 |
| 05:45 | sw_mister_closes_vent | initial 1 |
| 05:45 | sw_summer_vent_enabled | initial 1 |
| 05:45 | temp_hysteresis | initial 1.7 |
| 05:45 | vent_prefer_dp_delta_f | initial 5 |
| 05:45 | vent_prefer_temp_delta_f | initial 5 |
| 05:45 | vpd_watch_dwell_s | initial 60 |
| 08:30 | bias_cool | 4 → 2.5 |
| 08:30 | bias_heat | 1.8 → 0.8 |
| 08:30 | min_fog_off_s | 180 → 120 |
| 08:30 | mist_backoff_s | 1800 → 1200 |
| 08:30 | mist_max_closed_vent_s | 120 → 150 |
| 08:30 | mister_all_delay_s | 600 → 240 |
| 08:30 | mister_engage_delay_s | 300 → 90 |
| 08:30 | temp_hysteresis | 1.7 → 1.6 |
| 10:30 | bias_cool | 2.5 → 1 |
| 10:30 | bias_heat | 0.8 → 0 |
| 10:30 | d_cool_stage_2 | 3 → 2 |
| 10:30 | d_heat_stage_2 | 3 → 4 |
| 10:30 | fog_escalation_kpa | 0.5 → 0.15 |
| 10:30 | heat_hysteresis | 1.5 → 1.2 |
| 10:30 | min_fog_off_s | 120 → 45 |
| 10:30 | mist_backoff_s | 1200 → 600 |
| 10:30 | mist_max_closed_vent_s | 150 → 180 |
| 10:30 | mister_all_delay_s | 240 → 60 |
| 10:30 | mister_engage_delay_s | 90 → 30 |
| 10:30 | temp_hysteresis | 1.6 → 1.4 |
| 10:30 | vpd_watch_dwell_s | 60 → 45 |
| 12:00 | bias_cool | 1 → 0 |
| 12:00 | d_heat_stage_2 | 4 → 5 |
| 12:00 | heat_hysteresis | 1.2 → 1 |
| 12:00 | temp_hysteresis | 1.4 → 1.3 |
| 18:30 | bias_cool | 0 → 1 |
| 18:30 | d_heat_stage_2 | 5 → 4 |
| 18:30 | fog_escalation_kpa | 0.15 → 0.25 |
| 18:30 | heat_hysteresis | 1 → 1.2 |
| 18:30 | min_fog_off_s | 45 → 60 |
| 18:30 | temp_hysteresis | 1.3 → 1.4 |
| 18:30 | vpd_watch_dwell_s | 45 → 60 |
| 21:30 | bias_cool | 1 → 2.5 |
| 21:30 | bias_heat | 0 → 0.5 |
| 21:30 | d_cool_stage_2 | 2 → 3 |
| 21:30 | d_heat_stage_2 | 4 → 3 |
| 21:30 | fog_escalation_kpa | 0.25 → 0.5 |
| 21:30 | heat_hysteresis | 1.2 → 1.4 |
| 21:30 | min_fog_off_s | 60 → 90 |
| 21:30 | mist_backoff_s | 600 → 900 |
| 21:30 | mist_max_closed_vent_s | 180 → 150 |
| 21:30 | mister_all_delay_s | 60 → 90 |
| 21:30 | mister_engage_delay_s | 30 → 45 |
| 21:30 | temp_hysteresis | 1.4 → 1.6 |
| 00:30 | bias_cool | 2.5 → 4 |
| 00:30 | bias_heat | 0.5 → 1.5 |
| 00:30 | heat_hysteresis | 1.4 → 1.5 |
| 00:30 | min_fog_off_s | 90 → 180 |
| 00:30 | mist_backoff_s | 900 → 1800 |
| 00:30 | mist_max_closed_vent_s | 150 → 120 |
| 00:30 | mister_all_delay_s | 90 → 600 |
| 00:30 | mister_engage_delay_s | 45 → 300 |
| 00:30 | temp_hysteresis | 1.6 → 1.7 |
🌆 Evening Cycle (8:20 PM) — iris-20260523-2017
validated
1/10
d_cool_stage_2, dwell_gate_ms, enthalpy_close, enthalpy_open, fog_escalation_kpa, heat_hysteresis, min_fog_off_s, min_fog_on_s ...
Reflection
Validating previous cycle: iris-20260523-0539
Previous hypothesis: SUNRISE plan for Saturday 2026-05-23. Friday finished below target at score 65.4, with both-axis compliance 67.9%; temp compliance 77.3% and VPD compliance 80.3%, so both axes missed but temperature was the tighter daily axis while VPD-high was also material. The evaluated Friday SUNRISE plan scored 2/10 versus anchor 4 because 55 VPD-high moisture-guardrail events showed the written values still fought dispatcher policy. Current house is IDLE, 65.6F, VPD 0.46, RH 79%, dew margin 6.9F, with heat1 active and no wetting/venting active. Today starts cool and saturated but turns severe-dry by midday: RH around 11%, VPD near 2.8-2.9 kPa, solar near 900+ W/m2 after bias correction… Result: Revised after anchor comparison. Although the live midnight snapshot is safe (IDLE, 64.0F, VPD 0.52 kPa, RH 74%, dew margin 8.3F, dp-risk 0h), the deterministic guardrail scorecard shows the written plan still failed the policy contract: 64 guardrail events, 61 held guardrail events, 3 dispatched events, all VPD-high guardrail-related, with a guardrail penalty of 3 and anchor_score 1. The recovery shoulder did not prevent continued VENTILATE VPD-high/no-moisture-assist alerts at 21:29 and 22:36, and the 22:45 unwind requested conservative engage/all values that the guardrail held to more band-coupled thresholds. Final 2026-05-23 score was 56.1 with 54.4% both-axis compliance; VPD-low dominated the daily rollup, but execution quality for this plan was poor because it repeated the central failure: unwinding before observed VPD recovery was stable. Final grade aligned to anchor: 1/10. Score: 1/10
New finding: When a SUNSET recovery shoulder is still producing VPD-high guardrail holds or VENTILATE no-moisture-assist alerts, do not unwind to conservative thresholds by clock time. Keep engage/all/fog-off/delays fully band-coupled until observed VPD is below band and stable; a safe midnight snapshot alone is not evidence the written plan complied. → Added to Lessons Learned
Hypothesis
Testing: Test whether an observed-recovery SUNSET shoulder before conservative overnight unwind prevents the repeated VPD-high guardrail failure while still keeping dp-risk at 0h. Expected outcome: By midnight: current VENTILATE/VPD-high alert should clear or materially reduce; overnight dp_risk_hours stays 0, VPD-low adds <0.7h, cold stress <1h, and if SUNRISE is missed the 09:30 fallback should enter the dry ramp without conservative moisture values that trigger guardrail holds.
Conditions
83.1°F
12.0%
921.0 W/m²
55.0%
Evening begins dry and still VPD-high indoors: greenhouse 67.8F, VPD 0.93, RH 63%, dew margin 13.2F, mode VENTILATE; outdoor 69.5F/31% RH. Overnight outdoor VPD falls from about 1.37 to 0.58 by 06:00, then Sunday ramps hard: 80-83F, RH 12-17%, VPD around 2.9-3.4 kPa raw / 3.1-3.6 corrected, and corrected solar around 850-920 W/m2. Today scored 60.0 with heat 6.67h and VPD-high 3.93h, so the overnight plan must recover current VPD-high before conservative suppression.
Expected stress windows
Keep band-coupled recovery while VENTILATE/VPD-high is still active and dew margin is healthy: engage 0.87, all 1.07, 30/60s delays, 20s gaps, fog_escalation 0.20 even though fog is window-blocked.
After the recovery shoulder, unwind gradually to engage 1.55, all 1.9, 50s gaps, longer delays, fog_escalation 0.5, vpd_hysteresis 0.5, and short 120s sealed residence.
Missed-SUNRISE fallback returns directly to guardrail-aligned band-coupled moisture: engage 0.87, all 1.07, 30/60s delays, 20s gaps, fog_escalation 0.15, min_fog_off 45, 180s sealed cap, and 600s backoff.
Do not extend sealed mist; use d_cool_stage_2 2 and temp_hysteresis 1.3 in the missed-SUNRISE fallback while moisture assist protects VPD during VENTILATE.
Parameter rationale
Avoid a repeat of VPD-high guardrail holds during the still-active evening stress window.
Allow all-zone support during evening recovery and tomorrow's dry ramp instead of waiting above the crop band.
Reduce current VPD-high without creating overnight VPD-low carryover.
Use fog's 7x effectiveness during the next dry ramp while firmware RH/temp/time gates protect condensation.
Avoid dispatcher rewrites and permit effective fog cadence during the missed-SUNRISE fallback.
Start physical pulses promptly once humidity demand exists.
Reduce time above the VPD band during the next dry ramp.
Prevent accidental long sealed humidity cycles overnight while preserving a 180s dry-ramp cap tomorrow.
Reduce overnight mist/dehum oscillation and keep VPD-low under 0.7h.
Limit cold/heat oscillation overnight, then tighten to 1.3 for Sunday's dry ramp.
Setpoints
Saturday May 23
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 20:25 | hyst 0.45 | evening_recovery_shoulder: VENTILATE/VPD-high is still activ |
| 22:45 | hyst 0.45 | late_evening_gradual_unwind: outdoor VPD should be falling b |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 20:25 | engage 0.87; all 1.07; pulse 60; gap 20; wt 2.8 | evening_recovery_shoulder: VENTILATE/VPD-high is still activ |
| 22:45 | engage 1.05; all 1.25; pulse 60; gap 30; wt 2.5 | late_evening_gradual_unwind: outdoor VPD should be falling b |
Sunday May 24
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:45 | hyst 0.5 | midnight_posture: expected outdoor VPD around 0.82 and no so |
| 05:30 | hyst 0.5 | pre_dawn_guard: outdoor VPD bottoms near 0.58 but a clear dr |
| 09:30 | hyst 0.45 | missed_sunrise_dry_ramp_fallback: if no SUNRISE plan arrives |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:45 | engage 1.55; all 1.9; pulse 60; gap 50; wt 2 | midnight_posture: expected outdoor VPD around 0.82 and no so |
| 05:30 | engage 1.3; all 1.55; pulse 60; gap 45; wt 2.2 | pre_dawn_guard: outdoor VPD bottoms near 0.58 but a clear dr |
| 09:30 | engage 0.87; all 1.07; pulse 60; gap 20; wt 2.8 | missed_sunrise_dry_ramp_fallback: if no SUNRISE plan arrives |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 20:25 | d_cool_stage_2 | initial 2 |
| 20:25 | dwell_gate_ms | initial 300000 |
| 20:25 | enthalpy_close | initial 1 |
| 20:25 | enthalpy_open | initial -2 |
| 20:25 | fog_escalation_kpa | initial 0.2 |
| 20:25 | heat_hysteresis | initial 1.2 |
| 20:25 | min_fog_off_s | initial 60 |
| 20:25 | min_fog_on_s | initial 45 |
| 20:25 | mist_backoff_s | initial 600 |
| 20:25 | mist_max_closed_vent_s | initial 180 |
| 20:25 | mist_thermal_relief_s | initial 90 |
| 20:25 | mister_all_delay_s | initial 60 |
| 20:25 | mister_engage_delay_s | initial 30 |
| 20:25 | mister_water_budget_gal | initial 300 |
| 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 1 |
| 20:25 | sw_summer_vent_enabled | initial 1 |
| 20:25 | temp_hysteresis | initial 1.4 |
| 20:25 | vent_prefer_dp_delta_f | initial 5 |
| 20:25 | vent_prefer_temp_delta_f | initial 5 |
| 20:25 | vpd_watch_dwell_s | initial 60 |
| 22:45 | d_cool_stage_2 | 2 → 2.5 |
| 22:45 | fog_escalation_kpa | 0.2 → 0.3 |
| 22:45 | mist_max_closed_vent_s | 180 → 150 |
| 22:45 | mister_all_delay_s | 60 → 90 |
| 22:45 | mister_engage_delay_s | 30 → 45 |
| 22:45 | temp_hysteresis | 1.4 → 1.5 |
| 00:45 | d_cool_stage_2 | 2.5 → 3 |
| 00:45 | fog_escalation_kpa | 0.3 → 0.5 |
| 00:45 | heat_hysteresis | 1.2 → 1.3 |
| 00:45 | min_fog_off_s | 60 → 120 |
| 00:45 | mist_backoff_s | 600 → 900 |
| 00:45 | mist_max_closed_vent_s | 150 → 120 |
| 00:45 | mister_all_delay_s | 90 → 240 |
| 00:45 | mister_engage_delay_s | 45 → 120 |
| 00:45 | temp_hysteresis | 1.5 → 1.7 |
| 00:45 | vpd_watch_dwell_s | 60 → 90 |
| 05:30 | d_cool_stage_2 | 3 → 2.5 |
| 05:30 | fog_escalation_kpa | 0.5 → 0.35 |
| 05:30 | heat_hysteresis | 1.3 → 1.2 |
| 05:30 | min_fog_off_s | 120 → 90 |
| 05:30 | mist_max_closed_vent_s | 120 → 150 |
| 05:30 | mister_all_delay_s | 240 → 120 |
| 05:30 | mister_engage_delay_s | 120 → 60 |
| 05:30 | temp_hysteresis | 1.7 → 1.5 |
| 05:30 | vpd_watch_dwell_s | 90 → 60 |
| 09:30 | d_cool_stage_2 | 2.5 → 2 |
| 09:30 | fog_escalation_kpa | 0.35 → 0.15 |
| 09:30 | heat_hysteresis | 1.2 → 1 |
| 09:30 | min_fog_off_s | 90 → 45 |
| 09:30 | mist_backoff_s | 900 → 600 |
| 09:30 | mist_max_closed_vent_s | 150 → 180 |
| 09:30 | mister_all_delay_s | 120 → 60 |
| 09:30 | mister_engage_delay_s | 60 → 30 |
| 09:30 | temp_hysteresis | 1.5 → 1.3 |
| 09:30 | vpd_watch_dwell_s | 60 → 45 |
End-of-Day Summary
Climate
61.8–81.4°F; avg 69.8°F
0.33–1.69 kPa; avg 0.80 kPa
51.6–83.3%
Stress Hours
- Heat stress (>85°F): 8.8h
- VPD stress (>2.0 kPa): 6.3h
- Cold stress (<55°F): 0.8h
Economics
USD 3.33
USD 1.07
USD 0.930
USD 5.33
Equipment Runtimes
| Equipment | Runtime | Reading |
|---|---|---|
| Fan 1 | 419 min | Primary exhaust runtime. |
| Fan 2 | 399 min | Secondary exhaust runtime. |
| Vent | 608 min | Intake vent runtime. |
| Fog | 118 min | Fogger runtime. |
| Heat 1 electric | 622 min | Electric heater runtime. |
| Heat 2 gas | 103 min | Gas heater runtime. |
| Grow lights | 864 min | Supplemental lighting runtime. |
| Mister south | 0.80h | South mister runtime. |
| Mister west | 0.06h | West mister runtime. |
| Mister center | 2.00h | Center mister runtime. |
Water
- Total: 192 gal
- Mister: 90 gal
Crop Health (Gemini Vision)
| Crop | Zone | Health | Observations | Note |
|---|---|---|---|---|
| Canna Lilies | south | 73% | 4 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
| Vanda Orchids | center | 80% | 7 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
| lettuce | east | 78% | 4 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
| pepper | east | 70% | 4 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
| strawberry | east | 73% | 4 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
Vision observation notes
Large potted plant in the center of the floor looks vibrant and healthy.
Hanging basket visible, plants appear stable but difficult to assess fine details in IR light.
Seedlings appear healthy and are establishing well in the shelf trays.
Seedlings appear healthy, but difficult to assess fully in IR light.
Early stage growth in the hydroponic system, no obvious signs of stress.
Hourly Pattern
| Hour | Temperature | VPD | RH |
|---|---|---|---|
| 12:00 | 77.3°F | 1.12 kPa | 65.9% |
| 13:00 | 78.0°F | 1.30 kPa | 61.7% |
| 14:00 | 79.1°F | 1.34 kPa | 61.6% |
| 15:00 | 78.6°F | 1.33 kPa | 60.9% |
| 16:00 | 75.0°F | 1.14 kPa | 62.2% |
| 17:00 | 72.2°F | 1.03 kPa | 62.3% |
| 18:00 | 69.9°F | 0.96 kPa | 62.0% |
| 19:00 | 67.4°F | 0.77 kPa | 67.1% |
| 20:00 | 65.7°F | 0.63 kPa | 71.4% |
| 21:00 | 64.9°F | 0.63 kPa | 70.8% |
| 22:00 | 63.1°F | 0.51 kPa | 74.6% |
| 23:00 | 63.1°F | 0.37 kPa | 81.5% |
| 00:00 | 63.1°F | 0.38 kPa | 81.1% |
| 01:00 | 63.7°F | 0.39 kPa | 80.6% |
| 02:00 | 63.1°F | 0.38 kPa | 80.7% |
| 03:00 | 63.3°F | 0.41 kPa | 79.6% |
| 04:00 | 63.5°F | 0.42 kPa | 79.2% |
| 05:00 | 64.0°F | 0.45 kPa | 78.2% |
| 06:00 | 65.4°F | 0.53 kPa | 75.7% |
| 07:00 | 68.2°F | 0.64 kPa | 73.1% |
| 08:00 | 70.4°F | 0.74 kPa | 71.2% |
| 09:00 | 72.9°F | 0.83 kPa | 70.6% |
| 10:00 | 72.9°F | 0.88 kPa | 68.9% |
| 11:00 | 75.9°F | 0.82 kPa | 74.5% |
7-Day Stress Context
| Date | Heat | VPD high | Cold |
|---|---|---|---|
| 2026-05-17 | 3.1h | 3.2h | 0.4h |
| 2026-05-18 | 0.5h | 0.0h | 2.1h |
| 2026-05-19 | 0.4h | 0.1h | 2.0h |
| 2026-05-20 | 1.9h | 0.6h | 1.2h |
| 2026-05-21 | 2.7h | 2.1h | 1.0h |
| 2026-05-22 | 4.3h | 3.7h | 1.1h |
| 2026-05-23 | 8.9h | 6.4h | 0.8h |