Summary
Today the dashboard shows a single rain banner. Extend the alert system to surface other actionable weather conditions for kids.
Proposed alerts
- UV index — sunscreen/hat reminder when UV >= moderate (e.g. 6+)
- Pollen — high tree/grass/weed pollen for kids with allergies (per-child opt-in)
- Air quality (AQI) — limit outdoor play when unhealthy for sensitive groups
- Wind / wind chill — high wind advisory or dangerously cold wind chill
- Heat index — extreme heat warning (hydration / shade)
- Thunderstorm — incoming storm in the next 1-2 hours
- Snow / ice — boots-and-mittens reminder; school-bus-stop ice warning
UX
- Stack multiple banners (or rotate) above the dashboard
- Each alert: short kid-friendly message + icon
- Per-alert enable/disable in Settings (some families don't care about pollen, etc.)
- Per-child overrides where it makes sense (pollen sensitivity)
- Theme-aware coloring (already wired
--ui-accent for non-native frameworks; native theme keeps warm warning colors)
Data sources (free, no API key)
- Open-Meteo Air Quality API: UV, PM2.5/PM10, pollen (tree/grass/birch/alder/mugwort/ragweed/olive)
- Open-Meteo Forecast: wind speed/gusts, apparent temperature, precipitation type
- Severe weather (NWS for US) via api.weather.gov alerts endpoint
Implementation notes
- Add an
alerts module that polls Open-Meteo Air Quality alongside the weather fetch
- Config schema additions:
alerts.uv.enabled, alerts.uv.threshold, alerts.pollen.enabled, etc.
- Telemetry: breadcrumb on each alert raised; capture_message on alert-fetch failure
- Tests: fixtures for high-UV, high-pollen, AQI-unhealthy, thunderstorm scenarios
Out of scope (for this issue)
- Push notifications / sound alerts
- Hourly alert timeline visualization (separate issue)
Summary
Today the dashboard shows a single rain banner. Extend the alert system to surface other actionable weather conditions for kids.
Proposed alerts
UX
--ui-accentfor non-native frameworks; native theme keeps warm warning colors)Data sources (free, no API key)
Implementation notes
alertsmodule that polls Open-Meteo Air Quality alongside the weather fetchalerts.uv.enabled,alerts.uv.threshold,alerts.pollen.enabled, etc.Out of scope (for this issue)