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

7

Plan writes

3

No-change acknowledgements

4

Pending

0

EventDeliveredTypeStatusNote
End-of-day review and reset00:16MIDNIGHTplan_writtenWrote public plan iris-20260520-0026. Resolved 00:20 MDT.
Morning planning cycle05:41SUNRISEplan_writtenWrote public plan iris-20260520-0541. Resolved 05:44 MDT.
Solar peak planning checkpoint13:00SOLAR_MAXackedAcknowledged: SOLAR_MAX no-change: live solar 148 W/m² is not overshooting the corrected afternoon peak, controller is IDLE, greenhouse VPD is 0.62 kPa below the 0.75-1.30 band with dp margin 7.3F, and the active SUNRISE plan already has a cautious 14:30 moisture relaxation if the afternoon VPD rise materializes. Retrieved prior cool/cloudy cases warn against adding dry-day mist/fog posture while VPD-low risk is present. Resolved 13:01 MDT.
Peak Stress14:57TRANSITIONackedAcknowledged: Peak-stress transition checked: greenhouse is tracking the SUNRISE plan without a concrete need for tactical change. Current climate is IDLE at 77.1F, VPD 1.06 kPa, RH 67%, dew-point margin 11.7F; temp and average VPD are inside active band, no relays are active, and the plan already has live-confirmed afternoon moisture readiness plus dispatcher moisture guardrails for localized VPD-high. No tunable change made. Resolved 14:58 MDT.
Forecast deviation15:24FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed: observed solar ~52 W/m2 vs forecast 755 W/m2, but greenhouse is IDLE at 72.2F with VPD 0.62 kPa, RH 77%, dew margin 7.7F; equipment shows vent/fans/fog/misters off and only heat1 on. Diagnosis is cloud/solar forecast error, not equipment failure. No tunable change needed because current conditions are cool/humid and moisture equipment is already inactive; avoid adding a fake plan or unnecessary setpoint churn. Resolved 15:25 MDT.
Decline19:15TRANSITIONackedAcknowledged: Decline checkpoint tracking existing plan: greenhouse is IDLE/within band at 67.1F and 0.72 kPa VPD with safe 10.6F dew margin; no mist/fog/vent active; scheduled 19:30 waypoint already unwinds to conservative evening moisture posture, so no immediate tunable change warranted. Resolved 19:16 MDT.
Evening planning cycle20:16SUNSETplan_writtenWrote public plan iris-20260520-2016. Resolved 20:18 MDT.

🌅 Morning Cycle (12:20 AM) — iris-20260520-0026

Status

Daily Summary So Far

Outcome score

not validated yet

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

Daily Summary So Far — this cycle will be validated at the next planning cycle.

Hypothesis

Testing: Midnight experiment: hold the validated conservative moisture posture through saturated dawn, then only cautiously relax on Wednesday’s cool afternoon unless live VPD confirms a real dry ramp. Expected outcome: For the midnight-to-sunrise window: VPD-high 0h, VPD-low 0.2h, cold stress 0.3h, dp_risk_hours 0, and water use near zero. For Wednesday fallback before the next plan: preserve VPD compliance without aggressive misting; expect score loss, if any, to be temperature-band alignment rather than humidity stress.

Conditions

Outdoor peak

57.0°F

RH minimum

64.0%

Solar peak

572.0 W/m²

Cloud average

66.0%

Cold saturated pre-dawn near 44F and 90-96% RH, then cool cloudy Wednesday with raw outdoor VPD only 0.50-0.58 kPa late day. Current indoor VPD is 0.44 with 6.6F dew margin. Primary near-term risk is VPD-low/condensation from unnecessary wetting and temperature crop-band alignment, not VPD-high.

Expected stress windows

coldlow · 2026-05-20T00:25:00-06:00 to 2026-05-20T08:30:00-06:00

bias_heat 2.0 then 1.8, bias_cool +4, d_heat_stage_2 3, heat_hysteresis 1.5, dwell gate ON, normal heat timers.

vpd_lowmedium · 2026-05-20T00:25:00-06:00 to 2026-05-20T11:30:00-06:00

mister_engage_kpa 2.45, all 2.5, engage/all delays 300/600s, 60s gaps, fog_escalation 1.0, vpd_hysteresis 0.5, sealed cap 120s.

vpd_highlow · 2026-05-20T14:30:00-06:00 to 2026-05-20T19:30:00-06:00

only a cautious relaxation to engage 2.0, all 2.4, gap 50, fog_escalation 0.9 because forecast VPD remains below/near the band and live confirmation is required before aggressive misting.

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

fallback only: band-coupled mist/fog posture if the next SUNRISE plan is missed and Thursday actually turns dry.

Parameter rationale

mister_engage_kpa2.45 → 2.45; Pre-dawn outdoor VPD 0.04-0.11 kPa and indoor VPD 0.44; lessons 98/103/124 favor preventing VPD-low until live VPD rises.

Keep pre-dawn VPD-low near 0h and dp-risk at 0h.

mister_pulse_gap_s60.0 → 60.0; High RH and dew margin only 6.6F; added moisture is not needed before sunrise.

Prevent unnecessary wetting and water use.

fog_escalation_kpa1.0 → 1.0; Fog blocked overnight and unnecessary in saturated air; Wednesday raw outdoor VPD stays under 0.6 kPa.

Avoid fog-driven VPD-low/condensation.

bias_heat2.0 → 2.0; Outdoor holds 44-45F through dawn and heat1 is active; gas staging is appropriate but should not chase every crop-band artifact.

Keep cold stress low without creating vent/heat whipsaw.

bias_cool4.0 → 4.0; Heaters are expected to run; validated lesson favors +4 overnight to avoid heater-to-vent dumps.

Maintain stable heat and avoid cold whipsaw.

mist_max_closed_vent_s120.0 → 120.0; Saturated outdoor air and dew margin near the 5F caution line justify short sealed residence.

Maintain dp-risk hours at 0.

vpd_hysteresis0.5 → 0.5; Cool high-RH periods can oscillate around the low band; wider hysteresis reduces chatter.

Reduce dehum/mist cycling without allowing VPD-high stress.

Setpoints

Wednesday May 20

Primary crop-band changes:

TimeValuesNote
00:26hyst 0.5Midnight reset: preserve validated cold/saturated overnight
04:30hyst 0.5Coldest/saturated pre-dawn block: keep moisture suppressed a
08:30hyst 0.5Sunrise ramp remains humid/cool; taper heat slightly but do
11:30hyst 0.5Cool cloudy late morning: modestly reduce heat bias, maintai
15:30hyst 0.5Only expected Wednesday dry shoulder: cautious readiness wit
20:30hyst 0.5Evening unwind and next cold night: return to high moisture

Tactical tunable changes:

TimeValuesNote
00:26d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Midnight reset: preserve validated cold/saturated overnight
04:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Coldest/saturated pre-dawn block: keep moisture suppressed a
08:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Sunrise ramp remains humid/cool; taper heat slightly but do
11:30d_cool 3; engage 2.2; all 2.5; pulse 60; gap 55; wt 2Cool cloudy late morning: modestly reduce heat bias, maintai
15:30d_cool 3; engage 2; all 2.4; pulse 60; gap 50; wt 2Only expected Wednesday dry shoulder: cautious readiness wit
20:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Evening unwind and next cold night: return to high moisture

Thursday May 21

Primary crop-band changes:

TimeValuesNote
11:30hyst 0.35Fallback only if later plans miss: Thursday forecast begins
14:00hyst 0.35Fallback Thursday dry peak: VPD forecast 1.3-2.1 kPa, use sh
19:30hyst 0.5Fallback post-dry-ramp unwind before rainy/high-RH night: pr

Tactical tunable changes:

TimeValuesNote
11:30d_cool 3; engage 1.15; all 1.45; pulse 60; gap 25; wt 2.5Fallback only if later plans miss: Thursday forecast begins
14:00d_cool 3; engage 0.95; all 1.1; pulse 60; gap 20; wt 3Fallback Thursday dry peak: VPD forecast 1.3-2.1 kPa, use sh
19:30d_cool 3; engage 2.35; all 2.5; pulse 60; gap 60; wt 2Fallback post-dry-ramp unwind before rainy/high-RH night: pr

Changed secondary parameters:

TimeParameterChange
00:26bias_coolinitial 4
00:26bias_heatinitial 2
00:26d_heat_stage_2initial 3
00:26dwell_gate_msinitial 300000
00:26enthalpy_closeinitial 1
00:26enthalpy_openinitial -2
00:26fog_escalation_kpainitial 1
00:26heat_hysteresisinitial 1.5
00:26min_fog_off_sinitial 180
00:26min_fog_on_sinitial 45
00:26min_heat_off_sinitial 180
00:26min_heat_on_sinitial 120
00:26min_vent_off_sinitial 60
00:26min_vent_on_sinitial 60
00:26mist_backoff_sinitial 2400
00:26mist_max_closed_vent_sinitial 120
00:26mist_thermal_relief_sinitial 90
00:26mister_all_delay_sinitial 600
00:26mister_engage_delay_sinitial 300
00:26mister_water_budget_galinitial 600
00:26outdoor_staleness_max_sinitial 600
00:26sw_dwell_gate_enabledinitial 1
00:26sw_fog_closes_ventinitial 1
00:26sw_fsm_controller_enabledinitial 1
00:26sw_mister_closes_ventinitial 1
00:26sw_summer_vent_enabledinitial 1
00:26temp_hysteresisinitial 2
00:26vent_prefer_dp_delta_finitial 5
00:26vent_prefer_temp_delta_finitial 5
00:26vpd_watch_dwell_sinitial 120
08:30bias_heat2 → 1.8
11:30bias_heat1.8 → 1.4
11:30mister_all_delay_s600 → 480
11:30mister_engage_delay_s300 → 240
15:30bias_heat1.4 → 1.2
15:30fog_escalation_kpa1 → 0.9
15:30mist_backoff_s2400 → 1800
15:30mister_all_delay_s480 → 360
15:30mister_engage_delay_s240 → 180
20:30bias_heat1.2 → 2
20:30fog_escalation_kpa0.9 → 1
20:30mist_backoff_s1800 → 2400
20:30mister_all_delay_s360 → 600
20:30mister_engage_delay_s180 → 300
11:30bias_cool4 → 3
11:30bias_heat2 → 0.8
11:30fog_escalation_kpa1 → 0.35
11:30min_fog_off_s180 → 90
11:30mist_backoff_s2400 → 900
11:30mist_max_closed_vent_s120 → 180
11:30mister_all_delay_s600 → 120
11:30mister_engage_delay_s300 → 45
11:30temp_hysteresis2 → 1.5
11:30vpd_watch_dwell_s120 → 60
14:00bias_heat0.8 → 0.5
14:00fog_escalation_kpa0.35 → 0.2
14:00min_fog_off_s90 → 60
14:00mist_backoff_s900 → 600
14:00mister_all_delay_s120 → 60
14:00mister_engage_delay_s45 → 30
14:00vpd_watch_dwell_s60 → 45
19:30bias_cool3 → 4
19:30bias_heat0.5 → 1.5
19:30fog_escalation_kpa0.2 → 0.9
19:30min_fog_off_s60 → 180
19:30mist_backoff_s600 → 2400
19:30mist_max_closed_vent_s180 → 120
19:30mister_all_delay_s60 → 600
19:30mister_engage_delay_s30 → 300
19:30temp_hysteresis1.5 → 2
19:30vpd_watch_dwell_s45 → 120

🌅 Morning Cycle (5:44 AM) — iris-20260520-0541

Status

validated

Outcome score

5/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-20260519-2014

Previous hypothesis: SUNSET overnight plan for Tuesday 2026-05-19. Today was a strong recovery day versus the 7-day trend: score 86.2, both-axis compliance 87.1%, temp compliance 90.7%, VPD compliance 95.3%, 0 dew-risk hours, and USD 2.61 cost versus a USD 3.91 7-day average. The binding stress was cold/crop-band alignment, not dry-air stress: cold stress 1.77h led the stress stack, with VPD-low 0.82h, VPD-high only 0.12h, and heat 0.10h. The evaluated sunrise plan scored 7/10 with anchor 7; conservative moisture posture protected VPD-high/water/dew risk, but lessons 98 and 99 were validated because mist/fog suppression alone still left some low-VPD time on a cool saturated day. Tonight remains cold and saturated: 45F falling to 43F, RH 90-95%, outdoor VPD 0.05-0.10 kPa, 100% cloud, and no solar. Current house is IDLE near 64F, VPD 0.49 kPa, RH 77%, dew margin 7.5F… Result: Plan-window scorecard for 2026-05-20 SUNRISE: planner score 58.9, both-axis compliance 62.1%, temp compliance 72.6%, VPD compliance 70.9%, total stress 3.49h. Stress breakdown: heat 0.85h, cold 0.55h, VPD-high 0.32h, VPD-low 1.29h. Forecast temperature was accurate but solar was severely under-forecast: predicted peak 644 W/m2, actual 1130 W/m2. The cautious live-confirmed moisture plan met the VPD-high target (<1h) and kept dew-risk at 0h, but missed the VPD-low target (<0.5h) and left weak both-axis compliance. Dispatcher moisture guardrail repeatedly clamped the afternoon moisture thresholds, showing the plan was too conservative once live VPD/high-solar stress emerged. Overall: partial success on dew safety and VPD-high prevention, underperformance on VPD-low and temperature alignment. Score: 5/10

New finding: When a cool humid dawn is followed by actual solar near/above 1000 W/m2, do not let a cautious live-confirmed moisture ramp continue to request thresholds that the VPD-high moisture guardrail will clamp. Once live VPD is near or above band with healthy dew margin, write guardrail-aware band-coupled moisture values directly (engage near vpd_high+0.05, all near vpd_high+0.25, fog_escalation ~0.2, short delays/gaps), then unwind only after observed recovery. → Added to Lessons Learned

Hypothesis

Testing: Live-confirmed moisture ramp: keep saturated dawn conservative, then cautiously relax only in the 14:30-17:30 window to see whether VPD-high can remain near zero without adding VPD-low or dew-risk hours. Expected outcome: Target today: planner score >85, both-axis compliance >=85%, temp compliance near 90%, VPD compliance >=95%, VPD-high <0.5h, VPD-low <0.5h, dp-risk 0h, and total cost below the 7-day average with gas still the dominant cost driver.

Conditions

Outdoor peak

59.0°F

RH minimum

58.0%

Solar peak

644.0 W/m²

Cloud average

47.0%

Cool saturated dawn near 43F/96% outdoor RH with indoor VPD 0.54 kPa and 8.2F dew margin. Raw forecast reaches only 0.71 kPa outdoor VPD late afternoon, and recent forecast bias suggests the real VPD ramp may be milder. Main risks are VPD-low/condensation from unnecessary wetting, structural spring morning temperature compliance loss, and a secondary risk that solar briefly exceeds forecast.

Expected stress windows

coldlow · 2026-05-20T05:45:00-06:00 to 2026-05-20T10:30:00-06:00

bias_heat 2.0 tapering to 1.8, bias_cool +4, d_heat_stage_2 3, heat_hysteresis 1.5, dwell gate on.

vpd_lowmedium · 2026-05-20T05:45:00-06:00 to 2026-05-20T13:30:00-06:00

mister_engage_kpa 2.45 to 2.25, mister_all_kpa 2.5, long mist delays, 55-60s gaps, fog_escalation 0.95-1.0, vpd_hysteresis 0.5, short 120s sealed cap.

vpd_highlow · 2026-05-20T14:00:00-06:00 to 2026-05-20T18:30:00-06:00

cautious live-confirmed relaxation to engage 1.9-2.0, all 2.25-2.35, 45-50s gaps, fog_escalation 0.8-0.9; not a true dry-day posture unless observed VPD rises.

vpd_highmedium · 2026-05-21T13:00:00-06:00 to 2026-05-21T19:00:00-06:00

fallback only: band-coupled dry-ramp support with engage 1.2, all 1.35, 25s gaps, fog_escalation 0.30, and shorter delays if the next plan is missed.

Parameter rationale

mister_engage_kpa2.45 → 2.45; Dawn outdoor RH 90-96%, raw VPD 0.09-0.20 kPa, indoor RH 75%, and lessons 98/99/103 warn that cool humid days are VPD-low risk first.

Keep morning VPD-low under 0.5h and dp-risk at 0h while avoiding unnecessary wetting.

mister_engage_kpa2.45 → 1.9; Afternoon raw VPD rises to 0.59-0.71 kPa with solar 349-644 W/m2, but forecast VPD has recently overshot reality by ~0.52 kPa; use only cautious live-confirmed readiness.

Prevent a surprise solar-driven VPD-high breakout above about 1h without causing VPD-low overshoot.

fog_escalation_kpa1.0 → 0.8; Fog should stay conservative through the humid morning but be slightly more available late afternoon if live VPD rises while dew margin remains healthy.

Avoid morning fog, keep dp-risk 0h, and catch only stubborn afternoon VPD-high.

mister_pulse_gap_s60.0 → 45.0; Only the late afternoon has any dry-ramp signal; before then lesson 103 favors wider gaps.

Reduce VPD-high risk in the solar shoulder without water waste or prolonged low VPD.

bias_heat2.0 → 1.2; Outdoor warms from 43F to upper 50s; yesterday's bottleneck was temperature alignment but not dangerous cold.

Limit morning cold score loss while avoiding heat overshoot and gas overuse after the morning ramp.

bias_cool4.0 → 4.0; Heat may still run during the cold humid morning; high-confidence lesson keeps +4 to prevent heater-to-vent whipsaw.

Keep vent-dump cold stress low and temp compliance near or above yesterday's 90%.

vpd_hysteresis0.5 → 0.5; Cool/high-RH days can bounce around the low VPD band and localized spread remains material.

Reduce dehum/mist chatter without narrowing the compliance band.

mist_max_closed_vent_s120.0 → 120.0; Dew margin is currently safe but outdoor air is saturated at dawn and RH rebounds tonight.

Keep condensation risk at 0h even if a sealed-mist state is briefly entered.

Setpoints

Wednesday May 20

Primary crop-band changes:

TimeValuesNote
05:45hyst 0.5Saturated dawn: keep moisture suppressed, protect dew margin
09:30hyst 0.5Morning ramp remains humid/cool; taper heat slightly but do
12:00hyst 0.5Solar is present but outdoor VPD is still modest; cautiously
14:30hyst 0.5Modest afternoon VPD/solar peak; provide guarded mist readin
16:30hyst 0.5Late-afternoon maximum raw VPD; one more guarded relaxation
19:30hyst 0.5Evening RH rebound: unwind moisture support before saturated

Tactical tunable changes:

TimeValuesNote
05:45d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Saturated dawn: keep moisture suppressed, protect dew margin
09:30d_cool 3; engage 2.35; all 2.5; pulse 60; gap 60; wt 2Morning ramp remains humid/cool; taper heat slightly but do
12:00d_cool 3; engage 2.25; all 2.5; pulse 60; gap 55; wt 2Solar is present but outdoor VPD is still modest; cautiously
14:30d_cool 3; engage 2; all 2.35; pulse 60; gap 50; wt 2Modest afternoon VPD/solar peak; provide guarded mist readin
16:30d_cool 3; engage 1.9; all 2.25; pulse 60; gap 45; wt 2Late-afternoon maximum raw VPD; one more guarded relaxation
19:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Evening RH rebound: unwind moisture support before saturated

Thursday May 21

Primary crop-band changes:

TimeValuesNote
08:30hyst 0.5Thursday fallback saturated/foggy morning if later plan is m
14:00hyst 0.4Thursday missed-plan fallback for a sharper dry ramp: switch

Tactical tunable changes:

TimeValuesNote
08:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2Thursday fallback saturated/foggy morning if later plan is m
14:00d_cool 3; engage 1.2; all 1.35; pulse 60; gap 25; wt 2.5Thursday missed-plan fallback for a sharper dry ramp: switch

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 1
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 2400
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 600
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 2
05:45vent_prefer_dp_delta_finitial 5
05:45vent_prefer_temp_delta_finitial 5
05:45vpd_watch_dwell_sinitial 120
09:30bias_heat2 → 1.8
09:30mister_engage_delay_s300 → 240
12:00bias_heat1.8 → 1.4
12:00fog_escalation_kpa1 → 0.95
12:00min_fog_off_s180 → 150
12:00mister_all_delay_s600 → 420
12:00mister_engage_delay_s240 → 180
14:30bias_heat1.4 → 1.2
14:30fog_escalation_kpa0.95 → 0.9
14:30min_fog_off_s150 → 120
14:30mist_backoff_s2400 → 1800
14:30mister_all_delay_s420 → 300
14:30mister_engage_delay_s180 → 120
16:30fog_escalation_kpa0.9 → 0.8
16:30mister_all_delay_s300 → 240
16:30mister_engage_delay_s120 → 90
19:30bias_heat1.2 → 1.8
19:30fog_escalation_kpa0.8 → 1
19:30min_fog_off_s120 → 180
19:30mist_backoff_s1800 → 2400
19:30mister_all_delay_s240 → 600
19:30mister_engage_delay_s90 → 300
08:30bias_heat1.8 → 2
14:00bias_cool4 → 3
14:00bias_heat2 → 0.5
14:00fog_escalation_kpa1 → 0.3
14:00min_fog_off_s180 → 60
14:00mist_backoff_s2400 → 1200
14:00mist_max_closed_vent_s120 → 180
14:00mister_all_delay_s600 → 90
14:00mister_engage_delay_s300 → 45
14:00vpd_watch_dwell_s120 → 60

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

Status

Daily Summary So Far

Outcome score

not validated yet

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

Daily Summary So Far — this cycle will be validated at the next planning cycle.

Hypothesis

Testing: Guardrail-aware fallback after humid dawn: suppress moisture overnight, but if the SUNRISE cycle is missed and live dry-ramp conditions arrive, use band-coupled moisture values directly instead of conservative requests that the VPD-high guardrail will clamp. Expected outcome: Overnight: 0 dew-risk hours, minimum dew margin above 5F, additional VPD-low under about 1h, cold stress under about 1.5h, and no heater-to-vent oscillation. If SUNRISE is missed and the dry-ramp fallback governs, target VPD-high under about 1.5h with fewer moisture-guardrail holds than today.

Conditions

Outdoor peak

68.0°F

RH minimum

32.0%

Solar peak

1003.0 W/m²

Cloud average

45.0%

Sunset cycle starts with cold saturated overnight pressure: 50F falling to 41F, RH 80-95%, outdoor VPD 0.05-0.24 kPa, no solar, current indoor dew margin 7.4F. Thursday afternoon has a possible dry/solar ramp to 65-68F, 32-43% RH, raw VPD 1.22-1.56 kPa and solar near 1000 W/m2, but recent forecast bias says wait for live confirmation unless the next SUNRISE plan is missed.

Expected stress windows

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

Keep mist/fog suppressed overnight: mister_engage_kpa 2.45, mister_all_kpa 2.5, 300/600s mist delays, 60s gaps, fog_escalation 1.0, vpd_hysteresis 0.5, mist_max_closed_vent_s 120.

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

bias_cool +4, bias_heat 1.8 rising to 2.0 pre-dawn, d_heat_stage_2 3, heat_hysteresis 1.5, dwell gate ON to prevent heater-to-vent oscillation while allowing gas support.

vpd_highmedium · 2026-05-21T13:00:00-06:00 to 2026-05-21T19:00:00-06:00

Fallback only if SUNRISE is missed: guardrail-aware band-coupled moisture support with engage 1.2, all 1.4, 45/90s delays, 25s gap, fog_escalation 0.25, min_fog_off_s 60, vpd_watch_dwell_s 60, mist_max_closed_vent_s 180.

Parameter rationale

bias_cool4.0 → 4.0; Heaters are expected with outdoor 41-50F and high RH; validated lessons favor +3 to +4 overnight to avoid heater-to-vent dumps.

Avoid vent-driven cold whipsaw and keep overnight cold stress under about 1.5h.

bias_heat1.8 → 2.0; Pre-dawn forecast reaches 41F with saturated air; gas heat is efficient and slab alone may sit near the lower crop band.

Limit pre-dawn cold stress without chasing continuous heating or raising crop bands.

mister_engage_kpa2.45 → 2.45; Overnight outdoor VPD is 0.05-0.24 kPa and today's dominant stress was VPD-low at 2.53h; lessons 98/99 say added moisture is the wrong direction while dew margin is safe.

Keep overnight misting near zero, dp-risk at 0h, and avoid adding to VPD-low stress.

mister_pulse_gap_s60.0 → 60.0; Cold high-RH night holds moisture; long gaps are safer until observed VPD rises after sunrise.

Prevent unnecessary wetting and keep mister water low.

fog_escalation_kpa1.0 → 1.0; Fog is blocked overnight by the time window and unnecessary in saturated air.

Avoid fog-driven VPD-low/condensation while keeping dp margin above 5F.

mist_max_closed_vent_s120.0 → 120.0; Dew margin is safe at 7.4F but saturated outdoor air can shrink it; any accidental sealed-mist state should remain short.

Maintain 0 dew-risk hours.

fog_escalation_kpa1.0 → 0.25; Thursday afternoon fallback has raw VPD 1.2-1.6 kPa and solar near 1000 W/m2; the evaluated sunrise plan showed conservative values were clamped by the VPD-high guardrail.

If SUNRISE is missed, avoid fighting the moisture guardrail and keep VPD-high under about 1.5h without extending sealed heat traps.

Setpoints

Wednesday May 20

Primary crop-band changes:

TimeValuesNote
20:20hyst 0.5evening_settle: cold saturated night begins; suppress added
23:00hyst 0.5midnight_posture: outdoor RH rises near 90%; keep moisture s

Tactical tunable changes:

TimeValuesNote
20:20d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2evening_settle: cold saturated night begins; suppress added
23:00d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2midnight_posture: outdoor RH rises near 90%; keep moisture s

Thursday May 21

Primary crop-band changes:

TimeValuesNote
04:30hyst 0.5pre_dawn_coldest: forecast bottoms near 41F with RH above 90
08:30hyst 0.5dawn_handoff: still cool and humid, but solar begins; ease h
13:30hyst 0.45missed-SUNRISE dry-ramp fallback: raw forecast reaches 65-68

Tactical tunable changes:

TimeValuesNote
04:30d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2pre_dawn_coldest: forecast bottoms near 41F with RH above 90
08:30d_cool 3; engage 2.35; all 2.5; pulse 60; gap 55; wt 2dawn_handoff: still cool and humid, but solar begins; ease h
13:30d_cool 3; engage 1.2; all 1.4; pulse 60; gap 25; wt 2.5missed-SUNRISE dry-ramp fallback: raw forecast reaches 65-68

Changed secondary parameters:

TimeParameterChange
20:20bias_coolinitial 4
20:20bias_heatinitial 1.8
20:20d_heat_stage_2initial 3
20:20dwell_gate_msinitial 300000
20:20enthalpy_closeinitial 1
20:20enthalpy_openinitial -2
20:20fog_escalation_kpainitial 1
20:20heat_hysteresisinitial 1.5
20:20min_fog_off_sinitial 180
20:20min_fog_on_sinitial 45
20:20min_heat_off_sinitial 180
20:20min_heat_on_sinitial 120
20:20min_vent_off_sinitial 60
20:20min_vent_on_sinitial 60
20:20mist_backoff_sinitial 2400
20:20mist_max_closed_vent_sinitial 120
20:20mist_thermal_relief_sinitial 90
20:20mister_all_delay_sinitial 600
20:20mister_engage_delay_sinitial 300
20:20mister_water_budget_galinitial 600
20:20outdoor_staleness_max_sinitial 600
20:20sw_dwell_gate_enabledinitial 1
20:20sw_fog_closes_ventinitial 1
20:20sw_fsm_controller_enabledinitial 1
20:20sw_mister_closes_ventinitial 1
20:20sw_summer_vent_enabledinitial 1
20:20temp_hysteresisinitial 2
20:20vent_prefer_dp_delta_finitial 5
20:20vent_prefer_temp_delta_finitial 5
20:20vpd_watch_dwell_sinitial 120
23:00bias_heat1.8 → 1.9
04:30bias_heat1.9 → 2
08:30bias_heat2 → 1.5
08:30fog_escalation_kpa1 → 0.95
08:30mist_backoff_s2400 → 1800
08:30mister_engage_delay_s300 → 240
13:30bias_cool4 → 3
13:30bias_heat1.5 → 0.5
13:30d_heat_stage_23 → 4
13:30fog_escalation_kpa0.95 → 0.25
13:30heat_hysteresis1.5 → 1.2
13:30min_fog_off_s180 → 60
13:30mist_backoff_s1800 → 600
13:30mist_max_closed_vent_s120 → 180
13:30mister_all_delay_s600 → 90
13:30mister_engage_delay_s240 → 45
13:30temp_hysteresis2 → 1.8
13:30vpd_watch_dwell_s120 → 60

Daily Summary So Far

Climate

Temperature

61.7–80.3°F; avg 68.9°F

VPD

0.33–1.71 kPa; avg 0.65 kPa

Relative humidity

52.4–83.1%

Stress Hours

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

Economics

Electric

USD 5.27

Gas

USD 1.64

Water

USD 0.240

Total

USD 7.15

Equipment Runtimes

EquipmentRuntimeReading
Fan 165 minPrimary exhaust runtime.
Fan 247 minSecondary exhaust runtime.
Vent99 minIntake vent runtime.
Fog9 minFogger runtime.
Heat 1 electric1195 minElectric heater runtime.
Heat 2 gas158 minGas heater runtime.
Grow lights1433 minSupplemental lighting runtime.
Mister south0.07hSouth mister runtime.
Mister west0.03hWest mister runtime.
Mister center0.11hCenter mister runtime.

Water

  • Total: 49 gal
  • Mister: 2 gal

Crop Health (Gemini Vision)

CropZoneHealthObservationsNote
Canna Liliessouth70%4Observation notes are collapsed below to avoid publishing partial vision snippets.
Vanda Orchidscenter77%6Observation notes are collapsed below to avoid publishing partial vision snippets.
lettuceeast78%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 look generally healthy, but soil moisture is critically low.

Vanda OrchidsGemini Vision notes

Hanging orchids appear healthy with good leaf color.

lettuceGemini Vision notes

Seedlings appear healthy and are establishing well.

pepperGemini Vision notes

Seedlings appear healthy, but difficult to assess fully in IR light.

strawberryGemini Vision notes

Seedlings appear healthy, but difficult to assess fully in IR light.

Hourly Pattern

HourTemperatureVPDRH
12:0073.0°F0.79 kPa72.5%
13:0074.1°F0.88 kPa70.3%
14:0074.2°F0.88 kPa69.9%
15:0073.7°F0.81 kPa71.8%
16:0072.1°F0.74 kPa72.8%
17:0071.6°F0.72 kPa73.1%
18:0068.1°F0.59 kPa75.2%
19:0065.7°F0.52 kPa76.2%
20:0063.7°F0.44 kPa78.8%
21:0063.3°F0.40 kPa80.4%
22:0063.3°F0.39 kPa80.7%
23:0063.5°F0.38 kPa81.0%
00:0063.5°F0.39 kPa80.9%
01:0063.4°F0.39 kPa80.6%
02:0063.4°F0.40 kPa80.1%
03:0063.3°F0.41 kPa79.3%
04:0063.4°F0.43 kPa78.7%
05:0064.1°F0.46 kPa77.7%
06:0066.1°F0.58 kPa74.0%
07:0068.2°F0.69 kPa71.1%
08:0070.8°F0.74 kPa72.1%
09:0073.4°F0.85 kPa71.1%
10:0073.0°F0.73 kPa74.4%
11:0074.9°F0.82 kPa73.2%

7-Day Stress Context

DateHeatVPD highCold
2026-05-1411.4h10.9h0.0h
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.7h0.6h1.1h