Skip to content

docs(ledmatrix-flights): document all 96 settings, with real renders - #401

Merged
ChuckBuilds merged 1 commit into
mainfrom
docs/flights-readme
Sep 3, 2026
Merged

docs(ledmatrix-flights): document all 96 settings, with real renders#401
ChuckBuilds merged 1 commit into
mainfrom
docs/flights-readme

Conversation

@ChuckBuilds

Copy link
Copy Markdown
Owner

What was missing

The section called Full Configuration Options contained no options — it pointed at config_schema.json. 84 of the 96 settings were never named, including entire blocks:

  • map_background.* (10 settings) — tile provider, brightness, contrast, saturation, cache TTL
  • flightaware.* (10) — plus its own nested background_service
  • metar.*, proximity_alert.*, fonts.*, background_service.*
  • every unit and colour key, and the filters that decide which aircraft appear at all (min_altitude_ft, max_altitude_ft, aircraft_categories, max_aircraft, tracked_flights)

All 96 are now documented by key, grouped by area. That includes a note that the FlightAware and OpenSky credentials work either nested under flightaware or as flat top-level keys, because _normalize_flightaware_config() copies one onto the other at start-up — the schema has both and the old README explained neither.

The config-token audit drops nothing.

Images

The four display modes, imperial vs metric, degrees vs cardinal headings, and four panel sizes.

Aircraft are seeded onto the plugin instance rather than fetched, since the live source is a local SkyAware receiver. Positions and callsigns are invented and placed inside the default 10-mile radius. map_background is off in every shot: its basemap tiles come from a live tile server, so that one screen cannot reproduce offline, and the README says so rather than implying the map is normally that sparse.

One fix

_render_map_image() read the aircraft colour with a hard subscript:

base_color = aircraft['color']

Every other read of that field in this plugin uses .get with a fallback. A record that reached the map without one raised KeyError, and because display() catches per-mode errors the whole screen became ERR: map — while the other three modes rendered the same aircraft without complaint. It now falls back, verified by rendering map mode with the key deliberately absent.

I found this by accident: my own fixture omitted color, which is what made it visible.

On #397

Not affected. This plugin has its own _get_font_height() that never calls display_manager.get_font_height(), and renderer.py already loads its 6x10.bdf at the face's native 10px with an explicit fallback — the correct pattern, unlike the plugins fixed in #362/#363/#369/#370/#374/#388/#394.

Checks

1.12.18 → 1.12.19.

🤖 Generated with Claude Code

The "Full Configuration Options" section pointed at config_schema.json instead
of listing anything, so 84 of the 96 settings were never named -- the whole
map_background block, the whole metar, proximity_alert, fonts and flightaware
blocks, every unit and colour key, and the filters that decide which aircraft
appear at all. All 96 are now documented by key, grouped by area, including
the detail that the FlightAware and OpenSky credentials can be given either
nested or flat because _normalize_flightaware_config() copies one onto the
other at start-up.

Adds the images it had none of: the four display modes, imperial against
metric, degrees against cardinal headings, and four panel sizes. Aircraft are
seeded onto the plugin instance because the live source is a local SkyAware
receiver; positions and callsigns are invented and placed inside the default
10-mile radius. map_background is off in the shots, since its basemap tiles
come from a live tile server and could not reproduce.

One fix: _render_map_image() read aircraft['color'] with a hard subscript,
while every other read of that field in this plugin uses .get with a fallback.
A record that reached the map without one raised KeyError and took the whole
mode to "ERR: map" while the other modes rendered the same aircraft fine. It
now falls back, verified by rendering map mode with the key deliberately
absent.

Not affected by #397: this plugin has its own _get_font_height() that never
calls display_manager.get_font_height(), and renderer.py already loads its
6x10.bdf at the face's native 10px with a fallback.

check_plugin.py: 8/8 pass. The run attempts a real connection to the default
skyaware_url and waits out a 5s timeout at each size -- filed as #400.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: cb68a3a6-28c0-43f6-8fb3-8cf008fd8545


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@ChuckBuilds
ChuckBuilds merged commit f5ff0fe into main Sep 3, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant