Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plugins.json
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,7 @@
"last_updated": "2026-08-03",
"verified": true,
"screenshot": "",
"latest_version": "1.12.13"
"latest_version": "1.12.16"
},
{
"id": "march-madness",
Expand Down
31 changes: 29 additions & 2 deletions plugins/ledmatrix-flights/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -1703,7 +1703,11 @@ def _process_aircraft_data(self, data: Dict) -> None:
return

total_aircraft = len(data['aircraft'])
self.logger.info(f"[Flight Tracker] Processing {total_aircraft} aircraft from SkyAware")
# Trace, not news: the Summary line below reports the same total, and
# this pair ran every few seconds. Lazy %-args so a disabled level
# costs nothing.
self.logger.debug("[Flight Tracker] Processing %d aircraft from SkyAware",
total_aircraft)

current_time = time.time()
active_icao = set()
Expand Down Expand Up @@ -1820,7 +1824,30 @@ def _process_aircraft_data(self, data: Dict) -> None:
for icao in stale_all:
del self.all_aircraft_data[icao]

self.logger.info(f"[Flight Tracker] Summary - Total: {total_aircraft}, With position: {aircraft_with_position}, In range ({self.map_radius_miles}mi): {aircraft_in_range}, Tracking: {len(self.aircraft_data)}, Removed stale: {len(stale_icao)}")
# This ran on every poll -- roughly every five seconds, so ~690 lines
# per half hour, most of the device's log volume and a steady trickle
# of SD writes for a line that usually repeats itself.
#
# Keyed on what the plugin actually shows: aircraft in range and
# tracked. Total and With-position jitter every poll as distant
# traffic drifts in and out of the receiver, so keying on them
# collapsed almost nothing (343 lines -> 210 on measured data);
# keying on these two gives 343 -> 67. The jittery counts still ride
# along in the message, where they cost nothing.
summary = (aircraft_in_range, len(self.aircraft_data))
last_logged = getattr(self, '_last_summary_log', 0.0)
message = ("[Flight Tracker] Summary - Total: %d, With position: %d, "
"In range (%smi): %d, Tracking: %d, Removed stale: %d")
args = (total_aircraft, aircraft_with_position, self.map_radius_miles,
aircraft_in_range, len(self.aircraft_data), len(stale_icao))
# The heartbeat keeps a quiet sky from looking like a stalled tracker.
if summary != getattr(self, '_last_summary', None) or \
current_time - last_logged >= 300:
self.logger.info(message, *args)
self._last_summary_log = current_time
else:
self.logger.debug(message, *args)
self._last_summary = summary
self._update_flight_records()

def _altitude_to_color(self, altitude: float) -> Tuple[int, int, int]:
Expand Down
2 changes: 1 addition & 1 deletion plugins/ledmatrix-flights/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "ledmatrix-flights",
"name": "Flight Tracker",
"version": "1.12.13",
"version": "1.12.16",
"description": "Real-time aircraft tracking with ADS-B/FlightRadar24/OpenSky/adsb.fi/adsb.lol data, map backgrounds, area mode, flight tracking, anchor airport, flight records, and optional airport weather (METAR/TAF/PIREP/SIGMET via the free NOAA Aviation Weather Center API)",
"author": "ChuckBuilds",
"entry_point": "manager.py",
Expand Down
Loading