Summary
Add the ability to listen to live NOAA Weather Radio (NWR) broadcasts for the user's selected location or any location in their list.
Background
NOAA Weather Radio broadcasts continuous weather information on VHF frequencies (162.400-162.550 MHz). Many stations have online audio streams (MP3/Icecast) hosted by volunteers and services like weatherUSA.net.
Implementation
Audio Playback
AccessiWeather already uses sound_lib (Bass audio library wrapper) for sound packs. sound_lib.stream.URLStream supports internet audio streaming natively:
from sound_lib import stream, output
s = stream.URLStream(url="http://example.com:8000/stream.mp3")
s.play() # starts streaming
s.stop() # stops
No new dependencies required.
Station Database
- Build a station lookup table: callsign, name, lat/lon, stream URL
- Source station data from weatherUSA.net and/or NWS station listings
- Find nearest station to selected location using haversine distance
UI
- "Listen to NOAA Radio" button or menu item (View menu)
- Small player dialog with:
- Station name and callsign display
- Play/Stop button
- Volume slider
- Station selector (nearest + nearby alternatives)
- All controls must have accessible names for screen readers
Edge Cases
- Not all stations have online streams; show clear message when unavailable
- Handle stream disconnects/stalls gracefully (
is_stalled property)
- US-only feature; hide or disable for international locations
- Stream URLs may change over time; consider a maintainable data format
Acceptance Criteria
Summary
Add the ability to listen to live NOAA Weather Radio (NWR) broadcasts for the user's selected location or any location in their list.
Background
NOAA Weather Radio broadcasts continuous weather information on VHF frequencies (162.400-162.550 MHz). Many stations have online audio streams (MP3/Icecast) hosted by volunteers and services like weatherUSA.net.
Implementation
Audio Playback
AccessiWeather already uses
sound_lib(Bass audio library wrapper) for sound packs.sound_lib.stream.URLStreamsupports internet audio streaming natively:No new dependencies required.
Station Database
UI
Edge Cases
is_stalledproperty)Acceptance Criteria