All Projects → Jxck-S → plane-notify

Jxck-S / plane-notify

Licence: GPL-3.0 license
Notify If a selected plane has taken off or landed using OpenSky or ADS-B Exchange 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, and Pushbullet

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to plane-notify

docker-adsbexchange
Feeds ADS-B data into adsbexchange.com. Designed to work with mikenye/readsb-protobuf.
Stars: ✭ 35 (-98.16%)
Mutual labels:  ads-b, adsb, adsbexchange
gitbook-adsb-guide
Guide to aircraft tracking using ADS-B reception with SDR & docker containers. Published on GitBook.
Stars: ✭ 46 (-97.59%)
Mutual labels:  ads-b, adsb, adsbexchange
docker-ads-b
Docker container for ADS-B
Stars: ✭ 27 (-98.58%)
Mutual labels:  adsb, adsbexchange
docker-radarbox
AirNav RadarBox rbfeeder, multi-architecture (x86_64, arm32v7, arm64)
Stars: ✭ 26 (-98.64%)
Mutual labels:  ads-b, adsb
meteo-particle-model
Weather (wind and temperature) field reconstruction based on meteo-particle model using ADS-B and Mode-S data
Stars: ✭ 21 (-98.9%)
Mutual labels:  ads-b, adsb
LiveTraffic
LiveTraffic is an X-Plane multiplayer plugin, which fills your sky with live air traffic based on public flight tracking data.
Stars: ✭ 81 (-95.75%)
Mutual labels:  ads-b, opensky-network
readsb
ADS-B decoder swiss knife
Stars: ✭ 114 (-94.02%)
Mutual labels:  ads-b, adsb
docker-flightradar24
Multi-architecture docker container running flightradar24 fr24feed. Designed to work in tandem with mikenye/readsb (arm32v7/arm64/x86_64).
Stars: ✭ 71 (-96.27%)
Mutual labels:  ads-b, adsb
flight2bq
RTLSDR ADS-B dump1090 to Google BigQuery
Stars: ✭ 33 (-98.27%)
Mutual labels:  ads-b
Ardupilot
ArduPlane, ArduCopter, ArduRover, ArduSub source
Stars: ✭ 6,637 (+248.4%)
Mutual labels:  plane
planesailing
Plane✈/Sailing⛵ - Completely unnecessary military situational awareness display for your home
Stars: ✭ 29 (-98.48%)
Mutual labels:  ads-b
PlotRTL1090
3D visualization of air traffic through RTL-SDR (dump1090) and MATLAB
Stars: ✭ 107 (-94.38%)
Mutual labels:  ads-b
COMPASS
The OpenATS COMPASS (Compliance Assessment) tool aims at providing a generalized framework for air-traffic surveillance data analysis, visualization & evaluation.
Stars: ✭ 60 (-96.85%)
Mutual labels:  ads-b
tentools
💙 tenable.sc / nessus / acas powershell module
Stars: ✭ 27 (-98.58%)
Mutual labels:  acas
EDDS-freeware-releases
A project to bring the airport back to (virtual) life.
Stars: ✭ 53 (-97.22%)
Mutual labels:  airport
airports-db
Public airports database API service based on GitHub
Stars: ✭ 17 (-99.11%)
Mutual labels:  airport
Structured-Light-Laser-Stripe-Reconstruction
Reconstructs a 3D stripe on the area of an object on which a laser falls as seen by the camera
Stars: ✭ 35 (-98.16%)
Mutual labels:  plane
MetarParser
A java program decoding metar and taf
Stars: ✭ 30 (-98.43%)
Mutual labels:  airport
wifiscanner
A crate to list WiFi hotspots in your area
Stars: ✭ 47 (-97.53%)
Mutual labels:  airport
is-sea
🌊 Check whether a geographic coordinate is in the sea or not on the earth.
Stars: ✭ 34 (-98.22%)
Mutual labels:  land

plane-notify

Codacy Badge GPLv3 License

Notify if configured planes have taken off or landed using Python with OpenSky(free) or ADSBExchange Data(paid but much better), 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 on Twitter. Twitter Follow I have now expanded and run multiple accounts for multiple planes, a list of the accounts can be found here plane-notify Twitter List

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://JacksTech.net/Discord

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.adsbexchange.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).

Chromium

sudo apt-get install chromium

These output methods once installed can be configured in the planes config you create, using the example plane1.ini

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

  • Copy mainconf.ini.example to mainconf.ini andCopy plane1.ini.example to plane1.ini. plane1.ini can change names as long as it ends with the ini extension
  • Edit them with nano or vi on the running machine or on your pc and transfer the config to where you will be running the bot
  • Pick between OpenSky and ADS-B Exchange
  • The OpenSky API is free for everyone but the data is not as good as ADS-B Exchange. The ADS-B Exchange API is not free and this program will not work for the Rapid API from ADS-B Exchange. It only works with the API that they give when you have a partnership with ADS-B Exchange. It is not cheap to get the ADS-B Exchange full API, Don't contact them unless you are ready to pay.
  • If you'd like to add support for ADS-B Exchanges RapidAPI feel free to work on it and submit a merge request.
  • If you've set up multiple planes and want to use ADSB Exchange as your source you must have /all endpoint access to their API or it won't work.
  • Pick the correct API version for ADS-B Exchange.
  • Proxy is if your running multiple programs that use the ADSB Exchange, setup the proxy from lemonodor so you don't abuse the ADSB Exchange API, otherwise leave enable false.
  • When using OpenSky there are more bugs because I mainly use ADS-B Exchange and work less on the OpenSky Implementation.

Configure individual planes

  • An example file is given (plane1.ini) plane config files should be in the configs directory, the program looks for any file in that folder with a .ini extension.
  • Each plane should have its own config

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

  • Start a conversation with BotFather;
  • Send it to the BotFather: /newbot
  • Choose a name for your bot;
  • Choose a username for your bot;
  • Done! You'll get a token to access the HTTP API.

Getting channel or chat (contact) ID

  • Start a conversation with JsonDumpBot;
  • It will reply with a json with information from the message;
  • Go to the channel or chat you want the id and forward a message from there to JsonDumpBot;
  • Find the id in the reply. It'll look something like this:
   {...
    "forward_from_chat": {
          "id": xxxxxxxxx,
   ...}
  • Don't forget to add the bot as admin in channel so messages can be sent.

Getting a group ID

  • Open Telegram web;
  • Go to group and check the url on address bar of browser;
  • That's the group ID (-xxxxxxxxx), it'll look something like this:
  https://web.telegram.org/z/#-xxxxxxxxx

TODO

  • General Cleanup
  • Restructure project to make it proper currently random files because I didn't know how to properly structure a project before. (in progress)
  • Add proper logging and service to run the program and remove excessive printing.
  • Better single config YAML, or DB maybe

More References/Documentation

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].