May 22, 2026

Generated lab notebook from daily_summary, plan_journal, plan_delivery_log, and setpoint audit data. It is intentionally chronological and may include in-progress cycles before validation.

Planner Execution Ledger

Planner checkpoints can acknowledge that the active plan is still suitable without writing a new public plan ID. Those no-change decisions are part of the audit trail.

Delivery events

8

Plan writes

3

No-change acknowledgements

5

Pending

0

EventDeliveredTypeStatusNote
End-of-day review and reset00:15MIDNIGHTplan_writtenWrote public plan iris-20260522-0015. Resolved 00:18 MDT.
Morning planning cycle05:40SUNRISEplan_writtenWrote public plan iris-20260522-0540. Resolved 05:43 MDT.
Solar peak planning checkpoint12:58SOLAR_MAXackedAcknowledged: SOLAR_MAX no tunable change. Live solar is high at 1068 W/m2 and above bias-corrected forecast, but the active SUNRISE plan already covers the dry afternoon with guardrail-aware band-coupled moisture: fog_escalation_kpa 0.20, mister_engage_kpa 1.20 now moving to 1.10 at 14:30, mister_all_kpa 1.45 now moving to 1.30, short delays/gaps, and healthy dew margin 14.4F. Greenhouse VPD is 1.20 against vpd_high 1.30; only east is locally high at 1... Resolved 12:58 MDT.
Peak Stress14:58TRANSITIONackedAcknowledged: Peak-stress transition checked. Current house is in VENTILATE with vent and both fans active; avg VPD 1.25 is only slightly above active vpd_high 1.23, east 1.37 while south/west are below/near targets, dew margin is safe at 13.1F, and the active SUNRISE plan is already in guardrail-aware peak-dry posture (mister_engage_kpa 1.05, mister_all_kpa 1.25, gap 25s, fog_escalation_kpa 0.20). Retrieved comparable dry-solar plans support this posture; no concrete signal warrants further tunable changes. Resolved 14:58 MDT.
Forecast deviation19:10FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION reviewed at 19:10 MDT: observed VPD is lower/more humid than forecast (live greenhouse 0.85 kPa, 63% RH, 67.3F; outdoor 60.7F/45% RH; solar essentially gone at 13 W/m2). Equipment state is normal IDLE with heat1 on, vent/fans/fog/misters off. Diagnosis: forecast/moisture miss in the same direction as recent VPD forecast overshoot bias, not an equipment fault or new hot-dry regime. Dew margin is safe at 12... Resolved 19:10 MDT.
Decline19:16TRANSITIONackedAcknowledged: Decline checkpoint no-change: current house is IDLE at 67.4F, VPD 0.78 kPa, RH 67%, dew margin 11.5F, with all moisture/vent/fog outputs off and only heat1 on. East remains locally dry at 1.10 kPa and recent guardrail evidence shows VPD-high is not fully recovered, so an early unwind would risk cutting support before recovery. Existing plan already carries the dry-evening posture until 22:30, then unwinds to conservative overnight thresholds; no concrete signal warrants a one-shot tunable change. Resolved 19:17 MDT.
Evening planning cycle20:16SUNSETplan_writtenWrote public plan iris-20260522-2016. Resolved 20:23 MDT.
Forecast deviation20:57FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed: wind and gust forecasts were too high, but current greenhouse is stable in IDLE at 66.1F, VPD 0.55 kPa, RH 76%, dew margin 8.0F, outdoor 54.4F/66% RH, solar 0, and all climate relays are off. No heat, VPD, dew-risk, or equipment signal warrants a tunable change; treating this as a wind forecast error rather than a regime shift. Resolved 20:58 MDT.

🌅 Morning Cycle (12:18 AM) — iris-20260522-0015

Status

validated

Outcome score

6/10

Changed parameters

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-20260521-0541

Previous hypothesis: SUNRISE plan for Thursday 2026-05-21. Yesterday scored 71.9 with 76.9% both-axis compliance; VPD-low was the largest stress at 2.53h, while temp compliance was only slightly better than VPD compliance. The just-evaluated sunset plan scored 8/10, matching anchor 8: the cold saturated overnight posture avoided VPD stress and dew risk, with remaining loss mostly structural temperature-band alignment. Today starts cold and saturated around 41F/96% RH, indoor VPD 0.46 and dew margin 7.4F, but the forecast turns into a high-solar dry afternoon: 64-72F, RH 24-34%, raw VPD 1.5-2.0 kPa, solar 800+ W/m2 around midday. The plan keeps dawn moisture suppressed, then moves earlier than yesterday into guardrail-aware band-coupled moisture so the dispatcher does not need to clamp conservative values during VPD-high VENTILATE. Evening unwinds before RH rebounds. Result: Window scorecard while this midnight reset governed: cost about USD 0.226, both-axis compliance 64.4%, temp compliance 74.6%, VPD compliance 77.4%, heat stress 0.90h, cold stress 0.23h, VPD-high 0.79h, VPD-low 0.22h, total stress 1.30h, planner score 63.9. The plan correctly protected the cold saturated pre-dawn period with low VPD-low and dew-risk at 0h, then handed off to daytime dry-ramp support; remaining misses were mostly heat/VPD pressure and crop-band narrowness rather than condensation or over-misting. Score: 6/10

New finding: Cold saturated midnight/pre-dawn resets can safely use high moisture thresholds, conservative fog, short sealed residence, dwell gate ON, bias_cool +4, and modest heat support; expect some structural temp-band loss, but VPD-low and dew risk should stay low. → Added to Lessons Learned

Hypothesis

Testing: Test a two-stage Friday handoff: guarded humid/cold morning, then guardrail-aligned peak moisture instead of values the dispatcher must clamp. Expected outcome: Friday target: dp_risk_hours 0, VPD-low under 1h, VPD-high under 1.5h, cold stress near or below 1h, and fewer VPD-high moisture guardrail events than the evaluated SUNRISE plan.

Conditions

Outdoor peak

68.0°F

RH minimum

21.0%

Solar peak

803.0 W/m²

Cloud average

72.0%

Cold saturated pre-dawn around 42-48F and 77-84% RH, current indoor dew margin 5.7F, then dry afternoon ramp to RH 21-31%, outdoor VPD 1.4-1.8 kPa, and solar 700-800+ W/m2 with forecast calibration allowing higher live solar.

Expected stress windows

vpd_lowmedium · 2026-05-22T00:20:00-06:00 to 2026-05-22T10:30:00-06:00

High mist thresholds, 55-60s gaps, long delays, fog_escalation 0.9-1.0, vpd_hysteresis 0.5, and 120s sealed cap while dew margin is only 5-6F.

coldmedium · 2026-05-22T02:00:00-06:00 to 2026-05-22T08:30:00-06:00

bias_heat 1.8-2.0, d_heat_stage_2 3, heat_hysteresis 1.5, dwell gate ON, and bias_cool +4 to prevent heater-to-vent dumps.

vpd_highmedium · 2026-05-22T13:00:00-06:00 to 2026-05-22T19:30:00-06:00

Guardrail-aware moisture: engage 1.10-1.30, all 1.30-1.60, 45/90s peak delays, 25-35s gaps, fog_escalation 0.25-0.45, min_fog_off 60-90, bounded 150-180s sealed cap.

vpd_lowmedium · 2026-05-22T20:30:00-06:00 to 2026-05-23T07:00:00-06:00

Evening unwind to engage 2.35, all 2.5, 60s gaps, fog_escalation 1.0, long delays, short sealed residence before RH rebounds.

Parameter rationale

mister_engage_kpa2.35 → 2.45; 00:20-08:30 cold saturated air, current VPD 0.35 and dew margin 5.7F.

Avoid pre-dawn mist/fog and keep dp-risk at 0h while VPD-low stays bounded.

bias_heat1.5 → 2.0; Outdoor 42-48F pre-dawn with heat1 and heat2 already active.

Limit cold score loss without raising crop bands or continuous overheating.

mister_engage_kpa2.2 → 1.1; 13:00-16:00 dry solar ramp, RH 23-38%, VPD 1.1-1.8 kPa, and prior plan anchor penalty from guardrail events.

Reduce VPD-high to under 1.5h and avoid repeated dispatcher moisture guardrail rewrites.

mister_all_kpa2.5 → 1.3; Recent guardrail clamps pushed all-zone escalation toward 1.3 during live VPD-high stress.

Allow all-zone assist during the dry peak instead of waiting far above the active band.

fog_escalation_kpa1.0 → 0.25; Fog is blocked/unneeded overnight but useful after 13:00 if VPD remains high with healthy dew margin.

Catch stubborn VPD-high during VENTILATE assist without overnight fog or condensation risk.

mister_pulse_gap_s60.0 → 25.0; Afternoon RH in the low 20s to low 30s needs faster evaporation support; saturated dawn needs 55-60s gaps.

Improve VPD recovery in the dry window while evening unwind prevents carryover.

bias_cool4.0 → 2.0; Midday solar and dry air create heat/VPD pressure; cooling should not be delayed as much as overnight.

Reduce heat-stress risk while retaining enough hysteresis to avoid chatter.

Setpoints

Friday May 22

Primary crop-band changes:

TimeValuesNote
00:20hyst 0.5Post-midnight cold saturated reset: suppress moisture, prote
05:30hyst 0.5Pre-dawn cold floor: keep moisture suppressed and gas stagin
08:30hyst 0.5Guarded sunrise ramp: indoor air starts humid and forecast r
11:30hyst 0.5Early-day handoff: forecast VPD approaches the band but humi
13:30hyst 0.5Peak dry solar posture: use guardrail-aware band-coupled moi
17:30hyst 0.5Late dry-window shoulder: keep moderate moisture while outdo
20:30hyst 0.5Evening saturated-air unwind: RH rebounds and solar is gone,

Tactical tunable changes:

TimeValuesNote
00:20d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Post-midnight cold saturated reset: suppress moisture, prote
05:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Pre-dawn cold floor: keep moisture suppressed and gas stagin
08:30d_cool 3; engage 2.2; all 2.5; pulse 60; gap 55; wt 2Guarded sunrise ramp: indoor air starts humid and forecast r
11:30d_cool 3; engage 1.45; all 1.65; pulse 60; gap 35; wt 2.2Early-day handoff: forecast VPD approaches the band but humi
13:30d_cool 3; engage 1.1; all 1.3; pulse 60; gap 25; wt 2.4Peak dry solar posture: use guardrail-aware band-coupled moi
17:30d_cool 3; engage 1.3; all 1.6; pulse 60; gap 35; wt 2.2Late dry-window shoulder: keep moderate moisture while outdo
20:30d_cool 3; engage 2.35; all 2.5; pulse 60; gap 60; wt 2Evening saturated-air unwind: RH rebounds and solar is gone,

Saturday May 23

Primary crop-band changes:

TimeValuesNote
10:30hyst 0.5Missed-SUNRISE fallback for Saturday's stronger dry ramp: if

Tactical tunable changes:

TimeValuesNote
10:30d_cool 3; engage 1.1; all 1.3; pulse 60; gap 20; wt 2.5Missed-SUNRISE fallback for Saturday's stronger dry ramp: if

Changed secondary parameters:

TimeParameterChange
00:20bias_coolinitial 4
00:20bias_heatinitial 1.8
00:20d_heat_stage_2initial 3
00:20dwell_gate_msinitial 300000
00:20enthalpy_closeinitial 1
00:20enthalpy_openinitial -2
00:20fog_escalation_kpainitial 0.5
00:20heat_hysteresisinitial 1.5
00:20min_fog_off_sinitial 180
00:20min_fog_on_sinitial 45
00:20min_heat_off_sinitial 180
00:20min_heat_on_sinitial 120
00:20min_vent_off_sinitial 60
00:20min_vent_on_sinitial 60
00:20mist_backoff_sinitial 1200
00:20mist_max_closed_vent_sinitial 120
00:20mist_thermal_relief_sinitial 90
00:20mister_all_delay_sinitial 600
00:20mister_engage_delay_sinitial 300
00:20mister_water_budget_galinitial 300
00:20outdoor_staleness_max_sinitial 600
00:20sw_dwell_gate_enabledinitial 1
00:20sw_fog_closes_ventinitial 1
00:20sw_fsm_controller_enabledinitial 1
00:20sw_mister_closes_ventinitial 1
00:20sw_summer_vent_enabledinitial 1
00:20temp_hysteresisinitial 1.7
00:20vent_prefer_dp_delta_finitial 5
00:20vent_prefer_temp_delta_finitial 5
00:20vpd_watch_dwell_sinitial 60
05:30bias_heat1.8 → 2
08:30bias_cool4 → 3.5
08:30bias_heat2 → 1.2
08:30fog_escalation_kpa0.5 → 0.9
08:30min_fog_off_s180 → 150
08:30mister_all_delay_s600 → 480
08:30mister_engage_delay_s300 → 240
08:30mister_water_budget_gal300 → 600
11:30bias_cool3.5 → 3
11:30bias_heat1.2 → 0.2
11:30fog_escalation_kpa0.9 → 0.45
11:30min_fog_off_s150 → 90
11:30mist_backoff_s1200 → 900
11:30mist_max_closed_vent_s120 → 150
11:30mister_all_delay_s480 → 120
11:30mister_engage_delay_s240 → 60
13:30bias_cool3 → 2
13:30bias_heat0.2 → 0
13:30fog_escalation_kpa0.45 → 0.25
13:30min_fog_off_s90 → 60
13:30mist_backoff_s900 → 600
13:30mist_max_closed_vent_s150 → 180
13:30mister_all_delay_s120 → 90
13:30mister_engage_delay_s60 → 45
17:30bias_cool2 → 3.2
17:30fog_escalation_kpa0.25 → 0.45
17:30min_fog_off_s60 → 90
17:30mist_backoff_s600 → 900
17:30mist_max_closed_vent_s180 → 150
17:30mister_all_delay_s90 → 150
17:30mister_engage_delay_s45 → 60
20:30bias_cool3.2 → 4
20:30bias_heat0 → 1.2
20:30fog_escalation_kpa0.45 → 1
20:30min_fog_off_s90 → 180
20:30mist_backoff_s900 → 1200
20:30mist_max_closed_vent_s150 → 120
20:30mister_all_delay_s150 → 600
20:30mister_engage_delay_s60 → 300
10:30bias_cool4 → 1.5
10:30bias_heat1.2 → 0
10:30fog_escalation_kpa1 → 0.2
10:30min_fog_off_s180 → 60
10:30mist_backoff_s1200 → 600
10:30mist_max_closed_vent_s120 → 180
10:30mister_all_delay_s600 → 90
10:30mister_engage_delay_s300 → 45

🌅 Morning Cycle (5:43 AM) — iris-20260522-0540

Status

validated

Outcome score

2/10

Changed parameters

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-20260521-2016

Previous hypothesis: SUNSET overnight plan for Thursday 2026-05-21. Today improved versus the 7-day trend but still missed target: score 71.9, both-axis compliance 74.8% versus 70.7% 7-day, temp 83.1%, VPD 85.4%, total stress 6.37h. Heat stress was the largest single stress at 2.55h, followed by VPD-high 2.10h; VPD-low and cold were contained at 0.85h and 0.87h. Cost was USD 5.92, better than the 7-day USD 7.39 average, driven mostly by electric/grow-light/fog modeled cost and gas heat; water and misting were far below the 7-day average. The evaluated midnight plan scored 7/10, matching anchor 7. Current house is IDLE at about 66.5F, VPD 0.66 kPa, RH 70%, with safe 9.9F dew margin. Tonight turns cold and saturated outside, 51F falling to 41F with outdoor VPD 0.07-0… Result: SUNRISE-to-sunset window scorecard: both-axis compliance 70.3%, temp compliance 78.2%, VPD compliance 83.5%, total stress 3.86h with heat 2.26h, cold 0.58h, VPD-high 1.89h, VPD-low 0.50h, cost about USD 0.61. The free-text goal partly worked: Friday moisture support kept VPD-high below the daily 3.7h total and dew safety held at dp-risk 0h. But the structured hypothesis expected guardrail-aware band-coupled support to avoid dispatcher rewrites; actual plan/audit evidence showed 55 VPD-high moisture-guardrail events including held and dispatched interventions. Actual weather was cooler and much more humid than the severe forecast proxy, but solar exceeded forecast. Grade aligned low because execution quality still fought the dispatcher/firmware moisture policy despite acceptable window scorecard. Score: 2/10

New finding: On cool saturated dawns followed by solar near or above 900 W/m2 and RH near or below 20%, guardrail-aware moisture must be fully band-coupled during live VPD-high VENTILATE: engage near vpd_high+0.05, all-zone near max(1.0,vpd_high+0.25), fog_escalation 0.15-0.20, short delays, and delay evening unwind until observed VPD recovery rather than clock time alone. → Added to Lessons Learned

Hypothesis

Testing: Live-confirmed dry-ramp handoff: keep dawn conservative, then use guardrail-aligned band-coupled moisture from the first observed/forecast dry ramp through the late dry evening instead of unwinding at sunset by clock alone. Expected outcome: Target Friday score >78 with both-axis compliance >82%, VPD-high stress <1.5h, VPD-low stress <0.5h, dp-risk 0h, and cost below the 7-day average; if Saturday fallback is reached, keep severe-ramp VPD-high materially lower than a conservative posture without extending sealed heat traps.

Conditions

Outdoor peak

79.0°F

RH minimum

9.0%

Solar peak

897.0 W/m²

Cloud average

65.0%

Friday starts cold/saturated near 41F/85% RH with indoor VPD 0.56 and 8.6F dew margin, then dries to RH 21-28%, VPD 1.5-1.8 kPa, and solar near 817 W/m2. Saturday fallback is more severe: RH near 9%, VPD near 3.0 kPa, solar around 900 W/m2. Forecast solar has recently overestimated reality, so the plan waits through dawn but uses band-coupled values once the dry ramp is plausible.

Expected stress windows

vpd_lowlow · 2026-05-22T05:45:00-06:00 to 2026-05-22T10:30:00-06:00

Keep mist/fog suppressed while indoor VPD is 0.56 and outside remains cold/high-RH: engage 2.35 then 1.75, long-ish delays, 45-60s gaps, fog_escalation 0.8-1.0, short sealed cap.

vpd_highmedium · 2026-05-22T12:30:00-06:00 to 2026-05-22T21:30:00-06:00

Use guardrail-aware band-coupled moisture: engage 1.05-1.20, all 1.25-1.45, 30-45s engage delays, 60-90s all delays, 25-30s gaps, fog_escalation 0.20-0.35 while the fog window allows it, and 150-180s sealed cap.

vpd_lowmedium · 2026-05-22T22:30:00-06:00 to 2026-05-23T08:30:00-06:00

After RH rebounds, unwind to engage 2.35, all 2.5, 60s gaps, fog_escalation 1.0, long delays, bias_cool +4, modest bias_heat, and 120s sealed cap.

vpd_highhigh · 2026-05-23T11:30:00-06:00 to 2026-05-23T20:00:00-06:00

Missed-cycle fallback for severe Saturday: engage 1.00, all 1.20-1.25, 30/60s delays, 20s gaps, fog_escalation 0.15, min_fog_off 45, 180s sealed cap, and 600s backoff so VENTILATE/THERMAL_RELIEF are not fought.

Parameter rationale

mister_engage_kpa2.45 → 1.05; Friday 14:00-20:00 RH 21-33%, VPD 1.32-1.76 kPa, solar up to 817 W/m2; recent clamps pushed conservative requests down near 1.06.

Avoid dispatcher rewrites and keep Friday VPD-high under about 1.5h while not misting the cold saturated dawn.

mister_all_kpa2.5 → 1.25; Recent vpd_high_moisture_guardrail clamped all-zone threshold toward about 1.32 during live dry ventilation.

Permit all-zone support during dry VENTILATE assist instead of waiting far above the active VPD band.

fog_escalation_kpa1.0 → 0.2; Friday dry window overlaps the 07:00-17:00 fog window through the peak, and fog is 7x more effective than misters when VPD remains stubborn.

Catch stubborn VPD-high without using fog during dawn or after the firmware fog window.

mister_pulse_gap_s60.0 → 25.0; Afternoon RH falls below 30% with VPD above 1.5 kPa; lesson 104 and guardrail audit favor faster evaporation support once the ramp appears.

Improve VPD recovery during dry ventilation while later unwind prevents VPD-low carryover.

mister_engage_delay_s300.0 → 30.0; Long delays were repeatedly shortened by the moisture guardrail during VPD-high stress.

Start physical pulses promptly once humidity demand exists in dry ventilation.

mister_all_delay_s600.0 → 60.0; Dry afternoon VPD can climb quickly after 13:00; all-zone escalation should not wait 5-10 minutes once above band.

Reduce time above the VPD band and avoid held guardrail events.

min_fog_off_s180.0 → 60.0; Guardrail audit shortened fog-off dwell during live VPD-high; Friday has healthy dew margin and low outdoor RH at peak.

Allow effective fog cadence while firmware RH/temp/time gates protect condensation.

bias_heat2.0 → 0.0; Outdoor warms into the 60s by afternoon; heat support should taper with solar and avoid heat/vent churn.

Limit morning cold-band loss without adding gas/electric heat through the dry peak.

bias_cool4.0 → 2.0; Dawn heaters justify +4 anti-whipsaw, but dry solar pressure needs earlier ventilation after midday.

Reduce heat-stress accumulation while keeping overnight heater-to-vent oscillation suppressed.

mist_max_closed_vent_s120.0 → 180.0; Dry peak needs bounded sealed recovery, but temperatures are not extreme Friday and THERMAL_RELIEF preempts after the cap.

Improve VPD-high recovery without creating a thermal trap.

Setpoints

Friday May 22

Primary crop-band changes:

TimeValuesNote
05:45hyst 0.5Cold saturated dawn: preserve dew safety and avoid VPD-low w
09:30hyst 0.5Morning ramp: solar is rising but forecast VPD is still mode
12:30hyst 0.5Dry entry: outdoor VPD crosses roughly 0.8-1.1 kPa and RH fa
14:30hyst 0.5Peak Friday dry/solar window: use guardrail-aware band-coupl
18:30hyst 0.5Late dry evening: solar is declining but outside remains ver
22:30hyst 0.5Night humidity recovery: forecast RH rebounds near 60% and t

Tactical tunable changes:

TimeValuesNote
05:45d_cool 3; engage 2.35; all 2.5; pulse 60; gap 60; wt 2Cold saturated dawn: preserve dew safety and avoid VPD-low w
09:30d_cool 3; engage 1.75; all 2.1; pulse 60; gap 45; wt 2Morning ramp: solar is rising but forecast VPD is still mode
12:30d_cool 3; engage 1.2; all 1.45; pulse 60; gap 30; wt 2.3Dry entry: outdoor VPD crosses roughly 0.8-1.1 kPa and RH fa
14:30d_cool 3; engage 1.05; all 1.25; pulse 60; gap 25; wt 2.5Peak Friday dry/solar window: use guardrail-aware band-coupl
18:30d_cool 3; engage 1.2; all 1.45; pulse 60; gap 30; wt 2.3Late dry evening: solar is declining but outside remains ver
22:30d_cool 3; engage 2.35; all 2.5; pulse 60; gap 60; wt 2Night humidity recovery: forecast RH rebounds near 60% and t

Saturday May 23

Primary crop-band changes:

TimeValuesNote
09:30hyst 0.5Saturday missed-cycle ramp fallback: begin guardrail-aware r
11:30hyst 0.5Saturday severe dry fallback if SUNSET/SUNRISE is missed: RH

Tactical tunable changes:

TimeValuesNote
09:30d_cool 3; engage 1.2; all 1.45; pulse 60; gap 30; wt 2.5Saturday missed-cycle ramp fallback: begin guardrail-aware r
11:30d_cool 3; engage 1; all 1.2; pulse 60; gap 20; wt 2.7Saturday severe dry fallback if SUNSET/SUNRISE is missed: RH

Changed secondary parameters:

TimeParameterChange
05:45bias_coolinitial 4
05:45bias_heatinitial 2
05:45d_heat_stage_2initial 3
05:45dwell_gate_msinitial 300000
05:45enthalpy_closeinitial 1
05:45enthalpy_openinitial -2
05:45fog_escalation_kpainitial 0.5
05:45heat_hysteresisinitial 1.5
05:45min_fog_off_sinitial 180
05:45min_fog_on_sinitial 45
05:45min_heat_off_sinitial 180
05:45min_heat_on_sinitial 120
05:45min_vent_off_sinitial 60
05:45min_vent_on_sinitial 60
05:45mist_backoff_sinitial 1200
05:45mist_max_closed_vent_sinitial 120
05:45mist_thermal_relief_sinitial 90
05:45mister_all_delay_sinitial 600
05:45mister_engage_delay_sinitial 300
05:45mister_water_budget_galinitial 300
05:45outdoor_staleness_max_sinitial 600
05:45sw_dwell_gate_enabledinitial 1
05:45sw_fog_closes_ventinitial 1
05:45sw_fsm_controller_enabledinitial 1
05:45sw_mister_closes_ventinitial 1
05:45sw_summer_vent_enabledinitial 1
05:45temp_hysteresisinitial 1.7
05:45vent_prefer_dp_delta_finitial 5
05:45vent_prefer_temp_delta_finitial 5
05:45vpd_watch_dwell_sinitial 60
09:30bias_cool4 → 3.5
09:30bias_heat2 → 1
09:30min_fog_off_s180 → 120
09:30mist_backoff_s1200 → 900
09:30mister_all_delay_s600 → 240
09:30mister_engage_delay_s300 → 120
12:30bias_cool3.5 → 3
12:30bias_heat1 → 0
12:30fog_escalation_kpa0.5 → 0.3
12:30min_fog_off_s120 → 60
12:30mist_backoff_s900 → 600
12:30mist_max_closed_vent_s120 → 150
12:30mister_all_delay_s240 → 90
12:30mister_engage_delay_s120 → 45
14:30bias_cool3 → 2
14:30fog_escalation_kpa0.3 → 0.2
14:30mist_max_closed_vent_s150 → 180
14:30mister_all_delay_s90 → 60
14:30mister_engage_delay_s45 → 30
18:30bias_cool2 → 3
18:30fog_escalation_kpa0.2 → 0.35
18:30min_fog_off_s60 → 90
18:30mist_backoff_s600 → 900
18:30mist_max_closed_vent_s180 → 150
18:30mister_all_delay_s60 → 90
18:30mister_engage_delay_s30 → 45
22:30bias_cool3 → 4
22:30bias_heat0 → 1.5
22:30fog_escalation_kpa0.35 → 1
22:30min_fog_off_s90 → 180
22:30mist_backoff_s900 → 1200
22:30mist_max_closed_vent_s150 → 120
22:30mister_all_delay_s90 → 600
22:30mister_engage_delay_s45 → 300
22:30mister_water_budget_gal300 → 600
09:30bias_cool4 → 2.5
09:30bias_heat1.5 → 0
09:30fog_escalation_kpa1 → 0.25
09:30min_fog_off_s180 → 60
09:30mist_backoff_s1200 → 600
09:30mist_max_closed_vent_s120 → 150
09:30mister_all_delay_s600 → 90
09:30mister_engage_delay_s300 → 45
11:30bias_cool2.5 → 1
11:30fog_escalation_kpa0.25 → 0.15
11:30min_fog_off_s60 → 45
11:30mist_max_closed_vent_s150 → 180
11:30mister_all_delay_s90 → 60
11:30mister_engage_delay_s45 → 30
11:30vpd_watch_dwell_s60 → 45

🌆 Evening Cycle (8:23 PM) — iris-20260522-2016

Status

validated

Outcome score

1/10

Changed parameters

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: Revised after anchor comparison. Although the live climate at 00:20 looked safe (IDLE, 64.9F, VPD 0.37 kPa, dew margin 5.6F) and stress counters were still near zero, the deterministic evaluation exposed a major execution-quality failure: anchor_score 1 with 14 VPD-high moisture-guardrail dispatches during the plan window plus incomplete Tier-1 coverage in future waypoints. The plan also carried partially conservative moisture values that the dispatcher had to rewrite, repeating the same guardrail-fighting pattern identified in the evaluated SUNRISE plan. The midnight boundary scorecard row was sparse, but anchor/guardrail evidence is stronger than my initial live-state impression. Final grade aligned to anchor: 1/10. The actionable miss is not plant safety at midnight; it is that the written plan still failed the policy contract and should be replaced with complete Tier-1 waypoints and fully band-coupled peak dry-day moisture support. Score: 1/10

New finding: When a SUNSET or MIDNIGHT plan includes a severe next-day dry fallback, incomplete Tier-1 coverage or partially conservative moisture values can trigger VPD-high guardrail dispatches even before the main dry window; anchor/guardrail evidence should override a superficially safe live midnight snapshot. → Added to Lessons Learned

Hypothesis

Testing: Overnight saturated-air suppression with a guardrail-aligned severe-dry missed-SUNRISE fallback: do not repeat today’s partially conservative moisture values that triggered 55 guardrail events. Expected outcome: Overnight through 08:30: dp_risk_hours 0, VPD-low under 0.5h, cold stress near or below 1h, and cost dominated by efficient gas/electric heat rather than water/fog. If SUNRISE is missed, late-morning fallback should avoid VPD-high guardrail holds by using fully band-coupled moisture.

Conditions

Outdoor peak

77.0°F

RH minimum

9.0%

Solar peak

970.0 W/m²

Cloud average

35.0%

Cold saturated night from 57F to 43F with RH rising to about 90% and outdoor VPD near 0.08-0.21 kPa; current indoor VPD 0.63 kPa and dew margin 9.6F. Saturday turns severe dry by late morning with RH 9-21%, outdoor VPD around 2.0-2.9 kPa, and solar near 900-1000 W/m2.

Expected stress windows

vpd_lowmedium · 2026-05-22T22:00:00-06:00 to 2026-05-23T08:30:00-06:00

High mist thresholds 2.35-2.45/2.5, 55-60s gaps, 300/600s delays, fog_escalation 0.9-1.0, vpd_hysteresis 0.5, and short 120s sealed residence while saturated air returns.

coldmedium · 2026-05-23T02:00:00-06:00 to 2026-05-23T08:30:00-06:00

bias_heat 1.8-2.0, bias_cool +4, d_heat_stage_2 3, heat_hysteresis 1.5, dwell gate ON; do not raise crop bands.

vpd_highhigh · 2026-05-23T11:00:00-06:00 to 2026-05-23T20:30:00-06:00

Missed-SUNRISE fallback uses fully guardrail-aligned band-coupled support: engage 1.00, all 1.20, 30/60s delays, 20s gaps, fog_escalation 0.15, min_fog_off 45, 180s sealed cap, and 600s backoff.

Parameter rationale

bias_cool3.0 → 4.0; Heaters are already active and outdoor falls to 43F with saturated air by dawn; validated overnight lessons favor +3 to +4 to prevent heater-to-vent dumps.

Keep overnight cold stress near or below 1h without vent-chatter-driven temperature loss.

bias_heat0.0 → 2.0; Pre-dawn forecast reaches 43F with RH about 90%; gas heat is efficient and slab alone may sit near the lower crop band.

Limit pre-dawn cold-band scoring while avoiding continuous overheating or crop-band changes.

mister_engage_kpa1.2 → 2.45; 22:00-08:30 outdoor VPD collapses to 0.08-0.21 kPa and current indoor RH is already 71% with safe dew margin.

Avoid added overnight moisture, keep dp-risk at 0h, and prevent VPD-low accumulation.

mister_all_kpa1.45 → 2.5; All-zone escalation is unnecessary during saturated overnight air and would risk VPD-low carryover.

Keep overnight mister water near zero unless live VPD breaks well above band.

mister_pulse_gap_s30.0 → 60.0; Nighttime sealed air holds moisture; lesson 105 says unwind after dry-day support with wider gaps and higher thresholds.

Reduce VPD-low and condensation risk while maintaining dew margin above 5F.

fog_escalation_kpa0.35 → 1.0; Fog is time-window blocked overnight and unnecessary in saturated air.

Avoid fog-driven VPD-low; keep dp-risk at 0h.

mist_max_closed_vent_s150.0 → 120.0; Dew margin is safe now, but outdoor RH reaches about 90%; any accidental sealed-mist state should stay short.

Preserve condensation safety if the controller briefly enters humidification.

mister_engage_kpa2.45 → 1.0; Saturday missed-SUNRISE fallback: 11:00-20:00 RH 9-21%, VPD 1.99-2.89 kPa, solar near 900-1000 W/m2; the just-evaluated plan was penalized for 55 guardrail events.

Avoid fighting the VPD-high moisture guardrail and keep severe-day support band-coupled if the morning plan is missed.

fog_escalation_kpa1.0 → 0.15; Saturday dry window overlaps fog window and severe VPD-high ventilation; fog is 7x more effective than misters and guardrail wants 0.15-0.20 in hot/dry venting.

Catch stubborn VPD-high during VENTILATE assist without extending sealed heat traps.

Setpoints

Friday May 22

Primary crop-band changes:

TimeValuesNote
20:25hyst 0.5evening_settle: unwind dry-day moisture while dew margin is
22:30hyst 0.5saturated_night: outdoor VPD collapses; suppress mist/fog an

Tactical tunable changes:

TimeValuesNote
20:25d_cool 3; engage 2.2; all 2.4; pulse 60; gap 55; wt 2evening_settle: unwind dry-day moisture while dew margin is
22:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2saturated_night: outdoor VPD collapses; suppress mist/fog an

Saturday May 23

Primary crop-band changes:

TimeValuesNote
04:30hyst 0.5pre_dawn_cold_saturated: minimum outdoor temperature and RH
08:30hyst 0.5sunrise_guarded: light rises but outdoor air remains cool/hi
11:30hyst 0.5missed_sunrise_severe_dry_fallback: if morning plan is misse

Tactical tunable changes:

TimeValuesNote
04:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2pre_dawn_cold_saturated: minimum outdoor temperature and RH
08:30d_cool 3; engage 2.3; all 2.5; pulse 60; gap 55; wt 2.1sunrise_guarded: light rises but outdoor air remains cool/hi
11:30d_cool 3; engage 1; all 1.2; pulse 60; gap 20; wt 2.7missed_sunrise_severe_dry_fallback: if morning plan is misse

Changed secondary parameters:

TimeParameterChange
20:25bias_coolinitial 4
20:25bias_heatinitial 1.2
20:25d_heat_stage_2initial 3
20:25dwell_gate_msinitial 300000
20:25enthalpy_closeinitial 1
20:25enthalpy_openinitial -2
20:25fog_escalation_kpainitial 0.5
20:25heat_hysteresisinitial 1.5
20:25min_fog_off_sinitial 150
20:25min_fog_on_sinitial 45
20:25min_heat_off_sinitial 180
20:25min_heat_on_sinitial 120
20:25min_vent_off_sinitial 60
20:25min_vent_on_sinitial 60
20:25mist_backoff_sinitial 1200
20:25mist_max_closed_vent_sinitial 120
20:25mist_thermal_relief_sinitial 90
20:25mister_all_delay_sinitial 420
20:25mister_engage_delay_sinitial 180
20:25mister_water_budget_galinitial 300
20:25outdoor_staleness_max_sinitial 600
20:25sw_dwell_gate_enabledinitial 1
20:25sw_fog_closes_ventinitial 1
20:25sw_fsm_controller_enabledinitial 1
20:25sw_mister_closes_ventinitial 1
20:25sw_summer_vent_enabledinitial 1
20:25temp_hysteresisinitial 1.7
20:25vent_prefer_dp_delta_finitial 5
20:25vent_prefer_temp_delta_finitial 5
20:25vpd_watch_dwell_sinitial 60
22:30bias_heat1.2 → 1.8
22:30min_fog_off_s150 → 180
22:30mist_backoff_s1200 → 1800
22:30mister_all_delay_s420 → 600
22:30mister_engage_delay_s180 → 300
04:30bias_heat1.8 → 2
08:30bias_cool4 → 3.5
08:30bias_heat2 → 1
08:30min_fog_off_s180 → 150
08:30mist_backoff_s1800 → 1200
08:30mister_all_delay_s600 → 420
08:30mister_engage_delay_s300 → 180
11:30bias_cool3.5 → 1
11:30bias_heat1 → 0
11:30fog_escalation_kpa0.5 → 0.15
11:30min_fog_off_s150 → 45
11:30mist_backoff_s1200 → 600
11:30mist_max_closed_vent_s120 → 180
11:30mister_all_delay_s420 → 60
11:30mister_engage_delay_s180 → 30

End-of-Day Summary

Climate

Temperature

61.7–80.6°F; avg 69.3°F

VPD

0.33–1.72 kPa; avg 0.77 kPa

Relative humidity

51.3–83.6%

Stress Hours

  • Heat stress (>85°F): 4.3h
  • VPD stress (>2.0 kPa): 3.7h
  • Cold stress (<55°F): 1.1h

Economics

Electric

USD 4.11

Gas

USD 1.51

Water

USD 1.060

Total

USD 6.68

Equipment Runtimes

EquipmentRuntimeReading
Fan 1211 minPrimary exhaust runtime.
Fan 2214 minSecondary exhaust runtime.
Vent374 minIntake vent runtime.
Fog96 minFogger runtime.
Heat 1 electric887 minElectric heater runtime.
Heat 2 gas146 minGas heater runtime.
Grow lights981 minSupplemental lighting runtime.
Mister south0.18hSouth mister runtime.
Mister west0.05hWest mister runtime.
Mister center1.52hCenter mister runtime.

Water

  • Total: 219 gal
  • Mister: 75 gal

Crop Health (Gemini Vision)

CropZoneHealthObservationsNote
Canna Liliessouth70%4Observation notes are collapsed below to avoid publishing partial vision snippets.
Vanda Orchidscenter83%6Observation notes are collapsed below to avoid publishing partial vision snippets.
lettuceeast80%4Observation notes are collapsed below to avoid publishing partial vision snippets.
peppereast70%4Observation notes are collapsed below to avoid publishing partial vision snippets.
strawberryeast83%4Observation notes are collapsed below to avoid publishing partial vision snippets.
Vision observation notes
Canna LiliesGemini Vision notes

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

Vanda OrchidsGemini Vision notes

Hanging orchids appear healthy with no visible signs of stress.

lettuceGemini Vision notes

Seedlings appear healthy and are establishing well.

pepperGemini Vision notes

Seedlings are growing steadily, no visible signs of stress.

strawberryGemini Vision notes

Seedlings are healthy with good color.

Hourly Pattern

HourTemperatureVPDRH
12:0077.2°F1.11 kPa66.2%
13:0078.8°F1.30 kPa62.8%
14:0078.1°F1.25 kPa62.5%
15:0076.4°F1.10 kPa65.1%
16:0074.4°F0.97 kPa66.8%
17:0072.1°F0.97 kPa64.4%
18:0069.9°F0.94 kPa62.9%
19:0067.4°F0.74 kPa68.1%
20:0066.3°F0.62 kPa72.1%
21:0064.7°F0.59 kPa72.2%
22:0063.7°F0.45 kPa77.7%
23:0063.4°F0.42 kPa79.2%
00:0063.1°F0.40 kPa80.1%
01:0063.6°F0.40 kPa80.1%
02:0063.2°F0.41 kPa79.2%
03:0063.3°F0.44 kPa78.2%
04:0063.4°F0.45 kPa77.6%
05:0063.9°F0.49 kPa76.3%
06:0066.1°F0.60 kPa73.0%
07:0068.0°F0.70 kPa70.8%
08:0071.0°F0.86 kPa67.7%
09:0073.2°F0.96 kPa66.5%
10:0073.5°F0.86 kPa70.1%
11:0075.4°F0.72 kPa76.7%

7-Day Stress Context

DateHeatVPD highCold
2026-05-169.1h8.6h0.1h
2026-05-173.1h3.2h0.4h
2026-05-180.5h0.0h2.1h
2026-05-190.4h0.1h2.0h
2026-05-201.9h0.6h1.2h
2026-05-212.7h2.1h1.0h
2026-05-224.3h3.7h1.1h