August 25, 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.
23
1
2
0
| Event | Delivered | Type | Status | Note |
|---|---|---|---|---|
| End-of-day review and reset | 00:16 | MIDNIGHT | timed_out | Delivery recorded without a public plan write. |
| End-of-day review and reset (catch-up) | 00:48 | MIDNIGHT | timed_out | Delivery recorded without a public plan write. |
| End-of-day review and reset (catch-up) | 01:19 | MIDNIGHT | timed_out | Delivery recorded without a public plan write. |
| End-of-day review and reset (catch-up) | 01:51 | MIDNIGHT | timed_out | Delivery recorded without a public plan write. |
| End-of-day review and reset | 02:22 | MIDNIGHT | timed_out | Delivery recorded without a public plan write. |
| End-of-day review and reset | 02:53 | MIDNIGHT | timed_out | Delivery recorded without a public plan write. |
| Morning planning cycle | 06:23 | SUNRISE | timed_out | Delivery recorded without a public plan write. |
| Morning planning cycle (catch-up) | 06:54 | SUNRISE | timed_out | Delivery recorded without a public plan write. |
| Morning planning cycle (catch-up) | 07:26 | SUNRISE | timed_out | Delivery recorded without a public plan write. |
| Morning planning cycle (catch-up) | 07:57 | SUNRISE | timed_out | Delivery recorded without a public plan write. |
| Morning planning cycle | 08:29 | SUNRISE | timed_out | Delivery recorded without a public plan write. |
| Morning planning cycle | 09:00 | SUNRISE | timed_out | Delivery recorded without a public plan write. |
| Morning planning cycle | 10:05 | SUNRISE | timed_out | Delivery recorded without a public plan write. |
| Morning planning cycle | 10:37 | SUNRISE | timed_out | Delivery recorded without a public plan write. |
| Morning planning cycle | 11:08 | SUNRISE | timed_out | Delivery recorded without a public plan write. |
| Morning planning cycle | 11:40 | SUNRISE | wrong_action | Delivery recorded without a public plan write. |
| Morning planning cycle | 11:55 | SUNRISE | timed_out | Delivery recorded without a public plan write. |
| Morning planning cycle | 12:27 | SUNRISE | timed_out | Delivery recorded without a public plan write. |
| Solar peak planning checkpoint | 13:04 | SOLAR_MAX | acked | Acknowledged: SOLAR_MAX 13:04 MDT: live solar 1014 W/m2 overshoots bias-corrected forecast peak (~745-754) by ~35%, but house is already on the governing plan's compliance-first hot/dry posture and it is working: relay truth VENT_COOL_FOG_ASSIST with 100% wet+fog authority, house VPD actively recovering (13:02 avg ~1.9 kPa -> 13:05 1.48, east 1.08/west 1.17). All Tier 1 moisture levers already at hot/dry aggressive end (fog_esc 0... Resolved 13:07 MDT. |
| Forecast deviation | 13:51 | FORECAST_DEVIATION | action_completed | Delivery recorded without a public plan write. Resolved 13:53 MDT. |
| Peak Stress | 15:04 | TRANSITION | acked | Acknowledged: Peak-stress checkpoint 15:04 MDT: conditions tracking. House 84.7F/1.10 kPa VPD inside served band (high edges 85.2F/1.19 kPa), controller IDLE with all actuators off, dew margin 9.6F healthy. VPD peaked ~1.32 kPa at 13:00 and declined two consecutive hours; day's stress window complete and residual afternoon heat physics-limited (outdoor 79.9F, exhaust-only box). Wet thresholds band-coupled and auto-tracking (engage 1.24 = vpd_high+0.05, all 1.44 = vpd_high+0... Resolved 15:07 MDT. |
| Decline | 18:44 | TRANSITION | action_completed | Delivery recorded without a public plan write. Resolved 18:58 MDT. |
| Evening planning cycle | 19:44 | SUNSET | plan_written | Wrote public plan iris-20260825-1944. Resolved 19:58 MDT. |
🌆 Evening Cycle (7:58 PM) — iris-20260825-1944
validated
3/10
band_track_fraction, cold_vent_guard_delta_f, cool_exit_hysteresis_f, cool_stage2_exit_hysteresis_f, cool_stage2_over_high_f, direct_wet_stress_min_dew_margin_f, direct_wet_stress_vpd_margin_kpa, dwell_gate_ms ...
Reflection
Validating previous cycle: iris-20260824-0017
Previous hypothesis: MIDNIGHT plan for Monday 2026-08-24. Sunday closed at legacy score/compliance 60.6, essentially equal to the 60.8 seven-day average. Temperature and VPD diagnostics were both weak at 49.6% and 48.8%; heat dominated at 10.86 h, followed by 9.26 h VPD-high and 1.43 h VPD-low, with 0 h cold. Dew safety held with an 8.1F minimum margin and 0 risk hours. Attributable/graded compliance and reliable utility/cost fields remain unavailable, so no cost or controller-attributable claim is made. The completed SUNSET plan iris-20260823-1947 is graded 1/10, exactly matching the deterministic anchor. Its 4.4 h window scored 31.9, with 40.0% temperature and 25.7% VPD compliance. Low-side outcomes were safe—0 h cold and VPD-low, only 0.03 h each heat and VPD-high—but the live-edge recovery and stable corridor hypothesis failed causally and at the endpoint. At replacement, the house was 72.9F and 1… Result: Revised 5 → 3 after the deterministic anchor returned 1. Anchor guardrail scorecard: 75 guardrail events, 61 held, 14 dispatched, guardrail_penalty 3 — 81% of the plan’s moisture writes were held by the sticky VPD-high guardrail and did not reach the ESP32. My initial 5 credited the safe outcome (all measurable goals met to the boundary: vpd_high 0.00h, vpd_low 0.00h, dp_risk 0h, 12.9F dew, heat 0h, 129 gal); the anchor prices the materialization failure I under-weighted. The causal gap the anchor does not see: the held writes clamped to conservative-but-reasonable values and the house stayed in-corridor with 0.01h stress, so the process miss did not become an in-window outcome miss. But the plan’s core mechanism — band-coupled wet authority to close the late-night VENTILATE VPD-high moisture-assist gap — mostly did not materialize (14/75 dispatched), and that gap is re-emerging at the boundary (alert 10427, 00:15, VPD-high no moisture assist 100%). Revising to 3: safe outcome above the anchor, but the core mechanism mostly failed to deliver, which is a real causal partial-failure a process score alone understates. The replacement MIDNIGHT plan aligns its first segment with the sticky guardrail values (engage ~vpd_high+0.05, all-zone ~+0.25) to reduce held repairs. Score: 3/10
Hypothesis
Testing: Whether keeping wet authority past 19:00 (wet_cutoff_hour 22) with a gradually widening band-coupled engagement threshold (mister_engage vpd_high+0.05 → +0.20) prevents the late-night VPD-high persistence seen 08-25 23:00-01:00 without creating pre-dawn VPD-low stress. Expected outcome: Overnight 19:45-06:00 MDT: vpd_high_stress under 1.5h, vpd_low_stress under 0.5h, dp_risk 0h with min dew margin >=8F, zero heat runtime, 08-25 total water under 200 gal.
Conditions
91.0°F
20.0%
827.0 W/m²
40.0%
tonight mild and increasingly humid (outdoor RH 44→82%, VPD raw 1.5→0.30, cloud 64-100%, no heating needed); tomorrow repeats hot-dry pattern (91F / 20% RH / ~3.9 kPa corrected VPD)
Expected stress windows
band-coupled wet authority kept open: engage vpd_high+0.05 tapering to +0.10, all-zone +0.25->+0.30, duty 10->8%, wet cutoff 22, stress override active
taper engage to vpd_high+0.15->+0.20, all-zone +0.35->+0.40, duty 5%, resource sensitivity 0.5; controller DEHUM owns residual excess humidity
Parameter rationale
late-night (20:00-01:00) VPD-high stress reduced from ~2-3h to under 1h
pre-dawn VPD-low stress under 0.5h without a zero-wet cliff
no fog burst at 07:00 window-open before live VPD confirms the dry ramp
overnight mist runtime under 0.5h; 08-25 total water under 200 gal
Setpoints
Tuesday August 25
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 19:45 | hyst 0.1975 | evening_settle (immediate): house at 80.2F / 0.87 kPa house |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 19:45 | s2 1.76; cool_exit 1.78; all_fans 0; dw_stress 0; engage 0.9870000000000001; all 1.187; pulse 30; gap 48.75; wt 1.4333333333333333 | evening_settle (immediate): house at 80.2F / 0.87 kPa house |
Wednesday August 26
Primary crop-band changes:
| Time | Values | Note |
|---|---|---|
| 00:00 | hyst 0.1975 | midnight_posture: outdoor at 66F/66% RH rising, cloud 0-5%; |
| 03:00 | hyst 0.1975 | humidity_hold: deepest humidity trough (outdoor 62F/78% RH, |
| 05:30 | hyst 0.1975 | pre_dawn: outdoor 59F/78-82% RH, VPD 0.30-0.39; hold the VPD |
Tactical tunable changes:
| Time | Values | Note |
|---|---|---|
| 00:00 | s2 1.775; cool_exit 1.78; all_fans 0; dw_stress 0; engage 1.0370000000000001; all 1.237; pulse 30; gap 52.5; wt 1.3866666666666667 | midnight_posture: outdoor at 66F/66% RH rising, cloud 0-5%; |
| 03:00 | s2 1.775; cool_exit 1.78; all_fans 0; dw_stress 0; engage 1.087; all 1.287; pulse 30; gap 52.5; wt 1.3666666666666667 | humidity_hold: deepest humidity trough (outdoor 62F/78% RH, |
| 05:30 | s2 1.775; cool_exit 1.78; all_fans 0; dw_stress 0; engage 1.137; all 1.3370000000000002; pulse 30; gap 52.5; wt 1.3666666666666667 | pre_dawn: outdoor 59F/78-82% RH, VPD 0.30-0.39; hold the VPD |
Changed secondary parameters:
| Time | Parameter | Change |
|---|---|---|
| 19:45 | band_track_fraction | initial 0 |
| 19:45 | cold_vent_guard_delta_f | initial 8 |
| 19:45 | cool_stage2_exit_hysteresis_f | initial 1 |
| 19:45 | direct_wet_stress_min_dew_margin_f | initial 8 |
| 19:45 | direct_wet_stress_vpd_margin_kpa | initial 0.05 |
| 19:45 | dwell_gate_ms | initial 240000 |
| 19:45 | enthalpy_close | initial 1 |
| 19:45 | enthalpy_open | initial -2 |
| 19:45 | fog_escalation_kpa | initial 0.35 |
| 19:45 | heat_hysteresis | initial 1 |
| 19:45 | min_fog_off_s | initial 84 |
| 19:45 | min_fog_on_s | initial 54.75 |
| 19:45 | mist_backoff_s | initial 600 |
| 19:45 | mist_max_closed_vent_s | initial 600 |
| 19:45 | mist_thermal_relief_s | initial 90 |
| 19:45 | mister_all_delay_s | initial 84 |
| 19:45 | mister_engage_delay_s | initial 42 |
| 19:45 | mister_water_budget_gal | initial 150 |
| 19:45 | night_vpd_bias_kpa | initial 0 |
| 19:45 | outdoor_staleness_max_s | initial 600 |
| 19:45 | sw_dwell_gate_enabled | initial 1 |
| 19:45 | sw_fog_closes_vent | initial 1 |
| 19:45 | sw_mister_closes_vent | initial 0 |
| 19:45 | sw_summer_vent_enabled | initial 1 |
| 19:45 | temp_hysteresis | initial 1.78 |
| 19:45 | vent_exchange_fraction | initial 0.3 |
| 19:45 | vent_prefer_dp_delta_f | initial 3 |
| 19:45 | vent_prefer_temp_delta_f | initial 4 |
| 19:45 | vpd_watch_dwell_s | initial 60 |
| 00:00 | direct_wet_stress_vpd_margin_kpa | 0.05 → 0.1 |
| 00:00 | min_fog_off_s | 84 → 90 |
| 00:00 | min_fog_on_s | 54.75 → 52.5 |
| 00:00 | mister_water_budget_gal | 150 → 300 |
| 03:00 | direct_wet_stress_vpd_margin_kpa | 0.1 → 0.15 |
| 05:30 | direct_wet_stress_vpd_margin_kpa | 0.15 → 0.2 |
| 05:30 | fog_escalation_kpa | 0.35 → 0.3 |
End-of-Day Summary
Climate
67.0–85.8°F; avg 76.4°F
0.59–2.06 kPa; avg 0.95 kPa
51.3–77.9%
Interior Light Evidence
- Crop DLI: unavailable
- Reason:
source_reading_missing - Provenance:
legacy_invalid_exterior_proxy_plus_fixture_estimate - Validity:
dli-validity-v1; 2024-01-01T00:00:00+00:00 → open - Qualified-light minutes and photoperiod remain independent of unavailable DLI.
Stress Hours
- Heat stress (>85°F): 6.3h
- VPD stress (>2.0 kPa): 11.3h
- Cold stress (<55°F): 7.3h
Economics
Not available
USD 0.00
USD 0.620
Not available
Equipment Runtimes
| Equipment | Runtime | Reading |
|---|---|---|
| Fan 1 | 156 min | Primary exhaust runtime. |
| Fan 2 | 160 min | Secondary exhaust runtime. |
| Vent | 224 min | Intake vent runtime. |
| Fog | 87 min | Fogger runtime. |
| Heat 1 electric | 0 min | Electric heater runtime. |
| Heat 2 gas | 0 min | Gas heater runtime. |
| Grow lights | 1180 min | Supplemental lighting runtime. |
| Mister south | 0.00h | South mister runtime. |
| Mister west | 0.00h | West mister runtime. |
| Mister center | 0.85h | Center mister runtime. |
Water
- Total: 129 gal
- Mister: 18 gal
Hourly Pattern
| Hour | Temperature | VPD | RH |
|---|---|---|---|
| 12:00 | 82.4°F | 1.37 kPa | 64.5% |
| 13:00 | 84.7°F | 1.62 kPa | 61.5% |
| 14:00 | 84.4°F | 1.42 kPa | 65.5% |
| 15:00 | 83.6°F | 1.16 kPa | 70.5% |
| 16:00 | 83.8°F | 1.15 kPa | 71.0% |
| 17:00 | 83.8°F | 1.16 kPa | 70.8% |
| 18:00 | 82.1°F | 1.22 kPa | 67.6% |
| 19:00 | 80.1°F | 1.06 kPa | 70.1% |
| 20:00 | 78.9°F | 0.93 kPa | 72.7% |
| 21:00 | 76.9°F | 0.80 kPa | 74.9% |
| 22:00 | 75.2°F | 0.70 kPa | 76.5% |
| 23:00 | 73.3°F | 0.83 kPa | 70.2% |
| 00:00 | 70.8°F | 0.99 kPa | 61.5% |
| 01:00 | 69.4°F | 0.84 kPa | 65.9% |
| 02:00 | 68.6°F | 0.75 kPa | 68.8% |
| 03:00 | 69.0°F | 0.63 kPa | 74.0% |
| 04:00 | 67.8°F | 0.67 kPa | 71.0% |
| 05:00 | 67.6°F | 0.65 kPa | 71.9% |
| 06:00 | 68.8°F | 0.70 kPa | 71.2% |
| 07:00 | 71.6°F | 0.78 kPa | 70.9% |
| 08:00 | 74.4°F | 0.89 kPa | 69.8% |
| 09:00 | 77.2°F | 1.07 kPa | 66.8% |
| 10:00 | 78.9°F | 1.21 kPa | 64.3% |
| 11:00 | 80.5°F | 1.21 kPa | 66.2% |
7-Day Stress Context
| Date | Heat | VPD high | Cold |
|---|---|---|---|
| 2026-08-19 | 8.0h | 11.6h | 7.3h |
| 2026-08-20 | 7.2h | 14.9h | 7.4h |
| 2026-08-21 | 7.1h | 18.2h | 6.3h |
| 2026-08-22 | 6.8h | 11.8h | 4.8h |
| 2026-08-23 | 7.3h | 14.3h | 5.7h |
| 2026-08-24 | 6.5h | 13.3h | 6.7h |
| 2026-08-25 | 6.3h | 11.3h | 7.3h |