Rain Alert: A Voice Bot That Warns You Before Rain Catches You Off Guard
DEV Community

Rain Alert: A Voice Bot That Warns You Before Rain Catches You Off Guard

This is a submission for Weekend Challenge: Passion Edition.

What I Built

Rain Alert is a Telegram voice bot that watches the minute-by-minute rain forecast for your exact location and - before rain actually starts - sends you a spoken voice note telling you exactly what to do:

  • Inside? "Close your windows, grab an umbrella if you're heading out."
  • Outside? "Get inside now" or "head in soon," depending on how many minutes you actually have.

No app to check, no refreshing a weather widget. You share your location once, tell the bot whether you're inside or outside, and it does the rest - running quietly in the background and only speaking up when it actually matters.

Demo Code

ultrasage-danz / rain-alert-voice-bot

Rain Alert Voice Bot - A background Telegram bot that watches the minute-by-minute rain forecast and, when rain is about to start, sends you a spoken voice note telling you what to do - grab an umbrella, close your windows, get inside, or run - depending on whether you're currently indoors or out. Built for DEV's Weekend Challenge: Passion Edition (ElevenLabs prize category).

Why this exists

Built out of genuine frustration with daily rain and constantly having to check the sky or a weather app. This runs on its own and pings you with a voice note instead.

How I Built It

  • OpenWeatherMap's One Call API 4.0 gives a true minute-by-minute precipitation forecast - not just hourly buckets - so the bot can tell you rain is coming in exactly 7 minutes, not "sometime this hour."
  • The bot scans that forecast on a schedule, entirely in the background - no command needed to trigger a check.
  • When rain crosses the threshold within the lookahead window, it builds a short message tailored to whether you're inside or outside.
  • ElevenLabs turns that message into a natural-sounding spoken voice note in real time.
  • Telegram delivers it straight to your phone or desktop as a push notification - with a distinct, unmistakable heads-up ping so a real alert never gets lost among routine chatter.

Tech stack

  • Python - core bot logic
  • python-telegram-bot - chat interface, commands, location sharing, voice delivery
  • OpenWeatherMap One Call API 4.0 - minute-by-minute precipitation data
  • ElevenLabs API (official SDK) - text-to-speech voice generation
  • APScheduler - background polling, no manual trigger required
  • pytest - 19 tests covering rain-detection logic, alert wording, and integrations
  • Docker - containerized for easy deployment
  • GitHub Actions - CI running the full test suite and a Docker build on every push

Prize Categories

Best Use of ElevenLabs

Worked Solo

Comments

No comments yet. Start the discussion.