⚠️ Hotfix — v0.3.00 ZIP was missing required files
v0.3.00 shipped with only plugin.py, plugin.json, and logo.png. Three required files were missing — channels.json (satellite radio channel catalog), channel_aliases.json (name matching aliases), and eas_tone.wav (EAS attention tone). Channel matching was unavailable and EAS alerts fired silently. v0.3.01 corrects the ZIP. No code changes from v0.3.00.
✨ New Features
EAS/JAS Weather Alerts
- Monitors NOAA/NWS for active weather alerts in configured zone codes and automatically activates a broadcast-style alert bar when an alert fires
- Full-width dark bar with colored severity label and scrolling crawl listing all active events; worst severity takes the label when multiple alerts are active simultaneously
- Optional dual-tone attention tone (853+960 Hz) repeating at a configurable interval
- Co-arms with Now Playing, Sports Ticker, and Custom Text — EAS takes precedence when an alert fires and the previous ticker resumes automatically when it clears
- Test EAS Alert action fires a fake alert for a configurable duration to verify your setup without waiting for a real event
- Migrate EAS action for users on older always-on EAS profiles — restores channels to passthrough and re-arms in dynamic mode
- JAS — jesmannstl Alert System. Dedicated to jesmannstl, a weather fanatic and beloved member of the Dispatcharr community who passed away.
Sports Ticker — On-Demand Trigger Modes
- Active Games Only: fires automatically when any selected league has a live game; clears when all games end
- Favorite Teams Only: fires only when one of your configured teams is currently playing
- Static vs Scrolling style toggle, multi-color mode, and Transcode Quality selector (1080p30 / 720p30 / 720p / Full)
- Update Sports Ticker action: change settings on the fly without disabling and re-enabling
- Test Sports Ticker action: verify font, color, and position without waiting for a live game
- Added FIFA World Cup, FIFA Women's World Cup, and UEFA Europa League
🔄 Changes & Improvements
Satellite Radio Now Playing — On-Demand (now the default)
- Overlay activates when a viewer tunes in, returns to passthrough when idle ~30 seconds
- Reduces most installs from hundreds of always-on re-encodes to only the channels currently being watched
- Audio-only channel background upgraded from 854x480@15fps to 1280x720@15fps
Custom Text — On-Demand
- Channel stays on passthrough until text is set; clearing the text instantly restores passthrough — no disable and re-enable needed
⚙️ Under the Hood
- Distributed worker locks prevent two Dispatcharr workers from polling the same channel simultaneously
- Per-channel fetch deduplication: one outbound fetch per channel at a time, result shared across workers — cuts background CPU from 184% to ~5% on multi-worker installs
Checksums
MD5: 9dd4298e30fd17c5eda403f3e4e2d101
SHA256: c37a19bb6d41e8417a7cdc24a2b3e0d6c3216d0074e3a1f7f73713e40e59859b