Skip to main content

Collection of utilities to interface APRS and MQTT

Project description

aprs2mqtt

This project is a collection of various utilities to interface APRS with MQTT.

  • Python Module aprs2mqtt
  • aprs2mqttmsg - send an APRS message into the MQTT broker
  • mqtt2arpsmsg - receive an APRS message from the MQTT broker and inject to KISS queue

Installation

aprs2mqtt is now available through PyPi as an installable package.

Installation can be done to any Python system with

python -m pip install aprs2mqtt

On Linux and similar systems, the scripts will be installed in /usr/local/bin or wherever you specify based on the pip install process. On Windows, this will end up in your Scripts directory which should be in your path if setup correctly.

Portability Note

aprs2mqttmsg and the Python packages/modules should be portable to all common platforms - Windows, Linux, MacOS, etc.. However mqtt2aprsmsg has some Linux/BSD-ish-ness to it and won't currently work (well) on Windows mostly because it's built to work with Direwolf. True cross-platform is an eventual goal to interact with other KISS interfaces rather than just Direwolf/kissutil.

Sending a Message

Use the aprs2mqttmsg command to send a message. Here is an example:

python .\aprs2mqttmsg --broker mqtt.example.com --topic svc/aprs/msg/queue \
    --ssid CALLSIGN2-1 --to CALLSIGN2-1 --msg "Test Message"

Eventually I will document how to setup an MQTT broker for interacting with Direwolf for APRS but this is not that day.

Many MQTT brokers will require a username and password and likely use TLS. You will need to look at the help for the --user --passwd and --tls options

Receiving Messages

This is more involved and currently assumes you are proficient in Linux, Direwolf, KISS interfactes (this uses kissutil), and APRS. The gist of what to do is on your Direwolf/KISS server run:

./mqtt2aprsmsg --broker mqtt.example --user=USER --passwd=PASSWD \
    --tls --topic svc/aprs/msg/queue --debug

You will have to adjust --user, --passwd, and --tls based on your MQTT setup but I highly suggest using TLS and authentication for any MQTT server on the Internet. There is also additional option --queuedir to change where the KISS queue is located (kissutil read directory).

Starting mqtt2aprsmsg On Boot

The easiest way to launch mqtt2aprsmsg is through systemd. Put the following in /etc/systemd/system/mqtt2aprsmsg.service:

[Unit]
Description=MQTT/APRS Interface Listener for MSG
After=kissutil.service

[Service]
Type=simple
ExecStart=/usr/local/bin/mqtt2aprsmsg --broker HOSTNAME --user=USER --passwd=PASS --tls --topic svc/aprs/msg/queue

[Install]
WantedBy=multi-user.target

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aprs2mqtt-0.9.4.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aprs2mqtt-0.9.4-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file aprs2mqtt-0.9.4.tar.gz.

File metadata

  • Download URL: aprs2mqtt-0.9.4.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for aprs2mqtt-0.9.4.tar.gz
Algorithm Hash digest
SHA256 095038b720648caec6fc610a701c54037cebbbe17d556dfd08b615822d3e8e29
MD5 5a0492c3cc4a598dc59c85135a102725
BLAKE2b-256 6171d8348f5edcfd0a5afa81b9b244c410ddf90fc27a3c3f8e854d84ad267122

See more details on using hashes here.

File details

Details for the file aprs2mqtt-0.9.4-py3-none-any.whl.

File metadata

  • Download URL: aprs2mqtt-0.9.4-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for aprs2mqtt-0.9.4-py3-none-any.whl
Algorithm Hash digest
SHA256 135e951ed10ddc35ed33fce1178cdb6f7a4bae102c8a69de9eb842379bd71277
MD5 41825dd6499d02285c87f7722464b5c1
BLAKE2b-256 c56748b7bc1e4c60122f74288f68f6703d264d0c6ac3ba3c3a9bb10cc6bc0ba5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page