Skip to content

Commit af6a2d2

Browse files
committed
APRSNotify2 Release - 11152024 - N8ACL
1 parent 614bec3 commit af6a2d2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+3166
-3015
lines changed

Dockerfile

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
FROM python:latest
2+
3+
WORKDIR /app
4+
5+
COPY requirements.txt .
6+
RUN pip install -r requirements.txt --break-system-packages
7+
8+
ADD src /app/src
9+
10+
COPY aprsnotify.py .
11+
12+
RUN chmod +x aprsnotify.py
13+
14+
CMD ./aprsnotify.py

README.md

+59-40
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,59 @@
1-
# APRSNotify
1+
# APRSNotify2
22

3-
###### Current Release 02032023
4-
5-
## Notice 10/28/2024 - Currently working on APRSNotify2. This work is a complete rrework of how the script works. Lots of new features coming. Make sure to check out the Project Board for this Project. If there is a messaging service you want me to look at adding support for, open an issue and I can look at adding it, if it is possible. Should be out soon.
3+
###### Current Release 1.0.0
64

75
APRSNotify is a python based bot script designed to send parsed APRS packet data to various Social Media or Communications networks.
86

97
This software is for use by Amateur Radio Operators only.
108

11-
This bot was designed to be used by one person with multiple APRS Trackers to track packets for that one person. There is the ability to send to club chat servers, but again, each person will need to run their own copy of the script. However, a club hosted version is in the works.
9+
This bot was designed to be used by one person with multiple APRS Trackers to track packets for that one person. It is possible to send to multiple services as well. Send to as many places as you want.
10+
11+
There are SEVERAL Updates that have been made to the software. Please make sure to read the Change Log below for all the changes.
1212

1313
Please see [the Wiki](https://n8acl.github.io/aprsnotify) for more information and installation and configuration steps as well as running the script.
1414

1515
##### Working Examples:
16-
- Mastodon: [You will need to follow n8acl_aprs@botsin.space.](https://botsin.space/@n8acl_aprs)
17-
18-
#### Important Note
19-
Due to the announcement that Twitter will be Discontinuing the free developer API on February 9, 2023, as of February 3, 2023 APRSNotify no longer supports Twitter. You will need to update to the current release if you are running APRSNotify to remove the Twitter support if you want to continue using it.
16+
- Mastodon: [You will need to follow n8acl_aprs@mastodon.radio.](https://mastodon.radio/@n8acl_aprs)
2017

2118
##### Currently Supported Networks/Functions
2219

23-
| Function | Supported Services|
24-
|----------|------------------|
25-
|Position Packet Data<br>Weather Packet Data| Telegram, Mastodon, Discord, Mattermost, Slack|
26-
|Message Notification| Telegram, Discord, Pushover, Mattermost, Slack|
27-
|Send Packet Data<br>to Club Server| Telegram, Discord, Mattermost, Slack|
20+
To see the list of netowrks supported direcetly in APRSNotify, please see the Supported Services Page on [the Wiki](https://n8acl.github.io/aprsnotify/aupported_services/). This list will be growing.
21+
22+
APRSNotify2 now uses the Apprise python library to send notifications to the different messageing services. Apprise supports over 100+ different services, so adding new services is a lot easier. These services above are supported within APRSNotify currently. While Apprise does support way more services, implementation has to be done in the app for each service.
23+
24+
However, there is a huge advantage to using Apprise now. If you are like me and use the Apprise libray and have the Apprise-API running on your network for other notifications, that can be leveraged to send notifications with APRSNotify. This allows users that use the Apprise-API access to all the services that Apprise supports. For more information about that, see [the Wiki](https://n8acl.github.io/aprsnotify).
2825

2926
---
3027

3128
## Features
3229
- Pulls most recent packet data from [APRS.fi API](https://aprs.fi/page/api) for the following types of packets:
3330
- Position Data
3431
- Weather Station Data
35-
- Reverse Geocode with OpenStreetMaps API.
36-
- Get Weather Conditions from OpenWeatherMaps API for the location of the position packet
32+
- Message Data
33+
- Reverse Geocode Packet loction with OpenStreetMaps API.
34+
- Get Weather Conditions from WeatherAPI.com for the location of the position packet
3735
- Find Maidenhead Grid Square of packet location.
3836
- Send Status to Social Media Networks (See above for supported Networks)
3937
- Get notification of an APRS message sent to your station (see above for supported Networks). If someone sends a message via APRS to one of the callsigns being tracked, the script will notify you and share the message with you.
40-
- Send packet data to a club Server channel. This allows club members to share packet data information with each other.
4138

4239
---
4340

4441
### Use Cases
4542
* Sending an APRS Position packet to Social Media for your followers to see.
46-
* Sending Weather data from APRS to Social Media.
43+
* Sending Weather data from APRS station to Social Media.
4744
* Sending APRS data to yourself to confirm that it is making it to the internet.
48-
* Sending your position information to a Telegram/Discord/Mattermost/Slack Channel that you have your non-ham radio family and friends on so they can track you when you are traveling by car for a long distance.
45+
* Sending your position information to a Channel that you have your non-ham radio family and friends on so they can track you when you are traveling by car for a long distance.
4946
* Participating in sending packet data to a club server/channel in addition to your own channels/servers
47+
* This could potentially be used to track up to 20 mobile stations during a race or parade and relay that information to others, like officials or other hams working in the race. (Note though that this program does not support the use of tactical callsigns. The callsigns must be Call-ssid to be tracked.)
5048
* Other uses that your imagination comes up with.
5149

5250
---
5351

54-
## UPGRADE TO RELEASE 02032023
55-
56-
#### Normal Upgrade
52+
## UPGRADE TO CURRENT RELEASE
5753

58-
To upgrade to the current version of the script, enter the folder where you have the APRSNotify scrpts and do a ```git pull -ff``` to get the newest updated scripts. Then please run the update.py ```python3 update.py``` script. It will update your database to the most current version.
54+
Due to the massive amount of changes done to the codebase, only the last version release of the APRSNotify1 software is supported for migration. If you have something older, you will need to install this as a clean install and then manually migrate your data over.
5955

60-
If you are installing the whole script for the first time (i.e. have never used APRSNotify before), please run an_util.py instead. Only run the upgrade script if you have used APRSNotify before and have previously upgraded to version 4.
61-
62-
#### Upgrading a version older than Version 4 to current version
63-
64-
Please note that any version prior to 4 has had to be depreciated and is no longer supported. With all the changes, it is difficult to support those older versions with the new version.
65-
66-
The easiest way to upgrade a version of APRSNotify that is older than Version 4 is to make sure to backup the config.py file to another location and then deleting the old APRSnotify script folder. Then clone the repo to get the latest script files. This allows you to setup the script as basically a brand new setup, just follow the directions in the wiki for a new setup and using the an_util.py file. You can use your old config.py file as reference to copy and paste your keys and things in as needed.
56+
For Migration steps, see [the Wiki](https://n8acl.github.io/aprsnotify/migration/).
6757

6858
---
6959

@@ -72,15 +62,17 @@ The Original Telegram Notify bot functionality was based off a gist by Github us
7262

7363
Adding Grid Square to Status message was suggested by Alex, N7AGF.
7464

75-
The Grid Square Function was developed by Walter Underwood, K6WRU and posted on ham.stackexchange.com. [Click Here](https://ham.stackexchange.com/questions/221/how-can-one-convert-from-lat-long-to-grid-square)
65+
The Grid Square Function was developed by Walter Underwood, K6WRU and posted on [ham.stackexchange.com](https://ham.stackexchange.com/questions/221/how-can-one-convert-from-lat-long-to-grid-square).
7666

77-
The map image functionality for the Telegram Bot and suggestions to include or not include Weather data among other suggestions were contributed by Chanyeol Yoo, Ph.D., VK2FAED
67+
The map image functionality for the Telegram Bot and suggestions to include or not include Weather data among other suggestions were contributed by Chanyeol Yoo, Ph.D., VK2FAED (Though this had been deprecated in APRSNotify now, still wanted to give credit to include it originally.)
7868

7969
APRS.FI API Limitations issues found and troubleshot by [Alex Bowman, KN4KNG](https://github.com/KN4KNG).
8070

81-
Installation of the Verison 4 scripts troubleshot by Diego, EA3ICN.
71+
Installation of the APRSNotify1 Verison 4 scripts troubleshot by Diego, EA3ICN.
8272

83-
Pushover Notification API mechanics from [Micheal Clemens, DL6MHC](https://qrz.is/)
73+
Pushover Notification API mechanics from [Micheal Clemens, DL6MHC](https://qrz.is/)(Though this had been deprecated in APRSNotify now, still wanted to give credit for the idea to include it originally.)
74+
75+
The [Apprise library](https://github.com/caronc/apprise) and [Apprise-API](https://github.com/caronc/apprise-api) were created and maintained by Chris Caron.
8476

8577
APRS and the APRS System and associated copyright were developed by Bob Bruninga, WB4APR (SK) [http://www.aprs.org](http://www.aprs.org).
8678

@@ -102,10 +94,37 @@ If you reach out to me and have an error, please include what error you are gett
10294
## Change Log
10395
Changes Prior to current year have been moved to the [ChangeLog](https://n8acl.github.io/aprsnotify/changelog/) on the wiki.
10496

105-
* 02/03/2023
106-
* Removed support for Twitter from the script.
107-
* Updated the Wiki to reflect current changes to the script.
108-
109-
* 01/24/2023 - Minor Update
110-
* Put the flask package back in the requirements.txt file. Accidently deleted it and did not realize it. (Thanks to [Russ, KV4S](https://github.com/Russell-KV4S) for catching this one.)
97+
## Version 1.0.0 - Released 10/30/2024
98+
## Added
99+
- Now uses the Apprise notification library for service notifiction support.
100+
- This makes adding new services easier
101+
- Also allows for multiple destinations for a service
102+
- Can leverage the Apprise-Api to allow the user to completely configure and manage their own notification services.
103+
- Added support for sending to the following services (if using the Apprise service included with APRSNotify):
104+
- DAPNET
105+
- Matrix
106+
- Signal
107+
- Added Database support for the following Database Managment Systems for configuration management
108+
- Microsoft SQL Server
109+
- MySQL
110+
- PostgreSQL
111+
- SQLite
112+
- Support for running in Docker
113+
114+
## Changed
115+
##### APRSNotify
116+
- Changed version numbering scheme back to Major.Minor.Build format (ex 2.0.0)
117+
- Changed how Mastodon connections are handled
118+
- Changes how Mattermost connections are handled
119+
- Always includes weather information in postion report now
120+
- Move from OpenWeatherMap to WeatherAPI.com for weather information
121+
122+
##### APRSNotify Utility
123+
- Complete rework of the HTML Templates and Backend utility functions.
124+
125+
126+
## Removed
127+
- Removed option to exclude weather information from postion report
128+
- Removed Support of OpenWeatherMap for Weather Data
129+
- Removed support of sending map image with Telegram messages
111130

0 commit comments

Comments
 (0)