Update docs for v2 release

main
swanie98635 2 months ago
parent d6ba3e62b8
commit be33a0a063

@ -4,22 +4,28 @@
It provides **automated verbal announcements** for: It provides **automated verbal announcements** for:
* **Active Weather Alerts**: Warnings, watches, and advisories as they are issued. * **Active Weather Alerts**: Warnings, watches, and advisories as they are issued.
* **Daily Reports**: Detailed forecast, current conditions, sunrise/sunset, and moon phase. * **Civil Emergencies**: Amber Alerts, Nuclear events, etc. (via Alert Ready Canada / NWS).
* **Time Announcements**: Current local time at start of report. * **Daily Reports**: Detailed forecast, current conditions, sunrise/sunset.
* **Startup Status**: System readiness and monitoring interval announcements.
## Features ## Features
* **Multi-Provider Support**: * **Multi-Provider Support**:
* 🇺🇸 **USA**: Uses National Weather Service (NWS) API. * 🇺🇸 **USA**: Uses National Weather Service (NWS) API.
* 🇨🇦 **Canada**: Uses Environment Canada data. * 🇨🇦 **Canada**: Uses Environment Canada & NAAD Alert Ready (CAP).
* *Extensible*: Plugin architecture allows adding more countries easily. * **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**: * **Smart Location**:
* **GPS/GNSS**: Automatically detects location using `gpsd`. * **Geospatial Filtering**: Uses CAP polygons to determine if *your* specific location is in the alert area.
* **Static**: Configurable fallback lat/lon. * **Static**: Configurable fixed lat/lon.
* **Auto-Zone**: Automatically monitors the correct County, Forecast Zone, and Fire Weather Zone for your location. * **Audio**:
* **Customizable**: * Generates prompts using `pico2wave` (or configurable TTS).
* **Extra Zones**: Manually monitor adjacent counties or specific stations (e.g., `VAC001` or `ON/s0000430`). * Plays directly to local or remote ASL3 nodes via `rpt playback`.
* **Audio**: Works with `pico2wave`, `flite`, or any CLI TTS engine. Plays to multiple ASL3 nodes. * **Reliability**:
* Systemd service integration.
* Robust "Wait for Asterisk" boot logic.
## Installation ## Installation
@ -30,64 +36,69 @@ sudo apt update
sudo apt install python3-pip libttspico-utils gpsd sox sudo apt install python3-pip libttspico-utils gpsd sox
``` ```
### Install Package ### Deploying Code
1. Clone this repository to your scripts directory (e.g., `/etc/asterisk/scripts/`). The recommended install location is `/opt/asl3_wx_announce`.
2. Install python dependencies:
```bash **Using the Deployment Script (Windows/PowerShell):**
pip3 install -r requirements.txt 1. Update `config.yaml` with your settings.
``` 2. Run `.\deploy.ps1`.
* This script bundles the code, uploads it via SSH, installs dependencies, and registers/restarts the systemd service.
**Manual Installation (Linux):**
1. Copy files to `/opt/asl3_wx_announce`.
2. Install requirements: `pip3 install -r requirements.txt`.
3. Copy `asl3-wx.service` to `/etc/systemd/system/`.
4. Enable and start: `sudo systemctl enable --now asl3-wx`.
## Configuration ## Configuration
Copy the example config: Copy the example config:
```bash ```bash
cp config.yaml.example config.yaml cp config.example.yaml config.yaml
``` ```
Edit `config.yaml`: Edit `config.yaml`:
```yaml ```yaml
location: location:
type: auto # Use 'auto' for GPS, or 'static' for fixed lat/lon source: fixed
# latitude: 45.123 latitude: 46.8139
# longitude: -75.123 longitude: -71.2080
voice: station:
tts_command: 'pico2wave -w {file} "{text}"' callsign: "N7XOB"
report_style: "quick" # 'quick' (2 days) or 'verbose' (7 days)
audio:
nodes:
- "1966" # Your Private Node
- "92394" # Your Public Node
alerts: alerts:
min_severity: "Watch" min_severity: "Watch"
extra_zones: # Optional: Monitor extra areas check_interval_minutes: 10
- "VAC001" # US County FIPS # Alert Ready (Canada)
- "ON/s0000430" # Canadian Station ID enable_alert_ready: true
``` ```
## Usage ## Usage
### Test Full Report ### Test Full Report
Announce current conditions, forecast, and time immediately: Trigger an immediate weather report:
```bash ```bash
python3 -m asl3_wx_announce.main --config config.yaml --report cd /opt/asl3_wx_announce
sudo python3 -m asl3_wx_announce.main --report
``` ```
### Run Alert Monitor ### Test Alert Simulation
Run in the background to announce *new* alerts as they happen: Simulate a full emergency alert sequence (Tone + Message) to test audio:
```bash ```bash
python3 -m asl3_wx_announce.main --config config.yaml --monitor sudo python3 -m asl3_wx_announce.main --test-alert
``` ```
### Scheduled Hourly Reports ### Service Status
To announce the weather every hour, add to `crontab -u asterisk -e`: Check the background monitor:
```cron ```bash
0 * * * * /usr/bin/python3 -m asl3_wx_announce.main --config /path/to/config.yaml --report sudo systemctl status asl3-wx
sudo journalctl -u asl3-wx -f
``` ```
## Contributing ## Contributing
Pull requests are welcome! See `provider/` directory to add support for new countries. Pull requests are welcome!
## License ## License
MIT License MIT License

Loading…
Cancel
Save

Powered by TurnKey Linux.