mirror of
https://github.com/craigerl/aprsd.git
synced 2026-04-26 18:03:59 -04:00
updated docs. Added PLUGINS.md
This commit is contained in:
parent
f9cdb45ea0
commit
730f6585af
430
PLUGINS.md
Normal file
430
PLUGINS.md
Normal file
@ -0,0 +1,430 @@
|
||||
# APRSD Built-in Plugins
|
||||
|
||||
APRSD comes with several built-in plugins that provide various functionality out of the box. These plugins are automatically available when you install APRSD and can be enabled or disabled through the configuration file.
|
||||
|
||||
## Message Command Plugins
|
||||
|
||||
These plugins respond to APRS messages sent to your APRSD callsign.
|
||||
|
||||
### PingPlugin
|
||||
|
||||
**Command:** `ping`, `p`, or `p` followed by a space
|
||||
|
||||
**Description:** Responds with "Pong!" and the current time in HH:MM:SS format.
|
||||
|
||||
**Usage:** Send a message containing "ping" to your APRSD callsign.
|
||||
|
||||
**Example:**
|
||||
```
|
||||
You: ping
|
||||
APRSD: Pong! 14:30:05
|
||||
```
|
||||
|
||||
**Configuration:** No configuration required.
|
||||
|
||||
**Plugin Path:** `aprsd.plugins.ping.PingPlugin`
|
||||
|
||||
---
|
||||
|
||||
### FortunePlugin
|
||||
|
||||
**Command:** `fortune`, `f`, or `f` followed by a space
|
||||
|
||||
**Description:** Returns a random fortune cookie message using the system's `fortune` command.
|
||||
|
||||
**Usage:** Send a message containing "fortune" to your APRSD callsign.
|
||||
|
||||
**Requirements:** Requires the `fortune` command to be installed on the system. The plugin will automatically search common installation paths (`/usr/games/fortune`, `/usr/local/bin/fortune`, `/usr/bin/fortune`) and disable itself if not found.
|
||||
|
||||
**Example:**
|
||||
```
|
||||
You: fortune
|
||||
APRSD: A journey of a thousand miles begins with a single step.
|
||||
```
|
||||
|
||||
**Configuration:** No configuration required.
|
||||
|
||||
**Plugin Path:** `aprsd.plugins.fortune.FortunePlugin`
|
||||
|
||||
---
|
||||
|
||||
### TimePlugin
|
||||
|
||||
**Command:** `time`, `t`, or `t` followed by a space
|
||||
|
||||
**Description:** Returns the current local time of the APRSD server in a human-readable format (fuzzy time) with timezone information.
|
||||
|
||||
**Usage:** Send a message containing "time" to your APRSD callsign.
|
||||
|
||||
**Example:**
|
||||
```
|
||||
You: time
|
||||
APRSD: half past two (14:30 PDT)
|
||||
```
|
||||
|
||||
**Configuration:** No configuration required. Uses the system's local timezone.
|
||||
|
||||
**Plugin Path:** `aprsd.plugins.time.TimePlugin`
|
||||
|
||||
---
|
||||
|
||||
### VersionPlugin
|
||||
|
||||
**Command:** `version`, `v`, or `v` followed by a space
|
||||
|
||||
**Description:** Returns the APRSD version number, server uptime, and owner callsign.
|
||||
|
||||
**Usage:** Send a message containing "version" to your APRSD callsign.
|
||||
|
||||
**Example:**
|
||||
```
|
||||
You: version
|
||||
APRSD: APRSD ver:4.2.4 uptime:2 days, 5:30:15 owner:WB4BOR
|
||||
```
|
||||
|
||||
**Configuration:** No configuration required.
|
||||
|
||||
**Plugin Path:** `aprsd.plugins.version.VersionPlugin`
|
||||
|
||||
---
|
||||
|
||||
### USWeatherPlugin
|
||||
|
||||
**Command:** `weather`, `w`, or `W` (w or W at start of message)
|
||||
|
||||
**Description:** Provides weather information for locations within the United States only. Uses the forecast.weather.gov API to fetch weather data based on the GPS beacon location of the calling callsign (or optionally a specified callsign).
|
||||
|
||||
**Usage:**
|
||||
```
|
||||
You: weather
|
||||
APRSD: 72F(68F/75F) Partly cloudy. Tonight, Clear.
|
||||
|
||||
You: weather WB4BOR
|
||||
APRSD: 65F(60F/70F) Sunny. Tonight, Partly cloudy.
|
||||
```
|
||||
|
||||
**Requirements:** Requires an `aprs_fi.apiKey` configuration option.
|
||||
|
||||
**Configuration:**
|
||||
- `aprs_fi.apiKey` - API key from aprs.fi account
|
||||
|
||||
**Note:** This plugin does not require an API key for the weather service itself, only for aprs.fi to get the GPS location.
|
||||
|
||||
**Plugin Path:** `aprsd.plugins.weather.USWeatherPlugin`
|
||||
|
||||
---
|
||||
|
||||
### USMetarPlugin
|
||||
|
||||
**Command:** `metar`, `m`, `M`, or `m` followed by a space (m or M at start of message)
|
||||
|
||||
**Description:** Provides METAR (Meteorological Aerodrome Report) weather reports for stations within the United States only. Uses the forecast.weather.gov API.
|
||||
|
||||
**Usage:**
|
||||
```
|
||||
You: metar
|
||||
APRSD: KORD 101451Z 28010KT 10SM FEW250 22/12 A3001
|
||||
|
||||
You: metar KORD
|
||||
APRSD: KORD 101451Z 28010KT 10SM FEW250 22/12 A3001
|
||||
```
|
||||
|
||||
**Requirements:** Requires an `aprs_fi.apiKey` configuration option (when querying by callsign location).
|
||||
|
||||
**Configuration:**
|
||||
- `aprs_fi.apiKey` - API key from aprs.fi account
|
||||
|
||||
**Note:** When specifying a station identifier directly (e.g., "metar KORD"), the aprs.fi API key is not required.
|
||||
|
||||
**Plugin Path:** `aprsd.plugins.weather.USMetarPlugin`
|
||||
|
||||
---
|
||||
|
||||
## WatchList Plugins
|
||||
|
||||
These plugins monitor APRS traffic and can send notifications based on watch list criteria.
|
||||
|
||||
### NotifySeenPlugin
|
||||
|
||||
**Type:** WatchList Plugin
|
||||
|
||||
**Description:** Monitors callsigns in the watch list and sends a notification message when a callsign that hasn't been seen recently (based on the configured age limit) appears on the APRS network.
|
||||
|
||||
**How it works:**
|
||||
- Tracks callsigns configured in the watch list
|
||||
- Monitors all incoming APRS packets
|
||||
- When a callsign in the watch list is seen and hasn't been seen recently (exceeds the age limit), sends a notification message to the configured alert callsign
|
||||
|
||||
**Configuration:**
|
||||
- `watch_list.enabled` - Must be set to `true`
|
||||
- `watch_list.callsigns` - List of callsigns to watch for (supports wildcards like `KM6LYW*`)
|
||||
- `watch_list.alert_callsign` - Callsign to send notifications to
|
||||
- `watch_list.alert_time_seconds` - Time threshold in seconds (default: 3600)
|
||||
|
||||
**Example Notification:**
|
||||
```
|
||||
APRSD -> WB4BOR: KM6LYW was just seen by type:'BeaconPacket'
|
||||
```
|
||||
|
||||
**Plugin Path:** `aprsd.plugins.notify.NotifySeenPlugin`
|
||||
|
||||
---
|
||||
|
||||
## HelpPlugin
|
||||
|
||||
**Command:** `help`, `h`, or `H` (h or H at start of message)
|
||||
|
||||
**Description:** Provides help information about available plugins. Can list all available plugins or provide specific help for a named plugin.
|
||||
|
||||
**Usage:**
|
||||
```
|
||||
You: help
|
||||
APRSD: Send APRS MSG of 'help' or 'help <plugin>'
|
||||
plugins: fortune ping time version weather
|
||||
|
||||
You: help weather
|
||||
APRSD: openweathermap: Send ^[wW] to get weather from your location
|
||||
openweathermap: Send ^[wW] <callsign> to get weather from <callsign>
|
||||
```
|
||||
|
||||
**Configuration:** Can be disabled by setting `load_help_plugin = false` in the configuration. The HelpPlugin is enabled by default and does not need to be listed in `enabled_plugins`.
|
||||
|
||||
**Plugin Path:** `aprsd.plugin.HelpPlugin`
|
||||
|
||||
---
|
||||
|
||||
## Enabling Built-in Plugins
|
||||
|
||||
Built-in plugins are enabled through the `enabled_plugins` configuration option in your APRSD configuration file. List the full Python path to each plugin class you want to enable, separated by commas.
|
||||
|
||||
**Example Configuration:**
|
||||
```ini
|
||||
[DEFAULT]
|
||||
enabled_plugins = aprsd.plugins.fortune.FortunePlugin,aprsd.plugins.ping.PingPlugin,aprsd.plugins.time.TimePlugin,aprsd.plugins.weather.USWeatherPlugin,aprsd.plugins.version.VersionPlugin,aprsd.plugins.notify.NotifySeenPlugin
|
||||
```
|
||||
|
||||
**Important Notes:**
|
||||
- The HelpPlugin is enabled by default and does not need to be listed in `enabled_plugins`. It can be disabled by setting `load_help_plugin = false`.
|
||||
- Some plugins may require additional configuration (API keys, etc.) and will automatically disable themselves if required configuration is missing.
|
||||
- Weather plugins may use the same command patterns. Only one weather plugin should be enabled at a time to avoid conflicts.
|
||||
- Similarly, only one METAR plugin should be enabled at a time.
|
||||
|
||||
---
|
||||
|
||||
## Listing Available Plugins
|
||||
|
||||
You can see all available built-in plugins, along with their descriptions and command patterns, by running:
|
||||
|
||||
```bash
|
||||
aprsd list-plugins
|
||||
```
|
||||
|
||||
This command will show:
|
||||
- Built-in plugins included with APRSD
|
||||
- Available plugins on PyPI that can be installed
|
||||
- Currently installed third-party plugins
|
||||
|
||||
---
|
||||
|
||||
## Plugin Types
|
||||
|
||||
APRSD plugins come in different types:
|
||||
|
||||
### RegexCommand Plugins
|
||||
These plugins respond to text commands in APRS messages. They use regular expressions to match command patterns and respond with text messages.
|
||||
|
||||
### WatchList Plugins
|
||||
These plugins monitor APRS traffic and can send notifications based on watch list criteria. They don't respond to direct commands but instead react to packets from callsigns in the watch list.
|
||||
|
||||
---
|
||||
|
||||
## Getting API Keys
|
||||
|
||||
Some plugins require API keys:
|
||||
|
||||
### aprs.fi API Key
|
||||
Required for plugins that need to look up GPS locations of callsigns (like USWeatherPlugin and USMetarPlugin):
|
||||
- Get your API key at: https://aprs.fi/api/info
|
||||
|
||||
**Note:** External weather plugins may require additional API keys. Check the documentation for the specific plugin you're using.
|
||||
|
||||
---
|
||||
|
||||
## Finding External Plugins and Extensions
|
||||
|
||||
APRSD supports external plugins and extensions that extend the functionality beyond the built-in plugins. These are distributed as separate Python packages that follow a specific naming convention.
|
||||
|
||||
### Naming Convention
|
||||
|
||||
All external APRSD plugins and extensions follow a consistent naming scheme:
|
||||
|
||||
- **Plugins:** `aprsd-<name>-plugin`
|
||||
- **Extensions:** `aprsd-<name>-extension`
|
||||
|
||||
For example:
|
||||
- `aprsd-email-plugin` - A plugin for email functionality
|
||||
- `aprsd-admin-extension` - An extension for web administration
|
||||
|
||||
### Finding Plugins and Extensions
|
||||
|
||||
#### PyPI (Python Package Index)
|
||||
|
||||
You can find all available APRSD plugins and extensions on PyPI:
|
||||
|
||||
- **Search for plugins:** https://pypi.org/search/?q=aprsd+-plugin
|
||||
- **Search for extensions:** https://pypi.org/search/?q=aprsd+-extension
|
||||
- **General APRSD search:** https://pypi.org/search/?q=aprsd
|
||||
|
||||
The `aprsd list-plugins` command also shows available plugins and extensions from PyPI along with installation status.
|
||||
|
||||
#### GitHub
|
||||
|
||||
Many APRSD plugins and extensions are hosted on GitHub under the [hemna organization](https://github.com/hemna):
|
||||
|
||||
- **Organization:** https://github.com/hemna/
|
||||
- **Search for plugins:** https://github.com/orgs/hemna/repositories?q=aprsd-plugin
|
||||
- **Search for extensions:** https://github.com/orgs/hemna/repositories?q=aprsd-extension
|
||||
|
||||
### Installing External Plugins and Extensions
|
||||
|
||||
To install an external plugin or extension, use pip:
|
||||
|
||||
```bash
|
||||
pip install aprsd-<name>-plugin
|
||||
# or
|
||||
pip install aprsd-<name>-extension
|
||||
```
|
||||
|
||||
After installation, the plugin or extension will be automatically discovered by APRSD. You may need to add it to your `enabled_plugins` configuration or configure it according to its documentation.
|
||||
|
||||
### Available External Plugins
|
||||
|
||||
The following external plugins are available:
|
||||
|
||||
#### Email Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-email-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-email-plugin
|
||||
- **Description:** Send and receive email via APRS messages.
|
||||
|
||||
#### Location Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-location-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-location-plugin
|
||||
- **Description:** Get the latest GPS location of a callsign.
|
||||
|
||||
#### Location Data Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-locationdata-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-locationdata-plugin
|
||||
- **Description:** Get detailed GPS location data for a callsign.
|
||||
|
||||
#### DigiPi Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-digipi-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-digipi-plugin
|
||||
- **Description:** Look for DigiPi beacon packets and provide DigiPi-specific functionality.
|
||||
|
||||
#### W3W Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-w3w-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-w3w-plugin
|
||||
- **Description:** Get What3Words (w3w) coordinates for a location.
|
||||
|
||||
#### MQTT Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-mqtt-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-mqtt-plugin
|
||||
- **Description:** Send APRS packets to an MQTT topic for integration with IoT systems.
|
||||
|
||||
#### Telegram Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-telegram-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-telegram-plugin
|
||||
- **Description:** Send and receive messages via Telegram.
|
||||
|
||||
#### Borat Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-borat-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-borat-plugin
|
||||
- **Description:** Get random Borat quotes via APRS messages.
|
||||
|
||||
#### WXNow Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-wxnow-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-wxnow-plugin
|
||||
- **Description:** Get weather reports from the closest N weather stations.
|
||||
|
||||
#### WeeWX Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-weewx-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-weewx-plugin
|
||||
- **Description:** Get weather data from your WeeWX weather station.
|
||||
|
||||
#### Slack Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-slack-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-slack-plugin
|
||||
- **Description:** Send and receive messages to/from a Slack channel.
|
||||
|
||||
#### Sentry Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-sentry-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-sentry-plugin
|
||||
- **Description:** Integration with Sentry for error tracking and monitoring.
|
||||
|
||||
#### Repeat Plugins
|
||||
- **PyPI:** https://pypi.org/project/aprsd-repeat-plugins/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-repeat-plugins
|
||||
- **Description:** Plugins for the REPEAT service - get nearest Ham radio repeaters.
|
||||
|
||||
#### Twitter Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-twitter-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-twitter-plugin
|
||||
- **Description:** Make tweets from your Ham Radio via APRS messages.
|
||||
|
||||
#### Time OpenCage Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-timeopencage-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-timeopencage-plugin
|
||||
- **Description:** Get local time for a callsign using OpenCage geocoding.
|
||||
|
||||
#### Stock Plugin
|
||||
- **PyPI:** https://pypi.org/project/aprsd-stock-plugin/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-stock-plugin
|
||||
- **Description:** Get stock quotes from your Ham radio via APRS messages.
|
||||
|
||||
### Available External Extensions
|
||||
|
||||
The following external extensions are available:
|
||||
|
||||
#### Admin Extension
|
||||
- **PyPI:** https://pypi.org/project/aprsd-admin-extension/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-admin-extension
|
||||
- **Description:** Web-based administration interface for APRSD with real-time status, configuration management, and monitoring capabilities.
|
||||
|
||||
#### WebChat Extension
|
||||
- **PyPI:** https://pypi.org/project/aprsd-webchat-extension/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-webchat-extension
|
||||
- **Description:** Web-based APRS messaging interface that allows you to send and receive APRS messages through a browser.
|
||||
|
||||
#### Rich CLI Extension
|
||||
- **PyPI:** https://pypi.org/project/aprsd-rich-cli-extension/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-rich-cli-extension
|
||||
- **Description:** Enhanced Textual-based rich CLI versions of APRSD commands with improved user interface and interactivity.
|
||||
|
||||
#### IRC Extension
|
||||
- **PyPI:** https://pypi.org/project/aprsd-irc-extension/
|
||||
- **GitHub:** https://github.com/hemna/aprsd-irc-extension
|
||||
- **Description:** IRC-like server command for APRS, providing an IRC-style interface to the APRS network.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Plugin Not Responding
|
||||
1. Check that the plugin is listed in `enabled_plugins` in your configuration file
|
||||
2. Verify the plugin path is correct
|
||||
3. Check the logs for any error messages
|
||||
4. Ensure any required API keys are configured
|
||||
|
||||
### Fortune Plugin Not Working
|
||||
- Ensure the `fortune` command is installed on your system
|
||||
- Check that the fortune binary is in one of the standard paths
|
||||
- The plugin will automatically disable itself if fortune is not found
|
||||
|
||||
### Weather Plugin Not Working
|
||||
- Verify your `aprs_fi.apiKey` is configured correctly
|
||||
- Check that the callsign has a recent GPS beacon on aprs.fi
|
||||
- Ensure the weather service API is accessible from your server
|
||||
|
||||
### WatchList Plugin Not Sending Notifications
|
||||
- Verify `watch_list.enabled` is set to `true`
|
||||
- Check that `watch_list.callsigns` contains the callsigns you want to monitor
|
||||
- Ensure `watch_list.alert_callsign` is set to your callsign
|
||||
- Verify the callsigns in the watch list are actually being seen on APRS-IS
|
||||
@ -59,7 +59,7 @@ TimePlugin
|
||||
**Command:** ``time``, ``t``, or ``t`` followed by a space
|
||||
|
||||
**Description:** Returns the current local time of the APRSD server in a human-readable format
|
||||
with timezone information.
|
||||
(fuzzy time) with timezone information.
|
||||
|
||||
**Usage:** Send a message containing "time" to your APRSD callsign.
|
||||
|
||||
@ -74,35 +74,6 @@ with timezone information.
|
||||
**Plugin Path:** ``aprsd.plugins.time.TimePlugin``
|
||||
|
||||
|
||||
TimeOWMPlugin
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
**Command:** ``time``, ``t``, or ``t`` followed by a space
|
||||
|
||||
**Description:** Returns the current time based on the GPS beacon location of the calling
|
||||
callsign (or optionally a specified callsign). Uses OpenWeatherMap API to determine the
|
||||
timezone for the location.
|
||||
|
||||
**Usage:**
|
||||
::
|
||||
|
||||
You: time
|
||||
APRSD: quarter to three (14:45 EST)
|
||||
|
||||
You: time WB4BOR
|
||||
APRSD: half past two (14:30 PDT)
|
||||
|
||||
**Requirements:**
|
||||
- Requires an ``aprs_fi.apiKey`` configuration option
|
||||
- Requires an ``owm_weather_plugin.apiKey`` configuration option
|
||||
|
||||
**Configuration:**
|
||||
- ``aprs_fi.apiKey`` - API key from aprs.fi account
|
||||
- ``owm_weather_plugin.apiKey`` - OpenWeatherMap API key
|
||||
|
||||
**Plugin Path:** ``aprsd.plugins.time.TimeOWMPlugin``
|
||||
|
||||
|
||||
VersionPlugin
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
@ -181,71 +152,6 @@ aprs.fi API key is not required.
|
||||
**Plugin Path:** ``aprsd.plugins.weather.USMetarPlugin``
|
||||
|
||||
|
||||
OWMWeatherPlugin
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
**Command:** ``weather``, ``w``, or ``W`` (w or W at start of message)
|
||||
|
||||
**Description:** Provides weather information using the OpenWeatherMap API. Works worldwide
|
||||
and provides current weather conditions including temperature, dew point, wind speed and
|
||||
direction, and humidity.
|
||||
|
||||
**Usage:**
|
||||
::
|
||||
|
||||
You: weather
|
||||
APRSD: clear sky 72.1F/65.2F Wind 5@270 45%
|
||||
|
||||
You: weather WB4BOR
|
||||
APRSD: partly cloudy 68.5F/62.1F Wind 8@180G12 52%
|
||||
|
||||
**Requirements:**
|
||||
- Requires an ``aprs_fi.apiKey`` configuration option
|
||||
- Requires an ``owm_weather_plugin.apiKey`` configuration option
|
||||
|
||||
**Configuration:**
|
||||
- ``aprs_fi.apiKey`` - API key from aprs.fi account
|
||||
- ``owm_weather_plugin.apiKey`` - OpenWeatherMap API key (get one at https://home.openweathermap.org/api_keys)
|
||||
- ``units`` - Set to "imperial" or "metric" (default: "imperial")
|
||||
|
||||
**Plugin Path:** ``aprsd.plugins.weather.OWMWeatherPlugin``
|
||||
|
||||
|
||||
AVWXWeatherPlugin
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
**Command:** ``metar``, ``m``, or ``m`` followed by a space (m at start of message)
|
||||
|
||||
**Description:** Provides METAR weather reports using the AVWX API service. Fetches METAR
|
||||
data from the nearest weather station to the GPS beacon location of the calling callsign
|
||||
(or optionally a specified callsign).
|
||||
|
||||
**Usage:**
|
||||
::
|
||||
|
||||
You: metar
|
||||
APRSD: KORD 101451Z 28010KT 10SM FEW250 22/12 A3001 RMK AO2 SLP168 T02220122
|
||||
|
||||
You: metar WB4BOR
|
||||
APRSD: KSFO 101500Z 25015KT 10SM FEW030 18/14 A2998 RMK AO2
|
||||
|
||||
**Requirements:**
|
||||
- Requires an ``aprs_fi.apiKey`` configuration option
|
||||
- Requires an ``avwx_plugin.apiKey`` configuration option
|
||||
- Requires an ``avwx_plugin.base_url`` configuration option
|
||||
|
||||
**Configuration:**
|
||||
- ``aprs_fi.apiKey`` - API key from aprs.fi account
|
||||
- ``avwx_plugin.apiKey`` - API key for AVWX service
|
||||
- ``avwx_plugin.base_url`` - Base URL for AVWX API (default: https://avwx.rest)
|
||||
|
||||
**Note:** AVWX is an open-source project. You can use the hosted service at https://avwx.rest/
|
||||
or host your own instance. See the plugin code comments for instructions on running your
|
||||
own AVWX API server.
|
||||
|
||||
**Plugin Path:** ``aprsd.plugins.weather.AVWXWeatherPlugin``
|
||||
|
||||
|
||||
HelpPlugin
|
||||
~~~~~~~~~~
|
||||
|
||||
@ -314,7 +220,7 @@ APRSD configuration file. List the full Python path to each plugin class you wan
|
||||
::
|
||||
|
||||
[DEFAULT]
|
||||
enabled_plugins = aprsd.plugins.fortune.FortunePlugin,aprsd.plugins.ping.PingPlugin,aprsd.plugins.time.TimePlugin,aprsd.plugins.weather.OWMWeatherPlugin,aprsd.plugins.version.VersionPlugin,aprsd.plugins.notify.NotifySeenPlugin
|
||||
enabled_plugins = aprsd.plugins.fortune.FortunePlugin,aprsd.plugins.ping.PingPlugin,aprsd.plugins.time.TimePlugin,aprsd.plugins.weather.USWeatherPlugin,aprsd.plugins.version.VersionPlugin,aprsd.plugins.notify.NotifySeenPlugin
|
||||
|
||||
**Note:** The HelpPlugin is enabled by default and does not need to be listed in
|
||||
``enabled_plugins``. It can be disabled by setting ``load_help_plugin = false``.
|
||||
@ -322,10 +228,9 @@ APRSD configuration file. List the full Python path to each plugin class you wan
|
||||
**Note:** Some plugins may require additional configuration (API keys, etc.) and will
|
||||
automatically disable themselves if required configuration is missing.
|
||||
|
||||
**Note:** Weather plugins (USWeatherPlugin, OWMWeatherPlugin, AVWXWeatherPlugin) all use
|
||||
the same command pattern (``w`` or ``W`` at the start). Only one should be enabled at a time
|
||||
to avoid conflicts. Similarly, METAR plugins (USMetarPlugin, AVWXWeatherPlugin) use the
|
||||
same pattern (``m`` or ``M`` at the start).
|
||||
**Note:** Weather plugins may use the same command patterns. Only one weather plugin should
|
||||
be enabled at a time to avoid conflicts. Similarly, only one METAR plugin should be enabled
|
||||
at a time.
|
||||
|
||||
|
||||
Listing Available Plugins
|
||||
@ -343,4 +248,219 @@ This command will show:
|
||||
- Available plugins on PyPI that can be installed
|
||||
- Currently installed third-party plugins
|
||||
|
||||
|
||||
Finding External Plugins and Extensions
|
||||
=========================================
|
||||
|
||||
APRSD supports external plugins and extensions that extend the functionality beyond the
|
||||
built-in plugins. These are distributed as separate Python packages that follow a specific
|
||||
naming convention.
|
||||
|
||||
Naming Convention
|
||||
-----------------
|
||||
|
||||
All external APRSD plugins and extensions follow a consistent naming scheme:
|
||||
|
||||
* **Plugins:** ``aprsd-<name>-plugin``
|
||||
* **Extensions:** ``aprsd-<name>-extension``
|
||||
|
||||
For example:
|
||||
* ``aprsd-email-plugin`` - A plugin for email functionality
|
||||
* ``aprsd-admin-extension`` - An extension for web administration
|
||||
|
||||
Finding Plugins and Extensions
|
||||
-------------------------------
|
||||
|
||||
PyPI (Python Package Index)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can find all available APRSD plugins and extensions on PyPI:
|
||||
|
||||
* **Search for plugins:** https://pypi.org/search/?q=aprsd+-plugin
|
||||
* **Search for extensions:** https://pypi.org/search/?q=aprsd+-extension
|
||||
* **General APRSD search:** https://pypi.org/search/?q=aprsd
|
||||
|
||||
The ``aprsd list-plugins`` command also shows available plugins and extensions from PyPI
|
||||
along with installation status.
|
||||
|
||||
GitHub
|
||||
~~~~~~
|
||||
|
||||
Many APRSD plugins and extensions are hosted on GitHub under the `hemna organization`_:
|
||||
|
||||
* **Organization:** https://github.com/hemna/
|
||||
* **Search for plugins:** https://github.com/orgs/hemna/repositories?q=aprsd-plugin
|
||||
* **Search for extensions:** https://github.com/orgs/hemna/repositories?q=aprsd-extension
|
||||
|
||||
Installing External Plugins and Extensions
|
||||
-------------------------------------------
|
||||
|
||||
To install an external plugin or extension, use pip:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
pip install aprsd-<name>-plugin
|
||||
# or
|
||||
pip install aprsd-<name>-extension
|
||||
|
||||
After installation, the plugin or extension will be automatically discovered by APRSD.
|
||||
You may need to add it to your ``enabled_plugins`` configuration or configure it according
|
||||
to its documentation.
|
||||
|
||||
Available External Plugins
|
||||
---------------------------
|
||||
|
||||
The following external plugins are available:
|
||||
|
||||
Email Plugin
|
||||
~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-email-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-email-plugin
|
||||
* **Description:** Send and receive email via APRS messages.
|
||||
|
||||
Location Plugin
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-location-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-location-plugin
|
||||
* **Description:** Get the latest GPS location of a callsign.
|
||||
|
||||
Location Data Plugin
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-locationdata-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-locationdata-plugin
|
||||
* **Description:** Get detailed GPS location data for a callsign.
|
||||
|
||||
DigiPi Plugin
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-digipi-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-digipi-plugin
|
||||
* **Description:** Look for DigiPi beacon packets and provide DigiPi-specific functionality.
|
||||
|
||||
W3W Plugin
|
||||
~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-w3w-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-w3w-plugin
|
||||
* **Description:** Get What3Words (w3w) coordinates for a location.
|
||||
|
||||
MQTT Plugin
|
||||
~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-mqtt-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-mqtt-plugin
|
||||
* **Description:** Send APRS packets to an MQTT topic for integration with IoT systems.
|
||||
|
||||
Telegram Plugin
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-telegram-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-telegram-plugin
|
||||
* **Description:** Send and receive messages via Telegram.
|
||||
|
||||
Borat Plugin
|
||||
~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-borat-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-borat-plugin
|
||||
* **Description:** Get random Borat quotes via APRS messages.
|
||||
|
||||
WXNow Plugin
|
||||
~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-wxnow-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-wxnow-plugin
|
||||
* **Description:** Get weather reports from the closest N weather stations.
|
||||
|
||||
WeeWX Plugin
|
||||
~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-weewx-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-weewx-plugin
|
||||
* **Description:** Get weather data from your WeeWX weather station.
|
||||
|
||||
Slack Plugin
|
||||
~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-slack-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-slack-plugin
|
||||
* **Description:** Send and receive messages to/from a Slack channel.
|
||||
|
||||
Sentry Plugin
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-sentry-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-sentry-plugin
|
||||
* **Description:** Integration with Sentry for error tracking and monitoring.
|
||||
|
||||
Repeat Plugins
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-repeat-plugins/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-repeat-plugins
|
||||
* **Description:** Plugins for the REPEAT service - get nearest Ham radio repeaters.
|
||||
|
||||
Twitter Plugin
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-twitter-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-twitter-plugin
|
||||
* **Description:** Make tweets from your Ham Radio via APRS messages.
|
||||
|
||||
Time OpenCage Plugin
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-timeopencage-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-timeopencage-plugin
|
||||
* **Description:** Get local time for a callsign using OpenCage geocoding.
|
||||
|
||||
Stock Plugin
|
||||
~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-stock-plugin/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-stock-plugin
|
||||
* **Description:** Get stock quotes from your Ham radio via APRS messages.
|
||||
|
||||
Available External Extensions
|
||||
-----------------------------
|
||||
|
||||
The following external extensions are available:
|
||||
|
||||
Admin Extension
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-admin-extension/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-admin-extension
|
||||
* **Description:** Web-based administration interface for APRSD with real-time status,
|
||||
configuration management, and monitoring capabilities.
|
||||
|
||||
WebChat Extension
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-webchat-extension/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-webchat-extension
|
||||
* **Description:** Web-based APRS messaging interface that allows you to send and receive
|
||||
APRS messages through a browser.
|
||||
|
||||
Rich CLI Extension
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-rich-cli-extension/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-rich-cli-extension
|
||||
* **Description:** Enhanced Textual-based rich CLI versions of APRSD commands with improved
|
||||
user interface and interactivity.
|
||||
|
||||
IRC Extension
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
* **PyPI:** https://pypi.org/project/aprsd-irc-extension/
|
||||
* **GitHub:** https://github.com/hemna/aprsd-irc-extension
|
||||
* **Description:** IRC-like server command for APRS, providing an IRC-style interface to
|
||||
the APRS network.
|
||||
|
||||
.. _hemna organization: https://github.com/hemna
|
||||
|
||||
.. include:: links.rst
|
||||
|
||||
@ -133,7 +133,7 @@ Sample config file
|
||||
# Comma separated list of enabled plugins for APRSD.To enable
|
||||
# installed external plugins add them here.The full python path to the
|
||||
# class name must be used (list value)
|
||||
#enabled_plugins = aprsd.plugins.fortune.FortunePlugin,aprsd.plugins.location.LocationPlugin,aprsd.plugins.ping.PingPlugin,aprsd.plugins.time.TimePlugin,aprsd.plugins.weather.OWMWeatherPlugin,aprsd.plugins.version.VersionPlugin,aprsd.plugins.notify.NotifySeenPlugin
|
||||
#enabled_plugins = aprsd.plugins.fortune.FortunePlugin,aprsd.plugins.ping.PingPlugin,aprsd.plugins.time.TimePlugin,aprsd.plugins.weather.USWeatherPlugin,aprsd.plugins.version.VersionPlugin,aprsd.plugins.notify.NotifySeenPlugin
|
||||
|
||||
|
||||
[aprs_fi]
|
||||
@ -208,6 +208,9 @@ Sample config file
|
||||
#
|
||||
# From aprsd.conf
|
||||
#
|
||||
# Note: AVWXWeatherPlugin is an external plugin. Install it with:
|
||||
# pip install aprsd-avwx-weather-plugin
|
||||
# See the builtin_plugins documentation for information about external plugins.
|
||||
|
||||
# avwx-api is an opensource project that hasa hosted service here:
|
||||
# https://avwx.rest/You can launch your own avwx-api in a containerby
|
||||
@ -303,6 +306,9 @@ Sample config file
|
||||
#
|
||||
# From aprsd.conf
|
||||
#
|
||||
# Note: OWMWeatherPlugin is an external plugin. Install it with:
|
||||
# pip install aprsd-owm-weather-plugin
|
||||
# See the builtin_plugins documentation for information about external plugins.
|
||||
|
||||
# OWMWeatherPlugin api key to OpenWeatherMap's API.This plugin uses
|
||||
# the openweathermap API to fetchlocation and weather information.To
|
||||
|
||||
@ -327,12 +327,9 @@ Current list plugins
|
||||
┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Plugin Name ┃ Info ┃ Type ┃ Plugin Path ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ AVWXWeatherPlugin │ AVWX weather of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.AVWXWeatherPlugin │
|
||||
│ FortunePlugin │ Give me a fortune │ RegexCommand │ aprsd.plugins.fortune.FortunePlugin │
|
||||
│ NotifySeenPlugin │ Notify me when a CALLSIGN is recently seen on APRS-IS │ WatchList │ aprsd.plugins.notify.NotifySeenPlugin │
|
||||
│ OWMWeatherPlugin │ OpenWeatherMap weather of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.OWMWeatherPlugin │
|
||||
│ PingPlugin │ reply with a Pong! │ RegexCommand │ aprsd.plugins.ping.PingPlugin │
|
||||
│ TimeOWMPlugin │ Current time of GPS beacon's timezone. Uses OpenWeatherMap │ RegexCommand │ aprsd.plugins.time.TimeOWMPlugin │
|
||||
│ TimePlugin │ What is the current local time. │ RegexCommand │ aprsd.plugins.time.TimePlugin │
|
||||
│ USMetarPlugin │ USA only METAR of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.USMetarPlugin │
|
||||
│ USWeatherPlugin │ Provide USA only weather of GPS Beacon location │ RegexCommand │ aprsd.plugins.weather.USWeatherPlugin │
|
||||
|
||||
@ -74,7 +74,7 @@ on creating your own plugins.
|
||||
2025-12-10 14:30:05.256 | MainThread | INFO | <aprsd.client.client.APRSDClient object at 0x1096ac460> | aprsd.cmds.server:server:64
|
||||
2025-12-10 14:30:05.256 | MainThread | INFO | Loading Plugin Manager and registering plugins | aprsd.cmds.server:server:78
|
||||
2025-12-10 14:30:05.257 | MainThread | INFO | Loading APRSD Plugins | aprsd.plugin:setup_plugins:493
|
||||
2025-12-10 14:30:05.257 | MainThread | INFO | Registering Regex plugin 'aprsd.plugins.weather.AVWXWeatherPlugin'(4.2.5.dev8+g9c0695794) -- ^([m]|[m]|[m]\s|metar) | aprsd.plugin:_load_plugin:452
|
||||
2025-12-10 14:30:05.257 | MainThread | INFO | Registering Regex plugin 'aprsd.plugins.weather.USWeatherPlugin'(4.2.5.dev8+g9c0695794) -- ^[wW] | aprsd.plugin:_load_plugin:452
|
||||
2025-12-10 14:30:05.257 | MainThread | INFO | Completed Plugin Loading. | aprsd.plugin:setup_plugins:513
|
||||
2025-12-10 14:30:05.257 | MainThread | DEBUG | ******************************************************************************** | oslo_config.cfg:log_opt_values:2804
|
||||
2025-12-10 14:30:05.257 | MainThread | DEBUG | Configuration options gathered from: | oslo_config.cfg:log_opt_values:2805
|
||||
@ -95,7 +95,7 @@ on creating your own plugins.
|
||||
2025-12-10 14:30:05.258 | MainThread | DEBUG | enable_save = True | oslo_config.cfg:log_opt_values:2817
|
||||
2025-12-10 14:30:05.258 | MainThread | DEBUG | enable_seen_list = True | oslo_config.cfg:log_opt_values:2817
|
||||
2025-12-10 14:30:05.258 | MainThread | DEBUG | enable_sending_ack_packets = True | oslo_config.cfg:log_opt_values:2817
|
||||
2025-12-10 14:30:05.258 | MainThread | DEBUG | enabled_plugins = ['aprsd.plugins.weather.AVWXWeatherPlugin'] | oslo_config.cfg:log_opt_values:2817
|
||||
2025-12-10 14:30:05.258 | MainThread | DEBUG | enabled_plugins = ['aprsd.plugins.weather.USWeatherPlugin'] | oslo_config.cfg:log_opt_values:2817
|
||||
2025-12-10 14:30:05.258 | MainThread | DEBUG | is_digipi = False | oslo_config.cfg:log_opt_values:2817
|
||||
2025-12-10 14:30:05.258 | MainThread | DEBUG | latitude = 37.3443862 | oslo_config.cfg:log_opt_values:2817
|
||||
2025-12-10 14:30:05.258 | MainThread | DEBUG | load_help_plugin = True | oslo_config.cfg:log_opt_values:2817
|
||||
@ -143,7 +143,7 @@ on creating your own plugins.
|
||||
2025-12-10 14:30:05.260 | MainThread | DEBUG | avwx_plugin.base_url = https://avwx.rest | oslo_config.cfg:log_opt_values:2824
|
||||
2025-12-10 14:30:05.260 | MainThread | DEBUG | ******************************************************************************** | oslo_config.cfg:log_opt_values:2828
|
||||
2025-12-10 14:30:05.260 | MainThread | INFO | Message Plugins enabled and running: | aprsd.cmds.server:server:86
|
||||
2025-12-10 14:30:05.260 | MainThread | INFO | <aprsd.plugins.weather.AVWXWeatherPlugin object at 0x109a74c40> | aprsd.cmds.server:server:88
|
||||
2025-12-10 14:30:05.260 | MainThread | INFO | <aprsd.plugins.weather.USWeatherPlugin object at 0x109a74c40> | aprsd.cmds.server:server:88
|
||||
2025-12-10 14:30:05.260 | MainThread | INFO | <aprsd.plugin.HelpPlugin object at 0x109a74ac0> | aprsd.cmds.server:server:88
|
||||
2025-12-10 14:30:05.260 | MainThread | INFO | Watchlist Plugins enabled and running: | aprsd.cmds.server:server:89
|
||||
2025-12-10 14:30:05.260 | MainThread | DEBUG | Loading saved packet tracking data. | aprsd.cmds.server:server:103
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user