Looks at the sky above and posts to the VestaBoard, which plane is flying overhead.

When idle, it posts what the next trip is.

Tested on Mac 15.5 in a python3 virtual environment and on a Raspberry-Pi running Bookworm.
To install required extensions (requests, python-dateutil)
pip install -r requirements.txt
BASE_DIR - points to the same folder that the vestahome.py script is in.
destination.csv - If you'd like to display your next trip when not showing aircraft overhead, then enter your upcoming trips here.
Possible colors are red, orange, yellow, green, blue, violet, white, black, and filled.
airports.csv - List of airport codes. A typical entry is:
Unique#, Long Name, Short Name (Displayed on VestaBoard), Country, Short IATA (Fallback Display on Vestaboard if city name is too long), Actual IATA (Referenced by OpenSky/AeroAPI)
45883,Colorado City Municipal Airport,Colorado City,United States,AZC,KAZC,,,,,,,,,
airlines.csv - List of airlines. A typical entry is:
Code, Airline, Short Name (Displayed on VestaBoard)
UAL,United Airlines,UNITED
callsigns.csv - List of specific aircraft. Useful if you have helicopters that regularly fly over you. A typical entry is:
Tail#, Friendly Name, Category
N186SD,OCSD,PoliceDepending on which category you choose, surrounds the friendly name with colored tiles. Possible categories are Police, Fire, Medical, Military.
If you wish to produce a log file, then enable it here.
Set the time, in seconds, to check the skies.
You will need to generate and enable an API Key for VestaBoard Read/Write.
Documents on how to do that are here https://docs.vestaboard.com.
You will also need API keys for the OpenSky Network and AeroAPI. While OpenSky is free, AeroAPI is not, but it is free up to 1000 queries (as used this script).
After the first 1000 calls a month, then it's $0.005 per query.
Open Sky Client ID and Client Secret can be created here https://opensky-network.org/my-opensky/account
AeroAPI Key can be created here https://www.flightaware.com/aeroapi/portal
Here you can have multiple areas of the sky to switch between watching. Go to https://mapscaping.com/bounding-box-calculator/ to set the area to watch.
Set the port that the script should monitor for incoming UDP triggers. You can easily adjust the incoming triggers. There are some examples at the end of the main script:
vesta_pause- Stops checking the sky and changes the display to all blue tiles.
![]()
vesta_resume- Restarts checking in the specified interval.
reload_caches- If you make a change to the airlines, airports, or callsigns.csv files, this will reload them without having to stop and restart the script.
vesta_art01- Create a display using color tiles.
![]()
vesta_loc_lax- Switch to the LAX location.
vesta_loc_lax-dep- Switch to the LAX-Departures location.
If this is working out for you and you'd like to buy me a coffee :-)



