May 21, 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

5

No-change acknowledgements

3

Pending

0

EventDeliveredTypeStatusNote
End-of-day review and reset00:16MIDNIGHTplan_writtenWrote public plan iris-20260521-0016. Resolved 00:18 MDT.
Morning planning cycle05:41SUNRISEplan_writtenWrote public plan iris-20260521-0541. Resolved 05:43 MDT.
Solar peak planning checkpoint13:00SOLAR_MAXplan_writtenWrote non-archive plan iris-oneshot-20260521-1301. Resolved 13:01 MDT.
Peak Stress14:58TRANSITIONackedAcknowledged: Peak-stress transition checked live climate, equipment, active plan, and setpoint readbacks. Conditions are tracking the SUNRISE dry-ramp posture: greenhouse 78.1F, VPD 1.25 kPa versus active vpd_high 1.23, healthy 14.2F dew margin, VENTILATE with vent/fan1 active, and guardrail-aware moisture setpoints already confirmed (mister_engage_kpa 1.15, mister_all_kpa 1.35, fog_escalation_kpa 0.20, gap 20s). No additional tunable change warranted. Resolved 14:59 MDT.
Forecast deviation15:24FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed: observed solar (~176-200 W/m2) is far below forecast (~876 W/m2), consistent with cloud/solar forecast miss rather than equipment fault. Current house is IDLE at 76.4F, VPD 1.07 kPa, RH 66%, dew margin 12.3F; all climate relays are off. Existing guardrail-aware dry-ramp posture is safe and only acts on live VPD demand, so no tunable change warranted. Resolved 15:24 MDT.
Forecast deviation16:23FORECAST_DEVIATIONplan_writtenWrote non-archive plan iris-oneshot-20260521-1624. Resolved 16:24 MDT.
Decline19:15TRANSITIONackedAcknowledged: Decline transition checked live climate, equipment, active plan, and setpoints. Greenhouse is tracking the existing plan: IDLE at 67.2F and 0.74 kPa VPD, within firmware band with healthy 10.8F dew margin; mist/fog/vent/fans are off and only heat1 is supporting the evening band. The active plan already unwinds dry-day moisture posture at 20:30 before the overnight humidity rebound, so no immediate tunable change is warranted. Resolved 19:16 MDT.
Evening planning cycle20:16SUNSETplan_writtenWrote public plan iris-20260521-2016. Resolved 20:18 MDT.

🌅 Morning Cycle (12:18 AM) — iris-20260521-0016

Status

validated

Outcome score

7/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-20260520-0541

Previous hypothesis: SUNRISE plan for Wednesday 2026-05-20. Yesterday scored 85.8 with 87.1% both-axis compliance, temp 90.1%, VPD 96.1%, 0 dp-risk hours, and USD 2.89 cost mostly gas. The evaluated 2026-05-19 SUNRISE plan scored 7/10 versus anchor 9: it protected VPD-high and dew risk despite a warmer/sunnier forecast miss, but residual VPD-low and structural spring morning temperature alignment remained. Today is cool and humid at dawn, then only a modest afternoon raw dry ramp to about 59F, 58% RH, 0.71 kPa outdoor VPD with forecast VPD biased high by about 0.52 kPa. The plan keeps dawn/morning moisture suppression, stable dwell timing, bias_cool +4, and short sealed residence, then cautiously relaxes afternoon mist/fog thresholds only enough to catch an unexpected live VPD rise. Thursday fallback handles the sharper dry ramp if the next SUNRISE plan is missed. Result: Plan governed the cold saturated midnight-to-sunrise window before the SUNRISE handoff. Window scorecard showed about 74.8% both-axis compliance, 83.1% temp compliance, 85.4% VPD compliance, about 1.34 total stress-hours, and low cost (~USD 0.23 in the plan window). It maintained dew safety (daily dp-risk stayed 0h and current sunset margin is safe), prevented major VPD-low carryover during the completed pre-dawn window, and used bias_cool +4 / conservative mist-fog posture appropriately. Remaining misses were mostly structural spring crop-band temperature alignment plus some later-day VPD pressure that belonged to the subsequent sunrise/dry-ramp plan, not this completed midnight window. Score: 7/10

Hypothesis

Testing: Guarded dawn to guardrail-aware dry-ramp handoff: hold moisture suppression until the live VPD/solar ramp begins, then request band-coupled moisture directly before the 13:00-18:00 dry window instead of repeating conservative values that the dispatcher must clamp. Expected outcome: For 2026-05-21, target >75% both-axis compliance, VPD-high under 2.0h, VPD-low under 3.0h despite the saturated dawn, heat+cold stress under 2.0h total, dew-risk 0h, and total cost near or below the recent USD 7.11 7-day average unless gas heating dominates the cold pre-dawn window.

Conditions

Outdoor peak

72.0°F

RH minimum

27.0%

Solar peak

876.0 W/m²

Cloud average

48.0%

Cold saturated pre-dawn around 41-47F and 89-95% RH, then a clear/high-solar dry ramp. Bias-corrected planning prior still reaches roughly 1.5-1.6 kPa outdoor VPD from 15:00-18:00 with solar near 900 W/m2 earlier. Current indoor VPD is low-normal at 0.38 with 6.1F dew margin, so dawn is VPD-low/condensation cautious, but afternoon must not repeat yesterday’s conservative moisture requests that the VPD-high guardrail had to clamp.

Expected stress windows

vpd_lowmedium · 2026-05-21T00:20:00-06:00 to 2026-05-21T09:30:00-06:00

Keep overnight and early sunrise moisture suppressed: engage 2.45 then 2.25, all 2.5, long delays, 55-60s gaps, fog_escalation 0.9-1.0, vpd_hysteresis 0.5, 120s sealed cap, bias_cool +4.

coldlow · 2026-05-21T02:00:00-06:00 to 2026-05-21T08:30:00-06:00

Use modest gas/electric support with bias_heat 2.0 tapering to 1.3 and bias_cool +4, d_heat_stage_2 3, heat_hysteresis 1.5, dwell gate ON to avoid heater-to-vent oscillation.

vpd_highmedium · 2026-05-21T12:30:00-06:00 to 2026-05-21T19:30:00-06:00

Move to guardrail-aware band-coupled support before the dry peak: engage 1.35 then 1.15, all 1.55 then 1.35, 45/90s delays at peak, 25s gaps, fog_escalation 0.25, min_fog_off 60, vpd_watch_dwell 60, and a 180s sealed cap.

vpd_lowmedium · 2026-05-21T20:30:00-06:00 to 2026-05-22T08:30:00-06:00

Unwind before night RH rebound: engage 1.8 then 2.45, all 2.3 then 2.5, 50-60s gaps, fog_escalation 0.6 then 1.0, long delays, and short sealed residence.

Parameter rationale

mister_engage_kpa2.45 → 2.45; Pre-dawn outdoor VPD 0.04-0.12 kPa, RH 89-95%, current indoor VPD 0.38, and prior-day VPD-low 7.83h.

Avoid adding moisture before observed VPD rises; keep dew-risk at 0h and pre-dawn VPD-low no worse than the structural/crop-band baseline.

mister_engage_kpa2.45 → 1.15; 13:00-18:00 raw outdoor VPD 0.83-1.92 kPa, RH falling to 27-29%, solar 600-876 W/m2; lesson 104 and lesson 125 say high-solar ramps need earlier guardrail-aware moisture.

Keep afternoon VPD-high under about 1.5-2.0h and avoid dispatcher VPD-high guardrail clamps by requesting band-coupled values directly.

mister_all_kpa2.5 → 1.35; Recent guardrail clamped conservative all-zone thresholds near 1.37 during live VPD-high stress; today's dry ramp is similar but forecast earlier.

Allow all-zone mist assist during the dry peak rather than waiting far above the band.

fog_escalation_kpa1.0 → 0.25; Fog is unnecessary/blocked overnight but useful from the 13:00-17:00 dry solar window if VPD remains high with healthy dew margin.

Catch stubborn afternoon VPD-high without morning fog or condensation risk.

mister_pulse_gap_s60.0 → 25.0; Afternoon RH below 30% and high solar need fast evaporative support; overnight high RH needs 60s gaps.

Improve VPD recovery during VENTILATE assist while unwinding before night to avoid VPD-low carryover.

bias_heat1.9 → 2.0; Outdoor reaches 41F pre-dawn with saturated air and heat1 is already on; gas/electric heat support is appropriate until sunrise.

Limit pre-dawn cold/crop-band stress without chasing heat through the dry afternoon.

bias_cool4.0 → 4.0; Heaters are active overnight; validated lesson favors +4 cooling bias to prevent heater-to-vent dumps in cold saturated periods.

Avoid overnight vent-driven cold whipsaw while tapering daytime heat bias as solar takes over.

mist_max_closed_vent_s120.0 → 180.0; Dry peak needs bounded sealed-mist recovery, but temperatures are forecast only low 70s outside; 180s is enough without creating a thermal trap.

Improve afternoon VPD-high recovery while keeping heat stress and dew-risk controlled.

Setpoints

Thursday May 21

Primary crop-band changes:

TimeValuesNote
00:20hyst 0.5Post-midnight saturated/cold reset: suppress moisture, prese
04:30hyst 0.5Coldest pre-dawn hour: slightly stronger heat support, still
08:30hyst 0.5Sunrise ramp remains humid but solar/VPD are beginning to ri
11:30hyst 0.45Late-morning pre-buffer before the expected clear/dry ramp;
13:30hyst 0.4Afternoon dry/high-solar peak: request guardrail-aware band-
18:30hyst 0.45Dry air may persist but solar is declining and fog window ha
21:30hyst 0.5Night reset after dry day: suppress wetting again, widen VPD

Tactical tunable changes:

TimeValuesNote
00:20d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Post-midnight saturated/cold reset: suppress moisture, prese
04:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Coldest pre-dawn hour: slightly stronger heat support, still
08:30d_cool 3; engage 2.25; all 2.5; pulse 60; gap 55; wt 2Sunrise ramp remains humid but solar/VPD are beginning to ri
11:30d_cool 3; engage 1.35; all 1.55; pulse 60; gap 35; wt 2.3Late-morning pre-buffer before the expected clear/dry ramp;
13:30d_cool 3; engage 1.15; all 1.35; pulse 60; gap 25; wt 2.5Afternoon dry/high-solar peak: request guardrail-aware band-
18:30d_cool 3; engage 1.8; all 2.3; pulse 60; gap 50; wt 2.2Dry air may persist but solar is declining and fog window ha
21:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Night reset after dry day: suppress wetting again, widen VPD

Friday May 22

Primary crop-band changes:

TimeValuesNote
06:00hyst 0.5Friday fallback if SUNRISE is missed: cold pre-dawn remains
12:00hyst 0.4Friday missed-cycle dry-ramp fallback: moderate guardrail-aw

Tactical tunable changes:

TimeValuesNote
06:00d_cool 3; engage 2.35; all 2.5; pulse 60; gap 60; wt 2Friday fallback if SUNRISE is missed: cold pre-dawn remains
12:00d_cool 3; engage 1.25; all 1.45; pulse 60; gap 30; wt 2.4Friday missed-cycle dry-ramp fallback: moderate guardrail-aw

Changed secondary parameters:

TimeParameterChange
00:20bias_coolinitial 4
00:20bias_heatinitial 1.9
00:20d_heat_stage_2initial 3
00:20dwell_gate_msinitial 300000
00:20enthalpy_closeinitial 1
00:20enthalpy_openinitial -2
00:20fog_escalation_kpainitial 1
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 2400
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 600
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 2
00:20vent_prefer_dp_delta_finitial 5
00:20vent_prefer_temp_delta_finitial 5
00:20vpd_watch_dwell_sinitial 120
04:30bias_heat1.9 → 2
08:30bias_heat2 → 1.3
08:30fog_escalation_kpa1 → 0.9
08:30min_fog_off_s180 → 150
08:30mist_backoff_s2400 → 1800
08:30mister_all_delay_s600 → 360
08:30mister_engage_delay_s300 → 180
08:30vpd_watch_dwell_s120 → 90
11:30bias_cool4 → 3.5
11:30bias_heat1.3 → 0.5
11:30fog_escalation_kpa0.9 → 0.45
11:30heat_hysteresis1.5 → 1.3
11:30min_fog_off_s150 → 90
11:30mist_backoff_s1800 → 1200
11:30mist_max_closed_vent_s120 → 150
11:30mister_all_delay_s360 → 120
11:30mister_engage_delay_s180 → 60
11:30vpd_watch_dwell_s90 → 60
13:30bias_cool3.5 → 3
13:30bias_heat0.5 → 0
13:30fog_escalation_kpa0.45 → 0.25
13:30heat_hysteresis1.3 → 1.2
13:30min_fog_off_s90 → 60
13:30mist_backoff_s1200 → 600
13:30mist_max_closed_vent_s150 → 180
13:30mister_all_delay_s120 → 90
13:30mister_engage_delay_s60 → 45
18:30bias_cool3 → 3.5
18:30bias_heat0 → 0.4
18:30fog_escalation_kpa0.25 → 0.6
18:30heat_hysteresis1.2 → 1.3
18:30min_fog_off_s60 → 120
18:30mist_backoff_s600 → 1200
18:30mist_max_closed_vent_s180 → 150
18:30mister_all_delay_s90 → 240
18:30mister_engage_delay_s45 → 120
18:30vpd_watch_dwell_s60 → 90
21:30bias_cool3.5 → 4
21:30bias_heat0.4 → 1.4
21:30fog_escalation_kpa0.6 → 1
21:30heat_hysteresis1.3 → 1.5
21:30min_fog_off_s120 → 180
21:30mist_backoff_s1200 → 2400
21:30mist_max_closed_vent_s150 → 120
21:30mister_all_delay_s240 → 600
21:30mister_engage_delay_s120 → 300
21:30vpd_watch_dwell_s90 → 120
06:00bias_heat1.4 → 1.8
06:00fog_escalation_kpa1 → 0.95
06:00mister_all_delay_s600 → 480
06:00mister_engage_delay_s300 → 240
12:00bias_cool4 → 3
12:00bias_heat1.8 → 0
12:00fog_escalation_kpa0.95 → 0.3
12:00heat_hysteresis1.5 → 1.2
12:00min_fog_off_s180 → 75
12:00mist_backoff_s2400 → 900
12:00mist_max_closed_vent_s120 → 180
12:00mister_all_delay_s480 → 90
12:00mister_engage_delay_s240 → 45
12:00vpd_watch_dwell_s120 → 60

🌅 Morning Cycle (5:43 AM) — iris-20260521-0541

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

Previous hypothesis: SUNSET overnight plan for Wednesday 2026-05-20. Today improved versus the 7-day score trend but still missed the target: score 69.8, both-axis compliance 73.6%, temp 86.1%, VPD 84.0%, total stress 5.91h. VPD-low was the dominant stress at 2.53h, followed by heat 1.67h, cold 1.08h, and VPD-high only 0.63h. Cost was USD 6.82, below the 7-day USD 7.11 average, with gas and lighting/electric as the main bill; water and misting were low. The evaluated sunrise plan scored 5/10 versus anchor 3: it protected dew risk and VPD-high, but underestimated actual solar and fought the moisture guardrail once live VPD-high emerged. Tonight is cold and saturated: 50F falling to 41F, RH 80-95%, raw outdoor VPD 0.05-0.24 kPa. Current house is IDLE at 66F, VPD 0.51 kPa, RH 77%, dew margin 7.4F… Result: Revised after anchor comparison: the plan achieved the agronomic moisture goals (VPD-high 1.07h, VPD-low 0.43h, dp-risk 0h, low cost) despite solar peaking above forecast, but deterministic anchor penalized 90 VPD-high guardrail events including 41 held events and 49 dispatched guardrail interventions. That means the written plan still fought the dispatcher/firmware moisture guardrail enough that the controller had to correct it. Final score is lowered to 6/10: useful outcome, but not clean plan-policy alignment. Score: 6/10

Hypothesis

Testing: Guarded dawn to guardrail-aware dry-ramp handoff: keep mist/fog suppressed until the solar/VPD ramp, then request band-coupled moisture directly for 13:30-17:30 and unwind before night. Expected outcome: Target planner score above 78, both-axis compliance above 82%, VPD-high under 2.0h, VPD-low under 1.5h, dew-risk 0h, and cost below the 7-day average despite moderate mist/fog use.

Conditions

Outdoor peak

72.0°F

RH minimum

24.0%

Solar peak

883.0 W/m²

Cloud average

37.0%

Cold saturated dawn near 41F/96% RH with indoor VPD 0.46 kPa and dew margin 7.4F, then strong solar and a dry afternoon ramp to raw outdoor VPD about 2.0 kPa. Forecast calibration says VPD can overshoot reality, but yesterday’s actual solar exceeded forecast and lesson 125 says not to fight the moisture guardrail once live VPD approaches band.

Expected stress windows

vpd_lowmedium · 2026-05-21T05:50:00-06:00 to 2026-05-21T09:30:00-06:00

High dawn mist thresholds, long delays, 55-60s pulse gaps, fog_escalation 0.9-1.0, vpd_hysteresis 0.5, short sealed residence, bias_cool +4.

coldlow · 2026-05-21T05:50:00-06:00 to 2026-05-21T09:30:00-06:00

bias_heat 2.0 tapering to 1.2 with bias_cool +4, d_heat_stage_2 3, heat_hysteresis 1.5, dwell gate ON.

vpd_highmedium · 2026-05-21T11:30:00-06:00 to 2026-05-21T18:30:00-06:00

Guardrail-aware band-coupled support: engage 1.25 then 1.15, all 1.45 then 1.35, 30-45s engage delay, 60-90s all delay, 20-30s gaps, fog_escalation 0.20-0.30, min_fog_off 45-60, vpd_watch_dwell 60, and 180s sealed cap.

vpd_lowmedium · 2026-05-21T20:30:00-06:00 to 2026-05-22T08:30:00-06:00

Unwind before night humidity rebound: engage 1.9 then 2.45, all 2.3 then 2.5, 50-60s gaps, fog_escalation 0.7 then 1.0, longer delays, short sealed residence.

Parameter rationale

mister_engage_kpa2.45 → 1.15; 13:00-18:00 raw VPD 1.01-2.01 kPa, RH falling to 24-34%, solar 345-883 W/m2; lesson 125 says use guardrail-aware band-coupled moisture after high solar dry ramp confirmation.

Keep afternoon VPD-high under about 1.5-2.0h and avoid repeated VPD-high moisture guardrail clamps.

mister_all_kpa2.5 → 1.35; Dispatcher recently clamped conservative all-zone requests near 1.37 during live VPD-high stress; today's dry ramp is similar but forecast earlier.

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

fog_escalation_kpa1.0 → 0.2; Fog is unnecessary at dawn but useful in the 12:00-17:00 dry solar window if VPD stays high with healthy dew margin.

Catch stubborn VPD-high during VENTILATE assist without morning fog or dew-risk.

mister_pulse_gap_s60.0 → 20.0; Afternoon RH 24-34% with high solar needs fast evaporative support; dawn high RH still needs 55-60s gaps.

Improve VPD recovery during dry VENTILATE periods while avoiding moisture carryover via evening unwind.

mister_engage_delay_s300.0 → 30.0; When live VPD is near/above band in dry ventilation, long delays are guardrailed and lose recovery time.

Start physical pulses promptly once humidity demand exists.

mister_all_delay_s600.0 → 60.0; Dry peak can move quickly under 800+ W/m2 solar; all-zone escalation should not wait five to ten minutes when VPD is already above band.

Reduce time above VPD band during 13:00-18:00 without relying on fog alone.

min_fog_off_s180.0 → 45.0; Recent guardrail clamps shortened fog-off dwell during live VPD-high; dry afternoon has healthy dew margin at dawn and low outdoor RH.

Permit fog assist cadence if misters lag while staying inside firmware RH/time/temp gates.

bias_heat2.0 → 0.0; Outdoor warms from 41F at dawn to 60s/70s; heat support should taper as solar takes over.

Limit pre-dawn cold score loss without adding heat/vent oscillation or gas cost through the dry afternoon.

bias_cool4.0 → 3.0; Dawn heaters justify +4, but midday cooling should not be delayed too far during high solar; +3 still avoids chatter while allowing earlier VENTILATE.

Reduce heat-stress risk during the dry solar window while preserving overnight anti-whipsaw behavior.

mist_backoff_s2400.0 → 600.0; Dry peak needs recovery opportunities after a sealed timeout; 2400s lockout is too long for a 13:00-18:00 VPD window.

Avoid long dry lockouts after thermal relief while keeping relief preemption bounded.

Setpoints

Thursday May 21

Primary crop-band changes:

TimeValuesNote
05:50hyst 0.5Cold saturated dawn: suppress moisture, support heat gently,
08:30hyst 0.5Morning ramp begins but indoor VPD is still low-normal; caut
11:30hyst 0.45Solar/VPD ramp: shift to guardrail-aware readiness before ou
13:30hyst 0.4Peak dry solar window: request band-coupled mist/fog directl
17:30hyst 0.45Late dry decline: maintain support while VPD remains high, b
20:30hyst 0.5Evening unwind: fog window closed and RH recovers; prevent m

Tactical tunable changes:

TimeValuesNote
05:50d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Cold saturated dawn: suppress moisture, support heat gently,
08:30d_cool 3; engage 2.3; all 2.5; pulse 60; gap 55; wt 2Morning ramp begins but indoor VPD is still low-normal; caut
11:30d_cool 3; engage 1.3; all 1.55; pulse 60; gap 30; wt 2.4Solar/VPD ramp: shift to guardrail-aware readiness before ou
13:30d_cool 3; engage 1.15; all 1.35; pulse 60; gap 20; wt 2.6Peak dry solar window: request band-coupled mist/fog directl
17:30d_cool 3; engage 1.3; all 1.6; pulse 60; gap 30; wt 2.4Late dry decline: maintain support while VPD remains high, b
20:30d_cool 3; engage 1.9; all 2.3; pulse 60; gap 50; wt 2.1Evening unwind: fog window closed and RH recovers; prevent m

Friday May 22

Primary crop-band changes:

TimeValuesNote
06:00hyst 0.5Friday cold dawn fallback: saturated/cool start with another
12:00hyst 0.4Friday missed-cycle dry-ramp fallback: outdoor VPD forecast

Tactical tunable changes:

TimeValuesNote
06:00d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Friday cold dawn fallback: saturated/cool start with another
12:00d_cool 3; engage 1.25; all 1.5; pulse 60; gap 25; wt 2.4Friday missed-cycle dry-ramp fallback: outdoor VPD forecast

Changed secondary parameters:

TimeParameterChange
05:50bias_coolinitial 4
05:50bias_heatinitial 2
05:50d_heat_stage_2initial 3
05:50dwell_gate_msinitial 300000
05:50enthalpy_closeinitial 1
05:50enthalpy_openinitial -2
05:50fog_escalation_kpainitial 1
05:50heat_hysteresisinitial 1.5
05:50min_fog_off_sinitial 180
05:50min_fog_on_sinitial 45
05:50min_heat_off_sinitial 180
05:50min_heat_on_sinitial 120
05:50min_vent_off_sinitial 60
05:50min_vent_on_sinitial 60
05:50mist_backoff_sinitial 2400
05:50mist_max_closed_vent_sinitial 120
05:50mist_thermal_relief_sinitial 90
05:50mister_all_delay_sinitial 600
05:50mister_engage_delay_sinitial 300
05:50mister_water_budget_galinitial 600
05:50outdoor_staleness_max_sinitial 600
05:50sw_dwell_gate_enabledinitial 1
05:50sw_fog_closes_ventinitial 1
05:50sw_fsm_controller_enabledinitial 1
05:50sw_mister_closes_ventinitial 1
05:50sw_summer_vent_enabledinitial 1
05:50temp_hysteresisinitial 2
05:50vent_prefer_dp_delta_finitial 5
05:50vent_prefer_temp_delta_finitial 5
05:50vpd_watch_dwell_sinitial 120
08:30bias_heat2 → 1.4
08:30fog_escalation_kpa1 → 0.9
08:30min_fog_off_s180 → 150
08:30mist_backoff_s2400 → 1800
08:30mister_all_delay_s600 → 480
08:30mister_engage_delay_s300 → 240
08:30vpd_watch_dwell_s120 → 90
11:30bias_cool4 → 3.5
11:30bias_heat1.4 → 0.4
11:30fog_escalation_kpa0.9 → 0.35
11:30min_fog_off_s150 → 75
11:30mist_backoff_s1800 → 900
11:30mist_max_closed_vent_s120 → 150
11:30mister_all_delay_s480 → 120
11:30mister_engage_delay_s240 → 60
11:30temp_hysteresis2 → 1.7
11:30vpd_watch_dwell_s90 → 60
13:30bias_cool3.5 → 3
13:30bias_heat0.4 → 0
13:30fog_escalation_kpa0.35 → 0.2
13:30min_fog_off_s75 → 45
13:30mist_backoff_s900 → 600
13:30mist_max_closed_vent_s150 → 180
13:30mister_all_delay_s120 → 60
13:30mister_engage_delay_s60 → 30
13:30temp_hysteresis1.7 → 1.5
17:30bias_cool3 → 3.2
17:30bias_heat0 → 0.2
17:30fog_escalation_kpa0.2 → 0.3
17:30min_fog_off_s45 → 60
17:30mist_backoff_s600 → 900
17:30mister_all_delay_s60 → 90
17:30mister_engage_delay_s30 → 45
17:30temp_hysteresis1.5 → 1.7
20:30bias_cool3.2 → 4
20:30bias_heat0.2 → 1
20:30fog_escalation_kpa0.3 → 0.7
20:30min_fog_off_s60 → 150
20:30mist_backoff_s900 → 1800
20:30mist_max_closed_vent_s180 → 150
20:30mister_all_delay_s90 → 360
20:30mister_engage_delay_s45 → 180
20:30temp_hysteresis1.7 → 2
20:30vpd_watch_dwell_s60 → 90
06:00bias_heat1 → 1.8
06:00fog_escalation_kpa0.7 → 1
06:00min_fog_off_s150 → 180
06:00mist_backoff_s1800 → 2400
06:00mist_max_closed_vent_s150 → 120
06:00mister_all_delay_s360 → 600
06:00mister_engage_delay_s180 → 300
06:00vpd_watch_dwell_s90 → 120
12:00bias_cool4 → 3
12:00bias_heat1.8 → 0
12:00fog_escalation_kpa1 → 0.3
12:00min_fog_off_s180 → 60
12:00mist_backoff_s2400 → 900
12:00mist_max_closed_vent_s120 → 180
12:00mister_all_delay_s600 → 90
12:00mister_engage_delay_s300 → 45
12:00temp_hysteresis2 → 1.6
12:00vpd_watch_dwell_s120 → 60

🌆 Evening Cycle (8:18 PM) — iris-20260521-2016

Status

validated

Outcome score

8/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: SUNSET overnight plan governed the cold saturated evening-to-sunrise window before this SUNRISE handoff. Window scorecard: score 78.7, both-axis compliance 81.0%, temp compliance 81.0%, VPD compliance 100.0%, about 0.17 total stress-hours split between small heat/cold band misses, 0.00h VPD-high, 0.00h VPD-low, and low window cost about USD 0.17. The hypothesis was mostly validated: high mist thresholds, conservative fog, short sealed residence, bias_cool +4, and modest heat support prevented overnight VPD stress and preserved dew safety. Remaining score loss is mostly structural narrow temperature-band alignment during spring mornings rather than a moisture-control failure. Score: 8/10

New finding: Cold saturated overnight windows with safe dew margin continue to validate conservative moisture suppression plus bias_cool +4 and modest heat staging: expect near-perfect VPD compliance, but do not over-score temperature compliance because narrow crop-band alignment can still create small heat/cold misses. → Added to Lessons Learned

Hypothesis

Testing: Test whether a strong saturated-night unwind plus bias_cool +4 can hold dp-risk at 0h and VPD-low under 1h while preserving a guardrail-aware Friday dry-ramp fallback if SUNRISE is missed. Expected outcome: Overnight: dp-risk 0h, VPD-low under 1h, cold stress near or below 1h, and cost below the 7-day average. If the fallback governs Friday afternoon, VPD-high should stay under about 2h without repeated moisture-guardrail clamps.

Conditions

Outdoor peak

66.0°F

RH minimum

22.0%

Solar peak

1008.0 W/m²

Cloud average

80.0%

Cold saturated night: 51F to 41F, RH 75-93%, outdoor VPD 0.07-0.32 kPa. Current indoor dew margin is safe near 9.9F and VPD is in band, but zones are spread and east remains driest. Friday afternoon has a dry ramp to raw VPD 1.6-1.7 kPa, RH low 20s, and raw solar near 1000 W/m2; forecast bias and cloud uncertainty argue for overnight suppression now and guardrail-aware noon fallback if SUNRISE is missed.

Expected stress windows

vpd_lowmedium · 2026-05-21T21:30:00-06:00 to 2026-05-22T08:30:00-06:00

mister_engage_kpa 2.35-2.45, mister_all_kpa 2.5, 300/600s delays, 60s gaps, fog_escalation_kpa 1.0, vpd_hysteresis 0.5, short 120s sealed cap.

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

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

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

Fallback only if SUNRISE is missed: guardrail-aware band-coupled moisture with engage 1.15, all 1.35, 45/90s delays, 25s gap, fog_escalation 0.25, min_fog_off 60, and 180s sealed cap.

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

Friday evening unwind: raise thresholds back to 2.35/2.5, 60s gaps, fog_escalation 1.0, and short sealed cap before RH rebounds.

Parameter rationale

bias_cool3.2 → 4.0; Heaters are expected as outdoor falls to 41F; 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.2 → 2.0; Pre-dawn outdoor forecast reaches 41F with saturated air; gas heat is efficient and slab alone may sit near the lower crop band.

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

mister_engage_kpa1.5 → 2.45; Tonight outdoor VPD collapses to 0.07-0.15 kPa and current RH is already 70% with safe dew margin; retrieved plans and lessons favor moisture suppression on saturated nights.

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

mister_all_kpa1.85 → 2.5; All-zone rotation 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_s35.0 → 60.0; Nighttime sealed air holds moisture; lesson 105 says widen gaps during evening/overnight unwind after dry-day support.

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

fog_escalation_kpa0.55 → 1.0; Fog is time-window blocked overnight and unnecessary in saturated air; high escalation prevents early morning over-humidification.

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

mist_max_closed_vent_s180.0 → 120.0; Dew margin is safe but outdoor RH becomes 85-93%; any accidental sealed-mist state should stay short.

Preserve condensation safety if the controller briefly enters humidification.

mister_engage_kpa2.45 → 1.15; Friday fallback dry ramp: raw VPD rises to 1.4-1.7 kPa with low-20s RH and high solar; recent clamps show conservative values are rewritten during VPD-high ventilation.

If SUNRISE is missed, avoid fighting the moisture guardrail and keep Friday afternoon VPD-high under about 2h.

fog_escalation_kpa1.0 → 0.25; Friday afternoon fallback has a live dry-ramp risk; fog is useful only after the morning saturated period has passed and firmware RH/time/temp gates allow it.

Catch stubborn VPD-high during VENTILATE assist without causing overnight or morning VPD-low.

Setpoints

Thursday May 21

Primary crop-band changes:

TimeValuesNote
20:25hyst 0.5evening_settle: finish unwinding from the resolved VPD-high
23:30hyst 0.5saturated_night: outdoor RH rises and VPD collapses; suppres

Tactical tunable changes:

TimeValuesNote
20:25d_cool 3; engage 1.9; all 2.3; pulse 60; gap 50; wt 2.1evening_settle: finish unwinding from the resolved VPD-high
23:30d_cool 3; engage 2.35; all 2.5; pulse 60; gap 60; wt 2saturated_night: outdoor RH rises and VPD collapses; suppres

Friday May 22

Primary crop-band changes:

TimeValuesNote
05:30hyst 0.5pre_dawn_cold_saturated: forecast low near 41F with outdoor
12:00hyst 0.45missed-sunrise dry-ramp fallback: if no new SUNRISE plan lan
20:00hyst 0.5friday_evening_unwind: RH rebounds and solar is gone; return

Tactical tunable changes:

TimeValuesNote
05:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2pre_dawn_cold_saturated: forecast low near 41F with outdoor
12:00d_cool 3; engage 1.15; all 1.35; pulse 60; gap 25; wt 2.4missed-sunrise dry-ramp fallback: if no new SUNRISE plan lan
20:00d_cool 3; engage 2.35; all 2.5; pulse 60; gap 60; wt 2friday_evening_unwind: RH rebounds and solar is gone; return

Changed secondary parameters:

TimeParameterChange
20:25bias_coolinitial 4
20:25bias_heatinitial 1
20:25d_heat_stage_2initial 3
20:25dwell_gate_msinitial 300000
20:25enthalpy_closeinitial 1
20:25enthalpy_openinitial -2
20:25fog_escalation_kpainitial 0.7
20:25heat_hysteresisinitial 1.5
20:25min_fog_off_sinitial 90
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 900
20:25mist_max_closed_vent_sinitial 150
20:25mist_thermal_relief_sinitial 90
20:25mister_all_delay_sinitial 300
20:25mister_engage_delay_sinitial 120
20:25mister_water_budget_galinitial 600
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
23:30bias_heat1 → 1.5
23:30fog_escalation_kpa0.7 → 1
23:30min_fog_off_s90 → 180
23:30mist_backoff_s900 → 1200
23:30mist_max_closed_vent_s150 → 120
23:30mister_all_delay_s300 → 600
23:30mister_engage_delay_s120 → 300
05:30bias_heat1.5 → 2
12:00bias_cool4 → 3
12:00bias_heat2 → 0
12:00fog_escalation_kpa1 → 0.25
12:00min_fog_off_s180 → 60
12:00mist_backoff_s1200 → 600
12:00mist_max_closed_vent_s120 → 180
12:00mister_all_delay_s600 → 90
12:00mister_engage_delay_s300 → 45
20:00bias_cool3 → 4
20:00bias_heat0 → 1
20:00fog_escalation_kpa0.25 → 1
20:00min_fog_off_s60 → 180
20:00mist_backoff_s600 → 1200
20:00mist_max_closed_vent_s180 → 120
20:00mister_all_delay_s90 → 600
20:00mister_engage_delay_s45 → 300

End-of-Day Summary

Climate

Temperature

61.7–80.2°F; avg 69.2°F

VPD

0.35–1.60 kPa; avg 0.73 kPa

Relative humidity

55.0–84.1%

Stress Hours

  • Heat stress (>85°F): 2.7h
  • VPD stress (>2.0 kPa): 2.1h
  • Cold stress (<55°F): 1.0h

Economics

Electric

USD 4.18

Gas

USD 1.45

Water

USD 0.560

Total

USD 6.19

Equipment Runtimes

EquipmentRuntimeReading
Fan 1133 minPrimary exhaust runtime.
Fan 2120 minSecondary exhaust runtime.
Vent242 minIntake vent runtime.
Fog34 minFogger runtime.
Heat 1 electric914 minElectric heater runtime.
Heat 2 gas140 minGas heater runtime.
Grow lights1129 minSupplemental lighting runtime.
Mister south0.15hSouth mister runtime.
Mister west0.03hWest mister runtime.
Mister center0.63hCenter mister runtime.

Water

  • Total: 116 gal
  • Mister: 33 gal

Crop Health (Gemini Vision)

CropZoneHealthObservationsNote
Canna Liliessouth73%4Observation notes are collapsed below to avoid publishing partial vision snippets.
Vanda Orchidscenter78%6Observation notes are collapsed below to avoid publishing partial vision snippets.
lettuceeast80%4Observation notes are collapsed below to avoid publishing partial vision snippets.
peppereast73%4Observation notes are collapsed below to avoid publishing partial vision snippets.
strawberryeast80%4Observation notes are collapsed below to avoid publishing partial vision snippets.
Vision observation notes
Canna LiliesGemini Vision notes

Canna Lilies look generally healthy, but soil moisture is reported as 0.0%, which could lead to stress if not addressed.

Vanda OrchidsGemini Vision notes

Hanging orchids appear generally healthy, some older leaves may be slightly yellowing but overall good condition.

lettuceGemini Vision notes

Seedlings appear healthy and are establishing well.

pepperGemini Vision notes

Seedlings appear healthy with no visible stress.

strawberryGemini Vision notes

Seedlings appear healthy with no visible stress.

Hourly Pattern

HourTemperatureVPDRH
12:0074.7°F0.73 kPa75.9%
13:0074.2°F0.72 kPa76.1%
14:0077.6°F1.21 kPa63.8%
15:0074.1°F0.81 kPa72.4%
16:0070.6°F0.59 kPa77.2%
17:0072.3°F0.82 kPa70.0%
18:0069.5°F0.94 kPa62.4%
19:0067.0°F0.68 kPa70.6%
20:0065.7°F0.49 kPa77.6%
21:0065.1°F0.45 kPa79.1%
22:0063.4°F0.38 kPa80.9%
23:0063.5°F0.38 kPa81.1%
00:0063.3°F0.39 kPa80.4%
01:0063.5°F0.41 kPa79.8%
02:0063.3°F0.41 kPa79.5%
03:0063.3°F0.43 kPa78.7%
04:0063.5°F0.45 kPa77.9%
05:0064.1°F0.48 kPa76.6%
06:0065.6°F0.58 kPa73.5%
07:0068.2°F0.70 kPa71.0%
08:0071.4°F0.82 kPa69.3%
09:0072.6°F0.87 kPa68.8%
10:0073.1°F0.79 kPa72.0%
11:0075.0°F0.76 kPa75.3%

7-Day Stress Context

DateHeatVPD highCold
2026-05-155.8h6.3h0.2h
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