Inspiration

The idea came from a real concern many of us have — aging parents or grandparents living alone. A missed morning walk, a delayed medication, an unanswered doorbell — these small signals can point to something serious. Yet caregivers are often hours away and rely on phone calls to check in. We asked: what if the Ring device already at the front door could quietly learn a senior's routine and raise a flag the moment something feels off? That question became RoutineWatch Lite.

What it does

RoutineWatch Lite turns a standard Ring doorbell or motion sensor into an ambient health monitor for seniors living independently.

  • Learns baseline routines automatically — by analysing 14 days of Ring motion and doorbell events, the system builds a personalised time-window for each daily activity (morning walk, afternoon caregiver visit, evening medication round, etc.).
  • Raises real-time alerts the moment a routine window closes without the expected Ring event — delivered instantly via WebSocket to the caregiver dashboard.
  • Visualises compliance on a 24-hour circadian dial — green arcs show expected routine windows; red dot markers highlight missed or late events so caregivers can see the full picture at a glance.
  • Tracks week-over-week routine drift — a 14-day line chart reveals if a senior's morning routine is gradually shifting later, an early indicator of health or sleep changes.
  • Empowers caregivers with smart actions— each alert can be Snoozed ("+30 min — caregiver is on the way"), paused with Vacation / Hospital Mode, or annotated with a free-text note ("Called Mom, she was gardening in the backyard") so the entire family stays in the loop.
  • Spoken audio alerts using the Web Speech API ensure caregivers are notified even when the browser tab is in the background.

How we built it

Layer Technology
Ring integration Ring Partner API v1.1 — webhook events (motion with human sub-type and button_press) verified with HMAC-SHA256 constant-time signature validation
Backend FastAPI (Python 3.11) with SQLite for persistence; REST endpoints + WebSocket (/ws) for real-time push
Routine engine Statistical baseline algorithm — computes mean ± 1 σ of event timestamps over a rolling 14-day window to define each routine's expected start / end minutes
Missing-event checker Background scheduler that fires at the close of each routine window and raises an alert if no qualifying Ring event was recorded
Frontend Zero-build vanilla HTML5 / CSS / JavaScript — no framework, no bundler — keeping the demo deployable with a single start index.html
Visualisations Apache ECharts (free CDN) for the polar circadian dial and the 14-day drift chart
Caregiver smart actions Snooze, Vacation Mode, and threaded notes stored in SQLite and broadcast over WebSockets to all connected caregivers simultaneously

We deliberately chose a zero-external-cost stack — every library is either a free CDN or a PyPI package — so the prototype can be run by anyone with Python 3.11 and a Ring account.

Challenges we ran into

  • Ring sandbox event fidelity — the sandbox emits generic motion events but not the human sub-type that Ring real hardware provides. We had to build a configurable fallback in the missing-checker so the app degrades gracefully when human classification is unavailable.
  • WebSocket reconnection when served as a local file — opening index.html via the file:// protocol sets window.location.host to an empty string, silently breaking the WebSocket URL. We fixed this with a one-line host fallback to 127.0.0.1:8000.
  • Routine drift without ground-truth labels — there are no labelled "this event was the morning walk" signals in raw Ring data. We solved this by clustering events into time-of-day buckets and naming them heuristically (05:00–09:00 = "morning", etc.), then letting the statistical window tighten or loosen naturally as behaviour changes.
  • False-alarm suppression — motion events from delivery drivers or neighbours could trigger spurious "routine completed" signals. We added a minimum-confidence threshold: a routine is only marked complete if a qualifying event falls inside the expected ± σ window.

Accomplishments that we're proud of

  • End-to-end Ring API integration with proper HMAC-SHA256 webhook verification — the same security model used in production Ring Partner apps.
  • A 24-hour polar circadian dial that turns raw timestamped data into an immediately intuitive health-tech infographic — something judges can understand in under five seconds.
  • 20 automated tests (pytest) covering webhooks, alert lifecycle, snooze logic, vacation mode, caregiver notes, and the routine engine — all passing on first run.
  • A fully working caregiver workflow (alert → snooze → note → resolve) that mirrors real on-call tooling used by professional care agencies.
  • The entire front-end is zero-dependency vanilla JS — no React, no build step — making the demo instantly runnable and easy to audit.

What we learned

  • Ambient data is powerful when given context.A Ring device already generates enough signal to infer daily health routines — the gap is analysis and presentation, not more sensors.
  • Real-time UX changes caregiver behaviour. A polling dashboard that refreshes every 30 seconds feels very different from a WebSocket-driven one that updates the moment an event arrives. The latter creates genuine urgency without extra noise.
  • Simplicity scales. By choosing SQLite + FastAPI instead of a managed cloud database, we could iterate on the schema (adding snooze columns, vacation flags, notes tables) in minutes rather than hours, which let us ship more features within the hackathon window.
  • HMAC signature verification matters from day one. Adding it as an afterthought is painful; building it into the webhook router from the start meant every simulated event in our test suite exercised the same security path as a real Ring payload.

What's next for RoutineWatch Lite

  • Multi-resident support — a single caregiver account managing multiple Ring-equipped homes, each with its own routine baseline.
  • AWS integration— route Ring webhooks through Amazon EventBridge and store events in DynamoDB for infinite retention and cross-region resilience; use Amazon SNS / SES for email and SMS escalation when a WebSocket caregiver is offline.
  • ML-powered anomaly detection — replace the statistical ± σ window with a lightweight LSTM that learns non-linear patterns (e.g., the senior always skips the walk on rainy days).
  • Ring camera thumbnail attach — when a missed-window alert fires, attach the most recent Ring snapshot so the caregiver can visually confirm the senior's last known location.
  • Mobile PWA — wrap the existing vanilla JS dashboard as a Progressive Web App so caregivers receive push notifications on their phones, not just browser alerts.
  • HIPAA-aligned data layer — encrypt SQLite at rest with SQLCipher and add an audit-log endpoint to satisfy care-agency compliance requirements.

Built With

Share this project:

Updates

Submission history