Jxck-S / plane-notify

Notify if a selected plane has taken off or landed using ADS-B data. Compares older data to newer data to determine if a landing or takeoff has occurred. As well as nav modes, emergency squawk and resolution advisory notifications. Can output to Twitter, Discord, Mastodon, and Telegram
GNU General Public License v3.0
2.5k stars 432 forks source link
acas ads-b adsb adsbexchange adsbx airport emergency-squawk land opensky opensky-api opensky-network plane resolutionadviosry squawk takeoff tcas

plane-notify

Codacy Badge GPLv3 License

Notify if configured planes have taken off or landed using Python with OpenSky(free) or ADSBExchange Data(paid, declining data, and run by clowns), outputs location of takeoff location of landing and takeoff by reverse lookup of coordinates.

Discord Output Example

Discord Output Example

More examples are in the ExImages folder

ExImages

Background

I made this program so I could track Elon Musk's Jet and share his whereabouts with others orginally on Twitter (but now suspended, but now also on other platforms). I have now expanded and run multiple accounts for multiple planes, a list of the accounts can be found here https://grndcntrl.net/links

Contributing

I'm open to any help or suggestions, I realize there are many better ways to improve this program and better ways to get this program to work properly, I'm only a noob. I'll accept pull requests. If you'd like to discuss join https://discord.gg/groundcontrol

Algorithm

Setup / Install

Make sure Python/PIP is installed

apt update
apt install python3
apt install python3-pip

Install Pipenv and Dependencies

pip install pipenv
pipenv install

Install Selenium / ChromeDriver or setup Google Static Maps

Selenium/ChromeDriver is used to take a screenshot of the plane on globe.theairtraffic.com. Or use Google Static Maps, which can cost money if overused(No tutorial use https://developers.google.com/maps/documentation/maps-static/get-api-key to get to a key).

Chrome

Install Screen to run in the background

apt install screen

Download / Clone

apt install git
git clone -b multi --single-branch https://github.com/Jxck-S/plane-notify.git
cd plane-notify

Configure main config file with keys and URLs (mainconf.ini) in the configs directory

Configure individual planes

Enter and create a new Screen Session

screen -R <name screen whatever you want>

Start Program

pipenv run python __main__.py

Using with Docker

Install docker from their website. Run the following command from the root of the project.

docker-compose up -d

After running this command, due to the -d flag the container will be running in the background. To see the logs of the docker container use docker logs CONTAINER (add -f to continue streaming the containers output)

Telegram message feature - march/2022

Data obtained can be sent through Telegram to a chat (contact), channel or groups.

Creating a Telegram Bot

Getting channel or chat (contact) ID

Getting a group ID

TODO

More References/Documentation