Skip to content

feat(weather): add Weather Underground / TWC provider - #97

Open
sth2258 wants to merge 2 commits into
jeremiaa:mainfrom
sth2258:feature/weather-underground-provider
Open

feat(weather): add Weather Underground / TWC provider#97
sth2258 wants to merge 2 commits into
jeremiaa:mainfrom
sth2258:feature/weather-underground-provider

Conversation

@sth2258

@sth2258 sth2258 commented Sep 3, 2026

Copy link
Copy Markdown

Summary

  • Adds Weather Underground (The Weather Company) as a new weather data source, addressing Feature: Add Support for Weather Underground API #67
  • Supports TWC geocode-based weather data with optional Personal Weather Station (PWS) overlay for hyper-local temp/humidity/wind readings
  • TWC API key stored via AppSettings (same pattern as OWM) with env var fallback (WUNDERGROUND_API_KEY)

Details

  • Credentials: wunderground-credentials.tsgetWuKey(), setWuKey(), clearWuKey(), getWuStatus() following the OWM pattern
  • Provider: fetchWeatherUnderground() in providers.ts — fetches TWC current + 5-day forecast in parallel, optionally merges PWS sensor data. Maps TWC iconCode (0–47) to WMO codes via twcIconToWmo()
  • API route: Handles provider=wunderground / provider=wu with optional wuStation param
  • Editor UI: "Weather Underground" option in provider dropdown + station ID input when selected
  • Widget: Passes wuStation config through to the API

Note on API keys

TWC/WU API keys are only available free to Personal Weather Station owners. Users without a PWS can purchase a key from The Weather Company. The free tier provides current conditions + 5-day forecast which is what this provider uses.

Test plan

  • Configure a TWC API key via env var or AppSettings
  • Select "Weather Underground" as provider in the weather widget editor
  • Verify current conditions + 5-day forecast render correctly
  • Test with a PWS station ID to verify hyper-local sensor overlay
  • Test without station ID (TWC-only mode)
  • Verify unit conversion (°C/°F, wind units) works correctly

🤖 Generated with Claude Code

sth2258 and others added 2 commits September 3, 2026 12:08
School Rotation: tracks a configurable N-day rotating school schedule per
child with holiday/snow-day exclusions that pause the rotation. Shows
today's specials, tomorrow's preview, and an upcoming lookahead.

Daily Inspiration: displays a funny, kid-friendly motivational message
that rotates each morning. Ships with 2000 unique messages (~5.5 years
without repeating).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds Weather Underground (The Weather Company) as a new weather data source,
addressing issue jeremiaa#67. Supports both TWC geocode-based weather and optional
Personal Weather Station (PWS) hyper-local readings.

- New credentials module (wunderground-credentials.ts) for API key storage
- TWC iconCode (0-47) → WMO code mapper for condition normalization
- Dual-mode fetching: TWC current + 5-day forecast, with optional PWS overlay
- Provider dropdown option + station ID field in WeatherInspector
- wuStation query param passthrough in WeatherWidget

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant