May 08, 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 (12:02 AM) — iris-20260508-0000
validated
4/10
none recorded
Result: [backfill] compliance unavailable over plan window 2026-05-08 06:02 → 2026-05-08 10:54
Reflection
Validating previous cycle: iris-20260507-0946
Previous hypothesis: Morning plan for a cool, cloudy-but-drying May 7: avoid repeating yesterday’s saturated/VPD-low posture in the morning, then step into moderate VPD protection during the 13:00-17:00 dry window without overusing gas or trapping heat. Experiment: staged mist/fog posture — conservative before noon, aggressive enough in the dry afternoon, then suppress overnight misting to reduce VPD-low and condensation risk.
{"conditions":{"outdoor_temp_peak_f":71.0,"outdoor_rh_min_pct":22.0,"solar_peak_w_m2":598,"cloud_cover_avg_pct":80,"notes":"cool spring day with heavy cloud cover but dry afternoon air; forecast VPD peaks near 2.0 kPa 15:00-17:00, then saturated overnight."},"stress_windows":[{"kind":"vpd_low","start":"2026-05-07T09:45:00-06:00","end":"2026-05-07T12:00:00-06:00","severity":"medium","mitigation":"hold mist threshold higher and use wider pulse gaps while RH is already 70%+"},{"kind":"vpd_high","start":"2026-05-07T13:00:00-06:00","end":"2026-05-07T17:30:00-06:00","severity":"medium","mitigation":"lower mister_engage_kpa to 1.35 and fog_escalation_kpa to 0.35 with 30s pulse gaps"},{"kind":"vpd_low","start":"2026-05-07T21:00:00-06:00","end":"2026-05-08T07:00:00-06:00","severity":"high","mitigation":"raise mist thresholds, max pulse gap, fog conservative, slight negative heat bias to avoid gas-heavy humidity chasing"}],"rationale":[{"parameter":"mister_engage_kpa","old_value":1.8,"new_value":1.6,"forecast_anchor":"current RH 71% and VPD 0.89 at 09:46","expected_effect":"avoid adding moisture during the already humid morning"},{"parameter":"mister_engage_kpa","old_value":1.6,"new_value":1.35,"forecast_anchor":"outdoor RH 22-29% and VPD 1.5-2.0 from 13:00-17:00","expected_effect":"start VPD recovery before crop-band excursions compound"},{"parameter":"fog_escalation_kpa","old_value":0.5,"new_value":0.35,"forecast_anchor":"dry afternoon but moderate temperature peak only 71F","expected_effect":"allow vent+fog assist if VPD rises while avoiding prolonged sealed heat trapping"},{"parameter":"mister_pulse_gap_s","old_value":60,"new_value":30,"forecast_anchor":"afternoon VPD peak near 2.0 kPa with cloud-filtered solar","expected_effect":"reduce VPD-high stress below 1h without creating overnight VPD-low"},{"parameter":"bias_heat","old_value":0,"new_value":-1,"forecast_anchor":"gas cost yesterday 8.453 therms vs 7d avg 5.39 and overnight outdoor VPD near 0.1-0.4","expected_effect":"reduce gas-heavy humidity chasing overnight while keeping safety rails intact"}]}Result: [backfill] compliance unavailable over plan window 2026-05-08 06:02 → 2026-05-08 10:54 Score: 4/10
Hypothesis
Testing: Test whether preemptive, moderate misting (mister_engage_kpa=1.5) can prevent VPD from exceeding 1.5 kPa during the afternoon solar peak without inducing condensation risks. Expected outcome: Maintain humidity within band despite rising solar intensity and high outdoor temperature peak; prevent VPD spikes during the midday solar peak (expected ~14:00-15:00).
Conditions (structured)
72.0°F
29.0%
859.0 W/m²
5.0%
Clear, sunny spring day with significant afternoon solar gain and falling outdoor humidity.
Expected stress windows
lower mister_engage_kpa to 1.5 and mister_all_kpa to 2.0 to prepare for midday VPD climb
Parameter rationale
Pre-condition humidity to prevent VPD overshoot during the midday solar peak.
Setpoints
Friday May 08
Primary crop-band changes:
Transition to early morning posture: moderate humidity reten
Transition to midday posture: more aggressive misting to cou
Transition to peak afternoon posture: lowest engagement thre
Tactical tunable changes:
Transition to early morning posture: moderate humidity reten
Transition to midday posture: more aggressive misting to cou
Transition to peak afternoon posture: lowest engagement thre
Changed secondary parameters:
initial 3.5
initial 0.5
initial 0
initial 0
initial 0.8
initial 300
initial 60
initial 360
initial 120
initial 180
initial 120
initial 240
initial 90
initial 15
initial 90
initial 500
initial 120
0.8 → 0.5
0.5 → 0.4
Full secondary parameter dump
Value 3.5.
Value 0.5.
Value 0.
Value 0.
Value 0.8.
Value 300.
Value 60.
Value 360.
Value 120.
Value 180.
Value 120.
Value 240.
Value 90.
Value 15.
Value 90.
Value 500.
Value 120.
Value 3.5.
Value 0.5.
Value 0.
Value 0.
Value 0.5.
Value 300.
Value 60.
Value 360.
Value 120.
Value 180.
Value 120.
Value 240.
Value 90.
Value 15.
Value 90.
Value 500.
Value 120.
Value 3.5.
Value 0.5.
Value 0.
Value 0.
Value 0.4.
Value 300.
Value 60.
Value 360.
Value 120.
Value 180.
Value 120.
Value 240.
Value 90.
Value 15.
Value 90.
Value 500.
Value 120.
🌅 Morning Cycle (4:54 AM) — iris-20260508-0500
validated
3/10
none recorded
Result: [backfill] avg compliance 56.2% (stress 13.7 h) over plan window 2026-05-08 10:54 → 2026-05-09 03:32
Reflection
Validating previous cycle: iris-20260507-2116
Previous hypothesis: SUNSET overnight recovery plan for the missed 20:02 trigger. Tonight’s main challenge is low-VPD/condensation risk during a mild but humid overnight forecast, with enough heating demand near pre-dawn to risk heater→vent oscillation. I am suppressing overnight mist/fog, keeping sealed mist windows short, using bias_cool +3.5 to +4.0 to prevent venting immediately after heat cycles, and adding only a modest pre-dawn heat bias to protect dew-point margin without chasing an expensive warm-night target. If the SUNRISE cycle misses, the 09:30 fallback shifts to dry-day VPD posture for Friday’s clear, dry midday. Note: the MCP registry rejected stale prompt-range values for mister_all_kpa >2.5 and vpd_hysteresis >0.5, so this plan uses the registry-safe maxima. Result: [backfill] avg compliance 56.2% (stress 13.7 h) over plan window 2026-05-08 10:54 → 2026-05-09 03:32 Score: 3/10
Hypothesis
Testing: Test if lowering mister_engage_kpa to 1.3 at 09:30 can pre-condition humidity to prevent VPD from exceeding 1.5 kPa during the afternoon solar peak. Expected outcome: Maintain VPD within band (0.3-0.6 kPa) by preemptively lowering misting engagement threshold in response to the predicted afternoon VPD ramp. Prevent high-stress VPD spikes during the solar peak (12:00-16:00) where VPD is forecast to hit 1.98 kPa.
Conditions (structured)
72.0°F
25.0%
858.0 W/m²
5.0%
Sunny spring day with increasing solar radiation and falling outdoor humidity.
Expected stress windows
lower mister_engage_kpa to 1.3
Parameter rationale
Earlier misting activation to prevent VPD from rapidly exceeding the 0.6 kPa threshold during the midday solar peak.
Setpoints
Friday May 08
Primary crop-band changes:
Pre-conditioning for forecasted afternoon VPD ramp (forecast
Reverting to standard engagement after peak solar intensity
Tactical tunable changes:
Pre-conditioning for forecasted afternoon VPD ramp (forecast
Reverting to standard engagement after peak solar intensity
Changed secondary parameters:
initial 3.5
initial 0.5
initial 0
initial 0
initial 0.5
initial 300
initial 60
initial 360
initial 120
initial 180
initial 120
initial 240
initial 90
initial 15
initial 90
initial 500
initial 120
Full secondary parameter dump
Value 3.5.
Value 0.5.
Value 0.
Value 0.
Value 0.5.
Value 300.
Value 60.
Value 360.
Value 120.
Value 180.
Value 120.
Value 240.
Value 90.
Value 15.
Value 90.
Value 500.
Value 120.
Value 3.5.
Value 0.5.
Value 0.
Value 0.
Value 0.5.
Value 300.
Value 60.
Value 360.
Value 120.
Value 180.
Value 120.
Value 240.
Value 90.
Value 15.
Value 90.
Value 500.
Value 120.
🌅 Morning Cycle (5:55 AM) — iris-20260508-0552
validated
4/10
none recorded
Result: Planner score 60.2 with 56.2% both-axis compliance. Temp compliance 68.3%, VPD compliance 62.3%; dominant stress was VPD-low at 13.73h, with 0h heat/cold/VPD-high stress. The dry-afternoon forecast did not materialize indoors (peak VPD only 1.54 kPa; RH stayed much higher than expected), so aggressive dry-day staging was unnecessary and prolonged low-VPD saturation. Cost was good at USD 3.55, below the 7d average USD 5.45; utilities were split electric USD 2.24, gas USD 1.31, water USD 0.00 reported by meter while ESP32 mister counter showed 422 gal-equivalent misting runtime. Dew point margin dipped to 4.6F for 1.3h, confirming over-humidification risk.
Reflection
Validating previous cycle: iris-20260507-2116
Previous hypothesis: SUNSET overnight recovery plan for the missed 20:02 trigger. Tonight’s main challenge is low-VPD/condensation risk during a mild but humid overnight forecast, with enough heating demand near pre-dawn to risk heater→vent oscillation. I am suppressing overnight mist/fog, keeping sealed mist windows short, using bias_cool +3.5 to +4.0 to prevent venting immediately after heat cycles, and adding only a modest pre-dawn heat bias to protect dew-point margin without chasing an expensive warm-night target. If the SUNRISE cycle misses, the 09:30 fallback shifts to dry-day VPD posture for Friday’s clear, dry midday. Note: the MCP registry rejected stale prompt-range values for mister_all_kpa >2.5 and vpd_hysteresis >0.5, so this plan uses the registry-safe maxima. Result: Planner score 60.2 with 56.2% both-axis compliance. Temp compliance 68.3%, VPD compliance 62.3%; dominant stress was VPD-low at 13.73h, with 0h heat/cold/VPD-high stress. The dry-afternoon forecast did not materialize indoors (peak VPD only 1.54 kPa; RH stayed much higher than expected), so aggressive dry-day staging was unnecessary and prolonged low-VPD saturation. Cost was good at USD 3.55, below the 7d average USD 5.45; utilities were split electric USD 2.24, gas USD 1.31, water USD 0.00 reported by meter while ESP32 mister counter showed 422 gal-equivalent misting runtime. Dew point margin dipped to 4.6F for 1.3h, confirming over-humidification risk. Score: 4/10
New finding: When forecast calls for a dry afternoon but morning/indoor RH remains elevated and live VPD stays near/below band, avoid pre-staging severe-dry mist/fog settings too early. Use a sharper midday ramp tied to actual dry-air arrival, and restore wider evening gaps quickly to prevent VPD-low saturation. → Added to Lessons Learned
Hypothesis
Testing: Staged humidity posture: prove that delaying aggressive misting until the live morning VPD ramp avoids VPD-low recurrence while still preventing Friday afternoon VPD-high stress; Saturday waypoints pre-stage a separate severe-dry posture. Expected outcome: Friday planner_score >68, both-axis compliance >70%, VPD-low stress <1.5h, VPD-high stress <1.5h, dp_risk_hours <0.5h, cost <USD 5.50. Saturday should enter the severe dry window with VPD recovery already active.
Conditions (structured)
73.0°F
24.0%
856.0 W/m²
4.0%
clear spring day; current indoor VPD 0.44 kPa near low band, but outdoor VPD rises above 2.0 kPa late afternoon; Saturday forecast is much drier and hotter
Expected stress windows
hold conservative mist thresholds and wider gaps until live VPD rises
lower mister_engage_kpa to 1.25-1.35, pulse gaps 25-30s, fog_escalation_kpa 0.30-0.35 during the dry solar peak
pre-stage aggressive Saturday dry-day posture: engage 1.15-1.20, gap 15-20s, fog_escalation_kpa 0.15-0.20
Parameter rationale
prevent VPD-high stress while avoiding morning misting when indoor VPD is 0.44 kPa
provide afternoon recovery without running 30s gaps before the VPD ramp confirms
allow concurrent vent+fog assist if VPD climbs while keeping morning fog conservative
bias water to driest productive zones instead of overusing center
reduce deadband enough to improve VPD recovery without causing low-VPD overshoot
Setpoints
Friday May 08
Primary crop-band changes:
Dawn is humid and VPD is near the low band; avoid repeating
Morning solar ramp begins; start pre-conditioning only after
Peak clear-sky dry ramp; prioritize VPD recovery while limit
Late-afternoon VPD remains high but solar is declining; ease
Fog window is ending and solar load is dropping; taper humid
Night posture: avoid the VPD-low/condensation pattern that d
Tactical tunable changes:
Dawn is humid and VPD is near the low band; avoid repeating
Morning solar ramp begins; start pre-conditioning only after
Peak clear-sky dry ramp; prioritize VPD recovery while limit
Late-afternoon VPD remains high but solar is declining; ease
Fog window is ending and solar load is dropping; taper humid
Night posture: avoid the VPD-low/condensation pattern that d
Saturday May 09
Primary crop-band changes:
Saturday pre-stage for severe dry air; RH forecast falls bel
Saturday peak stress: RH 8-12%, VPD near 3 kPa, solar near 8
Tactical tunable changes:
Saturday pre-stage for severe dry air; RH forecast falls bel
Saturday peak stress: RH 8-12%, VPD near 3 kPa, solar near 8
Changed secondary parameters:
initial 3.5
initial 0
initial 0
initial 0
initial 0.6
initial 120
initial 45
initial 360
initial 120
initial 180
initial 120
initial 240
initial 90
initial 15
initial 45
initial 500
initial 90
3.5 → 3
0.6 → 0.45
120 → 90
90 → 75
3 → 2.5
0.45 → 0.3
90 → 60
45 → 60
180 → 120
75 → 60
0.3 → 0.35
2.5 → 3
0.35 → 0.5
60 → 90
60 → 45
120 → 180
60 → 75
3 → 3.5
0.5 → 0.75
90 → 180
240 → 180
45 → 60
75 → 90
3.5 → 2
0.75 → 0.2
180 → 45
45 → 60
180 → 120
180 → 240
60 → 30
90 → 45
2 → 1.5
0.2 → 0.15
45 → 30
Full secondary parameter dump
Value 3.5.
Value 0.
Value 0.
Value 0.
Value 0.6.
Value 120.
Value 45.
Value 360.
Value 120.
Value 180.
Value 120.
Value 240.
Value 90.
Value 15.
Value 45.
Value 500.
Value 90.
Value 3.
Value 0.
Value 0.
Value 0.
Value 0.45.
Value 90.
Value 45.
Value 360.
Value 120.
Value 180.
Value 120.
Value 240.
Value 90.
Value 15.
Value 45.
Value 500.
Value 75.
Value 2.5.
Value 0.
Value 0.
Value 0.
Value 0.3.
Value 60.
Value 60.
Value 360.
Value 120.
Value 120.
Value 120.
Value 240.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 2.5.
Value 0.
Value 0.
Value 0.
Value 0.35.
Value 60.
Value 60.
Value 360.
Value 120.
Value 120.
Value 120.
Value 240.
Value 90.
Value 15.
Value 45.
Value 500.
Value 60.
Value 3.
Value 0.
Value 0.
Value 0.
Value 0.5.
Value 90.
Value 45.
Value 360.
Value 120.
Value 180.
Value 120.
Value 240.
Value 90.
Value 15.
Value 45.
Value 500.
Value 75.
Value 3.5.
Value 0.
Value 0.
Value 0.
Value 0.75.
Value 180.
Value 45.
Value 360.
Value 120.
Value 180.
Value 120.
Value 180.
Value 90.
Value 15.
Value 60.
Value 500.
Value 90.
Value 2.
Value 0.
Value 0.
Value 0.
Value 0.2.
Value 45.
Value 60.
Value 360.
Value 120.
Value 120.
Value 120.
Value 240.
Value 90.
Value 15.
Value 30.
Value 500.
Value 45.
Value 1.5.
Value 0.
Value 0.
Value 0.
Value 0.15.
Value 45.
Value 60.
Value 360.
Value 120.
Value 120.
Value 120.
Value 240.
Value 90.
Value 15.
Value 30.
Value 500.
Value 30.
🌙 Overnight Cycle (9:32 PM) — iris-20260508-2132
validated
3/10
none recorded
Result: [backfill] avg compliance 53.7% (stress 17.6 h) over plan window 2026-05-09 03:32 → 2026-05-10 07:50
Reflection
Validating previous cycle: iris-20260508-0552
Previous hypothesis: Morning plan for a clear, drying Friday after yesterday’s VPD-low failure: start conservative while indoor VPD is still near the low band, then step into measured dry-day protection from late morning through the fog window. The main tradeoff is avoiding another saturated overnight while still pre-conditioning before the 12:00-18:00 dry-air window. Saturday is materially harsher, so the final waypoints stage a more aggressive posture before the forecast RH 8-12% / solar 850-890 W/m² window.
{"conditions":{"outdoor_temp_peak_f":73.0,"outdoor_rh_min_pct":24.0,"solar_peak_w_m2":856,"cloud_cover_avg_pct":4,"notes":"clear spring day; current indoor VPD 0.44 kPa near low band, but outdoor VPD rises above 2.0 kPa late afternoon; Saturday forecast is much drier and hotter"},"stress_windows":[{"kind":"vpd_low","start":"2026-05-08T06:00:00-06:00","end":"2026-05-08T09:30:00-06:00","severity":"medium","mitigation":"hold conservative mist thresholds and wider gaps until live VPD rises"},{"kind":"vpd_high","start":"2026-05-08T11:30:00-06:00","end":"2026-05-08T18:30:00-06:00","severity":"medium","mitigation":"lower mister_engage_kpa to 1.25-1.35, pulse gaps 25-30s, fog_escalation_kpa 0.30-0.35 during the dry solar peak"},{"kind":"vpd_high","start":"2026-05-09T10:00:00-06:00","end":"2026-05-09T18:00:00-06:00","severity":"high","mitigation":"pre-stage aggressive Saturday dry-day posture: engage 1.15-1.20, gap 15-20s, fog_escalation_kpa 0.15-0.20"}],"rationale":[{"parameter":"mister_engage_kpa","old_value":1.7,"new_value":1.25,"forecast_anchor":"Fri 12:00-18:00 outdoor RH 24-42%, VPD 1.21-2.08, solar peak 856 W/m2","expected_effect":"prevent VPD-high stress while avoiding morning misting when indoor VPD is 0.44 kPa"},{"parameter":"mister_pulse_gap_s","old_value":55,"new_value":25,"forecast_anchor":"dry afternoon starts near noon but yesterday had 6.43h VPD-low from over-humid posture","expected_effect":"provide afternoon recovery without running 30s gaps before the VPD ramp confirms"},{"parameter":"fog_escalation_kpa","old_value":0.5,"new_value":0.30,"forecast_anchor":"clear dry afternoon with vent-driven humidity loss expected after noon","expected_effect":"allow concurrent vent+fog assist if VPD climbs while keeping morning fog conservative"},{"parameter":"mister_vpd_weight","old_value":1.6,"new_value":2.0,"forecast_anchor":"south/west become driest under clear solar and south misters are most effective","expected_effect":"bias water to driest productive zones instead of overusing center"},{"parameter":"vpd_hysteresis","old_value":0.5,"new_value":0.4,"forecast_anchor":"Friday dry ramp followed by Saturday severe dry day","expected_effect":"reduce deadband enough to improve VPD recovery without causing low-VPD overshoot"}]}Result: [backfill] avg compliance 53.7% (stress 17.6 h) over plan window 2026-05-09 03:32 → 2026-05-10 07:50 Score: 3/10
Hypothesis
Testing: Recovery holdover only; no new climate experiment. Expected outcome: Climate should remain under existing safe controller behavior; planner reliability work should prevent this path from recurring.
Setpoints
Friday May 08
Primary crop-band changes:
Operator recovery holdover: preserve current safe tunables a
Tactical tunable changes:
Operator recovery holdover: preserve current safe tunables a
Saturday May 09
Primary crop-band changes:
Overnight recovery holdover: keep conservative current tunab
Pre-dawn recovery holdover until normal SUNRISE planning rep
Tactical tunable changes:
Overnight recovery holdover: keep conservative current tunab
Pre-dawn recovery holdover until normal SUNRISE planning rep
Changed secondary parameters:
initial 3.5
initial 0
initial 5
initial 300000
initial 0
initial 0
initial 0.75
initial 1
initial 180
initial 45
initial 360
initial 120
initial 180
initial 120
initial 1200
initial 180
initial 90
initial 15
initial 60
initial 180
initial 60
initial 500
initial 1
initial 1
initial 1
initial 1.8
initial 90
Full secondary parameter dump
Value 3.5.
Value 0.
Value 5.
Value 300000.
Value 0.
Value 0.
Value 0.75.
Value 1.
Value 180.
Value 45.
Value 360.
Value 120.
Value 180.
Value 120.
Value 1200.
Value 180.
Value 90.
Value 15.
Value 60.
Value 180.
Value 60.
Value 500.
Value 1.
Value 1.
Value 1.
Value 1.8.
Value 90.
Value 3.5.
Value 0.
Value 5.
Value 300000.
Value 0.
Value 0.
Value 0.75.
Value 1.
Value 180.
Value 45.
Value 360.
Value 120.
Value 180.
Value 120.
Value 1200.
Value 180.
Value 90.
Value 15.
Value 60.
Value 180.
Value 60.
Value 500.
Value 1.
Value 1.
Value 1.
Value 1.8.
Value 90.
Value 3.5.
Value 0.
Value 5.
Value 300000.
Value 0.
Value 0.
Value 0.75.
Value 1.
Value 180.
Value 45.
Value 360.
Value 120.
Value 180.
Value 120.
Value 1200.
Value 180.
Value 90.
Value 15.
Value 60.
Value 180.
Value 60.
Value 500.
Value 1.
Value 1.
Value 1.
Value 1.8.
Value 90.
End-of-Day Summary
Climate
61.9–80.4°F; avg 69.7°F
0.30–1.54 kPa; avg 0.70 kPa
52.1–84.9%
Stress Hours
- Heat stress (>85°F): 6.5h
- VPD stress (>2.0 kPa): 7.1h
- Cold stress (<55°F): 1.0h
Economics
USD 0.22
USD 1.31
USD 2.040
USD 3.57
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: 422 gal
- Mister: 422 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 on the floor in the south zone look generally okay, but hard to see details in the dark.
[browning, desiccation] Extensive browning and drying of aerial roots visible. Leaves appear somewhat pale.
Seedlings appear healthy and are establishing well.
Seedlings look okay, but monitor for any signs of stress.
Seedlings are present but appear slightly less vigorous than the lettuce.
Hourly Pattern
RH 61.5%.
RH 60.1%.
RH 61.4%.
RH 60.9%.
RH 63.8%.
RH 67.9%.
RH 74.3%.
RH 78.1%.
RH 80.3%.
RH 82.9%.
RH 84.6%.
RH 80.5%.
RH 81.9%.
RH 82.5%.
RH 81.6%.
RH 80.5%.
RH 80.3%.
RH 79.9%.
RH 79.0%.
RH 75.7%.
RH 72.3%.
RH 70.1%.
RH 68.3%.
RH 68.2%.
7-Day Stress Context
Cold stress 2.2h.
Cold stress 1.0h.
Cold stress 2.5h.
Cold stress 7.7h.
Cold stress 7.1h.
Cold stress 1.8h.
Cold stress 1.0h.