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
Metadata
Release files for aprs2mqtt 0.9.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aprs2mqtt-0.9.4.tar.gz | 9.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aprs2mqtt-0.9.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.4 kB
Release files / aprs2mqtt-0.9.4.tar.gz
| Download URL | aprs2mqtt-0.9.4.tar.gz |
|---|---|
| Size | 9.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
095038b720648caec6fc610a701c54037cebbbe17d556dfd08b615822d3e8e29
|
|
BLAKE2b-256 checksum How to use checksums |
6171d8348f5edcfd0a5afa81b9b244c410ddf90fc27a3c3f8e854d84ad267122
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Release files / aprs2mqtt-0.9.4-py3-none-any.whl
| Download URL | aprs2mqtt-0.9.4-py3-none-any.whl |
|---|---|
| Size | 12.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
135e951ed10ddc35ed33fce1178cdb6f7a4bae102c8a69de9eb842379bd71277
|
|
BLAKE2b-256 checksum How to use checksums |
c56748b7bc1e4c60122f74288f68f6703d264d0c6ac3ba3c3a9bb10cc6bc0ba5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|