June 02, 2026

Generated lab notebook from daily_summary, plan_journal, plan_delivery_log, and setpoint audit data. It is intentionally chronological and may include in-progress cycles before validation.

Planner Execution Ledger

Planner checkpoints can acknowledge that the active plan is still suitable without writing a new public plan ID. Those no-change decisions are part of the audit trail.

Delivery events

9

Plan writes

3

No-change acknowledgements

6

Pending

0

EventDeliveredTypeStatusNote
End-of-day review and reset00:15MIDNIGHTplan_writtenWrote public plan iris-20260602-0015. Resolved 00:17 MDT.
Morning planning cycle05:33SUNRISEplan_writtenWrote public plan iris-20260602-0533. Resolved 05:36 MDT.
Solar peak planning checkpoint12:59SOLAR_MAXackedAcknowledged: SOLAR_MAX checked: live temp 81.0F is below temp_high 84.3F, VPD 1.45 kPa is at the high edge with only minimal band error, dew margin is healthy at 15.2F, controller is IDLE, and the active SUNRISE plan already has band-coupled moisture plus cooling readiness through the afternoon. No tunable nudge warranted. Resolved 12:59 MDT.
Forecast deviation13:33FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION assessed: observed solar is far below forecast (85-91 W/m2 vs ~930 W/m2), consistent with a cloud/solar nowcast miss rather than equipment failure. Live house is stable in IDLE at 79.7F, VPD 1.32 kPa, RH 62%, dew margin 14.2F, average VPD inside the 0.89-1.44 band, and all climate relays are off. No tunable change warranted; do not tune for lower solar while temp/VPD are in band. Resolved 13:33 MDT.
Peak Stress14:59TRANSITIONackedAcknowledged: Peak-stress transition checked: current house is 81.7F with VPD 1.44 kPa, only slightly above the 1.38 high band, dew margin is safe at 14.4F, and controller is already in SEALED_MIST_S1 with the active SUNRISE plan's band-coupled dry-ramp posture in force. Existing setpoints already keep moisture/fog support open near the band (mister_engage_kpa 1.23, mister_all_kpa 1.43, fog_escalation_kpa 0.20, gap 30s, direct-wet override enabled), while heat stress is not active... Resolved 15:00 MDT.
Forecast deviation15:04FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION cloud-cover miss assessed: observed clearing/solar (~566 W/m2) versus forecast overcast, but live house remains inside served bands (82.6F vs 85F high, VPD 1.30 vs 1.37 high), dew margin is safe (12.5F), controller is IDLE/resource, and all climate relays are off coherently. Current active dry-ramp plan already has maximum cooling readiness and band-coupled moisture, so no tactical tunable change is warranted. Resolved 15:05 MDT.
Forecast deviation16:06FORECAST_DEVIATIONackedAcknowledged: FORECAST_DEVIATION reviewed: live VPD 1.28 kPa is 1.47 kPa below the 2.75 kPa forecast and below the active vpd_high 1.33 kPa, matching the known positive VPD forecast bias/over-dry forecast rather than a new dry regime. Current temp 83.7F is below temp_high 85F, dew margin 12.1F is safe, and equipment state is coherent for VENTILATE with vent/fan2 plus fog assist. No tunable change warranted. Resolved 16:06 MDT.
Decline19:25TRANSITIONackedAcknowledged: TRANSITION decline checked live climate/equipment against active plan and setpoints. Greenhouse is still in expected late dry-recovery shoulder: 76.8F, VPD 1.57 kPa, dew margin 19.8F, VENTILATE with both fans and vent on. Current VPD remains above band with healthy dew margin, so unwinding moisture immediately would fight the active plan’s explicit instruction to avoid clock-only unwind while observed VPD remains high. Existing waypoints already step toward evening/overnight unwind at 21:00 and 23:30... Resolved 19:25 MDT.
Evening planning cycle20:25SUNSETplan_writtenWrote public plan iris-20260602-2025. Resolved 20:27 MDT.

🌅 Morning Cycle (12:17 AM) — iris-20260602-0015

Status

validated

Outcome score

2/10

Changed parameters

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

Reflection

Validating previous cycle: iris-20260601-0534

Previous hypothesis: SUNRISE plan for Monday 2026-06-01. Yesterday’s full day was poor: score 44.3, both-axis compliance 38.1%, temp 54.7%, VPD 43.1%, with VPD-high 8.23h and heat 6.70h dominant. The completed SUNSET window was much better, evaluated 9/10 versus anchor 7: it reached 98.1% both-axis compliance and 99.0% VPD compliance with no VPD-low or dew-risk, but still carried 346 guardrail events and 162 VPD-high guardrail events, so the next dry-ramp plan must be guardrail-clean rather than relying on dispatcher clamps. Today’s forecast is another hot/dry high-solar ramp: raw peak 83F, RH 15%, VPD 3.2 kPa, solar near 850-870 W/m2 with forecast VPD bias still likely high. Current house is safe and in band at 65F, VPD 0.69, dew margin 11F, IDLE… Result: REVISED anchor-aligned evaluation. Window scorecard had score 64.0 and decent temp compliance, but deterministic anchor is 2 because the midnight reset generated 248 guardrail events and still failed the humidity objective: VPD-low reached 1.03h before the next plan and the dry-ramp handoff remained guardrail-sensitive. This is a safety-preserving but guardrail-dirty partial reset, not a clean climate success. Score: 2/10

Hypothesis

Testing: Test a two-stage reset: strict humid pre-dawn wet suppression, then band-coupled Tuesday dry-ramp support that avoids repeating VPD-high moisture-guardrail holds while preserving 0h dp-risk. Expected outcome: For Tuesday: keep dp-risk 0h, VPD-low under 0.5h, VPD-high under 2h, both-axis compliance above 75%, and cost below USD 4. If Wednesday fallback is used, prioritize VPD-high reduction and dew safety over cost.

Conditions

Outdoor peak

80.2°F

RH minimum

34.0%

Solar peak

925.0 W/m²

Cloud average

64.0%

Humid pre-dawn, then Tue dry ramp to 80F/RH34/VPD 2.25 raw; forecast VPD likely high. Wed fallback turns hotter/drier with 83F by noon, RH 26%, solar 850+.

Expected stress windows

vpd_lowmedium · 2026-06-02T00:15:00-06:00 to 2026-06-02T08:30:00-06:00

high dew floor, high resource sensitivity, minimal mist duty while forecast outdoor VPD is 0.17-0.56 kPa

vpd_highmedium · 2026-06-02T11:30:00-06:00 to 2026-06-02T21:30:00-06:00

restore band-coupled moisture near vpd_high+0.05/all+0.25, fog 0.20, and keep evening wet availability until observed recovery

heatmedium · 2026-06-02T12:00:00-06:00 to 2026-06-02T19:00:00-06:00

solar-aware cooling lead but avoid extreme all-fan aggression unless live heat materializes

vpd_highhigh · 2026-06-03T09:00:00-06:00 to 2026-06-03T18:30:00-06:00

fallback severe dry-ramp posture if SUNRISE is delayed: short gaps, high water budget, low fog escalation, high cooling lead

Parameter rationale

mister_pulse_gap_s41.25 → 60.0; Pre-dawn RH 73-88% and outdoor VPD 0.17-0.56 kPa through 09:00.

Avoid VPD-low and keep dp-risk at 0h before sunrise.

direct_wet_stress_min_dew_margin_f11.0 → 14.0; Cool humid pre-dawn with dew margin currently safe but narrowing risk possible.

Block unnecessary wetting until the dry ramp begins.

mister_engage_kpa1.26 → 1.23; Tuesday midday/evening VPD forecast rises above the 1.18 kPa high band with safe dew margin expected.

Make S1 mist eligible near the active band without relying on moisture guardrail clamps.

mister_all_kpa1.46 → 1.43; Whole-house dry pressure expected from noon through evening, with east crop VPD most sensitive.

Escalate all-zone mist before VPD drifts far above band.

fog_escalation_kpa0.2 → 0.2; Tuesday dry ramp is moderate and forecast VPD is biased high; Wednesday fallback is severe.

Keep fog available for real VPD-high without causing pre-dawn overshoot.

cool_stage2_over_high_f1.905 → 0.8; Tue solar peaks near 900 W/m2 and Wed fallback exceeds 850 W/m2 before dry heat.

Bring fan2 readiness closer to the high edge during dry solar windows.

mister_water_budget_gal160.0 → 220.0; Tuesday is moderate dry; Wednesday fallback may need severe dry-day headroom.

Avoid budget clipping during VPD-high recovery while not wasting water pre-dawn.

Setpoints

Tuesday June 02

Primary crop-band changes:

TimeValuesNote
00:25hyst 0.22Post-midnight safe in-band reset: suppress wet carryover whi
04:30hyst 0.22499999999999998Humid pre-dawn guard: forecast VPD bottoms near 0.17-0.36 kP
08:30hyst 0.20999999999999996Sunrise ramp handoff: remain cautious while live VPD confirm
11:30hyst 0.195Midday dry-ramp posture: VPD crosses the high band and solar
16:00hyst 0.19Late dry tail: forecast VPD peaks again around 16:00-19:00,
21:30hyst 0.215Evening unwind only after expected recovery: reduce wet duty

Tactical tunable changes:

TimeValuesNote
00:25s2 2.04; cool_exit 2.14; all_fans 0; dw_stress 0; dw_until 19; fog_stress 0; fog_until 19; engage 1.38; all 1.63; pulse 30; gap 60; wt 1.1666666666666665Post-midnight safe in-band reset: suppress wet carryover whi
04:30s2 2.0700000000000003; cool_exit 2.23; all_fans 0; dw_stress 0; dw_until 19; fog_stress 0; fog_until 19; engage 1.48; all 1.7799999999999998; pulse 30; gap 60; wt 1.0666666666666667Humid pre-dawn guard: forecast VPD bottoms near 0.17-0.36 kP
08:30s2 1.8775000000000002; cool_exit 1.96; all_fans 0; dw_stress 0; dw_until 20; fog_stress 0; fog_until 20; engage 1.2999999999999998; all 1.5299999999999998; pulse 30; gap 56.25; wt 1.4333333333333333Sunrise ramp handoff: remain cautious while live VPD confirm
11:30s2 1.425; cool_exit 1.69; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.23; all 1.43; pulse 45; gap 33.75; wt 2.0166666666666666Midday dry-ramp posture: VPD crosses the high band and solar
16:00s2 1.3600000000000003; cool_exit 1.6; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.23; all 1.43; pulse 48.75; gap 30; wt 2.166666666666667Late dry tail: forecast VPD peaks again around 16:00-19:00,
21:30s2 1.995; cool_exit 2.05; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 22; engage 1.2999999999999998; all 1.5299999999999998; pulse 30; gap 60; wt 1.4166666666666667Evening unwind only after expected recovery: reduce wet duty

Wednesday June 03

Primary crop-band changes:

TimeValuesNote
06:00hyst 0.205Wednesday dawn fallback: avoid over-wetting a low-VPD dawn,
08:30hyst 0.19Wednesday severe dry fallback begins: forecast reaches 80F/R
11:00hyst 0.185Wednesday missed-SUNRISE severe hot/dry safety net: high VPD

Tactical tunable changes:

TimeValuesNote
06:00s2 1.71; cool_exit 1.87; all_fans 0; dw_stress 0; dw_until 21; fog_stress 0; fog_until 21; engage 1.28; all 1.5299999999999998; pulse 33.75; gap 48.75; wt 1.5333333333333332Wednesday dawn fallback: avoid over-wetting a low-VPD dawn,
08:30s2 1.2075; cool_exit 1.6; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.23; all 1.43; pulse 56.25; gap 26.25; wt 2.3499999999999996Wednesday severe dry fallback begins: forecast reaches 80F/R
11:00s2 1.0050000000000001; cool_exit 1.51; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.23; all 1.38; pulse 67.5; gap 22.5; wt 2.6499999999999995Wednesday missed-SUNRISE severe hot/dry safety net: high VPD

Changed secondary parameters:

TimeParameterChange
00:25cold_vent_guard_delta_finitial 10
00:25direct_wet_stress_min_dew_margin_finitial 13
00:25direct_wet_stress_vpd_margin_kpainitial 0.2
00:25dwell_gate_msinitial 300000
00:25enthalpy_closeinitial 1
00:25enthalpy_openinitial -2
00:25fog_escalation_kpainitial 0.5
00:25fog_stress_min_dew_margin_finitial 13
00:25heat_hysteresisinitial 1.1
00:25min_fog_off_sinitial 126
00:25min_fog_on_sinitial 39
00:25mist_backoff_sinitial 600
00:25mist_max_closed_vent_sinitial 120
00:25mist_thermal_relief_sinitial 90
00:25mister_all_delay_sinitial 102
00:25mister_engage_delay_sinitial 51
00:25mister_water_budget_galinitial 120
00:25outdoor_staleness_max_sinitial 600
00:25sw_dwell_gate_enabledinitial 1
00:25sw_fog_closes_ventinitial 1
00:25sw_mister_closes_ventinitial 0
00:25sw_summer_vent_enabledinitial 1
00:25temp_hysteresisinitial 2.14
00:25vent_prefer_dp_delta_finitial 8
00:25vent_prefer_temp_delta_finitial 6
00:25vpd_watch_dwell_sinitial 75
04:30cold_vent_guard_delta_f10 → 11
04:30direct_wet_stress_min_dew_margin_f13 → 14
04:30direct_wet_stress_vpd_margin_kpa0.2 → 0.3
04:30dwell_gate_ms300000 → 315000
04:30fog_stress_min_dew_margin_f13 → 14
04:30min_fog_off_s126 → 138
04:30min_fog_on_s39 → 34.5
04:30mister_all_delay_s102 → 106.5
04:30mister_engage_delay_s51 → 53.25
04:30mister_water_budget_gal120 → 100
04:30temp_hysteresis2.14 → 2.23
04:30vent_prefer_dp_delta_f8 → 9
04:30vent_prefer_temp_delta_f6 → 7
04:30vpd_watch_dwell_s75 → 78.75
08:30cold_vent_guard_delta_f11 → 9
08:30direct_wet_stress_min_dew_margin_f14 → 11
08:30direct_wet_stress_vpd_margin_kpa0.3 → 0.12
08:30dwell_gate_ms315000 → 270000
08:30fog_escalation_kpa0.5 → 0.3
08:30fog_stress_min_dew_margin_f14 → 11
08:30min_fog_off_s138 → 96
08:30min_fog_on_s34.5 → 50.25
08:30mister_all_delay_s106.5 → 93
08:30mister_engage_delay_s53.25 → 46.5
08:30mister_water_budget_gal100 → 160
08:30temp_hysteresis2.23 → 1.96
08:30vent_prefer_dp_delta_f9 → 7
08:30vent_prefer_temp_delta_f7 → 5
08:30vpd_watch_dwell_s78.75 → 67.5
11:30cold_vent_guard_delta_f9 → 7
11:30direct_wet_stress_min_dew_margin_f11 → 9
11:30direct_wet_stress_vpd_margin_kpa0.12 → 0.05
11:30dwell_gate_ms270000 → 225000
11:30fog_escalation_kpa0.3 → 0.2
11:30fog_stress_min_dew_margin_f11 → 9
11:30min_fog_off_s96 → 60
11:30min_fog_on_s50.25 → 63.75
11:30mister_all_delay_s93 → 79.5
11:30mister_engage_delay_s46.5 → 39.75
11:30mister_water_budget_gal160 → 220
11:30temp_hysteresis1.96 → 1.69
11:30vent_prefer_dp_delta_f7 → 6
11:30vent_prefer_temp_delta_f5 → 3
11:30vpd_watch_dwell_s67.5 → 56.25
16:00direct_wet_stress_min_dew_margin_f9 → 8
16:00dwell_gate_ms225000 → 210000
16:00fog_stress_min_dew_margin_f9 → 8
16:00min_fog_off_s60 → 54
16:00min_fog_on_s63.75 → 66
16:00mister_all_delay_s79.5 → 75
16:00mister_engage_delay_s39.75 → 37.5
16:00temp_hysteresis1.69 → 1.6
16:00vent_prefer_dp_delta_f6 → 7
16:00vpd_watch_dwell_s56.25 → 52.5
21:30cold_vent_guard_delta_f7 → 9
21:30direct_wet_stress_min_dew_margin_f8 → 12
21:30direct_wet_stress_vpd_margin_kpa0.05 → 0.12
21:30dwell_gate_ms210000 → 285000
21:30fog_escalation_kpa0.2 → 0.35
21:30fog_stress_min_dew_margin_f8 → 12
21:30min_fog_off_s54 → 108
21:30min_fog_on_s66 → 45.75
21:30mister_all_delay_s75 → 97.5
21:30mister_engage_delay_s37.5 → 48.75
21:30mister_water_budget_gal220 → 160
21:30temp_hysteresis1.6 → 2.05
21:30vent_prefer_dp_delta_f7 → 8
21:30vent_prefer_temp_delta_f3 → 5
21:30vpd_watch_dwell_s52.5 → 71.25
06:00direct_wet_stress_min_dew_margin_f12 → 11
06:00direct_wet_stress_vpd_margin_kpa0.12 → 0.1
06:00dwell_gate_ms285000 → 255000
06:00fog_escalation_kpa0.35 → 0.3
06:00fog_stress_min_dew_margin_f12 → 11
06:00min_fog_off_s108 → 84
06:00min_fog_on_s45.75 → 54.75
06:00mister_all_delay_s97.5 → 88.5
06:00mister_engage_delay_s48.75 → 44.25
06:00mister_water_budget_gal160 → 180
06:00temp_hysteresis2.05 → 1.87
06:00vent_prefer_dp_delta_f8 → 7
06:00vpd_watch_dwell_s71.25 → 63.75
08:30cold_vent_guard_delta_f9 → 7
08:30direct_wet_stress_min_dew_margin_f11 → 8
08:30direct_wet_stress_vpd_margin_kpa0.1 → 0.05
08:30dwell_gate_ms255000 → 210000
08:30fog_escalation_kpa0.3 → 0.18
08:30fog_stress_min_dew_margin_f11 → 8
08:30min_fog_off_s84 → 48
08:30min_fog_on_s54.75 → 68.25
08:30mister_all_delay_s88.5 → 75
08:30mister_engage_delay_s44.25 → 37.5
08:30mister_water_budget_gal180 → 300
08:30temp_hysteresis1.87 → 1.6
08:30vent_prefer_dp_delta_f7 → 6
08:30vent_prefer_temp_delta_f5 → 3
08:30vpd_watch_dwell_s63.75 → 52.5
11:00cold_vent_guard_delta_f7 → 6
11:00dwell_gate_ms210000 → 195000
11:00fog_escalation_kpa0.18 → 0.15
11:00min_fog_off_s48 → 42
11:00min_fog_on_s68.25 → 70.5
11:00mister_all_delay_s75 → 70.5
11:00mister_engage_delay_s37.5 → 35.25
11:00temp_hysteresis1.6 → 1.51
11:00vent_prefer_dp_delta_f6 → 7
11:00vent_prefer_temp_delta_f3 → 2
11:00vpd_watch_dwell_s52.5 → 48.75

🌅 Morning Cycle (5:36 AM) — iris-20260602-0533

Status

validated

Outcome score

2/10

Changed parameters

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

Reflection

Validating previous cycle: iris-20260601-2025

Previous hypothesis: SUNSET overnight plan for Monday 2026-06-01. Today improved materially versus the 7-day baseline, but the dry-ramp plan is anchor-scored as a guardrail-dirty 3/10: daily score reached 77.2 and cost stayed low, yet the plan-window compliance was only 63.5% with 855 guardrail events, 144 held guardrail events, and live sunset VPD-high in VENTILATE with no moisture assist. The plan keeps one short band-coupled recovery shoulder while dew margin is 21F, then unwinds hard for the humid pre-dawn forecast so we do not create VPD-low or dew risk, and leaves a moderate guardrail-clean daylight handoff if SUNRISE is delayed. Result: SUNRISE 2026-06-02 underperformed its written dry-ramp hypothesis. Daily score was 57.6, only slightly above the 56.7 7-day average, with both-axis compliance 50.9%, temp compliance 76.7%, and VPD compliance 61.7%. VPD remained the binding axis, but heat stress also dominated: heat 5.47h, VPD-high 4.30h, VPD-low 4.67h, total stress 14.44h. The plan protected dew safety (dp-risk 0h, min margin 7.2F) and kept cost low (USD 2.37 vs USD 3.27 7d avg; no gas; only 65 gal water vs 141 gal 7d avg), but it failed the expected >65% both-axis compliance and <1h VPD-low targets, and prior guardrail evidence showed repeated VPD-high moisture guardrail events plus VENTILATE/no-moisture-assist alerts. Score 2/10: safety/cost preserved, but compliance and guardrail cleanliness were poor. Score: 2/10

New finding: For moderate-to-hot dry ramps after a humid dawn, low cost and dew safety are not enough: if VPD-low overcarry and later VPD-high/no-moisture-assist both occur, split the plan harder between dawn suppression, band-coupled peak moisture, and an observed-recovery evening shoulder. → Added to Lessons Learned

Hypothesis

Testing: Test a two-stage Tuesday posture: wet-conservative humid dawn, then explicit guardrail-clean band-coupled dry-ramp moisture from noon through observed evening recovery. Expected outcome: Target score >70, both-axis compliance >65%, VPD-high <4.5h, VPD-low <1h, dp-risk 0h, cost below the USD 3.48 7-day average unless live dry pressure requires the full water budget.

Conditions

Outdoor peak

82.0°F

RH minimum

20.0%

Solar peak

831.0 W/m²

Cloud average

61.0%

Cool humid dawn with indoor VPD below band and dew margin 7.3F, then moderate hot-dry ramp: raw outdoor VPD 2.0-3.0 kPa from noon through evening, corrected VPD still near 1.6-2.3 kPa, solar forecast variable but with 831 W/m2 midday and 736 W/m2 at 16:00. Forecast VPD tends to overshoot reality, so morning wet support is live-confirmed but midday/afternoon posture is guardrail-clean band-coupled.

Expected stress windows

vpd_lowmedium · 2026-06-02T05:33:00-06:00 to 2026-06-02T09:30:00-06:00

Suppress dawn wet carryover with high dew floor, low mist duty, high resource sensitivity, and no fog while house VPD remains below band.

vpd_highmedium · 2026-06-02T11:00:00-06:00 to 2026-06-02T21:30:00-06:00

Guardrail-clean band-coupled moisture: engage at vpd_high+0.05, all-zone near +0.25, fog escalation 0.20, short gaps/delays, adequate water budget, and recovery shoulder through observed VPD recovery.

heatmedium · 2026-06-02T12:00:00-06:00 to 2026-06-02T18:30:00-06:00

Solar-aware cooling lead and all-fan readiness near the high edge; accept physically limited hot misses when outdoor heat/solar saturate the exhaust-only box.

vpd_lowmedium · 2026-06-03T00:00:00-06:00 to 2026-06-03T07:30:00-06:00

Overnight unwind after the dry shoulder: longer gaps, high dew floor, high resource sensitivity, and low wet duty as outdoor VPD falls toward 0.3-0.9 kPa.

vpd_highhigh · 2026-06-03T09:30:00-06:00 to 2026-06-03T20:30:00-06:00

If the next SUNRISE is delayed, use severe dry-ramp fallback with high mist duty, 300 gal budget, low fog escalation, and cooling lead for forecast 87F/RH17%.

Parameter rationale

mister_engage_kpa1.48 → 1.23; Today transitions from VPD 0.46 at dawn to raw outdoor VPD 2.0-3.0 kPa from noon through 19:00; lessons 131/134 require engage near vpd_high+0.05 once VPD-high/VENTILATE is live or likely.

Avoid repeating conservative threshold guardrail holds and keep physical S1 mist eligible during dry VENTILATE.

mister_all_kpa1.78 → 1.43; Whole-house dry pressure is expected after 11:00, with east food crops and center Vandas sensitive to high VPD.

Escalate distributed mist before VPD drifts far above band while staying within the dispatcher guardrail.

fog_escalation_kpa0.5 → 0.2; Dry stress overlaps the 07:00-17:00 fog window and disease risk is 0h, but dawn VPD is below band so the low value starts only after the ramp begins.

Allow PR-A vent-fog assist during hot-dry VENTILATE without dawn fog overshoot.

mister_pulse_gap_s60.0 → 25.0; Corrected afternoon VPD remains well above the 1.18 kPa high edge and yesterday had 6.22h VPD-high.

Increase wet recovery duty during the dry ramp without lengthening pulse-on first.

mister_water_budget_gal100.0 → 240.0; Water was below trend yesterday at 120 gal vs 155 gal 7d avg, while VPD-high remained unresolved.

Prevent water budget clipping during the dry ramp while keeping total cost below the 7-day average if stress responds.

cool_stage2_over_high_f0.0 → 0.5; Solar can exceed 800 W/m2 around noon and yesterday heat stress reached 7.27h.

Bring fan2/all-fan readiness close to the high edge before heat and VPD-high pair in VENTILATE.

direct_wet_stress_min_dew_margin_f14.0 → 8.0; Dawn dew margin is only 7.3F, but daytime dry heat should widen margin; overnight waypoints restore stricter floors.

Permit daytime dry-stress wetting while preserving 0h dew-point risk.

Setpoints

Tuesday June 02

Primary crop-band changes:

TimeValuesNote
05:35hyst 0.20999999999999996Guarded humid dawn: current VPD is below band with only 7.3F
09:30hyst 0.19999999999999998Live-confirmed morning ramp: solar and VPD rise toward the b
12:00hyst 0.185Peak dry/solar posture: make mist and fog assist band-couple
16:00hyst 0.185Late dry tail: forecast remains near 82F/RH20-29%, so keep w
21:00hyst 0.19999999999999998Observed-recovery shoulder: do not unwind by clock if VPD re
23:30hyst 0.215Overnight unwind: forecast VPD falls toward the band/low edg

Tactical tunable changes:

TimeValuesNote
05:35s2 1.9675000000000002; cool_exit 1.96; all_fans 0; dw_stress 0; dw_until 19; fog_stress 0; fog_until 19; engage 1.48; all 1.7799999999999998; pulse 30; gap 60; wt 1.1Guarded humid dawn: current VPD is below band with only 7.3F
09:30s2 1.6075; cool_exit 1.78; all_fans 0; dw_stress 0; dw_until 20; fog_stress 0; fog_until 20; engage 1.28; all 1.5299999999999998; pulse 33.75; gap 52.5; wt 1.6666666666666665Live-confirmed morning ramp: solar and VPD rise toward the b
12:00s2 1.2874999999999999; cool_exit 1.51; all_fans 1; dw_stress 1; dw_until 21; fog_stress 1; fog_until 21; engage 1.23; all 1.43; pulse 60; gap 33.75; wt 2.3999999999999995Peak dry/solar posture: make mist and fog assist band-couple
16:00s2 1.4825000000000002; cool_exit 1.51; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.23; all 1.43; pulse 56.25; gap 33.75; wt 2.45Late dry tail: forecast remains near 82F/RH20-29%, so keep w
21:00s2 1.915; cool_exit 1.78; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.26; all 1.48; pulse 41.25; gap 48.75; wt 1.85Observed-recovery shoulder: do not unwind by clock if VPD re
23:30s2 2.055; cool_exit 2.05; all_fans 0; dw_stress 0; dw_until 19; fog_stress 0; fog_until 19; engage 1.48; all 1.7799999999999998; pulse 30; gap 60; wt 1.1333333333333333Overnight unwind: forecast VPD falls toward the band/low edg

Wednesday June 03

Primary crop-band changes:

TimeValuesNote
08:30hyst 0.18Missed-SUNRISE fallback for Wednesday severe dry ramp: forec
21:30hyst 0.20999999999999996Post-Wednesday dry-ramp unwind: keep a little recovery avail

Tactical tunable changes:

TimeValuesNote
08:30s2 1.12; cool_exit 1.42; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.23; all 1.38; pulse 71.25; gap 26.25; wt 2.7333333333333334Missed-SUNRISE fallback for Wednesday severe dry ramp: forec
21:30s2 2.025; cool_exit 1.96; all_fans 0; dw_stress 0; dw_until 22; fog_stress 0; fog_until 22; engage 1.43; all 1.73; pulse 30; gap 60; wt 1.2333333333333334Post-Wednesday dry-ramp unwind: keep a little recovery avail

Changed secondary parameters:

TimeParameterChange
05:35cold_vent_guard_delta_finitial 9
05:35direct_wet_stress_min_dew_margin_finitial 14
05:35direct_wet_stress_vpd_margin_kpainitial 0.3
05:35dwell_gate_msinitial 270000
05:35enthalpy_closeinitial 1
05:35enthalpy_openinitial -2
05:35fog_escalation_kpainitial 0.5
05:35fog_stress_min_dew_margin_finitial 14
05:35heat_hysteresisinitial 1.1
05:35min_fog_off_sinitial 132
05:35min_fog_on_sinitial 36.75
05:35mist_backoff_sinitial 600
05:35mist_max_closed_vent_sinitial 120
05:35mist_thermal_relief_sinitial 90
05:35mister_all_delay_sinitial 93
05:35mister_engage_delay_sinitial 46.5
05:35mister_water_budget_galinitial 100
05:35outdoor_staleness_max_sinitial 600
05:35sw_dwell_gate_enabledinitial 1
05:35sw_fog_closes_ventinitial 1
05:35sw_mister_closes_ventinitial 0
05:35sw_summer_vent_enabledinitial 1
05:35temp_hysteresisinitial 1.96
05:35vent_prefer_dp_delta_finitial 8
05:35vent_prefer_temp_delta_finitial 5
05:35vpd_watch_dwell_sinitial 67.5
09:30cold_vent_guard_delta_f9 → 8
09:30direct_wet_stress_min_dew_margin_f14 → 10
09:30direct_wet_stress_vpd_margin_kpa0.3 → 0.1
09:30dwell_gate_ms270000 → 240000
09:30fog_escalation_kpa0.5 → 0.3
09:30fog_stress_min_dew_margin_f14 → 10
09:30min_fog_off_s132 → 90
09:30min_fog_on_s36.75 → 52.5
09:30mister_all_delay_s93 → 84
09:30mister_engage_delay_s46.5 → 42
09:30mister_water_budget_gal100 → 160
09:30temp_hysteresis1.96 → 1.78
09:30vent_prefer_dp_delta_f8 → 6
09:30vent_prefer_temp_delta_f5 → 4
09:30vpd_watch_dwell_s67.5 → 60
12:00direct_wet_stress_min_dew_margin_f10 → 8
12:00direct_wet_stress_vpd_margin_kpa0.1 → 0.05
12:00dwell_gate_ms240000 → 195000
12:00fog_escalation_kpa0.3 → 0.2
12:00fog_stress_min_dew_margin_f10 → 8
12:00min_fog_off_s90 → 60
12:00min_fog_on_s52.5 → 63.75
12:00mister_all_delay_s84 → 70.5
12:00mister_engage_delay_s42 → 35.25
12:00mister_water_budget_gal160 → 240
12:00temp_hysteresis1.78 → 1.51
12:00vent_prefer_dp_delta_f6 → 8
12:00vpd_watch_dwell_s60 → 48.75
16:00min_fog_on_s63.75 → 69.375
21:00cold_vent_guard_delta_f8 → 9
21:00direct_wet_stress_min_dew_margin_f8 → 10
21:00direct_wet_stress_vpd_margin_kpa0.05 → 0.08
21:00dwell_gate_ms195000 → 240000
21:00fog_escalation_kpa0.2 → 0.4
21:00fog_stress_min_dew_margin_f8 → 10
21:00min_fog_off_s60 → 84
21:00min_fog_on_s69.375 → 54.75
21:00mister_all_delay_s70.5 → 84
21:00mister_engage_delay_s35.25 → 42
21:00mister_water_budget_gal240 → 220
21:00temp_hysteresis1.51 → 1.78
21:00vent_prefer_dp_delta_f8 → 7
21:00vent_prefer_temp_delta_f4 → 5
21:00vpd_watch_dwell_s48.75 → 60
23:30cold_vent_guard_delta_f9 → 10
23:30direct_wet_stress_min_dew_margin_f10 → 13
23:30direct_wet_stress_vpd_margin_kpa0.08 → 0.3
23:30dwell_gate_ms240000 → 285000
23:30fog_escalation_kpa0.4 → 0.5
23:30fog_stress_min_dew_margin_f10 → 13
23:30min_fog_off_s84 → 132
23:30min_fog_on_s54.75 → 36.75
23:30mister_all_delay_s84 → 97.5
23:30mister_engage_delay_s42 → 48.75
23:30mister_water_budget_gal220 → 120
23:30temp_hysteresis1.78 → 2.05
23:30vent_prefer_dp_delta_f7 → 9
23:30vent_prefer_temp_delta_f5 → 6
23:30vpd_watch_dwell_s60 → 71.25
08:30cold_vent_guard_delta_f10 → 8
08:30direct_wet_stress_min_dew_margin_f13 → 8
08:30direct_wet_stress_vpd_margin_kpa0.3 → 0.05
08:30dwell_gate_ms285000 → 180000
08:30fog_escalation_kpa0.5 → 0.15
08:30fog_stress_min_dew_margin_f13 → 8
08:30min_fog_off_s132 → 48
08:30min_fog_on_s36.75 → 75
08:30mister_all_delay_s97.5 → 66
08:30mister_engage_delay_s48.75 → 33
08:30mister_water_budget_gal120 → 300
08:30temp_hysteresis2.05 → 1.42
08:30vent_prefer_temp_delta_f6 → 4
08:30vpd_watch_dwell_s71.25 → 45
21:30cold_vent_guard_delta_f8 → 10
21:30direct_wet_stress_min_dew_margin_f8 → 13
21:30direct_wet_stress_vpd_margin_kpa0.05 → 0.25
21:30dwell_gate_ms180000 → 270000
21:30fog_escalation_kpa0.15 → 0.5
21:30fog_stress_min_dew_margin_f8 → 13
21:30min_fog_off_s48 → 120
21:30min_fog_on_s75 → 41.25
21:30mister_all_delay_s66 → 93
21:30mister_engage_delay_s33 → 46.5
21:30mister_water_budget_gal300 → 160
21:30temp_hysteresis1.42 → 1.96
21:30vent_prefer_temp_delta_f4 → 6
21:30vpd_watch_dwell_s45 → 67.5

🌆 Evening Cycle (8:27 PM) — iris-20260602-2025

Status

validated

Outcome score

7/10

Changed parameters

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

Reflection

Validating previous cycle: iris-20260602-0533

Previous hypothesis: SUNRISE plan for Tuesday 2026-06-02. Yesterday’s headline improved versus the 7-day baseline but the anchor score says the dry-ramp plan was still guardrail-dirty: full-day score 67.6, both-axis 63.4%, temp 68.9%, VPD 73.4%, heat 7.27h, VPD-high 6.22h, 0h VPD-low/cold, cost USD 2.34, dp-risk 0h. I scored iris-20260601-0534 at 3/10 versus anchor 2 because it preserved cost/dew safety but produced 855 guardrail events and 155 VPD-high guardrail events. Current house is cool/humid and below the VPD band at 63.6F, VPD 0.46, dew margin 7.3F, IDLE, so dawn stays wet-conservative. Forecast then ramps to 82F, RH 20%, raw VPD 2.97 kPa with corrected VPD still >2 kPa, and solar pulses near 800+ W/m2. Retrieved lessons 128/131/134/118 say to keep a humid-dawn plan guarded early, then make dry-ramp moisture fully band-coupled and avoid clock-only unwind while observed VPD remains high. Result: REVISED anchor-aligned MIDNIGHT evaluation. The deterministic anchor is 7 despite guardrail penalties, so the prior 3/10 was too harsh for the measured climate result. The SUNSET plan achieved its primary immediate objective before midnight: live VPD recovered to 0.85 kPa below the 1.18 high edge, dew margin remained safe at 13.6F, dp-risk stayed 0h, and recent vent/VPD alerts are resolved. The important caveat is cleanliness: the guardrail scorecard reports 265 guardrail events, 81 held events, 4 dispatched events, and 85 VPD-high guardrail events, so this was a climate-safe recovery but not a clean written posture. The new MIDNIGHT reset must not carry forward any conservative moisture values that the dispatcher will clamp during today’s severe dry ramp. Score: 7/10

Hypothesis

Testing: Test a split sunset posture: short observed VPD-high recovery shoulder, strong humid pre-dawn unwind, and explicit severe dry-ramp fallback if the next SUNRISE cycle is delayed. Expected outcome: Overnight dp-risk remains 0h, added VPD-low after 22:30 stays under 1.5h, live VPD falls below the high band before midnight, total overnight cost stays below USD 0.75, and the 08:30 fallback prevents stale humid-night settings from suppressing wet/cooling support during Wednesday’s severe dry ramp.

Conditions

Outdoor peak

88.0°F

RH minimum

15.0%

Solar peak

1017.0 W/m²

Cloud average

65.0%

Sunset starts VENTILATE with temp and VPD above band but dew margin 18F. Overnight cools into low VPD/RH 82-85% pre-dawn. Wed ramps hot/dry with 88F, RH 15%, solar ~1000 W/m2.

Expected stress windows

vpd_highmedium · 2026-06-02T20:25:00-06:00 to 2026-06-02T22:30:00-06:00

Short band-coupled observed-recovery shoulder while dew margin is healthy; do not unwind until VPD recovers below the high band.

vpd_lowhigh · 2026-06-03T03:00:00-06:00 to 2026-06-03T07:30:00-06:00

Strong overnight wet unwind: high dew floor, low mist duty, high resource sensitivity, conservative fog threshold.

heathigh · 2026-06-03T10:30:00-06:00 to 2026-06-03T19:30:00-06:00

If SUNRISE is delayed, use solar-aware cooling lead and all-fan readiness; accept physics-limited hot misses near 88F.

vpd_highhigh · 2026-06-03T10:00:00-06:00 to 2026-06-03T21:00:00-06:00

Missed-SUNRISE fallback restores band-coupled mist/fog, 300 gal budget, low fog escalation, and evening recovery until observed VPD recovers.

Parameter rationale

mister_engage_kpa1.23 → 1.26; Live VPD is 1.36 kPa versus high band 1.21 with 18F dew margin and VENTILATE no-moisture-assist alert.

Keep S1 mist eligible during the short recovery shoulder instead of repeating clock-based unwind.

mister_all_kpa1.43 → 1.46; Current VPD remains above band and east is the dry outlier near 1.54 kPa.

Keep distributed mist available until observed VPD is stable below band.

mister_pulse_gap_s30.0 → 55.0; Forecast VPD falls below 0.5 kPa by 04:00-06:00 with RH 68-85% after the recovery shoulder.

Avoid repeating today's 4.67h VPD-low overshoot during humid pre-dawn.

fog_escalation_kpa0.2 → 0.5; Fog is not useful overnight and pre-dawn RH/VPD favor VPD-low risk over dry recovery.

Suppress heavy fog after the recovery shoulder while preserving firmware safety gates.

direct_wet_stress_min_dew_margin_f8.0 → 15.0; Cool humid pre-dawn narrows condensation margin risk despite current safe dew margin.

Keep dp-risk at 0h and block unnecessary wet actions overnight.

cool_stage2_over_high_f0.0 → 0.5; Wednesday forecast reaches 88F with solar near 1000 W/m2 if SUNRISE is delayed.

Restore dry-ramp cooling readiness by the morning handoff without carrying all-night fan aggression.

mister_water_budget_gal240.0 → 100.0; Overnight forecast is naturally humid and today's water/cost were already below trend.

Conserve water during low-VPD hours, then allow the 08:30 fallback to raise budget for the severe dry ramp.

Setpoints

Tuesday June 02

Primary crop-band changes:

TimeValuesNote
20:35hyst 0.1875evening_settle: live temp and VPD remain above band with 18F
22:30hyst 0.1875post_recovery_unwind: forecast VPD near 1.0 and falling; pre

Tactical tunable changes:

TimeValuesNote
20:35s2 1.885; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.26; all 1.46; pulse 41.25; gap 41.25; wt 2.083333333333333evening_settle: live temp and VPD remain above band with 18F
22:30s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.26; all 1.46; pulse 33.75; gap 41.25; wt 1.7post_recovery_unwind: forecast VPD near 1.0 and falling; pre

Wednesday June 03

Primary crop-band changes:

TimeValuesNote
03:30hyst 0.1875pre_dawn_humid_guard: outdoor VPD forecast falls to 0.25-0.4
08:30hyst 0.1875missed_sunrise_dry_ramp_fallback: Wednesday ramps toward 88F
21:30hyst 0.1875wednesday_evening_unwind_fallback: if no SUNRISE/SUNSET plan

Tactical tunable changes:

TimeValuesNote
03:30s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 19; fog_stress 1; fog_until 19; engage 1.26; all 1.46; pulse 33.75; gap 41.25; wt 1.7pre_dawn_humid_guard: outdoor VPD forecast falls to 0.25-0.4
08:30s2 1.185; cool_exit 1.6; all_fans 1; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.26; all 1.46; pulse 60; gap 30; wt 2.4333333333333336missed_sunrise_dry_ramp_fallback: Wednesday ramps toward 88F
21:30s2 1.905; cool_exit 1.6; all_fans 0; dw_stress 1; dw_until 22; fog_stress 1; fog_until 22; engage 1.26; all 1.46; pulse 33.75; gap 41.25; wt 1.7wednesday_evening_unwind_fallback: if no SUNRISE/SUNSET plan

Changed secondary parameters:

TimeParameterChange
20:35cold_vent_guard_delta_finitial 8
20:35direct_wet_stress_min_dew_margin_finitial 10
20:35direct_wet_stress_vpd_margin_kpainitial 0.05
20:35dwell_gate_msinitial 210000
20:35enthalpy_closeinitial 1
20:35enthalpy_openinitial -2
20:35fog_escalation_kpainitial 0.2
20:35fog_stress_min_dew_margin_finitial 10
20:35heat_hysteresisinitial 1.1
20:35min_fog_off_sinitial 72
20:35min_fog_on_sinitial 59.25
20:35mist_backoff_sinitial 600
20:35mist_max_closed_vent_sinitial 120
20:35mist_thermal_relief_sinitial 90
20:35mister_all_delay_sinitial 75
20:35mister_engage_delay_sinitial 37.5
20:35mister_water_budget_galinitial 160
20:35outdoor_staleness_max_sinitial 600
20:35sw_dwell_gate_enabledinitial 1
20:35sw_fog_closes_ventinitial 1
20:35sw_mister_closes_ventinitial 0
20:35sw_summer_vent_enabledinitial 1
20:35temp_hysteresisinitial 1.6
20:35vent_prefer_dp_delta_finitial 8
20:35vent_prefer_temp_delta_finitial 4
20:35vpd_watch_dwell_sinitial 52.5
22:30cold_vent_guard_delta_f8 → 10
22:30direct_wet_stress_min_dew_margin_f10 → 13
22:30fog_stress_min_dew_margin_f10 → 13
22:30mister_water_budget_gal160 → 120
22:30vent_prefer_dp_delta_f8 → 10
22:30vent_prefer_temp_delta_f4 → 6
03:30cold_vent_guard_delta_f10 → 12
03:30direct_wet_stress_min_dew_margin_f13 → 15
03:30fog_stress_min_dew_margin_f13 → 15
03:30vent_prefer_dp_delta_f10 → 12
03:30vent_prefer_temp_delta_f6 → 8
08:30cold_vent_guard_delta_f12 → 7
08:30direct_wet_stress_min_dew_margin_f15 → 8
08:30fog_stress_min_dew_margin_f15 → 8
08:30min_fog_off_s72 → 54
08:30min_fog_on_s59.25 → 66
08:30mister_water_budget_gal120 → 300
08:30vent_prefer_dp_delta_f12 → 5
08:30vent_prefer_temp_delta_f8 → 3
21:30cold_vent_guard_delta_f7 → 9
21:30direct_wet_stress_min_dew_margin_f8 → 13
21:30fog_stress_min_dew_margin_f8 → 13
21:30min_fog_off_s54 → 72
21:30min_fog_on_s66 → 59.25
21:30mister_water_budget_gal300 → 120
21:30vent_prefer_dp_delta_f5 → 8
21:30vent_prefer_temp_delta_f3 → 5

End-of-Day Summary

Climate

Temperature

63.5–86.1°F; avg 72.4°F

VPD

0.46–1.80 kPa; avg 1.01 kPa

Relative humidity

48.5–77.7%

Stress Hours

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

Economics

Electric

USD 2.06

Gas

USD 0.00

Water

USD 0.310

Total

USD 2.37

Equipment Runtimes

EquipmentRuntimeReading
Fan 1393 minPrimary exhaust runtime.
Fan 2393 minSecondary exhaust runtime.
Vent574 minIntake vent runtime.
Fog32 minFogger runtime.
Heat 1 electric68 minElectric heater runtime.
Heat 2 gas0 minGas heater runtime.
Grow lights1264 minSupplemental lighting runtime.
Mister south0.06hSouth mister runtime.
Mister west0.02hWest mister runtime.
Mister center0.28hCenter mister runtime.

Water

  • Total: 65 gal
  • Mister: 65 gal

Crop Health (Gemini Vision)

CropZoneHealthObservationsNote
Vanda Orchidscenter78%4Observation notes are collapsed below to avoid publishing partial vision snippets.
lettuceeast80%4Observation notes are collapsed below to avoid publishing partial vision snippets.
peppereast78%4Observation notes are collapsed below to avoid publishing partial vision snippets.
strawberryeast80%4Observation notes are collapsed below to avoid publishing partial vision snippets.
Vision observation notes
Vanda OrchidsGemini Vision notes

Hanging orchids appear healthy with no visible signs of stress.

lettuceGemini Vision notes

Seedlings appear healthy and are establishing well.

pepperGemini Vision notes

Seedlings appear healthy and are growing well.

strawberryGemini Vision notes

Seedlings appear healthy and are growing well.

Hourly Pattern

HourTemperatureVPDRH
12:0079.7°F1.16 kPa66.7%
13:0080.5°F1.12 kPa68.7%
14:0083.6°F1.38 kPa65.5%
15:0084.1°F1.34 kPa67.2%
16:0084.2°F1.24 kPa70.3%
17:0082.6°F1.21 kPa68.9%
18:0082.1°F2.05 kPa45.2%
19:0077.8°F1.76 kPa46.1%
20:0074.5°F1.54 kPa47.4%
21:0072.7°F1.42 kPa48.4%
22:0069.9°F1.17 kPa53.1%
23:0067.9°F0.99 kPa57.5%
00:0066.0°F0.83 kPa61.9%
01:0064.9°F0.72 kPa65.9%
02:0064.6°F0.59 kPa71.8%
03:0064.0°F0.52 kPa74.6%
04:0063.6°F0.48 kPa76.0%
05:0063.7°F0.47 kPa76.9%
06:0065.7°F0.55 kPa74.9%
07:0066.2°F0.80 kPa64.0%
08:0067.9°F0.86 kPa63.5%
09:0070.9°F0.89 kPa65.9%
10:0074.2°F1.13 kPa61.4%
11:0077.6°F1.31 kPa59.9%

7-Day Stress Context

DateHeatVPD highCold
2026-05-274.8h2.4h0.1h
2026-05-2811.0h6.2h0.0h
2026-05-299.7h3.9h0.0h
2026-05-301.5h2.8h0.4h
2026-05-316.7h8.2h0.0h
2026-06-017.3h6.2h0.0h
2026-06-025.5h4.3h0.0h