Inspiration
Elderly or vulnerable people living alone are often checked on informally, if at all. Family caregivers want a lightweight, non-intrusive way to know something might be wrong — without cameras streaming 24/7 to their phone or expensive medical alert hardware. Ring already sits at the front door in millions of homes, so I wanted to turn its motion detection into a gentle, automated check-in system.
What it does
Ring Med Watch watches for motion at a front door. If no motion is detected for a configurable threshold (default 12 hours), it asks AWS Bedrock (Claude Haiku) to draft a short, calm, non-alarming message, and delivers it to a family caregiver by email via AWS SES. The tone is deliberately gentle — a nudge to check in, not a panic alert.
How I built it
- Node.js / Express backend exposing a
/webhooks/ringendpoint, a/healthstatus endpoint, and a/test/trigger-alertendpoint for demos - AWS Bedrock (Claude Haiku) drafts the caregiver message from a prompt describing hours since last motion
- AWS SES delivers the message by email
- Deployed on Google Cloud Run
- The webhook parses Ring's real v1.1 payload format (
data.type,data.attributes), tested against the Ring Developer Playground sandbox
Challenges I ran into
- Ring's webhook payload nests the event type inside
data.type, not at the top level — easy to miss and silently breaks motion detection if parsed wrong - My initial plan was to alert by SMS via AWS SNS, but hit an AWS account-level
SubscriptionRequiredExceptionon the Pinpoint SMS Voice V2 service (a new-account restriction unrelated to IAM permissions). Rather than block the whole project on an AWS Support ticket, I pivoted to email delivery via AWS SES, which worked immediately and end-to-end - IAM permissions needed to be added incrementally (SNS, then SES) as the project's needs evolved
What I learned
How Ring's real webhook payload is structured versus assumptions from documentation, and how to build a graceful fallback when an AWS service has an account-level restriction rather than a simple permissions issue.
What's next
- Full Ring OAuth account linking (currently tested via Ring Playground sandbox)
- HMAC-SHA256 signature verification on incoming webhooks
- SMS delivery via SNS/Pinpoint once the AWS Support ticket is resolved
- Multiple caregiver contacts per household
Built With
- aws-bedrock
- aws-ses
- claude
- express.js
- google-cloud-run
- javascript
- node.js
Log in or sign up for Devpost to join the conversation.