April 06, 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 (6:06 AM) — iris-20260406-0600

Status

validated

Outcome score

3/10

Changed parameters

temp_low, vpd_high, vpd_hysteresis, d_cool_stage_2, mister_engage_kpa, mister_all_kpa, mister_pulse_gap_s

Result: By noon Monday, the 6AM emergency plan only partially dispatched. mister_engage_kpa updated to 1.5 at 9AM, but current_active_setpoints still show temp_low=0, vpd_high=0, vpd_hysteresis=0 at 12PM. That confirms the experiment: dispatcher batch push failure is systemic, not intermittent. Despite broken target reporting, actual climate performance was decent this morning: overnight held 56-57F with no cold stress, and midday greenhouse is 79.7F avg with 1.90 VPD, south zone 83.8F / 2.23 VPD. Misters remain mostly inactive (mister_state 0.0, only 0.82h total over 24h), so the aggressive noon deploy has not materially engaged yet.

Reflection

Validating previous cycle: iris-20260405-1800

Previous hypothesis: temp_low=58 will protect against 34F Tue AM frost (heaters engage at 58F, gas at 55F). Mon aggressive noon deploy will limit stress to <4h despite 12% RH. Wed is the real test: 74F/12% is March-25-level stress. Even max misting will see 5-6h VPD stress. Lesson #4: accept it. Result: By noon Monday, the 6AM emergency plan only partially dispatched. mister_engage_kpa updated to 1.5 at 9AM, but current_active_setpoints still show temp_low=0, vpd_high=0, vpd_hysteresis=0 at 12PM. That confirms the experiment: dispatcher batch push failure is systemic, not intermittent. Despite broken target reporting, actual climate performance was decent this morning: overnight held 56-57F with no cold stress, and midday greenhouse is 79.7F avg with 1.90 VPD, south zone 83.8F / 2.23 VPD. Misters remain mostly inactive (mister_state 0.0, only 0.82h total over 24h), so the aggressive noon deploy has not materially engaged yet. Score: 3/10

New finding: Confirmed: dispatcher can push some params (mister_engage_kpa) while leaving critical core params stale at 0. This is a partial-write failure mode, worse than total failure because it creates false confidence. Large 10-param waypoints are not reliably atomic. Split critical params into dedicated emergency waypoints and stagger large batches. → Added to Lessons Learned

Hypothesis

Conditions: EMERGENCY: 5 critical params zeroed (temp_low=0, vpd_high=0, vpd_hysteresis=0, d_cool_stage_2=0, mister_water_budget=0) — 4th consecutive dispatcher failure. Current 56.6F avg, VPD 0.38, 42F outdoor, HEAT_S1 active. 72h window: Mon clear+extreme dry (70F/13% RH), Tue AM frost 35F then afternoon extreme dry (72F/12% RH = worst of window), Wed thunderstorm risk PM then clearing. Testing: Monitor today whether dispatcher actually pushes all 10 params from the 6AM emergency waypoint. If vpd_high, temp_low, vpd_hysteresis, d_cool_stage_2 remain at 0 after first dispatch cycle (~15 min), the dispatcher bug is confirmed systemic and needs emergency Iris (our OpenClaw AI agent)-dev fix. Secondary: compare Mon 12PM aggressive deploy (engage 1.3, gap 30s) VPD outcomes with previous Monday-like days. Expected outcome: Zero params restored within 15 min of plan insertion. Mon VPD stress <4h. Tue cold stress 0h (temp_low=58 holds). Tue PM VPD stress 4-6h (physics-limited at 12% RH). Wed VPD stress <3h (thunderstorm moisture helps). Total 3-day mister water <350 gal.

Setpoints

Monday April 06

Primary crop-band changes:

06:00high 82; low 58; vpd_h 2; hyst 0.3

EMERGENCY: Was 0. COOL_S2 at room temp without this.

09:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

12:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

15:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

17:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

19:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

22:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

Tactical tunable changes:

06:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

EMERGENCY: Was 0. COOL_S2 at room temp without this.

09:00d_cool 3; engage 1.5; all 1.8; pulse 60; gap 40; wt 1.5

Standard.

12:00d_cool 3; engage 1.3; all 1.6; pulse 60; gap 30; wt 1.5

Standard.

15:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 30; wt 1.5

Standard.

17:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 30; wt 1.5

Standard.

19:00d_cool 3; engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Standard.

22:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.

Tuesday April 07

Primary crop-band changes:

05:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

09:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

12:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

15:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

17:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

19:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

22:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

Tactical tunable changes:

05:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.

09:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.

12:00d_cool 3; engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Standard.

15:00d_cool 3; engage 1.3; all 1.6; pulse 60; gap 30; wt 1.5

Standard.

17:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 30; wt 1.5

Standard.

19:00d_cool 3; engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Standard.

22:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.

Wednesday April 08

Primary crop-band changes:

05:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

09:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

13:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

15:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

17:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

19:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

22:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

Tactical tunable changes:

05:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.

09:00d_cool 3; engage 1.3; all 1.6; pulse 60; gap 30; wt 1.5

Standard.

13:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 30; wt 1.5

Standard.

15:00d_cool 3; engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Standard.

17:00d_cool 3; engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Standard.

19:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.

22:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.


☀️ Midday Cycle (12:02 PM) — iris-20260406-1200

Status

validated

Outcome score

7/10

Changed parameters

temp_low, vpd_high, vpd_hysteresis, d_cool_stage_2, mister_engage_kpa, mister_all_kpa, mister_pulse_gap_s

Result: Minute-staggering succeeded operationally even though plan coverage validation marked the plan incomplete. By 5:25 PM the dispatcher pushed temp_low=58, vpd_high=1.60, vpd_hysteresis=0.30, temp_high=82, mister_water_budget_gal=500, and misting params. current_active_setpoints at 6 PM are healthy: temp_low=58, vpd_high=1.6, vpd_hysteresis=0.3, mister_engage=1.3, mister_all=1.5, pulse_gap=30. Climate also improved through the afternoon: greenhouse VPD peaked around 1.90 instead of the forecast 2.2+, and by 6 PM all zones were back in a safe 1.00-1.37 VPD range. The experiment worked technically, but the chart/coverage system cannot represent split-minute transitions as complete.

Reflection

Validating previous cycle: iris-20260405-1800

Previous hypothesis: temp_low=58 will protect against 34F Tue AM frost (heaters engage at 58F, gas at 55F). Mon aggressive noon deploy will limit stress to <4h despite 12% RH. Wed is the real test: 74F/12% is March-25-level stress. Even max misting will see 5-6h VPD stress. Lesson #4: accept it. Result: Minute-staggering succeeded operationally even though plan coverage validation marked the plan incomplete. By 5:25 PM the dispatcher pushed temp_low=58, vpd_high=1.60, vpd_hysteresis=0.30, temp_high=82, mister_water_budget_gal=500, and misting params. current_active_setpoints at 6 PM are healthy: temp_low=58, vpd_high=1.6, vpd_hysteresis=0.3, mister_engage=1.3, mister_all=1.5, pulse_gap=30. Climate also improved through the afternoon: greenhouse VPD peaked around 1.90 instead of the forecast 2.2+, and by 6 PM all zones were back in a safe 1.00-1.37 VPD range. The experiment worked technically, but the chart/coverage system cannot represent split-minute transitions as complete. Score: 7/10

New finding: Minute-staggering improves dispatcher reliability, but the plan coverage validator and homepage expect all 10 core params at the exact same timestamp. Use same-timestamp complete waypoints for published plans, and if emergency reassertion is needed, add separate duplicate complete transitions rather than split half-waypoints. → Added to Lessons Learned

Hypothesis

Conditions: Noon replan after confirming 6AM emergency plan only partially dispatched. Current greenhouse 79.7F avg, south 83.8F / 2.23 VPD, east 76.5F / 1.55 VPD. Current_active_setpoints still show temp_low=0, vpd_high=0, vpd_hysteresis=0 despite morning insert. Forecast remains dry this afternoon, frost 35F Tue dawn, then Tue PM worst VPD window (72F/16-17% RH), Wed clearer morning then cloudier afternoon. Testing: Test whether minute-staggering critical params (12:00 core params, 12:01 misting params) improves dispatcher success compared with same-timestamp 10-param waypoints. Measure by checking current_active_setpoints / recent dispatched changes at next cycle. Success = temp_low, vpd_high, vpd_hysteresis no longer 0 by evening cycle. Expected outcome: By evening cycle, critical params no longer zeroed. Mon VPD stress held under 5h despite late salvage. Tue cold stress 0h. Tue PM VPD stress 4-6h remains likely due to physics, but with actual misting engagement instead of silent failure.

Setpoints

Monday April 06

Primary crop-band changes:

12:00high 82; low 58; vpd_h 1.6; hyst 0.3

Emergency reassert. Cooling staging must not be 0.

16:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

19:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

22:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

Tactical tunable changes:

12:00d_cool 3

Emergency reassert. Cooling staging must not be 0.

12:01engage 1.3; all 1.6; pulse 60; gap 30; wt 1.5

Separate minute. Aggressive all-zone threshold.

16:00d_cool 3

Standard.

16:01engage 1.3; all 1.5; pulse 60; gap 30; wt 1.5

Tightest all-zone.

19:00d_cool 3

Standard.

19:01engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Relax.

22:00d_cool 3

Standard.

22:01engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Default.

Tuesday April 07

Primary crop-band changes:

05:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

12:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

16:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

19:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

22:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

Tactical tunable changes:

05:00d_cool 3

Standard.

05:01engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Default.

12:00d_cool 3

Standard.

12:01engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Moderate.

16:00d_cool 3

Standard.

16:01engage 1.3; all 1.5; pulse 60; gap 30; wt 1.5

Tightest all-zone.

19:00d_cool 3

Standard.

19:01engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Relax.

22:00d_cool 3

Standard.

22:01engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Default.

Wednesday April 08

Primary crop-band changes:

09:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

13:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

16:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

19:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

Tactical tunable changes:

09:00d_cool 3

Standard.

09:01engage 1.3; all 1.6; pulse 60; gap 30; wt 1.5

Aggressive.

13:00d_cool 3

Standard.

13:01engage 1.3; all 1.5; pulse 60; gap 30; wt 1.5

Tight all-zone.

16:00d_cool 3

Standard.

16:01engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Moderate.

19:00d_cool 3

Standard.

19:01engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Default.


🌆 Evening Cycle (6:01 PM) — iris-20260406-1800

Status

validated

Outcome score

8/10

Changed parameters

temp_low, vpd_high, vpd_hysteresis, mister_engage_kpa, mister_all_kpa, mister_pulse_gap_s

Result: Previous evening plan restored complete same-timestamp transitions successfully. Plan coverage validation is now complete at 13 of 13 transitions, active setpoints remained non-zero through the night, dawn cold stress stayed at 0h, and the greenhouse entered this cycle in a healthy HEAT_S1_HUM_IDLE posture. Remaining issue: today and tomorrow still carry strong afternoon dry-air VPD risk, so controller health is improved but climate stress remains weather-driven.

Reflection

Validating previous cycle: iris-20260406-0600

Previous hypothesis: Immediate restoration of zeroed params will prevent frost damage tomorrow and enable misting today. Mon afternoon VPD stress 3-5h (70F/13% is warm-dry per Lesson #9 — temp dominates VPD at extreme dryness). Tue dual threat: frost AM (both heaters), then worst VPD afternoon (72F/12% = outdoor VPD 2.37). Wed thunderstorm at 3PM may actually help VPD. Result: Previous evening plan restored complete same-timestamp transitions successfully. Plan coverage validation is now complete at 13 of 13 transitions, active setpoints remained non-zero through the night, dawn cold stress stayed at 0h, and the greenhouse entered this cycle in a healthy HEAT_S1_HUM_IDLE posture. Remaining issue: today and tomorrow still carry strong afternoon dry-air VPD risk, so controller health is improved but climate stress remains weather-driven. Score: 8/10

New finding: Complete same-timestamp transitions are working again when the controller is healthy. Keep published plans as full 10-parameter transitions at one timestamp, then verify dispatch rather than splitting production waypoints. → Added to Lessons Learned

Hypothesis

Conditions: Evening cycle after dispatcher recovery. Current active setpoints are healthy again: temp_low=58, vpd_high=1.6, vpd_hysteresis=0.3, mister_engage=1.3, mister_all=1.5, pulse_gap=30. Greenhouse has relaxed from the afternoon peak to 78-79F with zone VPD 1.0-1.37. Forecast: Tue dawn frost 35F, then Tue PM 72F/15% RH with VPD 2.31. Wed looks worse: 72-73F with 11-15% RH and 2.49 peak VPD, the harshest window of the next 72h. Testing: Test whether returning to complete same-timestamp transitions works now that the controller is healthy again. Measure at next cycle: current_active_setpoints should still match the live evening values and plan coverage should be complete. Secondary measure: Tue dawn cold stress remains 0h while Wed afternoon VPD stress stays below 6h. Expected outcome: Plan coverage validator passes. Tue cold stress 0h. Tue PM VPD stress 3-5h. Wed PM VPD stress 4-6h with max aggression. No zeroed critical params recur.

Setpoints

Monday April 06

Primary crop-band changes:

18:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

22:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

Tactical tunable changes:

18:00d_cool 3; engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Standard.

22:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.

Tuesday April 07

Primary crop-band changes:

05:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

09:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

12:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

16:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

19:00high 82; low 58; vpd_h 1.8; hyst 0.3

Standard.

22:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

Tactical tunable changes:

05:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.

09:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.

12:00d_cool 3; engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Standard.

16:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 30; wt 1.5

Standard.

19:00d_cool 3; engage 1.4; all 1.8; pulse 60; gap 40; wt 1.5

Standard.

22:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.

Wednesday April 08

Primary crop-band changes:

09:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

12:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

15:00high 82; low 58; vpd_h 1.6; hyst 0.3

Standard.

19:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

22:00high 82; low 58; vpd_h 2; hyst 0.3

Standard.

Tactical tunable changes:

09:00d_cool 3; engage 1.3; all 1.6; pulse 60; gap 30; wt 1.5

Standard.

12:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 30; wt 1.5

Standard.

15:00d_cool 3; engage 1.3; all 1.5; pulse 60; gap 30; wt 1.5

Standard.

19:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.

22:00d_cool 3; engage 1.6; all 2; pulse 60; gap 45; wt 1.5

Standard.


End-of-Day Summary

Climate

Temperature

54.9–82.4°F; avg 66.2°F

VPD

0.31–2.58 kPa; avg 0.87 kPa

Relative humidity

28.4–80.4%

Stress Hours

  • Heat stress (>85°F): 7.8h
  • VPD stress (>2.0 kPa): 10.6h
  • Cold stress (<55°F): 13.6h

Economics

Electric

USD 0.20

Gas

USD 0.19

Water

USD 0.330

Total

USD 0.72

Equipment Runtimes

Fan 11281 min

Primary exhaust runtime.

Fan 21280 min

Secondary exhaust runtime.

Vent187 min

Intake vent runtime.

Fog64 min

Fogger runtime.

Heat 1 electric434 min

Electric heater runtime.

Heat 2 gas18 min

Gas heater runtime.

Grow lights2454 min

Supplemental lighting runtime.

Mister south0.12h

South mister runtime.

Mister west0.17h

West mister runtime.

Mister center0.51h

Center mister runtime.

Water

  • Total: 132 gal
  • Mister: 13 gal

Crop Health (Gemini Vision)

Canna Liliessouth · health 70% · 1 obs

Observation notes are collapsed below to avoid publishing partial vision snippets.

House Plantswest · health 60% · 1 obs

Observation notes are collapsed below to avoid publishing partial vision snippets.

Vanda Orchidscenter · health 60% · 1 obs

Observation notes are collapsed below to avoid publishing partial vision snippets.

Vision observation notes
Canna LiliesGemini Vision notes

[minor leaf discoloration/browning on some leaves, potential for overwatering] Several large potted plants are on the floor. Leaves are generally green, but some plants appear sparse or show minor browning on leaf edges. High soil moisture (58.0%) suggests recent watering or potential overwatering.

House PlantsGemini Vision notes

Various small potted plants are on the shelves. General health is difficult to assess due to distance and image resolution, but they do not appear to be actively thriving. High soil moisture (56.5%) is noted.

Vanda OrchidsGemini Vision notes

[dryness in aerial roots] Aerial roots are visible hanging in the center zone and appear somewhat dry and tangled.

Hourly Pattern

12:0079.5°F; VPD 1.56 kPa

RH 55.1%.

13:0080.2°F; VPD 1.84 kPa

RH 48.0%.

14:0080.9°F; VPD 2.07 kPa

RH 43.1%.

15:0080.8°F; VPD 2.03 kPa

RH 43.9%.

16:0079.5°F; VPD 1.65 kPa

RH 51.9%.

17:0079.0°F; VPD 1.59 kPa

RH 52.8%.

18:0076.2°F; VPD 1.07 kPa

RH 65.4%.

19:0070.4°F; VPD 0.71 kPa

RH 72.2%.

20:0066.4°F; VPD 0.55 kPa

RH 75.4%.

21:0063.8°F; VPD 0.46 kPa

RH 77.3%.

22:0061.9°F; VPD 0.40 kPa

RH 78.9%.

23:0060.3°F; VPD 0.38 kPa

RH 79.0%.

00:0058.9°F; VPD 0.36 kPa

RH 79.0%.

01:0057.6°F; VPD 0.36 kPa

RH 78.2%.

02:0056.3°F; VPD 0.33 kPa

RH 78.6%.

03:0055.6°F; VPD 0.34 kPa

RH 77.6%.

04:0056.7°F; VPD 0.37 kPa

RH 76.4%.

05:0056.6°F; VPD 0.38 kPa

RH 75.5%.

06:0056.6°F; VPD 0.38 kPa

RH 76.0%.

07:0056.3°F; VPD 0.38 kPa

RH 75.4%.

08:0059.9°F; VPD 0.50 kPa

RH 71.5%.

09:0064.4°F; VPD 0.65 kPa

RH 68.7%.

10:0073.4°F; VPD 1.08 kPa

RH 61.9%.

11:0078.9°F; VPD 1.52 kPa

RH 55.4%.

7-Day Stress Context

2026-03-31Heat 3.0h; VPD high 1.7h

Cold stress 12.1h.

2026-04-01Heat 0.5h; VPD high 2.1h

Cold stress 19.5h.

2026-04-02Heat 10.8h; VPD high 8.9h

Cold stress 11.7h.

2026-04-03Heat 6.2h; VPD high 13.2h

Cold stress 16.5h.

2026-04-04Heat 7.6h; VPD high 13.8h

Cold stress 13.0h.

2026-04-05Heat 8.7h; VPD high 13.2h

Cold stress 12.2h.

2026-04-06Heat 7.8h; VPD high 10.6h

Cold stress 13.6h.