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.
 
 
 
 
swanie98635 5ddbda1b47
docs: update readme with multi-language support info
2 days ago
.venv Fix callsign logic for Quebec 4 days ago
asl3_wx_announce feat: add French language support and update config example 2 days ago
err pastes Merge: Resolving conflicts by accepting local changes for 1.8.0 features 1 week ago
.gitignore Initial commit of ASL3 Weather Announcer 1 week ago
LICENSE Initial commit of ASL3 Weather Announcer 1 week ago
README.md docs: update readme with multi-language support info 2 days ago
asl3-wx.service Enhancement: Hourly reports, Solar Flux, Time Error checks, and Deploy script updates 1 week ago
config.example.yaml Add French language support 4 days ago
config.yaml.example feat: add French language support and update config example 2 days ago
config_fixed.yaml Update config_fixed.yaml 1 week ago
debug_ec.py Initial commit of ASL3 Weather Announcer 1 week ago
debugv2.log Initial commit of ASL3 Weather Announcer 1 week ago
deploy.ps1 Enhancement: Hourly reports, Solar Flux, Time Error checks, and Deploy script updates 1 week ago
diagnose_audio.py Update diagnose_audio.py 1 week ago
output.txt Fix callsign logic for Quebec 4 days ago
output_fixed.txt Fix callsign logic for Quebec 4 days ago
package.tar fix: ensure mobile location check is committed 2 days ago
pydantic.log Initial commit of ASL3 Weather Announcer 1 week ago
reproduce_callsign.py Fix callsign logic for Quebec 4 days ago
requirements.txt Initial commit of ASL3 Weather Announcer 1 week ago
test_tts.py Initial commit of ASL3 Weather Announcer 1 week ago
verify_nodes.py Enhancement: Hourly reports, Solar Flux, Time Error checks, and Deploy script updates 1 week ago
verify_report.py Enhancement: Hourly reports, Solar Flux, Time Error checks, and Deploy script updates 1 week 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.
  • Daily Reports: Detailed forecast, current conditions, sunrise/sunset, and moon phase.
  • Time Announcements: Current local time at start of report.

Features

  • Multi-Provider Support:
    • 🇺🇸 USA: Uses National Weather Service (NWS) API.
    • 🇨🇦 Canada: Uses Environment Canada data.
    • Extensible: Plugin architecture allows adding more countries easily.
  • Smart Location:
    • GPS/GNSS: Automatically detects location using gpsd.
    • Static: Configurable fallback lat/lon.
    • Auto-Zone: Automatically monitors the correct County, Forecast Zone, and Fire Weather Zone for your location.
  • Multi-Language Support (New!):
    • Languages: Full support for English and French (added 2/4/26).
    • Extensible: Designed to easily adapt for Spanish, German, and Italian.
    • Contributors Welcome: We are looking for fluent speakers to help refine translations for new languages.
  • Customizable:
    • Extra Zones: Manually monitor adjacent counties or specific stations (e.g., VAC001 or ON/s0000430).
    • Audio: Defaults to pico2wave — a lightweight, nimble offline TTS engine that sounds clear and runs efficiently on Raspberry Pi. Also works with flite or other CLI engines.

Installation

Prerequisites

On your ASL3 server (Debian/Raspbian):

sudo apt update
sudo apt install python3-pip libttspico-utils gpsd

Install Package

  1. Clone this repository to your scripts directory (e.g., /etc/asterisk/scripts/).
  2. Install python dependencies:
    pip3 install -r requirements.txt
    

Configuration

Copy the example config:

cp config.yaml.example config.yaml

Edit config.yaml:

location:
  type: auto         # Use 'auto' for GPS, or 'static' for fixed lat/lon
  # latitude: 45.123
  # longitude: -75.123

language: en         # Options: en, fr

voice:
  tts_command: 'pico2wave -l {lang} -w {file} "{text}"'

audio:
  nodes: 
    - "1966"         # Your Private Node
    - "92394"        # Your Public Node

alerts:
  min_severity: "Watch"
  extra_zones:       # Optional: Monitor extra areas
    - "VAC001"       # US County FIPS
    - "ON/s0000430"  # Canadian Station ID

Usage

Test Full Report

Announce current conditions, forecast, and time immediately:

python3 -m asl3_wx_announce.main --config config.yaml --report

Run Alert Monitor

Run in the background to announce new alerts as they happen:

python3 -m asl3_wx_announce.main --config config.yaml --monitor

Scheduled Hourly Reports

To announce the weather every hour, add to crontab -u asterisk -e:

0 * * * * /usr/bin/python3 -m asl3_wx_announce.main --config /path/to/config.yaml --report

Contributing

Pull requests are welcome! See provider/ directory to add support for new countries.

License

MIT License

Powered by TurnKey Linux.