APRS API in Python.
.gitignore | ||
api_app.py | ||
api_waitress.py | ||
config.ini | ||
init_db.py | ||
kiss_and_db.py | ||
README.md | ||
requirements.txt | ||
schema.sql | ||
start-aprs_api.sh | ||
tcp_kiss_send_recv.py |
README
I got tired of APRS-IS websites not showing me all the paths that packets take, only the shortest path to IS. So this is a Python 3 tool that turns direwolf logs into a REST API in JSON format.
Setup
- Run direwolf with logging to CSV on by using
-l
. (-L
not yet implemented). - Install requirements using
pip install -r requirements.txt
. - Run
app.py
with either a Python call or a real WSGI server. You can use screen to detach the session.- Default URL is http://127.0.0.1:5000
- Example
waitress
andscreen
scripts are included, seeapi_waitress.py
andstart-aprs_api.sh
- Access the API from whatever other system you want.
Endpoints:
-/packets
- gives the most recent packets, with the fields from the Dire Wolf
User Guide.
Example of an object packet sent by W1CDN-1 and digipeated by K0UND-2:
{
"chan": 0,
"utime": 1680566406,
"isotime": "2023-04-04T00:00:06Z",
"source": "W1CDN-1",
"heard": "K0UND-2",
"level": "113(71/42)",
"error": 0,
"dti": ";",
"name": "147.390GF",
"symbol": "/r",
"latitude": 47.924167,
"longitude": -97.009667,
"speed": 0.0,
"course": 0.0,
"altitude": 0.0,
"frequency": 147.39,
"offset": 600.0,
"tone": 0.0,
"system": "DireWolf, WB2OSZ",
"status": 0,
"telemetry": 0.0,
"comment": " https://www.wa0jxt.org/"
},
Contributing
If you want to contribute, please get in touch with me on Mastodon at https://mastodon.radio/@W1CDN.