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

16

Plan writes

6

No-change acknowledgements

10

Pending

0

EventDeliveredTypeStatusNote
End-of-day review and reset00:15MIDNIGHTplan_writtenWrote public plan iris-20260524-0020. Resolved 00:17 MDT.
Morning planning cycle05:39SUNRISEplan_writtenWrote public plan iris-20260524-0545. Resolved 05:41 MDT.
Forecast deviation09:48FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed with live climate/equipment and retrieval. Outdoor VPD is materially drier than forecast (observed 1.78 vs 1.10 kPa), and this is the same direction as the recent VPD forecast bias/rapid clear-morning dry ramp rather than equipment failure. Live greenhouse remains safe and in band: 74.6F, VPD 0.94 kPa vs active vpd_high 1.26, RH 68%, dew margin 11.4F, mode IDLE. All climate relays are off, consistent with IDLE... Resolved 09:48 MDT.
Solar peak planning checkpoint12:58SOLAR_MAXackedAcknowledged: SOLAR_MAX checked. Live solar is overshooting forecast materially (1209 W/m2 vs 894 W/m2 raw / ~850 W/m2 bias-corrected), but the active SUNRISE plan is already in the guardrail-aligned peak posture: VENTILATE with both fans, fog, and center mist active; fog_escalation_kpa 0.15, min_fog_off_s 45, engage/all 0.88/1.08, 30/60s delays, 20s gap, d_cool_stage_2 2, temp_hysteresis 1.3. Indoor average VPD is only mildly above band at 1.43 kPa with healthy 14.7F dew margin, and retrieved lessons support 0... Resolved 12:59 MDT.
Forecast deviation14:28FORECAST_DEVIATIONplan_writtenWrote non-archive plan iris-oneshot-20260524-1430. Resolved 14:30 MDT.
Peak Stress14:57TRANSITIONackedAcknowledged: Peak-stress checkpoint: current greenhouse is tracking the active plan closely enough for no tactical change. Live climate is 78.7F in VENTILATE, VPD 1.20 kPa just below the 1.23 high band, RH 64%, and dew margin 12.9F. Vent/fan cooling is active, VPD-high is not currently climbing, and the existing plan already carries dry-window moisture support into the 17:00 recovery shoulder. No set_tunable issued. Resolved 14:58 MDT.
Forecast deviation14:58FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed: observed VPD is materially lower than forecast, but current greenhouse VPD remains slightly above the active high band with wide dew-point margin and controller already in VENTILATE with both fans plus fog. Diagnosis is forecast/weather miss rather than equipment fault; no tunable change warranted. Resolved 14:59 MDT.
Forecast deviation16:20FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed as wind/gust forecast error, not equipment fault or actionable climate regime change. Live climate is VENTILATE at 78.8F, VPD 1.40 kPa, RH 58%, dew margin 14.6F, outdoor 80.1F/24% RH with solar 654 W/m2. Equipment is responding correctly: vent open, both fans on, fog on, center mister on, heaters off. Existing plan already has hot-dry/VENTILATE moisture support active (fog_escalation 0... Resolved 16:21 MDT.
Ad-hoc planning cycle via MCP plan_run(mode=normal)16:30MANUALplan_writtenWrote non-archive plan iris-oneshot-20260524-1632. Resolved 16:32 MDT.
Manual PR3 post-OTA full set_plan roundtrip validation16:36MANUALplan_writtenWrote public plan iris-20260524-1636. Resolved 16:36 MDT.
Forecast deviation16:43FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed: observed VPD is materially lower/more humid than the forecast, while live greenhouse VPD is only slightly above the active high band (1.14 kPa vs vpd_high 1.12) with safe dew margin (12.6F). Equipment is responding correctly in VENTILATE with vent, both fans, and center mister active; fog is off and no heater conflict. Diagnosis: forecast dry-air overestimate / cloud-solar-wind miss, not equipment failure... Resolved 16:44 MDT.
Forecast deviation17:58FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed: outdoor/forecast VPD is lower than forecast (more humid), matching today’s repeated forecast-overdry bias rather than indicating equipment failure. Live greenhouse is still slightly VPD-high (1.13 kPa vs 1.05 high, east 1.36) in VENTILATE with both fans, vent, and center mister active, dew margin healthy at 14.2F. Existing band-coupled moisture posture is appropriate until observed VPD drops below band; no tunable change warranted. Resolved 17:58 MDT.
Forecast deviation18:44FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed: observed cloud cover is much higher than forecast, but live climate is stable enough for the existing plan. Current greenhouse is 72.4F, VPD 1.01 kPa, RH 63%, dew margin 13.2F, mode VENTILATE. Equipment state matches that mode: vent open, fan1/fan2 on, heaters/fog/misters off. Diagnosis is weather/forecast miss rather than equipment fault; late-day cloud and humidity reduced solar/dry pressure versus forecast... Resolved 18:44 MDT.
Forecast deviation18:59FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed: observed VPD is materially lower/more humid than forecast, consistent with the recent same-direction forecast/cloud humidity bias and the earlier evening cloud/VPD misses, not an equipment fault. Live house is 71.4F, VPD 0.95 kPa, RH 64%, dew margin 12.6F, mode VENTILATE; vent plus both fans are on, fog/heat/misters are off... Resolved 18:59 MDT.
Decline19:18TRANSITIONackedAcknowledged: Decline checkpoint reviewed: current house is VENTILATE at 71.2F with VPD 1.05 kPa, slightly above the 0.96 kPa high band, dew margin safe at 14F, and south mist already active while fans/vent are cooling. Active ESP32 moisture settings are already conservative for evening (engage 1.6, all 1.9, gap 45, fog escalation 0.4), and the existing plan has a staged 23:30 overnight unwind. No concrete signal warrants a one-shot tunable change before that scheduled posture. Resolved 19:19 MDT.
Evening planning cycle20:18SUNSETplan_writtenWrote public plan iris-20260524-2246. Resolved 22:46 MDT.

🌅 Morning Cycle (12:17 AM) — iris-20260524-0020

Status

validated

Outcome score

9/10

Changed parameters

d_cool_stage_2, dwell_gate_ms, enthalpy_close, enthalpy_open, fog_escalation_kpa, heat_hysteresis, min_fog_off_s, min_fog_on_s ...

Reflection

Validating previous cycle: iris-20260523-0539

Previous hypothesis: SUNRISE plan for Saturday 2026-05-23. Friday finished below target at score 65.4, with both-axis compliance 67.9%; temp compliance 77.3% and VPD compliance 80.3%, so both axes missed but temperature was the tighter daily axis while VPD-high was also material. The evaluated Friday SUNRISE plan scored 2/10 versus anchor 4 because 55 VPD-high moisture-guardrail events showed the written values still fought dispatcher policy. Current house is IDLE, 65.6F, VPD 0.46, RH 79%, dew margin 6.9F, with heat1 active and no wetting/venting active. Today starts cool and saturated but turns severe-dry by midday: RH around 11%, VPD near 2.8-2.9 kPa, solar near 900+ W/m2 after bias correction… Result: Pre-sunrise governed window is strongly successful so far: window scorecard shows score 95.0, both-axis compliance 100%, temp compliance 100%, VPD compliance 100%, and 0.00h heat/cold/VPD-high/VPD-low stress. Current partial-day scorecard also shows 100% compliance and dp-risk 0h. The guarded pre-dawn posture avoided repeating Saturday’s VPD-low problem while preserving dew safety. This evaluates only the completed midnight-to-sunrise portion; the severe daytime dry-ramp hypothesis remains pending for later cycles. Score: 9/10

New finding: A guarded pre-dawn posture after a failed dry-day unwind can preserve 100% both-axis compliance and dp safety into sunrise; keep the full dry-ramp portion pending until daylight VPD and guardrail behavior are observed. → Added to Lessons Learned

Hypothesis

Testing: Test whether earlier, explicitly band-coupled dry-ramp support after a guarded midnight/pre-dawn posture reduces VPD-high guardrail holds versus the failed SUNSET unwind while keeping dp-risk at 0h. Expected outcome: For the 00:20-08:30 window: dp_risk_hours 0, no added VPD-low beyond a small pre-dawn carryover, and cold stress under 1h. For Sunday daylight: fewer VPD-high moisture guardrail holds than iris-20260523-2017, VPD-high materially below Saturday’s alert burden, and no conservative evening unwind until observed VPD recovery.

Conditions

Outdoor peak

83.6°F

RH minimum

13.0%

Solar peak

901.0 W/m²

Cloud average

55.0%

Safe humid midnight snapshot after a poor Saturday: greenhouse 64.0F, VPD 0.52, RH 74%, dew margin 8.3F, IDLE, heat1 active. Pre-dawn outdoor VPD stays moderate around 0.5-0.8 kPa, then Sunday ramps hard by 09:00-13:00 to RH 13-19%, VPD 2.6-3.4 kPa, and solar around 750-900 W/m2 before cloudy but still dry late afternoon/evening.

Expected stress windows

vpd_lowlow · 2026-05-24T00:20:00-06:00 to 2026-05-24T08:30:00-06:00

Moderate overnight suppression: engage 1.6 then 1.45, all 1.9 then 1.75, 45-50s gaps, longer delays, fog_escalation 0.35-0.45, vpd_hysteresis 0.5, and 120s sealed cap while dew margin stays safe.

vpd_highhigh · 2026-05-24T09:00:00-06:00 to 2026-05-24T21:30:00-06:00

Before live dry stress can force guardrail holds, transition to band-coupled moisture: engage 0.85-0.9, all 1.05-1.1, 30/60s delays, 20s gaps, fog_escalation 0.15 in the fog window, min_fog_off 45, capped sealed residence 150-180s, and no conservative unwind until evening VPD actually recovers.

heatmedium · 2026-05-24T11:00:00-06:00 to 2026-05-24T18:30:00-06:00

Accept some physics-limited heat pressure but keep d_cool_stage_2 2.0 and temp_hysteresis 1.3 while short sealed caps let VENTILATE preempt and moisture assist protects VPD.

vpd_highhigh · 2026-05-25T08:00:00-06:00 to 2026-05-25T18:30:00-06:00

Missed-SUNRISE fallback returns to band-coupled moisture for Monday’s even hotter/drier ramp rather than carrying overnight conservative thresholds.

Parameter rationale

mister_engage_kpa1.05 → 0.85; Sunday forecast reaches RH 13-18% and VPD 2.7-3.4 kPa after 10:00; previous SUNSET plan had 64 guardrail events when unwind values rose too early.

Avoid VPD-high guardrail holds during the dry ramp and reduce VPD-high stress relative to Saturday.

mister_all_kpa1.25 → 1.05; Active vpd_high is 0.8 kPa and retrieved lessons say all-zone escalation should stay near max(1.0,vpd_high+0.25) in live hot-dry VENTILATE.

Permit all-zone assist during severe dry ventilation instead of waiting above the crop band.

fog_escalation_kpa0.3 → 0.15; Dry peak overlaps 07:00-17:00 fog window; fog is 7x more effective and guardrail-aware lessons call for 0.15-0.20 in hot/dry venting.

Catch stubborn VPD-high without extended sealed heat traps.

min_fog_off_s60.0 → 45.0; Hot/dry venting can clamp fog-off dwell to 45s and today’s forecast has VPD above 3 kPa with healthy dew margin expected by peak.

Permit effective fog cadence and avoid dispatcher rewrites.

mister_pulse_gap_s30.0 → 20.0; RH falls to low teens through the afternoon; dry-day lessons call for 15-25s gaps under severe dry pressure.

Reduce humidity collapse between pulses during VENTILATE assist.

mister_engage_delay_s45.0 → 30.0; Recent VPD-high guardrail events show long delays and conservative thresholds are wrong during live VENTILATE dry stress.

Start physical pulses promptly once humidity demand exists.

mister_all_delay_s90.0 → 60.0; VPD climbs steeply between 09:00 and 12:00, so all-zone escalation should not wait 90-300s during the dry ramp.

Reduce time above the VPD band during the morning ramp.

temp_hysteresis1.5 → 1.3; Midday heat pressure is likely but not above the 85F structural extreme; tighter hysteresis helps reject heat while mist/fog protects VPD.

Improve temperature compliance during the dry ramp without changing crop bands.

Setpoints

Sunday May 24

Primary crop-band changes:

TimeValuesNote
00:20hyst 0.5Midnight reset: safe humid house, avoid extra wetting while
05:30hyst 0.5Pre-dawn handoff: still no solar, but begin loosening suppre
08:30hyst 0.45Sunrise ramp: outdoor VPD begins climbing; move to guardrail
10:00hyst 0.45Dry ramp begins: RH falls below 30% and VPD exceeds 2 kPa; f
13:00hyst 0.45Peak dry window: forecast RH 13-15%, VPD above 3 kPa, solar
17:30hyst 0.45Post-fog dry shoulder: fog window is ending but outdoor VPD
21:30hyst 0.45Late evening: outdoor VPD is still around 1.6-1.7, so only p

Tactical tunable changes:

TimeValuesNote
00:20engage 1.6; all 1.9; pulse 60; gap 50; wt 2.3Midnight reset: safe humid house, avoid extra wetting while
05:30engage 1.45; all 1.75; pulse 60; gap 45; wt 2.4Pre-dawn handoff: still no solar, but begin loosening suppre
08:30engage 1.05; all 1.25; pulse 60; gap 30; wt 2.6Sunrise ramp: outdoor VPD begins climbing; move to guardrail
10:00engage 0.85; all 1.05; pulse 60; gap 20; wt 2.8Dry ramp begins: RH falls below 30% and VPD exceeds 2 kPa; f
13:00engage 0.85; all 1.05; pulse 60; gap 20; wt 2.8Peak dry window: forecast RH 13-15%, VPD above 3 kPa, solar
17:30engage 0.9; all 1.1; pulse 60; gap 20; wt 2.8Post-fog dry shoulder: fog window is ending but outdoor VPD
21:30engage 1.05; all 1.25; pulse 60; gap 30; wt 2.5Late evening: outdoor VPD is still around 1.6-1.7, so only p

Monday May 25

Primary crop-band changes:

TimeValuesNote
00:30hyst 0.5Post-midnight Monday fallback: drier-than-normal night, avoi
08:00hyst 0.45Missed-SUNRISE fallback for Monday’s hotter/drier ramp: retu

Tactical tunable changes:

TimeValuesNote
00:30engage 1.25; all 1.5; pulse 60; gap 40; wt 2.4Post-midnight Monday fallback: drier-than-normal night, avoi
08:00engage 0.9; all 1.1; pulse 60; gap 20; wt 2.8Missed-SUNRISE fallback for Monday’s hotter/drier ramp: retu

Changed secondary parameters:

TimeParameterChange
00:20d_cool_stage_2initial 2.5
00:20dwell_gate_msinitial 300000
00:20enthalpy_closeinitial 1
00:20enthalpy_openinitial -2
00:20fog_escalation_kpainitial 0.45
00:20heat_hysteresisinitial 1.2
00:20min_fog_off_sinitial 90
00:20min_fog_on_sinitial 45
00:20mist_backoff_sinitial 900
00:20mist_max_closed_vent_sinitial 120
00:20mist_thermal_relief_sinitial 90
00:20mister_all_delay_sinitial 180
00:20mister_engage_delay_sinitial 90
00:20mister_water_budget_galinitial 300
00:20outdoor_staleness_max_sinitial 600
00:20sw_dwell_gate_enabledinitial 1
00:20sw_fog_closes_ventinitial 1
00:20sw_mister_closes_ventinitial 1
00:20sw_summer_vent_enabledinitial 1
00:20temp_hysteresisinitial 1.7
00:20vent_prefer_dp_delta_finitial 5
00:20vent_prefer_temp_delta_finitial 5
00:20vpd_watch_dwell_sinitial 75
05:30fog_escalation_kpa0.45 → 0.35
05:30min_fog_off_s90 → 75
05:30mist_backoff_s900 → 600
05:30mister_all_delay_s180 → 120
05:30mister_engage_delay_s90 → 60
05:30temp_hysteresis1.7 → 1.6
05:30vpd_watch_dwell_s75 → 60
08:30d_cool_stage_22.5 → 2.2
08:30fog_escalation_kpa0.35 → 0.25
08:30heat_hysteresis1.2 → 1.1
08:30min_fog_off_s75 → 60
08:30mist_max_closed_vent_s120 → 150
08:30mister_all_delay_s120 → 90
08:30mister_engage_delay_s60 → 45
08:30temp_hysteresis1.6 → 1.4
08:30vpd_watch_dwell_s60 → 45
10:00d_cool_stage_22.2 → 2
10:00fog_escalation_kpa0.25 → 0.15
10:00heat_hysteresis1.1 → 1
10:00min_fog_off_s60 → 45
10:00mister_all_delay_s90 → 60
10:00mister_engage_delay_s45 → 30
10:00temp_hysteresis1.4 → 1.3
10:00vpd_watch_dwell_s45 → 30
17:30d_cool_stage_22 → 2.2
17:30fog_escalation_kpa0.15 → 0.2
17:30temp_hysteresis1.3 → 1.4
17:30vpd_watch_dwell_s30 → 45
21:30d_cool_stage_22.2 → 2.5
21:30fog_escalation_kpa0.2 → 0.3
21:30heat_hysteresis1 → 1.1
21:30min_fog_off_s45 → 60
21:30mister_all_delay_s60 → 90
21:30mister_engage_delay_s30 → 45
21:30temp_hysteresis1.4 → 1.5
21:30vpd_watch_dwell_s45 → 60
00:30fog_escalation_kpa0.3 → 0.35
00:30heat_hysteresis1.1 → 1.2
00:30min_fog_off_s60 → 75
00:30mist_max_closed_vent_s150 → 120
00:30mister_all_delay_s90 → 120
00:30mister_engage_delay_s45 → 60
00:30temp_hysteresis1.5 → 1.6
08:00d_cool_stage_22.5 → 2
08:00fog_escalation_kpa0.35 → 0.15
08:00heat_hysteresis1.2 → 1
08:00min_fog_off_s75 → 45
08:00mist_max_closed_vent_s120 → 150
08:00mister_all_delay_s120 → 60
08:00mister_engage_delay_s60 → 30
08:00temp_hysteresis1.6 → 1.3
08:00vpd_watch_dwell_s60 → 30

🌅 Morning Cycle (5:41 AM) — iris-20260524-0545

Status

validated

Outcome score

6/10

Changed parameters

d_cool_stage_2, dwell_gate_ms, enthalpy_close, enthalpy_open, fog_escalation_kpa, heat_hysteresis, min_fog_off_s, min_fog_on_s ...

Reflection

Validating previous cycle: iris-20260523-2017

Previous hypothesis: SUNSET plan for Saturday 2026-05-23. Today underperformed: score 60.0, both-axis compliance 59.4%, temp compliance 61.2%, VPD compliance 78.4%, with heat stress 6.67h and VPD-high 3.93h as the main failures. The plan-evaluation loop revised the SUNRISE plan to 1/10 to match anchor 1 because 1107 guardrail events, 24 held events, 17 dispatched events, and 41 VPD-high guardrail events show the written plan still fought the moisture guardrail despite low VPD-low and safe dew margin. Current house is still VENTILATE with VPD 0.93 above the 0.82 high band and dew margin 13.2F. Therefore I am not switching straight to conservative night suppression. The plan keeps a short band-coupled recovery shoulder until late evening, then unwinds in stages once outdoor VPD falls, and keeps a missed-SUNRISE dry-ramp fallback for Sunday RH near 12-17%, VPD near 3.0+ kPa, and solar near 900 W/m2. Result: Window scorecard for 05:41-13:47 showed cost USD 0.337, both-axis compliance 53.2%, temp compliance 58.6%, VPD compliance 63.1%, heat stress 3.20h, VPD-high 2.79h, VPD-low 0.07h, and window score 57.2. The plan correctly anticipated the hot/dry VPD window and reduced VPD-high below Saturday’s 6.35h, but the heat+VPD pairing still held both-axis compliance low and the afternoon/evening needed continued observed-recovery logic rather than any conservative clock unwind. Score: 6/10

Hypothesis

Testing: Test whether a stronger, explicitly guardrail-aligned SUNRISE dry-ramp plan reduces VPD-high/no-moisture-assist alerts versus Saturday while preserving the midnight plan’s 0h dp-risk and avoiding VPD-low overnight. Expected outcome: Target score above 65, both-axis compliance above 65%, VPD-high stress below 4h, heat stress below Saturday’s 8.85h if clouds arrive as forecast, VPD-low below 0.5h, dp-risk 0h, cost below the 7-day average USD 6.88 unless severe VPD forces sustained fog/misting.

Conditions

Outdoor peak

84.0°F

RH minimum

14.0%

Solar peak

925.0 W/m²

Cloud average

55.0%

Safe humid dawn indoors with dp margin 7.2F; forecast turns hot/dry by 10:00-15:00 with RH 14-19%, VPD 2.5-3.4 kPa, and corrected solar roughly 900 W/m2 despite cloud uncertainty. Saturday showed VENTILATE VPD-high/no-moisture-assist alerts and 6.35h VPD-high, so the plan prioritizes guardrail-aligned moisture without extending sealed heat traps.

Expected stress windows

vpd_highhigh · 2026-05-24T09:00:00-06:00 to 2026-05-24T20:30:00-06:00

Band-coupled VENTILATE moisture assist: engage 0.88-0.92, all 1.08-1.12, 30/60s delays, 20s gaps, fog_escalation 0.15 in the fog window, min_fog_off 45, vpd_watch 45, and 150s sealed cap.

heatmedium · 2026-05-24T11:00:00-06:00 to 2026-05-24T18:30:00-06:00

Keep d_cool_stage_2 2.0 and temp_hysteresis 1.3 during peak; accept structural heat if it appears rather than extending sealed mist.

vpd_lowlow · 2026-05-24T23:30:00-06:00 to 2026-05-25T07:30:00-06:00

Only after the evening recovery shoulder, unwind to engage 1.5, all 1.8, 45s gaps, longer delays, fog_escalation 0.45, vpd_hysteresis 0.5, and 120s sealed cap.

vpd_highhigh · 2026-05-25T08:00:00-06:00 to 2026-05-25T18:30:00-06:00

Missed-SUNRISE fallback returns to band-coupled dry-ramp support before Monday's RH 14-20% and VPD near 3 kPa ramp.

Parameter rationale

mister_engage_kpa1.45 → 0.88; Today reaches RH 14-19% and VPD 2.5-3.4 kPa from 11:00-16:00; active vpd_high is 0.83 and lesson 131 calls for vpd_high+0.05 during VENTILATE stress.

Avoid VPD-high guardrail holds/no-moisture-assist alerts and reduce VPD-high stress below Saturday's 6.35h.

mister_all_kpa1.75 → 1.08; Band-coupled all-zone threshold should stay near max(1.0,vpd_high+0.25) during hot/dry VENTILATE.

Permit all-zone assist during the dry ramp instead of waiting above the crop band.

fog_escalation_kpa0.35 → 0.15; Dry peak overlaps the 07:00-17:00 fog window, and fog is 7x more effective than misters; Saturday still had VPD-high alerts.

Use fog early enough to catch stubborn VPD-high while firmware RH/temp/time gates preserve safety.

min_fog_off_s75.0 → 45.0; Hot/dry venting guardrail guidance supports 45s fog-off dwell when dew margin is healthy.

Permit effective fog cadence during peak VPD without dispatcher rewrites.

mister_engage_delay_s60.0 → 30.0; VPD climbs from 0.9 at 08:00 to 2.54 by 11:00, so first pulses must not wait through the ramp.

Start physical mist promptly once humidity demand exists.

mister_all_delay_s120.0 → 60.0; Steep morning VPD ramp and Saturday no-moisture-assist alerts support faster all-zone escalation.

Reduce time above VPD band during VENTILATE assist.

mister_pulse_gap_s45.0 → 20.0; RH falls to 14-17% from noon through midafternoon; dry-day lessons call for 15-25s gaps.

Prevent humidity collapse between pulses while venting.

d_cool_stage_22.5 → 2.0; 84F forecast with solar near 900 W/m2 and Saturday 8.85h heat stress.

Bring fan2 in earlier during peak heat without changing crop bands.

temp_hysteresis1.6 → 1.3; Midday heat was Saturday's largest stress axis; tighter staging helps reject heat.

Improve temperature compliance during the dry ramp while moisture support protects VPD.

vpd_watch_dwell_s60.0 → 45.0; Clear 09:00-11:00 VPD ramp and healthy dawn dp margin; SEALED_MIST entry should not lag the stress ramp.

Shorten dry-band exposure before sealed recovery without creating short cycles.

mist_max_closed_vent_s120.0 → 150.0; Peak VPD is severe but heat risk is real; retrieved hot-dry plans support short capped windows, not 900s sealing.

Give bounded recovery capacity while preserving VENTILATE preemption and keeping dp-risk at 0h.

Setpoints

Sunday May 24

Primary crop-band changes:

TimeValuesNote
05:45hyst 0.5Humid safe dawn: preserve the successful midnight posture wh
08:00hyst 0.45Morning ramp: outdoor VPD approaches 0.9 and solar rises; st
10:00hyst 0.45Dry ramp arrives: forecast VPD near 2.0 and falling RH; swit
13:00hyst 0.45Peak heat/VPD window: RH 14-17%, VPD 3.1-3.4, solar uncertai
17:00hyst 0.45Fog window closes but outside air remains very dry; maintain
20:30hyst 0.5Evening observed-recovery shoulder: forecast VPD still near
23:30hyst 0.5Overnight suppression after recovery: outdoor VPD falls towa

Tactical tunable changes:

TimeValuesNote
05:45engage 1.35; all 1.65; pulse 60; gap 40; wt 2.4Humid safe dawn: preserve the successful midnight posture wh
08:00engage 1.05; all 1.25; pulse 60; gap 25; wt 2.7Morning ramp: outdoor VPD approaches 0.9 and solar rises; st
10:00engage 0.88; all 1.08; pulse 60; gap 20; wt 2.8Dry ramp arrives: forecast VPD near 2.0 and falling RH; swit
13:00engage 0.88; all 1.08; pulse 60; gap 20; wt 2.9Peak heat/VPD window: RH 14-17%, VPD 3.1-3.4, solar uncertai
17:00engage 0.9; all 1.1; pulse 60; gap 20; wt 2.8Fog window closes but outside air remains very dry; maintain
20:30engage 1.1; all 1.3; pulse 60; gap 30; wt 2.6Evening observed-recovery shoulder: forecast VPD still near
23:30engage 1.5; all 1.8; pulse 60; gap 45; wt 2.4Overnight suppression after recovery: outdoor VPD falls towa

Monday May 25

Primary crop-band changes:

TimeValuesNote
08:00hyst 0.45Missed-SUNRISE fallback for Monday: forecast repeats a dry r

Tactical tunable changes:

TimeValuesNote
08:00engage 0.88; all 1.08; pulse 60; gap 20; wt 2.8Missed-SUNRISE fallback for Monday: forecast repeats a dry r

Changed secondary parameters:

TimeParameterChange
05:45d_cool_stage_2initial 2.5
05:45dwell_gate_msinitial 300000
05:45enthalpy_closeinitial 1
05:45enthalpy_openinitial -2
05:45fog_escalation_kpainitial 0.35
05:45heat_hysteresisinitial 1.2
05:45min_fog_off_sinitial 75
05:45min_fog_on_sinitial 45
05:45mist_backoff_sinitial 600
05:45mist_max_closed_vent_sinitial 120
05:45mist_thermal_relief_sinitial 90
05:45mister_all_delay_sinitial 120
05:45mister_engage_delay_sinitial 60
05:45mister_water_budget_galinitial 300
05:45outdoor_staleness_max_sinitial 600
05:45sw_dwell_gate_enabledinitial 1
05:45sw_fog_closes_ventinitial 1
05:45sw_mister_closes_ventinitial 1
05:45sw_summer_vent_enabledinitial 1
05:45temp_hysteresisinitial 1.6
05:45vent_prefer_dp_delta_finitial 5
05:45vent_prefer_temp_delta_finitial 5
05:45vpd_watch_dwell_sinitial 60
08:00d_cool_stage_22.5 → 2.3
08:00fog_escalation_kpa0.35 → 0.25
08:00heat_hysteresis1.2 → 1.1
08:00min_fog_off_s75 → 60
08:00mist_max_closed_vent_s120 → 150
08:00mister_all_delay_s120 → 90
08:00mister_engage_delay_s60 → 45
08:00temp_hysteresis1.6 → 1.4
08:00vpd_watch_dwell_s60 → 45
10:00d_cool_stage_22.3 → 2
10:00fog_escalation_kpa0.25 → 0.15
10:00heat_hysteresis1.1 → 1
10:00min_fog_off_s60 → 45
10:00mister_all_delay_s90 → 60
10:00mister_engage_delay_s45 → 30
10:00temp_hysteresis1.4 → 1.3
17:00fog_escalation_kpa0.15 → 0.2
17:00min_fog_off_s45 → 60
17:00temp_hysteresis1.3 → 1.35
20:30d_cool_stage_22 → 2.3
20:30fog_escalation_kpa0.2 → 0.3
20:30heat_hysteresis1 → 1.1
20:30min_fog_off_s60 → 75
20:30mist_max_closed_vent_s150 → 120
20:30mister_all_delay_s60 → 90
20:30mister_engage_delay_s30 → 45
20:30temp_hysteresis1.35 → 1.5
20:30vpd_watch_dwell_s45 → 60
23:30d_cool_stage_22.3 → 2.5
23:30fog_escalation_kpa0.3 → 0.45
23:30heat_hysteresis1.1 → 1.2
23:30min_fog_off_s75 → 90
23:30mist_backoff_s600 → 900
23:30mister_all_delay_s90 → 180
23:30mister_engage_delay_s45 → 90
23:30temp_hysteresis1.5 → 1.7
08:00d_cool_stage_22.5 → 2
08:00fog_escalation_kpa0.45 → 0.15
08:00heat_hysteresis1.2 → 1
08:00min_fog_off_s90 → 45
08:00mist_backoff_s900 → 600
08:00mist_max_closed_vent_s120 → 150
08:00mister_all_delay_s180 → 60
08:00mister_engage_delay_s90 → 30
08:00temp_hysteresis1.7 → 1.3
08:00vpd_watch_dwell_s60 → 45

☀️ Midday Cycle (1:47 PM) — iris-20260524-1347

Status

validated

Outcome score

2/10

Changed parameters

cold_vent_guard_delta_f, cool_exit_hysteresis_f, cool_stage2_over_high_f, dwell_gate_ms, enthalpy_close, enthalpy_open, fog_escalation_kpa, heat_hysteresis ...

Reflection

Validating previous cycle: iris-20260524-0545

Previous hypothesis: SUNRISE plan for Sunday 2026-05-24. Saturday finished poorly at score 56.5, with both-axis compliance 54.5%, temp compliance 58.6%, and VPD compliance 71.7%; temperature was the tighter compliance axis, but the dominant actionable failures were heat stress 8.85h plus VPD-high 6.35h. Cost was USD 5.33, below the 7-day average USD 6.88; electric and water rose above 7-day averages while gas fell, consistent with cooling/misting load replacing heating load. The just-evaluated midnight-to-sunrise plan scored 9/10 versus anchor 10: 100% compliance, 0h stress, 0 guardrail events, dp-risk 0h. Today starts safe and humid at 63.3F, VPD 0.45, RH 77%, dew margin 7.2F, IDLE with heat1 on, then ramps hard: 84F, RH 14%, VPD 3.4 kPa, and corrected solar around 900 W/m2… Result: Revised to match deterministic anchor after guardrail scoring: although the OTA contract-alignment goal did not visibly break safety, the plan-window evidence shows low both-axis compliance (53.2%) and a large guardrail conflict: 47 VPD-high moisture-guardrail events, 34 held and 13 dispatched. That means the plan fought dispatcher/firmware moisture policy during live dry stress and should be graded as a poor climate-control outcome despite the narrow contract-alignment intent. Score: 2/10

Hypothesis

Conditions: Post-OTA alignment plan seeded by Codex after firmware 2026.5.24.1341.e349e5e deployment. Testing: Deployment alignment for explicit AI cooling knobs; no biological policy change intended. Expected outcome: Plan coverage passes and cfg readbacks confirm the four new cooling defaults.

Setpoints

Sunday May 24

Primary crop-band changes:

TimeValuesNote
13:47hyst 0.45Post-OTA AI cooling contract alignment: preserve active plan
17:00hyst 0.45Post-OTA AI cooling contract alignment: preserve active plan
20:30hyst 0.5Post-OTA AI cooling contract alignment: preserve active plan
23:30hyst 0.5Post-OTA AI cooling contract alignment: preserve active plan

Tactical tunable changes:

TimeValuesNote
13:47s2 1; cool_exit 1.5; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 19; engage 0.88; all 1.08; pulse 60; gap 20; wt 2.9Post-OTA AI cooling contract alignment: preserve active plan
17:00s2 1; cool_exit 1.5; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 19; engage 0.9; all 1.1; pulse 60; gap 20; wt 2.8Post-OTA AI cooling contract alignment: preserve active plan
20:30s2 1; cool_exit 1.5; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 19; engage 1.1; all 1.3; pulse 60; gap 30; wt 2.6Post-OTA AI cooling contract alignment: preserve active plan
23:30s2 1; cool_exit 1.5; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 19; engage 1.5; all 1.8; pulse 60; gap 45; wt 2.4Post-OTA AI cooling contract alignment: preserve active plan

Monday May 25

Primary crop-band changes:

TimeValuesNote
08:00hyst 0.45Post-OTA AI cooling contract alignment: preserve active plan

Tactical tunable changes:

TimeValuesNote
08:00s2 1; cool_exit 1.5; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 19; engage 0.88; all 1.08; pulse 60; gap 20; wt 2.8Post-OTA AI cooling contract alignment: preserve active plan

Changed secondary parameters:

TimeParameterChange
13:47cold_vent_guard_delta_finitial 10
13:47direct_wet_stress_min_dew_margin_finitial 8
13:47direct_wet_stress_vpd_margin_kpainitial 0.05
13:47dwell_gate_msinitial 300000
13:47enthalpy_closeinitial 1
13:47enthalpy_openinitial -2
13:47fog_escalation_kpainitial 0.15
13:47fog_stress_min_dew_margin_finitial 10
13:47heat_hysteresisinitial 1
13:47min_fog_off_sinitial 45
13:47min_fog_on_sinitial 45
13:47mist_backoff_sinitial 600
13:47mist_max_closed_vent_sinitial 150
13:47mist_thermal_relief_sinitial 90
13:47mister_all_delay_sinitial 60
13:47mister_engage_delay_sinitial 30
13:47mister_water_budget_galinitial 300
13:47outdoor_staleness_max_sinitial 600
13:47sw_dwell_gate_enabledinitial 1
13:47sw_fog_closes_ventinitial 1
13:47sw_mister_closes_ventinitial 1
13:47sw_summer_vent_enabledinitial 1
13:47temp_hysteresisinitial 1.3
13:47vent_prefer_dp_delta_finitial 5
13:47vent_prefer_temp_delta_finitial 5
13:47vpd_watch_dwell_sinitial 45
17:00fog_escalation_kpa0.15 → 0.2
17:00min_fog_off_s45 → 60
17:00temp_hysteresis1.3 → 1.35
20:30fog_escalation_kpa0.2 → 0.3
20:30heat_hysteresis1 → 1.1
20:30min_fog_off_s60 → 75
20:30mist_max_closed_vent_s150 → 120
20:30mister_all_delay_s60 → 90
20:30mister_engage_delay_s30 → 45
20:30temp_hysteresis1.35 → 1.5
20:30vpd_watch_dwell_s45 → 60
23:30fog_escalation_kpa0.3 → 0.45
23:30heat_hysteresis1.1 → 1.2
23:30min_fog_off_s75 → 90
23:30mist_backoff_s600 → 900
23:30mister_all_delay_s90 → 180
23:30mister_engage_delay_s45 → 90
23:30temp_hysteresis1.5 → 1.7
08:00fog_escalation_kpa0.45 → 0.15
08:00heat_hysteresis1.2 → 1
08:00min_fog_off_s90 → 45
08:00mist_backoff_s900 → 600
08:00mist_max_closed_vent_s120 → 150
08:00mister_all_delay_s180 → 60
08:00mister_engage_delay_s90 → 30
08:00temp_hysteresis1.7 → 1.3
08:00vpd_watch_dwell_s60 → 45

🌆 Evening Cycle (4:36 PM) — iris-20260524-1636

Status

validated

Outcome score

8/10

Changed parameters

cold_vent_guard_delta_f, cool_exit_hysteresis_f, cool_stage2_over_high_f, direct_wet_stress_latest_hour, direct_wet_stress_min_dew_margin_f, direct_wet_stress_vpd_margin_kpa, dwell_gate_ms, enthalpy_close ...

Reflection

Validating previous cycle: iris-20260524-0545

Result: Window scorecard for 16:36-22:46 showed cost USD 0.257, both-axis compliance 88.2%, temp compliance 90.6%, VPD compliance 90.5%, heat stress 0.55h, VPD-high 0.50h, VPD-low 0.01h, and window score 85.7. The post-OTA moisture-stress round trip improved compliance strongly in the decline/evening window with no dew-point risk signal, though guardrail holds show conservative moisture values still fought the band-coupled policy at times. Score: 8/10

Hypothesis

Testing: PR3 post-OTA tunable callback proof Expected outcome: All seven PR3 tunables are pushed to ESP32, observed in cfg readbacks, and written to DB callbacks; no severe alerts.

Setpoints

Sunday May 24

Primary crop-band changes:

TimeValuesNote
16:36hyst 0.45PR3 post-OTA roundtrip validation: enable stress switches wi
16:39hyst 0.45PR3 post-OTA roundtrip validation: revert stress tunables to
17:00hyst 0.45Preserved routine waypoint after PR3 roundtrip validation.
20:30hyst 0.5Preserved routine waypoint after PR3 roundtrip validation.
23:30hyst 0.5Preserved routine waypoint after PR3 roundtrip validation.

Tactical tunable changes:

TimeValuesNote
16:36s2 1; cool_exit 1.5; all_fans 0; dw_stress 1; dw_until 17; fog_stress 1; fog_until 17; engage 1.2; all 1.4; pulse 60; gap 25; wt 2.8PR3 post-OTA roundtrip validation: enable stress switches wi
16:39s2 1; cool_exit 1.5; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 19; engage 1.2; all 1.4; pulse 60; gap 25; wt 2.8PR3 post-OTA roundtrip validation: revert stress tunables to
17:00s2 1; cool_exit 1.5; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 19; engage 0.9; all 1.1; pulse 60; gap 20; wt 2.8Preserved routine waypoint after PR3 roundtrip validation.
20:30s2 1; cool_exit 1.5; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 19; engage 1.1; all 1.3; pulse 60; gap 30; wt 2.6Preserved routine waypoint after PR3 roundtrip validation.
23:30s2 1; cool_exit 1.5; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 19; engage 1.5; all 1.8; pulse 60; gap 45; wt 2.4Preserved routine waypoint after PR3 roundtrip validation.

Monday May 25

Primary crop-band changes:

TimeValuesNote
08:00hyst 0.45Preserved routine waypoint after PR3 roundtrip validation.

Tactical tunable changes:

TimeValuesNote
08:00s2 1; cool_exit 1.5; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 19; engage 0.88; all 1.08; pulse 60; gap 20; wt 2.8Preserved routine waypoint after PR3 roundtrip validation.

Changed secondary parameters:

TimeParameterChange
16:36cold_vent_guard_delta_finitial 10
16:36direct_wet_stress_min_dew_margin_finitial 15
16:36direct_wet_stress_vpd_margin_kpainitial 0.5
16:36dwell_gate_msinitial 300000
16:36enthalpy_closeinitial 1
16:36enthalpy_openinitial -2
16:36fog_escalation_kpainitial 0.2
16:36fog_stress_min_dew_margin_finitial 15
16:36heat_hysteresisinitial 1
16:36min_fog_off_sinitial 45
16:36min_fog_on_sinitial 45
16:36mist_backoff_sinitial 600
16:36mist_max_closed_vent_sinitial 150
16:36mist_thermal_relief_sinitial 90
16:36mister_all_delay_sinitial 60
16:36mister_engage_delay_sinitial 30
16:36mister_water_budget_galinitial 300
16:36outdoor_staleness_max_sinitial 600
16:36sw_dwell_gate_enabledinitial 1
16:36sw_fog_closes_ventinitial 1
16:36sw_mister_closes_ventinitial 1
16:36sw_summer_vent_enabledinitial 1
16:36temp_hysteresisinitial 1.3
16:36vent_prefer_dp_delta_finitial 5
16:36vent_prefer_temp_delta_finitial 5
16:36vpd_watch_dwell_sinitial 45
16:39direct_wet_stress_min_dew_margin_f15 → 8
16:39direct_wet_stress_vpd_margin_kpa0.5 → 0.05
16:39fog_stress_min_dew_margin_f15 → 10
17:00min_fog_off_s45 → 60
17:00temp_hysteresis1.3 → 1.35
20:30fog_escalation_kpa0.2 → 0.3
20:30heat_hysteresis1 → 1.1
20:30min_fog_off_s60 → 75
20:30mist_max_closed_vent_s150 → 120
20:30mister_all_delay_s60 → 90
20:30mister_engage_delay_s30 → 45
20:30temp_hysteresis1.35 → 1.5
20:30vpd_watch_dwell_s45 → 60
23:30fog_escalation_kpa0.3 → 0.45
23:30heat_hysteresis1.1 → 1.2
23:30min_fog_off_s75 → 90
23:30mist_backoff_s600 → 900
23:30mister_all_delay_s90 → 180
23:30mister_engage_delay_s45 → 90
23:30temp_hysteresis1.5 → 1.7
08:00fog_escalation_kpa0.45 → 0.15
08:00heat_hysteresis1.2 → 1
08:00min_fog_off_s90 → 45
08:00mist_backoff_s900 → 600
08:00mist_max_closed_vent_s120 → 150
08:00mister_all_delay_s180 → 60
08:00mister_engage_delay_s90 → 30
08:00temp_hysteresis1.7 → 1.3
08:00vpd_watch_dwell_s60 → 45

🌙 Overnight Cycle (10:46 PM) — iris-20260524-2246

Status

validated

Outcome score

9/10

Changed parameters

cold_vent_guard_delta_f, cool_exit_hysteresis_f, cool_stage2_over_high_f, direct_wet_stress_latest_hour, direct_wet_stress_min_dew_margin_f, direct_wet_stress_vpd_margin_kpa, dwell_gate_ms, enthalpy_close ...

Reflection

Validating previous cycle: iris-20260524-1636

Previous hypothesis: Manual PR3 post-OTA round-trip validation. The first waypoint changes all seven PR3 moisture-stress tunables while keeping direct-wet/fog stress behavior blocked by conservative dew-margin/latest-hour/VPD gates; the second waypoint reverts defaults; later routine waypoints are preserved. Result: Window scorecard for 22:46-05:53 showed cost USD 0.296, both-axis compliance 98.5%, temp compliance 100%, VPD compliance 98.5%, heat stress 0.00h, VPD-high 0.02h, VPD-low 0.00h, and live score 94.1. The sunset remediation successfully preserved overnight compliance and dew safety after the dry-day recovery shoulder. Remaining issue is operational, not climate: the MIDNIGHT trigger timed out and left this plan’s fallback carrying the morning until SUNRISE. Score: 9/10

Hypothesis

Testing: Restore audited sunset plan coverage after planning gateway SLA timeout. Expected outcome: Within the next recovery window, temp and VPD target deltas should trend toward zero without violating dew/occupancy safety rails.

Conditions

Outdoor peak

93.0°F

RH minimum

15.0%

Solar peak

850.0 W/m²

Cloud average

15.0%

Manual sunset SLA remediation after planning gateway timeout; current target context is compliance-first temp+VPD high.

Expected stress windows

heatmedium · 2026-05-24T22:46:43-06:00 to 2026-05-25T00:46:43-06:00

Vent cooling plus wet assist remains eligible from safety-gated controller path.

vpd_highhigh · 2026-05-24T22:46:43-06:00 to 2026-05-25T01:46:43-06:00

Keep moisture engage near vpd_high+0.05 and fog escalation near 0.20 while dew margin is safe.

Parameter rationale

direct_wet_stress_vpd_margin_kpa0.05; Live VPD above dispatcher high band during sunset recovery.

Climate wet assist stays eligible near the VPD high edge instead of waiting for a large miss.

fog_escalation_kpa0.2; Hot/dry ventilation risk and current dual-axis band miss.

Fog assist escalates earlier when safety rails allow it.

mister_water_budget_gal160.0; Compliance takes precedence over resource minimization until target deltas recover.

Water budget does not block recovery during the active dry miss.

Setpoints

Sunday May 24

Primary crop-band changes:

TimeValuesNote
22:49hyst 0.345Immediate sunset SLA remediation: temp and VPD are both abov
23:30hyst 0.35Late-evening recovery: preserve VPD assist near high edge, a

Tactical tunable changes:

TimeValuesNote
22:49s2 1.775; cool_exit 1.51; all_fans 0; dw_stress 1; dw_until 24; fog_stress 1; fog_until 22; engage 2.5; all 2.5; pulse 41.25; gap 33.75; wt 2.0666666666666664Immediate sunset SLA remediation: temp and VPD are both abov
23:30s2 1.875; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 24; fog_stress 1; fog_until 22; engage 2.5; all 2.5; pulse 33.75; gap 41.25; wt 1.7666666666666666Late-evening recovery: preserve VPD assist near high edge, a

Monday May 25

Primary crop-band changes:

TimeValuesNote
03:30hyst 0.35Overnight hold: keep thresholds band-coupled with conservati
08:00hyst 0.345Morning preconditioning: prepare for solar/heat ramp while k

Tactical tunable changes:

TimeValuesNote
03:30s2 1.875; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 24; fog_stress 1; fog_until 22; engage 2.5; all 2.5; pulse 33.75; gap 41.25; wt 1.7666666666666666Overnight hold: keep thresholds band-coupled with conservati
08:00s2 1.595; cool_exit 1.51; all_fans 0; dw_stress 1; dw_until 19; fog_stress 1; fog_until 19; engage 2.5; all 2.5; pulse 41.25; gap 37.5; wt 1.9499999999999997Morning preconditioning: prepare for solar/heat ramp while k

Changed secondary parameters:

TimeParameterChange
22:49cold_vent_guard_delta_finitial 7
22:49direct_wet_stress_min_dew_margin_finitial 10
22:49direct_wet_stress_vpd_margin_kpainitial 0.05
22:49dwell_gate_msinitial 195000
22:49enthalpy_closeinitial 1
22:49enthalpy_openinitial -2
22:49fog_escalation_kpainitial 0.2
22:49fog_stress_min_dew_margin_finitial 10
22:49heat_hysteresisinitial 1.1
22:49min_fog_off_sinitial 60
22:49min_fog_on_sinitial 63.75
22:49mist_backoff_sinitial 600
22:49mist_max_closed_vent_sinitial 120
22:49mist_thermal_relief_sinitial 90
22:49mister_all_delay_sinitial 70.5
22:49mister_engage_delay_sinitial 35.25
22:49mister_water_budget_galinitial 160
22:49outdoor_staleness_max_sinitial 600
22:49sw_dwell_gate_enabledinitial 1
22:49sw_fog_closes_ventinitial 1
22:49sw_mister_closes_ventinitial 0
22:49sw_summer_vent_enabledinitial 1
22:49temp_hysteresisinitial 1.51
22:49vent_prefer_dp_delta_finitial 4
22:49vent_prefer_temp_delta_finitial 3
22:49vpd_watch_dwell_sinitial 48.75
23:30dwell_gate_ms195000 → 210000
23:30min_fog_off_s60 → 72
23:30min_fog_on_s63.75 → 59.25
23:30mister_all_delay_s70.5 → 75
23:30mister_engage_delay_s35.25 → 37.5
23:30temp_hysteresis1.51 → 1.6
23:30vpd_watch_dwell_s48.75 → 52.5
08:00dwell_gate_ms210000 → 195000
08:00min_fog_off_s72 → 66
08:00min_fog_on_s59.25 → 61.5
08:00mister_all_delay_s75 → 70.5
08:00mister_engage_delay_s37.5 → 35.25
08:00mister_water_budget_gal160 → 180
08:00temp_hysteresis1.6 → 1.51
08:00vpd_watch_dwell_s52.5 → 48.75

End-of-Day Summary

Climate

Temperature

63.3–85.6°F; avg 70.6°F

VPD

0.45–1.77 kPa; avg 0.88 kPa

Relative humidity

43.3–82.4%

Stress Hours

  • Heat stress (>85°F): 9.5h
  • VPD stress (>2.0 kPa): 8.3h
  • Cold stress (<55°F): 0.0h

Economics

Electric

USD 3.22

Gas

USD 0.00

Water

USD 0.790

Total

USD 4.01

Equipment Runtimes

EquipmentRuntimeReading
Fan 1567 minPrimary exhaust runtime.
Fan 2568 minSecondary exhaust runtime.
Vent699 minIntake vent runtime.
Fog134 minFogger runtime.
Heat 1 electric493 minElectric heater runtime.
Heat 2 gas0 minGas heater runtime.
Grow lights986 minSupplemental lighting runtime.
Mister south0.42hSouth mister runtime.
Mister west0.04hWest mister runtime.
Mister center2.23hCenter mister runtime.

Water

  • Total: 163 gal
  • Mister: 66 gal

Crop Health (Gemini Vision)

CropZoneHealthObservationsNote
Canna Liliessouth68%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.
strawberryeast78%4Observation notes are collapsed below to avoid publishing partial vision snippets.
Vision observation notes
Canna LiliesGemini Vision notes

Canna lilies on the south floor look generally healthy, though soil moisture is reported as 0.0%.

Vanda OrchidsGemini Vision notes

Hanging basket visible, difficult to assess detailed health in IR view.

lettuceGemini Vision notes

Seedlings appear healthy and are establishing well.

pepperGemini Vision notes

Seedlings are growing, but some variation in size is visible.

strawberryGemini Vision notes

Seedlings are growing well with no visible issues.

Hourly Pattern

HourTemperatureVPDRH
12:0077.7°F1.12 kPa67.2%
13:0078.4°F1.29 kPa62.8%
14:0079.7°F1.34 kPa62.8%
15:0078.9°F1.26 kPa64.2%
16:0075.9°F1.15 kPa63.1%
17:0074.7°F1.15 kPa62.1%
18:0072.2°F0.99 kPa64.8%
19:0069.3°F0.86 kPa67.1%
20:0067.3°F0.93 kPa62.0%
21:0066.9°F0.84 kPa65.0%
22:0064.1°F0.86 kPa59.0%
23:0064.0°F0.63 kPa69.4%
00:0064.0°F0.52 kPa74.7%
01:0063.9°F0.50 kPa75.7%
02:0063.9°F0.48 kPa76.5%
03:0063.8°F0.46 kPa77.4%
04:0063.6°F0.46 kPa77.0%
05:0063.4°F0.46 kPa77.2%
06:0065.3°F0.55 kPa74.6%
07:0068.4°F0.66 kPa72.5%
08:0071.0°F0.77 kPa70.7%
09:0073.7°F0.88 kPa69.4%
10:0076.5°F0.94 kPa70.4%
11:0076.8°F1.07 kPa67.6%

7-Day Stress Context

DateHeatVPD highCold
2026-05-180.5h0.0h2.1h
2026-05-190.4h0.1h2.0h
2026-05-201.9h0.6h1.2h
2026-05-212.7h2.1h1.0h
2026-05-224.3h3.7h1.1h
2026-05-238.9h6.4h0.8h
2026-05-249.5h8.3h0.0h