Inspiration

I live with erythromelalgia. Heat sets my feet on fire, so I have spent years reading weather apps as if they were written for me, and they never are. One winter the power went out, and I sat in the cold with no idea where to go.

Then I read about Stephanie Pullman. In September 2018, in Sun City West, Arizona, her power was cut off on a 107-degree day. She was 72, she had heart disease, and she died at home. In Maricopa County, most people who die of heat indoors have an air conditioner. It just isn't working.

A heat advisory is written for everybody, and "everybody" is the wrong threshold for a lot of people. Beta blockers stop sweating. Water pills disturb electrolytes. Some antidepressants blunt thirst. Multiple sclerosis, heart disease and old age all move the line. Nothing I could find held one person's own medicines and home against their own forecast and told them what to do. So I built it.

What it does

Sudor is an Alexa+ add-on that checks heat, cold and disasters against your own medicines, health and home. You tell it once where you live, what you take and what you live with. After that:

  • "Is it safe for me to go out?" gets an answer for your body, with the reason: "Your carvedilol blocks your sweating, so you may not feel overheating until it is serious. Keep taking it."
  • Before it ever says "stay in", it asks the question nobody asked Stephanie: is your cooling working? If it isn't, indoors is the danger, and Sudor finds a real cooling centre open today, from the county's own published list.
  • "Get help" tells a family member where you're going, and never what you take. Each family member agrees once, on their own phone, and can stop with one tap.
  • Emergencies come first. "She's not breathing", chest pain, stroke signs, heat stroke: call the number now, the right one for the country (911, 999, 112, 192, 998), then what to do while help comes.
  • Not only heat. A flood watch when your insulin lives in the fridge. A freeze with the power out, and a carbon monoxide warning. Smoke and bad air with asthma. Official warnings become steps for one person: insulin, oxygen, dialysis, whether to leave.
  • The longer view. Which days to work from home, how many days this year were too hot for you, your own doctor's hot-day advice repeated back word for word, a trip checked against last year's weather, and a roofer's first week built up day by day.
  • The whole house. Tell it who lives with you, and every answer covers your mum on a water pill and a baby who can't say she's hot, each judged for their own body.
  • Nobody has to ask. Every ten minutes it checks on people who live alone, and if a dangerous day passes with no word by 2 pm, the family member who agreed is asked to check on them.

On an Echo Show it draws the day as an MCP App: every hour in words and patterns (ok, care, stay in), never colour alone.

How I built it

The model talks; code decides. The assistant's job is to understand the person. Every verdict, number and safety line is written by code from live public data and published guidance, so no model can soften "call 911" or turn "stay in" into "probably fine".

  • A self-hosted MCP server (spec 2025-11-25, Streamable HTTP, stateless, OAuth 2.1 with PKCE for account linking) in TypeScript on Node 20, with 18 tools, an MCP Apps panel and card, and an Agent Skill readable as skill:// resources.
  • Answers from memory, in milliseconds. Alexa+ allows about half a second for a whole turn, and a forecast fetch alone can take longer. So weather, warnings, cooling centres, outages and recalls are polled in the background, and every answer is arithmetic over data already held: p95 under 40 ms.
  • The heat index the weather service's way. Below 80 °F the NWS averages a simple formula with the temperature,

$$HI_{simple} = \tfrac{1}{2}\left[T + 61 + 1.2\,(T-68) + 0.094\,RH\right]$$

and above it the full Rothfusz regression takes over. That number is then judged for this person: each medicine by mechanism (blocks sweating, blunts thirst, fluid loss, burns faster), from the CDC's clinical guidance, RxNorm drug classes and each medicine's own FDA label.

  • On AWS: EC2 behind an API Gateway HTTP API; DynamoDB for people, one record per person sealed with AES-256-GCM and versioned on every write; the alert check as a Lambda run by EventBridge Scheduler every ten minutes, alarmed in CloudWatch; SES for family email, SNS for urgent texts, Amazon Location Service for the nearest emergency department; keys in SSM Parameter Store; all in CDK. An agent on the Strands Agents SDK follows each answer's next step and waits for a yes before anything is saved or sent.
  • Free public data: Open-Meteo, the National Weather Service, MeteoAlarm and the WMO, openFDA, the National Library of Medicine, NOAA space weather, utility outage maps and 27 county and city cooling-centre lists.
  • The demo: while Alexa+ add-on access is in preview, a Claude model plays Alexa+, reading the server's real tool list and calling the same live server.

Challenges I ran into

  • Half a second. Even looking up "Phoenix" can take longer than Alexa+ allows. Places are saved at once and geocoded in the background, and nothing external is ever called inside a turn.
  • People don't talk like forms. "Near Tucson", "1221 N Central Ave, Phoenix, AZ 85004", "Wagga Wagga NSW", "toprol-xl", "my Ozempic injection", "I'm eighty two". Each became a test.
  • The emergencies I almost missed. Saying "she's not breathing" on a mild day first got a description of heat illness. Now every life threat is "call the number now", heat or no heat, with chest compressions on the card.
  • Consent that belongs to the person told. The person at home cannot sign their family up; each family member agrees on their own phone, and the messages carry where, never what medicine.
  • The clocks change. A forecast read the evening before daylight saving ended was an hour out for the whole next day. Every hour is now converted with the place's own time zone.

Accomplishments that I'm proud of

  • 38 of 38 conversation turns right, across 16 conversations written in the patterns older adults were recorded using voice assistants (repeats, "never mind", "what about tomorrow though?").
  • 95 of 100 spoken sentences sent to the right tool on the 18 tools Alexa+ would be shown, with every argument right.
  • Replaying July 2026, the answer for someone on metoprolol and furosemide differs from the answer for "anybody" in 36 to 86 percent of waking hours across six US cities.
  • 2,835 automated checks on every push, against live weather, DynamoDB Local, the CDK stack and Docker.

What I learned

That the most useful sentence is often a question. "Is your cooling working?" matters more than any number. That older adults repair conversations by repeating themselves, and a design has to expect it. And that a safety product has to be honest about what it cannot do: Sudor cannot phone anyone, and says so; a source it could not read is "could not check", never "all clear".

What's next for Sudor

Real Alexa+ testing once add-on access opens, SES production access so families outside the sandbox get email, more cooling-centre lists, and working with home-care agencies and Area Agencies on Aging, the people who already check on the ones most at risk.

Warnings are written for everyone. Sudor answers for the one person at home.

Built With

Share this project:

Updates

Submission history