mirror of
https://github.com/SpudGunMan/meshing-around.git
synced 2026-03-28 17:32:36 +01:00
Add documentation for WSJT-X and JS8Call integration
Co-authored-by: SpudGunMan <12676665+SpudGunMan@users.noreply.github.com>
This commit is contained in:
@@ -56,6 +56,8 @@ Mesh Bot is a feature-rich Python bot designed to enhance your [Meshtastic](http
|
||||
- **SNR RF Activity Alerts**: Monitor radio frequencies and receive alerts when high SNR (Signal-to-Noise Ratio) activity is detected.
|
||||
- **Hamlib Integration**: Use Hamlib (rigctld) to monitor the S meter on a connected radio.
|
||||
- **Speech-to-Text Broadcasting**: Convert received audio to text using [Vosk](https://alphacephei.com/vosk/models) and broadcast it to the mesh.
|
||||
- **WSJT-X Integration**: Monitor WSJT-X (FT8, FT4, WSPR, etc.) decode messages and forward them to the mesh network with optional callsign filtering.
|
||||
- **JS8Call Integration**: Monitor JS8Call messages and forward them to the mesh network with optional callsign filtering.
|
||||
|
||||
### Check-In / Check-Out & Asset Tracking
|
||||
- **Asset Tracking**: Maintain a check-in/check-out list for nodes or assets—ideal for accountability of people and equipment (e.g., Radio-Net, FEMA, trailhead groups).
|
||||
|
||||
@@ -218,11 +218,77 @@ Configure in `[fileMon]` section of `config.ini`.
|
||||
|
||||
## Radio Monitoring
|
||||
|
||||
The Radio Monitoring module provides several ways to integrate amateur radio software with the mesh network.
|
||||
|
||||
### Hamlib Integration
|
||||
|
||||
| Command | Description |
|
||||
|--------------|-----------------------------------------------|
|
||||
| `radio` | Monitor radio SNR via Hamlib |
|
||||
|
||||
Configure in `[radioMon]` section of `config.ini`.
|
||||
Monitors signal strength (S-meter) from a connected radio via Hamlib's `rigctld` daemon. When the signal exceeds a configured threshold, it broadcasts an alert to the mesh network with frequency and signal strength information.
|
||||
|
||||
### WSJT-X Integration
|
||||
|
||||
Monitors WSJT-X decode messages (FT8, FT4, WSPR, etc.) via UDP and forwards them to the mesh network. You can optionally filter by specific callsigns.
|
||||
|
||||
**Features:**
|
||||
- Listens to WSJT-X UDP broadcasts (default port 2237)
|
||||
- Decodes WSJT-X protocol messages
|
||||
- Filters by watched callsigns (or monitors all if no filter is set)
|
||||
- Forwards decode messages with SNR information to configured mesh channels
|
||||
|
||||
**Example Output:**
|
||||
```
|
||||
WSJT-X FT8: CQ K7MHI CN87 (+12dB)
|
||||
```
|
||||
|
||||
### JS8Call Integration
|
||||
|
||||
Monitors JS8Call messages via TCP API and forwards them to the mesh network. You can optionally filter by specific callsigns.
|
||||
|
||||
**Features:**
|
||||
- Connects to JS8Call TCP API (default port 2442)
|
||||
- Listens for directed and activity messages
|
||||
- Filters by watched callsigns (or monitors all if no filter is set)
|
||||
- Forwards messages with SNR information to configured mesh channels
|
||||
|
||||
**Example Output:**
|
||||
```
|
||||
JS8Call from W1ABC: HELLO WORLD (+8dB)
|
||||
```
|
||||
|
||||
### Configuration
|
||||
|
||||
Configure all radio monitoring features in the `[radioMon]` section of `config.ini`:
|
||||
|
||||
```ini
|
||||
[radioMon]
|
||||
# Hamlib monitoring
|
||||
enabled = False
|
||||
rigControlServerAddress = localhost:4532
|
||||
signalDetectionThreshold = -10
|
||||
|
||||
# WSJT-X monitoring
|
||||
wsjtxDetectionEnabled = False
|
||||
wsjtxUdpServerAddress = 127.0.0.1:2237
|
||||
wsjtxWatchedCallsigns = K7MHI,W1AW
|
||||
|
||||
# JS8Call monitoring
|
||||
js8callDetectionEnabled = False
|
||||
js8callServerAddress = 127.0.0.1:2442
|
||||
js8callWatchedCallsigns = K7MHI,W1AW
|
||||
|
||||
# Broadcast settings (shared by all radio monitoring)
|
||||
sigWatchBroadcastCh = 2
|
||||
sigWatchBroadcastInterface = 1
|
||||
```
|
||||
|
||||
**Configuration Notes:**
|
||||
- Leave `wsjtxWatchedCallsigns` or `js8callWatchedCallsigns` empty to monitor all callsigns
|
||||
- Callsigns are comma-separated, case-insensitive
|
||||
- Both services can run simultaneously
|
||||
- Messages are broadcast to the same channels as Hamlib alerts
|
||||
|
||||
---
|
||||
|
||||
@@ -794,8 +860,11 @@ The bot will automatically extract and truncate content to fit Meshtastic's mess
|
||||
### Radio Monitoring
|
||||
A module allowing a Hamlib compatible radio to connect to the bot. When functioning, it will message the configured channel with a message of in use. **Requires hamlib/rigctld to be running as a service.**
|
||||
|
||||
Additionally, the module supports monitoring WSJT-X and JS8Call for amateur radio digital modes.
|
||||
|
||||
```ini
|
||||
[radioMon]
|
||||
# Hamlib monitoring
|
||||
enabled = True
|
||||
rigControlServerAddress = localhost:4532
|
||||
sigWatchBroadcastCh = 2 # channel to broadcast to can be 2,3
|
||||
@@ -803,8 +872,30 @@ signalDetectionThreshold = -10 # minimum SNR as reported by radio via hamlib
|
||||
signalHoldTime = 10 # hold time for high SNR
|
||||
signalCooldown = 5 # the following are combined to reset the monitor
|
||||
signalCycleLimit = 5
|
||||
|
||||
# WSJT-X monitoring (FT8, FT4, WSPR, etc.)
|
||||
# Monitors WSJT-X UDP broadcasts and forwards decode messages to mesh
|
||||
wsjtxDetectionEnabled = False
|
||||
wsjtxUdpServerAddress = 127.0.0.1:2237 # UDP address and port where WSJT-X broadcasts
|
||||
wsjtxWatchedCallsigns = # Comma-separated list of callsigns to watch (empty = all)
|
||||
|
||||
# JS8Call monitoring
|
||||
# Connects to JS8Call TCP API and forwards messages to mesh
|
||||
js8callDetectionEnabled = False
|
||||
js8callServerAddress = 127.0.0.1:2442 # TCP address and port where JS8Call API listens
|
||||
js8callWatchedCallsigns = # Comma-separated list of callsigns to watch (empty = all)
|
||||
|
||||
# Broadcast settings (shared by Hamlib, WSJT-X, and JS8Call)
|
||||
sigWatchBroadcastInterface = 1
|
||||
```
|
||||
|
||||
**Setup Notes:**
|
||||
- **WSJT-X**: Enable UDP Server in WSJT-X settings (File → Settings → Reporting → Enable UDP Server)
|
||||
- **JS8Call**: Enable TCP Server in JS8Call settings (File → Settings → Reporting → Enable TCP Server API)
|
||||
- Both services can run simultaneously
|
||||
- Leave callsign filters empty to monitor all activity
|
||||
- Callsigns are case-insensitive and comma-separated (e.g., `K7MHI,W1AW`)
|
||||
|
||||
### File Monitoring
|
||||
Some dev notes for ideas of use
|
||||
|
||||
|
||||
Reference in New Issue
Block a user