April 11, 2026
Generated lab notebook from daily_summary, plan_journal, and setpoint audit data. It is intentionally chronological and may include in-progress cycles before validation.
🌅 Morning Cycle (11:57 PM) — iris-20260411-0000
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 05:57 → 2026-04-11 06:42
Reflection
Validating previous cycle: iris-20260410-1755
Previous hypothesis: Aggressive pre-dawn heating bias (+1°F) with bias_cool +3°F on all cold nights will prevent vent oscillation. During daytime dry periods (Sat-Mon), early mister engagement (1.3 kPa), short pulse gaps (20-25s), extended sealed-vent time (900s on Sun/Mon), and fog escalation at 0.3 kPa will maximize humidity retention against extreme outdoor dryness. This should reduce VPD_high stress hours compared to standard posture. Result: [backfill] compliance unavailable over plan window 2026-04-11 05:57 → 2026-04-11 06:42 Score: 4/10
Hypothesis
Conditions: Three challenging days ahead: Saturday (Apr 11) overcast with 75°F peak, 18% low RH, moderate VPD stress expected 5h; Sunday (Apr 12) clear skies, 76°F peak, extreme 8% RH — worst day, 11h stress forecast; Monday (Apr 13) partly cloudy, 70°F peak, 11% low RH with high winds (20-29 mph), 9h stress. Current nighttime bands are tight (vpd_high=0.6, temp_high=65) requiring engage at 1.3 and bias_cool=+3 at all times during heating. Crop health shows lettuce/strawberry stress in east zone (nutrient/light issues outside planner control). Dew point margin healthy at 9.9°F, no condensation risk. Testing: Compare Saturday (overcast, 18% RH) vs Sunday (clear, 8% RH) with identical peak-stress tuning (engage 1.3, gap 20s, weight 3.0, max_closed_vent 900s) to isolate whether solar load or humidity deficit is the dominant VPD driver. If Sunday vpd_high_stress exceeds Saturday by >3h despite identical tuning, solar load dominates and shade cloth is the structural fix. Expected outcome: Saturday vpd_high_stress ~3-4h (midday only), Sunday vpd_high_stress ~7-9h (solar + extreme dryness), Monday vpd_high_stress ~5-7h. If Sunday exceeds Saturday by >3h with identical tuning, solar load is confirmed as dominant driver. | target_score=45 | target_compliance=45% | expected_stress=[heat=4.0, cold=0.5, vpd_high=8.0, vpd_low=0.5] | expected_cost=USD 6.0
Setpoints
Friday April 10
Primary crop-band changes:
Immediate coverage (copied from first transition)
Tactical tunable changes:
Immediate coverage (copied from first transition)
Saturday April 11
Primary crop-band changes:
Immediate corrective posture. Current VPD 0.82-0.89 with vpd
Pre-dawn Saturday. Outdoor 40°F, 88% RH — heaters running. b
Tree shade clears east zone — VPD ramp accelerates. Outdoor
Peak stress Saturday. Forecast 75°F/18% RH outdoor — extreme
Post-peak decline Saturday. Forecast shows temp drop to 62°F
Evening Saturday into cold night. Outdoor dropping to 51°F b
Tactical tunable changes:
Immediate corrective posture. Current VPD 0.82-0.89 with vpd
Pre-dawn Saturday. Outdoor 40°F, 88% RH — heaters running. b
Tree shade clears east zone — VPD ramp accelerates. Outdoor
Peak stress Saturday. Forecast 75°F/18% RH outdoor — extreme
Post-peak decline Saturday. Forecast shows temp drop to 62°F
Evening Saturday into cold night. Outdoor dropping to 51°F b
Sunday April 12
Primary crop-band changes:
Pre-dawn Sunday. Outdoor 43°F/46% RH, clear skies. Heaters a
Tree shade clears Sunday — aggressive early. Clear skies, ou
Peak stress Sunday — VPD peaks at 16:00 per milestone table
Decline Sunday. Fog window closes at 17:00 — raise fog_escal
Evening Sunday into Monday overnight. Outdoor 64°F dropping
Tactical tunable changes:
Pre-dawn Sunday. Outdoor 43°F/46% RH, clear skies. Heaters a
Tree shade clears Sunday — aggressive early. Clear skies, ou
Peak stress Sunday — VPD peaks at 16:00 per milestone table
Decline Sunday. Fog window closes at 17:00 — raise fog_escal
Evening Sunday into Monday overnight. Outdoor 64°F dropping
Monday April 13
Primary crop-band changes:
Pre-dawn Monday. Outdoor 51°F/25% — dry and cool. Heaters li
Tree shade clears Monday. Outdoor 63°F/15% at 10AM. High win
Peak stress Monday. Outdoor 69°F/11% at 1PM with 25 mph wind
Post-peak decline Monday. Outdoor 70°F/12% at 2PM, still win
Evening Monday. Outdoor dropping from 60°F to 45°F overnight
Tactical tunable changes:
Pre-dawn Monday. Outdoor 51°F/25% — dry and cool. Heaters li
Tree shade clears Monday. Outdoor 63°F/15% at 10AM. High win
Peak stress Monday. Outdoor 69°F/11% at 1PM with 25 mph wind
Post-peak decline Monday. Outdoor 70°F/12% at 2PM, still win
Evening Monday. Outdoor dropping from 60°F to 45°F overnight
Changed secondary parameters:
initial 3
initial 1
initial 1
initial -2
initial 0.3
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 30
3 → 0
1 → 0
600 → 900
30 → 45
0 → -1
45 → 30
-1 → 0
0.3 → 0.4
900 → 600
30 → 45
0 → 4
0 → 1
45 → 30
4 → 3
0.4 → 0.3
3 → 0
1 → 0
600 → 900
0 → -1
0.3 → 0.2
45 → 60
-1 → 0
0.2 → 0.5
60 → 120
900 → 600
60 → 45
30 → 45
0 → 4
0 → 2
0.5 → 0.4
120 → 60
45 → 30
4 → 3
2 → 1
0.4 → 0.3
3 → 0
1 → 0
60 → 90
60 → 90
600 → 900
30 → 45
0 → -1
45 → 60
45 → 30
-1 → 0
0.3 → 0.4
60 → 120
900 → 600
60 → 45
30 → 45
0 → 3
0 → 1
120 → 60
90 → 60
90 → 60
45 → 30
Full secondary parameter dump
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.5.
Value 120.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 90.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 90.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 120.
Value 60.
Value 300.
Value 120.
Value 90.
Value 90.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
🌅 Morning Cycle (12:42 AM) — iris-20260411-0045
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 06:42 → 2026-04-11 07:27
Reflection
Validating previous cycle: iris-20260410-1840
Previous hypothesis: By maintaining bias_cool=+3 during all heating periods and deploying maximum-aggression misting (engage 1.3, gap 20s, weight 2.5, sealed vent 900s) during the extreme dry afternoons of Sunday and Monday, we can reduce vpd_high stress from 34h to under 8h per day while eliminating cold stress from vent oscillation. Result: [backfill] compliance unavailable over plan window 2026-04-11 06:42 → 2026-04-11 07:27 Score: 4/10
Hypothesis
Conditions: Today (Sat) is overcast with a brief dry window 11AM-2PM (75°F, 18% RH outdoor), then clouds return with possible light rain. Sunday is the hardest day: clear skies, 76°F, 8% RH outdoor — extreme VPD stress expected for 11+ hours. Monday is windy (25-29 mph) with 70°F high and 11% RH, moderating by evening. Current nighttime VPD is 0.81-0.92 kPa against a band ceiling of 0.6 kPa — we’re already out of band. Today’s partial scorecard shows 17.3h total stress dominated by vpd_high (12.6h). East zone seedlings (lettuce, strawberry, pepper) show stress signs (wilting, yellowing, browning) — likely light/nutrient related, not directly addressable by this planner. Testing: Compare Sunday peak stress (gap=15s, fog_escalation=0.2, max_closed=900s) vs Monday peak stress (gap=20s, fog_escalation=0.3, max_closed=900s) to test whether 15s gap + 0.2 fog escalation provides meaningfully better VPD control on the drier day (8% RH Sun vs 11% RH Mon). If Sunday’s vpd_high_stress per outdoor VPD unit is lower than Monday’s, the ultra-aggressive posture justifies the water cost. Expected outcome: Sunday vpd_high_stress_h / avg_outdoor_vpd should be ≤ Monday’s ratio despite Sunday being drier, demonstrating that 15s gap + 0.2 fog escalation compensates for extreme dryness. | target_score=55 | target_compliance=55% | expected_stress=[heat=3.0, cold=0.5, vpd_high=8.0, vpd_low=0.5] | expected_cost=USD 6.5
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Current VPD is 0.81-0.92 against nighttime band ceiling of 0
Coldest hour approaching (40°F outdoor, 88% RH). Heaters wil
Tree shade clears east zone at 09:59. Outdoor temp rising to
Peak outdoor temp 75°F with 18% RH (VPD 2.39 kPa outdoor). T
Forecast shows temp dropping to 62°F with 50% RH at 15:00 —
Sunset at 19:25, brief clear sky at 19:00 (0% cloud). Outdoo
Tactical tunable changes:
Immediate coverage (copied from first transition)
Current VPD is 0.81-0.92 against nighttime band ceiling of 0
Coldest hour approaching (40°F outdoor, 88% RH). Heaters wil
Tree shade clears east zone at 09:59. Outdoor temp rising to
Peak outdoor temp 75°F with 18% RH (VPD 2.39 kPa outdoor). T
Forecast shows temp dropping to 62°F with 50% RH at 15:00 —
Sunset at 19:25, brief clear sky at 19:00 (0% cloud). Outdoo
Sunday April 12
Primary crop-band changes:
Outdoor 43°F/46% RH, clear skies. Heaters active. Maintain b
Tree shade clears. Outdoor already 60°F/27% RH and dropping
Peak stress at 16:00: 76°F/8% RH outdoor (VPD 2.83 kPa). Thi
Fog window closed at 17:00. Outdoor still extreme: 75°F/9% R
Sunset. Outdoor 69°F/15% RH dropping to 56°F/24% overnight.
Tactical tunable changes:
Outdoor 43°F/46% RH, clear skies. Heaters active. Maintain b
Tree shade clears. Outdoor already 60°F/27% RH and dropping
Peak stress at 16:00: 76°F/8% RH outdoor (VPD 2.83 kPa). Thi
Fog window closed at 17:00. Outdoor still extreme: 75°F/9% R
Sunset. Outdoor 69°F/15% RH dropping to 56°F/24% overnight.
Monday April 13
Primary crop-band changes:
Monday overnight is warmer (55-56°F) but dry (24-29% RH). He
Tree shade clears. Outdoor 59°F/19% RH. Cloud shift at 11:00
Peak VPD at 13:00: 69°F/11% RH outdoor with 25 mph wind. Out
Post-peak solar decline. Outdoor temp dropping from 70°F to
Sunset Monday. Outdoor dropping to 45°F by 22:00 with 36% RH
Tactical tunable changes:
Monday overnight is warmer (55-56°F) but dry (24-29% RH). He
Tree shade clears. Outdoor 59°F/19% RH. Cloud shift at 11:00
Peak VPD at 13:00: 69°F/11% RH outdoor with 25 mph wind. Out
Post-peak solar decline. Outdoor temp dropping from 70°F to
Sunset Monday. Outdoor dropping to 45°F by 22:00 with 36% RH
Changed secondary parameters:
initial 3
initial 1
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 30
0.4 → 0.3
3 → 0
1 → 0
30 → 45
0 → -1
1 → 2
-2 → -3
60 → 90
60 → 45
600 → 900
15 → 20
45 → 60
45 → 30
-1 → 0
2 → 1
-3 → -2
0.3 → 0.4
90 → 60
45 → 60
900 → 600
20 → 15
60 → 45
30 → 45
0 → 3
0 → 1
0.4 → 0.3
45 → 30
3 → 0
1 → 0
1 → 2
-2 → -3
0.3 → 0.2
60 → 90
60 → 45
600 → 900
15 → 20
45 → 60
0 → -1
2 → 3
-3 → -4
60 → 90
90 → 120
45 → 30
90 → 120
20 → 25
-1 → 0
3 → 2
-4 → -3
0.2 → 0.5
90 → 60
120 → 60
30 → 60
900 → 600
120 → 90
25 → 15
60 → 45
30 → 45
0 → 4
0 → 2
2 → 1
-3 → -2
0.5 → 0.4
45 → 30
4 → 3
2 → 1
0.4 → 0.3
3 → 0
1 → 0
1 → 2
-2 → -3
60 → 90
60 → 45
600 → 900
15 → 20
45 → 60
0 → -1
2 → 3
-3 → -4
60 → 90
90 → 120
45 → 30
90 → 120
-1 → 0
3 → 2
-4 → -3
0.3 → 0.4
90 → 60
120 → 60
30 → 60
900 → 600
120 → 90
20 → 15
60 → 45
30 → 45
0 → 3
0 → 1
2 → 1
-3 → -2
45 → 30
Full secondary parameter dump
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 3.
Value -4.
Value 0.2.
Value 60.
Value 90.
Value 300.
Value 120.
Value 120.
Value 30.
Value 900.
Value 120.
Value 25.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 3.
Value -4.
Value 0.3.
Value 60.
Value 90.
Value 300.
Value 120.
Value 120.
Value 30.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
🌅 Morning Cycle (1:27 AM) — iris-20260411-0130
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 07:27 → 2026-04-11 08:12
Reflection
Validating previous cycle: iris-20260410-1925
Previous hypothesis: Maintaining bias_cool=+4 during all heating periods prevents the vent oscillation that caused 8.6h cold stress on April 10. Engaging misters at 1.3 kPa with 20s gap during peak dry hours (Sat-Mon) and extending mist_max_closed_vent_s to 900s on the driest days (Sun/Mon with RH 9-10%) will keep VPD closer to band despite extreme outdoor dryness. Result: [backfill] compliance unavailable over plan window 2026-04-11 07:27 → 2026-04-11 08:12 Score: 4/10
Hypothesis
Conditions: Three challenging days ahead: Saturday (today) high 75°F with 17% RH and 100% cloud cover most of the day, Sunday extreme dry (76°F, 8% RH, clear afternoon), Monday windy and dry (70°F, 11% RH, high winds 25-29 mph). Today’s partial scorecard shows 19.3h total stress dominated by 14.6h vpd_high — the current plan’s daytime posture hasn’t engaged yet (it’s 1:25 AM). Cold nights all three days (lows 40-51°F) require heating bias. East zone seedlings (lettuce, strawberry, pepper) show stress indicators but these are likely light/nutrient issues outside tuning control. Tuesday transitions to much cooler (46°F high) with higher humidity — easy day. Testing: Compare Saturday (cloud-moderated, fog_escalation=0.3, max_closed=600, dwell=45s) vs Monday (clear+windy, fog_escalation=0.3, max_closed=900, dwell=30s) on vpd_high_stress hours. Monday is windier (25-29 mph) which increases infiltration losses. If Monday’s vpd_high_stress per outdoor VPD is comparable to Saturday’s despite worse conditions, the 900s sealed-vent + 30s dwell compensates for wind-driven humidity loss. Expected outcome: Monday’s vpd_high_stress_h / avg_outdoor_vpd ratio should be within 20% of Saturday’s ratio, demonstrating that extended sealed-vent time offsets wind-driven infiltration losses. | target_score=62 | target_compliance=65% | expected_stress=[heat=1.5, cold=0.0, vpd_high=6.0, vpd_low=0.5] | expected_cost=USD 6.5
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Cold night (outdoor 46°F dropping to 40°F). bias_cool +3 pre
Sunrise 06:35, outdoor 41°F. Keep heating bias active. Lower
East zone gets direct sun. Outdoor 62°F/42% RH at 10:00, cli
Peak at 75°F/17% RH outdoor (2.43 kPa outdoor VPD). Most agg
Outdoor temp dropping to 66°F/29% RH. Solar declining. Relax
Sunset. Outdoor dropping to 58°F/31% then 51°F/41% overnight
Tactical tunable changes:
Immediate coverage (copied from first transition)
Cold night (outdoor 46°F dropping to 40°F). bias_cool +3 pre
Sunrise 06:35, outdoor 41°F. Keep heating bias active. Lower
East zone gets direct sun. Outdoor 62°F/42% RH at 10:00, cli
Peak at 75°F/17% RH outdoor (2.43 kPa outdoor VPD). Most agg
Outdoor temp dropping to 66°F/29% RH. Solar declining. Relax
Sunset. Outdoor dropping to 58°F/31% then 51°F/41% overnight
Sunday April 12
Primary crop-band changes:
Sunday will be extreme: 76°F high, 8% RH low, clear sky afte
Outdoor 65°F/21% RH at 10:00, clear sky. VPD ramp will be st
Sunday peak: 76°F/8% RH outdoor (2.83 kPa outdoor VPD). Maxi
Fog window closes at 17:00. Outdoor 75°F/9% still very dry b
Sunday night is warmer than Saturday (low 56°F vs 43°F) but
Tactical tunable changes:
Sunday will be extreme: 76°F high, 8% RH low, clear sky afte
Outdoor 65°F/21% RH at 10:00, clear sky. VPD ramp will be st
Sunday peak: 76°F/8% RH outdoor (2.83 kPa outdoor VPD). Maxi
Fog window closes at 17:00. Outdoor 75°F/9% still very dry b
Sunday night is warmer than Saturday (low 56°F vs 43°F) but
Monday April 13
Primary crop-band changes:
Monday: 70°F high, 11% RH, winds 20-29 mph afternoon. Outdoo
Outdoor 63°F/15% at 10:00. Wind picking up (3→20 mph by noon
Monday peak: 69°F/11% outdoor (2.18 kPa), winds 25 mph. Clou
Post-peak: outdoor 70°F/12% but declining. Wind still strong
Monday night: cold front arriving, dropping to 45°F by 22:00
Tactical tunable changes:
Monday: 70°F high, 11% RH, winds 20-29 mph afternoon. Outdoo
Outdoor 63°F/15% at 10:00. Wind picking up (3→20 mph by noon
Monday peak: 69°F/11% outdoor (2.18 kPa), winds 25 mph. Clou
Post-peak: outdoor 70°F/12% but declining. Wind still strong
Monday night: cold front arriving, dropping to 45°F by 22:00
Changed secondary parameters:
initial 3
initial 1
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 60
0.4 → 0.3
3 → 0
1 → 0
60 → 45
0 → -1
-2 → -3
45 → 30
-1 → 0
-3 → -2
0.3 → 0.4
30 → 45
0 → 3
0 → 1
45 → 60
0.4 → 0.3
60 → 45
3 → 0
1 → 0
1 → 2
-2 → -3
0.3 → 0.2
60 → 90
600 → 900
15 → 20
45 → 60
45 → 30
0 → -1
60 → 45
-1 → 0
2 → 1
-3 → -2
0.2 → 0.5
45 → 60
90 → 60
900 → 600
20 → 15
60 → 45
30 → 45
0 → 4
0 → 2
0.5 → 0.4
45 → 60
4 → 3
2 → 1
0.4 → 0.3
60 → 45
3 → 0
1 → 0
1 → 2
-2 → -3
60 → 90
600 → 900
90 → 120
15 → 20
45 → 60
45 → 30
0 → -1
60 → 45
-1 → 0
2 → 1
-3 → -2
0.3 → 0.4
45 → 60
90 → 60
900 → 600
120 → 90
20 → 15
60 → 45
30 → 45
0 → 3
0 → 1
45 → 60
Full secondary parameter dump
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.5.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (2:12 AM) — iris-20260411-0215
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 08:12 → 2026-04-11 08:57
Reflection
Validating previous cycle: iris-20260410-2010
Previous hypothesis: Maintaining bias_cool=+4 during all heating periods prevents vent oscillation cold stress, while aggressive daytime misting (engage 1.3, gap 20s, weight 2.5) with extended sealed-vent time (900s) and low fog escalation (0.3 kPa) will minimize vpd_high stress on these extreme dry days. The key validated lesson is that nighttime vpd_high ~0.6 means mister_engage_kpa must be at 1.3 even overnight to have any chance of engaging before the band ceiling. Result: [backfill] compliance unavailable over plan window 2026-04-11 08:12 → 2026-04-11 08:57 Score: 4/10
Hypothesis
Conditions: Today (Sat) is cloud-moderated with high 74°F and outdoor RH dropping to 17% — moderate VPD stress expected. Sunday is the hardest day: clear skies, 76°F high, outdoor RH plunging to 8%, extreme dryness requiring maximum misting aggression. Monday is windy (25-29 mph) with 70°F high and 11% RH — wind-driven infiltration will challenge humidity retention. Tuesday brings a cold front (46°F high, 33% RH) — much easier. Current partial-day scorecard shows 15.63h vpd_high_stress already accumulated today, indicating the active plan’s daytime posture needs more aggressive misting and longer sealed-vent periods. East zone seedlings (lettuce, strawberry, pepper) show stress signs but these are likely nutrient/light issues outside this planner’s control surface. Testing: Compare Sunday (fog_escalation_kpa=0.2, mist_max_closed_vent_s=900, vpd_watch_dwell_s=30, mister_pulse_gap_s=15) vs Monday (fog_escalation_kpa=0.3, mist_max_closed_vent_s=900, vpd_watch_dwell_s=30, mister_pulse_gap_s=20) on vpd_high_stress hours normalized by outdoor VPD. Sunday is drier (8% RH) but calmer; Monday is windier (25-29 mph) but slightly less dry (11% RH). If fog_escalation_kpa=0.2 on Sunday produces fewer normalized vpd_high_stress hours than 0.3 on Monday, the lower fog threshold compensates for extreme dryness better than sealed-vent alone. Expected outcome: Sunday’s vpd_high_stress_h / avg_outdoor_vpd should be lower than Monday’s ratio despite worse outdoor humidity, demonstrating that fog_escalation_kpa=0.2 provides meaningful additional humidity control beyond misting alone on extreme dry days. | target_score=55 | target_compliance=55% | expected_stress=[heat=2.0, cold=0.5, vpd_high=7.0, vpd_low=0.5] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Cold night (outdoor 42-44°F). bias_heat +1 for pre-heat, bia
Sunrise 06:35, outdoor 42°F. Keep heating bias active. Lower
Tree shade clears east zone. Outdoor warming to 60°F, RH dro
Peak VPD stress window. Outdoor 73°F/17% RH. Aggressive mist
Solar declining, outdoor temp dropping to 64°F. Relax mistin
Sunset. Outdoor dropping to 51°F overnight. bias_heat +1 for
Tactical tunable changes:
Immediate coverage (copied from first transition)
Cold night (outdoor 42-44°F). bias_heat +1 for pre-heat, bia
Sunrise 06:35, outdoor 42°F. Keep heating bias active. Lower
Tree shade clears east zone. Outdoor warming to 60°F, RH dro
Peak VPD stress window. Outdoor 73°F/17% RH. Aggressive mist
Solar declining, outdoor temp dropping to 64°F. Relax mistin
Sunset. Outdoor dropping to 51°F overnight. bias_heat +1 for
Sunday April 12
Primary crop-band changes:
Sunday is the hardest day: 76°F high, 8% RH low, clear skies
East zone direct sun. Outdoor 65°F/21% RH and dropping fast.
Peak VPD at 16:00 per milestone table. Outdoor 76°F/8% RH —
Fog window closes at 17:00. Widen fog_escalation to 0.5 (eff
Sunset. Sunday night is warmer than Saturday (low 56°F vs 48
Tactical tunable changes:
Sunday is the hardest day: 76°F high, 8% RH low, clear skies
East zone direct sun. Outdoor 65°F/21% RH and dropping fast.
Peak VPD at 16:00 per milestone table. Outdoor 76°F/8% RH —
Fog window closes at 17:00. Widen fog_escalation to 0.5 (eff
Sunset. Sunday night is warmer than Saturday (low 56°F vs 48
Monday April 13
Primary crop-band changes:
Monday: 70°F high, 11% RH, winds 25-29 mph. Wind increases i
East zone direct sun. Outdoor 63°F/15% RH, wind picking up t
Peak VPD at 13:00. Cloud shift at 11:00 (clear→cloudy) may m
Post-peak decline. Outdoor 70°F/12% RH but wind still 28 mph
Sunset. Cold front arriving — overnight low 45°F, dropping t
Tactical tunable changes:
Monday: 70°F high, 11% RH, winds 25-29 mph. Wind increases i
East zone direct sun. Outdoor 63°F/15% RH, wind picking up t
Peak VPD at 13:00. Cloud shift at 11:00 (clear→cloudy) may m
Post-peak decline. Outdoor 70°F/12% RH but wind still 28 mph
Sunset. Cold front arriving — overnight low 45°F, dropping t
Tuesday April 14
Primary crop-band changes:
Tuesday cold front: 46°F high, 33% RH, 100% clouds. Minimal
Tactical tunable changes:
Tuesday cold front: 46°F high, 33% RH, 100% clouds. Minimal
Changed secondary parameters:
initial 3
initial 1
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 60
0.4 → 0.3
60 → 45
3 → 0
1 → 0
0 → -1
60 → 90
15 → 20
45 → 30
-1 → 0
0.3 → 0.4
90 → 60
20 → 15
30 → 45
0 → 3
0 → 1
45 → 60
0.4 → 0.2
60 → 90
600 → 900
15 → 20
45 → 60
60 → 45
3 → 0
1 → 0
45 → 30
0 → -1
1 → 2
-2 → -3
90 → 120
20 → 25
-1 → 0
2 → 1
-3 → -2
0.2 → 0.5
60 → 90
120 → 60
900 → 600
25 → 15
60 → 45
30 → 45
0 → 4
0 → 2
0.5 → 0.4
90 → 60
45 → 60
4 → 3
2 → 1
0.4 → 0.3
60 → 90
600 → 900
15 → 20
45 → 60
60 → 45
3 → 0
1 → 0
90 → 120
45 → 30
0 → -1
1 → 2
-2 → -3
90 → 120
20 → 25
-1 → 0
2 → 1
-3 → -2
0.3 → 0.4
60 → 90
120 → 60
900 → 600
120 → 90
25 → 15
60 → 45
30 → 45
0 → 3
0 → 1
90 → 60
45 → 60
3 → 4
1 → 2
Full secondary parameter dump
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 600.
Value 90.
Value 20.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 120.
Value 60.
Value 900.
Value 90.
Value 25.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.5.
Value 90.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 120.
Value 60.
Value 900.
Value 120.
Value 25.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 90.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (2:57 AM) — iris-20260411-0300
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 08:57 → 2026-04-11 09:42
Reflection
Validating previous cycle: iris-20260410-2010
Previous hypothesis: Maintaining bias_cool=+4 during all heating periods prevents vent oscillation cold stress, while aggressive daytime misting (engage 1.3, gap 20s, weight 2.5) with extended sealed-vent time (900s) and low fog escalation (0.3 kPa) will minimize vpd_high stress on these extreme dry days. The key validated lesson is that nighttime vpd_high ~0.6 means mister_engage_kpa must be at 1.3 even overnight to have any chance of engaging before the band ceiling. Result: [backfill] compliance unavailable over plan window 2026-04-11 08:57 → 2026-04-11 09:42 Score: 4/10
Hypothesis
Conditions: Today (Sat) is overcast with 75°F high, 18% low RH — moderate VPD stress expected. Sunday is the hardest day: 76°F, 7% RH, extreme dryness with clear-to-cloud transition at 11:00. Monday brings 70°F, 11% RH with high winds (25-29 mph) and cloud cover clearing at 11:00. Tuesday drops to 46°F with 33% RH — cold front arrives, minimal stress. Current partial-day scorecard shows 22.3h total stress (17.6h vpd_high + 4.7h heat) with only 7% compliance, but nighttime bands are tight (vpd_high=0.6, temp_high=65) and indoor VPD is 0.85-1.00 — the overnight band is very narrow. Lettuce and strawberry seedlings in east zone show stress (wilting, yellowing, browning) — likely nutrient/light issues outside this planner’s control surface. Testing: Compare Sunday (fog_escalation_kpa=0.2, wind 3-18 mph, outdoor RH 7-15%) vs Monday (fog_escalation_kpa=0.3, wind 20-29 mph, outdoor RH 11-22%) on vpd_high_stress hours normalized by average outdoor VPD. If fog_escalation_kpa=0.2 on Sunday yields a lower stress-to-outdoor-VPD ratio than 0.3 on Monday, earlier fog engagement is the dominant lever for extreme dryness. Expected outcome: Sunday’s vpd_high_stress_hours / avg_outdoor_vpd should be lower than Monday’s ratio despite Sunday being 2x drier, demonstrating that fog_escalation_kpa=0.2 compensates for extreme dryness better than 0.3 with sealed-vent alone. | target_score=55 | target_compliance=55% | expected_stress=[heat=2.0, cold=0.5, vpd_high=8.0, vpd_low=0.5] | expected_cost=USD 6.5
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Cold night (outdoor 40-44°F). bias_cool +3 prevents vent osc
Pre-dawn Saturday. Outdoor 41°F, 86% RH, overcast. Heaters s
Tree shade clears east zone. Outdoor 60°F, 46% RH, overcast.
Peak stress Saturday: 75°F, 18% RH outdoor, partial cloud br
Post-solar decline Saturday. Outdoor 68°F, 30% RH, still ove
Evening Saturday. Outdoor dropping to 52°F overnight, clear
Tactical tunable changes:
Immediate coverage (copied from first transition)
Cold night (outdoor 40-44°F). bias_cool +3 prevents vent osc
Pre-dawn Saturday. Outdoor 41°F, 86% RH, overcast. Heaters s
Tree shade clears east zone. Outdoor 60°F, 46% RH, overcast.
Peak stress Saturday: 75°F, 18% RH outdoor, partial cloud br
Post-solar decline Saturday. Outdoor 68°F, 30% RH, still ove
Evening Saturday. Outdoor dropping to 52°F overnight, clear
Sunday April 12
Primary crop-band changes:
Pre-dawn Sunday. Outdoor 44°F, 54% RH, clear. Extreme drynes
Tree shade clears Sunday. Outdoor 65°F, 18% RH, clear sky. V
Cloud shift Sunday 11:00 — clouds arrive (63% cover) but out
Peak stress Sunday: 76°F, 7% RH outdoor — extreme. Maximum m
Post-solar decline Sunday. Outdoor 75°F, 7% RH, 100% cloud,
Evening Sunday. Outdoor dropping to 56°F overnight, still ve
Tactical tunable changes:
Pre-dawn Sunday. Outdoor 44°F, 54% RH, clear. Extreme drynes
Tree shade clears Sunday. Outdoor 65°F, 18% RH, clear sky. V
Cloud shift Sunday 11:00 — clouds arrive (63% cover) but out
Peak stress Sunday: 76°F, 7% RH outdoor — extreme. Maximum m
Post-solar decline Sunday. Outdoor 75°F, 7% RH, 100% cloud,
Evening Sunday. Outdoor dropping to 56°F overnight, still ve
Monday April 13
Primary crop-band changes:
Pre-dawn Monday. Outdoor 51°F, 25% RH, overcast, 9 mph wind.
Tree shade clears Monday. Outdoor 63°F, 15% RH, overcast. VP
Cloud shift Monday 11:00 — clearing to 0% cloud by noon. Sol
Post-solar decline Monday. Outdoor 70°F, 12% RH, 28 mph wind
Evening Monday. Cold front arriving — outdoor drops to 45°F
Tactical tunable changes:
Pre-dawn Monday. Outdoor 51°F, 25% RH, overcast, 9 mph wind.
Tree shade clears Monday. Outdoor 63°F, 15% RH, overcast. VP
Cloud shift Monday 11:00 — clearing to 0% cloud by noon. Sol
Post-solar decline Monday. Outdoor 70°F, 12% RH, 28 mph wind
Evening Monday. Cold front arriving — outdoor drops to 45°F
Tuesday April 14
Primary crop-band changes:
Tuesday 02:00 — cold front in full effect. Outdoor 45°F, 38%
Tactical tunable changes:
Tuesday 02:00 — cold front in full effect. Outdoor 45°F, 38%
Changed secondary parameters:
initial 3
initial 1
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 60
0.4 → 0.3
3 → 0
1 → 0
60 → 45
0 → -1
45 → 30
-1 → 0
0.3 → 0.4
30 → 45
0 → 3
0 → 1
45 → 60
0.4 → 0.2
600 → 900
3 → 0
1 → 0
60 → 30
0 → -1
1 → 2
-2 → -3
60 → 45
60 → 90
90 → 120
45 → 60
-1 → 0
2 → 1
-3 → -2
0.2 → 0.3
45 → 60
90 → 60
120 → 90
60 → 45
0 → 4
0 → 2
0.3 → 0.4
900 → 600
30 → 60
4 → 3
2 → 1
0.4 → 0.3
600 → 900
3 → 0
1 → 0
60 → 30
0 → -1
1 → 2
-2 → -3
60 → 45
60 → 90
90 → 120
45 → 60
-1 → 0
2 → 1
-3 → -2
0.3 → 0.4
45 → 60
90 → 60
900 → 600
120 → 90
60 → 45
30 → 45
0 → 4
0 → 2
45 → 60
Full secondary parameter dump
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 15.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 15.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 15.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (3:42 AM) — iris-20260411-0345
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 09:42 → 2026-04-11 10:27
Reflection
Validating previous cycle: iris-20260410-2100
Previous hypothesis: By maintaining bias_cool=+4 during all heating periods to prevent vent oscillation, keeping mister_engage_kpa=1.3 at all times (since nighttime vpd_high band is 0.6-0.8, well below the default 1.6 engage threshold), and using aggressive sealed-vent misting (gap=20s, max_closed=900s) during peak dry hours, we can reduce total stress hours from 69.6h to under 15h across the 3-day period. Result: [backfill] compliance unavailable over plan window 2026-04-11 09:42 → 2026-04-11 10:27 Score: 4/10
Hypothesis
Conditions: Today (Sat): overcast, high 75°F, outdoor RH dropping to 18% by 1 PM — moderate VPD stress expected. Sunday is the hardest day: clear-to-partly-cloudy, 76°F high, outdoor RH plunging to 7% with winds 14-18 mph — extreme dryness will drive sustained VPD_high stress. Monday: windy (20-29 mph), 70°F high, 11-12% RH, clearing by afternoon — still aggressive but slightly less extreme. Tuesday cold front arrives (46°F high, 33% RH) — easy day. Current partial scorecard shows 18.6h vpd_high_stress today already, indicating the active plan’s evening revert to engage=1.3/gap=45 was too conservative for the dry overnight. East zone seedlings (lettuce, strawberry) show stress signs but these are likely light/nutrient issues outside tuning scope. Testing: Compare Saturday (overcast, fog_escalation_kpa=0.3, mist_max_closed_vent_s=600) vs Monday (clear+windy, fog_escalation_kpa=0.3, mist_max_closed_vent_s=900) on vpd_high_stress hours. Monday has higher wind (20-29 mph) but similar outdoor VPD. If 900s sealed-vent on Monday yields fewer vpd_high stress hours per unit outdoor VPD than Saturday’s 600s, extended sealed-vent is the dominant lever even in windy conditions. Expected outcome: Monday’s vpd_high_stress_hours / avg_outdoor_vpd ratio should be lower than Saturday’s ratio, demonstrating that 900s sealed-vent compensates for wind-driven infiltration losses better than 600s. | target_score=45 | target_compliance=40% | expected_stress=[heat=3.0, cold=0.5, vpd_high=12.0, vpd_low=0.5] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Cold night (40°F outdoor). bias_cool +3 prevents vent oscill
Pre-dawn: still cold (41°F), keep heating bias. Lower mister
Tree shade clears east zone. Outdoor warming to 60°F — drop
Peak stress: 75°F outdoor, 18% RH, clouds breaking briefly a
Declining solar, temp dropping to 68°F but outdoor RH still
Sunset. Overnight low ~47°F, heaters will run. bias_cool +3
Tactical tunable changes:
Immediate coverage (copied from first transition)
Cold night (40°F outdoor). bias_cool +3 prevents vent oscill
Pre-dawn: still cold (41°F), keep heating bias. Lower mister
Tree shade clears east zone. Outdoor warming to 60°F — drop
Peak stress: 75°F outdoor, 18% RH, clouds breaking briefly a
Declining solar, temp dropping to 68°F but outdoor RH still
Sunset. Overnight low ~47°F, heaters will run. bias_cool +3
Sunday April 12
Primary crop-band changes:
Sunday is the hardest day: 76°F high, 7% RH, winds 14-18 mph
Tree shade clears. Outdoor 62°F, 24% RH — VPD ramp accelerat
Cloud shift at 11:00 — 63% cloud cover arrives but outdoor R
Peak stress: 76°F outdoor, 7% RH, outdoor VPD 2.84 kPa, wind
Fog window closes at 17:00. Widen fog_escalation to 0.3 — ca
Sunset Sunday. Overnight low dropping to 55-56°F (warmer tha
Tactical tunable changes:
Sunday is the hardest day: 76°F high, 7% RH, winds 14-18 mph
Tree shade clears. Outdoor 62°F, 24% RH — VPD ramp accelerat
Cloud shift at 11:00 — 63% cloud cover arrives but outdoor R
Peak stress: 76°F outdoor, 7% RH, outdoor VPD 2.84 kPa, wind
Fog window closes at 17:00. Widen fog_escalation to 0.3 — ca
Sunset Sunday. Overnight low dropping to 55-56°F (warmer tha
Monday April 13
Primary crop-band changes:
Monday: 70°F high, 11-12% RH, winds 20-29 mph. Wind will inc
Tree shade clears. Overcast (100%) but outdoor RH only 19%.
Clouds clearing (0% by 11AM), solar load jumps to 698 W/m².
Post-peak solar. Temp declining (70→68°F) but wind still 28-
Sunset Monday. Cold front arriving — overnight low 45°F, out
Tactical tunable changes:
Monday: 70°F high, 11-12% RH, winds 20-29 mph. Wind will inc
Tree shade clears. Overcast (100%) but outdoor RH only 19%.
Clouds clearing (0% by 11AM), solar load jumps to 698 W/m².
Post-peak solar. Temp declining (70→68°F) but wind still 28-
Sunset Monday. Cold front arriving — overnight low 45°F, out
Tuesday April 14
Primary crop-band changes:
Tuesday: cold front (46°F high, 33% RH, 100% cloud at 02:00)
Tactical tunable changes:
Tuesday: cold front (46°F high, 33% RH, 100% cloud at 02:00)
Changed secondary parameters:
initial 3
initial 1
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 60
0.4 → 0.3
60 → 45
3 → 0
1 → 0
0 → -1
45 → 30
-1 → 0
0.3 → 0.4
30 → 45
0 → 3
0 → 1
45 → 60
1 → 2
-2 → -3
0.4 → 0.2
60 → 45
60 → 90
600 → 900
15 → 20
45 → 60
60 → 30
3 → 0
1 → 0
0 → -1
-1 → 0
0.2 → 0.3
45 → 60
0 → 4
0 → 2
2 → 1
-3 → -2
0.3 → 0.4
90 → 60
900 → 600
20 → 15
60 → 45
30 → 60
4 → 3
2 → 1
1 → 2
-2 → -3
0.4 → 0.3
60 → 45
60 → 90
600 → 900
90 → 120
15 → 20
45 → 60
60 → 30
3 → 0
1 → 0
0 → -1
-1 → 0
2 → 1
-3 → -2
0.3 → 0.4
45 → 60
90 → 60
900 → 600
120 → 90
20 → 15
60 → 45
30 → 45
0 → 4
0 → 2
45 → 60
Full secondary parameter dump
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 2.
Value -3.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (4:27 AM) — iris-20260411-0430
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 10:27 → 2026-04-11 11:12
Reflection
Validating previous cycle: iris-20260410-2145
Previous hypothesis: By maintaining mister_engage_kpa=1.3 and bias_cool=+4 at ALL times (including overnight), we prevent the two dominant failure modes: (1) mister engage threshold above the tight nighttime vpd_high band ceiling, and (2) vent oscillation during heating. During daytime peak stress, aggressive misting (gap=20s, weight=2.5-3.0) with extended sealed-vent periods (900s) will maximize evaporative cooling. This should dramatically reduce the 41.1h vpd_high stress seen on April 10. Result: [backfill] compliance unavailable over plan window 2026-04-11 10:27 → 2026-04-11 11:12 Score: 4/10
Hypothesis
Conditions: Three challenging days ahead: Saturday (today) overcast with 76°F high and 17% low RH, Sunday extremely dry (7% RH, 76°F, clear afternoon), Monday windy (20-29 mph) with 70°F and 11% RH clearing to sun midday. Tuesday brings a cold front (46°F high, 33% RH) — much easier. Current state is SEALED_MIST_S1 at 4:25 AM with indoor temps 61-68°F and VPD 0.82-1.16 kPa. Today’s partial scorecard shows 0% compliance and 20.6h vpd_high stress — the active plan’s daytime settings are struggling against dry conditions despite overcast skies. Lettuce and strawberry seedlings in east zone show stress (wilting, yellowing, browning) likely from temperature/light issues outside this planner’s control surface. Testing: Compare Sunday (fog_escalation_kpa=0.2, mist_max_closed_vent_s=900, pulse_gap=15s at peak) vs Saturday (fog_escalation_kpa=0.3, mist_max_closed_vent_s=600, pulse_gap=20s at peak) on vpd_high stress hours normalized by outdoor VPD. Sunday is ~2.5x drier. If fog_escalation 0.2 + 900s sealed-vent compensates, Sunday’s vpd_high_stress / avg_outdoor_VPD ratio should be ≤ Saturday’s ratio. Expected outcome: Sunday vpd_high_stress_h / avg_outdoor_VPD ≤ Saturday’s ratio, demonstrating that tighter fog escalation (0.2 vs 0.3) is the dominant lever for extreme dryness beyond sealed-vent extension alone. | target_score=55 | target_compliance=55% | expected_stress=[heat=2.0, cold=0.5, vpd_high=7.0, vpd_low=0.5] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Pre-dawn cold night posture. Outdoor 41°F, heaters active. b
East zone gets direct sun, VPD ramp accelerates. Overcast bu
Peak at 76°F/17% RH outdoor. Forecast shows 453 W/m² solar a
Solar declining, outdoor temp dropping to 69°F. Relax mistin
Sunset. Outdoor dropping to 61°F/32% RH overnight then 52°F
Tactical tunable changes:
Immediate coverage (copied from first transition)
Pre-dawn cold night posture. Outdoor 41°F, heaters active. b
East zone gets direct sun, VPD ramp accelerates. Overcast bu
Peak at 76°F/17% RH outdoor. Forecast shows 453 W/m² solar a
Solar declining, outdoor temp dropping to 69°F. Relax mistin
Sunset. Outdoor dropping to 61°F/32% RH overnight then 52°F
Sunday April 12
Primary crop-band changes:
Sunday is the hardest day: 7% RH, 76°F, clear afternoon. Pre
Clear sky, 503 W/m² solar by 10AM, outdoor 65°F/18% RH. VPD
Cloud cover increases to 63% at 11AM but solar still 591 W/m
Peak conditions: 76°F/7% RH outdoor, 636 W/m² solar, wind 14
Solar declining but still dry (75°F/7% RH, wind 17 mph). Fog
Sunday night: outdoor drops from 70°F to 56°F by midnight, s
Tactical tunable changes:
Sunday is the hardest day: 7% RH, 76°F, clear afternoon. Pre
Clear sky, 503 W/m² solar by 10AM, outdoor 65°F/18% RH. VPD
Cloud cover increases to 63% at 11AM but solar still 591 W/m
Peak conditions: 76°F/7% RH outdoor, 636 W/m² solar, wind 14
Solar declining but still dry (75°F/7% RH, wind 17 mph). Fog
Sunday night: outdoor drops from 70°F to 56°F by midnight, s
Monday April 13
Primary crop-band changes:
Monday pre-dawn: 51°F/25% RH outdoor, wind 9 mph. Cold-dry p
Monday morning: overcast clearing to sun by 11AM. Outdoor 59
Clouds clear at 11AM — 698 W/m² solar, outdoor 66°F/12% RH.
Monday 14:00: outdoor 70°F/12% RH, wind 28 mph, 757 W/m² sol
Monday evening: outdoor dropping from 60°F to 45°F overnight
Tactical tunable changes:
Monday pre-dawn: 51°F/25% RH outdoor, wind 9 mph. Cold-dry p
Monday morning: overcast clearing to sun by 11AM. Outdoor 59
Clouds clear at 11AM — 698 W/m² solar, outdoor 66°F/12% RH.
Monday 14:00: outdoor 70°F/12% RH, wind 28 mph, 757 W/m² sol
Monday evening: outdoor dropping from 60°F to 45°F overnight
Tuesday April 14
Primary crop-band changes:
Tuesday cold front: 46°F high, 33% RH, overcast with 22% pre
Tactical tunable changes:
Tuesday cold front: 46°F high, 33% RH, overcast with 22% pre
Changed secondary parameters:
initial 3
initial 1
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 45
3 → 0
1 → 0
0.4 → 0.3
0 → -1
60 → 90
15 → 20
45 → 30
-1 → 0
0.3 → 0.4
60 → 90
90 → 60
20 → 15
30 → 45
0 → 3
0 → 1
90 → 60
45 → 60
0.4 → 0.2
60 → 90
600 → 900
45 → 60
60 → 45
3 → 0
1 → 0
1 → 2
-2 → -3
60 → 45
15 → 20
45 → 30
0 → -1
45 → 30
90 → 120
20 → 25
-1 → 0
2 → 1
-3 → -2
0.2 → 0.3
30 → 60
120 → 90
25 → 20
60 → 45
30 → 45
0 → 4
0 → 2
0.3 → 0.4
90 → 60
900 → 600
20 → 15
45 → 60
4 → 3
2 → 1
0.4 → 0.3
60 → 90
600 → 900
15 → 20
45 → 60
60 → 45
3 → 0
1 → 0
1 → 2
-2 → -3
60 → 45
20 → 25
45 → 30
0 → -1
90 → 120
90 → 120
25 → 30
-1 → 0
2 → 1
-3 → -2
0.3 → 0.4
45 → 90
120 → 60
900 → 600
120 → 90
30 → 25
60 → 45
30 → 45
0 → 4
0 → 2
90 → 60
25 → 15
45 → 60
Full secondary parameter dump
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 600.
Value 90.
Value 20.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 90.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 45.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 30.
Value 60.
Value 300.
Value 120.
Value 120.
Value 60.
Value 900.
Value 90.
Value 25.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 45.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 25.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 120.
Value 60.
Value 900.
Value 120.
Value 30.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 90.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 25.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (5:12 AM) — iris-20260411-0515
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 11:12 → 2026-04-11 12:02
Reflection
Validating previous cycle: iris-20260410-2230
Previous hypothesis: Maintaining mister_engage_kpa=1.3 at ALL transitions (including overnight), bias_cool=+3 to +4 during all heating periods, and aggressive daytime misting posture (gap 20s, weight 3.0) on the extreme dry days will reduce vpd_high_stress from 41h to under 8h while keeping cold_stress under 1h by preventing vent oscillation during heating. Result: [backfill] compliance unavailable over plan window 2026-04-11 11:12 → 2026-04-11 12:02 Score: 4/10
Hypothesis
Conditions: Today (Sat) peaks 75°F with 17% RH and 100% cloud cover — moderate VPD stress expected. Sunday is the hardest day: 76°F peak with 7% RH, extreme dryness requiring maximum humidity retention. Monday peaks 70°F with 11% RH and high winds (20-29 mph), moderate difficulty. Tuesday brings a cold front (46°F high, 33% RH) — easy day, heater-dominant. Current scorecard shows 21.6h vpd_high stress today already, indicating the active plan’s morning posture was too passive before tree shade cleared. East zone lettuce/strawberry seedlings show stress (wilting, yellowing) — likely nutrient/light issues outside this planner’s control surface. Testing: Compare Sunday (fog_escalation_kpa=0.2, mist_max_closed_vent_s=900, pulse_gap=15s at peak, mister_vpd_weight=3.0) vs Monday (fog_escalation_kpa=0.3, mist_max_closed_vent_s=900, pulse_gap=20s at peak, mister_vpd_weight=2.5) on vpd_high stress hours normalized by outdoor VPD. Sunday is ~2x drier but calmer winds. If fog_escalation 0.2 compensates for extreme dryness, Sunday’s vpd_high_stress / avg_outdoor_VPD should be ≤ Monday’s ratio. Expected outcome: Sunday vpd_high_stress / avg_outdoor_VPD ≤ Monday’s ratio, demonstrating that fog_escalation 0.2 + 3.0 weight effectively compensates for extreme dryness better than 0.3 + 2.5 weight on a windy moderate-dry day. | target_score=55 | target_compliance=55% | expected_stress=[heat=1.5, cold=0.0, vpd_high=7.0, vpd_low=0.5] | expected_cost=USD 6.5
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Pre-dawn: outdoor 41°F, heaters active. bias_cool +3 prevent
Cloud shift at 07:00 (100% cloud). Fog window now open. Drop
Tree shade clears east zone — direct sun accelerates VPD ram
Peak: 75°F/17% RH outdoor, VPD ~2.44 kPa outdoor. Max mistin
Post-peak: outdoor drops to 69°F/26% RH at 15:00 with 16 mph
Evening: sunset 19:25, outdoor dropping to 59°F/34% by 20:00
Tactical tunable changes:
Immediate coverage (copied from first transition)
Pre-dawn: outdoor 41°F, heaters active. bias_cool +3 prevent
Cloud shift at 07:00 (100% cloud). Fog window now open. Drop
Tree shade clears east zone — direct sun accelerates VPD ram
Peak: 75°F/17% RH outdoor, VPD ~2.44 kPa outdoor. Max mistin
Post-peak: outdoor drops to 69°F/26% RH at 15:00 with 16 mph
Evening: sunset 19:25, outdoor dropping to 59°F/34% by 20:00
Sunday April 12
Primary crop-band changes:
Pre-dawn Sunday: outdoor 44°F/54% RH, clear skies. Extreme d
Tree shade clears: outdoor 62°F/24% at 09:00, rapidly drying
Cloud shift at 11:00 (63% cloud). Outdoor 68°F/15% RH — extr
Peak stress: 76°F/7% RH outdoor, VPD 2.84 kPa outdoor — extr
Post-peak: outdoor still extreme (75°F/7% RH, 17 mph wind) b
Evening: sunset 19:26, outdoor 70°F/8% dropping to 56°F/20%
Tactical tunable changes:
Pre-dawn Sunday: outdoor 44°F/54% RH, clear skies. Extreme d
Tree shade clears: outdoor 62°F/24% at 09:00, rapidly drying
Cloud shift at 11:00 (63% cloud). Outdoor 68°F/15% RH — extr
Peak stress: 76°F/7% RH outdoor, VPD 2.84 kPa outdoor — extr
Post-peak: outdoor still extreme (75°F/7% RH, 17 mph wind) b
Evening: sunset 19:26, outdoor 70°F/8% dropping to 56°F/20%
Monday April 13
Primary crop-band changes:
Pre-dawn Monday: outdoor 51°F/25% RH, 100% cloud, 9 mph wind
Tree shade clears: outdoor 59°F/19% at 09:00, cloud clearing
Peak: 69°F/11% RH outdoor, 25 mph wind, VPD 2.18 kPa outdoor
Post-peak: outdoor 70°F/12% at 14:00 but declining to 64°F/1
Evening: sunset 19:27, outdoor 60°F/22% dropping to 45°F/36%
Tactical tunable changes:
Pre-dawn Monday: outdoor 51°F/25% RH, 100% cloud, 9 mph wind
Tree shade clears: outdoor 59°F/19% at 09:00, cloud clearing
Peak: 69°F/11% RH outdoor, 25 mph wind, VPD 2.18 kPa outdoor
Post-peak: outdoor 70°F/12% at 14:00 but declining to 64°F/1
Evening: sunset 19:27, outdoor 60°F/22% dropping to 45°F/36%
Tuesday April 14
Primary crop-band changes:
Cold front: outdoor 45°F/38% RH, 100% cloud, 8 mph wind. Tue
Tactical tunable changes:
Cold front: outdoor 45°F/38% RH, 100% cloud, 8 mph wind. Tue
Changed secondary parameters:
initial 3
initial 1
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 30
3 → 0
1 → 0
0.4 → 0.3
0 → -1
-2 → -3
60 → 90
15 → 20
45 → 60
-1 → 0
-3 → -2
0.3 → 0.4
90 → 60
20 → 15
60 → 45
30 → 45
0 → 3
0 → 1
45 → 60
0.4 → 0.2
600 → 900
60 → 30
3 → -1
1 → 0
1 → 2
-2 → -3
60 → 90
15 → 20
45 → 60
60 → 45
90 → 120
2 → 3
-3 → -4
45 → 30
60 → 90
90 → 120
20 → 25
-1 → 0
3 → 2
-4 → -3
0.2 → 0.3
30 → 60
90 → 60
120 → 90
120 → 90
25 → 20
60 → 45
0 → 4
0 → 2
2 → 1
-3 → -2
0.3 → 0.4
90 → 60
900 → 600
20 → 15
30 → 60
4 → 3
2 → 1
0.4 → 0.3
600 → 900
60 → 30
3 → -1
1 → 0
1 → 2
-2 → -3
60 → 90
90 → 120
15 → 20
45 → 60
2 → 3
-3 → -4
60 → 45
90 → 120
-1 → 0
3 → 1
-4 → -2
0.3 → 0.4
45 → 60
120 → 60
900 → 600
120 → 90
20 → 15
60 → 45
30 → 45
0 → 4
0 → 2
45 → 60
120 → 180
Full secondary parameter dump
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 600.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 3.
Value -4.
Value 0.2.
Value 30.
Value 90.
Value 300.
Value 120.
Value 120.
Value 60.
Value 900.
Value 120.
Value 25.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 45.
Value 500.
Value 30.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 3.
Value -4.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 120.
Value 60.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 180.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (6:02 AM) — iris-20260411-0605
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 12:02 → 2026-04-11 12:07
Reflection
Validating previous cycle: iris-20260411-0000
Previous hypothesis: Maintaining mister_engage_kpa=1.3 at ALL transitions (including overnight) with bias_cool=+3 during heating periods will eliminate the nighttime vpd_high stress that dominated April 10. Aggressive daytime misting (gap 20s, weight 3.0, max_closed_vent 900s) on Sunday/Monday will limit peak VPD stress despite extreme dryness. Saturday’s overcast conditions should allow moderate compliance. Result: [backfill] compliance unavailable over plan window 2026-04-11 12:02 → 2026-04-11 12:07 Score: 4/10
Hypothesis
Conditions: Today (Sat) is transitioning from overcast/cold morning (39°F) to warm dry afternoon (75°F, 16% RH) — extreme VPD stress expected 11AM-5PM. Today’s partial scorecard already shows 22.87h vpd_high stress, indicating the current plan’s daytime posture is insufficient. Sunday is the most extreme day: 76°F with 7% RH outdoor, producing outdoor VPD near 2.8 kPa — maximum misting aggression needed. Monday similar but slightly cooler (72°F, 9% RH). Tuesday brings a cold front (45°F high, 38% RH) — mild day, heating overnight. East zone seedlings (lettuce, strawberry, pepper) show stress from temperature/light issues outside this planner’s control surface. Vanda orchids and Canna lilies healthy. Testing: Compare Saturday afternoon (fog_escalation_kpa=0.3, mist_max_closed_vent_s=600, pulse_gap=20s) vs Sunday peak (fog_escalation_kpa=0.2, mist_max_closed_vent_s=900, pulse_gap=15s) on vpd_high stress hours per unit outdoor VPD. Sunday is ~2x drier. If the more aggressive Sunday posture compensates, Sunday’s vpd_high_stress/avg_outdoor_VPD ratio should be ≤ Saturday’s. Expected outcome: Sunday vpd_high_stress normalized by average outdoor VPD (expected ~2.5 kPa avg) should be ≤ Saturday’s ratio (expected ~2.0 kPa avg outdoor VPD). Specifically: Sunday vpd_high_h/2.5 ≤ Saturday vpd_high_h/2.0. | target_score=45 | target_compliance=40% | expected_stress=[heat=1.0, cold=0.5, vpd_high=10.0, vpd_low=0.5] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Morning is cold (39°F outdoor) and overcast but warming fast
East zone loses tree shade, solar gain increases. Outdoor te
Peak outdoor temp 75°F, 16% RH. Outdoor VPD ~2.46 kPa. Incre
Skies clearing at 18:00 (6% cloud). Outdoor temp 67°F, RH 29
Sunset. Tonight drops to 52°F by midnight, 44°F by 5AM. Heat
Tactical tunable changes:
Immediate coverage (copied from first transition)
Morning is cold (39°F outdoor) and overcast but warming fast
East zone loses tree shade, solar gain increases. Outdoor te
Peak outdoor temp 75°F, 16% RH. Outdoor VPD ~2.46 kPa. Incre
Skies clearing at 18:00 (6% cloud). Outdoor temp 67°F, RH 29
Sunset. Tonight drops to 52°F by midnight, 44°F by 5AM. Heat
Sunday April 12
Primary crop-band changes:
Sunday is the hardest day: 76°F high, 7% RH outdoor. Pre-pos
Tree shade clears east zone. Outdoor already 65°F, 18% RH at
Clouds arrive at 11AM (63% cover) but outdoor RH still only
Peak VPD hour: 76°F, 7% RH outdoor = 2.84 kPa outdoor VPD. T
Outdoor temp still 75°F but solar declining. Wind picking up
Sunset Sunday. Tonight drops to 43°F by 6AM Monday. Heaters
Tactical tunable changes:
Sunday is the hardest day: 76°F high, 7% RH outdoor. Pre-pos
Tree shade clears east zone. Outdoor already 65°F, 18% RH at
Clouds arrive at 11AM (63% cover) but outdoor RH still only
Peak VPD hour: 76°F, 7% RH outdoor = 2.84 kPa outdoor VPD. T
Outdoor temp still 75°F but solar declining. Wind picking up
Sunset Sunday. Tonight drops to 43°F by 6AM Monday. Heaters
Monday April 13
Primary crop-band changes:
Monday forecast: 72°F high, 9% RH low. Similar to Sunday but
Tree shade clears. Outdoor 64°F, 12% RH at 10AM. Remove heat
Peak Monday: 72°F, 9% RH outdoor = 2.40 kPa outdoor VPD. Max
Solar declining, wind 21 mph. Slightly relax pulse gap to 20
Sunset Monday. Tonight drops to 45°F by Tuesday midnight, th
Tactical tunable changes:
Monday forecast: 72°F high, 9% RH low. Similar to Sunday but
Tree shade clears. Outdoor 64°F, 12% RH at 10AM. Remove heat
Peak Monday: 72°F, 9% RH outdoor = 2.40 kPa outdoor VPD. Max
Solar declining, wind 21 mph. Slightly relax pulse gap to 20
Sunset Monday. Tonight drops to 45°F by Tuesday midnight, th
Tuesday April 14
Primary crop-band changes:
Tuesday 2AM: outdoor 41°F, 46% RH. Coldest point in horizon.
Tactical tunable changes:
Tuesday 2AM: outdoor 41°F, 46% RH. Coldest point in horizon.
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.3
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 30
0 → -1
-1 → 0
0.3 → 0.4
30 → 60
0 → 3
0 → 1
1 → 2
-2 → -3
0.4 → 0.2
60 → 45
60 → 90
600 → 900
15 → 20
45 → 60
60 → 30
3 → -1
1 → 0
-1 → 0
0.2 → 0.3
45 → 60
0 → 3
0 → 1
2 → 1
-3 → -2
0.3 → 0.4
90 → 60
900 → 600
20 → 15
60 → 45
30 → 60
1 → 2
-2 → -3
0.4 → 0.3
60 → 45
60 → 90
600 → 900
15 → 20
45 → 60
60 → 30
3 → -1
1 → 0
-1 → 0
0.3 → 0.4
45 → 60
0 → 4
0 → 2
2 → 1
-3 → -2
90 → 60
900 → 600
20 → 15
60 → 45
30 → 60
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 2.
Value -3.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (6:07 AM) — iris-20260411-0610
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 12:07 → 2026-04-11 12:47
Reflection
Validating previous cycle: iris-20260411-0000
Previous hypothesis: Maintaining mister_engage_kpa=1.3 at ALL transitions (including overnight) with bias_cool=+3 during heating periods will eliminate the nighttime vpd_high stress that dominated April 10. Aggressive daytime misting (gap 20s, weight 3.0, max_closed_vent 900s) on Sunday/Monday will limit peak VPD stress despite extreme dryness. Saturday’s overcast conditions should allow moderate compliance. Result: [backfill] compliance unavailable over plan window 2026-04-11 12:07 → 2026-04-11 12:47 Score: 4/10
Hypothesis
Conditions: Today (Sat) is transitioning from overcast morning to clearing by 18:00, with outdoor highs of 75°F and extreme dryness (16% RH). Current indoor conditions show VPD 0.88-1.09 kPa across zones with temps 61-67°F. Today’s partial scorecard shows 22.87h vpd_high stress — the active plan’s misting posture is insufficient for the dry conditions despite engage at 1.3. Sunday is the most extreme day: 76°F high with 7% RH outdoor, producing outdoor VPD up to 2.84 kPa. Monday similar but slightly cooler (72°F, 9% RH). Tuesday brings a cold front (45°F high, 38% RH) — much easier. East zone seedlings (lettuce, strawberry, pepper) show stress signs but these are likely light/nutrient issues outside tuning control. Canna lilies and Vandas healthy. Testing: Compare Sunday peak (fog_escalation_kpa=0.2, pulse_gap=15s, mist_max_closed_vent_s=900s) vs Monday peak (fog_escalation_kpa=0.3, pulse_gap=20s, mist_max_closed_vent_s=900s) on vpd_high stress hours. Sunday is drier (7% vs 9% RH) but has more aggressive misting. If the extra aggression compensates, Sunday’s vpd_high_stress per unit outdoor VPD should be ≤ Monday’s. Expected outcome: Sunday vpd_high_stress / avg_outdoor_VPD ≤ Monday’s ratio, demonstrating that fog_escalation 0.2 + gap 15s provides meaningful additional VPD control vs 0.3 + gap 20s on extreme dry days. | target_score=52 | target_compliance=50% | expected_stress=[heat=1.0, cold=0.5, vpd_high=8.0, vpd_low=0.5] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Current state is SEALED_MIST_S1 with VPD 0.88-1.09 — within
East zone loses tree shade, direct sun hits. Outdoor temp ri
Peak outdoor VPD ~2.46 kPa at 75°F/16% RH. Hysteresis 0.4 fo
Skies clearing at 18:00 (6% cloud) but outdoor temp dropping
Tonight drops to 44°F by 05:00. Heaters will run. bias_heat
Tactical tunable changes:
Immediate coverage (copied from first transition)
Current state is SEALED_MIST_S1 with VPD 0.88-1.09 — within
East zone loses tree shade, direct sun hits. Outdoor temp ri
Peak outdoor VPD ~2.46 kPa at 75°F/16% RH. Hysteresis 0.4 fo
Skies clearing at 18:00 (6% cloud) but outdoor temp dropping
Tonight drops to 44°F by 05:00. Heaters will run. bias_heat
Sunday April 12
Primary crop-band changes:
Sunday is the hardest day: 76°F high, 7% RH low. Pre-positio
Outdoor 62°F/24% RH at 09:00, climbing fast. Clear skies. Ea
63% cloud at 11:00 reduces solar gain temporarily but outdoo
Peak outdoor VPD 2.84 kPa at 76°F/7% RH — the most extreme c
Sunset. Outdoor dropping from 70°F to 48°F overnight. Heater
Tactical tunable changes:
Sunday is the hardest day: 76°F high, 7% RH low. Pre-positio
Outdoor 62°F/24% RH at 09:00, climbing fast. Clear skies. Ea
63% cloud at 11:00 reduces solar gain temporarily but outdoo
Peak outdoor VPD 2.84 kPa at 76°F/7% RH — the most extreme c
Sunset. Outdoor dropping from 70°F to 48°F overnight. Heater
Monday April 13
Primary crop-band changes:
Monday: 72°F high, 9% RH low. Similar to Sunday but slightly
Outdoor 61°F/14% RH at 09:00, climbing. 100% cloud cover mod
Peak outdoor VPD 2.40 kPa at 72°F/9% RH. Experiment arm B: f
Outdoor temp declining from 72°F, wind increasing to 21-25 m
Monday night into Tuesday is the coldest: dropping to 41°F b
Tactical tunable changes:
Monday: 72°F high, 9% RH low. Similar to Sunday but slightly
Outdoor 61°F/14% RH at 09:00, climbing. 100% cloud cover mod
Peak outdoor VPD 2.40 kPa at 72°F/9% RH. Experiment arm B: f
Outdoor temp declining from 72°F, wind increasing to 21-25 m
Monday night into Tuesday is the coldest: dropping to 41°F b
Tuesday April 14
Primary crop-band changes:
Coldest point: 41°F outdoor, 46% RH. Slab thermal mass provi
Tactical tunable changes:
Coldest point: 41°F outdoor, 46% RH. Slab thermal mass provi
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.3
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 45
0 → -1
15 → 20
45 → 40
-2 → -3
60 → 90
60 → 45
45 → 60
40 → 30
-1 → 0
-3 → -2
0.3 → 0.4
90 → 60
45 → 60
20 → 15
60 → 45
30 → 60
0 → 3
0 → 1
0.4 → 0.2
600 → 900
60 → 45
3 → -1
1 → 0
-2 → -3
60 → 90
60 → 45
15 → 20
45 → 60
45 → 40
60 → 45
90 → 120
1 → 2
-3 → -4
60 → 90
90 → 120
45 → 30
120 → 90
20 → 25
40 → 30
-1 → 3
0 → 1
2 → 1
-4 → -2
0.2 → 0.4
45 → 60
90 → 60
120 → 60
30 → 60
900 → 600
25 → 15
60 → 45
30 → 60
0.4 → 0.3
600 → 900
60 → 45
3 → -1
1 → 0
-2 → -3
60 → 90
60 → 45
15 → 20
45 → 60
45 → 40
1 → 2
-3 → -4
90 → 120
45 → 30
20 → 25
40 → 30
-1 → 0
2 → 1
-4 → -3
0.3 → 0.4
120 → 90
30 → 45
90 → 120
25 → 20
60 → 45
30 → 45
0 → 4
0 → 2
-3 → -2
90 → 60
45 → 60
900 → 600
120 → 90
20 → 15
45 → 60
120 → 150
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 20.
Value 45.
Value 500.
Value 40.
Value -1.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 600.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -3.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 40.
Value -1.
Value 0.
Value 1.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 40.
Value -1.
Value 0.
Value 2.
Value -4.
Value 0.2.
Value 45.
Value 90.
Value 300.
Value 120.
Value 120.
Value 30.
Value 900.
Value 90.
Value 25.
Value 60.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 40.
Value -1.
Value 0.
Value 2.
Value -4.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 120.
Value 30.
Value 900.
Value 90.
Value 25.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -3.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 120.
Value 20.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 150.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (6:47 AM) — iris-20260411-0650
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 12:47 → 2026-04-11 13:32
Reflection
Validating previous cycle: iris-20260411-0045
Previous hypothesis: Maintaining mister_engage_kpa at 1.3 with aggressive sealed-vent misting (900s max closed on peak days) and fog escalation at 0.2 kPa on Sunday will reduce VPD_high stress hours. Nighttime bias_cool of +3-4°F prevents vent oscillation during heating. On Sunday’s extreme dryness, extending mist_max_closed_vent_s to 900s with mister_pulse_gap_s of 15s during peak stress will maximize humidity retention. Result: [backfill] compliance unavailable over plan window 2026-04-11 12:47 → 2026-04-11 13:32 Score: 4/10
Hypothesis
Conditions: Today (Sat) is overcast with clearing at 18:00, high 75°F, low RH 16% — moderate VPD stress expected during afternoon. Sunday is the hardest day: clear to partly cloudy, 76°F high, extreme dryness (7% RH), 13h forecast stress. Monday similar but slightly cooler (72°F) with 9% RH. Tuesday brings a cold front (45°F high, 38% RH) — much easier VPD but cold overnight (41°F). Current scorecard shows 0% compliance today with 23.87h vpd_high and 11.5h cold stress — the active plan’s morning settings haven’t engaged yet (tree shade transition at 09:59). East zone seedlings (lettuce, strawberry, pepper) show stress from low temps/light — informational only, outside tuning surface. Testing: Compare Sunday (fog_escalation_kpa=0.2, pulse_gap=15s, mist_max_closed_vent_s=900s) vs Monday (fog_escalation_kpa=0.3, pulse_gap=20s, mist_max_closed_vent_s=900s) on vpd_high stress hours normalized by average outdoor VPD. Sunday is drier (7% vs 9% RH) but has more aggressive fog/misting. If the extra aggression compensates, Sunday’s vpd_high_stress per unit outdoor VPD should be ≤ Monday’s. Expected outcome: Sunday vpd_high_stress_h / avg_outdoor_vpd ≤ Monday vpd_high_stress_h / avg_outdoor_vpd, demonstrating that fog_escalation 0.2 + gap 15s compensates for the extra dryness vs 0.3 + gap 20s. | target_score=55 | target_compliance=55% | expected_stress=[heat=1.0, cold=0.5, vpd_high=8.0, vpd_low=0.5] | expected_cost=USD 6.5
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Overcast morning, outdoor 42°F/85% RH. Indoor VPD 0.89-1.07
East zone gets direct sun, VPD ramp accelerates. Outdoor war
Peak outdoor 75°F/16% RH, VPD forecast 2.46 kPa. Most aggres
Sky clearing at 18:00 but solar declining. Outdoor 67°F/29%
Sunset. Overnight low forecast 44°F — heaters will run. bias
Tactical tunable changes:
Immediate coverage (copied from first transition)
Overcast morning, outdoor 42°F/85% RH. Indoor VPD 0.89-1.07
East zone gets direct sun, VPD ramp accelerates. Outdoor war
Peak outdoor 75°F/16% RH, VPD forecast 2.46 kPa. Most aggres
Sky clearing at 18:00 but solar declining. Outdoor 67°F/29%
Sunset. Overnight low forecast 44°F — heaters will run. bias
Sunday April 12
Primary crop-band changes:
Pre-dawn for extreme dry day (7% RH, 76°F high). Early miste
East zone direct sun. Outdoor 62°F/24% RH and dropping fast.
Peak outdoor 76°F/7% RH — outdoor VPD 2.84 kPa. Maximum aggr
Sunset Sunday. Overnight low forecast 47°F — heaters will ru
Tactical tunable changes:
Pre-dawn for extreme dry day (7% RH, 76°F high). Early miste
East zone direct sun. Outdoor 62°F/24% RH and dropping fast.
Peak outdoor 76°F/7% RH — outdoor VPD 2.84 kPa. Maximum aggr
Sunset Sunday. Overnight low forecast 47°F — heaters will ru
Monday April 13
Primary crop-band changes:
Pre-dawn Monday. Outdoor 50°F/30% RH — less extreme than Sun
East zone direct sun. Outdoor 61°F/14% RH — VPD ramp startin
Peak outdoor 72°F/9% RH — outdoor VPD 2.40 kPa. Maximum mist
Solar declining, outdoor 71°F/10% RH but wind picking up to
Sunset Monday. Coldest night of the horizon — forecast low 4
Tactical tunable changes:
Pre-dawn Monday. Outdoor 50°F/30% RH — less extreme than Sun
East zone direct sun. Outdoor 61°F/14% RH — VPD ramp startin
Peak outdoor 72°F/9% RH — outdoor VPD 2.40 kPa. Maximum mist
Solar declining, outdoor 71°F/10% RH but wind picking up to
Sunset Monday. Coldest night of the horizon — forecast low 4
Tuesday April 14
Primary crop-band changes:
Tuesday cold front: outdoor 41°F/46% RH. Slab thermal mass p
Tactical tunable changes:
Tuesday cold front: outdoor 41°F/46% RH. Slab thermal mass p
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 60
0 → -1
0.4 → 0.3
60 → 45
-2 → -3
60 → 90
15 → 20
45 → 30
-1 → 0
-3 → -2
0.3 → 0.4
90 → 60
20 → 15
30 → 60
0 → 3
0 → 1
1 → 2
-2 → -3
0.4 → 0.2
60 → 45
60 → 90
600 → 900
45 → 60
3 → -1
1 → 0
15 → 20
60 → 45
-3 → -4
45 → 30
60 → 90
90 → 120
60 → 45
20 → 25
45 → 30
-1 → 3
0 → 1
2 → 1
-4 → -2
0.2 → 0.4
30 → 60
90 → 60
120 → 60
45 → 60
900 → 600
25 → 15
60 → 45
30 → 60
1 → 2
-2 → -3
0.4 → 0.3
60 → 90
600 → 900
45 → 60
3 → -1
1 → 0
15 → 20
60 → 45
-3 → -4
90 → 120
60 → 45
20 → 25
45 → 30
-1 → 0
2 → 1
-4 → -3
0.3 → 0.4
120 → 90
45 → 60
25 → 15
60 → 45
30 → 45
0 → 4
0 → 2
-3 → -2
90 → 60
900 → 600
45 → 60
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 600.
Value 90.
Value 20.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 60.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 45.
Value -1.
Value 0.
Value 2.
Value -4.
Value 0.2.
Value 30.
Value 90.
Value 300.
Value 120.
Value 120.
Value 45.
Value 900.
Value 90.
Value 25.
Value 60.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 60.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 45.
Value -1.
Value 0.
Value 2.
Value -4.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 120.
Value 45.
Value 900.
Value 90.
Value 25.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -3.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (7:32 AM) — iris-20260411-0735
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 13:32 → 2026-04-11 14:17
Reflection
Validating previous cycle: iris-20260411-0130
Previous hypothesis: Maintaining bias_cool +3 on cold nights prevents vent oscillation (validated). For daytime dry stress, using fog_escalation_kpa=0.3 with mist_max_closed_vent_s=900 on the two extreme days (Sun/Mon) and 600 on the moderate day (Sat) will keep VPD_high stress under 4h/day. Shortening vpd_watch_dwell_s to 30s during peak stress windows will catch VPD spikes faster. Result: [backfill] compliance unavailable over plan window 2026-04-11 13:32 → 2026-04-11 14:17 Score: 4/10
Hypothesis
Conditions: Today (Sat) is overcast with outdoor high 76°F and very low RH (16-26%), creating significant VPD stress potential. Current indoor temps 63-67°F with VPD 0.80-0.93 kPa — within band but approaching ceiling. Today’s partial scorecard shows 24.4h cold_stress and 7.4h vpd_high_stress, indicating overnight vent oscillation and daytime dryness issues from the prior plan’s early transitions. Sunday is the most extreme day: 76°F high with 7% RH outdoor, producing massive VPD pressure. Monday similar but slightly cooler (72°F, 9% RH). Tuesday brings a cold front (45°F high, 38% RH) — much easier conditions. East zone seedlings (lettuce, strawberry, pepper) show stress from cold/light issues — not addressable via this planner’s control surface. Testing: Compare Sunday (fog_escalation_kpa=0.2, pulse_gap=15s, mist_max_closed_vent_s=900s) vs Monday (fog_escalation_kpa=0.3, pulse_gap=20s, mist_max_closed_vent_s=900s) on vpd_high stress hours normalized by average outdoor VPD. Sunday is drier (7% vs 9% RH) but has more aggressive fog/misting settings. Expected outcome: If fog_escalation 0.2 with 15s gap compensates for extreme dryness, Sunday’s vpd_high_stress_hours / avg_outdoor_VPD ratio should be ≤ Monday’s ratio despite Sunday being ~30% drier. This tests whether the extra fog aggression is proportional to the dryness increase. | target_score=55 | target_compliance=55% | expected_stress=[heat=1.0, cold=0.5, vpd_high=8.0, vpd_low=0.5] | expected_cost=USD 6.5
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Immediate posture for Saturday morning. Outdoor 43°F/80% RH,
East zone direct sun exposure begins. Outdoor RH dropping to
Peak outdoor 76°F/16% RH. Outdoor VPD 2.55 kPa — massive dry
Cloud cover drops from 100% to 55% at 17:00. Fog window clos
Sunset. Overnight low forecast 44-46°F — heaters will run. b
Tactical tunable changes:
Immediate coverage (copied from first transition)
Immediate posture for Saturday morning. Outdoor 43°F/80% RH,
East zone direct sun exposure begins. Outdoor RH dropping to
Peak outdoor 76°F/16% RH. Outdoor VPD 2.55 kPa — massive dry
Cloud cover drops from 100% to 55% at 17:00. Fog window clos
Sunset. Overnight low forecast 44-46°F — heaters will run. b
Sunday April 12
Primary crop-band changes:
Sunday pre-dawn. Outdoor 44°F/54% RH, heaters still running.
Sunday tree shade clears. Outdoor already 62°F/24% RH at 09:
Sunday cloud shift at 11:00 — clouds increase to 63%. Solar
Sunday peak: 76°F/7% RH outdoor, VPD 2.84 kPa — the most ext
Sunday sunset. Overnight low 48-53°F — heaters will run. bia
Tactical tunable changes:
Sunday pre-dawn. Outdoor 44°F/54% RH, heaters still running.
Sunday tree shade clears. Outdoor already 62°F/24% RH at 09:
Sunday cloud shift at 11:00 — clouds increase to 63%. Solar
Sunday peak: 76°F/7% RH outdoor, VPD 2.84 kPa — the most ext
Sunday sunset. Overnight low 48-53°F — heaters will run. bia
Monday April 13
Primary crop-band changes:
Monday pre-dawn. Outdoor 51°F/30% RH. Heaters still running.
Monday tree shade clears. Overcast (100% cloud) but outdoor
Monday peak: 72°F/9% RH outdoor, VPD 2.40 kPa. Very aggressi
Monday post-solar decline. Outdoor VPD still 2.36 but solar
Monday sunset into Tuesday. Overnight low forecast 41-43°F —
Tactical tunable changes:
Monday pre-dawn. Outdoor 51°F/30% RH. Heaters still running.
Monday tree shade clears. Overcast (100% cloud) but outdoor
Monday peak: 72°F/9% RH outdoor, VPD 2.40 kPa. Very aggressi
Monday post-solar decline. Outdoor VPD still 2.36 but solar
Monday sunset into Tuesday. Overnight low forecast 41-43°F —
Tuesday April 14
Primary crop-band changes:
Tuesday pre-dawn. Outdoor 43-44°F/43-48% RH. Forecast high o
Tactical tunable changes:
Tuesday pre-dawn. Outdoor 43-44°F/43-48% RH. Forecast high o
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.3
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 45
0 → -1
45 → 30
-2 → -3
60 → 90
15 → 20
-1 → 0
-3 → -2
0.3 → 0.4
60 → 90
90 → 60
20 → 15
30 → 45
0 → 3
0 → 1
90 → 60
45 → 60
1 → 2
-2 → -3
0.4 → 0.2
60 → 90
600 → 900
45 → 60
3 → -1
1 → 0
-3 → -4
15 → 20
60 → 30
90 → 120
2 → 3
-4 → -5
60 → 45
90 → 120
60 → 30
120 → 90
-1 → 3
0 → 1
3 → 1
-5 → -2
0.2 → 0.4
45 → 90
120 → 60
30 → 60
900 → 600
20 → 15
60 → 45
30 → 60
1 → 2
-2 → -3
0.4 → 0.3
90 → 60
60 → 90
600 → 900
45 → 60
3 → -1
1 → 0
-3 → -4
15 → 20
60 → 30
2 → 3
-4 → -5
60 → 45
90 → 120
60 → 30
-1 → 0
3 → 2
-5 → -3
0.3 → 0.4
45 → 90
120 → 60
30 → 60
90 → 120
20 → 15
60 → 45
30 → 45
0 → 4
0 → 2
2 → 1
-3 → -2
90 → 60
900 → 600
120 → 90
45 → 60
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 600.
Value 90.
Value 20.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 90.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 2.
Value -3.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 60.
Value -1.
Value 0.
Value 2.
Value -4.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -4.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 3.
Value -5.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 120.
Value 30.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 90.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 60.
Value -1.
Value 0.
Value 2.
Value -4.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 3.
Value -5.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 120.
Value 30.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.4.
Value 90.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 120.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (8:17 AM) — iris-20260411-0820
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 14:17 → 2026-04-11 15:02
Reflection
Validating previous cycle: iris-20260411-0215
Previous hypothesis: Lowering vpd_watch_dwell_s to 30s during peak stress periods, extending mist_max_closed_vent_s to 900s on the driest days (Sun/Mon), using fog_escalation_kpa=0.2 on Sunday (extreme dry), and maintaining aggressive mister_pulse_gap_s=15-20s during peak hours will reduce vpd_high_stress hours compared to the current plan’s posture which is accumulating excessive VPD stress. Result: [backfill] compliance unavailable over plan window 2026-04-11 14:17 → 2026-04-11 15:02 Score: 4/10
Hypothesis
Conditions: Today (Sat) is partially cloudy with outdoor high 76°F and extremely low RH (16-26%). Current indoor temps 64-67°F, VPD 0.93-1.06 kPa — within band but approaching VPD ceiling. Today’s partial scorecard shows severe cold_stress (26.8h) and vpd_high_stress (7.9h) indicating the previous plan’s daytime settings haven’t been active long enough or overnight was problematic. Sunday is the most extreme day: 76°F high with 7% RH outdoor — unprecedented dryness requiring maximum humidity retention. Monday similar (72°F, 9% RH). Tuesday brings a cold front (50°F high, 35% RH) — much easier. East zone seedlings (lettuce, strawberry, pepper) show stress from cold/light issues but these are outside this planner’s control surface. Testing: Compare Sunday (fog_escalation_kpa=0.2, pulse_gap=15s, mist_max_closed_vent_s=900s) vs Monday (fog_escalation_kpa=0.3, pulse_gap=20s, mist_max_closed_vent_s=900s) on vpd_high stress hours normalized by average outdoor VPD. Sunday is drier (7% vs 9% RH) but has more aggressive fog/misting settings. If fog_escalation 0.2 with gap 15s compensates for the extra dryness, Sunday’s vpd_high_stress/outdoor_VPD ratio should be equal to or lower than Monday’s. Expected outcome: Sunday vpd_high_stress_h / avg_outdoor_VPD ≤ Monday vpd_high_stress_h / avg_outdoor_VPD, demonstrating that 0.2 fog escalation + 15s gap adequately compensates for 7% vs 9% outdoor RH. | target_score=60 | target_compliance=65% | expected_stress=[heat=1.0, cold=0.5, vpd_high=8.0, vpd_low=0.5] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Current VPD 0.93-1.06 approaching band ceiling. Outdoor 43°F
Forecast peak: 76°F/16% RH outdoor. VPD will spike. Increase
Forecast shows temp dropping to 70°F by 3 PM with clouds arr
Forecast shows clearing at 17:00 (55% cloud) with 67°F/22% R
Sunset. Overnight low forecast 44-52°F — heaters will run. b
Tactical tunable changes:
Immediate coverage (copied from first transition)
Current VPD 0.93-1.06 approaching band ceiling. Outdoor 43°F
Forecast peak: 76°F/16% RH outdoor. VPD will spike. Increase
Forecast shows temp dropping to 70°F by 3 PM with clouds arr
Forecast shows clearing at 17:00 (55% cloud) with 67°F/22% R
Sunset. Overnight low forecast 44-52°F — heaters will run. b
Sunday April 12
Primary crop-band changes:
Pre-dawn Sunday. Outdoor 44°F/54% RH, dropping to 7% by afte
Tree shade clears east zone. Outdoor already 62°F/24% RH and
Cloud shift at 11:00 (63% cloud) but outdoor RH drops to 15%
Peak stress: 76°F/7% RH outdoor — VPD will be extreme (~2.84
Solar declining but outdoor still 75°F/7% RH. Slightly relax
Sunset Sunday. Overnight low forecast 47-54°F — gas heater w
Tactical tunable changes:
Pre-dawn Sunday. Outdoor 44°F/54% RH, dropping to 7% by afte
Tree shade clears east zone. Outdoor already 62°F/24% RH and
Cloud shift at 11:00 (63% cloud) but outdoor RH drops to 15%
Peak stress: 76°F/7% RH outdoor — VPD will be extreme (~2.84
Solar declining but outdoor still 75°F/7% RH. Slightly relax
Sunset Sunday. Overnight low forecast 47-54°F — gas heater w
Monday April 13
Primary crop-band changes:
Pre-dawn Monday. Outdoor 50°F/30% RH — cold but less extreme
Tree shade clears. Outdoor 64°F/12% RH — dry but cooler than
Peak stress Monday: 72°F/9% RH outdoor (VPD ~2.40 kPa). Hyst
Post-peak Monday. Outdoor 71°F/10% still dry but declining.
Sunset Monday. Overnight low forecast 41-45°F — coldest nigh
Tactical tunable changes:
Pre-dawn Monday. Outdoor 50°F/30% RH — cold but less extreme
Tree shade clears. Outdoor 64°F/12% RH — dry but cooler than
Peak stress Monday: 72°F/9% RH outdoor (VPD ~2.40 kPa). Hyst
Post-peak Monday. Outdoor 71°F/10% still dry but declining.
Sunset Monday. Overnight low forecast 41-45°F — coldest nigh
Tuesday April 14
Primary crop-band changes:
Pre-dawn Tuesday. Cold front: outdoor 41-44°F, 43-48% RH. Fo
Tactical tunable changes:
Pre-dawn Tuesday. Cold front: outdoor 41-44°F, 43-48% RH. Fo
Changed secondary parameters:
initial -1
initial 0
initial 1
initial -2
initial 0.3
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 45
15 → 20
45 → 30
-1 → 0
20 → 15
30 → 45
0.3 → 0.4
45 → 60
0 → 3
0 → 1
0.4 → 0.2
600 → 900
45 → 60
3 → -1
1 → 0
15 → 20
60 → 45
60 → 45
60 → 45
45 → 30
20 → 25
-1 → 0
0.2 → 0.3
45 → 60
45 → 60
25 → 15
60 → 45
30 → 45
0 → 3
0 → 1
0.3 → 0.4
900 → 600
45 → 60
0.4 → 0.3
600 → 900
45 → 60
3 → -1
1 → 0
15 → 20
60 → 45
60 → 45
60 → 45
45 → 30
-1 → 0
0.3 → 0.4
45 → 60
45 → 60
20 → 15
60 → 45
30 → 45
0 → 4
0 → 2
900 → 600
45 → 60
Full secondary parameter dump
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 20.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 60.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 45.
Value 45.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 45.
Value 45.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 25.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 60.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 45.
Value 45.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (9:02 AM) — iris-20260411-0905
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 15:02 → 2026-04-11 15:47
Reflection
Validating previous cycle: iris-20260411-0300
Previous hypothesis: Maintaining bias_cool +3 and bias_heat +1 on cold nights prevents vent oscillation (validated). For daytime dry periods, lowering fog_escalation_kpa to 0.2 on Sunday (extreme dryness) vs 0.3 on Monday (windy but less dry) will test whether earlier fog engagement compensates for extreme outdoor dryness. Extending mist_max_closed_vent_s to 900s on both dry days maximizes humidity retention. Shortening vpd_watch_dwell_s to 30s on peak stress periods ensures faster misting response. Result: [backfill] compliance unavailable over plan window 2026-04-11 15:02 → 2026-04-11 15:47 Score: 4/10
Hypothesis
Conditions: Today (Sat) is hot-dry with 77°F/13% RH peak, clearing to cold clear night (low 44°F). Sunday is the most extreme day: 77°F/6% RH — exceptionally dry with VPD stress expected 13h. Monday moderates to 72°F/9% RH with clouds clearing midday, then a cold front drops Tuesday to 54°F/30% RH (easy day). Current scorecard shows 29.4h cold_stress today — likely from overnight vent oscillation before the active plan’s bias_cool kicked in. East zone lettuce/strawberry showing stress (health 5-6) but this is likely light/nutrient, not tuning-addressable. Dew point margin healthy at 9.9°F, zero disease risk. Testing: Compare Sunday (fog_escalation_kpa=0.2, pulse_gap=15s, mist_max_closed_vent_s=900s) vs Monday (fog_escalation_kpa=0.3, pulse_gap=20s, mist_max_closed_vent_s=900s) on vpd_high stress hours normalized by average outdoor VPD. Sunday is drier (6% vs 9% RH) but has more aggressive fog/misting settings. If fog_escalation 0.2 with gap 15s compensates for the extra dryness, Sunday’s vpd_high_stress/outdoor_VPD ratio should be equal to or lower than Monday’s. Expected outcome: Sunday vpd_high_stress_h / avg_outdoor_VPD ≤ Monday’s ratio, demonstrating that 0.2 fog escalation + 15s gap compensates for 6% vs 9% RH difference. Expected Sunday vpd_high ~6-8h (physics-limited), Monday ~4-5h. | target_score=52 | target_compliance=50% | expected_stress=[heat=1.0, cold=0.5, vpd_high=7.0, vpd_low=0.5] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Outdoor 50°F/72% RH currently but dropping to 13% RH by 15:0
77°F/15% RH outdoor peak. Max VPD weight 3.0 to prioritize d
Temp dropping to 68-75°F, RH still 13-26%. Relax misting sli
Clearing to 0% cloud by 20:00, outdoor dropping to 61°F. Pre
Sunset. Cold night ahead — low 44°F by 06:00 Sun. bias_heat
Tactical tunable changes:
Immediate coverage (copied from first transition)
Outdoor 50°F/72% RH currently but dropping to 13% RH by 15:0
77°F/15% RH outdoor peak. Max VPD weight 3.0 to prioritize d
Temp dropping to 68-75°F, RH still 13-26%. Relax misting sli
Clearing to 0% cloud by 20:00, outdoor dropping to 61°F. Pre
Sunset. Cold night ahead — low 44°F by 06:00 Sun. bias_heat
Sunday April 12
Primary crop-band changes:
Pre-dawn 44°F/44% RH outdoor. Keep heating posture (bias_hea
Tree shade clears east zone. 66°F/20% RH outdoor, clear skie
Clouds arrive (98%) but outdoor still 76°F/7% RH — extreme V
77°F/7% RH still extreme but solar declining. Slightly relax
Sunset Sunday. Cold night ahead — outdoor dropping to 49°F b
Tactical tunable changes:
Pre-dawn 44°F/44% RH outdoor. Keep heating posture (bias_hea
Tree shade clears east zone. 66°F/20% RH outdoor, clear skie
Clouds arrive (98%) but outdoor still 76°F/7% RH — extreme V
77°F/7% RH still extreme but solar declining. Slightly relax
Sunset Sunday. Cold night ahead — outdoor dropping to 49°F b
Monday April 13
Primary crop-band changes:
Pre-dawn 50°F/26% RH. Keep heating posture. Pre-position mis
Tree shade clears. 64°F/12% RH outdoor, clouds clearing at 1
Clouds clearing from 100% to 12% — solar gain jumps signific
72°F/9% RH outdoor, 100% clouds but still high solar (626 W/
Solar declining, 71°F/10% RH. Relax misting — widen all_kpa
Sunset Monday. Coldest night of the horizon — outdoor droppi
Tactical tunable changes:
Pre-dawn 50°F/26% RH. Keep heating posture. Pre-position mis
Tree shade clears. 64°F/12% RH outdoor, clouds clearing at 1
Clouds clearing from 100% to 12% — solar gain jumps signific
72°F/9% RH outdoor, 100% clouds but still high solar (626 W/
Solar declining, 71°F/10% RH. Relax misting — widen all_kpa
Sunset Monday. Coldest night of the horizon — outdoor droppi
Tuesday April 14
Primary crop-band changes:
Pre-dawn Tuesday 44°F/43% RH. Coldest morning of the horizon
Tactical tunable changes:
Pre-dawn Tuesday 44°F/43% RH. Coldest morning of the horizon
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.3
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 30
0 → -1
-1 → 0
0.3 → 0.4
30 → 45
0 → 2
45 → 60
2 → 3
0 → 1
0.4 → 0.2
600 → 900
60 → 45
3 → -1
1 → 0
45 → 30
45 → 60
-1 → 0
60 → 45
30 → 45
0 → 3
0 → 1
0.2 → 0.4
900 → 600
45 → 60
0.4 → 0.3
600 → 900
60 → 45
3 → -1
1 → 0
45 → 30
-2 → -3
-3 → -2
45 → 60
-1 → 0
0.3 → 0.4
60 → 45
30 → 45
0 → 4
0 → 2
900 → 600
45 → 60
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 2.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌅 Morning Cycle (9:47 AM) — iris-20260411-0950
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 15:47 → 2026-04-11 16:32
Reflection
Validating previous cycle: iris-20260411-0345
Previous hypothesis: Maintaining aggressive misting posture (engage 1.3, gap 20-25s) through the full daytime window on Sunday/Monday, combined with 900s sealed-vent time and fog_escalation_kpa=0.2 on Sunday (the driest day), will limit vpd_high_stress to <10h on Sunday despite 7% outdoor RH. On cold nights, bias_cool +3 and bias_heat +1 will prevent vent oscillation (validated lesson). Widening fog_escalation to 0.4 on the mild Tuesday night will prevent vpd_low overshoot. Result: [backfill] compliance unavailable over plan window 2026-04-11 15:47 → 2026-04-11 16:32 Score: 4/10
Hypothesis
Conditions: Today (Sat) is warm-dry with outdoor highs 77°F and RH dropping to 13%, clearing to calm evening with lows near 50°F. Sunday is the most extreme day: 77°F high with 6-7% RH, clear morning transitioning to overcast by 14:00, extremely dry all day. Monday is slightly cooler (72°F high, 9-12% RH) with clouds clearing at 11:00 then returning. Tuesday is cold (54°F high, 30% RH) and wet — minimal stress expected. Today’s partial scorecard shows 30h cold_stress which is alarming — likely from overnight vent oscillation before the current plan’s bias_cool took effect. East zone seedlings (lettuce, strawberry, pepper) show stress indicators but these are likely light/nutrient issues outside tuning control. Testing: Compare Sunday evening-to-overnight transition: bias_cool +3 with min_heat_off_s 300 vs Monday evening with bias_cool +4 and min_heat_off_s 240. Monday night is colder (lows 47°F vs 50°F). If bias_cool +4 with shorter heat cycling prevents cold_stress on the colder night while bias_cool +3 handles the milder night, we establish the threshold where +4 is needed. Expected outcome: Sunday night (bias_cool +3, low ~50°F) should have 0h cold_stress. Monday night (bias_cool +4, low ~47°F) should also have 0h cold_stress. If Monday shows any cold_stress with +4, the heater capacity is the bottleneck at sub-47°F outdoor temps. Both nights should have <0.5h vpd_low_stress. | target_score=62 | target_compliance=70% | expected_stress=[heat=1.0, cold=0.5, vpd_high=5.0, vpd_low=0.5] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Current outdoor 56°F/56% RH but forecast shows 77°F/13% RH b
Peak VPD hour: 77°F/15% RH outdoor. Tighten enthalpy thresho
Outdoor temp dropping to 75°F, still dry (13% RH). Relax mis
Clouds clearing to 52%, outdoor dropping to 66°F/30% RH. Rev
Sunset. Overnight low ~50°F — heaters will run. bias_heat +1
Tactical tunable changes:
Immediate coverage (copied from first transition)
Current outdoor 56°F/56% RH but forecast shows 77°F/13% RH b
Peak VPD hour: 77°F/15% RH outdoor. Tighten enthalpy thresho
Outdoor temp dropping to 75°F, still dry (13% RH). Relax mis
Clouds clearing to 52%, outdoor dropping to 66°F/30% RH. Rev
Sunset. Overnight low ~50°F — heaters will run. bias_heat +1
Sunday April 12
Primary crop-band changes:
Pre-dawn Sunday. Outdoor 44°F/44% RH, clear skies. Extreme d
Tree shade clears, direct sun hits east zone. Outdoor alread
Clouds arrive at 14:00 (98-100%) reducing solar gain, but ou
Post-peak but still extreme: 77°F/7% RH outdoor. Slightly re
Sunset Sunday. Overnight low ~50°F with outdoor RH only 8-15
Tactical tunable changes:
Pre-dawn Sunday. Outdoor 44°F/44% RH, clear skies. Extreme d
Tree shade clears, direct sun hits east zone. Outdoor alread
Clouds arrive at 14:00 (98-100%) reducing solar gain, but ou
Post-peak but still extreme: 77°F/7% RH outdoor. Slightly re
Sunset Sunday. Overnight low ~50°F with outdoor RH only 8-15
Monday April 13
Primary crop-band changes:
Pre-dawn Monday. Outdoor 50°F/26% RH. Another dry day ahead
Tree shade clears Monday. Outdoor 61°F/14% RH, overcast (100
Clouds clearing at 11:00 (100% → 12%). Solar gain will spike
Peak stress Monday: 72°F/9% RH outdoor, clouds returning (93
Declining solar, outdoor dropping to 71°F/10% RH. Relax mist
Sunset Monday. Cold night ahead — lows 43-47°F, outdoor RH 1
Tactical tunable changes:
Pre-dawn Monday. Outdoor 50°F/26% RH. Another dry day ahead
Tree shade clears Monday. Outdoor 61°F/14% RH, overcast (100
Clouds clearing at 11:00 (100% → 12%). Solar gain will spike
Peak stress Monday: 72°F/9% RH outdoor, clouds returning (93
Declining solar, outdoor dropping to 71°F/10% RH. Relax mist
Sunset Monday. Cold night ahead — lows 43-47°F, outdoor RH 1
Tuesday April 14
Primary crop-band changes:
Pre-dawn Tuesday. Outdoor 44°F/43% RH — cold but moderate hu
Tactical tunable changes:
Pre-dawn Tuesday. Outdoor 44°F/43% RH — cold but moderate hu
Changed secondary parameters:
initial -1
initial 0
initial 1
initial -2
initial 0.3
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 30
1 → 2
-2 → -3
60 → 90
60 → 45
15 → 20
45 → 60
-1 → 0
2 → 1
-3 → -2
0.3 → 0.4
90 → 60
45 → 60
20 → 15
60 → 45
30 → 45
0 → 2
45 → 60
2 → 3
0 → 1
0.4 → 0.2
600 → 900
3 → -1
1 → 0
1 → 2
-2 → -3
60 → 45
60 → 90
60 → 45
15 → 20
45 → 60
60 → 30
-1 → 0
2 → 3
-3 → -4
90 → 120
90 → 120
3 → 2
-4 → -3
0.2 → 0.3
45 → 60
120 → 60
45 → 60
120 → 90
20 → 15
60 → 45
30 → 45
0 → 3
0 → 1
2 → 1
-3 → -2
0.3 → 0.4
900 → 600
45 → 60
0.4 → 0.3
600 → 900
3 → -1
1 → 0
1 → 2
-2 → -3
60 → 90
60 → 45
15 → 20
45 → 60
60 → 30
60 → 45
-1 → 0
2 → 3
-3 → -4
90 → 120
90 → 120
3 → 2
-4 → -3
0.3 → 0.4
45 → 60
120 → 60
45 → 60
120 → 90
20 → 15
60 → 45
30 → 45
0 → 4
0 → 2
2 → 1
-3 → -2
300 → 240
900 → 600
45 → 60
Full secondary parameter dump
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 600.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 2.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 3.
Value -4.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 120.
Value 45.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 3.
Value -4.
Value 0.3.
Value 45.
Value 60.
Value 300.
Value 120.
Value 120.
Value 45.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 240.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 240.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
☀️ Midday Cycle (10:32 AM) — iris-20260411-1035
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 16:32 → 2026-04-11 17:32
Reflection
Validating previous cycle: iris-20260411-0430
Previous hypothesis: Tightening fog_escalation_kpa to 0.2 on the two extreme dry days (Sun/Mon) combined with 900s sealed-vent and 15s pulse gaps during peak stress will reduce vpd_high stress hours below 6h/day despite outdoor RH of 7-11%. On Saturday (moderate), fog_escalation 0.3 with 600s sealed-vent should keep vpd_high under 4h. Cold nights get bias_cool +3 and bias_heat +1 per validated lesson. Result: [backfill] compliance unavailable over plan window 2026-04-11 16:32 → 2026-04-11 17:32 Score: 4/10
Hypothesis
Conditions: Today (Sat) is clearing with outdoor RH 13-21% and highs ~76°F — moderate VPD stress expected through afternoon. Current scorecard shows 31.2h cold_stress and 6.1h vpd_low_stress today, indicating severe overnight vent oscillation issues that bias_cool must address. Sunday is the most extreme day: clear AM transitioning to overcast PM, outdoor RH dropping to 6-8% with highs 77°F — peak VPD stress day requiring maximum misting aggression. Monday is slightly cooler (72°F high) with clouds arriving at 11:00, easing VPD pressure. Tuesday is cool (56°F high, 28% RH) with minimal stress expected. East zone seedlings (lettuce, strawberry, pepper) show stress from cold/light issues — maintaining warmer overnight temps via bias_heat will help. Overnight lows: Sat 48°F, Sun 55°F, Mon 45°F, Tue 41°F — all nights need heating with bias_cool protection against vent oscillation. Testing: Compare Sunday peak (13:00-18:00, outdoor RH 6-8%, mist_max_closed_vent_s=900, fog_escalation_kpa=0.2, gap=15s) vs Monday peak (11:00-15:00, outdoor RH 9-12%, mist_max_closed_vent_s=900, fog_escalation_kpa=0.3, gap=20s). Sunday is ~40% drier. If the more aggressive Sunday posture (0.2 fog escalation, 15s gap) keeps VPD_high stress per unit outdoor VPD comparable to Monday’s milder posture, it validates scaling fog_escalation inversely with outdoor RH. Expected outcome: Sunday VPD_high stress hours / avg outdoor VPD should be within 20% of Monday’s ratio, demonstrating that fog_escalation_kpa 0.2 + gap 15s adequately compensates for extreme dryness. If Sunday’s ratio is >50% worse, fog_escalation 0.2 is insufficient for sub-10% RH conditions. | target_score=62 | target_compliance=70% | expected_stress=[heat=1.0, cold=1.0, vpd_high=5.0, vpd_low=1.0] | expected_cost=USD 7.5
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Mid-morning Sat: outdoor 73°F/18% RH, moderate VPD stress. E
Sat peak: outdoor 76°F/15% RH, VPD forecast 2.59 kPa outdoor
Sat afternoon: outdoor temp dropping to 71°F, RH rising to 2
Sat night: lows forecast 48°F. Heaters will run. bias_cool +
Tactical tunable changes:
Immediate coverage (copied from first transition)
Mid-morning Sat: outdoor 73°F/18% RH, moderate VPD stress. E
Sat peak: outdoor 76°F/15% RH, VPD forecast 2.59 kPa outdoor
Sat afternoon: outdoor temp dropping to 71°F, RH rising to 2
Sat night: lows forecast 48°F. Heaters will run. bias_cool +
Sunday April 12
Primary crop-band changes:
Sun pre-dawn: outdoor 44°F/44% RH, heaters still running. Ma
Sun tree shade clears: east zone gets direct sun, VPD ramp b
Sun peak + cloud shift (14:00): outdoor 76°F/7% RH — extreme
Sun late afternoon: outdoor 77°F/7% RH but solar declining.
Sun night: lows forecast 55°F — milder than Sat but still ne
Tactical tunable changes:
Sun pre-dawn: outdoor 44°F/44% RH, heaters still running. Ma
Sun tree shade clears: east zone gets direct sun, VPD ramp b
Sun peak + cloud shift (14:00): outdoor 76°F/7% RH — extreme
Sun late afternoon: outdoor 77°F/7% RH but solar declining.
Sun night: lows forecast 55°F — milder than Sat but still ne
Monday April 13
Primary crop-band changes:
Mon pre-dawn: outdoor 50°F/26% RH, heaters running. Maintain
Mon tree shade clears: east zone direct sun. Outdoor 64°F/12
Mon cloud shift at 11:00: clouds clear briefly (12% at noon)
Mon peak: outdoor 72°F/9% RH, overcast. VPD peak forecast 2.
Mon decline: outdoor temp dropping to 71°F, RH rising to 10%
Mon night: lows forecast 45°F — coldest night in the plan. b
Tactical tunable changes:
Mon pre-dawn: outdoor 50°F/26% RH, heaters running. Maintain
Mon tree shade clears: east zone direct sun. Outdoor 64°F/12
Mon cloud shift at 11:00: clouds clear briefly (12% at noon)
Mon peak: outdoor 72°F/9% RH, overcast. VPD peak forecast 2.
Mon decline: outdoor temp dropping to 71°F, RH rising to 10%
Mon night: lows forecast 45°F — coldest night in the plan. b
Tuesday April 14
Primary crop-band changes:
Tue pre-dawn: outdoor 44°F/43% RH, heaters running. Maintain
Tue tree shade clears: outdoor 56°F/28% RH, overcast. Cool m
Tactical tunable changes:
Tue pre-dawn: outdoor 44°F/43% RH, heaters running. Maintain
Tue tree shade clears: outdoor 56°F/28% RH, overcast. Cool m
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.3
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 45
15 → 20
45 → 30
0.3 → 0.4
20 → 15
30 → 45
0 → 3
0 → 1
45 → 60
0.4 → 0.2
600 → 900
45 → 60
3 → -1
1 → 0
15 → 20
60 → 30
1 → 2
-2 → -3
60 → 90
90 → 120
20 → 25
-1 → 0
2 → 1
-3 → -2
0.2 → 0.3
60 → 90
90 → 60
120 → 90
25 → 20
60 → 45
30 → 45
0 → 3
0 → 1
0.3 → 0.4
90 → 60
900 → 600
20 → 15
45 → 60
0.4 → 0.3
600 → 900
3 → -1
1 → 0
15 → 20
60 → 30
-1 → 0
0.3 → 0.4
60 → 90
900 → 600
20 → 15
30 → 45
0 → 4
0 → 2
90 → 60
300 → 240
45 → 60
4 → 0
2 → 0
240 → 300
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 20.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 60.
Value 500.
Value 60.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 120.
Value 25.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 90.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 20.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 20.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 20.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 20.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 90.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 240.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 240.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
☀️ Midday Cycle (11:32 AM) — iris-20260411-1135
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 17:32 → 2026-04-11 18:02
Reflection
Validating previous cycle: iris-20260411-0515
Previous hypothesis: Lowering fog_escalation_kpa to 0.2 on Sunday (extreme dry, 7% RH) combined with 900s sealed-vent and 15s pulse gap at peak will keep vpd_high stress below 6h despite 2.5x drier conditions than Saturday. On Saturday, fog_escalation 0.3 with 600s sealed-vent should limit vpd_high to ~4h. Monday’s high winds will reduce vent effectiveness — extending sealed-vent to 900s and using fog_escalation 0.3 compensates. Result: [backfill] compliance unavailable over plan window 2026-04-11 17:32 → 2026-04-11 18:02 Score: 4/10
Hypothesis
Conditions: Today (Sat) is partly cloudy with outdoor high 77°F and very dry air (15-27% RH), transitioning to a brutally dry Sunday (6-8% RH, 77°F, clear until 14:00 cloud shift) — the driest day in the horizon. Monday is moderately dry (9-28% RH, 72°F high) with clouds clearing at 11:00. Tuesday is the coolest day (58°F high, 27-48% RH) with precipitation chances rising to 39%. Today’s partial scorecard shows 31h cold_stress and 6h vpd_low_stress — likely from overnight band mismatch or ESP32 reboot corruption earlier today, not from the active plan’s tuning. East zone seedlings (lettuce, strawberry, pepper) show stress indicators but these are likely light/nutrient issues outside this planner’s control surface. Testing: Compare Sunday peak (13:00-18:00, outdoor RH 6-8%, fog_escalation_kpa=0.2, gap=15s, mist_max_closed_vent_s=900) vs Monday peak (11:00-15:00, outdoor RH 9-12%, fog_escalation_kpa=0.3, gap=20s, mist_max_closed_vent_s=900). Sunday is ~40% drier. If Sunday’s VPD_high stress hours per unit outdoor VPD is comparable to or lower than Monday’s ratio, it validates scaling fog_escalation inversely with outdoor RH on extreme dry days. Expected outcome: Sunday VPD_high_stress / avg_outdoor_VPD ≤ Monday’s ratio, demonstrating that 0.2 fog escalation + 15s gap compensates for extreme dryness. Expected Sunday VPD_high: 4-6h (physics-limited at 6% RH). Monday VPD_high: 2-4h. Tuesday: <1h. | target_score=55 | target_compliance=55% | expected_stress=[heat=1.0, cold=0.5, vpd_high=6.0, vpd_low=0.5] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Current VPD 2.0-2.25 across zones with outdoor 72°F/24% RH.
Forecast peak: 77°F/15% RH at 14:00. Tighten gap to 15s for
Cloud shift at 18:00 (clear sky). Solar declining, outdoor 6
Sunset. Overnight low forecast 44-50°F — heaters will run. b
Tactical tunable changes:
Immediate coverage (copied from first transition)
Current VPD 2.0-2.25 across zones with outdoor 72°F/24% RH.
Forecast peak: 77°F/15% RH at 14:00. Tighten gap to 15s for
Cloud shift at 18:00 (clear sky). Solar declining, outdoor 6
Sunset. Overnight low forecast 44-50°F — heaters will run. b
Sunday April 12
Primary crop-band changes:
Pre-dawn at 44°F/44% outdoor. Heaters still running — mainta
Tree shade clears east zone. Outdoor 63°F/23% RH and droppin
Peak stress: 77°F/7% outdoor RH — most extreme conditions in
Solar declining but outdoor still 77°F/7% RH — VPD may still
Sunset. Overnight low forecast 49-55°F — heaters will run. b
Tactical tunable changes:
Pre-dawn at 44°F/44% outdoor. Heaters still running — mainta
Tree shade clears east zone. Outdoor 63°F/23% RH and droppin
Peak stress: 77°F/7% outdoor RH — most extreme conditions in
Solar declining but outdoor still 77°F/7% RH — VPD may still
Sunset. Overnight low forecast 49-55°F — heaters will run. b
Monday April 13
Primary crop-band changes:
Pre-dawn at 50°F/26% outdoor. Heaters still running — mainta
Cloud shift at 11:00 (clouds clear from 100% to 12%). Tree s
Peak stress: 72°F/9% outdoor RH. Moderately aggressive: gap
Post-solar decline. Outdoor 71°F/10% RH but solar waning. Re
Sunset. Coldest night in horizon — forecast low 41-43°F. Agg
Tactical tunable changes:
Pre-dawn at 50°F/26% outdoor. Heaters still running — mainta
Cloud shift at 11:00 (clouds clear from 100% to 12%). Tree s
Peak stress: 72°F/9% outdoor RH. Moderately aggressive: gap
Post-solar decline. Outdoor 71°F/10% RH but solar waning. Re
Sunset. Coldest night in horizon — forecast low 41-43°F. Agg
Tuesday April 14
Primary crop-band changes:
Pre-dawn at 44°F/43% outdoor. Heaters still running — mainta
Tree shade clears. Tuesday high only 58°F with 27% RH — mild
Tactical tunable changes:
Pre-dawn at 44°F/43% outdoor. Heaters still running — mainta
Tree shade clears. Tuesday high only 58°F with 27% RH — mild
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.3
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 30
0.3 → 0.4
30 → 60
0 → 3
0 → 1
0.4 → 0.2
600 → 900
3 → -1
1 → 0
60 → 30
1 → 2
-2 → -3
60 → 90
60 → 30
15 → 20
45 → 60
-1 → 0
2 → 1
-3 → -2
0.2 → 0.3
90 → 60
30 → 60
20 → 15
60 → 45
0 → 3
0 → 1
0.3 → 0.4
900 → 600
30 → 60
0.4 → 0.3
600 → 900
3 → 0
1 → 0
60 → 30
0.3 → 0.4
900 → 600
30 → 60
0 → 4
0 → 2
4 → 0
2 → 0
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 30.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
☀️ Midday Cycle (12:02 PM) — iris-20260411-1205
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 18:02 → 2026-04-11 18:17
Reflection
Validating previous cycle: iris-20260411-0515
Previous hypothesis: Lowering fog_escalation_kpa to 0.2 on Sunday (extreme dry, 7% RH) combined with 900s sealed-vent and 15s pulse gap at peak will keep vpd_high stress below 6h despite 2.5x drier conditions than Saturday. On Saturday, fog_escalation 0.3 with 600s sealed-vent should limit vpd_high to ~4h. Monday’s high winds will reduce vent effectiveness — extending sealed-vent to 900s and using fog_escalation 0.3 compensates. Result: [backfill] compliance unavailable over plan window 2026-04-11 18:02 → 2026-04-11 18:17 Score: 4/10
Hypothesis
Conditions: Today (Sat) is partly cloudy with outdoor RH 15-27%, high 77°F — moderate dry stress remaining. Sunday is the most extreme day: clear morning transitioning to clouds at 14:00, outdoor RH drops to 6-8% with highs of 77°F — extreme VPD stress expected. Monday is similar but slightly cooler (72°F high) with clouds from 11:00 and outdoor RH 9-12%. Tuesday is mild (59°F high, 26-48% RH) — easy day. Today’s partial scorecard shows 31h cold_stress dominating, likely from overnight vent oscillation before the current plan’s bias_cool took effect. Crop health is generally good; lettuce seedlings show some stress (wilting/yellowing) possibly from cold overnight temps in east zone. Testing: Compare Sunday peak (13:00-18:00, outdoor RH 6-8%, fog_escalation_kpa=0.2, gap=15s, mist_max_closed_vent_s=900) vs Monday peak (11:00-15:00, outdoor RH 9-12%, fog_escalation_kpa=0.3, gap=20s, mist_max_closed_vent_s=900). If Sunday’s VPD_high stress hours per unit outdoor VPD is comparable to or lower than Monday’s ratio, it validates scaling fog_escalation inversely with outdoor RH on extreme dry days. Expected outcome: Sunday VPD_high_stress_h / avg_outdoor_VPD ≤ Monday’s ratio. Sunday target: <4h VPD_high stress despite 6% RH. Monday target: <3h VPD_high stress with 9-12% RH. Both nights should have 0h cold_stress with bias_cool +3. | target_score=55 | target_compliance=55% | expected_stress=[heat=1.0, cold=0.5, vpd_high=6.0, vpd_low=1.0] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Outdoor RH 15-23%, temp 70-77°F. Aggressive misting posture
Post-peak decline. Outdoor temp dropping to 69°F, RH rising
Sunset. Tonight drops to 44°F — heaters will run. bias_heat
Tactical tunable changes:
Immediate coverage (copied from first transition)
Outdoor RH 15-23%, temp 70-77°F. Aggressive misting posture
Post-peak decline. Outdoor temp dropping to 69°F, RH rising
Sunset. Tonight drops to 44°F — heaters will run. bias_heat
Sunday April 12
Primary crop-band changes:
Pre-dawn at 44°F outdoor, 44% RH. Heaters still running. Kee
Tree shade clears east zone. Outdoor 63°F/23% RH, VPD ramp a
Peak VPD stress: 77°F/7% RH outdoor, forecast VPD ~2.98 kPa.
Sunday driest hour is 18:00 (6% RH) — VPD remains extreme ev
Sunset Sunday. Tonight drops to 45°F with outdoor RH rising
Tactical tunable changes:
Pre-dawn at 44°F outdoor, 44% RH. Heaters still running. Kee
Tree shade clears east zone. Outdoor 63°F/23% RH, VPD ramp a
Peak VPD stress: 77°F/7% RH outdoor, forecast VPD ~2.98 kPa.
Sunday driest hour is 18:00 (6% RH) — VPD remains extreme ev
Sunset Sunday. Tonight drops to 45°F with outdoor RH rising
Monday April 13
Primary crop-band changes:
Pre-dawn Monday at 50°F/26% RH. Heaters still running. Keep
Cloud shift at 11:00 — clouds clear to 12% cover, solar jump
Peak stress Monday: 72°F/9% RH outdoor, VPD 2.40 kPa. Maximu
Solar declining, outdoor temp dropping to 71°F. Wind 21 mph
Sunset Monday. Tonight drops to 41°F — coldest night in the
Tactical tunable changes:
Pre-dawn Monday at 50°F/26% RH. Heaters still running. Keep
Cloud shift at 11:00 — clouds clear to 12% cover, solar jump
Peak stress Monday: 72°F/9% RH outdoor, VPD 2.40 kPa. Maximu
Solar declining, outdoor temp dropping to 71°F. Wind 21 mph
Sunset Monday. Tonight drops to 41°F — coldest night in the
Tuesday April 14
Primary crop-band changes:
Pre-dawn Tuesday at 44°F/43% RH. Heaters still running. Keep
Tree shade clears. Tuesday is mild: high 59°F, outdoor RH 26
Tactical tunable changes:
Pre-dawn Tuesday at 44°F/43% RH. Heaters still running. Keep
Tree shade clears. Tuesday is mild: high 59°F, outdoor RH 26
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.3
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 45
0.3 → 0.4
45 → 60
0 → 3
0 → 1
0.4 → 0.2
600 → 900
3 → -1
1 → 0
60 → 45
1 → 2
-2 → -3
60 → 90
60 → 45
15 → 20
45 → 60
45 → 30
-1 → 0
60 → 90
0 → 3
0 → 1
2 → 1
-3 → -2
0.2 → 0.4
90 → 60
90 → 60
45 → 60
900 → 600
20 → 15
60 → 45
30 → 60
0.4 → 0.3
600 → 900
3 → 0
1 → 0
60 → 45
1 → 2
-2 → -3
60 → 90
60 → 45
15 → 20
45 → 60
45 → 30
2 → 1
-3 → -2
0.3 → 0.4
60 → 90
90 → 60
45 → 60
900 → 600
20 → 15
60 → 45
30 → 45
0 → 4
0 → 2
90 → 60
45 → 60
4 → 0
2 → 0
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 90.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 2.
Value -3.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 90.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
☀️ Midday Cycle (12:17 PM) — iris-20260411-1220
validated
4/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] compliance unavailable over plan window 2026-04-11 18:17 → 2026-04-11 19:02
Reflection
Validating previous cycle: iris-20260411-0610
Previous hypothesis: Reducing mister_pulse_gap_s to 15s during peak stress on Sunday/Monday (the driest hours), combined with mist_max_closed_vent_s=900s and fog_escalation_kpa=0.2, will keep VPD_high stress under 6h/day despite 7-9% outdoor RH. On cold nights (Sun-Tue), bias_cool=+3 with bias_heat=+1 will prevent vent oscillation. Tuesday’s mild conditions should achieve near-zero stress. Result: [backfill] compliance unavailable over plan window 2026-04-11 18:17 → 2026-04-11 19:02 Score: 4/10
Hypothesis
Conditions: Today (Sat) is overcast with outdoor 76°F/17% RH, clearing tonight to cold clear night (low 44°F). Sunday is the most extreme day: clear skies, 77°F high, outdoor RH dropping to 6-8% — the driest conditions in the horizon. Monday is cooler (70°F high) with clouds building by 10:00, still dry (11-15% RH). Tuesday is mild and cloudy (62°F, 25% RH) with rain chances. Today’s partial scorecard shows 31h cold_stress dominating — likely from overnight vent oscillation before the current plan’s bias_cool took effect. Crop health is generally good; lettuce seedlings show some stress (wilting/yellowing) possibly from cold or light, not actionable via this planner. Testing: Compare Sunday peak (13:00-19:00, outdoor RH 6-8%, fog_escalation_kpa=0.2, gap=15s, mist_max_closed_vent_s=900) vs Monday peak (10:00-17:00, outdoor RH 11-15%, fog_escalation_kpa=0.3, gap=20s, mist_max_closed_vent_s=900). Normalize VPD_high stress hours by average outdoor VPD for each period. If Sunday’s ratio is comparable to or lower than Monday’s, it validates that scaling fog_escalation inversely with outdoor RH compensates for extreme dryness. Expected outcome: Sunday VPD_high_stress_h / avg_outdoor_VPD should be ≤ Monday’s ratio, demonstrating fog_escalation 0.2 at 6% RH performs as well as 0.3 at 13% RH. Sunday total stress target <6h, Monday <3h, Tuesday <1h. | target_score=60 | target_compliance=65% | expected_stress=[heat=1.0, cold=0.5, vpd_high=5.0, vpd_low=0.5] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
Current state is SEALED_MIST_S1 with north VPD 2.28. Outdoor
Forecast peak: 77°F/16% RH outdoor. Tighten gap to 20s and l
Solar dropping (60 W/m² forecast), temp declining to 75°F. R
Sunset. Cold night ahead — forecast low 44°F. bias_heat +1 f
Tactical tunable changes:
Immediate coverage (copied from first transition)
Current state is SEALED_MIST_S1 with north VPD 2.28. Outdoor
Forecast peak: 77°F/16% RH outdoor. Tighten gap to 20s and l
Solar dropping (60 W/m² forecast), temp declining to 75°F. R
Sunset. Cold night ahead — forecast low 44°F. bias_heat +1 f
Sunday April 12
Primary crop-band changes:
Pre-dawn for extreme dry day (6% RH forecast). Lower engage
Tree shade clears east zone — direct sun hits, VPD ramp acce
Clouds arrive at 14:00 (98%) reducing solar but outdoor RH d
Solar near zero but outdoor still 77°F/7% RH — VPD remains e
Sunset. Cold night — forecast low 47°F (Sun night into Mon).
Tactical tunable changes:
Pre-dawn for extreme dry day (6% RH forecast). Lower engage
Tree shade clears east zone — direct sun hits, VPD ramp acce
Clouds arrive at 14:00 (98%) reducing solar but outdoor RH d
Solar near zero but outdoor still 77°F/7% RH — VPD remains e
Sunset. Cold night — forecast low 47°F (Sun night into Mon).
Monday April 13
Primary crop-band changes:
Pre-dawn Monday. Outdoor 50°F/24% RH — less extreme than Sun
Tree shade clears. Clouds clearing at 10:00 (73%→7%). Outdoo
Clouds clear (73%→7%). Solar ramp begins — 528 W/m² forecast
Clouds return (100% from 13:00). Solar drops to 349 W/m². Re
Sunset. Coldest night in horizon — forecast low 43°F. bias_h
Tactical tunable changes:
Pre-dawn Monday. Outdoor 50°F/24% RH — less extreme than Sun
Tree shade clears. Clouds clearing at 10:00 (73%→7%). Outdoo
Clouds clear (73%→7%). Solar ramp begins — 528 W/m² forecast
Clouds return (100% from 13:00). Solar drops to 349 W/m². Re
Sunset. Coldest night in horizon — forecast low 43°F. bias_h
Tuesday April 14
Primary crop-band changes:
Pre-dawn Tuesday. Outdoor 44°F/48% RH — cold but more humid.
Tree shade clears but Tuesday is mild and cloudy (62°F high,
Tactical tunable changes:
Pre-dawn Tuesday. Outdoor 44°F/48% RH — cold but more humid.
Tree shade clears but Tuesday is mild and cloudy (62°F high,
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 45
45 → 60
0 → 3
0 → 1
1 → 2
-2 → -3
0.4 → 0.2
60 → 90
600 → 900
15 → 20
45 → 60
60 → 45
3 → -1
1 → 0
60 → 45
45 → 30
20 → 25
-1 → 0
2 → 1
-3 → -2
0.2 → 0.3
45 → 60
90 → 60
25 → 20
60 → 45
30 → 45
0 → 3
0 → 1
0.3 → 0.4
900 → 600
20 → 15
45 → 60
0.4 → 0.3
600 → 900
60 → 45
3 → 0
1 → 0
60 → 90
15 → 20
45 → 60
45 → 30
0.3 → 0.4
90 → 60
900 → 600
20 → 15
60 → 45
30 → 45
0 → 4
0 → 2
45 → 60
4 → 0
2 → 0
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 2.
Value -3.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 45.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 25.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 20.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
☀️ Midday Cycle (1:02 PM) — iris-20260411-1305
validated
2/10
vpd_hysteresis, vpd_watch_dwell_s, mister_engage_kpa, mister_all_kpa, mister_pulse_on_s, mister_pulse_gap_s, mister_vpd_weight, mister_water_budget_gal ...
Result: [backfill] avg compliance 17.6% (stress 3.5 h) over plan window 2026-04-11 19:02 → 2026-04-12 12:31
Reflection
Validating previous cycle: iris-20260411-0650
Previous hypothesis: Maintaining aggressive misting (engage 1.3, gap 20s, weight 2.5-3.0) with 900s sealed-vent on the extreme dry days (Sun/Mon) and fog_escalation 0.2 on Sunday (7% RH) vs 0.3 on Monday (9% RH) will keep VPD_high stress under 8h/day despite outdoor VPD >2.5 kPa. Cold nights get bias_cool +3 and bias_heat +1 to prevent vent oscillation. Tuesday’s mild conditions allow relaxed defaults. Result: [backfill] avg compliance 17.6% (stress 3.5 h) over plan window 2026-04-11 19:02 → 2026-04-12 12:31 Score: 2/10
Hypothesis
Conditions: Today (Sat) is clearing with outdoor 75°F/21% RH, indoor temps 77-79°F with highly variable zone VPD (south 0.52, north 2.01). Today’s partial scorecard shows severe cold_stress (31.2h) dominating — likely overnight vent oscillation before the current plan’s bias_cool took effect. Sunday is the most extreme day: clear skies, outdoor RH dropping to 6-8%, high 77°F — 13h forecast stress. Monday moderates (high 70°F, RH 11-17%, clouds clearing midday). Tuesday is mild (high 63°F, RH 23%, overcast). Crop health is generally good; lettuce seedlings show some stress (wilting/yellowing) possibly from cold overnight exposure. Testing: Compare Sunday peak (10:00-19:26, outdoor RH 6-8%, fog_escalation_kpa=0.2, gap=15s, mist_max_closed_vent_s=900) vs Monday peak (09:59-19:27, outdoor RH 11-17%, fog_escalation_kpa=0.3, gap=20s, mist_max_closed_vent_s=900). Normalize VPD_high stress hours by average outdoor VPD for each period. If Sunday’s normalized ratio is ≤ Monday’s, it validates that scaling fog_escalation inversely with outdoor RH compensates for extreme dryness. Expected outcome: Sunday VPD_high_stress_h / avg_outdoor_VPD ≤ Monday’s ratio, demonstrating fog_escalation 0.2 compensates for 2x drier conditions vs fog_escalation 0.3. | target_score=62 | target_compliance=70% | expected_stress=[heat=1.0, cold=0.5, vpd_high=5.0, vpd_low=0.5] | expected_cost=USD 7.0
Setpoints
Saturday April 11
Primary crop-band changes:
Immediate coverage (copied from first transition)
North zone VPD 2.01 — engage misting aggressively (1.3 kPa,
Outdoor temp dropping to 71°F, RH rising to 20%. Solar decli
Cold night ahead: forecast low 44°F. bias_heat +1 pre-heats
Tactical tunable changes:
Immediate coverage (copied from first transition)
North zone VPD 2.01 — engage misting aggressively (1.3 kPa,
Outdoor temp dropping to 71°F, RH rising to 20%. Solar decli
Cold night ahead: forecast low 44°F. bias_heat +1 pre-heats
Sunday April 12
Primary crop-band changes:
Pre-dawn at 44°F outdoor. Keep heating biases active. Pre-po
Tree shade clears, east zone gets direct sun. Outdoor 66°F/2
Cloud shift at 14:00 (98-100% cloud) reduces solar gain but
Post-peak decline but outdoor still 77°F/7% RH. Ease gap to
Cold night: forecast low 47°F (Sun night into Mon). bias_hea
Tactical tunable changes:
Pre-dawn at 44°F outdoor. Keep heating biases active. Pre-po
Tree shade clears, east zone gets direct sun. Outdoor 66°F/2
Cloud shift at 14:00 (98-100% cloud) reduces solar gain but
Post-peak decline but outdoor still 77°F/7% RH. Ease gap to
Cold night: forecast low 47°F (Sun night into Mon). bias_hea
Monday April 13
Primary crop-band changes:
Pre-dawn 50°F outdoor, 24% RH. Keep heating biases. Pre-posi
Tree shade clears at 09:59. Cloud shift at 10:00 — clouds cl
Post-solar-peak but VPD peaks at 17:00 due to thermal lag. C
Peak VPD at 17:00 (outdoor 70°F/11%, VPD 2.19). Fog window c
Coldest night of the horizon: forecast low 43°F. Increase bi
Tactical tunable changes:
Pre-dawn 50°F outdoor, 24% RH. Keep heating biases. Pre-posi
Tree shade clears at 09:59. Cloud shift at 10:00 — clouds cl
Post-solar-peak but VPD peaks at 17:00 due to thermal lag. C
Peak VPD at 17:00 (outdoor 70°F/11%, VPD 2.19). Fog window c
Coldest night of the horizon: forecast low 43°F. Increase bi
Tuesday April 14
Primary crop-band changes:
Pre-dawn 44°F outdoor, 48% RH — much more humid than previou
Tree shade clears. Tuesday is the mildest day: high 63°F, ou
End of 72h horizon. Tuesday afternoon: 63°F/23% RH, overcast
Tactical tunable changes:
Pre-dawn 44°F outdoor, 48% RH — much more humid than previou
Tree shade clears. Tuesday is the mildest day: high 63°F, ou
End of 72h horizon. Tuesday afternoon: 63°F/23% RH, overcast
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 45
45 → 60
0 → 3
0 → 1
0.4 → 0.2
60 → 90
600 → 900
15 → 20
45 → 60
60 → 45
3 → -1
1 → 0
1 → 2
-2 → -3
60 → 45
60 → 45
45 → 30
90 → 120
-1 → 0
2 → 1
-3 → -2
0.2 → 0.3
45 → 60
90 → 60
45 → 60
120 → 90
20 → 15
60 → 45
30 → 45
0 → 3
0 → 1
0.3 → 0.4
900 → 600
45 → 60
0.4 → 0.3
600 → 900
60 → 45
3 → 0
1 → 0
45 → 30
0.3 → 0.4
900 → 600
30 → 45
0 → 4
0 → 2
45 → 60
4 → 0
2 → 0
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 90.
Value 60.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 45.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 90.
Value 20.
Value 60.
Value 500.
Value 30.
Value -1.
Value 0.
Value 2.
Value -3.
Value 0.2.
Value 45.
Value 60.
Value 300.
Value 120.
Value 90.
Value 45.
Value 900.
Value 120.
Value 20.
Value 60.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 30.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
☀️ Midday Cycle (1:57 PM) — iris-20260411-1346
validated
3/10
fog_escalation_kpa, vpd_hysteresis, mister_pulse_gap_s, bias_cool, bias_heat
Result: [dominant: vpd_high_stress] Score 27.5, compliance 17.6% (temp 85.4%, VPD 23.1%). 17.25h vpd_high, 2.52h cold, 0.98h heat, 1.17h vpd_low. Cost USD 4.97. 8 ESP32 reboots during 9-11 AM disrupted morning VPD ramp control. Tight nighttime VPD band (0.3-0.6) vs natural 0.8-0.95 drift produced ~10-12h structural non-compliance. 36 gal misting water (below average) suggests insufficient daytime aggression.
Reflection
Validating previous cycle: iris-20260411-0735
Previous hypothesis: Maintaining bias_cool +3 on cold nights prevents vent oscillation cold_stress. During extreme dry daytime (Sun/Mon), aggressive sealed-vent misting (engage 1.3, gap 15-20s, max_closed 900s) with fog_escalation 0.2 kPa will minimize vpd_high stress. On moderate days (Sat with 16-26% RH), fog_escalation 0.3 kPa balances humidity without vpd_low overshoot. Tuesday’s mild conditions allow relaxed defaults. Result: [dominant: vpd_high_stress] Score 27.5, compliance 17.6% (temp 85.4%, VPD 23.1%). 17.25h vpd_high, 2.52h cold, 0.98h heat, 1.17h vpd_low. Cost USD 4.97. 8 ESP32 reboots during 9-11 AM disrupted morning VPD ramp control. Tight nighttime VPD band (0.3-0.6) vs natural 0.8-0.95 drift produced ~10-12h structural non-compliance. 36 gal misting water (below average) suggests insufficient daytime aggression. Score: 3/10
New finding: ESP32 reboot instability during morning peak (8 reboots in 2h) eliminates planning benefits for that window. When reboots are frequent, plan defensively — assume control will be interrupted and set wider bands/more conservative settings that degrade gracefully. Also: tight nighttime VPD bands (0.3-0.6 kPa) structurally cap compliance at ~55-60% regardless of daytime performance. Scoring methodology should eventually account for controllability windows. → Added to Lessons Learned
Hypothesis
Conditions: Sat afternoon SUNRISE. Current: 80.7F avg, north VPD 2.22, south 0.83. Outdoor 76.9F/20.7% RH. Yesterday: score 87, 97.1% compliance, 0.7h stress, USD 7.99. Sunday extreme dry (6-8% RH, 77F), Monday moderate dry (11-17% RH, 68F), Tuesday cooling with precip (43-63F, 23-53% RH). Testing: Compare Sunday peak (10-16, hysteresis 0.4, fog 0.2, gap 15s) vs Monday peak (10-14, hysteresis 0.3, fog 0.3, gap 20s). Normalize VPD_high stress by avg outdoor VPD. Expected outcome: Sunday normalized VPD_high ratio ⇐ Monday despite 2x drier. Target score 55, compliance 55%, expected cost ~USD 6.50.
Setpoints
Saturday April 11
Primary crop-band changes:
Standard
Standard
Standard
Tactical tunable changes:
Standard
Standard
Standard
Sunday April 12
Primary crop-band changes:
Standard
Standard
Standard
Standard
Standard
Tactical tunable changes:
Standard
Standard
Standard
Standard
Standard
Monday April 13
Primary crop-band changes:
Standard
Standard
Standard
Standard
Tactical tunable changes:
Standard
Standard
Standard
Standard
Tuesday April 14
Primary crop-band changes:
Standard
Standard
Standard
Tactical tunable changes:
Standard
Standard
Standard
Changed secondary parameters:
initial 0
initial 0
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 60
0 → 3
0 → 1
0.4 → 0.2
600 → 900
3 → -1
1 → 0
-1 → 0
0.2 → 0.3
0 → 3
0 → 1
0.3 → 0.4
900 → 600
0.4 → 0.3
600 → 900
3 → 0
1 → 0
0.3 → 0.4
900 → 600
0 → 4
0 → 2
4 → 0
2 → 0
Full secondary parameter dump
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value -1.
Value 0.
Value 1.
Value -2.
Value 0.2.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 4.
Value 2.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 0.
Value 0.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
🌆 Evening Cycle (8:12 PM) — iris-20260411-2006
validated
5/10
none recorded
Result: Governed overnight 4/11 8PM → 4/12 6:27AM. Today’s partial scorecard: score 58.3, compliance 62.9% (overnight easier conditions). Overnight VPD dipped to 0.38 kPa at times — below vpd_low 0.4, contributing ~1.2h vpd_low stress. Both heaters running at dawn (heat1 since 5:29, heat2 since 6:24) as expected for 46°F outdoor. bias_cool +3 / bias_heat +1 prevented cold_stress oscillation overnight — only 1.1h cold stress vs 0h with similar settings previously. Heat stress of 4.07h surprising for overnight — likely from slab thermal retention keeping temps above tight nighttime temp_high band. Hypothesis partially validated: overnight posture was reasonable but structural nighttime band tightness continues to limit compliance. The 2006 plan’s fog_escalation 0.2 setting didn’t apply overnight (fog blocked outside 07:00-17:00 window).
Reflection
Validating previous cycle: iris-20260411-1346
Previous hypothesis: Sunday extreme dry: fog_escalation 0.2, gap 15s, sealed-vent 900s, engage 1.3, vpd_hysteresis 0.4 at peak keeps VPD_high under 6h. Wider hysteresis reduces VPD sawtooth. Monday moderate treatment as control. Tuesday conservative. Result: Governed overnight 4/11 8PM → 4/12 6:27AM. Today’s partial scorecard: score 58.3, compliance 62.9% (overnight easier conditions). Overnight VPD dipped to 0.38 kPa at times — below vpd_low 0.4, contributing ~1.2h vpd_low stress. Both heaters running at dawn (heat1 since 5:29, heat2 since 6:24) as expected for 46°F outdoor. bias_cool +3 / bias_heat +1 prevented cold_stress oscillation overnight — only 1.1h cold stress vs 0h with similar settings previously. Heat stress of 4.07h surprising for overnight — likely from slab thermal retention keeping temps above tight nighttime temp_high band. Hypothesis partially validated: overnight posture was reasonable but structural nighttime band tightness continues to limit compliance. The 2006 plan’s fog_escalation 0.2 setting didn’t apply overnight (fog blocked outside 07:00-17:00 window). Score: 5/10
New finding: Overnight heat stress (4h) on nights where outdoor drops to 46°F but indoor stays 62-63°F indicates the nighttime temp_high band (~62-65°F from crop profiles) is too tight for the slab’s thermal retention. The slab stores enough heat to keep greenhouse 7-10°F above outdoor regardless of bias settings. This is structural non-compliance that bias_cool cannot fix — it requires either crop band adjustment or acceptance as baseline. → Added to Lessons Learned
Hypothesis
Testing: Compare Sunday fog_escalation 0.2 at 7% outdoor RH vs Monday fog_escalation 0.2 at 13-18% outdoor RH. If Sunday produces any vpd_low_stress despite 7% outdoor RH, fog_escalation 0.2 is too aggressive even for extreme dry — should raise floor to 0.3. Expected outcome: Sunday: compliance 25-35% (structural overnight cap + extreme daytime), vpd_high 10-14h, cost USD 5-7. Monday: compliance 35-45% (less extreme, cloud cover), vpd_high 6-10h, cost USD 4-6. Zero vpd_low_stress on Sunday validates fog 0.2 for extreme conditions. | target_score=35 | target_compliance=30% | expected_stress=[heat=1.0, cold=1.0, vpd_high=12.0, vpd_low=0.5] | expected_cost=USD 6.0
Setpoints
Saturday April 11
Primary crop-band changes:
Cold night posture. Outdoor dropping to 44°F by dawn. bias_h
Tactical tunable changes:
Cold night posture. Outdoor dropping to 44°F by dawn. bias_h
Sunday April 12
Primary crop-band changes:
Sunday dawn. 44°F/31% RH outdoor. Cold-dry lesson: don't go
Sunday morning ramp. Outdoor warming 51→61°F, RH crashing to
Sunday peak stress onset. 66°F/14% RH, VPD climbing fast. Ma
Sunday late afternoon. 78°F/8% RH, solar declining. Fog wind
Sunday evening. 66°F/10% outdoor, cooling. Transition to nig
Sunday night. Outdoor dropping to mid-50s. Standard night po
Tactical tunable changes:
Sunday dawn. 44°F/31% RH outdoor. Cold-dry lesson: don't go
Sunday morning ramp. Outdoor warming 51→61°F, RH crashing to
Sunday peak stress onset. 66°F/14% RH, VPD climbing fast. Ma
Sunday late afternoon. 78°F/8% RH, solar declining. Fog wind
Sunday evening. 66°F/10% outdoor, cooling. Transition to nig
Sunday night. Outdoor dropping to mid-50s. Standard night po
Monday April 13
Primary crop-band changes:
Monday dawn. 49°F/24% RH. Less extreme than Sunday. Moderate
Monday morning ramp. 58°F/23%, mostly cloudy. Engage 1.3, ga
Monday midday. 64-70°F/11-18% RH. Full aggression: gap 15s,
Monday evening. Transitioning to night. Tuesday brings moist
Monday night into Tuesday. 43°F low overnight. Standard cold
Tactical tunable changes:
Monday dawn. 49°F/24% RH. Less extreme than Sunday. Moderate
Monday morning ramp. 58°F/23%, mostly cloudy. Engage 1.3, ga
Monday midday. 64-70°F/11-18% RH. Full aggression: gap 15s,
Monday evening. Transitioning to night. Tuesday brings moist
Monday night into Tuesday. 43°F low overnight. Standard cold
Changed secondary parameters:
initial 3
initial 1
initial 1
initial -2
initial 0.4
initial 60
initial 60
initial 300
initial 120
initial 60
initial 60
initial 600
initial 90
initial 15
initial 45
initial 500
initial 60
3 → 2
1 → 0
0.4 → 0.3
600 → 900
60 → 45
1 → 3
-2 → -3
0.3 → 0.2
60 → 45
60 → 45
90 → 60
45 → 60
45 → 30
3 → 2
-3 → -2
0.2 → 0.3
45 → 60
45 → 60
60 → 90
60 → 45
30 → 45
2 → 3
0 → 1
2 → 1
0.3 → 0.4
900 → 600
45 → 60
3 → 2
1 → 0
1 → 2
0.4 → 0.3
600 → 900
60 → 45
0.3 → 0.2
60 → 45
60 → 45
90 → 60
45 → 60
45 → 30
2 → 3
0 → 1
2 → 1
0.2 → 0.4
45 → 60
45 → 60
900 → 600
60 → 90
60 → 45
30 → 60
Full secondary parameter dump
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 2.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 2.
Value 0.
Value 1.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 2.
Value 0.
Value 3.
Value -3.
Value 0.2.
Value 45.
Value 45.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 60.
Value 15.
Value 60.
Value 500.
Value 30.
Value 2.
Value 0.
Value 2.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 2.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 2.
Value 0.
Value 2.
Value -2.
Value 0.3.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 90.
Value 15.
Value 45.
Value 500.
Value 45.
Value 2.
Value 0.
Value 2.
Value -2.
Value 0.2.
Value 45.
Value 45.
Value 300.
Value 120.
Value 60.
Value 60.
Value 900.
Value 60.
Value 15.
Value 60.
Value 500.
Value 30.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 1.
Value 1.
Value -2.
Value 0.4.
Value 60.
Value 60.
Value 300.
Value 120.
Value 60.
Value 60.
Value 600.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
End-of-Day Summary
Climate
61.9–81.1°F; avg 69.0°F
0.29–2.15 kPa; avg 0.85 kPa
33.5–85.6%
Stress Hours
- Heat stress (>85°F): 4.6h
- VPD stress (>2.0 kPa): 10.8h
- Cold stress (<55°F): 2.6h
Economics
USD 0.13
USD 2.52
USD 0.890
USD 3.54
Equipment Runtimes
Primary exhaust runtime.
Secondary exhaust runtime.
Intake vent runtime.
Fogger runtime.
Electric heater runtime.
Gas heater runtime.
Supplemental lighting runtime.
South mister runtime.
West mister runtime.
Center mister runtime.
Water
- Total: 412 gal
- Mister: 177 gal
Crop Health (Gemini Vision)
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Observation notes are collapsed below to avoid publishing partial vision snippets.
Vision observation notes
Canna Lilies appear healthy with no visible signs of stress in the dark.
Hanging orchids appear healthy with green leaves and extensive aerial root systems.
Seedlings appear healthy and are establishing well.
Pepper seedlings look relatively healthy, but growth may be slow due to low light.
Seedlings are growing steadily, no visible issues.
Hourly Pattern
RH 63.8%.
RH 61.5%.
RH 71.2%.
RH 66.6%.
RH 63.2%.
RH 62.8%.
RH 66.9%.
RH 63.0%.
RH 61.4%.
RH 59.3%.
RH 60.3%.
RH 57.3%.
RH 56.1%.
RH 57.0%.
RH 56.2%.
RH 54.9%.
RH 54.2%.
RH 53.2%.
RH 53.2%.
RH 57.3%.
RH 61.5%.
RH 64.2%.
RH 66.4%.
RH 50.6%.
7-Day Stress Context
Cold stress 12.2h.
Cold stress 13.6h.
Cold stress 9.5h.
Cold stress 14.5h.
Cold stress 9.0h.
Cold stress 1.1h.
Cold stress 2.6h.