A very early alpha test of an application for ham radio operators using allstar3 to make periodic and event based alerts for a variety of weather, civil and geologic situations. Works in the US and Canada. Uses GPS if you are mobile, but also allows you to fix a position if you are not travelling. Let's make this code keep people safe !
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
2 months ago | |
|---|---|---|
| asl3_wx_announce | 2 months ago | |
| err pastes | 2 months ago | |
| .gitignore | 2 months ago | |
| LICENSE | 2 months ago | |
| README.md | 2 months ago | |
| asl3-wx.service | 2 months ago | |
| config.example.yaml | 2 months ago | |
| config.yaml.example | 2 months ago | |
| config_fixed.yaml | 2 months ago | |
| debug_ec.py | 2 months ago | |
| debugv2.log | 2 months ago | |
| deploy.ps1 | 2 months ago | |
| diagnose_audio.py | 2 months ago | |
| pydantic.log | 2 months ago | |
| requirements.txt | 2 months ago | |
| test_tts.py | 2 months ago | |
README.md
ASL3 Weather Announcer
ASL3 Weather Announcer is a flexible, multi-country weather alert and reporting system designed for AllStarLink 3 (Asterisk) nodes.
It provides automated verbal announcements for:
- Active Weather Alerts: Warnings, watches, and advisories as they are issued.
- Civil Emergencies: Amber Alerts, Nuclear events, etc. (via Alert Ready Canada / NWS).
- Daily Reports: Detailed forecast, current conditions, sunrise/sunset.
- Startup Status: System readiness and monitoring interval announcements.
Features
- Multi-Provider Support:
- 🇺🇸 USA: Uses National Weather Service (NWS) API.
- 🇨🇦 Canada: Uses Environment Canada & NAAD Alert Ready (CAP).
- Dynamic Polling:
- Polls every 10 minutes (configurable) normally.
- Automatically speeds up to 1 minute during active Watches/Warnings.
- Verbal announcements when polling interval changes.
- Smart Location:
- Geospatial Filtering: Uses CAP polygons to determine if your specific location is in the alert area.
- Static: Configurable fixed lat/lon.
- Audio:
- Generates prompts using
pico2wave(or configurable TTS). - Plays directly to local or remote ASL3 nodes via
rpt playback.
- Generates prompts using
- Reliability:
- Systemd service integration.
- Robust "Wait for Asterisk" boot logic.
Installation
Prerequisites
On your ASL3 server (Debian/Raspbian):
sudo apt update
sudo apt install python3-pip libttspico-utils gpsd sox
Deploying Code
The recommended install location is /opt/asl3_wx_announce.
Using the Deployment Script (Windows/PowerShell):
- Update
config.yamlwith your settings. - Run
.\deploy.ps1.
- This script bundles the code, uploads it via SSH, installs dependencies, and registers/restarts the systemd service.
Manual Installation (Linux):
- Copy files to
/opt/asl3_wx_announce. - Install requirements:
pip3 install -r requirements.txt. - Copy
asl3-wx.serviceto/etc/systemd/system/. - Enable and start:
sudo systemctl enable --now asl3-wx.
Configuration
Copy the example config:
cp config.example.yaml config.yaml
Edit config.yaml:
location:
source: fixed
latitude: 46.8139
longitude: -71.2080
station:
callsign: "N7XOB"
report_style: "quick" # 'quick' (2 days) or 'verbose' (7 days)
alerts:
min_severity: "Watch"
check_interval_minutes: 10
# Alert Ready (Canada)
enable_alert_ready: true
Usage
Test Full Report
Trigger an immediate weather report:
cd /opt/asl3_wx_announce
sudo python3 -m asl3_wx_announce.main --report
Test Alert Simulation
Simulate a full emergency alert sequence (Tone + Message) to test audio:
sudo python3 -m asl3_wx_announce.main --test-alert
Service Status
Check the background monitor:
sudo systemctl status asl3-wx
sudo journalctl -u asl3-wx -f
Contributing
Pull requests are welcome!
License
MIT License