I created a script for Raspberry Pi 4+ which records your real contribution to FlightAware’s tracklogs.
I’d be grateful if you could test it out and tell me what you think:
I’ve aimed to make the setup as easy as possible. It should automatically install any dependency it needs.
It is easy to monitor multiple receivers side-by-side.
When you are on the FA stats page for your first receiver, copy the part of the url which looks like: www.flightaware.com/adsb/stats/user/USERNAME#stats-SITENUMBER`
When it asks “Please enter your FlightAware username” during installation, simply enter the entire bold part of the url as your username. For example:
When it asks “Please enter the term that will identify your ADS-B receiver”, just use the ICAO code for the receiver’s “Nearest Airport”.
You can repeat the installation several times, for each of your receivers, provided you just use a different installation directory for each receiver.
You can run multiple instances of this application side by side in seperate Terminal sessions:
Remember to be judicious about your “loop-frequency” setting in the config.me file. FlightAware sometimes prevents the tracklog page from loading properly if you try to access it too often.
Good point. You’re right, much of the temporary data could be kept in memory rather than saving it to disc. I’m looking into options such as “log2ram” etc to mitigate SD card stress. This will likely feature in the next update.
In the meantime, though - the user has a lot of control how much wear-and-tear their SD card is subjected to. They can configure it to wait for 45 minutes between cycles and they would very likely get the same end result. To give you an idea, in this scenario, a highly active receiver might save 15mb of HTML files and a couple of tiny csv files to disc every 45 minutes and then delete them again.
One other point to consider. This application does not necessarily need to run on your ADSB receiver. It can run another Raspberry Pi you have laying around.
I’m also working towards setting it to run on a “forever free” Oracle Cloud virtual machine. This is another option.
In the meantime, I hope it’s a pretty solid prototype to build upon
Installed on a new Pi build with Bullseye 32 bit lite, the installer did install a lot of stuff! I don’t really know what to select for the airport code so I picked the closest to me. A lot of people have that as their closest though.
pi@raspberrypi:~ $ ./start.sh
FlightAware ADS-B contribution monitor has been launched
Current configuration (in config.me):
Installation Directory: /home/pi/
FlightAware Username: KeithMa
Searching for the term "EGSQ" within FlightAware's tracklog pages
Each cycle repeats after: 60 seconds
------------------------------------------
Cycle 1 (Started at: 2023-10-18 16:51:34, Elapsed Time: 00h 00m 00s)...
Running step1-fa-stats-page.py...
Running step2-download-tracklog-htmls.py...
Saved tracklog - SIA308 - 20231018.html
Saved tracklog - QTR8188 - 20231018.html
Saved tracklog - EZY2555 - 20231018.html
Saved tracklog - ORO903 - 20231018.html
Saved tracklog - RYS2337 - 20231018.html
Saved tracklog - RYR4057 - 20231018.html
Saved tracklog - EZY8287 - 20231018.html
Saved tracklog - TOM5361 - 20231018.html
Saved tracklog - FIN1337 - 20231018.html
Saved tracklog - TRA6223 - 20231018.html
Saved tracklog - EZY2851 - 20231018.html
Saved tracklog - KLM587 - 20231018.html
Saved tracklog - EZY2886 - 20231018.html
Saved tracklog - BTI653 - 20231018.html
Saved tracklog - RYR4687 - 20231018.html
Saved tracklog - MSR778 - 20231018.html
Running step3-scrape-local-htmls.py...
Running step4-build-final-report.py...
Traceback (most recent call last):
File "/home/pi/backend/step4-build-final-report.py", line 80, in <module>
main()
File "/home/pi/backend/step4-build-final-report.py", line 58, in main
all_rows.sort(key=lambda x: (x['Date'], x[time_column]))
File "/home/pi/backend/step4-build-final-report.py", line 58, in <lambda>
all_rows.sort(key=lambda x: (x['Date'], x[time_column]))
~^^^^^^^^^^^^^
KeyError: 'Time (BST)'
Error executing step4-build-final-report.py
Running step5-erase-temp-files.py...
^CTraceback (most recent call last):g temporary files...
File "/home/pi/backend/step5-erase-temp-files.py", line 41, in <module>
main()
File "/home/pi/backend/step5-erase-temp-files.py", line 31, in main
countdown_timer(cleanup_delay)
File "/home/pi/backend/step5-erase-temp-files.py", line 9, in countdown_timer
time.sleep(1)
KeyboardInterrupt
That all seems to work now with just one error at the start.
pi@raspberrypi:~/tracklogs $ ./start.sh
FlightAware ADS-B contribution monitor has been launched
config.me: line 30: cleanup_delay: command not found
Current configuration (in config.me):
Not sure how actually useful the info is but it’s briefly interesting to see
Please reinstall, I updated config.me on github to add a new feature.
Your report is saved as a CSV in the report directory.
You can look at your own raw ADSB data, but if 10 other receivers are reporting the exact same positions to FlightAware, it’s hard to know whether your receiver is redundant or whether it’s actually providing useful information.
Have you tried setting KeithMa as your username and using KeithMa as the Reporting Facility? This may actually work better than I had anticipated.