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.
7
3
4
0
| Event | Delivered | Type | Status | Note |
|---|---|---|---|---|
| End-of-day review and reset | 00:16 | MIDNIGHT | plan_written | Wrote public plan iris-20260520-0026. Resolved 00:20 MDT. |
| Morning planning cycle | 05:41 | SUNRISE | plan_written | Wrote public plan iris-20260520-0541. Resolved 05:44 MDT. |
| Solar peak planning checkpoint | 13:00 | SOLAR_MAX | acked | Acknowledged: 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 Stress | 14:57 | TRANSITION | acked | Acknowledged: 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 deviation | 15:24 | FORECAST_DEVIATION | acked | Acknowledged: 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. |
| Decline | 19:15 | TRANSITION | acked | Acknowledged: 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 cycle | 20:16 | SUNSET | plan_written | Wrote public plan iris-20260520-2016. Resolved 20:18 MDT. |
🌅 Morning Cycle (12:20 AM) — iris-20260520-0026
Daily Summary So Far
not validated yet
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
57.0°F
64.0%
572.0 W/m²
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
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.
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.
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.
fallback only: band-coupled mist/fog posture if the next SUNRISE plan is missed and Thursday actually turns dry.
Parameter rationale
Keep pre-dawn VPD-low near 0h and dp-risk at 0h.
Prevent unnecessary wetting and water use.
Avoid fog-driven VPD-low/condensation.
Keep cold stress low without creating vent/heat whipsaw.
Maintain stable heat and avoid cold whipsaw.
Maintain dp-risk hours at 0.
Reduce dehum/mist cycling without allowing VPD-high stress.
Setpoints
Wednesday May 20
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:26 | hyst 0.5 | Midnight reset: preserve validated cold/saturated overnight |
| 04:30 | hyst 0.5 | Coldest/saturated pre-dawn block: keep moisture suppressed a |
| 08:30 | hyst 0.5 | Sunrise ramp remains humid/cool; taper heat slightly but do |
| 11:30 | hyst 0.5 | Cool cloudy late morning: modestly reduce heat bias, maintai |
| 15:30 | hyst 0.5 | Only expected Wednesday dry shoulder: cautious readiness wit |
| 20:30 | hyst 0.5 | Evening unwind and next cold night: return to high moisture |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:26 | d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | Midnight reset: preserve validated cold/saturated overnight |
| 04:30 | d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | Coldest/saturated pre-dawn block: keep moisture suppressed a |
| 08:30 | d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | Sunrise ramp remains humid/cool; taper heat slightly but do |
| 11:30 | d_cool 3; engage 2.2; all 2.5; pulse 60; gap 55; wt 2 | Cool cloudy late morning: modestly reduce heat bias, maintai |
| 15:30 | d_cool 3; engage 2; all 2.4; pulse 60; gap 50; wt 2 | Only expected Wednesday dry shoulder: cautious readiness wit |
| 20:30 | d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | Evening unwind and next cold night: return to high moisture |
Thursday May 21
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 11:30 | hyst 0.35 | Fallback only if later plans miss: Thursday forecast begins |
| 14:00 | hyst 0.35 | Fallback Thursday dry peak: VPD forecast 1.3-2.1 kPa, use sh |
| 19:30 | hyst 0.5 | Fallback post-dry-ramp unwind before rainy/high-RH night: pr |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 11:30 | d_cool 3; engage 1.15; all 1.45; pulse 60; gap 25; wt 2.5 | Fallback only if later plans miss: Thursday forecast begins |
| 14:00 | d_cool 3; engage 0.95; all 1.1; pulse 60; gap 20; wt 3 | Fallback Thursday dry peak: VPD forecast 1.3-2.1 kPa, use sh |
| 19:30 | d_cool 3; engage 2.35; all 2.5; pulse 60; gap 60; wt 2 | Fallback post-dry-ramp unwind before rainy/high-RH night: pr |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 00:26 | bias_cool | initial 4 |
| 00:26 | bias_heat | initial 2 |
| 00:26 | d_heat_stage_2 | initial 3 |
| 00:26 | dwell_gate_ms | initial 300000 |
| 00:26 | enthalpy_close | initial 1 |
| 00:26 | enthalpy_open | initial -2 |
| 00:26 | fog_escalation_kpa | initial 1 |
| 00:26 | heat_hysteresis | initial 1.5 |
| 00:26 | min_fog_off_s | initial 180 |
| 00:26 | min_fog_on_s | initial 45 |
| 00:26 | min_heat_off_s | initial 180 |
| 00:26 | min_heat_on_s | initial 120 |
| 00:26 | min_vent_off_s | initial 60 |
| 00:26 | min_vent_on_s | initial 60 |
| 00:26 | mist_backoff_s | initial 2400 |
| 00:26 | mist_max_closed_vent_s | initial 120 |
| 00:26 | mist_thermal_relief_s | initial 90 |
| 00:26 | mister_all_delay_s | initial 600 |
| 00:26 | mister_engage_delay_s | initial 300 |
| 00:26 | mister_water_budget_gal | initial 600 |
| 00:26 | outdoor_staleness_max_s | initial 600 |
| 00:26 | sw_dwell_gate_enabled | initial 1 |
| 00:26 | sw_fog_closes_vent | initial 1 |
| 00:26 | sw_fsm_controller_enabled | initial 1 |
| 00:26 | sw_mister_closes_vent | initial 1 |
| 00:26 | sw_summer_vent_enabled | initial 1 |
| 00:26 | temp_hysteresis | initial 2 |
| 00:26 | vent_prefer_dp_delta_f | initial 5 |
| 00:26 | vent_prefer_temp_delta_f | initial 5 |
| 00:26 | vpd_watch_dwell_s | initial 120 |
| 08:30 | bias_heat | 2 → 1.8 |
| 11:30 | bias_heat | 1.8 → 1.4 |
| 11:30 | mister_all_delay_s | 600 → 480 |
| 11:30 | mister_engage_delay_s | 300 → 240 |
| 15:30 | bias_heat | 1.4 → 1.2 |
| 15:30 | fog_escalation_kpa | 1 → 0.9 |
| 15:30 | mist_backoff_s | 2400 → 1800 |
| 15:30 | mister_all_delay_s | 480 → 360 |
| 15:30 | mister_engage_delay_s | 240 → 180 |
| 20:30 | bias_heat | 1.2 → 2 |
| 20:30 | fog_escalation_kpa | 0.9 → 1 |
| 20:30 | mist_backoff_s | 1800 → 2400 |
| 20:30 | mister_all_delay_s | 360 → 600 |
| 20:30 | mister_engage_delay_s | 180 → 300 |
| 11:30 | bias_cool | 4 → 3 |
| 11:30 | bias_heat | 2 → 0.8 |
| 11:30 | fog_escalation_kpa | 1 → 0.35 |
| 11:30 | min_fog_off_s | 180 → 90 |
| 11:30 | mist_backoff_s | 2400 → 900 |
| 11:30 | mist_max_closed_vent_s | 120 → 180 |
| 11:30 | mister_all_delay_s | 600 → 120 |
| 11:30 | mister_engage_delay_s | 300 → 45 |
| 11:30 | temp_hysteresis | 2 → 1.5 |
| 11:30 | vpd_watch_dwell_s | 120 → 60 |
| 14:00 | bias_heat | 0.8 → 0.5 |
| 14:00 | fog_escalation_kpa | 0.35 → 0.2 |
| 14:00 | min_fog_off_s | 90 → 60 |
| 14:00 | mist_backoff_s | 900 → 600 |
| 14:00 | mister_all_delay_s | 120 → 60 |
| 14:00 | mister_engage_delay_s | 45 → 30 |
| 14:00 | vpd_watch_dwell_s | 60 → 45 |
| 19:30 | bias_cool | 3 → 4 |
| 19:30 | bias_heat | 0.5 → 1.5 |
| 19:30 | fog_escalation_kpa | 0.2 → 0.9 |
| 19:30 | min_fog_off_s | 60 → 180 |
| 19:30 | mist_backoff_s | 600 → 2400 |
| 19:30 | mist_max_closed_vent_s | 180 → 120 |
| 19:30 | mister_all_delay_s | 60 → 600 |
| 19:30 | mister_engage_delay_s | 30 → 300 |
| 19:30 | temp_hysteresis | 1.5 → 2 |
| 19:30 | vpd_watch_dwell_s | 45 → 120 |
🌅 Morning Cycle (5:44 AM) — iris-20260520-0541
validated
5/10
bias_cool, bias_heat, d_cool_stage_2, d_heat_stage_2, dwell_gate_ms, enthalpy_close, enthalpy_open, fog_escalation_kpa ...
Reflection
Validating previous cycle: iris-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
59.0°F
58.0%
644.0 W/m²
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
bias_heat 2.0 tapering to 1.8, bias_cool +4, d_heat_stage_2 3, heat_hysteresis 1.5, dwell gate on.
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.
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.
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
Keep morning VPD-low under 0.5h and dp-risk at 0h while avoiding unnecessary wetting.
Prevent a surprise solar-driven VPD-high breakout above about 1h without causing VPD-low overshoot.
Avoid morning fog, keep dp-risk 0h, and catch only stubborn afternoon VPD-high.
Reduce VPD-high risk in the solar shoulder without water waste or prolonged low VPD.
Limit morning cold score loss while avoiding heat overshoot and gas overuse after the morning ramp.
Keep vent-dump cold stress low and temp compliance near or above yesterday's 90%.
Reduce dehum/mist chatter without narrowing the compliance band.
Keep condensation risk at 0h even if a sealed-mist state is briefly entered.
Setpoints
Wednesday May 20
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 05:45 | hyst 0.5 | Saturated dawn: keep moisture suppressed, protect dew margin |
| 09:30 | hyst 0.5 | Morning ramp remains humid/cool; taper heat slightly but do |
| 12:00 | hyst 0.5 | Solar is present but outdoor VPD is still modest; cautiously |
| 14:30 | hyst 0.5 | Modest afternoon VPD/solar peak; provide guarded mist readin |
| 16:30 | hyst 0.5 | Late-afternoon maximum raw VPD; one more guarded relaxation |
| 19:30 | hyst 0.5 | Evening RH rebound: unwind moisture support before saturated |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 05:45 | d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | Saturated dawn: keep moisture suppressed, protect dew margin |
| 09:30 | d_cool 3; engage 2.35; all 2.5; pulse 60; gap 60; wt 2 | Morning ramp remains humid/cool; taper heat slightly but do |
| 12:00 | d_cool 3; engage 2.25; all 2.5; pulse 60; gap 55; wt 2 | Solar is present but outdoor VPD is still modest; cautiously |
| 14:30 | d_cool 3; engage 2; all 2.35; pulse 60; gap 50; wt 2 | Modest afternoon VPD/solar peak; provide guarded mist readin |
| 16:30 | d_cool 3; engage 1.9; all 2.25; pulse 60; gap 45; wt 2 | Late-afternoon maximum raw VPD; one more guarded relaxation |
| 19:30 | d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | Evening RH rebound: unwind moisture support before saturated |
Thursday May 21
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 08:30 | hyst 0.5 | Thursday fallback saturated/foggy morning if later plan is m |
| 14:00 | hyst 0.4 | Thursday missed-plan fallback for a sharper dry ramp: switch |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 08:30 | d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | Thursday fallback saturated/foggy morning if later plan is m |
| 14:00 | d_cool 3; engage 1.2; all 1.35; pulse 60; gap 25; wt 2.5 | Thursday missed-plan fallback for a sharper dry ramp: switch |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 05:45 | bias_cool | initial 4 |
| 05:45 | bias_heat | initial 2 |
| 05:45 | d_heat_stage_2 | initial 3 |
| 05:45 | dwell_gate_ms | initial 300000 |
| 05:45 | enthalpy_close | initial 1 |
| 05:45 | enthalpy_open | initial -2 |
| 05:45 | fog_escalation_kpa | initial 1 |
| 05:45 | heat_hysteresis | initial 1.5 |
| 05:45 | min_fog_off_s | initial 180 |
| 05:45 | min_fog_on_s | initial 45 |
| 05:45 | min_heat_off_s | initial 180 |
| 05:45 | min_heat_on_s | initial 120 |
| 05:45 | min_vent_off_s | initial 60 |
| 05:45 | min_vent_on_s | initial 60 |
| 05:45 | mist_backoff_s | initial 2400 |
| 05:45 | mist_max_closed_vent_s | initial 120 |
| 05:45 | mist_thermal_relief_s | initial 90 |
| 05:45 | mister_all_delay_s | initial 600 |
| 05:45 | mister_engage_delay_s | initial 300 |
| 05:45 | mister_water_budget_gal | initial 600 |
| 05:45 | outdoor_staleness_max_s | initial 600 |
| 05:45 | sw_dwell_gate_enabled | initial 1 |
| 05:45 | sw_fog_closes_vent | initial 1 |
| 05:45 | sw_fsm_controller_enabled | initial 1 |
| 05:45 | sw_mister_closes_vent | initial 1 |
| 05:45 | sw_summer_vent_enabled | initial 1 |
| 05:45 | temp_hysteresis | initial 2 |
| 05:45 | vent_prefer_dp_delta_f | initial 5 |
| 05:45 | vent_prefer_temp_delta_f | initial 5 |
| 05:45 | vpd_watch_dwell_s | initial 120 |
| 09:30 | bias_heat | 2 → 1.8 |
| 09:30 | mister_engage_delay_s | 300 → 240 |
| 12:00 | bias_heat | 1.8 → 1.4 |
| 12:00 | fog_escalation_kpa | 1 → 0.95 |
| 12:00 | min_fog_off_s | 180 → 150 |
| 12:00 | mister_all_delay_s | 600 → 420 |
| 12:00 | mister_engage_delay_s | 240 → 180 |
| 14:30 | bias_heat | 1.4 → 1.2 |
| 14:30 | fog_escalation_kpa | 0.95 → 0.9 |
| 14:30 | min_fog_off_s | 150 → 120 |
| 14:30 | mist_backoff_s | 2400 → 1800 |
| 14:30 | mister_all_delay_s | 420 → 300 |
| 14:30 | mister_engage_delay_s | 180 → 120 |
| 16:30 | fog_escalation_kpa | 0.9 → 0.8 |
| 16:30 | mister_all_delay_s | 300 → 240 |
| 16:30 | mister_engage_delay_s | 120 → 90 |
| 19:30 | bias_heat | 1.2 → 1.8 |
| 19:30 | fog_escalation_kpa | 0.8 → 1 |
| 19:30 | min_fog_off_s | 120 → 180 |
| 19:30 | mist_backoff_s | 1800 → 2400 |
| 19:30 | mister_all_delay_s | 240 → 600 |
| 19:30 | mister_engage_delay_s | 90 → 300 |
| 08:30 | bias_heat | 1.8 → 2 |
| 14:00 | bias_cool | 4 → 3 |
| 14:00 | bias_heat | 2 → 0.5 |
| 14:00 | fog_escalation_kpa | 1 → 0.3 |
| 14:00 | min_fog_off_s | 180 → 60 |
| 14:00 | mist_backoff_s | 2400 → 1200 |
| 14:00 | mist_max_closed_vent_s | 120 → 180 |
| 14:00 | mister_all_delay_s | 600 → 90 |
| 14:00 | mister_engage_delay_s | 300 → 45 |
| 14:00 | vpd_watch_dwell_s | 120 → 60 |
🌆 Evening Cycle (8:18 PM) — iris-20260520-2016
Daily Summary So Far
not validated yet
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
68.0°F
32.0%
1003.0 W/m²
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
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.
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.
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
Avoid vent-driven cold whipsaw and keep overnight cold stress under about 1.5h.
Limit pre-dawn cold stress without chasing continuous heating or raising crop bands.
Keep overnight misting near zero, dp-risk at 0h, and avoid adding to VPD-low stress.
Prevent unnecessary wetting and keep mister water low.
Avoid fog-driven VPD-low/condensation while keeping dp margin above 5F.
Maintain 0 dew-risk hours.
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:
| Time | Values | Note |
|---|---|---|
| 20:20 | hyst 0.5 | evening_settle: cold saturated night begins; suppress added |
| 23:00 | hyst 0.5 | midnight_posture: outdoor RH rises near 90%; keep moisture s |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 20:20 | d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | evening_settle: cold saturated night begins; suppress added |
| 23:00 | d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | midnight_posture: outdoor RH rises near 90%; keep moisture s |
Thursday May 21
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 04:30 | hyst 0.5 | pre_dawn_coldest: forecast bottoms near 41F with RH above 90 |
| 08:30 | hyst 0.5 | dawn_handoff: still cool and humid, but solar begins; ease h |
| 13:30 | hyst 0.45 | missed-SUNRISE dry-ramp fallback: raw forecast reaches 65-68 |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 04:30 | d_cool 3; engage 2.45; all 2.5; pulse 60; gap 60; wt 2 | pre_dawn_coldest: forecast bottoms near 41F with RH above 90 |
| 08:30 | d_cool 3; engage 2.35; all 2.5; pulse 60; gap 55; wt 2 | dawn_handoff: still cool and humid, but solar begins; ease h |
| 13:30 | d_cool 3; engage 1.2; all 1.4; pulse 60; gap 25; wt 2.5 | missed-SUNRISE dry-ramp fallback: raw forecast reaches 65-68 |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 20:20 | bias_cool | initial 4 |
| 20:20 | bias_heat | initial 1.8 |
| 20:20 | d_heat_stage_2 | initial 3 |
| 20:20 | dwell_gate_ms | initial 300000 |
| 20:20 | enthalpy_close | initial 1 |
| 20:20 | enthalpy_open | initial -2 |
| 20:20 | fog_escalation_kpa | initial 1 |
| 20:20 | heat_hysteresis | initial 1.5 |
| 20:20 | min_fog_off_s | initial 180 |
| 20:20 | min_fog_on_s | initial 45 |
| 20:20 | min_heat_off_s | initial 180 |
| 20:20 | min_heat_on_s | initial 120 |
| 20:20 | min_vent_off_s | initial 60 |
| 20:20 | min_vent_on_s | initial 60 |
| 20:20 | mist_backoff_s | initial 2400 |
| 20:20 | mist_max_closed_vent_s | initial 120 |
| 20:20 | mist_thermal_relief_s | initial 90 |
| 20:20 | mister_all_delay_s | initial 600 |
| 20:20 | mister_engage_delay_s | initial 300 |
| 20:20 | mister_water_budget_gal | initial 600 |
| 20:20 | outdoor_staleness_max_s | initial 600 |
| 20:20 | sw_dwell_gate_enabled | initial 1 |
| 20:20 | sw_fog_closes_vent | initial 1 |
| 20:20 | sw_fsm_controller_enabled | initial 1 |
| 20:20 | sw_mister_closes_vent | initial 1 |
| 20:20 | sw_summer_vent_enabled | initial 1 |
| 20:20 | temp_hysteresis | initial 2 |
| 20:20 | vent_prefer_dp_delta_f | initial 5 |
| 20:20 | vent_prefer_temp_delta_f | initial 5 |
| 20:20 | vpd_watch_dwell_s | initial 120 |
| 23:00 | bias_heat | 1.8 → 1.9 |
| 04:30 | bias_heat | 1.9 → 2 |
| 08:30 | bias_heat | 2 → 1.5 |
| 08:30 | fog_escalation_kpa | 1 → 0.95 |
| 08:30 | mist_backoff_s | 2400 → 1800 |
| 08:30 | mister_engage_delay_s | 300 → 240 |
| 13:30 | bias_cool | 4 → 3 |
| 13:30 | bias_heat | 1.5 → 0.5 |
| 13:30 | d_heat_stage_2 | 3 → 4 |
| 13:30 | fog_escalation_kpa | 0.95 → 0.25 |
| 13:30 | heat_hysteresis | 1.5 → 1.2 |
| 13:30 | min_fog_off_s | 180 → 60 |
| 13:30 | mist_backoff_s | 1800 → 600 |
| 13:30 | mist_max_closed_vent_s | 120 → 180 |
| 13:30 | mister_all_delay_s | 600 → 90 |
| 13:30 | mister_engage_delay_s | 240 → 45 |
| 13:30 | temp_hysteresis | 2 → 1.8 |
| 13:30 | vpd_watch_dwell_s | 120 → 60 |
Daily Summary So Far
Climate
61.7–80.3°F; avg 68.9°F
0.33–1.71 kPa; avg 0.65 kPa
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
USD 5.27
USD 1.64
USD 0.240
USD 7.15
Equipment Runtimes
| Equipment | Runtime | Reading |
|---|---|---|
| Fan 1 | 65 min | Primary exhaust runtime. |
| Fan 2 | 47 min | Secondary exhaust runtime. |
| Vent | 99 min | Intake vent runtime. |
| Fog | 9 min | Fogger runtime. |
| Heat 1 electric | 1195 min | Electric heater runtime. |
| Heat 2 gas | 158 min | Gas heater runtime. |
| Grow lights | 1433 min | Supplemental lighting runtime. |
| Mister south | 0.07h | South mister runtime. |
| Mister west | 0.03h | West mister runtime. |
| Mister center | 0.11h | Center mister runtime. |
Water
- Total: 49 gal
- Mister: 2 gal
Crop Health (Gemini Vision)
| Crop | Zone | Health | Observations | Note |
|---|---|---|---|---|
| Canna Lilies | south | 70% | 4 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
| Vanda Orchids | center | 77% | 6 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
| lettuce | east | 78% | 4 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
| pepper | east | 70% | 4 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
| strawberry | east | 83% | 4 | Observation notes are collapsed below to avoid publishing partial vision snippets. |
Vision observation notes
Canna Lilies look generally healthy, but soil moisture is critically low.
Hanging orchids appear healthy with good leaf color.
Seedlings appear healthy and are establishing well.
Seedlings appear healthy, but difficult to assess fully in IR light.
Seedlings appear healthy, but difficult to assess fully in IR light.
Hourly Pattern
| Hour | Temperature | VPD | RH |
|---|---|---|---|
| 12:00 | 73.0°F | 0.79 kPa | 72.5% |
| 13:00 | 74.1°F | 0.88 kPa | 70.3% |
| 14:00 | 74.2°F | 0.88 kPa | 69.9% |
| 15:00 | 73.7°F | 0.81 kPa | 71.8% |
| 16:00 | 72.1°F | 0.74 kPa | 72.8% |
| 17:00 | 71.6°F | 0.72 kPa | 73.1% |
| 18:00 | 68.1°F | 0.59 kPa | 75.2% |
| 19:00 | 65.7°F | 0.52 kPa | 76.2% |
| 20:00 | 63.7°F | 0.44 kPa | 78.8% |
| 21:00 | 63.3°F | 0.40 kPa | 80.4% |
| 22:00 | 63.3°F | 0.39 kPa | 80.7% |
| 23:00 | 63.5°F | 0.38 kPa | 81.0% |
| 00:00 | 63.5°F | 0.39 kPa | 80.9% |
| 01:00 | 63.4°F | 0.39 kPa | 80.6% |
| 02:00 | 63.4°F | 0.40 kPa | 80.1% |
| 03:00 | 63.3°F | 0.41 kPa | 79.3% |
| 04:00 | 63.4°F | 0.43 kPa | 78.7% |
| 05:00 | 64.1°F | 0.46 kPa | 77.7% |
| 06:00 | 66.1°F | 0.58 kPa | 74.0% |
| 07:00 | 68.2°F | 0.69 kPa | 71.1% |
| 08:00 | 70.8°F | 0.74 kPa | 72.1% |
| 09:00 | 73.4°F | 0.85 kPa | 71.1% |
| 10:00 | 73.0°F | 0.73 kPa | 74.4% |
| 11:00 | 74.9°F | 0.82 kPa | 73.2% |
7-Day Stress Context
| Date | Heat | VPD high | Cold |
|---|---|---|---|
| 2026-05-14 | 11.4h | 10.9h | 0.0h |
| 2026-05-15 | 5.8h | 6.3h | 0.2h |
| 2026-05-16 | 9.1h | 8.6h | 0.1h |
| 2026-05-17 | 3.1h | 3.2h | 0.4h |
| 2026-05-18 | 0.5h | 0.0h | 2.1h |
| 2026-05-19 | 0.4h | 0.1h | 2.0h |
| 2026-05-20 | 1.7h | 0.6h | 1.1h |